2015-12-13 22:21:02 +01:00
|
|
|
(function ($) {
|
|
|
|
|
|
|
|
var ajax = function (url, data, error, success, complete, method) {
|
|
|
|
var ajaxError = $("#ajaxError");
|
|
|
|
|
|
|
|
ajaxError.hide();
|
|
|
|
NProgress.start();
|
|
|
|
NProgress.set(0.4);
|
|
|
|
$.ajax({
|
|
|
|
type: method,
|
|
|
|
url: url,
|
|
|
|
data: data,
|
|
|
|
cache: false
|
|
|
|
}).done(function(response) {
|
|
|
|
NProgress.set(0.9);
|
|
|
|
if (success) {
|
|
|
|
success(response);
|
|
|
|
}
|
|
|
|
}).fail(function() {
|
|
|
|
if (error) {
|
|
|
|
error();
|
|
|
|
}
|
|
|
|
ajaxError.show();
|
|
|
|
}).always(function() {
|
|
|
|
if (complete) {
|
|
|
|
complete();
|
|
|
|
}
|
|
|
|
NProgress.done();
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
var post = function (url, data, error, success, complete) {
|
|
|
|
data = $.extend(data, {
|
|
|
|
__RequestVerificationToken: $("[name='__RequestVerificationToken']").val()
|
|
|
|
});
|
|
|
|
ajax(url, data, error, success, complete, "POST");
|
|
|
|
};
|
|
|
|
|
|
|
|
var get = function (url, data, error, success, complete) {
|
|
|
|
ajax(url, data, error, success, complete, "GET");
|
|
|
|
};
|
|
|
|
|
|
|
|
var insertItem = function(itemId) {
|
|
|
|
var url = $("#listManagement").data("insert-url");
|
|
|
|
var data = { itemId: itemId };
|
|
|
|
post(url, data, null, function (html) {
|
|
|
|
$("#main").replaceWith($("#main", $.parseHTML(html)));
|
|
|
|
$(window).trigger("reinitialize");
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
var refresh = function () {
|
|
|
|
var url = $("#listManagement").data("refresh-url");
|
|
|
|
get(url, null, null, function (html) {
|
|
|
|
$("#main").replaceWith($("#main", $.parseHTML(html)));
|
|
|
|
$(window).trigger("reinitialize");
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
var updatePositions = function (itemId, oldIndex, newIndex, cancel) {
|
|
|
|
if (newIndex == oldIndex) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
var url = $("#listManagement").data("update-url");
|
|
|
|
var data = {
|
|
|
|
itemId: itemId,
|
|
|
|
oldIndex: oldIndex,
|
|
|
|
newIndex: newIndex
|
|
|
|
};
|
|
|
|
post(url, data, cancel);
|
|
|
|
};
|
|
|
|
|
|
|
|
var bindActions = function () {
|
|
|
|
$("#layout-content").on("change", "#listOperations", function () {
|
|
|
|
var value = $(this).val();
|
|
|
|
var sortBy = $("#SortBy");
|
|
|
|
var sortByDirection = $("#SortByDirection");
|
|
|
|
if (value === "Sort") {
|
|
|
|
sortBy.css("display", "inline");
|
|
|
|
sortByDirection.css("display", "inline");
|
|
|
|
} else {
|
|
|
|
sortBy.css("display", "none");
|
|
|
|
sortByDirection.css("display", "none");
|
|
|
|
}
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
var initializeContentPicker = function() {
|
|
|
|
$("#layout-content").on("click", "#chooseItems", function (e) {
|
|
|
|
e.preventDefault();
|
|
|
|
$("form:first").trigger("orchard-admin-contentpicker-open", {
|
|
|
|
types: $("#listManagement").data("itemtypes"),
|
|
|
|
callback: function(data) {
|
2016-03-24 23:54:40 +01:00
|
|
|
if (Array.isArray && Array.isArray(data)) {
|
|
|
|
data.forEach(function (item) {
|
|
|
|
var id = parseInt(item.id);
|
|
|
|
insertItem(id);
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
var id = parseInt(data.id);
|
|
|
|
insertItem(id);
|
|
|
|
}
|
2015-12-13 22:21:02 +01:00
|
|
|
},
|
|
|
|
baseUrl: $("#listManagement").data("baseurl")
|
|
|
|
});
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
var initializeContentCreator = function() {
|
|
|
|
$("#layout-content").on("click", ".create-content", function (e) {
|
|
|
|
var url = $(this).attr("href");
|
|
|
|
$.colorbox({
|
|
|
|
href: url,
|
|
|
|
iframe: true,
|
|
|
|
reposition: true,
|
|
|
|
width: "100%",
|
|
|
|
height: "100%",
|
|
|
|
initialWidth: "100%",
|
|
|
|
initialHeight: "100%",
|
|
|
|
onLoad: function () {
|
|
|
|
$('html, body').css('overflow', 'hidden');
|
|
|
|
$('#cboxClose').remove();
|
|
|
|
},
|
|
|
|
onClosed: function () {
|
|
|
|
$('html, body').css('overflow', 'auto');
|
|
|
|
refresh();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
e.preventDefault();
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
var initializeSortable = function () {
|
|
|
|
var dragdrop = $("#listManagement").data("dragdrop");
|
|
|
|
|
|
|
|
if (!dragdrop) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
var startIndex = -1;
|
|
|
|
var cancel = function() {
|
|
|
|
$("table.content-list tbody").sortable("cancel");
|
|
|
|
};
|
|
|
|
|
|
|
|
$("table.content-list tbody").sortable({
|
|
|
|
handle: "td:first",
|
|
|
|
start: function(e, ui) { startIndex = ui.item.index(); },
|
|
|
|
stop: function (e, ui) {
|
|
|
|
var newIndex = ui.item.index();
|
|
|
|
var itemId = ui.item.data("content-id");
|
|
|
|
updatePositions(itemId, startIndex, newIndex, cancel);
|
|
|
|
}
|
|
|
|
}).disableSelection();
|
|
|
|
};
|
|
|
|
|
|
|
|
var initializeCheckAll = function () {
|
|
|
|
$("#layout-content").on("change", "table.content-list thead .toggle-all", function () {
|
|
|
|
var tbody = $(this).parents("table:first").find("tbody");
|
|
|
|
tbody.find("input[type='checkbox']").prop("checked", $(this).is(":checked"));
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
var initializeListViewButtons = function() {
|
|
|
|
$("#layout-content").on("click", ".switch-button", function() {
|
|
|
|
$(".switch-button").removeClass("active");
|
|
|
|
$(this).addClass("active");
|
|
|
|
$("#listViewName").prop("checked", true).val($(this).data("listviewname"));
|
|
|
|
$(this).parents("form:first").submit();
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
NProgress.configure({ showSpinner: false });
|
|
|
|
bindActions();
|
|
|
|
initializeSortable();
|
|
|
|
initializeCheckAll();
|
|
|
|
initializeContentPicker();
|
|
|
|
initializeContentCreator();
|
|
|
|
initializeListViewButtons();
|
|
|
|
|
|
|
|
$(window).on("reinitialize", function() {
|
|
|
|
initializeSortable();
|
|
|
|
});
|
|
|
|
|
|
|
|
})(jQuery);
|