diff options
author | Petr Vobornik <pvoborni@redhat.com> | 2014-05-16 18:32:17 +0200 |
---|---|---|
committer | Petr Vobornik <pvoborni@redhat.com> | 2014-06-23 15:13:14 +0200 |
commit | 6e43d01266f105cdf3cf27a1dbb87ac80da4a06d (patch) | |
tree | 6cb7eb0bd90fbfd85a5423605ce5c80304f1d237 /install/ui | |
parent | 6f5e80b0cec57a89a68f2935b5fe01d919b11031 (diff) | |
download | freeipa-6e43d01266f105cdf3cf27a1dbb87ac80da4a06d.tar.gz freeipa-6e43d01266f105cdf3cf27a1dbb87ac80da4a06d.tar.xz freeipa-6e43d01266f105cdf3cf27a1dbb87ac80da4a06d.zip |
webui: plugin API
new `extend` module should serve as a stable API for plugin authors.
It should expose the most commonly used global calls.
https://fedorahosted.org/freeipa/ticket/4345
Reviewed-By: Endi Sukma Dewata <edewata@redhat.com>
Diffstat (limited to 'install/ui')
-rw-r--r-- | install/ui/doc/categories.json | 3 | ||||
-rw-r--r-- | install/ui/src/freeipa/extend.js | 60 | ||||
-rw-r--r-- | install/ui/src/webui.profile.js | 2 |
3 files changed, 63 insertions, 2 deletions
diff --git a/install/ui/doc/categories.json b/install/ui/doc/categories.json index 01778dae6..8bc0d8b1a 100644 --- a/install/ui/doc/categories.json +++ b/install/ui/doc/categories.json @@ -98,10 +98,11 @@ "IPA.serial_associator", "IPA.bulk_associator", "IPA.association_config", - "spec_util", "_base.debug", "_base.Spec_mod", "datetime", + "extend", + "spec_util", "util" ] } diff --git a/install/ui/src/freeipa/extend.js b/install/ui/src/freeipa/extend.js new file mode 100644 index 000000000..d96f1edf7 --- /dev/null +++ b/install/ui/src/freeipa/extend.js @@ -0,0 +1,60 @@ +/* Authors: + * Petr Vobornik <pvoborni@redhat.com> + * + * Copyright (C) 2014 Red Hat + * see file 'COPYING' for use and warranty information + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +define([ + 'dojo/_base/lang', + './jquery', + './phases', + './app_container', + 'exports' +],function(lang, $, phases, app, extend) { + +/** + * Extension interface + * + * This class provides interface for plugins and tries to hide underlying functionality + * + * @class extend + * @singleton + */ +lang.mixin(extend, { + /** + * Adds element to utility section + * + * This method doesn't do any correction. Expended root node type to add is + * by default `<li>`. + * + * Preferred phase: any after `init` + * + * @param {HTMLElement|jQuery} element Element to add to utility section + * @return {HTMLElement} Utility node + */ + add_menu_utility: function(element) { + + // Should we check if we are in good stage or atleast report that app doesn't exist yet? + + var $utility = $(app.app.app_widget.nav_util_tool_node); + $utility.prepend(element); + return $utility.eq(0); + } +}); + + return extend; +});
\ No newline at end of file diff --git a/install/ui/src/webui.profile.js b/install/ui/src/webui.profile.js index 4176ed826..ad9b15b3a 100644 --- a/install/ui/src/webui.profile.js +++ b/install/ui/src/webui.profile.js @@ -115,7 +115,7 @@ var profile = (function(){ layers: { "freeipa/app": { - include: ["freeipa/app"] + include: ["freeipa/app", "freeipa/extend"] } } }; |