%zewdAPI ; Enterprise Web Developer run-time functions and user APIs ; ; Product: Enterprise Web Developer version 4.0.755 ; Build Date: Thu, 12 Feb 2009 09:53:12 ; ; ---------------------------------------------------------------------------- ; | Enterprise Web Developer for GT.M and m_apache | ; | Copyright (c) 2004-9 M/Gateway Developments Ltd, | ; | Reigate, Surrey UK. | ; | All rights reserved. | ; | | ; | http://www.mgateway.com | ; | Email: rtweed@mgateway.com | ; | | ; | This program 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. | ; | | ; | This program 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 this program. If not, see . | ; ---------------------------------------------------------------------------- ; QUIT ; ; version() ; QUIT "Enterprise Web Developer (Build "_$$getVersion^%zewdCompiler()_")" ; date() ; QUIT $$getDate^%zewdCompiler() ; compilePage(app,page,mode,technology,outputPath,multilingual,maxLines) d compilePage^%zewdCompiler($g(app),$g(page),$g(mode),$g(technology),$g(outputPath),$g(multilingual),$g(maxLines)) QUIT ; compileAll(app,mode,technology,outputPath,multilingual,templatePageName,maxLines) d compileAll^%zewdCompiler($g(app),$g(mode),$g(technology),$g(outputPath),$g(multilingual),$g(templatePageName),$g(maxLines)) QUIT ; autoTranslate(app,language,verbose) d autoTranslate^%zewdMgr($g(app),$g(language),$g(verbose)) ; startSession(page,requestArray,serverArray,sessionArray,filesArray) ; ; QUIT $$startSession^%zewdPHP(page,.requestArray,.serverArray,.sessionArray,.filesArray) ; closeSession(requestArray) ; ; QUIT $$closeSession^%zewdPHP(.requestArray) ; saveSession(sessionArray) ; ; d saveSession^%zewdPHP(.sessionArray) QUIT ; endOfPage(sessionArray) ; d endOfPage^%zewdPHP(.sessionArray) QUIT ; prePageScript(sessid) QUIT $$prePageScript^%zewdPHP(sessid) ; releaseLock(sessid) d releaseLock^%zewdPHP(sessid) QUIT ; tokeniseURL(url,sessid) QUIT $$tokeniseURL^%zewdCompiler16($g(url),$g(sessid)) ; getSessid(token) ; i token="" QUIT "" i $$isTokenExpired(token) QUIT "" QUIT +^%zewdSession("tokens",token) ; initialiseSession(sessid) k ^%zewdSession("session",sessid) QUIT ; deleteSession(sessid) ; d deleteSession^%zewdPHP(sessid) ; QUIT ; setRedirect(toPage,sessid) d setJump(toPage,sessid) QUIT ; setJump(toPage,sessid) ; n token ; d setSessionValue("ewd_nextPage",toPage,sessid) d setSessionValue("ewd_jump",toPage,sessid) QUIT:$e(sessid,1,4)="csp:" s token=$$setNextPageToken(toPage,sessid) d setSessionValue("ewd_pageToken",token,sessid) QUIT ; setNextPageToken(nextPage,sessid) ; n token,length ; s length=$$getSessionValue("ewd_sessid_length",sessid) i length="" s length=30 f s token=$$makeTokenString(length) q:'$d(^%zewdSession("nextPageTokens",sessid,token)) i $g(^zewd("trace"))=1 d trace^%zewdAPI("setNextPageToken^%zewdAPI: sessid="_sessid_"; token="_token_"; nextPage="_nextPage) s ^%zewdSession("nextPageTokens",sessid,token,$$zcvt(nextPage,"l"))="" QUIT token ; isNextPageTokenValid(token,sessid,page) QUIT $$isNextPageTokenValid^%zewdCompiler13(token,sessid,page) ; isCSP(sessid) QUIT $e(sessid,1,4)="csp:" ; normaliseTextValue(text) s text=$$replaceAll(text,"'","'") QUIT $$zcvt(text,"o","HTML") ; displayOptions(fieldName,listName,escape) ;d displayOptions^%zewdCompiler13($g(fieldName),$g(listName),$g(escape)) n codeValue,%d,i,name,nnvp,nvp,pos,textValue,value ; s fieldName=$tr(fieldName,".","_") s listName=$tr(listName,".","_") i 0 e d . s escape=+$g(escape) . s pos="" . f s pos=$o(^%zewdSession("session",sessid,"ewd_list",listName,pos)) q:pos="" d . . k %d,textValue,codeValue,codeValueEsc,textValueEsc . . s %d=^%zewdSession("session",sessid,"ewd_list",listName,pos) . . s textValue=$p(%d,$c(1),1) . . ; . . s textValueEsc=textValue . . s textValueEsc=$$replaceAll(textValueEsc,"'","'") . . i escape s textValueEsc=$$zcvt(textValue,"o","HTML") . . ; . . s codeValue=$p(%d,$c(1),2) . . i codeValue="" s codeValue=textValue . . s codeValueEsc=codeValue . . s codeValueEsc=$$replaceAll(codeValueEsc,"'","'") . . i escape s codeValueEsc=$$zcvt(codeValue,"o","HTML") . . w ""_$c(13,10) QUIT ; displayTextArea(fieldName) d displayTextArea^%zewdCompiler13($g(fieldName)) QUIT ; mCSPReq2(fields) ; n i,noOfFields,field,type s noOfFields=$l(fields,"`") f i=1:1:noOfFields d . s field=$p(fields,"`",i) . q:field="" . s type=$p(field,"|",2) . S field=$P(field,"|",1) . d mergeCSPRequestToSession(field,type) d mergeCSPRequestToSession("ewd_pressed","hidden") QUIT ; mCSPReq(fieldName,type) d mergeCSPRequestToSession(fieldName,type) QUIT ; mergeCSPRequestToSession(fieldName,type) d mergeCSPRequestToSession^%zewdCompiler16($g(fieldName),$g(type)) QUIT ; ; note - textarea data storage can be queried using SQL with the following construct ; ; listAttributeFL {type=%Library.String ; sqllisttype=subnode} ; displayText(textID,reviewMode,sessid) QUIT $$displayText^%zewdCompiler13($g(textID),$g(reviewMode),$g(sessid)) ; systemMessage(text,type,sessid,appName,langCode) n textid,fragments,outputText,error,technology,translationMode,typex ; ;d trace^%zewdAPI("systemMessage : text="_text_" ; type="_type_" ; sessid="_sessid) i $g(text)="" QUIT "" ; manual API or where sessid not known i $g(sessid)="" QUIT $$systemMessage^%zewdCompiler5(text,$g(type),$g(appName),$g(langCode)) s translationMode=+$$getSessionValue^%zewdAPI("ewd_translationMode",sessid) ;d trace^%zewdAPI("ewd_translationMode="_translationMode) i 'translationMode QUIT text s appName=$$getSessionValue^%zewdAPI("ewd_appName",sessid) ;d trace^%zewdAPI("appName="_appName) s typex=type ; avoid Cache bug ! i $$getPhraseIndex^%zewdCompiler5(text)="" QUIT "" i '$$isTextPreviouslyFound^%zewdCompiler5(text,appName,"","",.textid,,,type) d . s textid=$$addTextToIndex^%zewdCompiler5(text,appName,"","",.fragments,.outputText,typex) s error=$$displayText(textid,0,sessid) QUIT error ; errorMessage(text,sessid) QUIT $$systemMessage(text,"error",sessid) ; ; ============================================================================ ; User API Methods ; ============================================================================ ; isCSPPage(docOID) ; n docName ; s docName=$$getDocumentName^%zewdDOM(docOID) QUIT $$bypassMode^%zewdCompiler(docName) ; getSessionValue(name,sessid) ; n %zt,return,value ; s name=$$stripSpaces(name) s %zt=$zt i $g(name)="" QUIT "" i $g(sessid)="" QUIT "" i name["." d QUIT value . n np,obj,prop . i name["_" s name=$p(name,"_",1)_"."_$p(name,"_",2,200) . s np=$l(name,".") . s obj=$p(name,".",1,np-1) . s prop=$p(name,".",np) . s value=$$getSessionObject(obj,prop,sessid) ;s $zt="extcErr" ;i $r(100)<10 i '$$$licensed("DOM",,,,,,,,,,) d setWarning("You do not have a current eXtc License",sessid) ;i $$isTemp(name) d QUIT value i $e(name,1,4)="tmp_" d QUIT value . s value=$g(zewdSession(name)) . i value="",$g(^%zewdSession("session",sessid,"ewd_technology"))="gtm" s value=$g(sessionArray(name)) QUIT $g(^%zewdSession("session",sessid,name)) ; setWLDSymbol(name,sessid) ; ; ------------------------------------------------------ ; Duplicate copy for performance: see also %zewdPHP! ; ------------------------------------------------------ ; n wldAppName,wldName,wldSessid,%zzname ; QUIT:$zv["GT.M" QUIT ; extcErr ; n mess s mess="eXtc does not appear to have been installed or is unavailable in the "_$$namespace()_" namespace where your application is attempting to run. Your application will be unable to run correctly" d setWarning(mess,sessid) s $zt=%zt QUIT "" ; valueErr ; s $zt=%zt QUIT "" ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; exportCustomTags(tagList,filepath) QUIT $$exportCustomTags^%zewdCompiler16(.tagList,$g(filepath)) ; exportAllCustomTags(filepath) QUIT $$exportAllCustomTags^%zewdCompiler16($g(filepath)) ; importCustomTags(filePath) QUIT $$importCustomTags^%zewdForm($g(filePath)) ; setSessionValue(name,value,sessid) ; s name=$$stripSpaces(name) i $g(name)="" QUIT i $g(sessid)="" QUIT i name["." d QUIT . n np,obj,prop . i name["_" s name=$p(name,"_",1)_"."_$p(name,"_",2,200) . s np=$l(name,".") . s obj=$p(name,".",1,np-1) . s prop=$p(name,".",np) . d setSessionObject(obj,prop,value,sessid) s value=$g(value) i $e(name,1,4)="tmp_" s zewdSession(name)=value QUIT s ^%zewdSession("session",sessid,name)=value QUIT ; allowJSONAccess(sessionName,access,sessid) ; access="r|rw" s ^%zewdSession("jsonAccess",sessid,sessionName)=access QUIT ; disallowJSONAccess(sessionName,sessid) k ^%zewdSession("jsonAccess",sessid,sessionName) QUIT ; JSONAccess(sessionName,sessid) QUIT $g(^%zewdSession("jsonAccess",sessid,sessionName)) ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; isTemp(name) QUIT $e(name,1,4)="tmp_" ; ; existsInSession(name,sessid) QUIT $$existsInSession^%zewdCompiler13($g(name),$g(sessid)) ; existsInSessionArray(name,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11) QUIT $$existsInSessionArray^%zewdCompiler13($g(name),$g(p1),$g(p2),$g(p3),$g(p4),$g(p5),$g(p6),$g(p7),$g(p8),$g(p9),$g(p10),$g(p11)) ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; clearSessionArray(arrayName,sessid) s arrayName=$$stripSpaces(arrayName) i $g(sessid)="" QUIT i $g(arrayName)="" QUIT s arrayName=$tr(arrayName,".","_") ;i $$isTemp(arrayName) k zewdSession(arrayName) QUIT i $e(arrayName,1,4)="tmp_" k zewdSession(arrayName) QUIT k ^%zewdSession("session",sessid,arrayName) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; setSessionArray(arrayName,itemName,itemValue,sessid) ; s arrayName=$$stripSpaces(arrayName) QUIT:$g(arrayName)="" QUIT:$g(itemName)="" QUIT:$g(sessid)="" s arrayName=$tr(arrayName,".","_") i $$isTemp(arrayName) s zewdSession(arrayName,itemName)=itemValue QUIT s ^%zewdSession("session",sessid,arrayName,itemName)=itemValue QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; getSessionArray(arrayName,sessid,array,clearArray) ; s arrayName=$$stripSpaces(arrayName) QUIT:$g(arrayName)="" s arrayName=$tr(arrayName,".","_") QUIT:$g(sessid)="" set $zt="getSessionArrayErr" i $g(clearArray)=1 k array i $$isTemp(arrayName) m array=zewdSession(arrayName) QUIT m array=^%zewdSession("session",sessid,arrayName) QUIT ; getSessionArrayErr ; --- Come here if error occurred in 'getSessionArray' --- set $zt="" QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; addToSession(name,sessid) s name=$$stripSpaces(name) QUIT:$g(sessid)="" QUIT:$g(name)="" s name=$tr(name,".","_") i $$isTemp(name) m zewdSession(name)=@name QUIT m ^%zewdSession("session",sessid,name)=@name QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; mergeToSession(name,sessid) QUIT:$g(sessid)="" QUIT:$g(name)="" d addToSession(name,sessid) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; mergeGlobalToSession(globalName,sessionName,sessid) d mergeGlobalToSession^%zewdCompiler13($g(globalName),$g(sessionName),$g(sessid)) QUIT ; mergeGlobalFromSession(globalName,sessionName,sessid) d mergeGlobalFromSession^%zewdCompiler13($g(globalName),$g(sessionName),$g(sessid)) QUIT ; mergeArrayToSession(array,sessionName,sessid) QUIT:$g(sessid)="" QUIT:$g(sessionName)="" s sessionName=$tr(sessionName,".","_") ;i $$isTemp(sessionName) m zewdSession(sessionName)=array QUIT i $e(sessionName,1,4)="tmp_" m zewdSession(sessionName)=array QUIT m ^%zewdSession("session",sessid,sessionName)=array QUIT ; mergeArrayToSessionObject(array,sessionName,sessid) d mergeArrayToSessionObject^%zewdCompiler16(.array,$g(sessionName),$g(sessid)) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; mergeArrayFromSession(array,sessionName,sessid) QUIT:$g(sessid)="" QUIT:$g(sessionName)="" s sessionName=$tr(sessionName,".","_") ;i $$isTemp(sessionName) m array=zewdSession(sessionName) QUIT i $e(sessionName,1,4)="tmp_" m array=zewdSession(sessionName) QUIT m array=^%zewdSession("session",sessid,sessionName) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; mergeFromSession(name,sessid) QUIT:$g(sessid)="" QUIT:$g(name)="" s name=$tr(name,".","_") i $$isTemp(name) m @name=zewdSession(name) m @name=^%zewdSession("session",sessid,name) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; deleteFromSession(name,sessid) QUIT:$g(sessid)="" QUIT:$g(name)="" i name["." d QUIT . n np,obj,prop . s np=$l(name,".") . s obj=$p(name,".",1,np-1) . s prop=$p(name,".",np) . d deleteFromSessionObject(obj,prop,sessid) ;i $$isTemp(name) k zewdSession(name) QUIT i $e(name,1,4)="tmp_" k zewdSession(name) QUIT k ^%zewdSession("session",sessid,name) QUIT ; sessionNameExists(name,sessid) QUIT:$g(sessid)="" QUIT:$g(name)="" s name=$tr(name,".","_") i $$isTemp(name) QUIT $d(zewdSession(name)) QUIT $d(^%zewdSession("session",sessid,name)) ; getSessionArrayValue(arrayName,subscript,sessid,exists) QUIT $$getSessionArrayValue^%zewdCompiler13($g(arrayName),$g(subscript),$g(sessid),.exists) ; sessionArrayValueExists(arrayName,subscript,sessid) QUIT $$sessionArrayValueExists^%zewdCompiler13($g(arrayName),$g(subscript),$g(sessid)) ; deleteSessionArrayValue(arrayName,subscript,sessid) d deleteSessionArrayValue^%zewdCompiler13($g(arrayName),$g(subscript),$g(sessid)) QUIT ; ; Objects ; setSessionObject(objectName,propertyName,propertyValue,sessid) ;d setSessionObject^%zewdCompiler13($g(objectName),$g(propertyName),$g(propertyValue),$g(sessid)) ;QUIT ; n comma,i,np,p,sessionArray,x ; i $g(objectName)="" QUIT i $g(propertyName)="" QUIT ;i $g(propertyValue)="" QUIT i $g(sessid)="" QUIT s np=$l(objectName,".") ;s objectName=$$replace(objectName,".","_") i objectName["." s objectName=$p(objectName,".",1)_"_"_$p(objectName,".",2,2000) i np=1 d QUIT . i $e(objectName,1,3)="tmp" s zewdSession(objectName_"_"_propertyName)=propertyValue q . s ^%zewdSession("session",sessid,(objectName_"_"_propertyName))=propertyValue ; f i=1:1:np-1 s p(i)=$p(objectName,".",i) s comma="," i $e(objectName,1,4)="tmp_" d . s x="s zewdSession(",comma="" e d . s x="s ^%zewdSession(""session"","_sessid f i=1:1:np-1 s x=x_comma_""""_p(i)_"""",comma="," s x=x_","""_propertyName_""")="""_propertyValue_"""" x x QUIT ; getSessionObject(objectName,propertyName,sessid) ; n i,np,p,value,x ; i $g(sessid)="" QUIT "" s value="" s np=$l(objectName,".") i objectName[".",objectName'["_" s objectName=$p(objectName,".",1)_"_"_$p(objectName,".",2,2000) ;s objectName=$$replace(objectName,".","_") i np=1 QUIT $g(^%zewdSession("session",sessid,(objectName_"_"_propertyName))) ; f i=1:1:np-1 s p(i)=$p(objectName,".",i) s x="s value=$g(^%zewdSession(""session"","_sessid f i=1:1:np-1 s x=x_","""_p(i)_"""" s x=x_","""_propertyName_"""))" x x QUIT value ; deleteFromSessionObject(objectName,propertyName,sessid) d deleteFromSessionObject^%zewdCompiler13($g(objectName),$g(propertyName),$g(sessid)) QUIT ; sessionObjectPropertyExists(objectName,propertyName,sessid) QUIT $$sessionObjectPropertyExists^%zewdCompiler13($g(objectName),$g(propertyName),$g(sessid)) ; deleteSessionObject(objectName,sessid) n obj s obj=objectName i obj["." s obj=$tr(obj,".","_") i obj'["_" s obj=obj_"_" d clearSessionByPrefix(obj,$g(sessid)) ;d deleteSessionObject^%zewdCompiler13($g(objectName),$g(sessid)) QUIT ; copyObjectToSession(oref,objectName,sessid) d copyObjectToSession^%zewdCompiler13($g(oref),$g(objectName),$g(sessid)) QUIT ; copyResultSetToSession(oref,objectName,sessid) d copyResultSetToSession^%zewdCompiler13($g(oref),$g(objectName),$g(sessid)) QUIT ; getResultSetValue(resultSetName,index,propertyName,sessid) QUIT $$getResultSetValue^%zewdCompiler13($g(resultSetName),$g(index),$g(propertyName),$g(sessid)) ; addToResultSet(sessionName,propertyName,value,sessid) d addToResultSet^%zewdCompiler13($g(sessionName),$g(propertyName),$g(value),$g(sessid)) QUIT ; mergeRecordArrayToResultSet(sessionName,recordArray,sessid) d mergeRecordArrayToResultSet^%zewdCompiler13($g(sessionName),.recordArray,$g(sessid)) QUIT ; JSONToSessionObject(objectName,jsonString,sessid) d JSONToSessionObject^%zewdCompiler13($g(objectName),$g(jsonString),$g(sessid)) QUIT ; sessionObjectToJSON(objectName,sessid) QUIT $$sessionObjectToJSON^%zewdCompiler13($g(objectName),$g(sessid)) ; objectGlobalToJSON(objectName) QUIT $$objectGlobalToJSON^%zewdCompiler13($g(objectName)) ; saveJSON(objectName,jsonString) QUIT $$saveJSON^%zewdCompiler13($g(objectName),$g(jsonString)) ; getJSON(objectName,addRefCol) QUIT $$getJSON^%zewdCompiler13($g(objectName),$g(addRefCol)) ; setJSONValue(JSONName,objectName,sessid) d setJSONValue^%zewdCompiler16($g(JSONName),$g(objectName),$g(sessid)) d allowJSONAccess(objectName,"r",sessid) QUIT ; convertToJSON(arrayName,isExtJS) n dojo i '$d(@arrayName) QUIT "" s dojo="" i $g(isExtJS)=1 s dojo=2 QUIT $$walkArray^%zewdCompiler13("",arrayName,dojo) ; mergeToJSObject(sessionObject,JSObject) QUIT $$mergeToJSObject^%zewdCompiler13($g(sessionObject),$g(JSObject),$g(sessid)) ; ; Javascript objects ; getJavascriptObjectBlock(objectName,docName,textArray) QUIT $$getJavascriptObjectBlock^%zewdCompiler13($g(objectName),$g(docName),.textArray) ; replaceJavascriptObject(objectName,newFunctionText,docName) QUIT $$replaceJavascriptObject^%zewdCompiler13($g(objectName),$g(newFunctionText),$g(docName)) ; replaceJavascriptObjectBody(functionName,newBody,docName) QUIT $$replaceJavascriptObjectBody^%zewdCompiler13($g(functionName),$g(newBody),$g(docName)) ; getJavascriptObjectBody(functionName,docName) QUIT $$getJavascriptObjectBody^%zewdCompiler13($g(functionName),$g(docName)) ; getJavascriptObject(objectName,docName,eOID) QUIT $$getJavascriptObject^%zewdCompiler13($g(objectName),$g(docName),$g(eOID)) ; javascriptObjectExists(objectName,docName) QUIT $$javascriptObjectExists^%zewdCompiler13($g(objectName),$g(docName)) ; getLastJavascriptTag(docName,textArray) QUIT $$getLastJavascriptTag^%zewdCompiler13($g(docName),.textArray) ; addJavascriptObject(docName,jsText) QUIT $$addJavascriptObject^%zewdCompiler13($g(docName),.jsText) ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; setSessionValues(nvArray,sessid) ; QUIT:$g(sessid)="" n name,no,value s name="" f s name=$o(nvArray(name)) q:name="" d . d deleteFromSession(name,sessid) . d clearSelected(name,sessid) . s value=$g(nvArray(name)) . d setSessionValue(name,value,sessid) . s no="" . f s no=$o(nvArray(name,no)) q:no="" d . . s value=nvArray(name,no) . . d addToSelected(name,value,sessid) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; getSessionValues(prefix,nvArray,sessid) ; n len,name,no,value QUIT:$g(sessid)="" QUIT:$g(prefix)="" set $zt="getSessionValuesErr" s len=$l(prefix) k nvArray s name=prefix f s name=$o(^%zewdSession("session",sessid,name)) q:name="" q:$e(name,1,len)'=prefix d . d setNVArray(name,.nvArray,sessid) s name=prefix,no=0 f s name=$o(^%zewdSession("session",sessid,"ewd_selected",name)) q:name="" q:$e(name,1,len)'=prefix d . s value="" . f s value=$o(^%zewdSession("session",sessid,"ewd_selected",name,value)) q:value="" d . . s no=no+1 . . s nvArray(name,no)=value QUIT ; getSessionValuesErr ; --- Come here if error occurred in 'getSessionValues' --- set $zt="" QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; getSessionValuesByPrefix(prefix,sessid) ; n len,name QUIT:$g(sessid)="" QUIT:$g(prefix)="" s prefix=$tr(prefix,".","_") set $zt="getSessionValuesByPrefixErr" s len=$l(prefix) s name=prefix f s name=$o(^%zewdSession("session",sessid,name)) q:name="" q:$e(name,1,len)'=prefix d . i name?1A.AN m @name=^%zewdSession("session",sessid,name) QUIT ; getSessionValuesByPrefixErr set $zt="" QUIT ; setNVArray(name,nvArray,sessid) n selected,value,no s nvArray(name)=$$getSessionValue(name,sessid) QUIT ; clearSessionByPrefix(prefix,sessid) ; n len,name QUIT:$g(sessid)="" QUIT:$g(prefix)="" s prefix=$tr(prefix,".","_") s len=$l(prefix) ; s name=prefix f s name=$o(^%zewdSession("session",sessid,name)) q:name="" q:$e(name,1,len)'=prefix d . i $e(name,1,4)="ewd_" q . d deleteFromSession(name,sessid) s name=prefix f s name=$o(^%zewdSession("session",sessid,"ewd_selected",name)) q:name="" q:$e(name,1,len)'=prefix d . d clearSelected(name,sessid) s name=prefix f s name=$o(^%zewdSession("session",sessid,"ewd_list",name)) q:name="" q:$e(name,1,len)'=prefix d . d clearList(name,sessid) s name=prefix f s name=$o(^%zewdSession("session",sessid,"ewd_textarea",name)) q:name="" q:$e(name,1,len)'=prefix d . d clearTextArea(name,sessid) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; ; HTML Form-specific APIs ; getTextValue(fieldName,sessid) QUIT $$getSessionValue(fieldName,sessid) ; setTextValue(fieldName,value,sessid) d setSessionValue(fieldName,value,sessid) QUIT ; getPasswordValue(fieldName,sessid) QUIT $$getSessionValue(fieldName,sessid) ; getHiddenValue(fieldName,sessid) QUIT $$getSessionValue(fieldName,sessid) ; setHiddenValue(fieldName,value,sessid) d setSessionValue(fieldName,value,sessid) ; getRadioValue(fieldName,sessid) QUIT $$getSessionValue(fieldName,sessid) ; setRadioOn(fieldName,value,sessid) d setSessionValue(fieldName,value,sessid) QUIT ; isRadionOn(fieldName,value,sessid) QUIT $$getRadioValue(fieldName,sessid)=value ; isCheckboxOn(fieldName,value,sessid) QUIT $$isSelected(fieldName,value,sessid) ; getCheckboxValues(fieldName,selectedValueArray,sessid) d mergeFromSelected(fieldName,.selectedValueArray,sessid) QUIT ; initialiseCheckbox(fieldName,sessid) d clearSelected(fieldName,sessid) QUIT ; setCheckboxOn(fieldName,value,sessid) d addToSelected(fieldName,value,sessid) QUIT ; setCheckboxOff(fieldName,value,sessid) d removeFromSelected(fieldName,value,sessid) ; setCheckboxValues(fieldName,selectedValueArray,sessid) ; ; array format : array(checkboxValue)=checkboxValue ; eg selected("red")="red" ; d mergeToSelected(fieldName,.selectedValueArray,sessid) QUIT ; getSelectValue(fieldName,sessid,nullify) ; n value ; s value=$$getSessionValue(fieldName,sessid) i $a(value)=160 s value="" QUIT value ; setSelectValue(fieldName,value,sessid) d setSessionValue(fieldName,value,sessid) ; isSelectOn(fieldName,value,sessid) QUIT $$getSelectValue(fieldName,sessid)=value ; isMultipleSelectOn(fieldName,value,sessid) QUIT $$isSelected(fieldName,value,sessid) ; getMultipleSelectValues(fieldName,selectedValueArray,sessid) d mergeFromSelected(fieldName,.selectedValueArray,sessid) QUIT ; initialiseMultipleSelect(fieldName,sessid) d clearSelected(fieldName,sessid) QUIT ; setMultipleSelectOn(fieldName,value,sessid) d addToSelected(fieldName,value,sessid) QUIT ; setMultipleSelectOff(fieldName,value,sessid) d removeFromSelected(fieldName,value,sessid) ; setMultipleSelectValues(fieldName,selectedValueArray,sessid) ; ; array format : array(checkboxValue)=checkboxValue ; eg selected("red")="red" ; d mergeToSelected(fieldName,.selectedValueArray,sessid) QUIT ; getTextArea(fieldName,textArray,sessid) d mergeFromTextArea(fieldName,.textArray,sessid) QUIT ; setFieldError(fieldName,sessid) ; n errors s errors(fieldName)=$$getSessionValue("ewd_errorClass",sessid) d mergeArrayToSession^%zewdAPI(.errors,"ewd_errorFields",sessid) d setSessionValue^%zewdAPI("ewd_hasErrors",1,sessid) QUIT ; setErrorClasses() QUIT $$setErrorClasses^%zewdUtilities() ; getRequestValue(fieldName,sessid) set $zt="getRequestValueErr" s sessid=$g(sessid) i $g(fieldName)="" QUIT "" QUIT $g(requestArray(fieldName)) ; getRequestValueErr set $zt="" QUIT "" ; mergeFromRequest(array,fieldName,sessid) QUIT:fieldName="" m array=requestArray(fieldName) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; copyRequestValueToSession(fieldName,sessid) ; QUIT:$g(sessid)="" QUIT:$g(fieldName)="" i $$isTemp(fieldName) m zewdSession(fieldName)=requestArray(fieldName) m ^%zewdSession("session",sessid,fieldName)=requestArray(fieldName) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; getCookieValue(cookieName,sessid) QUIT:$g(cookieName)="" set $zt="getCookieValueErr" QUIT $g(requestArray(cookieName)) ; getCookieValueErr ; --- Come here if error occurred in 'getCookieValue' --- set $zt="" QUIT "" ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; deleteCookie(cookieName,sessid) d setCookieValue(cookieName,"",-3600,sessid) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; convertDaysToSeconds(days) QUIT days*86400 ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; parseHTMLFile(filepath,docName) QUIT $$parseHTMLFile^%zewdCompiler16($g(filepath),$g(docName)) ; parseXMLFile(filepath,docName) QUIT $$parseXMLFile^%zewdCompiler16($g(filepath),$g(docName)) ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; parseStream(streamName,docName,error,isHTML) d parseStream^%zewdCompiler16($g(streamName),$g(docName),.error,$g(isHTML)) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; parseHTMLStream(streamName,docName) QUIT $$parseHTMLStream^%zewdCompiler16($g(streamName),$g(docName)) ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; parseURL(server,getPath,docName,port,isHTML,responseTime,browserType,post) ; QUIT $$parseURL^%zewdHTMLParser($g(server),$g(getPath),$g(docName),$g(port),$g(isHTML),.responseTime,$g(browserType),$g(post)) ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; setCookieValue(cookieName,value,expiryDuration,sessid) ; ; expiryDuration is no of seconds ; n expires s expires=expiryDuration i $$isCSP(sessid) d . s expires=$$convertDateToSeconds($h)+expires . s expires=$$convertSecondsToDate(expires) . s expires=$$inetDate(expires) s value=value_$c(1)_expires d setSessionArray("ewd_cookie",cookieName,value,sessid) ; QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; setResponseHeader(headerName,headerValue,sessid) d setSessionArray^%zewdAPI("ewd_header",$g(headerName),$g(headerValue),$g(sessid)) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; suppressResponseHeader(headerName,sessid) i $$isCSP(sessid) d setResponseHeader(headerName,"",sessid) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; addServerToSession(sessid,serverArray) d addServerToSession^%zewdCompiler13($g(sessid),.serverArray) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; getServerValue(serverFieldName,sessid) ; s sessid=$g(sessid) set $zt="getServerValueErr" s $zt="g "_$zt i $g(serverFieldName)="" QUIT "" ; s $zt="" QUIT $g(serverArray(serverFieldName)) ; getServerValueErr ; --- Come here if error occurred in 'getServerValue' --- set $zt="" QUIT "" ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; deleteWarning(sessid) QUIT:$g(sessid)="" d deleteFromSession("ewd_warning",sessid) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; setWarning(warningMessage,sessid) QUIT:$g(sessid)="" QUIT:$g(warningMessage)="" s warningMessage=$$systemMessage(warningMessage,"warning",sessid) i '$$isCSP(sessid) s warningMessage=$$zcvt(warningMessage,"o","JS") d setSessionValue("ewd_warning",warningMessage,sessid) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; clearAllSelected(sessid) k ^%zewdSession("session",sessid,"ewd_selected") QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; clearSelected(fieldName,sessid) QUIT:$g(fieldName)="" QUIT:$g(sessid)="" s fieldName=$tr(fieldName,".","_") k ^%zewdSession("session",sessid,"ewd_selected",fieldName) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; addToSelected(fieldName,fieldValue,sessid) ; n shortFieldValue QUIT:$g(fieldName)="" QUIT:$g(sessid)="" QUIT:$g(fieldValue)="" s fieldName=$tr(fieldName,".","_") s shortFieldValue=$e(fieldValue,1,200) s ^%zewdSession("session",sessid,"ewd_selected",fieldName,shortFieldValue)=fieldValue QUIT ; removeFromSelected(fieldName,fieldValue,sessid) ; n shortFieldValue QUIT:$g(fieldName)="" QUIT:$g(sessid)="" QUIT:$g(fieldValue)="" s fieldName=$tr(fieldName,".","_") s shortFieldValue=$e(fieldValue,1,200) k ^%zewdSession("session",sessid,"ewd_selected",fieldName,shortFieldValue) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; mergeFromSelected(fieldName,selected,sessid) ; k selected s fieldName=$tr(fieldName,".","_") m selected=^%zewdSession("session",sessid,"ewd_selected",fieldName) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; mergeToSelected(fieldName,selected,sessid) ; s fieldName=$tr(fieldName,".","_") ; k ^%zewdSession("session",sessid,"ewd_selected",fieldName) m ^%zewdSession("session",sessid,"ewd_selected",fieldName)=selected QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; isSelected(fieldName,fieldValue,sessid) n shortFieldValue i $g(fieldName)="" QUIT 0 i $g(sessid)="" QUIT 0 i $g(fieldValue)="" QUIT 0 s fieldName=$tr(fieldName,".","_") set $zt="isSelectedErr" s shortFieldValue=$e(fieldValue,1,200) QUIT $d(^%zewdSession("session",sessid,"ewd_selected",fieldName,shortFieldValue)) ; isSelectedErr ; --- Come here if error occurred in 'isSelected' --- set $zt="" QUIT 0 ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; clearTextArea(fieldName,sessid) QUIT:$g(fieldName)="" QUIT:$g(sessid)="" s fieldName=$tr(fieldName,".","_") k ^%zewdSession("session",sessid,"ewd_textarea",fieldName) s ^%zewdSession("session",sessid,"ewd_textarea",fieldName,1)="" QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; createTextArea(fieldName,textArray,sessid) ; QUIT:$g(fieldName)="" QUIT:$g(sessid)="" s fieldName=$tr(fieldName,".","_") m ^%zewdSession("session",sessid,"ewd_textarea",fieldName)=textArray QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; mergeTextAreaFromRequest(fieldName,requestArray,sessid) ; q:$g(sessid)="" s fieldName=$tr(fieldName,".","_") ; q:'$d(^%zewdSession("session",sessid,"ewd_textarea",fieldName)) d clearTextArea(fieldName,sessid) m ^%zewdSession("session",sessid,"ewd_textarea",fieldName)=requestArray(fieldName) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; appendToTextArea(fieldName,lineOfText,sessid) ; n position ; QUIT:$g(fieldName)="" QUIT:$g(sessid)="" s fieldName=$tr(fieldName,".","_") ; s position=$o(^%zewdSession("session",sessid,"ewd_textarea",fieldName,""),-1)+1 s ^%zewdSession("session",sessid,"ewd_textarea",fieldName,position)=lineOfText QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; mergeFromTextArea(fieldName,textArray,sessid) ; s fieldName=$tr(fieldName,".","_") m textArray=^%zewdSession("session",sessid,"ewd_textarea",fieldName) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; mergeToTextArea(fieldName,textArray,sessid) ; s fieldName=$tr(fieldName,".","_") m ^%zewdSession("session",sessid,"ewd_textarea",fieldName)=textArray QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; clearList(listName,sessid) QUIT:$g(listName)="" QUIT:$g(sessid)="" s listName=$tr(listName,".","_") k ^%zewdSession("session",sessid,"ewd_list",listName) k ^%zewdSession("session",sessid,"ewd_listIndex",listName) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; isListDefined(listName,sessid) QUIT $d(^%zewdSession("session",sessid,"ewd_list",listName)) ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; countList(listName,sessid) QUIT $$countList^%zewdCompiler16($g(listName),$g(sessid)) ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; appendToList(listName,textValue,codeValue,sessid,otherAttrs) ; n position ; QUIT:$g(listName)="" QUIT:$g(sessid)="" ;QUIT:$g(textValue)="" ;QUIT:$g(codeValue)="" s listName=$tr(listName,".","_") ; s position=$o(^%zewdSession("session",sessid,"ewd_list",listName,""),-1)+1 d addToList(listName,textValue,codeValue,position,sessid,.otherAttrs) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; addToList(listName,textValue,codeValue,position,sessid,otherAttrs) ;d addToList^%zewdCompiler16($g(listName),$g(textValue),$g(codeValue),$g(position),$g(sessid),.otherAttrs) ; n attrList,attrName ; QUIT:$g(listName)="" QUIT:$g(sessid)="" QUIT:$g(position)="" i $g(codeValue)="",$g(textValue)="" QUIT s position=+position d removeFromList(listName,codeValue,sessid) ; just in case s attrName="",attrList="" f s attrName=$o(otherAttrs(attrName)) q:attrName="" d . s attrList=attrList_attrName_$c(3)_otherAttrs(attrName)_$c(1) ; s codeValue=$g(codeValue) i codeValue="" s codeValue=textValue s ^%zewdSession("session",sessid,"ewd_list",listName,position)=textValue_$c(1)_codeValue_$c(1)_attrList s ^%zewdSession("session",sessid,"ewd_listIndex",listName,codeValue)=position k otherAttrs QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; mergeToList(listName,listArray,sessid) ; d mergeToList^%zewdCompiler7(listName,.listArray,sessid) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; removeFromList(listName,codeValue,sessid) ; ;d removeFromList^%zewdCompiler7(listName,codeValue,sessid) n position ; QUIT:$g(listName)="" QUIT:$g(sessid)="" QUIT:$g(codeValue)="" ; s position=$g(^%zewdSession("session",sessid,"ewd_listIndex",listName,codeValue)) QUIT:position="" k ^%zewdSession("session",sessid,"ewd_list",listName,position) k ^%zewdSession("session",sessid,"ewd_listIndex",listName,codeValue) d setWLDSymbol("ewd_list",sessid) d setWLDSymbol("ewd_listIndex",sessid) QUIT ; ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; copyList(fromListName,toListName,sessid) ; d copyList^%zewdCompiler7($g(fromListName),$g(toListName),$g(sessid)) QUIT ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; getTextFromList(listName,codeValue,sessid) ; QUIT $$getTextFromList^%zewdCompiler7(listName,codeValue,sessid) ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; replaceOptionsByFieldName(formName,fieldName,listName,sessid) ; QUIT $$replaceOptionsByFieldName^%zewdCompiler7(formName,fieldName,listName,sessid) ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= replaceOptionsByID(fieldID,listName,sessid) ; QUIT $$replaceOptionsByID^%zewdCompiler7(fieldID,listName,sessid) ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; getUploadedFileName(fieldName,sessid) ; n filename,technology s technology=$$getSessionValue^%zewdAPI("ewd_technology",sessid) QUIT 0 ; getUploadedFileNameErr set $zt="" QUIT "" ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; getUploadedFileSize(fieldName,sessid) ; set $zt="getUploadedFileSizeErr" QUIT 0 ; getUploadedFileSizeErr ; set $zt="" QUIT "" ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; getUploadedFileType(fieldName,sessid) ; set $zt="getUploadedFileTypeErr" QUIT 0 ; getUploadedFileTypeErr set $zt="" QUIT "" ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; errorOccurred(sessid) ; n warning ; i $g(Error)="" QUIT 0 s warning=$$getSessionValue("ewd_warning",sessid) QUIT Error'=warning ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; removeQuotes(string) ; n quoted,c1,quote s quote="" s c1=$e(string,1) s quoted=0 i c1=""""!(c1="'") s quoted=1,quote=c1 i 'quoted QUIT string i $e(string,$l(string))'=quote QUIT string QUIT $e(string,2,$l(string)-1) ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; escapeQuotes(text) ; s text=$$replaceAll(text,"'",$c(4)) s text=$$replaceAll(text,$c(4),"\'") s text=$$replaceAll(text,"""",$c(4)) s text=$$replaceAll(text,$c(4),"\""") ; QUIT text ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; getAttrValue(attrName,attrValues,technology) QUIT $$getAttrValue^%zewdCompiler4(attrName,.attrValues,technology) ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; replaceAll(InText,FromStr,ToStr) ; Replace all occurrences of a substring ; n %p ; s %p=InText i ToStr[FromStr d QUIT %p . n i,stop,tempText,tempTo . s stop=0 . f i=0:1:255 d q:stop . . q:InText[$c(i) . . q:FromStr[$c(i) . . q:ToStr[$c(i) . . s stop=1 . s tempTo=$c(i) . s tempText=$$replaceAll(InText,FromStr,tempTo) . s %p=$$replaceAll(tempText,tempTo,ToStr) f q:%p'[FromStr S %p=$$replace(%p,FromStr,ToStr) QUIT %p ; replace(InText,FromStr,ToStr) ; replace old with new in string ; n %p1,%p2 ; i InText'[FromStr q InText s %p1=$p(InText,FromStr,1),%p2=$p(InText,FromStr,2,255) QUIT %p1_ToStr_%p2 ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; addImmediateOneOffTask(executeCode,startTime,namespace,rc,rm) QUIT $$addImmediateOneOffTask^%zewdScheduler($g(executeCode),$g(startTime),$g(namespace),.rc,.rm) ; ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ; getDataTypeErrors(errorArray,sessid) k errorArray d mergeArrayFromSession(.errorArray,"ewd_DataTypeError",sessid) QUIT ; clearSchemaFormErrors(sessid) d deleteFromSession("ewd_SchemaFormError",sessid) QUIT ; getSchemaFormErrors(errorArray,sessid) QUIT $$getSchemaFormErrors^%zewdCompiler13(.errorArray,$g(sessid)) ; setSchemaFormErrors(errorArray,sessid) ; n sessionName ; s sessionName="ewd_SchemaFormError" d deleteFromSession(sessionName,sessid) d mergeArrayToSession(.errorArray,sessionName,sessid) QUIT ; removeInstanceDocument(instanceName) ; n ok s ok=$$openDOM i ok'="" QUIT ok s ok=$$removeDocument^%zewdDOM(instanceName,"","") d clearXMLIndex^%zewdSchemaForm(instanceName) s ok=$$closeDOM^%zewdDOM() QUIT "" ; ; makeTokenString(length) ; n string,token,i ; s string="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890" s token="" f i=1:1:length s token=token_$e(string,($r($l(string))+1)) QUIT token ; makeString(%char,%len) ; create a string of len characters ; n %str ; s %str="",$p(%str,%char,%len+1)="" QUIT %str ; convertDateToSeconds(hdate) ; Q (hdate*86400)+$p(hdate,",",2) ; convertSecondsToDate(secs) ; QUIT (secs\86400)_","_(secs#86400) ; getTokenExpiry(token) ; n sessid ; i $g(token)="" QUIT 0 s sessid=+$g(^%zewdSession("tokens",token)) i sessid="" QUIT 0 QUIT $$getSessionValue("ewd_sessionExpiry",sessid) ; isTokenExpired(token) ; ;QUIT $$getTokenExpiry(token)'>$$convertDateToSeconds($h) QUIT $$getTokenExpiry(token)'>(($h*86400)+$p($h,",",2)) ; randChar() ; n string ; s string="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890" QUIT $e(string,($R($l(string))+1)) ; lowerCase(string) QUIT $tr(string,"ABCDEFGHIJKLMNOPQRSTUVQXYZ","abcdefghijklmnopqrstuvwxyz") ; stripSpaces(string) s string=$$stripLeadingSpaces(string) QUIT $$stripTrailingSpaces(string) ; stripLeadingSpaces(string) n i ; f i=1:1:$l(string) QUIT:$e(string,i)'=" " QUIT $e(string,i,$l(string)) ; stripTrailingSpaces(string) n i,spaces,new ; s spaces=$$makeString(" ",100) s new=string_spaces QUIT $p(new,spaces,1) ; parseMethod(methodString,class,method) ; n %p1,%p2,meth ; s %p1=$p(methodString,"##class(",2) s class=$p(%p1,")",1) s %p2=$p(%p1,")",2,500) s method=$p(%p2,".",2) s method=$p(method,"(",1) QUIT ; event(requestArray) QUIT $$event^%zewdPHP(.requestArray) ; clearURLNVP(urlNo) ; QUIT ; setURLNVP(urlNo,name) ; QUIT ; decodeDataType(name,dataType,sessid) ; n value,inputMethod,x,decodedValue ; q:$g(name)="" q:$g(dataType)="" s value=$$getSessionValue(name,sessid) s inputMethod=$$getInputMethod^%zewdCompiler(dataType) q:inputMethod="" s x="s decodedValue=$$"_inputMethod_"("""_value_""",sessid)" x x d setSessionValue(name,decodedValue,sessid) QUIT ; encodeDataType(name,dataType,sessid) QUIT $$encodeDataType^%zewdCompiler13($g(name),$g(dataType),$g(sessid)) ; copyURLNVPsToSession(urlNo) ; n name ; QUIT ; doubleQuotes(string) ; s string=$$replaceAll(string,"""",$c(1,1)) s string=$tr(string,$c(1),"""") QUIT string ; ; ========================================================================== ; Error Trap Functions ; ========================================================================== ; copySessionToSymbolTable(sessid) d copySessionToSymbolTable^%zewdCompiler16($g(sessid)) QUIT ; saveSymbolTable(sessid) ; n ok ;s sessid=0 k ^%zewdError(sessid) n %zzv k ^%zewdError(sessid) s %zzv="%" f s %zzv=$o(@%zzv) Q:%zzv="" m ^%zewdError(sessid,%zzv)=@%zzv QUIT ; recoverSymbolTable(sessid,web) n (sessid,web) n %zzv s %zzv="" f s %zzv=$o(^%zewdError(sessid,%zzv)) QUIT:%zzv="" d . m @%zzv=^%zewdError(sessid,%zzv) d writeSymbolTable(web) QUIT ; writeSymbolTable(web) i $g(web) w "
"
 zwrite
 i $g(web) w "
" QUIT ; loadErrorSymbols(sessid) d loadErrorSymbols^%zewdCompiler19($g(sessid)) QUIT ; deleteErrorLog(sessid) k ^%zewdError(sessid) QUIT ; deleteAllErrorLogs k ^%zewdError QUIT ; fileSize(path) QUIT $$fileSize^%zewdCompiler13($g(path)) ; fileExists(path) QUIT $$fileExists^%zewdCompiler13($g(path)) ; fileInfo(path,info) d fileInfo^%zewdCompiler13($g(path),.info) QUIT ; directoryExists(path) QUIT $$directoryExists^%zewdCompiler13($g(path)) ; deleteFile(filepath) QUIT $$deleteFile^%zewdCompiler13($g(filepath)) ; renameFile(filepath,newpath) QUIT $$renameFile^%zewdCompiler13($g(filepath),$g(newpath)) ; createDirectory(path) QUIT $$createDirectory^%zewdCompiler13($g(path)) ; removeCR(string) i $e(string,$l(string))=$c(13) s string=$e(string,1,$l(string)-1) QUIT string ; setApplicationRootPath(path) d setApplicationRootPath^%zewdCompiler(path) QUIT ; applicationRootPath() QUIT $$applicationRootPath^%zewdCompiler() ; getApplicationRootPath() QUIT $$getApplicationRootPath^%zewdCompiler() ; setOutputRootPath(path,technology) d setOutputRootPath^%zewdCompiler(path,technology) QUIT ; getRootURL(technology) QUIT $$getRootURL^%zewdCompiler(technology) ; setRootURL(cspURL,technology) d setRootURL^%zewdCompiler(cspURL,technology) QUIT ; getDefaultTechnology() QUIT $$getDefaultTechnology^%zewdCompiler() ; getDefaultMultiLingual() QUIT $$getDefaultMultiLingual^%zewdCompiler() ; getOutputRootPath(technology) QUIT $$getOutputRootPath^%zewdCompiler(technology) ; getJSScriptsPath(app,technology) QUIT $$getJSScriptsPath^%zewdCompiler8(app,technology) ; getJSScriptsPathMode(technology) QUIT $$getJSScriptsPathMode^%zewdCompiler8(technology) ; setJSScriptsPathMode(technology,mode) d setJSScriptsPathMode^%zewdCompiler8(technology,mode) QUIT ; getJSScriptsRootPath(technology) QUIT $$getJSScriptsRootPath^%zewdCompiler8(technology) ; setJSScriptsRootPath(technology,path) d setJSScriptsRootPath^%zewdCompiler8(technology,path) QUIT ; getHomePage() QUIT $$getHomePage^%zewdCompiler() ; setHomePage(homePage) d setHomePage^%zewdCompiler($g(homePage)) QUIT ; getApplications(appList) QUIT $$getApplications^%zewdCompiler16(.appList) ; getPages(application,pageList) QUIT $$getPages^%zewdCompiler16($g(application),.pageList) ; getDefaultFormat() QUIT $$getDefaultFormat^%zewdCompiler() ; getNextChild(parentOID,childOID) i $g(parentOID)="" QUIT "" i childOID="" QUIT $$getFirstChild^%zewdDOM(parentOID) QUIT $$getNextSibling^%zewdDOM(childOID) ; addCSPServerScript(parentOID,text) QUIT $$addCSPServerScript^%zewdCompiler4(parentOID,text) ; createPHPCommand(data,docOID) QUIT $$createPHPCommand^%zewdCompiler4(data,docOID) ; createJSPCommand(data,docOID) QUIT $$createJSPCommand^%zewdCompiler4(data,docOID) ; instantiateJSPVar(var,type,docOID,arraySize,initialValue) d instantiateJSPVar^%zewdCompiler4(var,type,docOID,arraySize,initialValue) QUIT ; removeIntermediateNode(inOID) d removeIntermediateNode^%zewdCompiler4(inOID) QUIT ; getNormalisedAttributeValue(attrName,nodeOID,technology) QUIT $$getNormalAttributeValue^%zewdCompiler($g(attrName),$g(nodeOID),$g(technology)) ; getNormalAttributeValue(attrName,nodeOID,technology) QUIT $$getNormalAttributeValue^%zewdCompiler($g(attrName),$g(nodeOID),$g(technology)) ; getTagOID(tagName,docName,lowerCase) QUIT $$getTagOID^%zewdCompiler($g(tagName),$g(docName),$g(lowerCase)) ; getTagByNameAndAttr(tagName,attrName,attrValue,matchCase,docName) QUIT $$getTagByNameAndAttr^%zewdCompiler3($g(tagName),$g(attrName),$g(attrValue),$g(matchCase),$g(docName)) ; javascriptFunctionExists(functionName,docName) QUIT $$javascriptFunctionExists^%zewdCompiler7($g(functionName),$g(docName)) ; addJavascriptFunction(docName,jsTextArray) QUIT $$addJavascriptFunction^%zewdCompiler7($g(docName),.jsTextArray) ; getJavascriptFunctionBody(functionName,docName) QUIT $$getJavascriptFunctionBody^%zewdCompiler7($g(functionName),docName) ; replaceJavascriptFunctionBody(functionName,jsText,docName) QUIT $$replaceJavascriptFunctionBody^%zewdCompiler7($g(functionName),$g(jsText),$g(docName)) ; getDelim() QUIT $$getDelim^%zewdCompiler() ; ; =========================================================================== ; WLD conversion utilities ; =========================================================================== ; configureWebLink(webserver,mode,alias,path) QUIT $$configure^%zewdWLD($g(webserver),$g(mode),$g(alias),$g(path)) ; mergeListToSession(fieldName,sessid) d mergeListToSession^%zewdCompiler16($g(fieldName),$g(sessid)) QUIT ; getPREVPAGE(sessid) ; QUIT $$getPREVPAGE^%zewdCompiler19($g(sessid)) ; ; copyToWLDSymbolTable(sessid) d copyToWLDSymbolTable^%zewdCompiler16($g(sessid)) ; getPRESSED(sessid) QUIT $$getSessionValue("ewd_pressed",sessid) ; copyToLIST(listName,sessid) ; k LIST(listName) m LIST(listName)=^%zewdSession("session",sessid,"ewd_list",listName) QUIT ; copyToSELECTED(fieldName,sessid) ; k SELECTED(fieldName) m SELECTED(fieldName)=^%zewdSession("session",sessid,"ewd_selected",fieldName) QUIT ; traceModeOn s ^zewd("trace")=1 QUIT ; traceModeOff k ^zewd("trace") QUIT ; getTraceMode() i $g(^zewd("trace"))=1 QUIT 1 QUIT 0 ; trace(text,clear) ; trace ; n i s text=$g(text) i $g(clear)=1 k ^%zewdTrace s i=$increment(^%zewdTrace) s ^%zewdTrace(i)=text QUIT ; inetDate(hdate) ; Decode $H date and time to Internet format ; N %d,%day,%time,%date ; S %time=$P(hdate,",",2) I %time>86400 D .S %time=%time-86400 .S hdate=(hdate+1)_","_%time ; S %d="Thu,Fri,Sat,Sun,Mon,Tue,Wed" S %day=(hdate#7)+1 S %day=$P(%d,",",%day) ; S %date=$$decDate(hdate) ;S %date=$TR(%date," ","-") S %time=$$inetTime(hdate) S %date=%day_", "_%date_" "_%time Q %date decDate(hdate) ; Decode a date from $H format ; n %yy,%mm,%dd,%d1,%d i $zv'["GT.M" d . s %d1=$zd(hdate,5) . s %yy=$p(%d1,", ",2) . s %dd=+$p(%d1," ",2) I %dd<10 S %dd="0"_%dd . s %mm=$p(%d1," ",1) e d . n p1,p2 . s %d1=$zd(hdate,2) . s %dd=$p(%d1,"-",1) . s %mm=$p(%d1,"-",2) . s p1=$e(%mm,1),p2=$e(%mm,2,$l(%mm)) . s %mm=p1_$$lowerCase(p2) . s %yy=$p(%d1,"-",3) . i hdate>58073 s %yy="20"_%yy s %d=%dd_" "_%mm_" "_%yy QUIT %d ; inetTime(hdate) ; Decode Internet Format Time from $H format ; Offset is relative to GMT, eg -0500 ; n hh,mm,ss,time s time=$p(hdate,",",2) s hh=time\3600 i hh<10 s hh="0"_hh s time=time#3600 s mm=time\60 i mm<10 s mm="0"_mm s ss=time#60 i ss<10 s ss="0"_ss QUIT hh_":"_mm_":"_ss ; openNewFile(filepath) QUIT $$openNewFile^%zewdCompiler($g(filepath)) ; openFile(filepath) QUIT $$openFile^%zewdCompiler($g(filepath)) ; openDOM() ; n i,ok ; f i=1:1:20 s ok=$$openDOM^%zewdDOM(0,,,,,,,,,,,,,,,,,) q:$$zcvt(ok,"l")["licensing violation" q:ok="" h 1 i ok'="" s ok="No eXtc Licenses available!" QUIT ok ; removeChild(nodeOID,removeFromDOM) ; n ver ; s ver="" QUIT $$removeChild^%zewdDOM(nodeOID,$g(removeFromDOM)) ; removeAttribute(attrName,nodeOID,removeFromDOM) ; n ver ; s ver="" d removeAttribute^%zewdDOM(attrName,nodeOID,$g(removeFromDOM)) QUIT ; removeAttributeNS(ns,attrName,nodeOID,removeFromDOM) ; n ver ; s ver="" d removeAttributeNS^%zewdDOM(ns,attrName,nodeOID,$g(removeFromDOM)) QUIT ; removeIntermediateNodeeXtc(nodeOID,removeFromDOM) ; n ver ; d removeIntermediateNode^%zewdDOM(nodeOID,$g(removeFromDOM)) QUIT ; export(fileName,prefix,extension) d export^%zewdCompiler16($g(fileName),$g(prefix),$g(extension)) QUIT ; import(fileName) ; i $g(fileName)="" s fileName="zewd.xml" QUIT ; listDOMsByPrefix(prefix) d listDOMsByPrefix^%zewdCompiler19($g(prefix)) QUIT ; removeDOMsByPrefix(prefix) d removeDOMsByPrefix^%zewdCompiler19($g(prefix)) QUIT ; dumpDOM(docName) ; d dumpDOM^%zewdCompiler20($g(docName)) QUIT ; namespace() QUIT $zdir ; setNamespace(namespace) s $zdir=namespace QUIT ; zcvt(string,param,param2) ; i $g(param)="" s param="l" i param="l"!(param="L") QUIT $tr(string,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz") i param="u"!(param="U") QUIT $tr(string,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ") QUIT string ; getIP() ; Get own IP address ; n ip,ipInfo ; QUIT $g(ip) ; ajaxErrorRedirect(sessid) ; n errorPage ; s errorPage=$$getSessionValue^%zewdAPI("ewd.errorPage",sessid) d setRedirect^%zewdAPI(errorPage,sessid) ; QUIT "" ; classExport(className,methods,filepath) ; QUIT $$classExport^%zewdCompiler16($g(className),.methods,$g(filepath)) ; strx(string) n i,c,a,ok f i=1:1:$l(string) s c=$e(string,i),a=$a(c) w i_": "_c_" : "_a,! r ok QUIT ; disableEwdMgr s ^%zewd("disabled")=1 QUIT ; enableEwdMgr k ^%zewd("disabled") QUIT ; enableWLDAccess(app,page) i $g(^zewd("allowWLDAccess",$$zcvt(app,"l"),$$zcvt(page,"l")))'=1 s ^zewd("allowWLDAccess",$$zcvt(app,"l"),$$zcvt(page,"l"))=1 QUIT ; disableWLDAccess(app,page) k ^zewd("allowWLDAccess",$$zcvt(app,"l"),$$zcvt(page,"l")) QUIT isSSOValid(sso,username,password,sessid) QUIT $$isSSOValid^%zewdMgrAjax2($g(sso),$g(username),$g(password),$g(sessid)) ; uniqueId(nodeOID,filename) QUIT $p(filename,".ewd",1)_$p(nodeOID,"-",2) ; exportToGTM(routine)