Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
check_save_statuses.js 1.37 KiB
/*global VuFind */

function checkSaveStatuses() {
  var elements = {}
  var data = $.map($('.result,.record'), function(record) {
    if($(record).find('.hiddenId').length == 0 || $(record).find('.hiddenSource').length == 0) {
      return false;
    }
    var datum = {'id':$(record).find('.hiddenId').val(), 'source':$(record).find('.hiddenSource')[0].value};
    elements[datum.source+"|"+datum.id] = $(record).find('.savedLists');
    return datum;
  });
  if (data.length) {
    var ids = [];
    var srcs = [];
    for (var i = 0; i < data.length; i++) {
      ids[i] = data[i].id;
      srcs[i] = data[i].source;
    }
    $.ajax({
      dataType: 'json',
      method: 'POST',
      url: VuFind.getPath() + '/AJAX/JSON?method=getSaveStatuses',
      data: {id:ids, 'source':srcs}
    })
    .done(function(response) {
      for (var sel in response.data) {
        var list = elements[sel];
        if (!list) {
          list = $('.savedLists');
        }
        var html = list.find('strong')[0].outerHTML+'<ul>';
        for (var i=0; i<response.data[sel].length; i++) {
          html += '<li><a href="' + response.data[sel][i].list_url + '">'
                   + htmlEncode(response.data[sel][i].list_title) + '</a></li>';
        }
        html += '</ul>';
        list.html(html).removeClass('hidden');
      }
    });
  }
}

$(document).ready(function() {
  checkSaveStatuses();
});