summaryrefslogtreecommitdiffstats
path: root/install/static
diff options
context:
space:
mode:
authorEndi DeWata <edewata@redhat.com>2010-09-10 12:59:33 -0400
committerAdam Young <ayoung@redhat.com>2010-09-10 12:59:33 -0400
commitfd056918e6c61d601903c144e3ed3d509c221e28 (patch)
treee5c87faa5b9b0f386493df929af241c89dc9bc9c /install/static
parentf87bd57c1d3a86ade7419ea17ddee65bacda4b7f (diff)
downloadfreeipa-fd056918e6c61d601903c144e3ed3d509c221e28.tar.gz
freeipa-fd056918e6c61d601903c144e3ed3d509c221e28.tar.xz
freeipa-fd056918e6c61d601903c144e3ed3d509c221e28.zip
Splitting service principal into service name and hostname.
The EntityBuilder has been modified to obtain the pkey value by invoking getPKey(). This function can be overriden for different entities. The addOptionsFunction() has been renamed to getOptions() and it can be overriden for different entities. Each entity that uses this function has been modified accordingly. The addEdit(), addAnother(), add_fail() has been moved into the EntityBuilder class. The global builders is no longer needed because a reference to the builder object can be obtained via enclosure. The ServiceForms has been modified to take service name and hostname and combine them to generate the service principal by overriding the getPKey().
Diffstat (limited to 'install/static')
-rw-r--r--install/static/add.js112
-rw-r--r--install/static/hostgroup.js18
-rw-r--r--install/static/netgroup.js20
-rw-r--r--install/static/service.js17
-rw-r--r--install/static/user.js14
5 files changed, 92 insertions, 89 deletions
diff --git a/install/static/add.js b/install/static/add.js
index 97f7666a1..fcbcc5293 100644
--- a/install/static/add.js
+++ b/install/static/add.js
@@ -22,34 +22,31 @@
/* REQUIRES: ipa.js */
-/*
- * An associatev array between entity names and their builders
- */
-var builders = {} ;
-
-function add_fail(desc){
- alert(desc);
-}
+//Process for managing the 'add' functionality
+function EntityBuilder(obj,addProperties){
+ var builder = this;
-//Process for managing the 'add' functionality
-function EntityBuilder(obj,addProperties,addOptionsFunction ){
this.obj = obj;
this.addProperties = addProperties;
- if (addOptionsFunction){
- this.addOptionsFunction = addOptionsFunction;
- }else{
- this.addOptionsFunction = function(){
- var options = { };
- return options;
- }
+
+ this.getPKey = function(){
+ return $("#pkey").val();
+ }
+
+ this.getOptions = function(){
+ return {};
+ }
+
+ this.add_fail = function(desc){
+ alert(desc);
}
- this.add = function(on_success){
- var options = this.addOptionsFunction();
- var params = [$("#pkey").val()];
- ipa_cmd( 'add', params, options, on_success, add_fail, this.obj );
+ this.add = function(pkey, on_success){
+ var params = [pkey];
+ var options = this.getOptions();
+ ipa_cmd( 'add', params, options, on_success, this.add_fail, this.obj );
}
this.setup = function(){
@@ -58,24 +55,53 @@ function EntityBuilder(obj,addProperties,addOptionsFunction ){
$("<div id='addForm'> </div>")
.appendTo("#content");
var label =$("<span>Add and </span>").appendTo("#addForm")
- $("<input \>",
- {id:'addEdit',
- type:'button',
- value:'Edit',
- click: function(){
- var params = ipa_parse_qs();
- builders[params["tab"]].add (addEdit)
- }
- }).appendTo(label);
+
+ $("<input \>", {
+ id:'addEdit',
+ type:'button',
+ value:'Edit',
+ click: function(){
+ var params = ipa_parse_qs();
+ var pkey = builder.getPKey();
+ builder.add(pkey, function(response){
+ if (response.error){
+ if (response.error.message) {
+ alert(response.error.message);
+ } else {
+ alert("error adding entry");
+ }
+ return;
+ }
+ var hash= "tab="
+ +params["tab"]
+ +"&facet=details&pkey="
+ +pkey;
+ window.location.hash = hash;
+ });
+ }
+ }).appendTo(label);
+
$("<input\>", {
id:'addAnother',
type:'button',
value:'Add Another',
click: function(){
- var params = ipa_parse_qs();
- builders[params["tab"]].add (addAnother)
+ var params = ipa_parse_qs();
+ var pkey = builder.getPKey();
+ builder.add(pkey, function(response){
+ if (response.error){
+ if (response.error.message) {
+ alert(response.error.message);
+ } else {
+ alert("error adding entry");
+ }
+ return;
+ }
+ builder.setup();
+ });
}
}).appendTo(label);
+
$("<dl id='addProperties' />").appendTo("#addForm");
for (index = 0; index < this.addProperties.length; index++){
@@ -90,29 +116,7 @@ function EntityBuilder(obj,addProperties,addOptionsFunction ){
title.appendTo("#addProperties");
}
}
- //register the new object with the associatev array of builders.
- builders[obj] = this;
}
-function addAnother(response){
- if (response.error){
- alert("error adding entry");
- return;
- }
- var params = ipa_parse_qs();
- builders[params["tab"]].setup();
-}
-function addEdit(response){
- if (response.error){
- alert("error adding entry");
- return;
- }
- var params = ipa_parse_qs();
- var hash= "tab="
- + params["tab"]
- +"&facet=details&pkey="
- +$("#pkey").val();
- window.location.hash = hash;
-}
diff --git a/install/static/hostgroup.js b/install/static/hostgroup.js
index 2f40f0b3f..3872d125d 100644
--- a/install/static/hostgroup.js
+++ b/install/static/hostgroup.js
@@ -12,14 +12,6 @@ var hostgroupFacets = ["details","hosts","assignhosts"];
-function hostgroupAddOptionsFunction (){
- var options = {
- name: $('#pkey').val(),
- description: $('#description').val()
- };
- return options;
-}
-
var hostgroupForms = new HostgroupsForms();
function HostgroupsForms(){
@@ -75,7 +67,15 @@ function HostgroupsForms(){
this.details = new DetailsForm("hostgroup",hostgroup_details_list,"cn",hostgroupFacets) ;
- this.add = new EntityBuilder("hostgroup",this.hostgroupAddProperties,hostgroupAddOptionsFunction);
+ this.add = new EntityBuilder("hostgroup",this.hostgroupAddProperties);
+
+ this.add.getOptions = function() {
+ var options = {
+ name: $('#pkey').val(),
+ description: $('#description').val()
+ };
+ return options;
+ }
this.search = new SearchForm("hostgroup", "find", this.hostgroupSearchColumns);
this.unspecified = this.search;
diff --git a/install/static/netgroup.js b/install/static/netgroup.js
index 295e41366..4fcaffa98 100644
--- a/install/static/netgroup.js
+++ b/install/static/netgroup.js
@@ -2,14 +2,6 @@ function setupNetgroup(facet){
netgroupForms.setup(facet);
}
-function netgroupAddOptionsFunction (){
- var options = {
- name: $('#pkey').val(),
- description: $('#description').val()
- };
- return options;
-}
-
var netgroupForms = new NetgroupForms();
function NetgroupForms(){
@@ -39,8 +31,16 @@ function NetgroupForms(){
[{title: 'Netgroup Name', id: 'pkey', type: 'text'},
{title: 'Description', id: 'description', type: 'text'}];
- this.add = new EntityBuilder("netgroup",this.add_properties,
- netgroupAddOptionsFunction);
+ this.add = new EntityBuilder("netgroup",this.add_properties);
+
+ this.add.getOptions = function() {
+ var options = {
+ name: $('#pkey').val(),
+ description: $('#description').val()
+ };
+ return options;
+ }
+
this.search = new SearchForm("netgroup", "find", this.netgroupSearchColumns);
this.userListColumns = [ {title:"user",column:"memberuser_user", }];
diff --git a/install/static/service.js b/install/static/service.js
index 467e56a81..852415ffb 100644
--- a/install/static/service.js
+++ b/install/static/service.js
@@ -55,22 +55,19 @@ function ServiceForms() {
);
this.addProperties = [
- {title: 'Principal', id: 'pkey', type: 'text'}
+ {title: 'Service', id: 'service', type: 'text'},
+ {title: 'Host Name', id: 'host', type: 'text'}
];
- this.addOptionsFunction = function() {
- var options = {
- name: $('#pkey').val()
- };
- return options;
- };
-
this.add = new EntityBuilder(
"service",
- this.addProperties,
- this.addOptionsFunction
+ this.addProperties
);
+ this.add.getPKey = function() {
+ return $("#service").val()+"/"+$("#host").val();
+ }
+
this.searchColumns = [
{
title: "Service",
diff --git a/install/static/user.js b/install/static/user.js
index a0087e278..dca999a1a 100644
--- a/install/static/user.js
+++ b/install/static/user.js
@@ -83,16 +83,18 @@ var userAddProperties = [
{title: 'First Name', id: 'firstname', type:'text'},
{title: 'Last Name', id: 'lastname', type:'text'}
];
+
var userBuilder =
new EntityBuilder(
"user",
- userAddProperties,
- function(){
- var options = { givenname: $("#firstname").val(),
- sn: $("#lastname").val()};
- return options;
- });
+ userAddProperties);
+userBuilder.getOptions = function() {
+ var options = {
+ givenname: $("#firstname").val(),
+ sn: $("#lastname").val()};
+ return options;
+}
var userFacets = ["details","group", "groupmembership"];