[Kimchi-devel] [PATCH v2 1/2] Github bug #307: add storage pool type list - JS changes
Daniel H Barboza
danielhb at linux.vnet.ibm.com
Mon Mar 3 20:13:42 UTC 2014
On 03/03/2014 03:09 PM, Aline Manera wrote:
> On 02/28/2014 04:50 PM, Daniel Barboza wrote:
>> From: Daniel Henrique Barboza <danielhb at linux.vnet.ibm.com>
>>
>> The changes in ui/js/src/kimchi.storagepool_add_main.js were made
>> to relieve the storage pool type dropbox from the return of the
>> ajax call to retrieve the available partitions of the host.
>>
>> The dropbox will always have all the options displayed. In case
>> of the LOGICAL pool type the user won't be able to proceed with
>> the creation of the pool if no partitions are found. A message
>> is being displayed to warn the user.
>
>
> As all the options will be always shown to user I suggest to put them
> on tmpl.html file
I tried to do that but failed miserably :(
If you see in the JS you'll notice that this select is created using
this call
$('#poolTypeId').selectMenu("setData", options);
This call is declared in the widgets/select-menu.js and it is a rather
complex JQuery call, which
I wasn't able to put it "hardcoded" in the template.
>
>>
>> Signed-off-by: Daniel Henrique Barboza <danielhb at linux.vnet.ibm.com>
>> ---
>> ui/js/src/kimchi.storagepool_add_main.js | 177
>> ++++++++++++++++---------------
>> 1 file changed, 89 insertions(+), 88 deletions(-)
>>
>> diff --git a/ui/js/src/kimchi.storagepool_add_main.js
>> b/ui/js/src/kimchi.storagepool_add_main.js
>> index 5960c8d..1332051 100644
>> --- a/ui/js/src/kimchi.storagepool_add_main.js
>> +++ b/ui/js/src/kimchi.storagepool_add_main.js
>> @@ -23,25 +23,8 @@ kimchi.storagepool_add_main = function() {
>> };
>>
>> kimchi.initStorageAddPage = function() {
>> - $('#poolTypeId').selectMenu();
>> - $('#serverComboboxId').combobox();
>> - $('#targetFilterSelectId').filterselect();
>> - var options = [ {
>> - label : "DIR",
>> - value : "dir"
>> - }, {
>> - label : "NFS",
>> - value : "netfs"
>> - } ,{
>> - label : "iSCSI",
>> - value : "iscsi"
>> - } ];
>> kimchi.listHostPartitions(function(data) {
>> if (data.length > 0) {
>> - options.push({
>> - label : "LOGICAL",
>> - value : "logical"
>> - });
>> var deviceHtml = $('#partitionTmpl').html();
>> var listHtml = '';
>> $.each(data, function(index, value) {
>> @@ -50,87 +33,105 @@ kimchi.initStorageAddPage = function() {
>> }
>> });
>> $('.host-partition').html(listHtml);
>> + } else {
>> + $('.host-partition').html(i18n['KCHPOOL6011E']);
>> }
>> - $('#poolTypeId').selectMenu("setData", options);
>> - kimchi.getStorageServers('netfs', function(data) {
>> - var serverContent = [];
>> - if (data.length > 0) {
>> - $.each(data, function(index, value) {
>> - serverContent.push({
>> - label : value.host,
>> - value : value.host
>> - });
>> - });
>> - }
>> - $('#serverComboboxId').combobox("setData", serverContent);
>> - $('input[name=nfsServerType]').change(function() {
>> - if ($(this).val() === 'input') {
>> - $('#nfsServerInputDiv').removeClass('tmpl-html');
>> - $('#nfsServerChooseDiv').addClass('tmpl-html');
>> - } else {
>> - $('#nfsServerInputDiv').addClass('tmpl-html');
>> - $('#nfsServerChooseDiv').removeClass('tmpl-html');
>> - }
>> - });
>> - $('#nfsserverId').on("change",function() {
>> - if ($(this).val() !== '' &&
>> kimchi.isServer($(this).val())) {
>> - $('#nfspathId').prop('disabled',false);
>> - $(this).removeClass("invalid-field");
>> - } else {
>> - $(this).addClass("invalid-field");
>> - $('#nfspathId').prop( "disabled",true);
>> - }
>> - $('#targetFilterSelectId').filterselect('clear');
>> - });
>> - $('#nfspathId').focus(function() {
>> - var targetContent = [];
>> - kimchi.getStorageTargets($('#nfsserverId').val(), 'netfs',
>> function(data) {
>> - if (data.length > 0) {
>> - $.each(data, function(index, value) {
>> - targetContent.push({
>> - label : value.target,
>> - value : value.target
>> - });
>> - });
>> - }
>> - $('#targetFilterSelectId').filterselect("setData", targetContent);
>> + });
>> + kimchi.getStorageServers('netfs', function(data) {
>> + var serverContent = [];
>> + if (data.length > 0) {
>> + $.each(data, function(index, value) {
>> + serverContent.push({
>> + label : value.host,
>> + value : value.host
>> });
>> });
>> - });
>> - $('#poolTypeInputId').change(function() {
>> - if ($(this).val() === 'dir') {
>> - $('.path-section').removeClass('tmpl-html');
>> - $('.logical-section').addClass('tmpl-html');
>> - $('.nfs-section').addClass('tmpl-html');
>> - $('.iscsi-section').addClass('tmpl-html');
>> - } else if ($(this).val() === 'netfs') {
>> - $('.path-section').addClass('tmpl-html');
>> - $('.logical-section').addClass('tmpl-html');
>> - $('.nfs-section').removeClass('tmpl-html');
>> - $('.iscsi-section').addClass('tmpl-html');
>> - } else if ($(this).val() === 'iscsi') {
>> - $('.path-section').addClass('tmpl-html');
>> - $('.logical-section').addClass('tmpl-html');
>> - $('.nfs-section').addClass('tmpl-html');
>> - $('.iscsi-section').removeClass('tmpl-html');
>> - } else if ($(this).val() === 'logical') {
>> - $('.path-section').addClass('tmpl-html');
>> - $('.logical-section').removeClass('tmpl-html');
>> - $('.nfs-section').addClass('tmpl-html');
>> - $('.iscsi-section').addClass('tmpl-html');
>> + }
>> + $('#serverComboboxId').combobox("setData", serverContent);
>> + $('input[name=nfsServerType]').change(function() {
>> + if ($(this).val() === 'input') {
>> + $('#nfsServerInputDiv').removeClass('tmpl-html');
>> + $('#nfsServerChooseDiv').addClass('tmpl-html');
>> + } else {
>> + $('#nfsServerInputDiv').addClass('tmpl-html');
>> + $('#nfsServerChooseDiv').removeClass('tmpl-html');
>> }
>> });
>> - $('#authId').click(function() {
>> - if ($(this).prop("checked")) {
>> - $('.authenticationfield').removeClass('tmpl-html');
>> + $('#nfsserverId').on("change",function() {
>> + if ($(this).val() !== '' &&
>> kimchi.isServer($(this).val())) {
>> + $('#nfspathId').prop('disabled',false);
>> + $(this).removeClass("invalid-field");
>> } else {
>> - $('.authenticationfield').addClass('tmpl-html');
>> + $(this).addClass("invalid-field");
>> + $('#nfspathId').prop( "disabled",true);
>> }
>> + $('#targetFilterSelectId').filterselect('clear');
>> });
>> - $('#iscsiportId').keyup(function(event) {
>> - $(this).toggleClass("invalid-field",!/^[0-9]+$/.test($(this).val()));
>> + $('#nfspathId').focus(function() {
>> + var targetContent = [];
>> + kimchi.getStorageTargets($('#nfsserverId').val(),
>> 'netfs', function(data) {
>> + if (data.length > 0) {
>> + $.each(data, function(index, value) {
>> + targetContent.push({
>> + label : value.target,
>> + value : value.target
>> + });
>> + });
>> + }
>> + $('#targetFilterSelectId').filterselect("setData", targetContent);
>> + });
>> });
>> });
>> + $('#poolTypeId').selectMenu();
>> + $('#serverComboboxId').combobox();
>> + $('#targetFilterSelectId').filterselect();
>> + var options = [ {
>> + label : "DIR",
>> + value : "dir"
>> + }, {
>> + label : "NFS",
>> + value : "netfs"
>> + } ,{
>> + label : "iSCSI",
>> + value : "iscsi"
>> + } ,{
>> + label : "LOGICAL",
>> + value : "logical"
>> + } ];
>> + $('#poolTypeId').selectMenu("setData", options);
>> + $('#poolTypeInputId').change(function() {
>> + if ($(this).val() === 'dir') {
>> + $('.path-section').removeClass('tmpl-html');
>> + $('.logical-section').addClass('tmpl-html');
>> + $('.nfs-section').addClass('tmpl-html');
>> + $('.iscsi-section').addClass('tmpl-html');
>> + } else if ($(this).val() === 'netfs') {
>> + $('.path-section').addClass('tmpl-html');
>> + $('.logical-section').addClass('tmpl-html');
>> + $('.nfs-section').removeClass('tmpl-html');
>> + $('.iscsi-section').addClass('tmpl-html');
>> + } else if ($(this).val() === 'iscsi') {
>> + $('.path-section').addClass('tmpl-html');
>> + $('.logical-section').addClass('tmpl-html');
>> + $('.nfs-section').addClass('tmpl-html');
>> + $('.iscsi-section').removeClass('tmpl-html');
>> + } else if ($(this).val() === 'logical') {
>> + $('.path-section').addClass('tmpl-html');
>> + $('.logical-section').removeClass('tmpl-html');
>> + $('.nfs-section').addClass('tmpl-html');
>> + $('.iscsi-section').addClass('tmpl-html');
>> + }
>> + });
>> + $('#authId').click(function() {
>> + if ($(this).prop("checked")) {
>> + $('.authenticationfield').removeClass('tmpl-html');
>> + } else {
>> + $('.authenticationfield').addClass('tmpl-html');
>> + }
>> + });
>> + $('#iscsiportId').keyup(function(event) {
>> + $(this).toggleClass("invalid-field",!/^[0-9]+$/.test($(this).val()));
>> + });
>> };
>>
>> kimchi.validateForm = function() {
>
More information about the Kimchi-devel
mailing list