PortaleOrdiniGruppo/PortalStudio/planeditor/properties.js
2025-03-24 15:28:26 +01:00

426 lines
15 KiB
JavaScript
Raw Permalink Blame History

/* exported
updateProperties SelectContents SelectQuery EditQuery NewQuery ListObj editPagelet openType NewTheme
SelectTheme SelectLayout EditLanguage EditTemplate SelectJs NewCss EditParameters EditCss editDesc IsObligatory
*/
//Scrive la properties
var formProp=new ZTPlanObjects.formObj()
var pickerObj;
var ps_props;
var newPropObj;
if(Empty(localStorage.getItem('zucchetti_planeditor_properties'))){
ps_props = {'width':250,'top':45,'left':500,'opened':true,'opacity':1}
localStorage.setItem('zucchetti_planeditor_properties', JSON.stringify(ps_props));
}else{
ps_props = JSON.parse(localStorage.getItem('zucchetti_planeditor_properties'))
}
var formPropOpened = false;
function FormProperties(){
if(!formPropOpened){
index=null;
formPropOpened = true;
var mainobj=formProp;
ps_currOpener = mainobj.id;
newPropObj = new propertiesObj({m_obj:mainobj,isForm:true});
} else {
formPropOpened = false;
newPropObj.updatePropertiesFromPaint();
}
return;
}
var ps_currOpener = null;
function Properties(force){
formPropOpened = false;
if(index!=null){
var mainitem=itemsHTML[index];
if(!force && ps_currOpener == mainitem.id){
if(isCMS) {
newPropObj.updatePropertiesFromPaint(); // serve solo nel plan del CMS
}
return;
}
ps_currOpener = mainitem.id;
newPropObj = new propertiesObj({m_obj:mainitem});
return;
}
}
// aggiorna la proprieta modificata dell Item
function updateProperties(e,the_property,propertyType,isForm,value,updateHTML,reconvertFunc,validFunc){
if(updateHTML==null) updateHTML=true;
var arrayProp;
//if (EmptyString(value)) value=" ";
isForm = (Empty(itemsHTML[index])) ? true : false;
if(isForm)
arrayProp=formProp;
else
arrayProp=itemsHTML[index];
if(arrayProp[the_property]==value)return;
if(reconvertFunc){
value = window[reconvertFunc](value);
}
if(validFunc){
var r = window[validFunc](value);
if(r!=true){
e.focus();
e.select()
return;
}//else
}
switch(propertyType){
case 'int': //solo valori numerici
value=parseInt(value); //controlla se <20> un valore numerico valido
if(isNaN(value)){
alert('Wrong data input');
}else{
arrayProp[the_property]=value;
//drawLinks(true)
}
break;
case 'checkbox':
if (typeof(value)=="boolean") value=(value?"true":"false");
if(value=="undefined") value = "false";
arrayProp[the_property]=value;
break
default:
//case 'str': case 'data': case 'select': case 'xmldata'://valori stringa
if(arrayProp.type=='Page' && the_property=='name') {
arrayProp.neww=true;updateLinksName(arrayProp,value);
}
// CUSTOM CMS
var svalue;
if(isCMS && arrayProp.type == 'Page' && the_property == 'alias') {
if(arrayProp.palias != value){
svalue = standardize(value);
updateLinksName(arrayProp,svalue);
arrayProp.alias = svalue;
arrayProp.neww=true;
Properties();
}
}
if(isCMS && arrayProp.type == 'Page' && the_property == 'pname') {
if(arrayProp.pname != value){
arrayProp.pname = value;
arrayProp.name = value;
svalue = standardize(value);
updateLinksName(arrayProp,svalue);
arrayProp.alias = svalue;
arrayProp.neww=true;
Properties();
}
arrayProp.alias=svalue;
}
// END CUSTOM
arrayProp[the_property]=value;
m_bUpdated=true;
// CUSTOM CMS
if(isCMS && arrayProp.type == 'Page' && the_property == 'page_type'){
Properties();
}
// END CUSTOM
//drawLinks(true)
}
if(updateHTML)
writeHTML();
if( newPropObj )
newPropObj.UpdateListObj("ctrlSelect");
}
function SelectContents(id_container,name){
// window.open("contents_builder.html?for="+i+"&title="+name, i, "height=270,width=540,left=350,top=200,status=no,toolbar=no,menubar=no,location=no");
window.layerOpenForeground("contents_builder.html?for="+id_container+"&title="+name,"contents_builder",'',700,360,true,1);
}
function SelectQuery(PortletItemIndex){
var TempArray = new JSURL("../servlet/SPVQRProxy?action=vqr").Response().replace(/\.vqr/gi, '');
//if(At("ACCESS DENIED",TempArray)>0){
if(TempArray.match("ACCESS DENIED")){
window.layerOpenForeground("../servlet/SPVQRProxy?action=vqr","SelectQuery",'',400,600,true,1);
//window.open("../servlet/SPVQRProxy?action=vqr", "SelectQuery", "height=100,width=350,left=350,top=200,status=no,toolbar=no,menubar=no,location=no");
}
else {
TempArray = JSON.parse(TempArray,true);
window.layerOpenForeground("../visualweb/select_fields.html?rtrnobj=query&for=" + PortletItemIndex,"SelectQuery",'',400,600,true,1);
//window.open("../visualweb/select_fields.html?rtrnobj=query&for=" + PortletItemIndex, "SelectQuery", "height=347,width=350,left=350,top=200,status=no,toolbar=no,menubar=no,location=no,resizable=yes");
}
}
function EditQuery(PortletItemIndex) {
if(LRTrim(itemsHTML[PortletItemIndex].query)=="")
alert("No query selected.");
else if(parent.newCurrentObj!=null)
parent.newCurrentObj(itemsHTML[PortletItemIndex].query,"visualquery",{});
else
window.open("../visualquery/index.jsp?filename="+itemsHTML[PortletItemIndex].query,"visualquery","resizable=yes,status=no,toolbar=no,menubar=no,location=no");
}
function NewQuery() {
if(parent.newCurrentObj!=null)
parent.newCurrentObj('New','visualquery',{});
else
window.open("../visualquery/index.jsp","visualquery","resizable=yes,status=no,toolbar=no,menubar=no,location=no");
}
function ListObj(obj) {
if(obj.value!='' && obj.value=='form'){
FormProperties()
return
}
if(obj.value!=''){
removeAllHandlers()
for(var i=0;i<itemsHTML.length;i++)
if(itemsHTML[i].id=="item"+obj.value){
var obk=itemsHTML[i];
break;
}
var str=addHandlers(obk.id.substr(4))
obk.shadow='shadow'+obk.id.substr(4)
Ctrl("canvashandlers").innerHTML=Ctrl("canvashandlers").innerHTML+str
selectItem(Ctrl(obk.shadow))
}
}
function editPagelet(e,url){
openedPagelet= true;
e.cancelBubble=true
if(e.stopPropagation)
e.stopPropagation();
if( !url )
url = itemsHTML[index].template;
url=url.split(',');
url=url[0];
url=Strtran(url,".jsp","")
var str = "";
if( url == ""){
if(!Empty(window.frameElement)){
str = "?planIframeId="+window.frameElement.id+"&planItemId="+itemsHTML[index].name;
}
window.layerOpenForeground("../portalstudio/select_template.jsp"+str,"select_template",'',620,280,true,1);
}else{
openedPageletName= url;
var listSkins = new JSURL("../servlet/JSPReader?type=themes",true).Response().split(",");
pickerObj = [];
var type_root = new JSURL('../servlet/JSPReader?action=getType&name='+openedPageletName+'&folder_path=').Response();
if(type_root != "undefined") {
pickerObj.push({"path":"jsp","name":openedPageletName});
}
for(var j = 0; j < listSkins.length - 1; j++) {
var type = new JSURL('../servlet/JSPReader?action=getType&name='+openedPageletName+'&folder_path=/../'+listSkins[j]).Response();
if(type != "undefined") {
pickerObj.push({"path":listSkins[j],"name":openedPageletName});
}
}
if(pickerObj.length == 0) {
pickerObj.push({"path":"","name":openedPageletName});
}
window.layerOpenForeground("../planeditor/pageletPicker.jsp?returnValue=true","SelectPageletFile",'',350,500,true,1);
}
}
function openType(url, path) {
var str = "", painter = "";
var type = new JSURL('../servlet/JSPReader?action=getType&name='+url+'&folder_path='+path,true,function(response) {
type = response.Response().toLowerCase();
// window.opener.newCurrentObj(name,toolsPaths[type]['openurl'](name,path_tmp),path_tmp);
var parms={}
path = Strtran(path,"/../","");
if(path != "jsp") {
parms.folder_path = path;
}
if(type == 'pagelet'){
painter = "../pagelet/editor.jsp";
var template_type_url = new JSURL("../servlet/JSPReader?type=template_type&name="+url);
var template_type=template_type_url.Response()
parms.template=template_type;
template_type="&template="+template_type
str = painter+"?name="+url+template_type
}else if(type == 'pageleteditor'){
var planIframeId= planIframeId="";
if(!Empty(window.frameElement)){
planIframeId = "&planIframeId="+window.frameElement.id;
var planItemId = "&planItemId="+itemsHTML[index].name;
parms.planIframeId=window.frameElement.id;
parms.planItemId=itemsHTML[index].name;
}
painter = "../pageleteditor/pagelet_editor.jsp";
str = painter +"?name="+url+planIframeId+planItemId;
/* ridefiniscto la closeCurrentObj per controllare l'effetiva chiusura delle pagelet collegata prima della chiusura del plan */
if( parent.closeCurrentObj ){
var oldF = parent.closeCurrentObj;
parent.closeCurrentObj = function(currentname){
if(this.opensApl[this.currentIndex]!=null){
var type = this.opensApl[this.currentIndex].type;
/* Sto' cercando di chiudere il plan con una pagelet linkata*/
if( type == 'plan' && this.opensApl[this.currentIndex].name == currentname) {
if( openedPagelet ){
if(confirm("Pagelet linked already opened. \nAre you sure to close " + this.opensApl[this.currentIndex].name + " and lose the link?\n\nClick OK to close\nClick Cancel to ignore")){
oldF();
} else {
}
}
} else
/* sto' cercando di chiudere la pagelet linkata con il plan */
if( type == 'pageleteditor' && this.opensApl[this.currentIndex].name == openedPageletName) {
openedPagelet= true;
}
}else {
oldF();
}
this.closeCurrentObj = oldF;
}.bind(parent,currentname);
}
}
if(parent.newCurrentObj)
// parent.newCurrentObj(url,str);
parent.newCurrentObj(url,type,parms);
else
windowOpenForeground(str,'','status=1,directories=0,width=800px,height=600px,top=0,left=0,resizable=1,scrollbars=1');
})
}
function NewTheme(/*retTo*/) {
var str =""
if(!Empty(window.frameElement)){
str = "?planIframeId="+window.frameElement.id+"&planItemId="+itemsHTML[index].name
}
window.layerOpenForeground("../portalstudio/select_template.jsp"+str,"select_template",'',620,280,true,1);
}
function SelectTheme(retTo/*,isFormProp*/) {
pickerObj = [];
pickerObj[0] = new Array();
pickerObj[0].title = "Theme list available";
var url;
if(!isCMS) {
url = new JSURL("../servlet/JSPReader?type=pagelet");
} else {
url = new JSURL("../servlet/JSPReader?type=template_folder");
}
var tmp_list = url.Response();
pickerObj[0].list = tmp_list.split(',');
window.layerOpenForeground("../portalstudio/picker.jsp?for="+retTo,"SelectThemesFile",'',350,500,true,1);
}
// CUSTOM CMS
function SelectLayout(retTo){
pickerObj = [];
pickerObj[0] = new Array();
pickerObj[0].title = "Theme list available";
var url = new JSURL("../servlet/JSPReader?type=layout&folder_path="+formProp.template_folder);
var tmp_list = url.Response();
pickerObj[0].list = tmp_list.split(',');
window.layerOpenForeground("../portalstudio/picker.jsp?type=layout&for="+retTo,"Templates",'',350,500,true,1);
}
function EditLanguage(PortletItemIndex,field){
window.layerOpenForeground("multilang_edit.jsp?index="+PortletItemIndex+"&field="+field,"translate",'',350,500,true,1);
}
function EditTemplate(/*e*/){
var url = "";
var layout = itemsHTML[index].layout;
//CUSTOM CMS
if(isCMS) {
// risorse pagina modello
var contents_model="";
var urls_model="";
var groups_model="";
var contents_type_model="";
for(var i=0;i<itemsHTML.length;i++){
if(itemsHTML[i].alias==itemsHTML[index].modelselected){
contents_model=itemsHTML[i].contents;
groups_model=itemsHTML[i].groups;
contents_type_model=itemsHTML[i].contents_type;
var app_urls = itemsHTML[i].urls.split(",");
for(var j=0;j<app_urls.length;j++)
urls_model += app_urls[j] +'&model_resource=true,'
urls_model=urls_model.substring(0,urls_model.length-1);
break;
}
}
layout = '../templates/'+formProp.template_folder+'/'+layout;
}
var type = new JSURL("../servlet/JSPReader?action=getType&name="+layout).Response();
if(type == "PageletEditor") {
url = '../pageleteditor/pagelet_editor.jsp?name=/'+layout;
} else {
//aggiungo anche risorse pagina modello
url = '../templateeditor/index.jsp?editMode=true&tpl='+layout+'.jsp&pageid='+itemsHTML[index].id+"&contents="+itemsHTML[index].contents+","+contents_model+"&urls="+URLenc(itemsHTML[index].urls+","+urls_model)+"&groups="+itemsHTML[index].groups+","+groups_model+"&contents_type="+itemsHTML[index].contents_type+","+contents_type_model;
}
var mar_left = 25, width = window.outerWidth - mar_left*2;
var mar_top = 15, height = window.outerHeight - mar_top*2;
window.layerOpenForeground(url,"editTemplate",'',width,height,true,1);
}
function SelectJs(retTo) {
pickerObj = [];
pickerObj[0] = new Array();
pickerObj[0].title = "JS list available";
var url = new JSURL("../servlet/JSPReader?type=js&folder_path="+formProp.template_folder,true);
var tmp_list = url.Response();
pickerObj[0].list = tmp_list.split(',');
window.layerOpenForeground("../portalstudio/picker.jsp?for="+retTo+"&mode=multiple","SelectJSFile",'',350,500,true,1);
}
// END CUSTOM
function NewCss(/*index*/) {
if(parent.newCurrentObj!=null)
parent.newCurrentObj('New','css',{});
}
function EditParameters(idx){
window.layerOpenForeground("../parameter_edit.html?idx="+idx,"parameters",'',400,600,true,1);
//window.open("../parameter_edit.html?idx="+idx, "parameters", "height=200,width=400,left=350,top=200,status=no,toolbar=no,menubar=no,location=no,resizable=yes");
}
function EditCss(){
var css_list= itemsHTML[index].css.split(',')
for(var i=0;i<css_list.length;i++)
parent.newCurrentObj(Strtran(css_list[i],".css",""),"css",{});
}
function editDesc(id,isFormProp){
window.layerOpenForeground("../portalstudio/insert_desc.html?isFormProp="+isFormProp+"&id="+id,"description",'',500,300,true,1);
//window.open("../portalstudio/insert_desc.html?isFormProp="+isFormProp+"&id="+id, "description", "height=250,width=400,left=350,top=200,status=no,toolbar=no,menubar=no,location=no,resizable=yes");
}
function IsObligatory(v){
if(Empty(v)){
PSAlert.alert('Obligatory input value!')
return false;
}else
return true;
}
function standardize(pname) {
var str = Trim(pname);
str = str.toLowerCase();
str = str.replace(/[^a-zA-Z0-9 _-]/gi, "");
str = str.replace(/ +/gi, "-");
while (str.substring(0,1) == '-')
str = str.substring(1,str.length);
while (str.substring(str.length-1, str.length) == '-')
str = str.substring(0,str.length-1);
var n = 0;
var f = false;
var c = false;
for(var i in itemsHTML){
if(i!=index){
var item = itemsHTML[i];
if(pname == item.pname){
f = true;
var tmp = item.alias.substring(item.alias.length-1,item.alias.length);
if(!isNaN(tmp) && tmp > n) n = tmp;
}
if(str == item.alias)
c = true;
}
}
if(isNaN(n)) n = 1;
else n = parseInt(n) + 1;
if(n>0 && f && c)
str = str + n;
return str;
}