diff options
Diffstat (limited to 'install/static/service.js')
-rw-r--r-- | install/static/service.js | 233 |
1 files changed, 160 insertions, 73 deletions
diff --git a/install/static/service.js b/install/static/service.js index 1b467cb5..6a79af07 100644 --- a/install/static/service.js +++ b/install/static/service.js @@ -26,115 +26,202 @@ function ipa_service() { 'name': 'service' }); + that.super_init = that.super('init'); + that.init = function() { - that.create_add_dialog({ + + var dialog = ipa_service_add_dialog({ 'name': 'add', - 'title': 'Add New Service', - 'init': ipa_service_add_init + 'title': 'Add New Service' }); + that.add_dialog(dialog); + dialog.init(); - that.create_search_facet({ + var facet = ipa_service_search_facet({ 'name': 'search', - 'label': 'Search', - 'init': ipa_service_search_init + 'label': 'Search' }); + that.add_facet(facet); - that.create_details_facet({ + facet = ipa_service_details_facet({ 'name': 'details', - 'label': 'Details', - 'init': ipa_service_details_init + 'label': 'Details' }); - }; + that.add_facet(facet); - that.init(); + facet = ipa_association_facet({ + 'name': 'associate' + }); + that.add_facet(facet); + + that.create_association({ + 'name': 'host', + 'add_method': 'add_host', + 'delete_method': 'remove_host' + }); + + that.super_init(); + }; return that; } IPA.add_entity(ipa_service()); -function ipa_service_add_init() { +function ipa_service_add_dialog(spec) { - this.create_field({ - name: 'krbprincipalname', - label: 'Principal', - setup: service_add_krbprincipalname - }); + spec = spec || {}; - this.create_field({name:'service', label:'Service'}); - this.create_field({name:'host', label:'Host Name'}); -} + var that = ipa_add_dialog(spec); -function ipa_service_search_init() { + that.super_init = that.super('init'); - this.create_column({name:'krbprincipalname', label:'Principal'}); + that.init = function() { - this.create_column({ - name: 'quick_links', - label: 'Quick Links', - setup: ipa_entity_quick_links - }); -} + this.super_init(); -function ipa_service_details_init() { + this.add_field(ipa_widget({ + name: 'krbprincipalname', + label: 'Principal' + })); - var section = this.create_section({name:'details', label:'Service Details'}); + this.add_field(ipa_text_widget({name:'service', label:'Service'})); + this.add_field(ipa_text_widget({name:'host', label:'Host Name'})); + }; - section.create_field({ - name: 'krbprincipalname', - label: 'Principal', - setup: service_krbprincipalname_setup, - load: service_krbprincipalname_load - }); + that.create = function() { - section.create_field({ - name: 'service', - label: 'Service', - load: service_service_load - }); + var table = $('<table/>').appendTo(that.container); - section.create_field({ - name: 'host', - label: 'Host Name', - load: service_host_load - }); + var field = that.get_field('service'); - section = this.create_section({name:'provisioning', label:'Provisioning'}); + var tr = $('<tr/>').appendTo(table); - section.create_field({ - name: 'provisioning_status', - label: 'Status', - load: service_provisioning_status_load - }); + var td = $('<td/>', { + 'style': 'vertical-align: top;' + }).appendTo(tr); + td.append(field.label+': '); - section = this.create_section({name:'certificate', label:'Service Certificate'}); + td = $('<td/>', { + 'style': 'vertical-align: top;' + }).appendTo(tr); - section.create_field({ - name: 'certificate_status', - label: 'Status', - load: service_usercertificate_load - }); -} + $('<input/>', { + 'type': 'text', + 'name': 'service', + 'size': 20 + }).appendTo(td); + + field = that.get_field('host'); + + tr = $('<tr/>').appendTo(table); + + td = $('<td/>', { + 'style': 'vertical-align: top;' + }).appendTo(tr); + td.append(field.label+': '); + + td = $('<td/>', { + 'style': 'vertical-align: top;' + }).appendTo(tr); + + $('<input/>', { + 'type': 'text', + 'name': 'host', + 'size': 40 + }).appendTo(td); + }; + + that.get_record = function() { + var record = {}; + + var field = that.get_field('service'); + var service = field.save(that.container)[0]; + + field = that.get_field('host'); + var host = field.save(that.container)[0]; -function service_add_krbprincipalname(add_dialog, mode) { - if (mode == IPA_ADD_UPDATE) { - var service = add_dialog.find('input[name=service]').val(); - var host = add_dialog.find('input[name=host]').val(); - return service+'/'+host; - } - return null; + record['krbprincipalname'] = service+'/'+host; + + return record; + }; + + return that; } -ipa_entity_set_association_definition('service', { - 'host': { add_method: 'add_host', delete_host: 'remove_host' } -}); +function ipa_service_search_facet(spec) { -function service_krbprincipalname_setup(container) { - // skip krbprincipalname + spec = spec || {}; + + var that = ipa_search_facet(spec); + + that.super_init = that.super('init'); + + that.init = function() { + + this.create_column({name:'krbprincipalname', label:'Principal'}); + + this.create_column({ + name: 'quick_links', + label: 'Quick Links', + setup: ipa_entity_quick_links + }); + + that.super_init(); + }; + + return that; } -function service_krbprincipalname_load(container, result) { - // skip krbprincipalname +function ipa_service_details_facet(spec) { + + spec = spec || {}; + + var that = ipa_details_facet(spec); + + that.super_init = that.super('init'); + + that.init = function() { + + var section = this.create_section({name:'details', label:'Service Details'}); + + section.create_field({ + name: 'krbprincipalname', + label: 'Principal' + }); + + section.create_field({ + name: 'service', + label: 'Service', + load: service_service_load + }); + + section.create_field({ + name: 'host', + label: 'Host Name', + load: service_host_load + }); + + section = this.create_section({name:'provisioning', label:'Provisioning'}); + + section.create_field({ + name: 'provisioning_status', + label: 'Status', + load: service_provisioning_status_load + }); + + section = this.create_section({name:'certificate', label:'Service Certificate'}); + + section.create_field({ + name: 'certificate_status', + label: 'Status', + load: service_usercertificate_load + }); + + that.super_init(); + }; + + return that; } function service_service_load(container, result) { |