summaryrefslogtreecommitdiffstats
path: root/install/ui/src/freeipa/entitle.js
diff options
context:
space:
mode:
Diffstat (limited to 'install/ui/src/freeipa/entitle.js')
-rw-r--r--install/ui/src/freeipa/entitle.js85
1 files changed, 54 insertions, 31 deletions
diff --git a/install/ui/src/freeipa/entitle.js b/install/ui/src/freeipa/entitle.js
index 2430e289..77dd0836 100644
--- a/install/ui/src/freeipa/entitle.js
+++ b/install/ui/src/freeipa/entitle.js
@@ -18,28 +18,35 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-define(['./ipa', './jquery', './text', './details', './search', './add',
- './facet', './entity', './field', './widget'], function(IPA, $, text) {
-
-IPA.entitle = {};
+define([
+ './ipa',
+ './jquery',
+ './phases',
+ './reg',
+ './text',
+ './details',
+ './search',
+ './add',
+ './facet',
+ './entity',
+ './field',
+ './widget'],
+ function(IPA, $, phases, reg, text) {
+
+var exp = IPA.entitle = {};
IPA.entitle.unregistered = 'unregistered';
IPA.entitle.online = 'online';
IPA.entitle.offline = 'offline';
-IPA.entitle.entity = function(spec) {
-
- spec = spec || {};
-
- var that = IPA.entity(spec);
-
- that.status = IPA.entitle.unregistered;
-
- that.init = function() {
- that.entity_init();
- that.builder.facet_groups([ 'account', 'certificates' ]).
- details_facet({
+var make_spec = function() {
+return {
+ name: 'entitle',
+ facet_groups: [ 'account', 'certificates' ],
+ facets: [
+ {
+ $type: 'details',
$factory: IPA.entitle.details_facet,
label: '@i18n:objects.entitle.account',
facet_group: 'account',
@@ -82,8 +89,8 @@ IPA.entitle.entity = function(spec) {
]
}
]
- }).
- facet({
+ },
+ {
$factory: IPA.entitle.certificates_facet,
name: 'certificates',
label: '@i18n:objects.entitle.certificates',
@@ -111,9 +118,11 @@ IPA.entitle.entity = function(spec) {
label: '@i18n:objects.entitle.certificate'
}
]
- }).
- standard_association_facets().
- dialog({
+ }
+ ],
+ standard_association_facets: true,
+ dialogs: [
+ {
$factory: IPA.entitle.register_online_dialog,
name: 'online_registration',
title: '@i18n:objects.entitle.registration',
@@ -134,8 +143,8 @@ IPA.entitle.entity = function(spec) {
}
*/
]
- }).
- dialog({
+ },
+ {
$factory: IPA.entitle.register_offline_dialog,
name: 'offline_registration',
title: '@i18n:objects.entitle.import_certificate',
@@ -146,8 +155,8 @@ IPA.entitle.entity = function(spec) {
label: '@i18n:objects.entitle.certificate'
}
]
- }).
- dialog({
+ },
+ {
$factory: IPA.entitle.consume_dialog,
name: 'consume',
title: '@i18n:objects.entitle.consume_entitlement',
@@ -158,8 +167,8 @@ IPA.entitle.entity = function(spec) {
metadata: '@mc-arg:entitle_consume:quantity'
}
]
- }).
- dialog({
+ },
+ {
$factory: IPA.entitle.import_dialog,
name: 'import',
title: '@i18n:objects.entitle.import_certificate',
@@ -170,8 +179,17 @@ IPA.entitle.entity = function(spec) {
label: '@i18n:objects.entitle.certificate'
}
]
- });
- };
+ }
+ ]
+};};
+
+IPA.entitle.entity = function(spec) {
+
+ spec = spec || {};
+
+ var that = IPA.entity(spec);
+
+ that.status = spec.status || IPA.entitle.unregistered;
that.get_accounts = function(on_success, on_error) {
@@ -740,7 +758,12 @@ IPA.entitle.download_widget = function(spec) {
return that;
};
-IPA.register('entitle', IPA.entitle.entity);
+exp.entity_spec = make_spec();
+exp.register = function() {
+ var e = reg.entity;
+ e.register({type: 'entitle', spec: exp.entity_spec});
+};
+phases.on('registration', exp.register);
-return {};
+return exp;
}); \ No newline at end of file