66 lines
2.2 KiB
JavaScript
66 lines
2.2 KiB
JavaScript
"use strict";
|
|
|
|
$(document).ready(() => {
|
|
let clickHandle = function(event){
|
|
console.log("in clickHandle")
|
|
event.preventDefault();
|
|
let eparent = $(this).closest(".editable_parent");
|
|
eparent.find(".hide_on_block_edit").addClass("edit_opened");
|
|
eparent.find(".show_on_block_edit").addClass("edit_opened");
|
|
eparent.addClass("in_edit");
|
|
|
|
eparent.find(".widget_save").click(() => {
|
|
eparent.find(".hide_on_block_edit").removeClass("edit_opened");
|
|
eparent.find(".show_on_block_edit").removeClass("edit_opened");
|
|
eparent.removeClass("in_edit");
|
|
});
|
|
|
|
eparent.find(".widget_delete").click(function(event) {
|
|
event.preventDefault();
|
|
eparent.remove();
|
|
let formData = new URLSearchParams();
|
|
formData.append("s",me.User.S);
|
|
let req = new XMLHttpRequest();
|
|
let target = this.closest("a").getAttribute("href");
|
|
req.open("POST",target,true);
|
|
req.send(formData);
|
|
});
|
|
};
|
|
|
|
$(".widget_item a").click(clickHandle);
|
|
|
|
let changeHandle = function(event){
|
|
let wtype = this.options[this.selectedIndex].value;
|
|
let typeBlock = this.closest(".widget_edit").querySelector(".wtypes");
|
|
typeBlock.className = "wtypes wtype_"+wtype;
|
|
};
|
|
|
|
$(".wtype_sel").change(changeHandle);
|
|
|
|
$(".widget_new a").click(function(event){
|
|
console.log("clicked widget_new a")
|
|
let widgetList = this.closest(".panel_widgets");
|
|
let widgetNew = this.closest(".widget_new");
|
|
let widgetTmpl = document.getElementById("widgetTmpl").querySelector(".widget_item");
|
|
let node = widgetTmpl.cloneNode(true);
|
|
node.querySelector(".wside").value = this.getAttribute("data-dock");
|
|
widgetList.insertBefore(node,widgetNew);
|
|
$(".widget_item a").unbind("click");
|
|
$(".widget_item a").click(clickHandle);
|
|
$(".wtype_sel").unbind("change");
|
|
$(".wtype_sel").change(changeHandle);
|
|
});
|
|
|
|
$(".widget_save").click(function(event){
|
|
console.log("in .widget_save")
|
|
event.preventDefault();
|
|
event.stopPropagation();
|
|
let pform = this.closest("form");
|
|
let data = new URLSearchParams();
|
|
for (const pair of new FormData(pform)) data.append(pair[0], pair[1]);
|
|
data.append("s",me.User.S);
|
|
var req = new XMLHttpRequest();
|
|
req.open("POST", pform.getAttribute("action"));
|
|
req.send(data);
|
|
});
|
|
}); |