1924 lines
71 KiB
JavaScript
1924 lines
71 KiB
JavaScript
var ModuleDialogBox = (function() {
|
|
|
|
function ModuleDialogBox(jqObj, sClass){
|
|
var _this = this;
|
|
|
|
_this.jqScopeObject = jqObj;
|
|
_this.sModtype = sClass;
|
|
|
|
_this.sendModuleAjax();
|
|
}
|
|
|
|
ModuleDialogBox.prototype.oInstConfig = {};
|
|
|
|
ModuleDialogBox.prototype.oMyDialog = false;
|
|
ModuleDialogBox.prototype.sModtype = "";
|
|
ModuleDialogBox.prototype.jqScopeObject = {};
|
|
ModuleDialogBox.prototype.oModuleData = {};
|
|
|
|
/**
|
|
* Function to send module ajax action
|
|
*
|
|
* @author Mareks Keišs <mareks.keiss@brsystems.lv>
|
|
* @category SysSiteMap
|
|
* @param bReload - indicates whether its on reload
|
|
* @return void
|
|
*/
|
|
ModuleDialogBox.prototype.sendModuleAjax = function(bReload){
|
|
var _this = this;
|
|
|
|
// Set default values
|
|
bReload = defaultVal(bReload, false);
|
|
|
|
// Get selected language id;
|
|
var langId = _this.jqScopeObject.find(".lang_menu li.ts a").attr("id");
|
|
langId = langId.substr(5);
|
|
|
|
if(!defaultVal(_this.oModuleData[_this.sModtype], false)){
|
|
|
|
var oData = {
|
|
action : "getModules",
|
|
id : _this.sModtype,
|
|
reload : bReload,
|
|
language : langId
|
|
};
|
|
|
|
CBase.ajax(oData, false, function(d){
|
|
if(d && d.jsonok){
|
|
|
|
// Save html data in global variable
|
|
if(_this.sModtype == "app_modules"){
|
|
_this.oModuleData[_this.sModtype] = d["app_modules_html"];
|
|
}else{
|
|
_this.oModuleData["js_modules"] = d["js_modules_html"];
|
|
_this.oModuleData["css_modules"] = d["css_modules_html"];
|
|
}
|
|
|
|
// Construct dialog box with all binds;
|
|
_this.bindEvents();
|
|
}
|
|
});
|
|
|
|
}else{
|
|
|
|
// Load data from javascript object - no ajax needed
|
|
// Construct dialog box with all binds;
|
|
_this.bindEvents();
|
|
|
|
}
|
|
|
|
};
|
|
|
|
/**
|
|
* Function to bind events to dialog form
|
|
*
|
|
* @author Mareks Keišs <mareks.keiss@brsystems.lv>
|
|
* @category SysSiteMap
|
|
* @return void
|
|
*/
|
|
ModuleDialogBox.prototype.bindEvents = function(){
|
|
|
|
var _this = this;
|
|
|
|
// Construct New dialog if necessary
|
|
if(!_this.oMyDialog)
|
|
_this.oMyDialog = new ConfirmDialog("moduleDialogBox");
|
|
|
|
// Show dialog with HTML
|
|
_this.oMyDialog.setCustomContentAndShow({
|
|
closeBtn: true,
|
|
title : defaultVal(CBase.gM.sModSelTitle, "Select modules"),
|
|
message : defaultVal(_this.oModuleData[_this.sModtype], "Some message HTML"),
|
|
buttons : {
|
|
1 : {
|
|
lbl : defaultVal(CBase.gM.sModSelAdd, "Add module"),
|
|
id : "buttonYes",
|
|
click : function(){
|
|
_this.oMyDialog.hide();
|
|
// Confirm module add
|
|
_this.addSelectedModules();
|
|
}
|
|
},
|
|
2 : {
|
|
lbl : defaultVal(CBase.gM.sModSelCancel, "Cancel"),
|
|
id : "buttonNo",
|
|
click : function(){
|
|
_this.oMyDialog.hide();
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
|
|
// Bind check boxes
|
|
_this.checkBoxesForModules();
|
|
|
|
// Set base table config
|
|
_this.oInstConfig = {
|
|
filter : "",
|
|
isModules : false,
|
|
bShowSelMods : false,
|
|
bOnlyOneAllowed : false,
|
|
|
|
jqRows : _this.oMyDialog.jqDialog.find(".search").parent().find(">.table-rows:visible:first").find("> ul.dxr"),
|
|
jqNoResults : _this.oMyDialog.jqDialog.find(".noresults"),
|
|
|
|
jqFilterMatches : $(""),
|
|
jqFilterNotMatches : $("")
|
|
};
|
|
|
|
_this.oInstConfig.isModules = (_this.sModtype == "app_modules"? 1 : 0);
|
|
|
|
|
|
// Check in with which modules we are working and do stuff;
|
|
if(_this.sModtype == "app_modules"){
|
|
|
|
// Check in used module
|
|
var sModCode = _this.jqScopeObject.find("#mod_code").val();
|
|
var jqSelRowObj = _this.oMyDialog.jqDialog.find("ul#m_" + sModCode);
|
|
|
|
if(jqSelRowObj.length){
|
|
jqSelRowObj.find(".chk").addClass("chked");
|
|
jqSelRowObj.next().show().find("ul#a_"+ sModCode +"_"+ _this.jqScopeObject.find("#mod_run").val() +" .chk").addClass("chked");
|
|
|
|
var jqAniObj = _this.oMyDialog.jqDialog.find('.table-rows:visible').scrollTop(0);
|
|
var x = jqSelRowObj.position().top-4;
|
|
setTimeout(function(){
|
|
jqAniObj.animate({scrollTop:x}, 400);
|
|
}, 200);
|
|
|
|
}
|
|
}else{
|
|
|
|
// Hide added already modules
|
|
_this.setCheckedModulesAndHideThem();
|
|
|
|
// Bind table upper actions - checkbox'es
|
|
_this.bindTableUpperActions();
|
|
|
|
}
|
|
|
|
// Set default Style
|
|
_this.moduleSearchStyle();
|
|
|
|
// Bind search in our new appended data box;
|
|
_this.searchFilterPField();
|
|
|
|
// Bind Clear cache button
|
|
_this.oMyDialog.jqDialog.find("#clear_cache > span").bind("click", function(){
|
|
_this.oModuleData = {};
|
|
_this.sendModuleAjax(true);
|
|
});
|
|
|
|
};
|
|
|
|
|
|
ModuleDialogBox.prototype.checkBoxesForModules = function(){
|
|
var _this = this;
|
|
|
|
// Base parent checkbox clicks - js, css & app modules
|
|
_this.oMyDialog.jqDialog.find(".table-rows .dxr:not(.thead,.hidden_actions) .chk").click(function(e){
|
|
e.stopImmediatePropagation();
|
|
var chk = $(this);
|
|
chk.toggleClass("chked");
|
|
|
|
// Reset module selection
|
|
if(_this.oInstConfig.bOnlyOneAllowed || _this.sModtype == "app_modules"){
|
|
var rows = chk.closest(".table-rows");
|
|
// Remove checked and hide all mod actions;
|
|
rows.find(".chk").not(chk).removeClass("chked");
|
|
rows.find(".module_actions").hide();
|
|
}
|
|
|
|
|
|
// In app mode
|
|
if(_this.sModtype == "app_modules"){
|
|
|
|
// Show actions
|
|
if(chk.hasClass("chked")){
|
|
var jqDivObj = chk.closest("ul").next();
|
|
jqDivObj.slideDown("fast", function(){
|
|
$(this).find("ul:first .chk").addClass("chked");
|
|
});
|
|
}
|
|
}
|
|
});
|
|
|
|
// Sub Child row checkbox clicks - app module actions
|
|
_this.oMyDialog.jqDialog.find(".table-rows .hidden_actions:not(.thead) .chk").click(function(e){
|
|
e.stopImmediatePropagation();
|
|
var chk = $(this);
|
|
if(!chk.hasClass("chked")){
|
|
chk.addClass("chked");
|
|
// Un-check checked element
|
|
var rows = chk.closest(".module-rows");
|
|
rows.find("ul.hidden_actions .chk").not(chk).removeClass("chked");
|
|
}
|
|
|
|
});
|
|
|
|
// Bind each row click
|
|
_this.oMyDialog.jqDialog.find(".table-rows .dxr:not(.thead)").click(function(){
|
|
$(this).find(".ncheckbox .chk").trigger("click");
|
|
});
|
|
|
|
};
|
|
// Hide checked modules in module list ( JS and CSS )
|
|
ModuleDialogBox.prototype.setCheckedModulesAndHideThem = function(){
|
|
var _this = this;
|
|
_this.jqScopeObject.find("div#" + _this.sModtype + " ul.dx li:not(.clone) .chked").each(function(){
|
|
// Find ul with associated id - check it and add class used_m ( used module );
|
|
var jqRow = _this.oMyDialog.jqDialog.find("ul#" + $(this).attr("id"));
|
|
if(jqRow.length)
|
|
jqRow.hide().css("opacity", "0.5").find(".ncheckbox .chk").addClass("chked used_m");
|
|
});
|
|
};
|
|
// Bind table actions
|
|
ModuleDialogBox.prototype.bindTableUpperActions = function(){
|
|
var _this = this;
|
|
|
|
var chkBoxes = _this.oMyDialog.jqDialog.find("#p_show,#show_other_pages,#p_js,#p_css").closest("li");
|
|
chkBoxes.click(function(){
|
|
var jqCkkBox = $(this).find(".chk");
|
|
var sID = jqCkkBox.attr("id");
|
|
|
|
// Switch checkbox
|
|
jqCkkBox.toggleClass("chked");
|
|
|
|
switch(sID){
|
|
case "p_show":
|
|
|
|
_this.oInstConfig.bShowSelMods = jqCkkBox.hasClass("chked");
|
|
if(!_this.oInstConfig.bShowSelMods){
|
|
_this.oMyDialog.jqDialog.find("ul .chked.used_m").closest("ul").hide();
|
|
}else{
|
|
_this.oMyDialog.jqDialog.find("ul .chked.used_m").closest("ul").fadeIn("fast");
|
|
}
|
|
|
|
// Reset data set
|
|
_this.oInstConfig.jqRows = _this.oMyDialog.jqDialog.find(".search").parent().find(">.table-rows:visible:first").find("> ul.dxr");
|
|
// Search elements for the phrase
|
|
_this.oInstConfig.jqFilterMatches = _this.oInstConfig.jqRows.find('div:Contains(' + _this.oInstConfig.filter + ')').closest("ul");
|
|
// Hide all than matches
|
|
_this.oInstConfig.jqRows.not(_this.oInstConfig.jqFilterMatches).hide();
|
|
// Set default Style
|
|
_this.moduleSearchStyle();
|
|
|
|
break;
|
|
|
|
case "show_other_pages":
|
|
|
|
var oTableMod = _this.oMyDialog.jqDialog.find(".module-rows"),
|
|
oTablePagesMod = _this.oMyDialog.jqDialog.find(".page-rows"),
|
|
oButtons = _this.oMyDialog.jqDialog.find("#p_js,#p_css").closest("li");
|
|
|
|
// Show & hide content
|
|
if(jqCkkBox.hasClass("chked")){
|
|
oTableMod.hide();
|
|
oButtons.fadeIn("fast");
|
|
oTablePagesMod.fadeIn("fast", function(){
|
|
|
|
_this.oInstConfig.bOnlyOneAllowed = true;
|
|
// Reset data set
|
|
_this.oInstConfig.jqRows = _this.oMyDialog.jqDialog.find(".search").parent().find(">.table-rows:visible:first").find("> ul.dxr");
|
|
// Search elements for the phrase
|
|
_this.oInstConfig.jqFilterMatches = _this.oInstConfig.jqRows.find('div:Contains(' + _this.oInstConfig.filter + ')').closest("ul");
|
|
// Hide all than matches
|
|
_this.oInstConfig.jqRows.not(_this.oInstConfig.jqFilterMatches).hide();
|
|
// Set default Style
|
|
_this.moduleSearchStyle();
|
|
|
|
// Check if any node visible
|
|
if(!_this.oInstConfig.jqFilterMatches.length)
|
|
_this.oInstConfig.jqNoResults.fadeIn("fast");
|
|
else
|
|
_this.oInstConfig.jqNoResults.hide();
|
|
});
|
|
}else{
|
|
oTablePagesMod.add(oButtons).hide();
|
|
_this.oInstConfig.bOnlyOneAllowed = false;
|
|
|
|
oTableMod.fadeIn("fast", function(){
|
|
|
|
// Reset data set
|
|
_this.oInstConfig.jqRows = _this.oMyDialog.jqDialog.find(".search").parent().find(">.table-rows:visible:first").find("> ul.dxr");
|
|
// Search elements for the phrase
|
|
_this.oInstConfig.jqFilterMatches = _this.oInstConfig.jqRows.find('div:Contains(' + _this.oInstConfig.filter + ')').closest("ul");
|
|
// Hide all than matches
|
|
_this.oInstConfig.jqRows.not(_this.oInstConfig.jqFilterMatches).hide();
|
|
// Set default Style
|
|
_this.moduleSearchStyle();
|
|
|
|
// Check if any node visible
|
|
if(!_this.oInstConfig.jqFilterMatches.length)
|
|
_this.oInstConfig.jqNoResults.fadeIn("fast");
|
|
else
|
|
_this.oInstConfig.jqNoResults.hide();
|
|
});
|
|
}
|
|
|
|
// Check default opposite module
|
|
oButtons.find("#"+(_this.sModtype == "js_modules"?"p_js":"p_css")).addClass("chked");
|
|
|
|
break;
|
|
}
|
|
|
|
});
|
|
|
|
};
|
|
|
|
// Style module search uls
|
|
ModuleDialogBox.prototype.moduleSearchStyle = function(){
|
|
var _this = this;
|
|
|
|
if($.isDefined(_this.oInstConfig)){
|
|
if(_this.oInstConfig.jqFilterMatches.length){
|
|
_this.oInstConfig.jqFilterMatches.filter(".odd, .even").removeClass("odd even");
|
|
_this.oInstConfig.jqFilterMatches.filter(":visible:odd").addClass("odd");
|
|
}else{
|
|
_this.oInstConfig.jqRows.filter(".odd, .even").removeClass("odd even");
|
|
_this.oInstConfig.jqRows.filter(":visible:odd").addClass("odd");
|
|
}
|
|
}
|
|
|
|
};
|
|
|
|
// Confirm module selection;
|
|
ModuleDialogBox.prototype.addSelectedModules = function(){
|
|
var _this = this;
|
|
|
|
var oButton = _this.oMyDialog.jqDialog.find("#show_other_pages");
|
|
var oTableMod = _this.oMyDialog.jqDialog.find(".module-rows"),
|
|
oTablePagesMod = _this.oMyDialog.jqDialog.find(".page-rows");
|
|
|
|
var modObj = _this.jqScopeObject.find("div#modules_set");
|
|
var i = 0;
|
|
|
|
// Chk if we need to clone from other page
|
|
if(oButton.length && oButton.hasClass("chked") && oTablePagesMod.find(".dxr:not(.thead) .ncheckbox .chked").length){
|
|
|
|
// Get the page id from which we want to clone modules;
|
|
var page_id = oTablePagesMod.find(".dxr:not(.thead) .ncheckbox .chked:first").closest("ul").attr("id");
|
|
page_id = page_id.substr(5);
|
|
|
|
CBase.jsModule.oTable.sendAjaxActionAdvanced({
|
|
action : "getPageUsedModules",
|
|
id : page_id,
|
|
data : {css: _this.oMyDialog.jqDialog.find("#p_css").hasClass("chked") ? 1 : 0 , js : _this.oMyDialog.jqDialog.find("#p_js").hasClass("chked") ? 1 : 0}
|
|
}, function(d){
|
|
if(d && d.jsonok){
|
|
|
|
// Remove all modules from table object;
|
|
if(_this.oMyDialog.jqDialog.find("#p_css").hasClass("chked") && d.css){
|
|
_this.jqScopeObject.find("div#css_modules ul.dx li:not(.clone)").remove();
|
|
|
|
// Append all modules
|
|
CBase.jsModule.cloneObjects(_this.jqScopeObject, d.css, "css_modules");
|
|
}
|
|
if(_this.oMyDialog.jqDialog.find("#p_js").hasClass("chked") && d.js){
|
|
_this.jqScopeObject.find("div#js_modules ul.dx li:not(.clone)").remove();
|
|
|
|
// Append all modules
|
|
CBase.jsModule.cloneObjects(_this.jqScopeObject, d.js, "js_modules");
|
|
}
|
|
|
|
}
|
|
})
|
|
}else{
|
|
// If a module is checked
|
|
if(oTableMod.find(".dxr:not(.thead) .ncheckbox .chked").length){
|
|
|
|
// If its app_modules
|
|
if(_this.sModtype == "app_modules"){
|
|
|
|
var appMod = modObj.find("#app_modules");
|
|
i = 0;
|
|
oTableMod.find(".dxr:not(.thead) .ncheckbox .chked").each(function(){
|
|
var ul = $(this).closest("ul");
|
|
if(i == 0){
|
|
appMod.find("#mod_code").val(ul.find("li.last div").html());
|
|
i++
|
|
}else{
|
|
appMod.find("#mod_run").val(ul.find("li.last div").html());
|
|
}
|
|
});
|
|
|
|
}else{
|
|
|
|
var oSelMod = [], oData = {}, ii = 0, add = true;
|
|
// Gather all checked modules from table ( in the right order );
|
|
i = 0;
|
|
var jqSelectedModules = _this.jqScopeObject.find("div#" + _this.sModtype + " ul > li:not(.clone)");
|
|
jqSelectedModules.each(function(){
|
|
oSelMod[i] = [];
|
|
oSelMod[i]['id'] = $(this).find("div.chked").attr("id");
|
|
oSelMod[i++]['v'] = $.trim($(this).find("label").html());
|
|
});
|
|
|
|
// Gather all checked modules in dialog box;
|
|
oTableMod.find(".dxr:not(.thead) .ncheckbox > .chked").each(function(){
|
|
var ul = $(this).closest("ul");
|
|
var html = ul.find("li.last div").html();
|
|
oData[ul.attr("id")] = $.trim(html);
|
|
});
|
|
|
|
// delete deselected modules;
|
|
i = oSelMod.length - 1;
|
|
while (i >= 0) {
|
|
if(!(oData[oSelMod[i]['id']]))
|
|
oSelMod.splice(i, 1);
|
|
|
|
i--;
|
|
}
|
|
|
|
ii = oSelMod.length - 1;
|
|
for(var id in oData){
|
|
if(oData.hasOwnProperty(id)){
|
|
for (i = 0; i < ii; i++) {
|
|
// Check if we need to add this object - short if/else statement for true/false;
|
|
add = oSelMod[i]['id'] != id;
|
|
// End the loop if we don't need to add;
|
|
if(!add)
|
|
break;
|
|
}
|
|
if(add){
|
|
// add values to selected object array
|
|
oSelMod[ii] = [];
|
|
oSelMod[ii]['id'] = id;
|
|
oSelMod[ii++]['v'] = oData[id];
|
|
|
|
add = true
|
|
}
|
|
}
|
|
}
|
|
|
|
// Remove all modules from table object;
|
|
jqSelectedModules.remove();
|
|
|
|
// Append all modules
|
|
CBase.jsModule.cloneObjects(_this.jqScopeObject, oSelMod, _this.sModtype);
|
|
|
|
}
|
|
|
|
}else{
|
|
// Clear values or remove objects
|
|
if(_this.sModtype == "app_modules"){
|
|
modObj.find("#mod_code").val("");
|
|
modObj.find("#mod_run").val("");
|
|
}else{
|
|
_this.jqScopeObject.find("div#" + _this.sModtype + " ul.dx li:not(.clone)").remove();
|
|
}
|
|
}
|
|
}
|
|
|
|
return true;
|
|
};
|
|
|
|
// Search for modules in dialog box.
|
|
ModuleDialogBox.prototype.searchFilterPField = function(){
|
|
var _this = this;
|
|
|
|
// Declaring variables for later use.
|
|
var timeout = null;
|
|
var jqClear = _this.oMyDialog.jqDialog.find("a.clf"); // "x" for input field, to clear input
|
|
var jqInput = _this.oMyDialog.jqDialog.find(".search input");
|
|
var jqSLabel = _this.oMyDialog.jqDialog.find(".search div > label");
|
|
|
|
jqInput.bind({
|
|
keyup : function(e){
|
|
|
|
// If enter pressed, we set time out to zero for instant filter;
|
|
if(e.keyCode == 13)
|
|
e.timeoutMs = 0;
|
|
|
|
clearTimeout(timeout);
|
|
|
|
// Set filter value
|
|
_this.oInstConfig.filter = $(this).val();
|
|
|
|
// Make a new timeout set to go off in 800ms
|
|
timeout = setTimeout(function(){
|
|
|
|
// Search elements for the phrase
|
|
_this.oInstConfig.jqFilterMatches = _this.oInstConfig.jqRows.find('div:Contains(' + _this.oInstConfig.filter + ')').closest("ul");
|
|
// If not app modules - remove checked from data set
|
|
if(!_this.oInstConfig.isModules && !_this.oInstConfig.bShowSelMods){
|
|
_this.oInstConfig.jqFilterMatches = _this.oInstConfig.jqFilterMatches.find("li.rchk .chk:not(.used_m)").closest("ul");
|
|
}
|
|
// Hide all than matches
|
|
_this.oInstConfig.jqRows.not(_this.oInstConfig.jqFilterMatches).hide();
|
|
|
|
|
|
|
|
|
|
// Show filtered elements
|
|
if(_this.oInstConfig.jqFilterMatches.length){
|
|
_this.oInstConfig.jqFilterMatches.fadeIn("fast", function(){
|
|
// Show Actions for Modules except JS & CSS
|
|
if(_this.oInstConfig.isModules){
|
|
var jqChked = _this.oInstConfig.jqRows.find(".chked:first").closest("ul");
|
|
_this.oInstConfig.jqRows.parent().find(".module_actions:visible").not((jqChked.is(":visible") ? jqChked.next(): "")).hide();
|
|
if(jqChked.is(":visible") && !jqChked.next().is(":visible")){
|
|
jqChked.next().slideDown("fast");
|
|
}
|
|
}
|
|
|
|
_this.moduleSearchStyle();
|
|
});
|
|
}else{
|
|
_this.oInstConfig.jqRows.parent().find(".module_actions:visible").hide();
|
|
}
|
|
|
|
|
|
|
|
// Check if any node visible
|
|
if(!_this.oInstConfig.jqFilterMatches.length)
|
|
_this.oInstConfig.jqNoResults.fadeIn("fast");
|
|
else
|
|
_this.oInstConfig.jqNoResults.hide();
|
|
|
|
// Show/hide "x" in input field.
|
|
if(_this.oInstConfig.filter && !jqClear.is(":visible"))
|
|
jqClear.fadeIn("fast");
|
|
else if(!_this.oInstConfig.filter && jqClear.is(":visible"))
|
|
jqClear.hide();
|
|
|
|
}, defaultVal(e.timeoutMs, 600));
|
|
},
|
|
focus : function(){
|
|
jqSLabel.hide();
|
|
},
|
|
blur : function(){
|
|
if(!$(this).val().length)
|
|
jqSLabel.show();
|
|
}
|
|
});
|
|
|
|
jqClear.click(function(){
|
|
var e = jQuery.Event("keyup");
|
|
e.timeoutMs = 0;
|
|
jqInput.val("").trigger(e);
|
|
jqSLabel.show();
|
|
});
|
|
|
|
|
|
};
|
|
|
|
return ModuleDialogBox;
|
|
|
|
})();
|
|
|
|
|
|
var UnusedModules = (function() {
|
|
|
|
function UnusedModules(){
|
|
var _this = this;
|
|
|
|
_this.jqScopeObject = $(".data");
|
|
|
|
_this.sendModuleAjax();
|
|
}
|
|
|
|
UnusedModules.prototype.oMyDialog = false;
|
|
UnusedModules.prototype.jqScopeObject = {};
|
|
UnusedModules.prototype.oModuleData = {};
|
|
UnusedModules.prototype.oModulesToDelete = {};
|
|
|
|
|
|
/**
|
|
* Function to send ajax action
|
|
*
|
|
* @author Mareks Keišs <mareks.keiss@brsystems.lv>
|
|
* @category SysSiteMap
|
|
* @param bReload - indicates whether its on reload
|
|
* @return void
|
|
*/
|
|
UnusedModules.prototype.sendModuleAjax = function(bReload){
|
|
var _this = this;
|
|
|
|
var oData = {
|
|
action : "getAllUnusedSiteMapModules"
|
|
};
|
|
|
|
CBase.ajax(oData, false, function(d){
|
|
if(d && d.jsonok){
|
|
|
|
_this.oModuleData = d.data;
|
|
|
|
// Construct dialog box with all binds;
|
|
_this.bindEvents();
|
|
}
|
|
});
|
|
|
|
};
|
|
|
|
/**
|
|
* Function to bind events to dialog form
|
|
*
|
|
* @author Aivarss Žukovskis <mareks.keiss@brsystems.lv>
|
|
* @category SysSiteMap
|
|
* @return void
|
|
*/
|
|
UnusedModules.prototype.bindEvents = function(after){
|
|
var _this = this;
|
|
|
|
// Construct New dialog if necessary
|
|
if(!_this.oMyDialog)
|
|
_this.oMyDialog = new ConfirmDialog();
|
|
_this.oMyDialog.jqDialog.addClass('unusedModules');
|
|
|
|
var buttons = {};
|
|
if(after){
|
|
buttons = {
|
|
1 : {
|
|
lbl : defaultVal(CBase.gM.sUnusedModClose, "Close"),
|
|
id : "buttonClose",
|
|
click : function(){
|
|
_this.oMyDialog.hide();
|
|
}
|
|
}
|
|
};
|
|
}else{
|
|
buttons = {
|
|
1 : {
|
|
lbl : defaultVal(CBase.gM.sUnusedModDelete, "Delete modules"),
|
|
id : "buttonDelete",
|
|
click : function(){
|
|
// Confirm module delete
|
|
_this.deleteSelectedModules();
|
|
}
|
|
},
|
|
2 : {
|
|
lbl : defaultVal(CBase.gM.sUnusedModClose, "Close"),
|
|
id : "buttonClose",
|
|
click : function(){
|
|
_this.oMyDialog.hide();
|
|
}
|
|
}
|
|
};
|
|
}
|
|
|
|
|
|
// Show dialog with HTML
|
|
_this.oMyDialog.show({
|
|
closeBtn: true,
|
|
title : defaultVal(CBase.gM.sUnusedModTitle, "Unused modules"),
|
|
message : defaultVal(_this.oModuleData, "Some message HTML"),
|
|
buttons : buttons
|
|
});
|
|
|
|
|
|
// Bind check boxes
|
|
_this.checkBoxesForModules();
|
|
|
|
// Set default Style
|
|
_this.moduleListStyle();
|
|
|
|
|
|
};
|
|
UnusedModules.prototype.checkBoxesForModules = function(){
|
|
var _this = this;
|
|
|
|
// Bind each row click
|
|
_this.oMyDialog.jqDialog.find(".table-rows .dxr:not(.thead)").click(function(){
|
|
$(this).find(".ncheckbox .chk").toggleClass("chked");
|
|
});
|
|
|
|
};
|
|
// Style module list uls
|
|
UnusedModules.prototype.moduleListStyle = function(){
|
|
var _this = this;
|
|
|
|
_this.oMyDialog.jqDialog.find(".odd, .even").removeClass("odd even");
|
|
_this.oMyDialog.jqDialog.find(".table-rows ul:visible:odd").addClass("odd");
|
|
|
|
};
|
|
// function to delete selected modules
|
|
UnusedModules.prototype.deleteSelectedModules = function(){
|
|
var _this = this;
|
|
|
|
var i = 0, ii = 0;
|
|
_this.oModulesToDelete = {"css" : [], "js" : []};
|
|
_this.oMyDialog.jqDialog.find(".table-rows .dxr:not(.thead) .chked").each(function(){
|
|
var oO = $(this).closest("li").next().find("div");
|
|
if(oO.attr("class") === "css")
|
|
_this.oModulesToDelete["css"][i++] = oO.html() + ".css";
|
|
if(oO.attr("class") === "js")
|
|
_this.oModulesToDelete["js"][ii++] = oO.html() + ".js";
|
|
});
|
|
|
|
if(_this.oModulesToDelete['css'].length > 0 || _this.oModulesToDelete['js'].length > 0){
|
|
var oData = {
|
|
action : "deleteUnusedModules",
|
|
data : _this.oModulesToDelete
|
|
};
|
|
|
|
CBase.ajax(oData, false, function(d){
|
|
if(d && d.jsonok){
|
|
_this.oModuleData = d.data;
|
|
// Construct dialog box with all binds;
|
|
_this.bindEvents(true);
|
|
}else{
|
|
console.log("Ooops!!! Something went wrong?");
|
|
}
|
|
});
|
|
}
|
|
};
|
|
|
|
return UnusedModules;
|
|
})();
|
|
|
|
|
|
var SysSiteMap = (function() {
|
|
|
|
function SysSiteMap(){
|
|
var _this = this;
|
|
|
|
_this.sModName = CBase.dt.sModName;
|
|
_this.oTable = new CTable("data");
|
|
_this.oTable.loadTableData();
|
|
}
|
|
|
|
SysSiteMap.prototype.oData = {};
|
|
SysSiteMap.prototype.sModName = "";
|
|
SysSiteMap.prototype.oModDialog = {};
|
|
SysSiteMap.prototype.oUnusedModules = {};
|
|
|
|
// Class vars
|
|
SysSiteMap.prototype.bNewClone = false;
|
|
|
|
// Rewrite CTable object callback
|
|
CTable.prototype.tableObjectCallback = function(oTable){
|
|
|
|
var _this = this;
|
|
// Clone blank action
|
|
oTable.find("a#icloneBlank").click(function(){
|
|
CBase.jsModule.bNewClone = true;
|
|
CBase.message.hide(true, false);
|
|
_this.loadRecord(false, $(".dxr:not(.head) li.first div.chked").closest("ul").find("#ledit").attr("href"));
|
|
});
|
|
|
|
oTable.find("a#iChangeFolder").click(function(){
|
|
CBase.jsModule.adminChangeDialogBox();
|
|
});
|
|
|
|
oTable.find("a#iGetUnusedModules").bind("click", function(){
|
|
CBase.jsModule.oUnusedModules = new UnusedModules()
|
|
});
|
|
|
|
// Cache binds
|
|
oTable.find("#minify_css, #minify_js, #clear_cache").bind("click", function(){
|
|
CBase.jsModule.handleTreeActions($(this).attr("id"));
|
|
});
|
|
|
|
// BInd send only actions
|
|
$("#iDeleteTempTables").bind("click", function(){
|
|
CBase.jsModule.handleSendOnlyActions($(this));
|
|
});
|
|
|
|
// Generate site map xml
|
|
oTable.find("#igenxml").click(function(){
|
|
CBase.ajax({action : "generateSiteMapXML"}, false, function(d){
|
|
|
|
// Construct New dialog if necessary
|
|
if(!CBase.jsModule.oSiteMapXmlDialog)
|
|
CBase.jsModule.oSiteMapXmlDialog = new ConfirmDialog("siteMapXml");
|
|
|
|
// Show dialog with HTML
|
|
CBase.jsModule.oSiteMapXmlDialog.setCustomContentAndShow({
|
|
closeBtn: true,
|
|
title : defaultVal(CBase.gM.generateSiteMapXml, "Generate site map xml"),
|
|
message : $('<div class="site_map_xml"><p>' + defaultVal(d.msg, defaultVal(CBase.gM.generateSiteMapXmlDone, "Site map xml generation done!")) + '</p></div>'),
|
|
buttons : {
|
|
1 : {
|
|
lbl : defaultVal(CBase.gM.done, "Done!"),
|
|
id : "buttonYes",
|
|
click : function(){
|
|
CBase.jsModule.oSiteMapXmlDialog.hide();
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
});
|
|
});
|
|
|
|
|
|
// Gen insert query
|
|
oTable.find("#igensql").click(function(){
|
|
|
|
var oIds = [], id = 0;
|
|
if(oTable.find("ul.dxr.single:not(.thead) li.first .chked").length > 0){
|
|
oTable.find("ul.dxr.single:not(.thead) li.first .chked").each(function(){
|
|
id = $(this).closest("ul").attr("id");
|
|
if(id) oIds.push(id);
|
|
});
|
|
}else{
|
|
oTable.find("ul.dxr.single:not(.thead)").each(function(){
|
|
id = $(this).attr("id");
|
|
if(id) oIds.push(id);
|
|
});
|
|
}
|
|
|
|
|
|
var jqData = $("<div class='sqlDrop'><div></div></div>");
|
|
CBase.ajax({action : "generateInsertSql", ids : $.toJSON(oIds)}, false, function(d){
|
|
if(d && d.jsonok && d.sql){
|
|
|
|
$.each(d.sql, function(k, str){
|
|
jqData.find("> div").append($("<p>"+ str +"</p>"));
|
|
});
|
|
|
|
jqData.find("> div").click(function(){
|
|
var selection = window.getSelection();
|
|
var txt = jqData.find("> div");
|
|
var range = document.createRange();
|
|
range.selectNodeContents(txt[0]);
|
|
selection.removeAllRanges();
|
|
selection.addRange(range);
|
|
})
|
|
|
|
}
|
|
});
|
|
|
|
// Construct New dialog if necessary
|
|
if(!CBase.jsModule.oMyDialog)
|
|
CBase.jsModule.oMyDialog = new ConfirmDialog("sqlExport");
|
|
|
|
// Show dialog with HTML
|
|
CBase.jsModule.oMyDialog.setCustomContentAndShow({
|
|
closeBtn: true,
|
|
title : defaultVal(CBase.gM.sSqlExpTitle, "Sql Export for permissions"),
|
|
message : jqData,
|
|
buttons : {
|
|
1 : {
|
|
lbl : defaultVal(CBase.gM.done, "Done!"),
|
|
id : "buttonYes",
|
|
click : function(){
|
|
CBase.jsModule.oMyDialog.hide();
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
|
|
});
|
|
};
|
|
|
|
// Ajax load cfg object
|
|
CBlank.prototype.getAjaxData = function(){
|
|
var d = {
|
|
action : "selfLoad"
|
|
};
|
|
|
|
if(CBase.jsModule.bNewClone){
|
|
d["action"] = "cloneBlank";
|
|
CBase.jsModule.bNewClone = false;
|
|
}
|
|
|
|
return d;
|
|
};
|
|
|
|
// Rewrite CBase form callback
|
|
CBlank.prototype.viewCallback = function(jqObj, d){
|
|
var _this = this;
|
|
|
|
jqObj.find(".settings").find("h3:first").click(function(){
|
|
var jqParent = $(this).parent();
|
|
if(jqParent.hasClass("load"))
|
|
_this.loadBlankBlockSubContent(jqParent);
|
|
else
|
|
_this.showHideSubContentPanel(jqParent);
|
|
});
|
|
|
|
_this.oBtnPan.find("#fcancel").click(function(){
|
|
CBase.message.hide();
|
|
if(_this.isModiffied){
|
|
CBase.oTable.filterTableData(true);
|
|
}else{
|
|
CBase.oTable.show();
|
|
}
|
|
});
|
|
|
|
_this.oBtnPan.find("#fsave").click(function(){
|
|
_this.saveBlankView();
|
|
});
|
|
|
|
// Sortable modules
|
|
jqObj.find(".sortable").sortable({ helper : 'clone' }).disableSelection();
|
|
|
|
// Bind base actions;
|
|
CBase.jsModule.baseFieldBinds(jqObj);
|
|
|
|
|
|
|
|
// Bind base blank actions
|
|
_this.bindBlankActions(jqObj);
|
|
|
|
if(d && d.data){
|
|
CBase.jsModule.oData = d.data;
|
|
CBase.jsModule.oData['deletedPages'] = "0";
|
|
}
|
|
|
|
// Fill in data
|
|
CBase.jsModule.fillInData();
|
|
|
|
// Bind language binds;
|
|
CBase.jsModule.languageBinds(jqObj);
|
|
};
|
|
|
|
// Base field binds
|
|
SysSiteMap.prototype.baseFieldBinds = function(jqObj){
|
|
var _this = this;
|
|
|
|
// Bind base field actions
|
|
_this.baseFieldActions(jqObj);
|
|
|
|
// Bind title action binds;
|
|
_this.titleActionBinds(jqObj);
|
|
|
|
// Bind title action binds;
|
|
//_this.baseSettingsChkBoxBinds(jqObj);
|
|
|
|
// BField binds && Menu load binds;
|
|
_this.bFieldBinds(jqObj);
|
|
|
|
|
|
|
|
_this.bindMenusLoad(jqObj);
|
|
|
|
|
|
// Bind all document binds
|
|
_this.documentBinds(jqObj);
|
|
};
|
|
|
|
// Bind base field actions
|
|
SysSiteMap.prototype.baseFieldActions = function(jqObj){
|
|
|
|
var _this = this;
|
|
|
|
var val = "";
|
|
var jqUrlObj = jqObj.find('input#p_url'),
|
|
jqFullUrlObj = jqObj.find("span#full_url"),
|
|
jqParentUrlObj = jqObj.find("a#parent_url");
|
|
|
|
// On blur take title value and set it to full url input if its not empty
|
|
jqObj.find('input#p_title').bind('blur', function(){
|
|
|
|
val = _this.removeSpecial($(this).val());
|
|
if(!jqUrlObj.val()){
|
|
jqUrlObj.val(val);
|
|
val += "/";
|
|
jqFullUrlObj.html(jqObj.find("input#p_parent").val.length ? (jqParentUrlObj.html().length ? jqParentUrlObj.html() : "/") + val : "/" + val);
|
|
}
|
|
|
|
});
|
|
|
|
// Bind on blur url field
|
|
jqUrlObj.bind("blur", function(){
|
|
|
|
val = _this.removeSpecial($(this).val());
|
|
if(val.length){
|
|
$(this).val(val);
|
|
val += "/";
|
|
jqFullUrlObj.html(jqObj.find("input#p_parent").val().length ? (jqParentUrlObj.html().length ? jqParentUrlObj.html() : "/") + val : "/" + val)
|
|
}
|
|
|
|
});
|
|
|
|
// Bind load modules;
|
|
jqObj.find("#modules_set").find(".plus_btn").click(function(){
|
|
_this.oModDialog = new ModuleDialogBox(jqObj, $(this).parent().next().attr("id"))
|
|
});
|
|
// Bind load modules;
|
|
jqObj.find("#modules_set").find(".chose_module").click(function(){
|
|
_this.oModDialog = new ModuleDialogBox(jqObj, "app_modules")
|
|
});
|
|
|
|
};
|
|
/**
|
|
* Function to remove special characters from text, returns the result string
|
|
*
|
|
* @author Aivars Žukovskis <info@brsystems.lv>
|
|
* @category SysSiteMap
|
|
*/
|
|
SysSiteMap.prototype.removeSpecial = function(text){
|
|
var specialChars = {
|
|
"ā" : "a",
|
|
"č" : "c",
|
|
"ē" : "e",
|
|
"ģ" : "g",
|
|
"ī" : "i",
|
|
"ķ" : "k",
|
|
"ļ" : "l",
|
|
"ņ" : "n",
|
|
"ū" : "u",
|
|
"š" : "s",
|
|
"ž" : "z",
|
|
" " : "-"
|
|
};
|
|
|
|
if(text.length) {
|
|
var lower = text.toLowerCase();
|
|
var result = "";
|
|
for(var i=0; i<lower.length; ++i) {
|
|
if(specialChars[lower[i]])
|
|
result += specialChars[lower[i]];
|
|
else
|
|
result += lower[i]
|
|
}
|
|
return result.replace(/[^a-zA-Z0-9-]/g,"");
|
|
}
|
|
return '';
|
|
};
|
|
|
|
// Bind bField binds
|
|
SysSiteMap.prototype.bindMenusLoad = function(jqObj){
|
|
var _this = this;
|
|
|
|
var jqObjectDialogBox = $("#confirmDialog");
|
|
jqObj.find("#menus_set").find(".plus_btn").click(function(e){
|
|
e.stopImmediatePropagation();
|
|
var jqCaller = $(this);
|
|
var jqSettings = jqCaller.closest("div.settings");
|
|
var id = jqSettings.attr("id");
|
|
|
|
if(id && id.length){
|
|
var sAct = "", sClass = "", sTitle = "", selId = "", selText = "",
|
|
data = {};
|
|
switch (id){
|
|
case "menus_set":
|
|
sAct = "getMenus";
|
|
sClass = "get_menu";
|
|
sTitle = 'Select menus';
|
|
|
|
break;
|
|
}
|
|
|
|
_this.oTable.sendAjaxActionAdvanced({
|
|
action : sAct,
|
|
data : data
|
|
}, function(d){
|
|
if(d && d.jsonok){
|
|
|
|
var jqObjectData = d.html;
|
|
|
|
// Create dialog show and append our data in it;
|
|
_this.dialogShowFunction(sTitle, jqObjectData, 'ok', 'cancel', 'noOverFlow');
|
|
|
|
|
|
//----------------------------------------------------------------------------------------------
|
|
// Bind Chosen controllers
|
|
//----------------------------------------------------------------------------------------------
|
|
if(jQuery().chosen){
|
|
var chz = jqObjectDialogBox.find("select.chz");
|
|
// Bind chosen controller & on change function
|
|
chz.chosen({ width : "100%", search_contains: true }).on('change', function(e, params){
|
|
selId = params.selected;
|
|
selText = e.currentTarget[e.currentTarget.selectedIndex]['firstChild']['data'];
|
|
}).on('chosen:showing_dropdown', function(e, params){
|
|
setTimeout(function(){
|
|
params.chosen.container.find(".chosen-search > input").focus()
|
|
}, 250);
|
|
});
|
|
chz.each(function(){
|
|
$(this).next().append("<div class='bottom-border'></div>");
|
|
});
|
|
chz.trigger('chosen:open');
|
|
}else{
|
|
pr("Chosen js missing!");
|
|
}
|
|
|
|
// Bind ok click - write our parent in field;
|
|
jqObjectDialogBox.find("#buttonYes").bind("click", function(){
|
|
if(selId.length && selText.length){
|
|
|
|
switch (id){
|
|
|
|
case "menus_set":
|
|
_this.cloneObjects(jqSettings, {x:{'id' : selId, 'v' : selText}}, jqCaller.parent().attr("id"));
|
|
|
|
// Remove unchecked menus;
|
|
jqCaller.parent().next().find("li:not(.clone) .chk:not(.chked)").each(function(){
|
|
$(this).closest("li").remove();
|
|
});
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
});
|
|
}
|
|
});
|
|
return true;
|
|
}
|
|
});
|
|
return false;
|
|
};
|
|
|
|
|
|
// Bind bField binds
|
|
SysSiteMap.prototype.bFieldBinds = function(jqObj){
|
|
var _this = this;
|
|
|
|
// For Redirect
|
|
jqObj.find(".bfield li.selOpt:not(.pparent)").each(function(){
|
|
var objSel = $(this);
|
|
|
|
// Bind click event for redirect;
|
|
objSel.click(function(){
|
|
objSel.find(".selCnt").toggleClass("ddHover");
|
|
});
|
|
|
|
// Find container for select
|
|
var objSelCnt = objSel.find(".parData");
|
|
// each value in container
|
|
objSelCnt.find("a").each(function(){
|
|
$(this).parent().bind("click", function(){
|
|
var val = $(this).find("a").html();
|
|
var id = $(this).find("a").attr("id");
|
|
// Set value
|
|
objSel.find("a:first")
|
|
.attr("id", id)
|
|
.html(val);
|
|
});
|
|
});
|
|
});
|
|
|
|
// For Parent, permission and menu search;
|
|
var act = "", sClass = "", sTitle = "", data = {}, lang_id = {}, jqObjectDialogBox = $("#confirmDialog");
|
|
var selId = "", selText = "";
|
|
var jqObjFullUrl = jqObj.find("span#full_url"),
|
|
jqObjUrl = jqObj.find("input#p_url");
|
|
|
|
jqObj.find(".bfield").find(".pparent, .p_permission").bind("click", function(){
|
|
var tthis = $(this);
|
|
|
|
if(tthis.hasClass("pparent")){
|
|
// Set action
|
|
act = "getParentsByLanguageId";
|
|
|
|
data['lang_id'] = jqObj.find(".lang_menu li.ts a").attr("id").substr(5);
|
|
data['id'] = $(".form-data > input#id-" + data['lang_id']).val();
|
|
sClass = "pparent";
|
|
sTitle = "Select Parent";
|
|
}else if(tthis.hasClass("p_permission")){
|
|
// Set action
|
|
act = "getPermissions";
|
|
|
|
sClass = "p_permission";
|
|
sTitle = "Select permission";
|
|
}else{
|
|
return false;
|
|
}
|
|
|
|
|
|
_this.oTable.sendAjaxActionAdvanced({
|
|
action : act,
|
|
data : data
|
|
}, function(d){
|
|
if(d && d.jsonok){
|
|
|
|
var jqObjectData = d.html;
|
|
|
|
// Create dialog show and append our data in it;
|
|
_this.dialogShowFunction(sTitle, jqObjectData, 'ok', 'cancel', 'noOverFlow');
|
|
|
|
|
|
//-----------------------------------------------------------------
|
|
// Bind Chosen controllers
|
|
//-----------------------------------------------------------------
|
|
if(jQuery().chosen){
|
|
var chz = jqObjectDialogBox.find("select.chz");
|
|
// Bind chosen controller & on change function
|
|
chz.chosen({
|
|
width : "100%",
|
|
search_contains: true
|
|
}).on('change', function(e, params) {
|
|
selId = params.selected;
|
|
selText = e.currentTarget[e.currentTarget.selectedIndex]['firstChild']['data'];
|
|
}).on('chosen:showing_dropdown', function(e, params) {
|
|
setTimeout(function() {
|
|
params.chosen.container.find(".chosen-search > input").focus()
|
|
}, 250);
|
|
});
|
|
|
|
chz.each(function(){
|
|
$(this).next().append("<div class='bottom-border'></div>");
|
|
});
|
|
|
|
chz.trigger('chosen:open');
|
|
}
|
|
|
|
// Bind ok click - write our parent in field;
|
|
jqObjectDialogBox.find("#buttonYes").bind("click", function(){
|
|
if(selId.length && selText.length){
|
|
|
|
if(sClass === "p_permission"){
|
|
|
|
jqObj.find("input#p_permission").val(selId);
|
|
jqObj.find("input#p_permission_name").val(selText);
|
|
|
|
}else if(sClass === "pparent"){
|
|
|
|
jqObjFullUrl.html(selText + jqObjUrl.val() + "/");
|
|
jqObj.find("input#p_parent").val(selId);
|
|
jqObj.find("a#parent_url").html(selText);
|
|
|
|
}
|
|
}
|
|
});
|
|
}
|
|
});
|
|
return true;
|
|
});
|
|
|
|
// Bind "x" for clearing out permission;
|
|
jqObj.find(".p_permission > span.delete ").bind("click", function(e){
|
|
e.stopPropagation();
|
|
var jqP = $(this).parent();
|
|
jqP.find("input").add(jqP.next().find("input")).val("");
|
|
});
|
|
|
|
// Bind "x" for clearing out parent;
|
|
jqObj.find(".pparent > span.delete ").bind("click", function(e){
|
|
e.stopPropagation();
|
|
|
|
$(this).parent().find("input").val("");
|
|
$(this).parent().find("a").html("/");
|
|
|
|
// delete then delete parent from full url
|
|
jqObjFullUrl.html("/" + jqObjUrl.val());
|
|
_this.oData[$("div.lang_menu li.ts > a").attr("id").substr(5)]['b'][$(this).find("input").attr("id")] = '';
|
|
|
|
});
|
|
|
|
};
|
|
|
|
// Language binds
|
|
SysSiteMap.prototype.languageBinds = function(jqObj){
|
|
|
|
var _this = this;
|
|
|
|
var jqLangObj = jqObj.find(".lang_menu");
|
|
|
|
jqLangObj.find("li").each(function(){
|
|
|
|
var lId = $(this).find("a").attr("id").substr(5);
|
|
|
|
// Delete hover
|
|
var oDel = $(this).find("span.delete");
|
|
|
|
// Bind language delete buttons
|
|
oDel.bind("click", function(e){
|
|
e.stopPropagation();
|
|
|
|
// Show dialog box for confirmation delete;
|
|
_this.dialogShowFunction("Delete this language", "Do you really want to delete this language", "Yes", "No", "delete");
|
|
// Bind dialog accept button
|
|
$("#confirmDialog").find("#buttonYes").bind("click", function(){
|
|
var p = oDel.parent();
|
|
p.addClass("o6");
|
|
|
|
|
|
if(p.prev().length && !p.prev().hasClass("o6"))
|
|
p.prev().trigger("click");
|
|
else if(p.next().length && !p.next().hasClass("o6"))
|
|
p.next().trigger("click");
|
|
|
|
if(_this.oData['deletedPages'] && _this.oData[lId] && _this.oData[lId]["b"]["id"])
|
|
_this.oData['deletedPages'] += "," + _this.oData[lId]["b"]["id"];
|
|
|
|
delete _this.oData[lId];
|
|
|
|
// Clear fields
|
|
p.closest("div.form-data").find("> input#id-" + p.find("a").attr("id").substr(5)).val('');
|
|
_this.fillInData();
|
|
});
|
|
|
|
});
|
|
|
|
// Add class to unused languages
|
|
if(!_this.oData[lId] && !$(this).hasClass("ts"))
|
|
$(this).addClass("o6");
|
|
|
|
// Bind language tab switch buttons
|
|
$(this).bind("click", function(){
|
|
if(!$(this).hasClass("ts")){
|
|
$(this).removeClass("o6");
|
|
// gather save data on selected language before selecting new language;
|
|
|
|
if(_this.saveDataInObject()){
|
|
// Select new language
|
|
$(this).parent().find("li.ts").removeClass("ts");
|
|
$(this).addClass("ts");
|
|
// Fill in new language data
|
|
_this.fillInData();
|
|
}
|
|
|
|
}
|
|
});
|
|
|
|
});
|
|
|
|
// Copy to all languages button
|
|
jqObj.find("#copy_to_all").bind("click", function(){
|
|
|
|
// Get selected language id and gather then all data for this language;
|
|
var langId = jqLangObj.find("li.ts a").attr("id").substr(5);
|
|
_this.saveDataInObject();
|
|
|
|
// Clone all data to all other languages;
|
|
jqLangObj.find("li:not(.ts)").each(function(){
|
|
var lid = $(this).find("a").attr("id").substr(5);
|
|
var id = $("input#id-" + lid);
|
|
if(langId !== lid){
|
|
|
|
// Set old data we need to keep (language based)
|
|
if(_this.oData[lid] && _this.oData[lid].b) {
|
|
var oOldData = {
|
|
furl: _this.oData[lid].b["full_url"],
|
|
title: _this.oData[lid].b["p_title"],
|
|
purl: _this.oData[lid].b["p_url"],
|
|
desc: _this.oData[lid].b["p_description"],
|
|
keyWords: _this.oData[lid].b["p_keywords"],
|
|
redUrl: _this.oData[lid].b["p_redirect_url"],
|
|
parent_url: _this.oData[lid].b["parent_url"]
|
|
};
|
|
}
|
|
|
|
// Rewrite object
|
|
_this.oData[lid] = {};
|
|
_this.oData[lid] = $.extend(true, {}, _this.oData[langId]);
|
|
_this.oData[lid]["b"]["id"] = id.val() ? id.val() : 0;
|
|
|
|
|
|
// Insert back old data we needed to keep (language based)
|
|
if(oOldData) {
|
|
if (oOldData["title"].length) _this.oData[lid]["b"]["p_title"] = oOldData["title"];
|
|
if (oOldData["furl"].length) _this.oData[lid]["b"]["full_url"] = oOldData["furl"];
|
|
if (oOldData["purl"].length) _this.oData[lid]["b"]["p_url"] = oOldData["purl"];
|
|
if (oOldData["desc"].length) _this.oData[lid]["b"]["p_description"] = oOldData["desc"];
|
|
if (oOldData["keyWords"].length) _this.oData[lid]["b"]["p_keywords"] = oOldData["keyWords"];
|
|
if (oOldData["redUrl"].length) _this.oData[lid]["b"]["p_redirect_url"] = oOldData["redUrl"];
|
|
if (oOldData["parent_url"].length) _this.oData[lid]["b"]["parent_url"] = oOldData["parent_url"];
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
};
|
|
|
|
// Title action binds
|
|
SysSiteMap.prototype.titleActionBinds = function(jqObj){
|
|
// Change "title actions" on click classes.
|
|
jqObj.find("li.dd > a").click(function(){
|
|
|
|
var title_action = $(this).parent().find(".title_action");
|
|
|
|
// On click add/remove class on title_action/redirect
|
|
if(title_action.hasClass("ddHover"))
|
|
title_action.removeClass('ddHover');
|
|
else
|
|
title_action.addClass('ddHover');
|
|
|
|
});
|
|
// On button click, remove class from title_action
|
|
jqObj.find(".title_action > li.sbtn").click(function(){
|
|
$(this).parent().removeClass('ddHover')
|
|
});
|
|
};
|
|
|
|
// Document binds
|
|
SysSiteMap.prototype.documentBinds = function(jqObj){
|
|
|
|
$(document)
|
|
.click(function (e){
|
|
|
|
var container = {};
|
|
// Title action;
|
|
// Remove class ddHover if clicked elsewhere.
|
|
jqObj.find(".ddHover").each(function(){
|
|
container = $(this).add($(this).parent()); // div.ddHover + hes parent.
|
|
// if the target of the click isn't the container ... nor a descendant of the container
|
|
if (!container.is(e.target) && container.has(e.target).length === 0)
|
|
container.removeClass("ddHover");
|
|
});
|
|
|
|
})
|
|
.keydown(function (e){ // Do things on key press
|
|
|
|
e = e || window.event;
|
|
if (e.keyCode == CBase.iKeys.ESC){ // on escape
|
|
// hide title actions;
|
|
jqObj.find(".ddHover").removeClass("ddHover");
|
|
}
|
|
|
|
});
|
|
};
|
|
|
|
/**
|
|
* Helper function to load and show dialog form
|
|
*
|
|
* @author Aivars Žukovskis <mareks.keiss@brsystems.lv>
|
|
* @category SysSiteMap
|
|
* @param sTitle - title name ( string )
|
|
* @param jqObjHtml - javascript object - html return object with data
|
|
* @param sClearYes - Button yes name ( string )
|
|
* @param sClearCancel - Button cancel name (string )
|
|
* @param sClass - addition class to add to dialog box;
|
|
* @return void
|
|
*/
|
|
SysSiteMap.prototype.dialogShowFunction = function(sTitle, jqObjHtml, sClearYes, sClearCancel, sClass){
|
|
|
|
CBase.oDialog.jqDialog.removeAttr("class");
|
|
CBase.oDialog.jqDialog.addClass(sClass);
|
|
|
|
CBase.oDialog.show({
|
|
closeBtn: true,
|
|
title : $.isDefined(CBase.gM.sTitle)?CBase.gM.sTitle:sTitle,
|
|
message : jqObjHtml,
|
|
buttons : {
|
|
1 : {
|
|
lbl : $.isDefined(CBase.gM.sClearYes)?CBase.gM.sClearYes:sClearYes,
|
|
id : "buttonYes",
|
|
click : function(){
|
|
CBase.oDialog.hide();
|
|
}
|
|
},
|
|
2 : {
|
|
lbl : $.isDefined(CBase.gM.sClearCancel)?CBase.gM.sClearCancel:sClearCancel,
|
|
id : "buttonNo",
|
|
click : function(){
|
|
CBase.oDialog.hide();
|
|
}
|
|
}
|
|
}
|
|
});
|
|
};
|
|
|
|
/**
|
|
* Helper function to load and show dialog form for change admin folder
|
|
*
|
|
* @author Aivars Žukovskis <mareks.keiss@brsystems.lv>
|
|
* @category SysSiteMap
|
|
* @return void
|
|
*/
|
|
SysSiteMap.prototype.adminChangeDialogBox = function(){
|
|
|
|
var oObj = $(".admin_folder > div").clone();
|
|
var inp = oObj.find("input");
|
|
|
|
inp.bind({
|
|
focusout : function(){
|
|
$(this).val(inp.val().trim().toLowerCase().replace(/[\W_]/g, "-"));
|
|
}
|
|
});
|
|
|
|
CBase.oDialog.jqDialog.removeAttr("class");
|
|
CBase.oDialog.jqDialog.addClass("form-data");
|
|
CBase.oDialog.show({
|
|
closeBtn: true,
|
|
title : $.isDefined(CBase.gM.sTitle)?CBase.gM.sTitle:"Change administration link",
|
|
message : oObj,
|
|
buttons : {
|
|
1 : {
|
|
lbl : $.isDefined(CBase.gM.sClearYes)?CBase.gM.sClearYes:"Change",
|
|
id : "buttonYes",
|
|
click : function(){
|
|
// submit the changes via ajax
|
|
CBase.jsModule.oTable.sendAjaxActionAdvanced({
|
|
action : "changeAdministrationFolder",
|
|
val : inp.val()
|
|
}, function(d){
|
|
if(d && d.jsonok){
|
|
CBase.message.show(false, false, "Administration links changed!");
|
|
CBase.oDialog.hide();
|
|
}else{
|
|
if(d && d.error && d.data){
|
|
inp.attr("title", d.data['a_folder']).parent().addClass("v-error");
|
|
}
|
|
}
|
|
})
|
|
}
|
|
},
|
|
2 : {
|
|
lbl : $.isDefined(CBase.gM.sClearCancel)?CBase.gM.sClearCancel:"Cancel",
|
|
id : "buttonNo",
|
|
click : function(){
|
|
CBase.oDialog.hide();
|
|
}
|
|
}
|
|
}
|
|
});
|
|
};
|
|
|
|
CBlank.prototype.addAdditionalSaveData = function(){
|
|
|
|
// gather save data;
|
|
CBase.jsModule.saveDataInObject();
|
|
|
|
// Return our saved data object for save;
|
|
return CBase.jsModule.oData;
|
|
|
|
};
|
|
|
|
// Fill in all data from javascript if any
|
|
SysSiteMap.prototype.saveDataInObject = function(){
|
|
|
|
var _this = this;
|
|
var jqObject = $("#data").find(".form-data");
|
|
|
|
// Get language id
|
|
var lang_id = jqObject.find(".lang_menu li.ts a").attr("id").substr(5);
|
|
|
|
_this.oData[lang_id] = {
|
|
'b' : {
|
|
'p_menus' : {
|
|
'load_menus' : {},
|
|
'link_menus' : {}
|
|
}
|
|
},
|
|
'mod' : {
|
|
'app' : {},
|
|
'js' : {},
|
|
'css' : {}
|
|
}
|
|
};
|
|
|
|
// Set id
|
|
var id = jqObject.find("#id-" + lang_id).val();
|
|
_this.oData[lang_id]['b']['id'] = (id ? id : 0);
|
|
|
|
// Set extra data;
|
|
_this.oData[lang_id]['b']['p_created'] = jqObject.find(".title ul.record-info #p_created").html();
|
|
_this.oData[lang_id]['b']['p_modified'] = jqObject.find(".title ul.record-info #p_modified").html();
|
|
_this.oData[lang_id]['b']['user_name'] = jqObject.find(".title ul.record-info #user_name").html();
|
|
|
|
// Find all inputs, text area and select fields (including sliders)
|
|
jqObject.find("> div.data input, textarea, select").each(function (){
|
|
id = $(this).attr("id");
|
|
if(id && id.length){
|
|
var sVal = ($(this).val() && $(this).val().length ? $(this).val() : "");
|
|
var jqUl = $(this).closest("ul");
|
|
switch (id){
|
|
case "p_url":
|
|
// Parent id, url and full url;
|
|
_this.oData[lang_id]["b"]["p_parent"] = jqUl.find("input#p_parent").val() ? jqUl.find("input#p_parent").val() : 0;
|
|
_this.oData[lang_id]["b"]["parent_url"] = jqUl.find("a#parent_url").html() ? jqUl.find("a#parent_url").html() : "";
|
|
_this.oData[lang_id]["b"]["full_url"] = jqObject.find("span#full_url").html() ? jqObject.find("span#full_url").html() : "";
|
|
_this.oData[lang_id]["b"][id] = sVal;
|
|
|
|
break;
|
|
case "p_redirect_url":
|
|
// _this.oData[lang_id]['b'][id] = sVal.length ? jqUl.find("#red_url").val() + sVal : "";
|
|
_this.oData[lang_id]['b'][id] = sVal;
|
|
break;
|
|
case "red_url":
|
|
_this.oData[lang_id]['b'][id] = sVal;
|
|
break;
|
|
default:
|
|
_this.oData[lang_id]['b'][id] = sVal;
|
|
|
|
break;
|
|
}
|
|
}
|
|
});
|
|
|
|
|
|
|
|
// Get permission data
|
|
/*jqObject.find(" > div.data li.p_permission").each(function(){
|
|
pr(1);
|
|
if($(this).find("input#p_permission").val().length){
|
|
pr(2);
|
|
_this.oData[lang_id]['b']['p_permission'] = $(this).find("input#p_permission").val();
|
|
_this.oData[lang_id]['b']['p_permission_name'] = $(this).find("a#p_permission_name").html();
|
|
}
|
|
});*/
|
|
|
|
// Get load menus
|
|
var i = 0;
|
|
jqObject.find(" > div.data .menu_load_set > ul > li:not(.clone) div.chked").each(function(){
|
|
_this.oData[lang_id]['b']['p_menus']['load_menus'][i] = {};
|
|
_this.oData[lang_id]['b']['p_menus']['load_menus'][i]['id'] = $(this).attr("id");
|
|
_this.oData[lang_id]['b']['p_menus']['load_menus'][i++]['v'] = $(this).closest("li").find("label").html();
|
|
|
|
});
|
|
// Get link menus
|
|
i = 0;
|
|
jqObject.find(" > div.data .menu_link_set > ul > li:not(.clone) div.chked").each(function(){
|
|
_this.oData[lang_id]['b']['p_menus']['link_menus'][i] = {};
|
|
_this.oData[lang_id]['b']['p_menus']['link_menus'][i]['id'] = $(this).attr("id");
|
|
_this.oData[lang_id]['b']['p_menus']['link_menus'][i++]['v'] = $(this).closest("li").find("label").html();
|
|
});
|
|
|
|
|
|
// Find modules
|
|
jqObject.find(" > div.data #modules_set").each(function(){
|
|
|
|
// Find app modules
|
|
var jqObjApp = $(this).find("#app_modules");
|
|
_this.oData[lang_id]['mod']['app']['mod_code'] = jqObjApp.find("#mod_code").val();
|
|
_this.oData[lang_id]['mod']['app']['mod_action'] = jqObjApp.find("#mod_run").val();
|
|
|
|
i = 0;
|
|
$(this).find("#js_modules div.chked").each(function(){
|
|
_this.oData[lang_id]['mod']['js'][i] = {};
|
|
_this.oData[lang_id]['mod']['js'][i]['v'] = $(this).closest("li").find("label").html();
|
|
_this.oData[lang_id]['mod']['js'][i++]['id'] = $(this).attr("id");
|
|
});
|
|
|
|
i = 0;
|
|
$(this).find("#css_modules div.chked").each(function(){
|
|
_this.oData[lang_id]['mod']['css'][i] = {};
|
|
_this.oData[lang_id]['mod']['css'][i]['v'] = $(this).closest("li").find("label").html();
|
|
_this.oData[lang_id]['mod']['css'][i++]['id'] = $(this).attr("id");
|
|
});
|
|
|
|
});
|
|
|
|
return true;
|
|
};
|
|
|
|
// Fill in all data from javascript if any
|
|
SysSiteMap.prototype.fillInData = function(){
|
|
|
|
var _this = this,
|
|
jqObject = $(".form-data"),
|
|
jqObjApp = jqObject.find('div#app_modules'),
|
|
lId = jqObject.find(".lang_menu li.ts a").attr("id").substr(5);
|
|
|
|
|
|
// Clear fields before anything else;
|
|
jqObject.find("input:not(.p_id), textarea").val(""); // Clear all inputs
|
|
jqObject.find("select").each(function(){ // Reset selects
|
|
$(this).find("option:nth-child(1)").prop("selected", true);
|
|
$(this).trigger("chosen:updated");
|
|
});
|
|
|
|
jqObject.find("div.menu_link_set, div.menu_load_set, div#css_modules, div#js_modules").find("li:not(.clone)").remove();
|
|
jqObjApp.find("#mod_code, #mod_run").val("");
|
|
|
|
|
|
// Check if we have data set and if we do, fill in fields;
|
|
if($.isDefined(_this.oData) && $.isObject(_this.oData) && $.isDefined(_this.oData[lId])){
|
|
|
|
// ---------------------------------------------------------------------------------------------------------
|
|
// Base data && menus
|
|
// ---------------------------------------------------------------------------------------------------------
|
|
if($.isDefined(_this.oData[lId]['b'])){
|
|
for(var id in _this.oData[lId]['b']){
|
|
if(_this.oData[lId]['b'].hasOwnProperty(id) && id !== "p_id"){
|
|
if(id === "p_menus"){ // Add menus
|
|
_this.cloneObjects(jqObject, _this.oData[lId]['b'][id]['link_menus'], 'link_menu');
|
|
_this.cloneObjects(jqObject, _this.oData[lId]['b'][id]['load_menus'], 'load_menu');
|
|
}else{
|
|
// Add base data
|
|
jqObject.find("#" + id + ":not(.p_id)").each(function(){
|
|
if($(this).is("input") || $(this).is("textarea") || $(this).is("select")){
|
|
if(id === "p_redirect_url"){
|
|
// Select drop down
|
|
$(this).closest("ul").find("select").val(_this.oData[lId]['b'].red_url);
|
|
|
|
// set substring
|
|
var $i = 0;
|
|
if(_this.oData[lId]['b'][id].substring(0, 7) === "http://"){
|
|
$i = 7;
|
|
}else if(_this.oData[lId]['b'][id].substring(0, 1) === "/"){
|
|
$i = 1;
|
|
}
|
|
|
|
$(this).val(_this.oData[lId]['b'][id] ? _this.oData[lId]['b'][id].substr($i) : "");
|
|
}else{
|
|
$(this).val(_this.oData[lId]['b'][id] ? _this.oData[lId]['b'][id] : "");
|
|
}
|
|
}else if($(this).is("a") || $(this).is("span")){
|
|
if(id === "parent_url")
|
|
$(this).html(_this.oData[lId]['b'][id] ? _this.oData[lId]['b'][id] : '/');
|
|
else
|
|
$(this).html(_this.oData[lId]['b'][id] ? _this.oData[lId]['b'][id] : '');
|
|
}else if($(this).is("li")){
|
|
$(this).find("> a").html(_this.oData[lId]['b'][id] ? _this.oData[lId]['b'][id] : '')
|
|
}
|
|
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
// Update all chosen fields
|
|
jqObject.find(".chz").trigger("chosen:updated");
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------------------------------------
|
|
// Select active modules
|
|
// ---------------------------------------------------------------------------------------------------------
|
|
if($.isDefined(_this.oData[lId]['mod'])){
|
|
if($.isDefined(_this.oData[lId]['mod']['app'])){
|
|
|
|
var mCode = _this.oData[lId]['mod']['app']['mod_code'];
|
|
var mAction = _this.oData[lId]['mod']['app']['mod_action'];
|
|
|
|
jqObjApp.find('#mod_code').val(mCode);
|
|
jqObjApp.find('#mod_run').val(mAction);
|
|
|
|
}
|
|
if($.isDefined(_this.oData[lId]['mod']['css']))
|
|
_this.cloneObjects(jqObject, _this.oData[lId]['mod']['css'], 'css_modules');
|
|
if($.isDefined(_this.oData[lId]['mod']['js']))
|
|
_this.cloneObjects(jqObject, _this.oData[lId]['mod']['js'], 'js_modules');
|
|
}
|
|
}
|
|
|
|
// Update all sliders
|
|
CBase.checkboxes.bindSliderCheckboxesUpdate(jqObject);
|
|
};
|
|
|
|
// Clone Objects;
|
|
SysSiteMap.prototype.cloneObjects = function(jqObject, d, t){
|
|
|
|
var jqObjDiv = $("");
|
|
switch(t){
|
|
case 'link_menu':
|
|
jqObjDiv = jqObject.find("div.menu_link_set");
|
|
|
|
break;
|
|
case 'load_menu':
|
|
jqObjDiv = jqObject.find("div.menu_load_set");
|
|
|
|
break;
|
|
case 'css_modules':
|
|
jqObjDiv = jqObject.find('div#css_modules');
|
|
|
|
break;
|
|
case 'js_modules':
|
|
jqObjDiv = jqObject.find('div#js_modules');
|
|
|
|
break;
|
|
}
|
|
|
|
if(jqObjDiv.length){
|
|
for(var b in d){
|
|
if(d.hasOwnProperty(b)){
|
|
// Get the cloneable object;
|
|
var objToClone = jqObjDiv.find("ul.dx li.clone");
|
|
var liClone = objToClone.clone(true);
|
|
|
|
liClone.removeClass("clone").find(".chk").addClass("chked").attr("id", d[b]['id']);
|
|
liClone.find("label").attr("for", d[b]['id']).html(d[b]['v']);
|
|
jqObjDiv.find("ul.dx").append(liClone.show());
|
|
}
|
|
}
|
|
}
|
|
|
|
return true;
|
|
};
|
|
|
|
CBlank.prototype.saveBlankViewCallback = function(d){
|
|
|
|
// On save add ids to language pages.
|
|
if(d){
|
|
var jqObj = $(".form-data");
|
|
if(d.ids){
|
|
// On save remove all id's
|
|
jqObj.find(".p_id").each(function(){
|
|
$(this).val("");
|
|
});
|
|
|
|
for(var lang in d.ids){
|
|
if(d.ids.hasOwnProperty(lang)){
|
|
jqObj.find("input#id-" + lang).val(d.ids[lang]);
|
|
CBase.jsModule.oData[lang]["b"]["id"] = d.ids[lang];
|
|
}
|
|
}
|
|
}
|
|
if(d.error && d.data){
|
|
for(var lang_id in d.data){
|
|
if(d.data.hasOwnProperty(lang_id)){
|
|
|
|
if(!jqObj.find("a#lang-" + lang_id).parent().hasClass("ts"))
|
|
jqObj.find("a#lang-" + lang_id).trigger("click");
|
|
|
|
for(var i in d.data[lang_id]["b"]){
|
|
if(d.data[lang_id]["b"].hasOwnProperty(i)){
|
|
var o = jqObj.find("#"+i);
|
|
if(!o.is(":visible")){
|
|
o.closest(".settings").find("h3").trigger("click");
|
|
}
|
|
$('html, body').animate({scrollTop:o.offset().top-80}, 400);
|
|
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
};
|
|
|
|
// Rewrite Save error callback function
|
|
CBlank.prototype.saveBlankErrorCallback = function(d){
|
|
CBase.jsModule.showErrorOnSave();
|
|
};
|
|
|
|
// Update count classification selection availability
|
|
SysSiteMap.prototype.showErrorOnSave = function(){
|
|
|
|
var err = $(".v-error:first");
|
|
if(err.length){
|
|
if(!err.is(":visible"))
|
|
err.closest(".settings").find("h3").trigger("click");
|
|
$('html, body').animate({scrollTop:err.find("input,textarea").offset().top-80}, 400);
|
|
}
|
|
};
|
|
|
|
|
|
SysSiteMap.prototype.handleTreeActions = function($action){
|
|
var _this = this;
|
|
|
|
switch ($action) {
|
|
case "minify_css":
|
|
_this.cacheMapById(false, "minify_css");
|
|
|
|
break;
|
|
case "minify_js":
|
|
_this.cacheMapById(false, "minify_js");
|
|
|
|
break;
|
|
case "clear_cache":
|
|
_this.cacheMapById(true);
|
|
|
|
break;
|
|
}
|
|
|
|
};
|
|
|
|
/**
|
|
* Helper function to create & clear module cache
|
|
*
|
|
* @author Mareks Keišs <mareks.keiss@brsystems.lv>
|
|
* @category Content
|
|
* @param bClear_only - indicates to clear cache only
|
|
* @param $all - indicates to clear all
|
|
* @param $pub - indicates to clear only pub
|
|
* @return void
|
|
*/
|
|
SysSiteMap.prototype.cacheMapById = function(bClear_only, action){
|
|
var _this = this;
|
|
|
|
var oData = {};
|
|
if($.isDefined(bClear_only)) oData["action"] = "clear_only";
|
|
if($.isDefined(action)) oData["action"] = action;
|
|
|
|
// Set data
|
|
var data = {
|
|
action : "cache",
|
|
data : $.toJSON(oData)
|
|
};
|
|
|
|
_this.oTable.sendAjaxActionAdvanced(data, function(d){
|
|
if(d && d.jsonok && d.data && d.data.msg){
|
|
CBase.message.show(false, false, d.data.msg);
|
|
}else{
|
|
CBase.message.show(true, false, d.msg ? d.msg : "Error!");
|
|
}
|
|
});
|
|
};
|
|
|
|
/**
|
|
* Helper function to send custom table actions
|
|
*
|
|
* @author Mareks Keišs <mareks.keiss@brsystems.lv>
|
|
* @category Content
|
|
* @param object jqObj - caller object
|
|
* @param bool bSendSelRows optional - add selected rows
|
|
* @param bool bFilterTable optional - filter table on jsonok
|
|
*/
|
|
SysSiteMap.prototype.handleSendOnlyActions = function(jqObj, bSendSelRows, bFilterTable){
|
|
var _this = this;
|
|
|
|
// Set data
|
|
var data = {
|
|
action : jqObj.attr("id")
|
|
};
|
|
|
|
// Add additional data to array
|
|
if(defaultVal(bSendSelRows, false)) data["rows"] = _this.oTable.getSelectedTableRows();
|
|
|
|
_this.oTable.sendAjaxActionAdvanced(data, function(d){
|
|
if(d && $.isDefined(d.jsonok)){
|
|
if(defaultVal(bFilterTable, false)) _this.oTable.filterTableData(true);
|
|
if(d.msg) CBase.message.show(false, true, d.msg);
|
|
}else if(d && $.isDefined(d.error))
|
|
if(d.msg) CBase.message.show(true, true, d.msg);
|
|
});
|
|
};
|
|
|
|
return SysSiteMap;
|
|
|
|
})(); |