diff options
| author | Alex Rudyy <orudyy@apache.org> | 2013-10-01 15:26:24 +0000 |
|---|---|---|
| committer | Alex Rudyy <orudyy@apache.org> | 2013-10-01 15:26:24 +0000 |
| commit | f2d1adc5cac45dd39a9e6eb74ddc446e4b2075ea (patch) | |
| tree | ef4be902b05429e70b34a76ee001ca7e0805ac47 /qpid/java/broker-plugins | |
| parent | 86c67bf9778b7bf2f0f9eba7b17b28b112e98dde (diff) | |
| download | qpid-python-f2d1adc5cac45dd39a9e6eb74ddc446e4b2075ea.tar.gz | |
QPID-5138: Embed the UI to create preferences provider into authentication provider create UI
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1528117 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-plugins')
9 files changed, 302 insertions, 153 deletions
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/addAuthenticationProvider.html b/qpid/java/broker-plugins/management-http/src/main/java/resources/addAuthenticationProvider.html index f4846ac556..8e2e068b93 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/addAuthenticationProvider.html +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/addAuthenticationProvider.html @@ -17,7 +17,7 @@ <div class="dijitHidden"> <div data-dojo-type="dijit.Dialog" data-dojo-props="title:'Authentication Provider'" id="addAuthenticationProvider"> <form id="formAddAuthenticationProvider" method="post" dojoType="dijit.form.Form"> - <div style="height:100px; width:420px; overflow: auto"> + <div style="width:420px; overflow: auto"> <table class="tableContainer-table tableContainer-table-horiz" width="100%" cellspacing="1"> <tr> <td class="tableContainer-labelCell" style="width: 200px;">Type*:</td> @@ -32,6 +32,10 @@ </table> <input type="hidden" id="formAddAuthenticationProvider.id" name="id"/> <div id="addAuthenticationProvider.fieldSets"></div> + <br/> + <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Preferences Provider', open: true" id="addAuthenticationProvider.preferencesProviderPanel"> + <div id="addAuthenticationProvider.preferencesProvider"></div> + </div> </div> <div class="dijitDialogPaneActionBar"> <!-- submit buttons --> diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/addPreferencesProvider.html b/qpid/java/broker-plugins/management-http/src/main/java/resources/addPreferencesProvider.html index ac5dd32119..bca2320888 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/addPreferencesProvider.html +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/addPreferencesProvider.html @@ -18,24 +18,8 @@ <div data-dojo-type="dijit.Dialog" data-dojo-props="title:'Preferences Provider'" id="addPreferencesProvider"> <form id="formAddPreferencesProvider" method="post" data-dojo-type="dijit.form.Form"> <input type="hidden" id="preferencesProvider.id" name="id"/> - <div style="height:100px; width:420px; overflow: auto"> - <table class="tableContainer-table tableContainer-table-horiz" width="100%" cellspacing="1"> - <tr> - <td class="tableContainer-labelCell" style="width: 200px;"><strong>Type*:</strong></td> - <td class="tableContainer-valueCell"><div id="addPreferencesProvider.selectPreferencesProviderDiv"></div></td> - </tr> - <tr> - <td class="tableContainer-labelCell" style="width: 200px;"><strong>Name*:</strong></td> - <td class="tableContainer-valueCell"><input type="text" name="name" - id="preferencesProvider.name" data-dojo-type="dijit.form.ValidationTextBox" - data-dojo-props="placeHolder: 'Name', - required: true, - missingMessage: 'A name must be supplied', - title: 'Enter name', - pattern: '^[\x20-\x2e\x30-\x7F]{1,255}$'" /></td> - </tr> - </table> - <div id="preferencesProvider.fieldsContainer"></div> + <div style="width:420px; overflow: auto"> + <div id="addPreferencesProvider.preferencesProvider"></div> </div> <div class="dijitDialogPaneActionBar"> <!-- submit buttons --> diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/authenticationprovider/preferences/filesystempreferences/add.html b/qpid/java/broker-plugins/management-http/src/main/java/resources/authenticationprovider/preferences/filesystempreferences/add.html index f46da4b017..7196493e7c 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/authenticationprovider/preferences/filesystempreferences/add.html +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/authenticationprovider/preferences/filesystempreferences/add.html @@ -18,7 +18,7 @@ <tr> <td class="tableContainer-labelCell" style="width: 200px;"><strong>Path*: </strong></td> <td class="tableContainer-valueCell" > - <input type="text" name="path" + <input type="text" name="preferencesProviderPath" id="preferencesProvider.path" data-dojo-type="dijit.form.ValidationTextBox" data-dojo-props="placeHolder: 'Path/to/file', diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AuthenticationProvider.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AuthenticationProvider.js index b5b4380a0d..4e96f2e5a4 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AuthenticationProvider.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AuthenticationProvider.js @@ -237,18 +237,15 @@ define(["dojo/_base/xhr", } } var preferencesProviderData = that.authProviderData.preferencesproviders? that.authProviderData.preferencesproviders[0]: null; - if (preferencesProviderData) + try { - try - { - that.updatePreferencesProvider(preferencesProviderData); - } - catch(e) + that.updatePreferencesProvider(preferencesProviderData); + } + catch(e) + { + if (console) { - if (console) - { - console.error(e); - } + console.error(e); } } }); diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/PreferencesProviderFields.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/PreferencesProviderFields.js new file mode 100644 index 0000000000..39e852f94e --- /dev/null +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/PreferencesProviderFields.js @@ -0,0 +1,189 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +define(["dojo/_base/xhr", + "dojo/dom", + "dojo/query", + "dojo/parser", + "dojo/string", + "dojo/json", + "dojo/store/Memory", + "dijit/registry", + "dijit/form/FilteringSelect", + "dijit/form/ValidationTextBox", + "dojox/html/entities", + "dojo/text!../../showPreferencesProviderFields.html", + "dojo/text!rest/helper?action=ListPreferencesProvidersTypes", + "dojox/validate/us", + "dojox/validate/web", + "dojo/domReady!"], function (xhr, dom, query, parser, string, json, Memory, registry, FilteringSelect, ValidationTextBox, entities, template, preferencesProvidersTypes) { + + var PreferencesProviderFields = {}; + + var types = [{id: "", name: "None"}]; + var typesArray = json.parse(preferencesProvidersTypes); + for (var i =0 ; i < typesArray.length; i++) + { + types.push({id: typesArray[i], name: typesArray[i]}); + } + + var selectPreferencesProviderType = function(type) + { + if(type && string.trim(type) != "") + { + if (PreferencesProviderFields.currentType != type) + { + require(["qpid/management/authenticationprovider/preferences/" + type.toLowerCase() + "/add"], + function(typeFields) + { + PreferencesProviderFields.currentType = null; + if (PreferencesProviderFields.details ) + { + PreferencesProviderFields.details.destroy(); + } + var disableOnEditing = PreferencesProviderFields.data? true: false; + PreferencesProviderFields.name.set("disabled", disableOnEditing); + PreferencesProviderFields.type.set("disabled", disableOnEditing); + PreferencesProviderFields.details = typeFields; + typeFields.show(PreferencesProviderFields.fieldsContainer, PreferencesProviderFields.data); + PreferencesProviderFields.currentType = type; + }); + } + else + { + PreferencesProviderFields.disable(false); + } + } + else + { + PreferencesProviderFields.disable(true); + } + }; + + PreferencesProviderFields.init = function(data) + { + this.data = data; + this.id.value = data.id; + this.name.set("value", data.name); + this.type.set("value", data.type); + selectPreferencesProviderType(data.type); + }; + + PreferencesProviderFields.show = function(node, provider, authenticationProviderName) + { + this.currentType = null; + this.data = null; + node.innerHTML = template; + try + { + parser.parse(node); + } + catch(e) + { + console.error(e); + return; + } + + if (this.container) + { + this.container.destroyRecursive(); + } + if (this.details ) + { + this.details.destroy(); + delete this["details"]; + } + this.container = registry.byNode(query(".preferencesProviderContainer", node)[0]); + this.fieldsContainer = query(".preferencesProviderFieldsContainer", node)[0]; + this.type = registry.byNode(query(".preferencesProviderType", node)[0]); + this.name = registry.byNode(query(".preferencesProviderName", node)[0]); + this.id = query("input[name='preferencesProviderId']", node)[0]; + this.id.value = null; + this.type.set("store", new Memory({ data: types, idProperty: "id"})); + this.type.on("change", selectPreferencesProviderType ); + this.type.startup(); + + if (provider) + { + if (typeof provider == "object") + { + this.init(provider); + } + else if (typeof provider == "string") + { + var that = this; + xhr.get({ + url: "rest/preferencesprovider/" +encodeURIComponent(authenticationProviderName) + "/" + encodeURIComponent(provider), + sync: true, + handleAs: "json" + }).then(function(data){if (data && data[0]) { that.init(data[0]);}}); + } + } + else + { + this.disable(true); + } + }; + + PreferencesProviderFields.disable = function(val) + { + this.name.set("disabled", val); + if (this.details) + { + this.details.disable(val); + } + }; + + PreferencesProviderFields.getValues = function() + { + var values = {}; + if (this.details) + { + values = this.details.getValues() || {}; + } + values.name = this.name.get("value"); + if (this.id.value) + { + values.id = this.id.value; + } + values.type = this.type.get("value"); + return values; + }; + + PreferencesProviderFields.save = function(authenticationProviderName) + { + var success = true; + if (this.type.value) + { + var data = this.getValues(); + xhr.put({url: "rest/preferencesprovider/" +encodeURIComponent(authenticationProviderName) + "/" + encodeURIComponent(data.name), + sync: true, + handleAs: "json", + headers: { "Content-Type": "application/json"}, + putData: json.stringify(data), + load: function(x) {success = true;}, + error: function(error) {success = false; alert("Preferences Provider Error: " + error);}}); + } + return success; + }; + + return PreferencesProviderFields; + +});
\ No newline at end of file diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAuthenticationProvider.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAuthenticationProvider.js index 3737e41da4..428a26c3c9 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAuthenticationProvider.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAuthenticationProvider.js @@ -31,7 +31,7 @@ define(["dojo/_base/xhr", "dijit/form/FilteringSelect", "dojo/_base/connect", "dojo/dom-style", - "qpid/management/addPreferencesProvider", + "qpid/management/PreferencesProviderFields", /* dojox/ validate resources */ "dojox/validate/us", "dojox/validate/web", /* basic dijit classes */ @@ -45,7 +45,7 @@ define(["dojo/_base/xhr", "dojox/form/BusyButton", "dojox/form/CheckedMultiSelect", "dojox/layout/TableContainer", "dojo/domReady!"], - function (xhr, dom, construct, win, registry, parser, array, event, json, Memory, FilteringSelect, connect, domStyle, addPreferencesProvider) { + function (xhr, dom, construct, win, registry, parser, array, event, json, Memory, FilteringSelect, connect, domStyle, PreferencesProviderFields) { var addAuthenticationProvider = {}; @@ -66,6 +66,10 @@ define(["dojo/_base/xhr", { if(formValues.hasOwnProperty(propName)) { + if (propName.indexOf("preferencesProvider") == 0) + { + continue; + } if(formValues[ propName ] !== "") { newProvider[ propName ] = formValues[propName]; } @@ -101,6 +105,21 @@ define(["dojo/_base/xhr", return "ap_" + providerType + "Field" + attribute; } + var showPreferencesProviderFields = function showPreferencesProviderFields(provider) + { + var preferencesProviderDiv = dojo.byId("addAuthenticationProvider.preferencesProvider"); + var preferencesProviderPanel = dijit.byId("addAuthenticationProvider.preferencesProviderPanel"); + if (provider && provider.type == "Anonymous") + { + preferencesProviderPanel.domNode.style.display = 'none'; + } + else + { + preferencesProviderPanel.domNode.style.display = 'block'; + PreferencesProviderFields.show(preferencesProviderDiv, provider && provider.preferencesproviders ? provider.preferencesproviders[0] : null); + } + } + var loadProviderAndDisplayForm = function loadProviderAndDisplayForm(providerName, dialog) { if (providerName) @@ -129,11 +148,13 @@ define(["dojo/_base/xhr", } } } + showPreferencesProviderFields(provider); registry.byId("addAuthenticationProvider").show(); }); } else { + showPreferencesProviderFields(); registry.byId("addAuthenticationProvider").show(); } } @@ -163,15 +184,14 @@ define(["dojo/_base/xhr", if(this.success === true) { + if (PreferencesProviderFields.save(newAuthenticationManager.name)) + { registry.byId("addAuthenticationProvider").hide(); - if (newAuthenticationManager.type != "Anonymous" && dojo.byId("formAddAuthenticationProvider.id").value == "") - { - addPreferencesProvider.show(newAuthenticationManager.name); - } + } } else { - alert("Error:" + this.failureReason); + alert("Authentication Provider Error:" + this.failureReason); } return false; }else{ @@ -251,9 +271,10 @@ define(["dojo/_base/xhr", name: "type", store: providersStore, searchAttr: "name"}, input); - connect.connect(that.providerChooser, "onChange", - function(event) + that.providerChooser.on("change", + function(value) { + dijit.byId("addAuthenticationProvider.preferencesProviderPanel").domNode.style.display = (value == "Anonymous" ? "none" : "block"); showFieldSets(that.providerChooser.value, that.providerFieldSets); } ); diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPreferencesProvider.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPreferencesProvider.js index 818dc32366..40f8f83fbb 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPreferencesProvider.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPreferencesProvider.js @@ -34,6 +34,7 @@ define(["dojo/_base/xhr", "dojo/dom-style", "dojo/string", "dojox/html/entities", + "qpid/management/PreferencesProviderFields", "dojox/validate/us", "dojox/validate/web", "dijit/Dialog", @@ -47,47 +48,12 @@ define(["dojo/_base/xhr", "dojox/form/CheckedMultiSelect", "dojox/layout/TableContainer", "dojo/domReady!"], - function (xhr, dom, construct, query, win, registry, parser, array, event, json, Memory, FilteringSelect, connect, domStyle, string, entities) { + function (xhr, dom, construct, query, win, registry, parser, array, event, json, Memory, FilteringSelect, connect, domStyle, string, entities, PreferencesProviderFields) { var addPreferencesProvider = {}; var node = construct.create("div", null, win.body(), "last"); - var convertToPreferencesProvider = function convertToPreferencesProvider(formValues) - { - var newProvider = {}; - - newProvider.name = dijit.byId("preferencesProvider.name").value; - newProvider.type = dijit.byId("preferencesProvider.type").value; - var id = dojo.byId("preferencesProvider.id").value; - if (id) - { - newProvider.id = id; - } - for(var propName in formValues) - { - if(formValues.hasOwnProperty(propName)) - { - if(formValues[ propName ] !== "") { - newProvider[ propName ] = formValues[propName]; - } - - } - } - return newProvider; - } - - var selectPreferencesProviderType = function(type) { - if(type && string.trim(type) != "") - { - require(["qpid/management/authenticationprovider/preferences/" + type.toLowerCase() + "/add"], - function(addType) - { - addType.show(dom.byId("preferencesProvider.fieldsContainer"), addPreferencesProvider.data) - }); - } - } - xhr.get({url: "addPreferencesProvider.html", sync: true, load: function(data) { @@ -104,94 +70,24 @@ define(["dojo/_base/xhr", event.stop(e); if(theForm.validate()){ - var newProvider = convertToPreferencesProvider(theForm.getValues()); - var that = this; - var nameWidget = registry.byId("preferencesProvider.name") - xhr.put({url: "rest/preferencesprovider/" +encodeURIComponent(addPreferencesProvider.authenticationProviderName) + "/" + encodeURIComponent(nameWidget.value), - sync: true, handleAs: "json", - headers: { "Content-Type": "application/json"}, - putData: json.toJson(newProvider), - load: function(x) {that.success = true; }, - error: function(error) {that.success = false; that.failureReason = error;}}); - if(this.success === true) + if(PreferencesProviderFields.save(addPreferencesProvider.authenticationProviderName)) { registry.byId("addPreferencesProvider").hide(); } - else - { - alert("Error:" + this.failureReason); - } return false; }else{ alert('Form contains invalid data. Please correct first'); return false; } }); - xhr.get({ - sync: true, - url: "rest/helper?action=ListPreferencesProvidersTypes", - handleAs: "json" - }).then( - function(data) { - var preferencesProvidersTypes = data; - var storeData = []; - for (var i =0 ; i < preferencesProvidersTypes.length; i++) - { - storeData[i]= {id: preferencesProvidersTypes[i], name: preferencesProvidersTypes[i]}; - } - var store = new Memory({ data: storeData }); - var preferencesProviderTypesDiv = dom.byId("addPreferencesProvider.selectPreferencesProviderDiv"); - var input = construct.create("input", {id: "preferencesProviderType", required: true}, preferencesProviderTypesDiv); - addPreferencesProvider.preferencesProviderTypeChooser = new FilteringSelect({ id: "preferencesProvider.type", - name: "type", - store: store, - searchAttr: "name", - required: true, - onChange: selectPreferencesProviderType }, input); - addPreferencesProvider.preferencesProviderTypeChooser.startup(); - }); }}); addPreferencesProvider.show = function(authenticationProviderName, providerName) { this.authenticationProviderName = authenticationProviderName; - this.data = null; - var that = this; - var theForm = registry.byId("formAddPreferencesProvider"); - theForm.reset(); - dojo.byId("preferencesProvider.id").value=""; - var nameWidget = registry.byId("preferencesProvider.name"); - nameWidget.set("disabled", false); - registry.byId("preferencesProvider.type").set("disabled", false); - if (this.preferencesProviderTypeChooser) - { - this.preferencesProviderTypeChooser.set("disabled", false); - this.preferencesProviderTypeChooser.set("value", null); - } + PreferencesProviderFields.show(dom.byId("addPreferencesProvider.preferencesProvider"), providerName, authenticationProviderName) var dialog = registry.byId("addPreferencesProvider"); - dialog.set("title", (providerName ? "Edit preference provider '" + entities.encode(String(providerName)) + "' " : "Add preferences provider ") + " for authentication provider '" + entities.encode(String(authenticationProviderName)) + "' ") - if (providerName) - { - xhr.get({ - url: "rest/preferencesprovider/" +encodeURIComponent(authenticationProviderName) + "/" + encodeURIComponent(providerName), - sync: false, - handleAs: "json" - }).then( - function(data) { - var provider = data[0]; - var providerType = provider.type; - that.data = provider; - nameWidget.set("value", entities.encode(String(provider.name))); - nameWidget.set("disabled", true); - that.preferencesProviderTypeChooser.set("value", providerType); - that.preferencesProviderTypeChooser.set("disabled", true); - dojo.byId("preferencesProvider.id").value=provider.id; - dialog.show(); - }); - } - else - { - dialog.show(); - } + dialog.set("title", (providerName ? "Edit preferences provider '" + entities.encode(String(providerName)) + "' " : "Add preferences provider ") + " for '" + entities.encode(String(authenticationProviderName)) + "' ") + dialog.show(); } return addPreferencesProvider; diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/authenticationprovider/preferences/filesystempreferences/add.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/authenticationprovider/preferences/filesystempreferences/add.js index 80b50fbbb8..06dd9dd0e3 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/authenticationprovider/preferences/filesystempreferences/add.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/authenticationprovider/preferences/filesystempreferences/add.js @@ -33,10 +33,10 @@ define(["dojo/_base/xhr", "dojo/domReady!"], function (xhr, dom, domConstruct, win, registry, parser, array, event, json, string, entities, template) { return { - show: function(node, data) { - dojo.forEach(dijit.findWidgets(node), function(w) { - w.destroyRecursive(); - }); + show: function(node, data) + { + this.destroy(); + this.node = node; node.innerHTML = template; parser.parse(node); var pathWidget = registry.byId("preferencesProvider.path") @@ -44,6 +44,23 @@ define(["dojo/_base/xhr", { pathWidget.set("value", entities.encode(String(data["path"]))); } + }, + destroy: function() + { + if (this.node) + { + dojo.forEach(dijit.findWidgets(this.node), function(w) {w.destroyRecursive();}); + this.node = null; + } + }, + disable: function(val) + { + var pathWidget = registry.byId("preferencesProvider.path"); + pathWidget.set("disabled", val); + }, + getValues: function() + { + return {path: registry.byId("preferencesProvider.path").value}; } }; }); diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/showPreferencesProviderFields.html b/qpid/java/broker-plugins/management-http/src/main/java/resources/showPreferencesProviderFields.html new file mode 100644 index 0000000000..0da104821b --- /dev/null +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/showPreferencesProviderFields.html @@ -0,0 +1,41 @@ +<!-- + - + - Licensed to the Apache Software Foundation (ASF) under one + - or more contributor license agreements. See the NOTICE file + - distributed with this work for additional information + - regarding copyright ownership. The ASF licenses this file + - to you under the Apache License, Version 2.0 (the + - "License"); you may not use this file except in compliance + - with the License. You may obtain a copy of the License at + - + - http://www.apache.org/licenses/LICENSE-2.0 + - + - Unless required by applicable law or agreed to in writing, + - software distributed under the License is distributed on an + - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + - KIND, either express or implied. See the License for the + - specific language governing permissions and limitations + - under the License. + - + --> +<div data-dojo-type="dijit/layout/ContentPane" class="preferencesProviderContainer"> + <table class="tableContainer-table tableContainer-table-horiz" width="100%" cellspacing="1"> + <tr> + <td class="tableContainer-labelCell" style="width: 200px;"><strong>Type*:</strong></td> + <td class="tableContainer-valueCell"> + <select class="preferencesProviderType" data-dojo-type="dijit/form/FilteringSelect" + data-dojo-props="name:'preferencesProviderType',label:'Type:', searchAttr: 'name', placeHolder: 'Select Provider Type', required: true"> + <option value="">None</option> + </select> + </td> + </tr> + <tr> + <td class="tableContainer-labelCell" style="width: 200px;"><strong>Name*:</strong></td> + <td class="tableContainer-valueCell"><input type="text" name="preferencesProviderName" + class="preferencesProviderName" data-dojo-type="dijit/form/ValidationTextBox" + data-dojo-props="placeHolder: 'Name', required: true, missingMessage: 'A name must be supplied', title: 'Enter name', pattern: '^[\x20-\x2e\x30-\x7F]{1,255}$'" /></td> + </tr> + </table> + <div class="preferencesProviderFieldsContainer"></div> + <input type="hidden" name="preferencesProviderId"/> +</div>
\ No newline at end of file |
