|
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
|
|
|
|
$(".edit-btn").click(function () {
|
|
|
|
var tileid = $(this).data("tile");
|
|
|
|
$("#tile-" + tileid + "-content .tile-html").summernote({
|
|
|
|
focus: true
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
$(".save-btn").click(function () {
|
|
|
|
var tileid = $(this).data("tile");
|
|
|
|
saveTile(tileid);
|
|
|
|
});
|
|
|
|
|
|
|
|
var tobesaved = 0;
|
|
|
|
|
|
|
|
function makeNewTileAfterWait(page, style, width, order) {
|
|
|
|
setTimeout(function () {
|
|
|
|
if (tobesaved > 0) {
|
|
|
|
makeNewTileAfterWait(page, style, width, order);
|
|
|
|
} else {
|
|
|
|
$.post("action.php", {
|
|
|
|
action: "savetile",
|
|
|
|
pubid: pubid,
|
|
|
|
page: page,
|
|
|
|
styleid: style,
|
|
|
|
width: width,
|
|
|
|
order: order,
|
|
|
|
content: ""
|
|
|
|
}, function (d) {
|
|
|
|
window.location.href = window.location.href;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}, 100);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Make a new tile after saving any tiles being edited.
|
|
|
|
* @param {type} page
|
|
|
|
* @param {type} style
|
|
|
|
* @param {type} width
|
|
|
|
* @param {type} order
|
|
|
|
* @returns {undefined}
|
|
|
|
*/
|
|
|
|
function newTile(page, style, width, order) {
|
|
|
|
// Make sure everything is saved before loading page
|
|
|
|
tobesaved = 0;
|
|
|
|
$(".tile").each(function (i) {
|
|
|
|
var tileid = $(this).data("tileid");
|
|
|
|
if (tileEditing(tileid)) {
|
|
|
|
tobesaved++;
|
|
|
|
saveTile(tileid, function () {
|
|
|
|
tobesaved--;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
makeNewTileAfterWait(page, style, width, order);
|
|
|
|
}
|
|
|
|
|
|
|
|
function reloadAfterSaveWait() {
|
|
|
|
setTimeout(function () {
|
|
|
|
if (tobesaved > 0) {
|
|
|
|
reloadAfterWait();
|
|
|
|
} else {
|
|
|
|
window.location.href = window.location.href;
|
|
|
|
}
|
|
|
|
}, 100);
|
|
|
|
}
|
|
|
|
|
|
|
|
function safeReload() {
|
|
|
|
tobesaved = 0;
|
|
|
|
$(".tile").each(function (i) {
|
|
|
|
var tileid = $(this).data("tileid");
|
|
|
|
if (tileEditing(tileid)) {
|
|
|
|
tobesaved++;
|
|
|
|
saveTile(tileid, function () {
|
|
|
|
tobesaved--;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
reloadAfterSaveWait();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns true if the tile is being edited,
|
|
|
|
* false otherwise.
|
|
|
|
*
|
|
|
|
* @param number tileid
|
|
|
|
* @returns boolean
|
|
|
|
*/
|
|
|
|
function tileEditing(tileid) {
|
|
|
|
return $("#tile-" + tileid + "-content .tile-html").css("display") == "none";
|
|
|
|
}
|
|
|
|
|
|
|
|
$("#edit-tile-save-btn").click(function () {
|
|
|
|
var tileid = $("#edit-tile-save-btn").data("tile");
|
|
|
|
var oldstyle = $("#tile-" + tileid).data("styleid");
|
|
|
|
var oldorder = $("#tile-" + tileid).data("order");
|
|
|
|
var oldpage = $("#tile-" + tileid).data("page");
|
|
|
|
var newstyle = $("#style").val();
|
|
|
|
var width = $("#width").val();
|
|
|
|
var order = $("#order").val();
|
|
|
|
var page = $("#page").val();
|
|
|
|
$("#tile-" + tileid).data("styleid", newstyle);
|
|
|
|
$("#tile-" + tileid + "-content").removeClass("tile-style-" + oldstyle);
|
|
|
|
$("#tile-" + tileid + "-content").addClass("tile-style-" + newstyle);
|
|
|
|
$("#tile-" + tileid).data("width", width);
|
|
|
|
$("#tile-" + tileid).css("width", ((width * 1.0) / (pubcolumns * 1.0) * 100) + "%");
|
|
|
|
$("#tile-" + tileid).css("flex-basis", ((width * 1.0) / (pubcolumns * 1.0) * 100) + "%");
|
|
|
|
$("#tile-" + tileid).data("order", order);
|
|
|
|
$("#tile-" + tileid).css("order", order);
|
|
|
|
$("#tile-" + tileid).data("page", page);
|
|
|
|
saveTile(tileid);
|
|
|
|
if (oldorder != order || oldpage != page) {
|
|
|
|
// refresh page because the order might not look right
|
|
|
|
safeReload();
|
|
|
|
}
|
|
|
|
$("#tile-options-modal").modal('hide');
|
|
|
|
});
|
|
|
|
|
|
|
|
$("#edit-tile-del-btn").click(function () {
|
|
|
|
var tileid = $("#edit-tile-save-btn").data("tile");
|
|
|
|
$("#tile-" + tileid).css("display", "none");
|
|
|
|
$.post("action.php", {
|
|
|
|
action: "deltile",
|
|
|
|
tileid: tileid
|
|
|
|
}, function (d) {
|
|
|
|
safeReload();
|
|
|
|
});
|
|
|
|
$("#tile-options-modal").modal('hide');
|
|
|
|
});
|
|
|
|
|
|
|
|
$("#new-tile-save-btn").click(function () {
|
|
|
|
var page = $("#newpage").val();
|
|
|
|
var style = $("#newstyle").val();
|
|
|
|
var width = $("#newwidth").val();
|
|
|
|
var order = $("#neworder").val();
|
|
|
|
newTile(page, style, width, order);
|
|
|
|
});
|
|
|
|
|
|
|
|
$('#tile-options-modal').on('show.bs.modal', function (event) {
|
|
|
|
var button = $(event.relatedTarget);
|
|
|
|
var tileid = button.data('tile');
|
|
|
|
var tile = $("#tile-" + tileid);
|
|
|
|
var modal = $(this);
|
|
|
|
modal.find('#width').val(tile.data("width"));
|
|
|
|
modal.find('#order').val(tile.data("order"));
|
|
|
|
modal.find('#style').val(tile.data("styleid"));
|
|
|
|
modal.find('#page').val(tile.data("page"));
|
|
|
|
modal.find('#edit-tile-save-btn').data("tile", tileid);
|
|
|
|
});
|
|
|
|
|
|
|
|
function saveTile(tileid, callback) {
|
|
|
|
var tile = $("#tile-" + tileid);
|
|
|
|
var tile_content = $("#tile-" + tileid + "-content .tile-html");
|
|
|
|
var page = tile.data("page");
|
|
|
|
var styleid = tile.data("styleid");
|
|
|
|
var width = tile.data("width");
|
|
|
|
var order = tile.data("order");
|
|
|
|
var content = "";
|
|
|
|
if (tileEditing(tileid)) {
|
|
|
|
content = tile_content.summernote("code");
|
|
|
|
tile_content.summernote("destroy");
|
|
|
|
} else {
|
|
|
|
content = tile_content.html();
|
|
|
|
}
|
|
|
|
$.post("action.php", {
|
|
|
|
action: "savetile",
|
|
|
|
tileid: tileid,
|
|
|
|
pubid: pubid,
|
|
|
|
page: page,
|
|
|
|
styleid: styleid,
|
|
|
|
width: width,
|
|
|
|
order: order,
|
|
|
|
content: content
|
|
|
|
}, function (resp) {
|
|
|
|
if (null != callback) {
|
|
|
|
callback();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|