diff options
author | Simo Sorce <simo@redhat.com> | 2014-11-06 14:01:04 -0500 |
---|---|---|
committer | Patrick Uiterwijk <puiterwijk@redhat.com> | 2014-11-12 23:48:02 +0100 |
commit | dc9f4a30a47cdce1e0070c18398351ea6c307305 (patch) | |
tree | 19ddbaa13ca9903098e48a8b9a7157ba3e0497e3 /ipsilon/admin | |
parent | 0034ad1215de99fc13e9dc57bc652cfb8eeb58ae (diff) | |
download | ipsilon-dc9f4a30a47cdce1e0070c18398351ea6c307305.tar.gz ipsilon-dc9f4a30a47cdce1e0070c18398351ea6c307305.tar.xz ipsilon-dc9f4a30a47cdce1e0070c18398351ea6c307305.zip |
Add visual cues to configuration panels
Make it easier to recognize which plugins are enabled and which are
disabled. Also make it easier to recognize when a plugin has just changed
state, by flashing its row (help also realize it may have moved up/down)
Based on concept work by Petr Vobornik
Signed-off-by: Simo Sorce <simo@redhat.com>
Reviewed-by: Patrick Uiterwijk <puiterwijk@redhat.com>
Diffstat (limited to 'ipsilon/admin')
-rwxr-xr-x | ipsilon/admin/common.py | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/ipsilon/admin/common.py b/ipsilon/admin/common.py index af315ff..2b83314 100755 --- a/ipsilon/admin/common.py +++ b/ipsilon/admin/common.py @@ -141,13 +141,6 @@ class AdminPluginsOrder(AdminPage): def GET(self, *args, **kwargs): return self.parent.root_with_msg() - def _get_enabled_list(self): - cur = list() - for p in self._site[self.facility].available.values(): - if p.is_enabled: - cur.append(p.name) - return cur - @admin_protect def POST(self, *args, **kwargs): @@ -158,7 +151,8 @@ class AdminPluginsOrder(AdminPage): message = "Nothing was modified." message_type = "info" - cur_enabled = self._get_enabled_list() + changed = None + cur_enabled = self._site[self.facility].enabled if 'order' in kwargs: order = kwargs['order'].split(',') @@ -185,6 +179,12 @@ class AdminPluginsOrder(AdminPage): message = "New configuration saved." message_type = ADMIN_STATUS_OK + changed = dict() + self.debug('%s -> %s' % (cur_enabled, new_order)) + for i in range(0, len(cur_enabled)): + if cur_enabled[i] != new_order[i]: + changed[cur_enabled[i]] = 'reordered' + except ValueError, e: message = str(e) message_type = ADMIN_STATUS_ERROR @@ -194,7 +194,8 @@ class AdminPluginsOrder(AdminPage): message_type = ADMIN_STATUS_ERROR return self.parent.root_with_msg(message=message, - message_type=message_type) + message_type=message_type, + changed=changed) class AdminPlugins(AdminPage): @@ -223,15 +224,19 @@ class AdminPlugins(AdminPage): def save_enabled_plugins(self, names): self._site[self.facility].save_enabled(names) - def root_with_msg(self, message=None, message_type=None): + def root_with_msg(self, message=None, message_type=None, changed=None): plugins = self._site[self.facility] + if changed is None: + changed = dict() + targs = {'title': self.title, 'menu': self._master.menu, 'message': message, 'message_type': message_type, 'available': plugins.available, 'enabled': plugins.enabled, + 'changed': changed, 'baseurl': self.url, 'newurl': self.url} if self.order: @@ -269,7 +274,8 @@ class AdminPlugins(AdminPage): obj.enable() obj.save_enabled_state() msg = "Plugin %s enabled" % obj.name - return self.root_with_msg(msg, ADMIN_STATUS_OK) + return self.root_with_msg(msg, ADMIN_STATUS_OK, + changed={obj.name: 'enabled'}) enable.public_function = True @admin_protect @@ -283,7 +289,8 @@ class AdminPlugins(AdminPage): obj.disable() obj.save_enabled_state() msg = "Plugin %s disabled" % obj.name - return self.root_with_msg(msg, ADMIN_STATUS_OK) + return self.root_with_msg(msg, ADMIN_STATUS_OK, + changed={obj.name: 'disabled'}) disable.public_function = True |