summaryrefslogtreecommitdiffstats
path: root/modules-available/sysconfig/clientscript.js
diff options
context:
space:
mode:
Diffstat (limited to 'modules-available/sysconfig/clientscript.js')
-rw-r--r--modules-available/sysconfig/clientscript.js195
1 files changed, 113 insertions, 82 deletions
diff --git a/modules-available/sysconfig/clientscript.js b/modules-available/sysconfig/clientscript.js
index 1553d678..9dbb0745 100644
--- a/modules-available/sysconfig/clientscript.js
+++ b/modules-available/sysconfig/clientscript.js
@@ -1,88 +1,113 @@
// Mouseover and clicking
-var $ct = $('#conftable').find('.confrow');
-$ct.click(function() {
- showmod(this, 'bold');
-}).mouseenter(function() {
- showmod(this, 'fade');
-}).mouseleave(function() {
- showmod(this, 'reset');
-});
-var $mt = $('#modtable').find('.modrow');
-$mt.click(function() {
- showconf(this, 'bold');
-}).mouseenter(function() {
- showconf(this, 'fade');
-}).mouseleave(function() {
- showconf(this, 'reset');
-});
+(function() {
+ var boldItem = false;
+ var modToConf = false;
-var boldItem = false;
-var revList = false;
-
-function showpre(e, action) {
- if (boldItem && action !== 'bold') return 'reset';
- if (boldItem) {
- if (e === boldItem) action = 'fade';
- boldItem = false;
- }
- $mt.removeClass("slx-bold slx-fade");
- $ct.removeClass("slx-bold slx-fade");
- return action;
-}
-
-function buildRevList() {
- revList = {};
- $ct.each(function() {
- var elem = $(this);
- var cid = elem.data('id')+'';
- var list = (elem.data('modlist')+'').split(',');
+ var $ct = $('#conftable').find('.confrow .title');
+ $ct.click(function () {
+ showmod(this, 'bold');
+ }).mouseenter(function () {
+ showmod(this, 'fade');
+ }).mouseleave(function () {
+ showmod(this, 'reset');
+ });
+ var $mt = $('#modtable').find('.modrow .title');
+ $mt.click(function () {
+ showconf(this, 'bold');
+ }).mouseenter(function () {
+ showconf(this, 'fade');
+ }).mouseleave(function () {
+ showconf(this, 'reset');
+ });
+ var $confirm = $('#delete-item-list');
+ $('.btn-del-module').click(function() {
+ var mid = $(this).val() + '';
+ var list = modToConf[mid];
+ if (!list || !list.length) {
+ $confirm.append($msgs).addClass('hidden');
+ return;
+ }
+ var $msgs = $confirm.find('ul').empty();
for (var i = 0; i < list.length; ++i) {
- if (!revList[list[i]]) revList[list[i]] = [];
- revList[list[i]].push(cid);
+ $msgs.append($('<li>').text(
+ $('.confrow[data-id="' + list[i] + '"] .title').text()
+ ));
}
+ $confirm.removeClass('hidden');
});
-}
+ $('.btn-del-config').click(function() {
+ $confirm.addClass('hidden');
+ });
+
+ buildRevList();
+ var mods = [];
+ $('#modtable .modrow').each(function() { mods.push($(this).data('id')) });
+ mods.forEach(function(e) { if (modToConf[e] === undefined) $('.modrow[data-id=' + e + '] .icon-unused').removeClass('hidden') });
+
+ function showpre(e, action) {
+ if (boldItem && action !== 'bold') return 'reset';
+ if (boldItem) {
+ if (e === boldItem) action = 'fade';
+ boldItem = false;
+ }
+ $mt.removeClass("slx-bold slx-fade");
+ $ct.removeClass("slx-bold slx-fade");
+ return action;
+ }
-function showconf(e, action) {
- action = showpre(e, action);
- if (action === 'reset') return;
- var $e = $(e);
- if (!revList) buildRevList();
- var mid = $e.data('id')+'';
- var list = revList[mid];
- if (list && list.length > 0) $ct.each(function() {
- var elem = $(this);
- var cid = elem.data('id')+'';
- if (list.indexOf(cid) === -1)
- elem.addClass('slx-fade');
- else if (action === 'bold')
- elem.addClass('slx-bold');
- }); else $ct.addClass('slx-fade');
- if (action === 'bold') {
- boldItem = e;
- $e.addClass("slx-bold");
+ function buildRevList() {
+ modToConf = {};
+ $ct.each(function () {
+ var elem = $(this).parent();
+ var cid = elem.data('id') + '';
+ var list = (elem.data('modlist') + '').split(',');
+ for (var i = 0; i < list.length; ++i) {
+ if (!modToConf[list[i]]) modToConf[list[i]] = [];
+ modToConf[list[i]].push(cid);
+ }
+ });
}
-}
-function showmod(e, action) {
- action = showpre(e, action);
- if (action === 'reset') return;
- var $e = $(e);
- var list = ($e.data('modlist')+'').split(',');
- $mt.each(function () {
- var elem = $(this);
- if (list.indexOf(elem.data('id')+'') === -1)
- elem.addClass("slx-fade");
- else if (action === 'bold')
- elem.addClass("slx-bold");
- });
- if (action === 'bold') {
- boldItem = e;
- $e.addClass("slx-bold");
+ function showconf(e, action) {
+ action = showpre(e, action);
+ if (action === 'reset') return;
+ var $e = $(e);
+ var mid = $e.parent().data('id') + '';
+ var list = modToConf[mid];
+ if (list && list.length > 0) $ct.each(function () {
+ var elem = $(this);
+ var cid = elem.parent().data('id') + '';
+ if (list.indexOf(cid) === -1)
+ elem.addClass('slx-fade');
+ else if (action === 'bold')
+ elem.addClass('slx-bold');
+ }); else $ct.addClass('slx-fade');
+ if (action === 'bold') {
+ boldItem = e;
+ $e.addClass("slx-bold");
+ }
}
-}
+
+ function showmod(e, action) {
+ action = showpre(e, action);
+ if (action === 'reset') return;
+ var $e = $(e);
+ var list = ($e.parent().data('modlist') + '').split(',');
+ $mt.each(function () {
+ var elem = $(this);
+ if (list.indexOf(elem.parent().data('id') + '') === -1)
+ elem.addClass("slx-fade");
+ else if (action === 'bold')
+ elem.addClass("slx-bold");
+ });
+ if (action === 'bold') {
+ boldItem = e;
+ $e.addClass("slx-bold");
+ }
+ }
+})();
// Polling for updated status (outdated, missing, ok)
@@ -91,23 +116,29 @@ var statusChecks = 0;
function checkBuildStatus() {
var mods = [];
var confs = [];
- $(".refmod.btn-primary").each(function (index) {
+ $(".modrow .btn-rebuild.btn-primary").each(function (index) {
mods.push($(this).val());
});
- $(".refconf.btn-primary").each(function (index) {
+ $(".confrow .btn-rebuild.btn-primary").each(function (index) {
confs.push($(this).val());
});
if (mods.length === 0 && confs.length === 0) return;
if (++statusChecks < 10) setTimeout(checkBuildStatus, 150 + 100 * statusChecks);
$.post('?do=SysConfig', { mods: mods.join(), confs: confs.join(), token: TOKEN, action: 'status' }, function (data) {
if (typeof data === 'undefined') return;
- if (typeof data.mods === 'object') updateButtonColor($(".refmod.btn-primary"), data.mods);
- if (typeof data.confs === 'object') updateButtonColor($(".refconf.btn-primary"), data.confs);
+ if (typeof data.mods === 'object') updateButtonColor('.modrow', data.mods);
+ if (typeof data.confs === 'object') updateButtonColor('.confrow', data.confs);
}, 'json');
}
-function updateButtonColor(list,ids) {
- list.each(function() {
- if (ids.indexOf($(this).val()) >= 0) $(this).removeClass('btn-primary').addClass('btn-default');
- });
+function updateButtonColor(rowclass,ids) {
+ for (var i = 0; i < ids.length; ++i) {
+ var e = ids[i];
+ var $row = $(rowclass + '[data-id=' + e.id + ']');
+ $row.find('.btn-rebuild').removeClass('btn-primary').addClass('btn-default');
+ if (e.warnings && (typeof e.warnings === 'string') && e.warnings.length > 0) {
+ $row.find('.row-warnings').text(e.warnings);
+ $row.find('.btn-warnings').removeClass('hidden');
+ }
+ }
}