123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258 |
- // Licensed Materials - Property of IBM
- //
- // IBM Cognos Products: cpscrn
- //
- // (C) Copyright IBM Corp. 2005, 2011
- //
- // US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- //
- //
- // Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.
- // Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
- function processItem(cForm,lang,itemsArray,action,thefrag,pForm)
- {
- // Loop itemArray to create new hidden input items
- for (i=0; i < itemsArray.length; i++)
- {
- var item = itemsArray[i]+'-'+lang;
- switch(action)
- {
- case "create":
- {
- setHiddenItemValue(cForm,item,'');
- clearLangRemove(cForm, "removeLang", lang);
- setHiddenItemValue(cForm,cForm.name+'_changed','true');
- break;
- }
- case "remove":
- {
- setHiddenItemValue(cForm,item,'');
- setLangRemove(cForm, "removeLang", lang);
- setHiddenItemValue(cForm,cForm.name+'_changed','true');
- break;
- }
- }
- }
- }
- function setItemValue(cForm,item,sVal)
- {
- cForm.elements[item].value = sVal;
- }
- function getLanguageSelected(thefrag,sel)
- {
- var selector = $(thefrag + sel);
- return selector.options[selector.selectedIndex].value;
- }
- function setDisplayItem(cForm,thefrag,lang,itemsArray)
- {
- // Loop itemArray to set the display fields to the appropriate values
- for (i=0; i < itemsArray.length; i++)
- {
- displayItem = thefrag + itemsArray[i];
- if(lang != '')
- {
- var item = itemsArray[i]+'-'+lang;
- var fItem = cForm.elements[item];
- if(fItem)
- {
- setItemValue(cForm,displayItem,fItem.value);
- }
- document.getElementById(displayItem).disabled = false;
- }
- else
- {
- setItemValue(cForm,displayItem,lang);
- document.getElementById(displayItem).disabled = true;
- }
- }
- }
- function adjustSelection(thefrag,pForm,sel,itemsArray,action)
- {
- // Based on the create action, hidden fields will be created and display fields will be initialized to "" or if they already exist
- // the display fields will be populated with those values. The drop-down list is adjusted accordingly.
- // Based on the remove action, hidden fields are removed and the display fields and drop-down list adjusted accordingly.
- var cForm = _F_Form.find(thefrag + pForm);
- var selector = $(thefrag + sel);
- var curOption = selector.options[selector.selectedIndex];
- var selectedLang = curOption.value;
- switch(action)
- {
- case "remove": {
- if (selectedLang != "-")
- {
- var sep = null;
- for (i=0; i <= selector.options.length;i++) {
- if ( i != selector.options.length )
- {
- if (sep != null)
- {
- if (selector.options[i].text > curOption.text)
- {
- var insertPoint = selector.options[i];
- selector.removeChild(curOption);
- selector.insertBefore(curOption,insertPoint);
- break;
- }
- }
- else if (selector.options[i].value == "-")
- {
- sep = selector.options[i];
- }
- }
- else
- {
- selector.removeChild(curOption);
- selector.appendChild(curOption);
- break;
- }
- }
- processItem(cForm,selectedLang,itemsArray,action,thefrag,pForm);
- selector.options[0].selected=true;
- if (selector.options[0].value=="-")
- {
- setDisplayItem(cForm,thefrag,"",itemsArray);
- }
- else
- setDisplayItem(cForm,thefrag,selector.options[selector.selectedIndex].value,itemsArray);
- }
- break;
- }
- case "create": {
- var sep,i,j;
- var match=false;
- if(selectedLang == "-")
- {
- selector.options[0].selected=true;
- curOption = selector.options[0];
- selectedLang = curOption.value;
- }
- for (i=0; i<selector.options.length; i++)
- {
- if (selector.options[i].value == "-")
- {
- sep = selector.options[i];
- break;
- }
- }
- if (selector.selectedIndex > i)
- {
- processItem(cForm,selectedLang,itemsArray,action,thefrag,pForm);
- selector.removeChild(curOption);
- for (j=0; j<i; j++)
- {
- if (selector.options[j].text > curOption.text)
- {
- selector.insertBefore(curOption, selector.options[j]);
- selector.options[j].selected=true;
- match=true;
- break;
- }
- }
- if(!match)
- {
- selector.insertBefore(curOption, sep);
- selector.options[i].selected=true;
- }
- }
- if (selector.options[0].value!="-")
- {
- setDisplayItem(cForm,thefrag,selectedLang,itemsArray);
- }
- else
- {
- setDisplayItem(cForm,thefrag,"",itemsArray);
- }
- break;
- }
- default: {
- break;
- }
- }
- }
- function savelangitem(thefrag,pForm,sel,item)
- {
- // Populate the hidden fields will the values entered in those fields.
- var selectedLang = getLanguageSelected(thefrag,sel);
- var hItem = item.id.substr(thefrag.length) +'-'+ selectedLang;
- var cForm = _F_Form.find(thefrag + pForm);
- setHiddenItemValue(cForm,hItem,item.value);
- }
- function setLangRemove(cForm,itemId,lang)
- {
- var delimitedLang = lang + ";";
- rElement = cForm.elements["removeLang"];
- if(typeof rElement == 'undefined' || rElement == null)
- {
- rElement = setHiddenItemValue(cForm,"removeLang",'');
- }
- if( rElement.value.indexOf(delimitedLang) == -1 )
- {
- rElement.value += delimitedLang;
- }
- }
- function clearLangRemove(cForm,itemId,lang)
- {
- var delimitedLang = lang + ";";
- rElement = cForm.elements[itemId];
- if(typeof rElement == 'undefined' || rElement == null)
- {
- rElement = setHiddenItemValue(cForm,itemId,'');
- }
- else
- {
- var sval = rElement.value;
- var sidx = sval.indexOf(delimitedLang);
- if( sidx > -1 )
- {
- var zval = sval.substr(sidx + delimitedLang.length);
- if( sidx == 0 )
- rElement.value = zval;
- else
- {
- var aval = sval.substring(0,sidx);
- rElement.value = aval + zval;
- }
- }
- }
- }
- function validateMultiLingualProperty(selectorName, propertyName, formName, theFrag, fragInst, itemList)
- {
- var cForm = _F_Form.find(theFrag + formName);
- var selector = $(theFrag + selectorName);
- var returnCode = 0;
- for (var index=0;index < selector.options.length;index++)
- {
- var currentOption = selector.options[index];
- if (currentOption.value == '-')
- break;
- var languageSpecificPropertyName = propertyName + "-" + currentOption.value;
- var currentLanguageItem = cForm.elements[languageSpecificPropertyName];
- //in the case there is no currentLanguage item this means that the drop down has
- //defaulted and no value has been typed in so no need to validate
- if (currentLanguageItem == null)
- return CValidator.RES_VALID
- var res = fragInst.validate(languageSpecificPropertyName, currentLanguageItem.value);
- returnCode = res;
- if (res != CValidator.RES_VALID)
- {
- currentOption.selected=true;
- adjustSelection(theFrag,formName,selectorName,itemList,"create");
- return res;
- }
- }
- return returnCode;
- }
|