// Copyright (C) 2010-2016 Combodo SARL // // This file is part of iTop. // // iTop is free software; you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // iTop 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 Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with iTop. If not, see // Wizard Helper JavaScript class to communicate with the WizardHelper PHP class if (!Array.prototype.indexOf) // Emulation of the indexOf function for IE and old browsers { Array.prototype.indexOf = function(elt /*, from*/) { var len = this.length; var from = Number(arguments[1]) || 0; from = (from < 0) ? Math.ceil(from) : Math.floor(from); if (from < 0) from += len; for (; from < len; from++) { if (from in this && this[from] === elt) return from; } return -1; }; } function WizardHelper(sClass, sFormPrefix, sState) { this.m_oData = { 'm_sClass' : '', 'm_oFieldsMap': {}, 'm_oCurrentValues': {}, 'm_aDefaultValueRequested': [], 'm_aAllowedValuesRequested': [], 'm_oDefaultValue': {}, 'm_oAllowedValues': {}, 'm_iFieldsCount' : 0, 'm_sFormPrefix' : sFormPrefix, 'm_sState': sState }; this.m_oData.m_sClass = sClass; // Methods this.SetFieldsMap = function (oFieldsMap) { this.m_oData.m_oFieldsMap = oFieldsMap; }; this.SetFieldsCount = function (count) { this.m_oData.m_iFieldsCount = count; }; this.GetFieldId = function(sFieldName) { id = this.m_oData.m_oFieldsMap[sFieldName]; return id; }; this.RequestDefaultValue = function (sFieldName) { currentValue = this.UpdateCurrentValue(sFieldName); if (currentValue == null) { this.m_oData.m_aDefaultValueRequested.push(sFieldName); } }; this.RequestAllowedValues = function (sFieldName) { this.m_oData.m_aAllowedValuesRequested.push(sFieldName); }; this.SetCurrentValue = function (sFieldName, currentValue) { this.m_oData.m_oCurrentValues[sFieldName] = currentValue; }; this.ToJSON = function () { return JSON.stringify(this.m_oData); }; this.FromJSON = function (sJSON) { //console.log('Parsing JSON:'+sJSON); this.m_oData = JSON.parse(sJSON); }; this.ResetQuery = function () { this.m_oData.m_aDefaultValueRequested = []; this.m_oData.m_oDefaultValue = {}; this.m_oData.m_aAllowedValuesRequested = []; this.m_oData.m_oAllowedValues = {}; }; this.UpdateFields = function () { var aRefreshed = []; //console.log('** UpdateFields **'); // Set the full HTML for the input field for(i=0; i'); $('#field_'+sFieldId).closest('td').block({message:''}); this.RequestAllowedValues(sAttCode); index++; } this.AjaxQueryServer(); }; this.ReloadObjectCreationForm = function(sFormId, sTargetState) { $('#'+sFormId).block(); this.UpdateWizard(); this.ResetQuery(); var sTransactionId = $('input[name=transaction_id]').val(); $.post(GetAbsoluteUrlAppRoot()+'pages/ajax.render.php', { json_obj: this.ToJSON(), operation: 'obj_creation_form', target_state: sTargetState, transaction_id: sTransactionId }, function(data) { // Delete any previous instances of CKEditor $('#'+sFormId).find('.htmlEditor').each(function() { var sId = $(this).attr('id'); var editorInst = CKEDITOR.instances[sId]; if (editorInst) { editorInst.destroy(true); } }); $('#'+sFormId).html(data); onDelayedReady(); $('#'+sFormId).unblock(); } ); }; }