diff options
-rw-r--r-- | modules-available/sysconfig/clientscript.js | 38 | ||||
-rw-r--r-- | modules-available/sysconfig/page.inc.php | 13 | ||||
-rw-r--r-- | modules-available/sysconfig/templates/list-configs.html | 16 | ||||
-rw-r--r-- | modules-available/sysconfig/templates/list-modules.html | 8 |
4 files changed, 35 insertions, 40 deletions
diff --git a/modules-available/sysconfig/clientscript.js b/modules-available/sysconfig/clientscript.js index cafe7b02..a9b85251 100644 --- a/modules-available/sysconfig/clientscript.js +++ b/modules-available/sysconfig/clientscript.js @@ -5,7 +5,7 @@ var boldItem = false; var revList = false; - var $ct = $('#conftable').find('.confrow'); + var $ct = $('#conftable').find('.confrow .title'); $ct.click(function () { showmod(this, 'bold'); }).mouseenter(function () { @@ -13,7 +13,7 @@ }).mouseleave(function () { showmod(this, 'reset'); }); - var $mt = $('#modtable').find('.modrow'); + var $mt = $('#modtable').find('.modrow .title'); $mt.click(function () { showconf(this, 'bold'); }).mouseenter(function () { @@ -33,7 +33,7 @@ var $msgs = $confirm.find('ul').empty(); for (var i = 0; i < list.length; ++i) { $msgs.append($('<li>').text( - $('.confrow[data-id="' + list[i] + '"]').text() + $('.confrow[data-id="' + list[i] + '"] .title').text() )); } $confirm.removeClass('hidden'); @@ -56,7 +56,7 @@ function buildRevList() { revList = {}; $ct.each(function () { - var elem = $(this); + var elem = $(this).parent(); var cid = elem.data('id') + ''; var list = (elem.data('modlist') + '').split(','); for (var i = 0; i < list.length; ++i) { @@ -71,11 +71,11 @@ if (action === 'reset') return; var $e = $(e); if (!revList) buildRevList(); - var mid = $e.data('id') + ''; + var mid = $e.parent().data('id') + ''; var list = revList[mid]; if (list && list.length > 0) $ct.each(function () { var elem = $(this); - var cid = elem.data('id') + ''; + var cid = elem.parent().data('id') + ''; if (list.indexOf(cid) === -1) elem.addClass('slx-fade'); else if (action === 'bold') @@ -91,10 +91,10 @@ action = showpre(e, action); if (action === 'reset') return; var $e = $(e); - var list = ($e.data('modlist') + '').split(','); + var list = ($e.parent().data('modlist') + '').split(','); $mt.each(function () { var elem = $(this); - if (list.indexOf(elem.data('id') + '') === -1) + if (list.indexOf(elem.parent().data('id') + '') === -1) elem.addClass("slx-fade"); else if (action === 'bold') elem.addClass("slx-bold"); @@ -113,23 +113,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'); + } + } } diff --git a/modules-available/sysconfig/page.inc.php b/modules-available/sysconfig/page.inc.php index ede80aa7..1ef478b3 100644 --- a/modules-available/sysconfig/page.inc.php +++ b/modules-available/sysconfig/page.inc.php @@ -209,6 +209,7 @@ class Page_SysConfig extends Page } $configs[] = array( 'warnings' => $row['warnings'], + 'warnings_hidden' => (!empty($row['warnings']) && $row['status'] === 'OK') ? '' : 'hidden', 'configid' => $row['configid'], 'config' => $row['title'], 'modlist' => $row['modlist'], @@ -482,22 +483,14 @@ class Page_SysConfig extends Page if (Request::post('action') === 'status') { $mods = Request::post('mods'); $confs = Request::post('confs'); - $outMods = array(); - $outConfs = array(); $mods = explode(',', $mods); $confs = explode(',', $confs); // Mods - $res = Database::simpleQuery("SELECT moduleid FROM configtgz_module + $outMods = Database::queryAll("SELECT moduleid AS id FROM configtgz_module WHERE moduleid in (:mods) AND status = 'OK'", compact('mods')); - while ($row = $res->fetch(PDO::FETCH_ASSOC)) { - $outMods[] = $row['moduleid']; - } // Confs - $res = Database::simpleQuery("SELECT configid FROM configtgz + $outConfs = Database::queryAll("SELECT configid AS id, warnings FROM configtgz WHERE configid in (:confs) AND status = 'OK'", compact('confs')); - while ($row = $res->fetch(PDO::FETCH_ASSOC)) { - $outConfs[] = $row['configid']; - } Header('Content-Type: application/json'); die(json_encode(array('mods' => $outMods, 'confs' => $outConfs))); } diff --git a/modules-available/sysconfig/templates/list-configs.html b/modules-available/sysconfig/templates/list-configs.html index b5367f8b..1370155f 100644 --- a/modules-available/sysconfig/templates/list-configs.html +++ b/modules-available/sysconfig/templates/list-configs.html @@ -20,21 +20,17 @@ <input type="hidden" name="locationid" value="{{locationid}}"> <table id="conftable" class="slx-table table-hover" style="width:100%"> {{#configs}} - <tr> - <td data-id="{{configid}}" data-modlist="{{modlist}}" class="confrow slx-pointer" width="100%" title="{{dateline_s}}"> + <tr data-id="{{configid}}" data-modlist="{{modlist}}" class="confrow"> + <td class="title slx-pointer" width="100%" title="{{dateline_s}}"> <table class="slx-ellipsis"><tr><td> - {{#warnings}} - <button type="button" class="btn btn-xs btn-default" data-confirm="#confirm-mod-{{configid}}"> + <button type="button" class="btn btn-xs btn-default btn-warnings {{warnings_hidden}}" data-confirm="#confirm-mod-{{configid}}"> <span class="glyphicon glyphicon-exclamation-sign text-danger"></span> </button> - {{/warnings}} {{config}} </td></tr></table> </td> <td> - {{#warnings}} - <pre id="confirm-mod-{{configid}}" class="hidden">{{.}}</pre> - {{/warnings}} + <pre id="confirm-mod-{{configid}}" class="hidden row-warnings">{{warnings}}</pre> {{^current}} <button class="btn btn-primary btn-xs" name="activate" value="{{configid}}" {{perms.config.assign.disabled}}> <span class="glyphicon glyphicon-flag"></span> @@ -59,10 +55,10 @@ {{^locationid}} <button {{#needrebuild}} - class="refconf btn btn-primary btn-xs" + class="btn-rebuild btn btn-primary btn-xs" {{/needrebuild}} {{^needrebuild}} - class="refconf btn btn-default btn-xs" + class="btn-rebuild btn btn-default btn-xs" {{/needrebuild}} name="rebuild" value="{{configid}}" title="{{lang_rebuild}}" {{perms.config.edit.disabled}}> diff --git a/modules-available/sysconfig/templates/list-modules.html b/modules-available/sysconfig/templates/list-modules.html index b8783c59..9284bb24 100644 --- a/modules-available/sysconfig/templates/list-modules.html +++ b/modules-available/sysconfig/templates/list-modules.html @@ -10,9 +10,9 @@ <input type="hidden" name="action" value="module"> <table id="modtable" class="slx-table table-hover" style="width:100%"> {{#modules}} - <tr> + <tr data-id="{{id}}" class="modrow"> <td class="badge text-nowrap">{{moduleType}}</td> - <td data-id="{{id}}" class="modrow slx-pointer" width="100%" title="{{lang_lastEdited}} {{dateline_s}}"> + <td class="title slx-pointer" width="100%" title="{{lang_lastEdited}} {{dateline_s}}"> <table class="slx-ellipsis"><tr><td>{{title}}</td></tr></table> </td> <td class="text-nowrap"> @@ -27,10 +27,10 @@ <td class="text-nowrap"> <button {{#needRebuild}} - class="refmod btn btn-primary btn-xs" + class="btn-rebuild btn btn-primary btn-xs" {{/needRebuild}} {{^needRebuild}} - class="refmod btn btn-default btn-xs" + class="btn-rebuild btn btn-default btn-xs" {{/needRebuild}} name="rebuild" value="{{id}}" title="{{lang_rebuild}}" {{perms.module.edit.disabled}}> <span class="glyphicon glyphicon-refresh"></span> |