summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--install/static/add.js12
-rw-r--r--install/static/index.xhtml1
-rw-r--r--install/static/service.js165
-rw-r--r--install/static/webui.js1
4 files changed, 83 insertions, 96 deletions
diff --git a/install/static/add.js b/install/static/add.js
index c657cfe54..71d08338e 100644
--- a/install/static/add.js
+++ b/install/static/add.js
@@ -28,21 +28,19 @@ function add_dialog_create(obj_name, adl)
var add_dialog = $('<div></div>');
function add(evt, called_from_add_and_edit) {
+ var pkey = [];
+ var options = {};
+ var pkey_name = ipa_objs[obj_name].primary_key;
+
function add_win(data, text_status, xhr) {
if (called_from_add_and_edit) {
var state = {};
state[obj_name + '-facet'] = 'details';
- var pkey_name = ipa_objs[obj_name].primary_key;
- var selector = 'input[name=' + pkey_name + ']';
- state[obj_name + '-pkey'] = add_dialog.find(selector).val();
+ state[obj_name + '-pkey'] = pkey[0];
$.bbq.pushState(state);
}
};
- var pkey = [];
- var options = {};
- var pkey_name = ipa_objs[obj_name].primary_key;
-
var fields = adl[2];
for (var i = 0; i < fields.length; ++i) {
var f = fields[i];
diff --git a/install/static/index.xhtml b/install/static/index.xhtml
index ce2971855..98e2495db 100644
--- a/install/static/index.xhtml
+++ b/install/static/index.xhtml
@@ -24,6 +24,7 @@
<script type="text/javascript" src="host.js"></script>
<script type="text/javascript" src="hostgroup.js"></script>
<script type="text/javascript" src="netgroup.js"></script>
+ <script type="text/javascript" src="service.js"></script>
<script type="text/javascript" src="develop.js"></script>
<script type="text/javascript" src="webui.js"></script>
diff --git a/install/static/service.js b/install/static/service.js
index 852415ffb..0fd5457b4 100644
--- a/install/static/service.js
+++ b/install/static/service.js
@@ -1,93 +1,80 @@
-function setupService(facet) {
- serviceForms.setup(facet);
-}
-
-var serviceForms = new ServiceForms();
-
-function ServiceForms() {
-
- this.obj = "service";
-
- this.facets = ['details', 'hosts', 'assignhosts'];
-
- this.setup = function(facet) {
- if (this[facet]) {
- this[facet].setup();
- } else {
- this.unspecified.setup();
+/* Authors:
+ * Endi Sukma Dewata <edewata@redhat.com>
+ *
+ * Copyright (C) 2010 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; version 2 only
+ *
+ * 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/* REQUIRES: ipa.js, details.js, search.js, add.js, entity.js */
+
+ipa_entity_set_search_definition('service', [
+ ['krbprincipalname', 'Principal', null],
+ ['quick_links', 'Quick Links', service_render_quick_links]
+]);
+
+ipa_entity_set_add_definition('service', [
+ 'dialog-add-service', 'Add New Service', [
+ ['krbprincipalname', 'Principal', service_add_krbprincipalname],
+ ['service', 'Service', null],
+ ['host', 'Host Name', null],
+ ]
+]);
+
+ipa_entity_set_details_definition('service', [
+ ['identity', 'Service Details', [
+ ['krbprincipalname', 'Principal', null],
+ ]]
+]);
+
+function service_render_quick_links(tr, attr, value, entry_attrs) {
+
+ var td = $("<td/>");
+ tr.append(td);
+
+ $("<a/>", {
+ href: "jslink",
+ html: "[D]",
+ click: function() {
+ var state = {};
+ state['service-facet'] = 'details';
+ state['service-pkey'] = entry_attrs['krbprincipalname'][0];
+ $.bbq.pushState(state);
+ return false;
}
- };
-
- this.hostListColumns = [ {title:"host",column:"managedby_host"} ];
-
- this.hosts = new AssociationList(
- this.obj,
- "hosts",
- "assignhosts",
- this.hostListColumns,
- this.facets
- );
-
- this.assignhosts = new AssociationForm(
- this.obj,
- "host",
- "assignhosts",
- this.facets,
- "fqdn",
- function() {
- return 'Add Hosts to service : ' + qs['pkey'];
- },
- BulkAssociator,
- "add_host"
- );
-
- this.detailsList = [
- ['identity', 'Service Details', [
- ['krbprincipalname', 'Kerberos Principal']
- ]]
- ];
-
- this.details = new DetailsForm(
- "service",
- this.detailsList,
- "krbprincipalname",
- this.facets
- );
-
- this.addProperties = [
- {title: 'Service', id: 'service', type: 'text'},
- {title: 'Host Name', id: 'host', type: 'text'}
- ];
-
- this.add = new EntityBuilder(
- "service",
- this.addProperties
- );
-
- this.add.getPKey = function() {
- return $("#service").val()+"/"+$("#host").val();
- }
-
- this.searchColumns = [
- {
- title: "Service",
- column: "krbprincipalname",
- render: function (current, cell) {
- renderPkeyColumn2('service', 'krbprincipalname', current, cell);
- }
- },
- {
- title: "Has Keytab",
- column: "has_keytab",
- render: renderSimpleColumn
+ }).appendTo(td);
+
+ $("<a/>", {
+ href: "jslink",
+ html: "[G]",
+ click: function() {
+ var state = {};
+ state['service-facet'] = 'associate';
+ state['service-enroll'] = 'host';
+ state['service-pkey'] = entry_attrs['krbprincipalname'][0];
+ $.bbq.pushState(state);
+ return false;
}
- ];
-
- this.search = new SearchForm(
- "service",
- "find",
- this.searchColumns
- );
+ }).appendTo(td);
+}
- this.unspecified = this.search;
+function service_add_krbprincipalname(add_dialog, flag) {
+ if (flag == 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;
}
diff --git a/install/static/webui.js b/install/static/webui.js
index f7cccff6f..9aaa21d6c 100644
--- a/install/static/webui.js
+++ b/install/static/webui.js
@@ -28,6 +28,7 @@ var nav_tabs_lists = [
['host', 'Hosts', ipa_entity_setup],
['hostgroup', 'Hostgroups', ipa_entity_setup],
['netgroup', 'Netgroups', ipa_entity_setup],
+ ['service', 'Services', ipa_entity_setup],
]],
['policy', 'POLICY', unimplemented_tab],
['config', 'CONFIG', unimplemented_tab]