| [516] | 1 | %zewdCompiler13 ; Enterprise Web Developer Compiler Functions | 
|---|
|  | 2 | ; | 
|---|
|  | 3 | ; Product: Enterprise Web Developer version 4.0.755 | 
|---|
|  | 4 | ; Build Date: Thu, 12 Feb 2009 09:53:12 | 
|---|
|  | 5 | ; | 
|---|
|  | 6 | ; ---------------------------------------------------------------------------- | 
|---|
|  | 7 | ; | Enterprise Web Developer for GT.M and m_apache                           | | 
|---|
|  | 8 | ; | Copyright (c) 2004-9 M/Gateway Developments Ltd,                         | | 
|---|
|  | 9 | ; | Reigate, Surrey UK.                                                      | | 
|---|
|  | 10 | ; | All rights reserved.                                                     | | 
|---|
|  | 11 | ; |                                                                          | | 
|---|
|  | 12 | ; | http://www.mgateway.com                                                  | | 
|---|
|  | 13 | ; | Email: rtweed@mgateway.com                                               | | 
|---|
|  | 14 | ; |                                                                          | | 
|---|
|  | 15 | ; | This program is free software: you can redistribute it and/or modify     | | 
|---|
|  | 16 | ; | it under the terms of the GNU Affero General Public License as           | | 
|---|
|  | 17 | ; | published by the Free Software Foundation, either version 3 of the       | | 
|---|
|  | 18 | ; | License, or (at your option) any later version.                          | | 
|---|
|  | 19 | ; |                                                                          | | 
|---|
|  | 20 | ; | This program is distributed in the hope that it will be useful,          | | 
|---|
|  | 21 | ; | but WITHOUT ANY WARRANTY; without even the implied warranty of           | | 
|---|
|  | 22 | ; | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            | | 
|---|
|  | 23 | ; | GNU Affero General Public License for more details.                      | | 
|---|
|  | 24 | ; |                                                                          | | 
|---|
|  | 25 | ; | You should have received a copy of the GNU Affero General Public License | | 
|---|
|  | 26 | ; | along with this program.  If not, see <http://www.gnu.org/licenses/>.    | | 
|---|
|  | 27 | ; ---------------------------------------------------------------------------- | 
|---|
|  | 28 | ; | 
|---|
|  | 29 | QUIT | 
|---|
|  | 30 | ; | 
|---|
|  | 31 | ; | 
|---|
|  | 32 | ifArrayExists(nodeOID,attrValues,docOID,technology) | 
|---|
|  | 33 | ; | 
|---|
|  | 34 | ; <ewd:ifArrayExists arrayName="$myArray" param1="xxx" param2="$yyy" param3="#zzz"> | 
|---|
|  | 35 | ; | 
|---|
|  | 36 | n arrayName,comma,param,subs,pval | 
|---|
|  | 37 | set arrayName=$$getAttrValue^%zewdAPI("arrayname",.attrValues,technology) | 
|---|
|  | 38 | s param="param",subs="",comma="" | 
|---|
|  | 39 | f  s param=$o(attrValues(param)) q:param=""  q:param'["param"  d | 
|---|
|  | 40 | . s pval=attrValues(param) | 
|---|
|  | 41 | . d | 
|---|
|  | 42 | . . s pval=$$replaceAll^%zewdHTMLParser(pval,"""",""") | 
|---|
|  | 43 | . . s subs=subs_comma_pval,comma="," | 
|---|
|  | 44 | d | 
|---|
|  | 45 | . ; | 
|---|
|  | 46 | . n cwOID,attr | 
|---|
|  | 47 | . ; | 
|---|
|  | 48 | . s cwOID=$$addIntermediateNode^%zewdCompiler4("csp:if",nodeOID) | 
|---|
|  | 49 | . ; | 
|---|
|  | 50 | . ; <csp:if condition="$d(%ewdVar("e;ewdTabMenu"e;,"e;5"e;))"> | 
|---|
|  | 51 | . ; | 
|---|
|  | 52 | . s arrayName=$$removeQuotes^%zewdAPI(arrayName) | 
|---|
|  | 53 | . i arrayName="" s arrayName="%ewdVar" | 
|---|
|  | 54 | . i subs="" s attr="$d("_arrayName_")" | 
|---|
|  | 55 | . e  s attr="$d("_arrayName_"("_subs_"))" | 
|---|
|  | 56 | . d setAttribute^%zewdDOM("condition",attr,cwOID) | 
|---|
|  | 57 | ; | 
|---|
|  | 58 | d removeIntermediateNode^%zewdCompiler4(nodeOID) | 
|---|
|  | 59 | ; | 
|---|
|  | 60 | QUIT | 
|---|
|  | 61 | ; | 
|---|
|  | 62 | url(nodeOID,attrValues,docOID,technology) | 
|---|
|  | 63 | ; | 
|---|
|  | 64 | ; <ewd:url return="$fullUrl" url="$url" /> | 
|---|
|  | 65 | ; | 
|---|
|  | 66 | n return,url | 
|---|
|  | 67 | ; | 
|---|
|  | 68 | set url=$$getAttrValue^%zewdAPI("url",.attrValues,technology) | 
|---|
|  | 69 | set return=$$getAttrValue^%zewdAPI("return",.attrValues,technology) | 
|---|
|  | 70 | ; | 
|---|
|  | 71 | d | 
|---|
|  | 72 | . n page,serverOID,text | 
|---|
|  | 73 | . s page=url,text="" | 
|---|
|  | 74 | . s url=$$getRootURL^%zewdCompiler("gtm")_app_"/"_url_".mgwsi?" | 
|---|
|  | 75 | . s url=url_"ewd_token=""_$g(^%zewdSession(""session"",sessid,""ewd_token""))_""&n=""_tokens("_$tr(page,"'","")_")" | 
|---|
|  | 76 | . s text=text_" s "_return_"="""_url | 
|---|
|  | 77 | . s serverOID=$$addCSPServerScript^%zewdCompiler4(nodeOID,text) | 
|---|
|  | 78 | ; | 
|---|
|  | 79 | d removeIntermediateNode^%zewdCompiler4(nodeOID) | 
|---|
|  | 80 | ; | 
|---|
|  | 81 | QUIT | 
|---|
|  | 82 | ; | 
|---|
|  | 83 | tabMenuOption(nodeOID,attrValues,docOID,technology) | 
|---|
|  | 84 | ; | 
|---|
|  | 85 | ; <ewd:tabMenuOption position="1" text="Configuration" nextpage="config" defaultSelected="true" help="This is some help" greyIf="grey^%zewdMgr"> | 
|---|
|  | 86 | ; | 
|---|
|  | 87 | n attr,decOID,defaultSelected,docName,greyIf,help,newOID,nextpage | 
|---|
|  | 88 | n position,text,value | 
|---|
|  | 89 | ; | 
|---|
|  | 90 | set position=$$getAttrValue^%zewdAPI("position",.attrValues,technology) | 
|---|
|  | 91 | s position=$$removeQuotes^%zewdAPI(position) | 
|---|
|  | 92 | set text=$$getAttrValue^%zewdAPI("text",.attrValues,technology) | 
|---|
|  | 93 | s text=$$removeQuotes^%zewdAPI(text) | 
|---|
|  | 94 | set nextpage=$$getAttrValue^%zewdAPI("nextpage",.attrValues,technology) | 
|---|
|  | 95 | s nextpage=$$removeQuotes^%zewdAPI(nextpage) | 
|---|
|  | 96 | set defaultSelected=$$getAttrValue^%zewdAPI("defaultselected",.attrValues,technology) | 
|---|
|  | 97 | s defaultSelected=$$removeQuotes^%zewdAPI(defaultSelected) | 
|---|
|  | 98 | set help=$$getAttrValue^%zewdAPI("help",.attrValues,technology) | 
|---|
|  | 99 | s help=$$removeQuotes^%zewdAPI(help) | 
|---|
|  | 100 | set greyIf=$$getAttrValue^%zewdAPI("greyif",.attrValues,technology) | 
|---|
|  | 101 | s greyIf=$$removeQuotes^%zewdAPI(greyIf) | 
|---|
|  | 102 | ; | 
|---|
|  | 103 | ; Map to | 
|---|
|  | 104 | ; <ewd:setArrayValue arrayName="ewdTabMenu" param1="1" value="$menuInfo"> | 
|---|
|  | 105 | ; and place just after <body> tag | 
|---|
|  | 106 | ; | 
|---|
|  | 107 | s docName=$$getDocumentName^%zewdDOM(docOID) | 
|---|
|  | 108 | s value=text_"|"_nextpage_"|"_defaultSelected_"|"_help_"|"_greyIf | 
|---|
|  | 109 | s newOID=$$getFirstElementByTagName^%zewdDOM("ewd:tabmenuarray",docName,"") | 
|---|
|  | 110 | i $$getParentNode^%zewdDOM(newOID)="" s newOID="" | 
|---|
|  | 111 | i newOID="" d | 
|---|
|  | 112 | . n parentOID,xOID | 
|---|
|  | 113 | . s parentOID=$$getFirstElementByTagName^%zewdDOM("head",docName,"") | 
|---|
|  | 114 | . s newOID=$$getFirstElementByTagName^%zewdDOM("ewd:new","",parentOID) | 
|---|
|  | 115 | . i newOID="" d | 
|---|
|  | 116 | . . s newOID=$$addNewFirstChild^%zewdCompiler4("ewd:tabmenuarray",docOID,parentOID) | 
|---|
|  | 117 | . e  d | 
|---|
|  | 118 | . . n fcOID,nextOID,tagOID | 
|---|
|  | 119 | . . s nextOID=$$getNextSibling^%zewdDOM(newOID) | 
|---|
|  | 120 | . . s tagOID=$$createElement^%zewdDOM("ewd:tabmenuarray",docOID) | 
|---|
|  | 121 | . . s newOID=$$insertBefore^%zewdDOM(tagOID,nextOID) | 
|---|
|  | 122 | s attr("arrayname")="$ewdTabMenu" | 
|---|
|  | 123 | s attr("param1")=position | 
|---|
|  | 124 | s attr("value")=value | 
|---|
|  | 125 | s decOID=$$addElementToDOM^%zewdDOM("ewd:setarrayvalue",newOID,,.attr,"") | 
|---|
|  | 126 | ; | 
|---|
|  | 127 | i nextpage'="" d | 
|---|
|  | 128 | . d | 
|---|
|  | 129 | . . n phpString | 
|---|
|  | 130 | . . s phpString=" s tokens("""_nextpage_""")=$$setNextPageToken^%zewdCompiler20("""_nextpage_""")" | 
|---|
|  | 131 | . . d addVBHeaderPreCache^%zewdCompiler8(phpString) | 
|---|
|  | 132 | ; | 
|---|
|  | 133 | ; $tokens['run'] = setNextPageToken('run', $ewd_session) ; | 
|---|
|  | 134 | d removeIntermediateNode^%zewdCompiler4(nodeOID) | 
|---|
|  | 135 | ; | 
|---|
|  | 136 | QUIT | 
|---|
|  | 137 | ; | 
|---|
|  | 138 | xhtml(nodeOID,attrValues,docOID,technology) | 
|---|
|  | 139 | ; | 
|---|
|  | 140 | n dtOID,fcOID,htmlOID | 
|---|
|  | 141 | ; | 
|---|
|  | 142 | s dtOID=$$createDocumentType^%zewdDOM("html","-//W3C//DTD XHTML 1.0 Strict//EN","http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd",docOID) | 
|---|
|  | 143 | ;<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | 
|---|
|  | 144 | s dtOID=$$insertBefore^%zewdDOM(dtOID,nodeOID) | 
|---|
|  | 145 | ;<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> | 
|---|
|  | 146 | s fcOID=$$getFirstChild^%zewdDOM(nodeOID) | 
|---|
|  | 147 | s htmlOID=$$insertNewIntermediateElement^%zewdDOM(nodeOID,"html",docOID) | 
|---|
|  | 148 | d setAttribute^%zewdDOM("xmlns","http://www.w3.org/1999/xhtml",htmlOID) | 
|---|
|  | 149 | d setAttribute^%zewdDOM("xml:lang","en",htmlOID) | 
|---|
|  | 150 | do removeIntermediateNode^%zewdDOM(nodeOID) | 
|---|
|  | 151 | QUIT | 
|---|
|  | 152 | ; | 
|---|
|  | 153 | getSessionArrayValue(arrayName,subscript,sessid,exists) | 
|---|
|  | 154 | ; | 
|---|
|  | 155 | n value | 
|---|
|  | 156 | ; | 
|---|
|  | 157 | i $g(subscript)="" QUIT "" | 
|---|
|  | 158 | i $g(arrayName)="" QUIT "" | 
|---|
|  | 159 | ; | 
|---|
|  | 160 | s arrayName=$tr(arrayName,".","_") | 
|---|
|  | 161 | s exists=1 | 
|---|
|  | 162 | i $$isTemp^%zewdAPI(arrayName) d  QUIT $g(value) | 
|---|
|  | 163 | . m value=zewdSession(arrayName,subscript) | 
|---|
|  | 164 | . i '$d(value) s exists=0 | 
|---|
|  | 165 | m value=^%zewdSession("session",sessid,arrayName,subscript) | 
|---|
|  | 166 | i '$d(value) s exists=0 | 
|---|
|  | 167 | QUIT $g(value) | 
|---|
|  | 168 | ; | 
|---|
|  | 169 | sessionArrayValueExists(arrayName,subscript,sessid) | 
|---|
|  | 170 | ; | 
|---|
|  | 171 | n exists,value | 
|---|
|  | 172 | ; | 
|---|
|  | 173 | s value=$$getSessionArrayValue(arrayName,subscript,sessid,.exists) | 
|---|
|  | 174 | QUIT exists | 
|---|
|  | 175 | ; | 
|---|
|  | 176 | deleteSessionArrayValue(arrayName,subscript,sessid) | 
|---|
|  | 177 | ; | 
|---|
|  | 178 | i $g(subscript)="" QUIT "" | 
|---|
|  | 179 | i $g(arrayName)="" QUIT "" | 
|---|
|  | 180 | s arrayName=$tr(arrayName,".","_") | 
|---|
|  | 181 | ; | 
|---|
|  | 182 | i $$isTemp^%zewdAPI(arrayName) k zewdSession(arrayName,subscript) QUIT | 
|---|
|  | 183 | k ^%zewdSession("session",sessid,arrayName,subscript) | 
|---|
|  | 184 | d setWLDSymbol^%zewdAPI(arrayName,sessid) | 
|---|
|  | 185 | QUIT | 
|---|
|  | 186 | ; | 
|---|
|  | 187 | setSessionObject(objectName,propertyName,propertyValue,sessid) | 
|---|
|  | 188 | ; | 
|---|
|  | 189 | n comma,i,np,p,sessionArray,x | 
|---|
|  | 190 | ; | 
|---|
|  | 191 | i $g(objectName)="" QUIT | 
|---|
|  | 192 | i $g(propertyName)="" QUIT | 
|---|
|  | 193 | ;i $g(propertyValue)="" QUIT | 
|---|
|  | 194 | i $g(sessid)="" QUIT | 
|---|
|  | 195 | s np=$l(objectName,".") | 
|---|
|  | 196 | s objectName=$$replace^%zewdAPI(objectName,".","_") | 
|---|
|  | 197 | i np=1 d  QUIT | 
|---|
|  | 198 | . i $$isTemp^%zewdAPI(objectName) s zewdSession(objectName_"_"_propertyName)=propertyValue  q | 
|---|
|  | 199 | . s ^%zewdSession("session",sessid,(objectName_"_"_propertyName))=propertyValue | 
|---|
|  | 200 | ; | 
|---|
|  | 201 | f i=1:1:np-1 s p(i)=$p(objectName,".",i) | 
|---|
|  | 202 | s comma="," | 
|---|
|  | 203 | i $$isTemp^%zewdAPI(objectName) d | 
|---|
|  | 204 | . s x="s zewdSession(",comma="" | 
|---|
|  | 205 | e  d | 
|---|
|  | 206 | . s x="s ^%zewdSession(""session"","_sessid | 
|---|
|  | 207 | f i=1:1:np-1 s x=x_comma_""""_p(i)_"""",comma="," | 
|---|
|  | 208 | s x=x_","""_propertyName_""")="""_propertyValue_"""" | 
|---|
|  | 209 | x x | 
|---|
|  | 210 | QUIT | 
|---|
|  | 211 | ; | 
|---|
|  | 212 | deleteFromSessionObject(objectName,propertyName,sessid) | 
|---|
|  | 213 | ; | 
|---|
|  | 214 | d deleteSessionArrayValue(objectName,propertyName,sessid) | 
|---|
|  | 215 | QUIT | 
|---|
|  | 216 | ; | 
|---|
|  | 217 | sessionObjectPropertyExists(objectName,propertyName,sessid) | 
|---|
|  | 218 | QUIT $$sessionArrayValueExists(objectName,propertyName,sessid) | 
|---|
|  | 219 | ; | 
|---|
|  | 220 | deleteSessionObject(objectName,sessid) | 
|---|
|  | 221 | d deleteFromSession^%zewdAPI(objectName,sessid) | 
|---|
|  | 222 | QUIT | 
|---|
|  | 223 | ; | 
|---|
|  | 224 | ; | 
|---|
|  | 225 | countResultSetRecords(sessionName,sessid) | 
|---|
|  | 226 | i $$isTemp^%zewdAPI(sessionName) QUIT $o(zewdSession(sessionName,""),-1) | 
|---|
|  | 227 | QUIT $o(^%zewdSession("session",sessid,sessionName,""),-1) | 
|---|
|  | 228 | ; | 
|---|
|  | 229 | addToResultSet(sessionName,propertyName,value,sessid) | 
|---|
|  | 230 | ; | 
|---|
|  | 231 | n array,recNo | 
|---|
|  | 232 | ; | 
|---|
|  | 233 | s recNo=$$countResultSetRecords(sessionName,sessid)+1 | 
|---|
|  | 234 | s array(recNo,propertyName)=value | 
|---|
|  | 235 | d mergeArrayToSession^%zewdAPI(.array,sessionName,sessid) | 
|---|
|  | 236 | QUIT | 
|---|
|  | 237 | ; | 
|---|
|  | 238 | mergeRecordArrayToResultSet(sessionName,array,sessid) | 
|---|
|  | 239 | ; | 
|---|
|  | 240 | n recArray,recNo | 
|---|
|  | 241 | ; | 
|---|
|  | 242 | s recNo=$$countResultSetRecords(sessionName,sessid)+1 | 
|---|
|  | 243 | m recArray(recNo)=array | 
|---|
|  | 244 | d mergeArrayToSession^%zewdAPI(.recArray,sessionName,sessid) | 
|---|
|  | 245 | QUIT | 
|---|
|  | 246 | ; | 
|---|
|  | 247 | getResultSetValue(resultSetName,index,propertyName,sessid) | 
|---|
|  | 248 | ; | 
|---|
|  | 249 | n exists,value | 
|---|
|  | 250 | ; | 
|---|
|  | 251 | i $g(resultSetName)="" QUIT "" | 
|---|
|  | 252 | i $g(index)="" QUIT "" | 
|---|
|  | 253 | i $g(propertyName)="" QUIT "" | 
|---|
|  | 254 | i $g(sessid)="" QUIT "" | 
|---|
|  | 255 | ; | 
|---|
|  | 256 | i $$isTemp^%zewdAPI(resultSetName) d  QUIT $g(value) | 
|---|
|  | 257 | . m value=zewdSession(resultSetName,index,propertyName) | 
|---|
|  | 258 | . i '$d(value) s exists=0 | 
|---|
|  | 259 | m value=^%zewdSession("session",sessid,resultSetName,index,propertyName) | 
|---|
|  | 260 | i '$d(value) s exists=0 | 
|---|
|  | 261 | QUIT $g(value) | 
|---|
|  | 262 | ; | 
|---|
|  | 263 | saveJSON(objectName,jsonString) | 
|---|
|  | 264 | i objectName="ewd" QUIT "alert(""Invalid request"")" | 
|---|
|  | 265 | i $$JSONAccess^%zewdAPI(objectName,sessid)'="rw" QUIT "alert(""Invalid request"")" | 
|---|
|  | 266 | i jsonString["\""" s jsonString=$$replaceAll^%zewdAPI(jsonString,"\""","""") | 
|---|
|  | 267 | i jsonString["\'" s jsonString=$$replaceAll^%zewdAPI(jsonString,"\'","""") | 
|---|
|  | 268 | d JSONToSessionObject(objectName,jsonString,sessid) | 
|---|
|  | 269 | QUIT "" | 
|---|
|  | 270 | ; | 
|---|
|  | 271 | getJSON(objectName,addRefCol) | 
|---|
|  | 272 | i objectName="ewd" QUIT "alert(""Invalid request"")" | 
|---|
|  | 273 | ;d trace^%zewdAPI("*** sessid="_sessid_"; JSONAccess="_$$JSONAccess^%zewdAPI(objectName,sessid)) | 
|---|
|  | 274 | i $$JSONAccess^%zewdAPI(objectName,sessid)="" QUIT "alert(""Invalid request"")" | 
|---|
|  | 275 | QUIT $$sessionObjectToJSON($g(objectName),sessid,$g(addRefCol)) | 
|---|
|  | 276 | ; | 
|---|
|  | 277 | JSONToSessionObject(objectName,jsonString,sessid) ; | 
|---|
|  | 278 | ; | 
|---|
|  | 279 | n array,obj,prop | 
|---|
|  | 280 | ; | 
|---|
|  | 281 | ;d parseJSON(jsonString,.array) | 
|---|
|  | 282 | d parseJSON^%zewdCompiler19(jsonString,.array) | 
|---|
|  | 283 | d deleteSessionObject^%zewdAPI(objectName,sessid) | 
|---|
|  | 284 | d mergeArrayToSessionObject^%zewdAPI(.array,objectName,sessid) | 
|---|
|  | 285 | ;s prop="" | 
|---|
|  | 286 | ;f  s prop=$o(array(prop)) q:prop=""  d | 
|---|
|  | 287 | ;. s obj=objectName_"."_prop | 
|---|
|  | 288 | ;. d trace^%zewdAPI("obj="_obj_"; "_$g(array(prop))) | 
|---|
|  | 289 | ;. d setSessionValue^%zewdAPI(obj,$g(array(prop)),sessid) | 
|---|
|  | 290 | ;;d deleteFromSession^%zewdAPI(objectName,sessid) | 
|---|
|  | 291 | ;;d mergeArrayToSession^%zewdAPI(.array,objectName,sessid) | 
|---|
|  | 292 | QUIT | 
|---|
|  | 293 | ; | 
|---|
|  | 294 | parseJSON(jsonString,propertiesArray) | 
|---|
|  | 295 | ; | 
|---|
|  | 296 | n c,i,len,name,processing,started,type,value | 
|---|
|  | 297 | ; | 
|---|
|  | 298 | k propertiesArray | 
|---|
|  | 299 | s jsonString=$g(jsonString) | 
|---|
|  | 300 | s started=0 | 
|---|
|  | 301 | s processing="" | 
|---|
|  | 302 | s name="",value="",type="" | 
|---|
|  | 303 | s len=$l(jsonString) | 
|---|
|  | 304 | ; | 
|---|
|  | 305 | f i=1:1:len d | 
|---|
|  | 306 | . s c=$e(jsonString,i) | 
|---|
|  | 307 | . i 'started,c="{" s started=1,processing="name" q | 
|---|
|  | 308 | . i processing="",c="""" s processing="name",name="" q | 
|---|
|  | 309 | . i processing="",c=":" s processing="value",value="",type="" q | 
|---|
|  | 310 | . i processing="name" d  q | 
|---|
|  | 311 | . . i c=",",name="" q | 
|---|
|  | 312 | . . i c="""" s processing="" q | 
|---|
|  | 313 | . . i c=":" s processing="value" q | 
|---|
|  | 314 | . . s name=name_c | 
|---|
|  | 315 | . i processing="value" d | 
|---|
|  | 316 | . . i value="" d  q | 
|---|
|  | 317 | . . . i c="""" s type="literal" | 
|---|
|  | 318 | . . . i c?1N s type="number" | 
|---|
|  | 319 | . . . i c="-" s type="number" | 
|---|
|  | 320 | . . . i c="f" s type="boolean" | 
|---|
|  | 321 | . . . i c="t" s type="boolean" | 
|---|
|  | 322 | . . . i c="n" s type="null" | 
|---|
|  | 323 | . . . i c="[" d  q | 
|---|
|  | 324 | . . . . n arr,no,j,val | 
|---|
|  | 325 | . . . . s no=0,val="" | 
|---|
|  | 326 | . . . . f j=i+1:1 d  q:c="]" | 
|---|
|  | 327 | . . . . . s c=$e(jsonString,j) | 
|---|
|  | 328 | . . . . . i c="]" s no=$$saveSubArray(no,.val,.arr) q | 
|---|
|  | 329 | . . . . . i c="," s no=$$saveSubArray(no,.val,.arr) q | 
|---|
|  | 330 | . . . . . s val=val_c | 
|---|
|  | 331 | . . . . m propertiesArray(name)=arr | 
|---|
|  | 332 | . . . . s i=j,name="",value="",processing="name" | 
|---|
|  | 333 | . . . s value=value_c | 
|---|
|  | 334 | . . ;i c="]" break  s name="",value="",processing="name",i=j q | 
|---|
|  | 335 | . . i type="literal",c="""" s type="literalComplete",value=value_c q | 
|---|
|  | 336 | . . i ((c=",")!(c="}")),type'="literal" d  q | 
|---|
|  | 337 | . . . i type="literalComplete" s value=$e(value,2,$l(value)-1) | 
|---|
|  | 338 | . . . s processing="name" | 
|---|
|  | 339 | . . . s propertiesArray(name)=value | 
|---|
|  | 340 | . . . s name="",value="" | 
|---|
|  | 341 | . . s value=value_c | 
|---|
|  | 342 | QUIT | 
|---|
|  | 343 | ; | 
|---|
|  | 344 | saveSubArray(no,value,arr) | 
|---|
|  | 345 | i $e(value,1)=""""!($e(value,1)="'") s value=$e(value,2,$l(value)-1) | 
|---|
|  | 346 | s no=no+1 | 
|---|
|  | 347 | s arr(no)=value | 
|---|
|  | 348 | s value="" | 
|---|
|  | 349 | QUIT no | 
|---|
|  | 350 | ; | 
|---|
|  | 351 | sessionObjectToJSON(objectName,sessid,addRefCol) | 
|---|
|  | 352 | ; | 
|---|
|  | 353 | n object,poropName,sub | 
|---|
|  | 354 | ; | 
|---|
|  | 355 | s sub=objectName_"_" | 
|---|
|  | 356 | i $$isTemp^%zewdAPI(objectName) d | 
|---|
|  | 357 | . f  s sub=$o(zewdSession(sub)) q:sub=""  q:sub'[(objectName_"_")  d | 
|---|
|  | 358 | . . s propName=$p(sub,(objectName_"_"),2) | 
|---|
|  | 359 | . . m object(propName)=zewdSession(sub) | 
|---|
|  | 360 | . i '$d(object) m object=zewdSession(objectName) | 
|---|
|  | 361 | e  d | 
|---|
|  | 362 | . f  s sub=$o(^%zewdSession("session",sessid,sub)) q:sub=""  q:sub'[(objectName_"_")  d | 
|---|
|  | 363 | . . s propName=$p(sub,(objectName_"_"),2) | 
|---|
|  | 364 | . . m object(propName)=^%zewdSession("session",sessid,sub) | 
|---|
|  | 365 | . i '$d(object) m object=^%zewdSession("session",sessid,objectName) | 
|---|
|  | 366 | QUIT $$createJSONString(objectName,.object,,$g(addRefCol)) | 
|---|
|  | 367 | ; | 
|---|
|  | 368 | mergeToJSObject(sessionObjRef,JSObjRef,sessid) | 
|---|
|  | 369 | ; | 
|---|
|  | 370 | ; eg sessionObjRef = wld.%User.bridge | 
|---|
|  | 371 | ;    JSObjRef      = EZBRIDGE.Config | 
|---|
|  | 372 | ; | 
|---|
|  | 373 | n i,json,nsub,objName,ref,sessRef | 
|---|
|  | 374 | ; | 
|---|
|  | 375 | s sessRef=$$replace^%zewdAPI(sessionObjRef,".","_") | 
|---|
|  | 376 | s nsub=$l(sessRef,".") | 
|---|
|  | 377 | ; | 
|---|
|  | 378 | s objName=$p(sessionObjRef,".",1) | 
|---|
|  | 379 | i objName="ewd" QUIT "alert(""Invalid request"")" | 
|---|
|  | 380 | i $$JSONAccess^%zewdAPI(objName,sessid)="" QUIT "alert(""Invalid request"")" | 
|---|
|  | 381 | ; | 
|---|
|  | 382 | s ref="",comma="" | 
|---|
|  | 383 | f i=1:1:nsub s ref=ref_comma_""""_$p(sessRef,".",i)_"""",comma="," | 
|---|
|  | 384 | i $$isTemp^%zewdAPI(sessRef) d | 
|---|
|  | 385 | . s ref="m jsArray=zewdSession("_ref_")" | 
|---|
|  | 386 | e  d | 
|---|
|  | 387 | . s ref="m jsArray=^%zewdSession(""session"",sessid,"_ref_")" | 
|---|
|  | 388 | x ref | 
|---|
|  | 389 | s json=$$createJSONString(JSObjRef,.jsArray) | 
|---|
|  | 390 | QUIT json | 
|---|
|  | 391 | ; | 
|---|
|  | 392 | objectGlobalToJSON(objectName) | 
|---|
|  | 393 | ; | 
|---|
|  | 394 | QUIT $g(^zewd("jsObject",objectName)) | 
|---|
|  | 395 | ; | 
|---|
|  | 396 | createJSONString(objectName,objectArray,isDojo,addRefCol,directOutput) | 
|---|
|  | 397 | ; | 
|---|
|  | 398 | n comma,dd,json,name,object,type | 
|---|
|  | 399 | ; | 
|---|
|  | 400 | s directOutput=+$g(directOutput) | 
|---|
|  | 401 | s isDojo=$g(isDojo) | 
|---|
|  | 402 | i isDojo=1 s directOutput=0 | 
|---|
|  | 403 | i '$d(objectArray) QUIT "" | 
|---|
|  | 404 | s name="" | 
|---|
|  | 405 | s json="" | 
|---|
|  | 406 | i isDojo'=1 d | 
|---|
|  | 407 | . i directOutput w objectName_"=" q | 
|---|
|  | 408 | . s json=objectName_"=" | 
|---|
|  | 409 | i $g(addRefCol)=1 d | 
|---|
|  | 410 | . n rowNo | 
|---|
|  | 411 | . s rowNo="" | 
|---|
|  | 412 | . f  s rowNo=$o(objectArray(rowNo)) q:rowNo=""  d | 
|---|
|  | 413 | . . s objectArray(rowNo,0)=rowNo-1 | 
|---|
|  | 414 | s json=$$walkArray(json,$name(objectArray),isDojo) | 
|---|
|  | 415 | ; | 
|---|
|  | 416 | ;s json=$e(json,1,$l(json)-1)_"}" | 
|---|
|  | 417 | i isDojo=1 s json="{identifier:'id',"_$e(json,2,$l(json)) | 
|---|
|  | 418 | i isDojo'=1 d | 
|---|
|  | 419 | . i directOutput w ";" q | 
|---|
|  | 420 | . s json=json_" ;" | 
|---|
|  | 421 | i $g(^zewd("trace"))=1 d trace^%zewdAPI("json="_json) | 
|---|
|  | 422 | QUIT json | 
|---|
|  | 423 | ; | 
|---|
|  | 424 | walkArray(json,name,dojo,subscripts,isObject,mixed) | 
|---|
|  | 425 | ; | 
|---|
|  | 426 | n arrComma,brace,comma,cr,dd,i,no,numsub,dblquot,quot,ref,sub,subNo,subscripts1,type,valquot,value,xref,zobj | 
|---|
|  | 427 | ; | 
|---|
|  | 428 | s cr=$c(13,10),comma="," | 
|---|
|  | 429 | s mixed=+$g(mixed) | 
|---|
|  | 430 | s (dblquot,valquot)="""" | 
|---|
|  | 431 | s dojo=+$g(dojo) | 
|---|
|  | 432 | i dojo=1 s dblquot="",valquot="'" | 
|---|
|  | 433 | i $g(isObject) d | 
|---|
|  | 434 | . s json=json_"(" | 
|---|
|  | 435 | s dd=$d(@name) | 
|---|
|  | 436 | i dd=1!(dd=11) d  i dd=1 QUIT json | 
|---|
|  | 437 | . s value=@name | 
|---|
|  | 438 | . i value'[">" q | 
|---|
|  | 439 | . i dojo=2,value="<mixed>" d  q | 
|---|
|  | 440 | . . i $d(subscripts) q | 
|---|
|  | 441 | . . s mixed=1 | 
|---|
|  | 442 | . i dojo=2,$e(value,1)="<",$e(value,$l(value))=">" q | 
|---|
|  | 443 | . i dojo=2 d | 
|---|
|  | 444 | . . s json=json_$p(value,">",1) ;_"("_cr | 
|---|
|  | 445 | . i dojo=2 d | 
|---|
|  | 446 | . . s json=$$walkArray(json,$p(value,">",2),$g(dojo),,1) | 
|---|
|  | 447 | . e  d | 
|---|
|  | 448 | . . s json=$$walkArray(json,value,$g(dojo),,1) | 
|---|
|  | 449 | . ;s json=json_cr_")" | 
|---|
|  | 450 | i 'mixed d | 
|---|
|  | 451 | . s json=json_"{" | 
|---|
|  | 452 | s ref=name_"(" | 
|---|
|  | 453 | s no=$o(subscripts(""),-1) | 
|---|
|  | 454 | i no>0 f i=1:1:no d | 
|---|
|  | 455 | . s quot="""" | 
|---|
|  | 456 | . i subscripts(i)?."-"1N.N s quot="" | 
|---|
|  | 457 | . s ref=ref_quot_subscripts(i)_quot_"," | 
|---|
|  | 458 | ;i no>0 f i=1:1:no s ref=ref_dblquot_subscripts(i)_dblquot_"," | 
|---|
|  | 459 | s ref=ref_"sub)" | 
|---|
|  | 460 | s sub="",numsub=0,subNo=0 | 
|---|
|  | 461 | f  s sub=$o(@ref) q:sub=""  d | 
|---|
|  | 462 | . s subscripts(no+1)=sub | 
|---|
|  | 463 | . s subNo=subNo+1 | 
|---|
|  | 464 | . i 'mixed,subNo=1,sub?1N.N d | 
|---|
|  | 465 | . . s numsub=1 | 
|---|
|  | 466 | . . s json=$e(json,1,$l(json)-1)_"[" | 
|---|
|  | 467 | . s dd=$d(@ref) | 
|---|
|  | 468 | . i dd=1 d | 
|---|
|  | 469 | . . ;w ref_"="_@ref,! | 
|---|
|  | 470 | . . s value=@ref | 
|---|
|  | 471 | . . ;i sub'?1N.N s json=json_dblquot_sub_dblquot_":" | 
|---|
|  | 472 | . . i sub'?1N.N d | 
|---|
|  | 473 | . . . s json=json_sub_":" | 
|---|
|  | 474 | . . s type="literal" | 
|---|
|  | 475 | . . i dojo=2,value[">",value'["?>" d | 
|---|
|  | 476 | . . . i $e(value,$l(value))=">" q | 
|---|
|  | 477 | . . . d | 
|---|
|  | 478 | . . . . s json=json_$p(value,">",1) ;_"("_cr | 
|---|
|  | 479 | . . . s json=$$walkArray(json,$p(value,">",2),$g(dojo),,1) | 
|---|
|  | 480 | . . . s type="object" | 
|---|
|  | 481 | . . . s value="" | 
|---|
|  | 482 | . . i value?1N.N s type="numeric" | 
|---|
|  | 483 | . . i value?1"-"1N.N s type="numeric" | 
|---|
|  | 484 | . . i value?1N.N1"."1N.N s type="numeric" | 
|---|
|  | 485 | . . i value?1"-"1N.N1"."1N.N s type="numeric" | 
|---|
|  | 486 | . . i value="true"!(value="false") s type="boolean" | 
|---|
|  | 487 | . . i $e(value,1)="{",$e(value,$l(value))="}" s type="variable" | 
|---|
|  | 488 | . . i dojo=2,value["<?=",value["?>" d | 
|---|
|  | 489 | . . . s value=$p(value,"<?=",2) | 
|---|
|  | 490 | . . . s value=$p(value,"?>",1) | 
|---|
|  | 491 | . . . s value=$$stripSpaces^%zewdAPI(value) | 
|---|
|  | 492 | . . . s type="variable" | 
|---|
|  | 493 | . . ;i type="literal" s value=""""_value_"""" | 
|---|
|  | 494 | . . i type="literal" s value=valquot_value_valquot | 
|---|
|  | 495 | . . i dojo=1,type="numeric" s value=valquot_value_valquot | 
|---|
|  | 496 | . . d | 
|---|
|  | 497 | . . . s json=json_value_"," | 
|---|
|  | 498 | . k subscripts1 | 
|---|
|  | 499 | . m subscripts1=subscripts | 
|---|
|  | 500 | . i dd>9 d | 
|---|
|  | 501 | . . i sub?1N.N d | 
|---|
|  | 502 | . . . i 'mixed,subNo=1 d | 
|---|
|  | 503 | . . . . s numsub=1 | 
|---|
|  | 504 | . . . . s json=$e(json,1,$l(json)-1)_"[" | 
|---|
|  | 505 | . . e  d | 
|---|
|  | 506 | . . . ;s json=json_dblquot_sub_dblquot_":" | 
|---|
|  | 507 | . . . i $e(sub,1,4)'="zobj" d | 
|---|
|  | 508 | . . . . s json=json_sub_":" | 
|---|
|  | 509 | . . . i $e(sub,1,4)="zobj" d | 
|---|
|  | 510 | . . . . i $e(json,$l(json))'="," d | 
|---|
|  | 511 | . . . . . s json=$e(json,1,$l(json)-1),zobj=1 ; remove { at end | 
|---|
|  | 512 | . . s json=$$walkArray(json,name,dojo,.subscripts1) | 
|---|
|  | 513 | . . i dojo=1,numsub d | 
|---|
|  | 514 | . . . s json=$e(json,1,$l(json)-1) | 
|---|
|  | 515 | . . . s json=json_",id:'"_sub_"'}" | 
|---|
|  | 516 | . . d | 
|---|
|  | 517 | . . . s json=json_"," | 
|---|
|  | 518 | ; | 
|---|
|  | 519 | s json=$e(json,1,$l(json)-1) | 
|---|
|  | 520 | s brace="}" | 
|---|
|  | 521 | i mixed s brace="" | 
|---|
|  | 522 | i $g(isObject) s brace=brace_")" | 
|---|
|  | 523 | i numsub s brace="]" | 
|---|
|  | 524 | i $g(zobj)'=1 d | 
|---|
|  | 525 | . s json=json_brace | 
|---|
|  | 526 | QUIT json ; exit! | 
|---|
|  | 527 | ; | 
|---|
|  | 528 | createRef(name,subscripts) | 
|---|
|  | 529 | ; | 
|---|
|  | 530 | n no,ref | 
|---|
|  | 531 | ; | 
|---|
|  | 532 | s ref=name_"(" | 
|---|
|  | 533 | s no=$o(subscripts(""),-1) | 
|---|
|  | 534 | i no>0 f i=1:1:no d | 
|---|
|  | 535 | . s quot="""" | 
|---|
|  | 536 | . i subscripts(i)?."-"1N.N s quot="" | 
|---|
|  | 537 | . s ref=ref_quot_subscripts(i)_quot_"," | 
|---|
|  | 538 | s ref=ref_""""")" | 
|---|
|  | 539 | QUIT ref | 
|---|
|  | 540 | ; | 
|---|
|  | 541 | test | 
|---|
|  | 542 | k array | 
|---|
|  | 543 | s array("label")="name" | 
|---|
|  | 544 | s array("items",1,"name")="Fruit" | 
|---|
|  | 545 | s array("items",1,"type")="category" | 
|---|
|  | 546 | s array("items",2,"name")="Cinammon" | 
|---|
|  | 547 | s array("items",2,"type")="category" | 
|---|
|  | 548 | s array("items",2,"children",1,"name")="Cinnamon Lozenge" | 
|---|
|  | 549 | s array("items",2,"children",1,"type")="category" | 
|---|
|  | 550 | s array("items",2,"children",2,"name")="Cinnamon Toast" | 
|---|
|  | 551 | s array("items",2,"children",2,"type")="category" | 
|---|
|  | 552 | s array("items",2,"children",3,"name")="Cinnamon Spread" | 
|---|
|  | 553 | s array("items",2,"children",3,"type")="category" | 
|---|
|  | 554 | s array("items",3,"name")="Apple" | 
|---|
|  | 555 | s array("items",3,"type")="category" | 
|---|
|  | 556 | w $$createJSONString("myTest",.array,1) | 
|---|
|  | 557 | QUIT | 
|---|
|  | 558 | ; | 
|---|
|  | 559 | addJavascriptObject(docName,jsText) | 
|---|
|  | 560 | ; | 
|---|
|  | 561 | n childOID,lastLineNo,line,lineNo,OIDArray,scriptOID,text,textArray,textOID | 
|---|
|  | 562 | ; | 
|---|
|  | 563 | s scriptOID=$$getLastJavascriptTag(docName,.textArray) | 
|---|
|  | 564 | s lastLineNo=$o(textArray(""),-1) | 
|---|
|  | 565 | s lineNo="",text="" | 
|---|
|  | 566 | f  s lineNo=$o(jsText(lineNo)) q:lineNo=""  d | 
|---|
|  | 567 | . i jsText(lineNo)["<?="!(jsText(lineNo)["<%") d | 
|---|
|  | 568 | . . k ^CacheTempEWD($j) | 
|---|
|  | 569 | . . s ^CacheTempEWD($j,1)=jsText(lineNo) | 
|---|
|  | 570 | . . d tokenisePHPVariables^%zewdHTMLParser(.phpVars) | 
|---|
|  | 571 | . . s jsText(lineNo)=^CacheTempEWD($j,1) | 
|---|
|  | 572 | . . k ^CacheTempEWD($j) | 
|---|
|  | 573 | . i $l(text)+$l(jsText(lineNo))<30000 s text=text_jsText(lineNo)_$c(13,10) q | 
|---|
|  | 574 | . s lastLineNo=lastLineNo+1 | 
|---|
|  | 575 | . s textArray(lastLineNo)=text | 
|---|
|  | 576 | . s text=jsText(lineNo)_$c(13,10) | 
|---|
|  | 577 | s lastLineNo=lastLineNo+1 | 
|---|
|  | 578 | s textArray(lastLineNo)=text | 
|---|
|  | 579 | f  q:$$hasChildNodes^%zewdDOM(scriptOID)="false"  d | 
|---|
|  | 580 | . s childOID=$$getFirstChild^%zewdDOM(scriptOID) | 
|---|
|  | 581 | . s childOID=$$removeChild^%zewdAPI(childOID) | 
|---|
|  | 582 | ; | 
|---|
|  | 583 | s lineNo="" | 
|---|
|  | 584 | f  s lineNo=$o(textArray(lineNo)) q:lineNo=""  d | 
|---|
|  | 585 | . s text=textArray(lineNo) | 
|---|
|  | 586 | . q:text="" | 
|---|
|  | 587 | . s textOID=$$createTextNode^%zewdDOM(text,docOID) | 
|---|
|  | 588 | . s textOID=$$appendChild^%zewdDOM(textOID,scriptOID) | 
|---|
|  | 589 | QUIT scriptOID | 
|---|
|  | 590 | ; | 
|---|
|  | 591 | getLastJavascriptTag(docName,textArray) | 
|---|
|  | 592 | ; | 
|---|
|  | 593 | n attr,childNodes,eArray,headOID,jsText,language,nodeNo,nodeOID,ntags | 
|---|
|  | 594 | n OIDArray,scriptOID,src,stop,tagName | 
|---|
|  | 595 | ; | 
|---|
|  | 596 | s headOID=$$getTagOID^%zewdAPI("head",docName) | 
|---|
|  | 597 | i headOID="" s headOID=$$addElementToDOM^%zewdDOM("head",docOID,,,,1) | 
|---|
|  | 598 | d getChildrenInOrder^%zewdDOM(headOID,.childNodes) | 
|---|
|  | 599 | s nodeNo="",scriptOID="",stop=0 | 
|---|
|  | 600 | f  s nodeNo=$o(childNodes(nodeNo),-1) q:nodeNo=""  d  q:stop | 
|---|
|  | 601 | . s scriptOID=childNodes(nodeNo) | 
|---|
|  | 602 | . s tagName=$$getTagName^%zewdDOM(scriptOID) | 
|---|
|  | 603 | . i tagName'="script" q | 
|---|
|  | 604 | . s language=$$getAttribute^%zewdDOM("language",scriptOID) | 
|---|
|  | 605 | . q:$$zcvt^%zewdAPI(language,"l")'="javascript" | 
|---|
|  | 606 | . s src=$$getAttribute^%zewdDOM("src",scriptOID) | 
|---|
|  | 607 | . q:src'="" | 
|---|
|  | 608 | . s stop=1 | 
|---|
|  | 609 | i scriptOID="" d | 
|---|
|  | 610 | . n attr | 
|---|
|  | 611 | . s attr("language")="javascript" | 
|---|
|  | 612 | . set scriptOID=$$addElementToDOM^%zewdDOM("script",headOID,,.attr,"") | 
|---|
|  | 613 | k textArray | 
|---|
|  | 614 | s jsText=$$getElementValueByOID^%zewdDOM(scriptOID,"textArray",1) | 
|---|
|  | 615 | i '$d(textArray) s textArray(1)=jsText | 
|---|
|  | 616 | QUIT scriptOID | 
|---|
|  | 617 | ; | 
|---|
|  | 618 | javascriptObjectExists(objectName,docName) | 
|---|
|  | 619 | ; | 
|---|
|  | 620 | QUIT $$getJavascriptObject(objectName,docName)'="" | 
|---|
|  | 621 | ; | 
|---|
|  | 622 | getJavascriptObject(objectName,docName,eOID) ; | 
|---|
|  | 623 | ; | 
|---|
|  | 624 | n c,comm,dqlvl,eArray,slcomm,language,lc,line,lineNo,lvl | 
|---|
|  | 625 | n mlcomm,ntags,OIDArray,%p1,%p2,pos,refString,sqlvl,stop,stop2,text,textArr | 
|---|
|  | 626 | n textArray | 
|---|
|  | 627 | ; | 
|---|
|  | 628 | s text="",eOID="" | 
|---|
|  | 629 | s refString=objectName_"=" | 
|---|
|  | 630 | s ntags=$$getElementsArrayByTagName^%zewdDOM("script",docName,,.eArray) | 
|---|
|  | 631 | s eOID="",stop=0 | 
|---|
|  | 632 | f  s eOID=$o(eArray(eOID)) q:eOID=""  d  q:stop | 
|---|
|  | 633 | . s language=$$getAttribute^%zewdDOM("language",eOID) | 
|---|
|  | 634 | . q:$$zcvt^%zewdAPI(language,"l")'["javascript" | 
|---|
|  | 635 | . k textArray | 
|---|
|  | 636 | . s text=$$getElementValueByOID^%zewdDOM(eOID,"textArr",1) | 
|---|
|  | 637 | . i '$d(textArr) s textArr(1)=text | 
|---|
|  | 638 | . s lineNo="",text="" | 
|---|
|  | 639 | . f  s lineNo=$o(textArr(lineNo)) q:lineNo=""  d  q:stop | 
|---|
|  | 640 | . . s stop2=0 | 
|---|
|  | 641 | . . s textArr(lineNo)=$$replaceAll^%zewdAPI(textArr(lineNo)," =","=") | 
|---|
|  | 642 | . . i textArr(lineNo)[refString f  d  q:textArr(lineNo)'[refString  q:stop2 | 
|---|
|  | 643 | . . . s %p1=$p(textArr(lineNo),refString,1) | 
|---|
|  | 644 | . . . s %p1=$re(%p1) | 
|---|
|  | 645 | . . . s %p1=$p(%p1,$c(10,13),1) | 
|---|
|  | 646 | . . . s %p1=$re(%p1) | 
|---|
|  | 647 | . . . i %p1["//"!(%p1["/*") d  q | 
|---|
|  | 648 | . . . . s textArr(lineNo)=$p(textArr(lineNo),refString,2,1000) | 
|---|
|  | 649 | . . . s stop2=1 | 
|---|
|  | 650 | . . q:textArr(lineNo)'[refString | 
|---|
|  | 651 | . . s text=refString_$p(textArr(lineNo),refString,2,1000) | 
|---|
|  | 652 | . . s %p1=$p(text,"{",1),%p2=$p(text,"{",2,1000) | 
|---|
|  | 653 | . . s text=%p1_"{",lvl=1,c="",dqlvl=0,sqlvl=0,slcomm=0,mlcomm=0 | 
|---|
|  | 654 | . . f pos=1:1:$l(%p2) d  q:stop | 
|---|
|  | 655 | . . . s lc=c | 
|---|
|  | 656 | . . . s c=$e(%p2,pos) | 
|---|
|  | 657 | . . . i lc="\",c="{" s text=text_c q | 
|---|
|  | 658 | . . . i lc="\",c="}" s text=text_c q | 
|---|
|  | 659 | . . . i lc="\",c="""" s text=text_c q | 
|---|
|  | 660 | . . . i lc="\",c="'" s text=text_c q | 
|---|
|  | 661 | . . . i lc="/",c="/" s slcomm=1,text=text_c q | 
|---|
|  | 662 | . . . i lc="/",c="*" s mlcomm=1,text=text_c q | 
|---|
|  | 663 | . . . i lc="*",c="/" s mlcomm=0,text=text_c q | 
|---|
|  | 664 | . . . i slcomm,c=$c(10) s slcomm=0,text=text_c q | 
|---|
|  | 665 | . . . i c="""",dqlvl=0,'slcomm,'mlcomm s dqlvl=1 | 
|---|
|  | 666 | . . . i c="""",dqlvl=1,'slcomm,'mlcomm s dqlvl=0 | 
|---|
|  | 667 | . . . i c="'",sqlvl=0,'slcomm,'mlcomm s sqlvl=1 | 
|---|
|  | 668 | . . . i c="'",sqlvl=1,'slcomm,'mlcomm s sqlvl=0 | 
|---|
|  | 669 | . . . i slcomm!mlcomm s text=text_c q | 
|---|
|  | 670 | . . . i c="{",dqlvl=1 s text=text_c q | 
|---|
|  | 671 | . . . i c="}",dqlvl=1 s text=text_c q | 
|---|
|  | 672 | . . . i c="{",sqlvl=1 s text=text_c q | 
|---|
|  | 673 | . . . i c="}",sqlvl=1 s text=text_c q | 
|---|
|  | 674 | . . . i c="{" s lvl=lvl+1 | 
|---|
|  | 675 | . . . i c="}" s lvl=lvl-1 i lvl=0 s stop=1 q | 
|---|
|  | 676 | . . . s text=text_c | 
|---|
|  | 677 | . . s text=text_"}" | 
|---|
|  | 678 | QUIT text | 
|---|
|  | 679 | ; | 
|---|
|  | 680 | getJavascriptObjectBody(functionName,docName) | 
|---|
|  | 681 | ; | 
|---|
|  | 682 | n body,crlf,eOID,jsText,nLines | 
|---|
|  | 683 | ; | 
|---|
|  | 684 | s jsText=$$getJavascriptObject(functionName,docName,.eOID) | 
|---|
|  | 685 | s crlf=$c(13,10) | 
|---|
|  | 686 | s nLines=$l(jsText,crlf) | 
|---|
|  | 687 | s body=$p(jsText,crlf,2,nLines-1) | 
|---|
|  | 688 | QUIT body | 
|---|
|  | 689 | ; | 
|---|
|  | 690 | replaceJavascriptObjectBody(functionName,newBody,docName) | 
|---|
|  | 691 | ; | 
|---|
|  | 692 | n body,call,crlf,eOID,jsText | 
|---|
|  | 693 | ; | 
|---|
|  | 694 | s jsText=$$getJavascriptObject(functionName,docName,.eOID) | 
|---|
|  | 695 | s crlf=$c(13,10) | 
|---|
|  | 696 | s call=$p(jsText,crlf,1) | 
|---|
|  | 697 | s body=call_crlf_newBody_crlf_"   }" | 
|---|
|  | 698 | s ok=$$replaceJavascriptObject(functionName,body,docName) | 
|---|
|  | 699 | QUIT 1 | 
|---|
|  | 700 | ; | 
|---|
|  | 701 | replaceJavascriptObject(objectName,newFunctionText,docName) | 
|---|
|  | 702 | ; | 
|---|
|  | 703 | n childOID,eOID,docOID,found,funcText,lineNo,stop,text,textArray,textOID | 
|---|
|  | 704 | ; | 
|---|
|  | 705 | s docOID=$$getDocumentNode^%zewdDOM(docName) | 
|---|
|  | 706 | s found=$$getJavascriptObjectBlock(objectName,docName,.textArray) | 
|---|
|  | 707 | i 'found QUIT 0 | 
|---|
|  | 708 | ; | 
|---|
|  | 709 | s funcText=$$getJavascriptObject(objectName,docName,.eOID) | 
|---|
|  | 710 | s lineNo="",stop=0 | 
|---|
|  | 711 | f  s lineNo=$o(textArray(lineNo)) q:lineNo=""  d  q:stop | 
|---|
|  | 712 | . s text=textArray(lineNo) | 
|---|
|  | 713 | . i text[funcText s textArray(lineNo)=$$replace^%zewdAPI(text,funcText,newFunctionText),stop=1 | 
|---|
|  | 714 | i 'stop QUIT 0 | 
|---|
|  | 715 | f  q:$$hasChildNodes^%zewdDOM(eOID)="false"  d | 
|---|
|  | 716 | . s childOID=$$getFirstChild^%zewdDOM(eOID) | 
|---|
|  | 717 | . s childOID=$$removeChild^%zewdAPI(childOID) | 
|---|
|  | 718 | ; | 
|---|
|  | 719 | s lineNo="" | 
|---|
|  | 720 | f  s lineNo=$o(textArray(lineNo)) q:lineNo=""  d | 
|---|
|  | 721 | . s text=textArray(lineNo) | 
|---|
|  | 722 | . s textOID=$$createTextNode^%zewdDOM(text,docOID) | 
|---|
|  | 723 | . s textOID=$$appendChild^%zewdDOM(textOID,eOID) | 
|---|
|  | 724 | QUIT 1 | 
|---|
|  | 725 | ; | 
|---|
|  | 726 | getJavascriptObjectBlock(objectName,docName,textArr) ; | 
|---|
|  | 727 | ; | 
|---|
|  | 728 | n eArray,eOID,language,lineNo,ntags,OIDArray,refString,stop,text,textArray | 
|---|
|  | 729 | ; | 
|---|
|  | 730 | s text="",eOID="" k textArr | 
|---|
|  | 731 | s refString=objectName_"=" | 
|---|
|  | 732 | s ntags=$$getElementsArrayByTagName^%zewdDOM("script",docName,,.eArray) | 
|---|
|  | 733 | s eOID="",stop=0 | 
|---|
|  | 734 | f  s eOID=$o(eArray(eOID)) q:eOID=""  d  q:stop | 
|---|
|  | 735 | . s language=$$getAttribute^%zewdDOM("language",eOID) | 
|---|
|  | 736 | . q:$$zcvt^%zewdAPI(language,"l")'="javascript" | 
|---|
|  | 737 | . s text=$$getElementValueByOID^%zewdDOM(eOID,"textArr",1) | 
|---|
|  | 738 | . i '$d(textArr) s textArr(1)=text | 
|---|
|  | 739 | . s lineNo="",text="" | 
|---|
|  | 740 | . f  s lineNo=$o(textArr(lineNo)) q:lineNo=""  d  q:stop | 
|---|
|  | 741 | . . s textArr(lineNo)=$$replaceAll^%zewdAPI(textArr(lineNo)," =","=") | 
|---|
|  | 742 | . . i textArr(lineNo)[refString s stop=1 q | 
|---|
|  | 743 | QUIT stop | 
|---|
|  | 744 | ; | 
|---|
|  | 745 | ; | 
|---|
|  | 746 | createDirectory(path) | 
|---|
|  | 747 | zsystem "mkdir "_path | 
|---|
|  | 748 | QUIT 1 | 
|---|
|  | 749 | ; | 
|---|
|  | 750 | renameFile(filepath,newpath) | 
|---|
|  | 751 | zsystem "mv "_filepath_" "_newpath | 
|---|
|  | 752 | QUIT 1 | 
|---|
|  | 753 | ; | 
|---|
|  | 754 | deleteFile(filepath) | 
|---|
|  | 755 | n status | 
|---|
|  | 756 | d gtmDeleteFile | 
|---|
|  | 757 | QUIT status | 
|---|
|  | 758 | ; | 
|---|
|  | 759 | gtmDeleteFile | 
|---|
|  | 760 | s status=1 | 
|---|
|  | 761 | o filepath:(readonly:exception="g deleteNotExists") | 
|---|
|  | 762 | c filepath:DELETE | 
|---|
|  | 763 | QUIT | 
|---|
|  | 764 | deleteNotExists | 
|---|
|  | 765 | s status=0 | 
|---|
|  | 766 | QUIT | 
|---|
|  | 767 | ; | 
|---|
|  | 768 | fileExists(path) | 
|---|
|  | 769 | o path:(readonly:exception="g fileNotExists") | 
|---|
|  | 770 | c path | 
|---|
|  | 771 | QUIT 1 | 
|---|
|  | 772 | fileNotExists | 
|---|
|  | 773 | i $p($zs,",",1)=2 QUIT 0 | 
|---|
|  | 774 | QUIT 1 | 
|---|
|  | 775 | ; | 
|---|
|  | 776 | fileInfo(path,info) | 
|---|
|  | 777 | d fileInfo^%zewdGTM(path,.info) | 
|---|
|  | 778 | QUIT | 
|---|
|  | 779 | ;n line,results | 
|---|
|  | 780 | ;k info | 
|---|
|  | 781 | ;i '$$fileExists(path) QUIT | 
|---|
|  | 782 | ;d shellCommand^%zewdGTM("ls -l """_path_"""",.results) | 
|---|
|  | 783 | ;s line=$g(results(1)) | 
|---|
|  | 784 | ;s info("date")=$p(line," ",6,7) | 
|---|
|  | 785 | ;s info("size")=$p(line," ",5) | 
|---|
|  | 786 | ;QUIT | 
|---|
|  | 787 | ; | 
|---|
|  | 788 | directoryExists(path) | 
|---|
|  | 789 | n line,temp | 
|---|
|  | 790 | s temp="temp"_$p($h,",",2)_".txt" | 
|---|
|  | 791 | zsystem "test -d "_path_" && echo ""1"">"_temp_" || echo ""0"">"_temp | 
|---|
|  | 792 | o temp:(readonly:exception="g dirFileNotExists") | 
|---|
|  | 793 | u temp | 
|---|
|  | 794 | r line | 
|---|
|  | 795 | c temp | 
|---|
|  | 796 | s ok=$$deleteFile(temp) | 
|---|
|  | 797 | QUIT line | 
|---|
|  | 798 | dirFileNotExists | 
|---|
|  | 799 | i $p($zs,",",1)=2 QUIT 0 | 
|---|
|  | 800 | QUIT 0 | 
|---|
|  | 801 | ; | 
|---|
|  | 802 | fileSize(path) | 
|---|
|  | 803 | n line,temp | 
|---|
|  | 804 | i '$$fileExists(path) QUIT 0 | 
|---|
|  | 805 | d shellCommand^%zewdGTM("ls -s """_path_"""",.results) | 
|---|
|  | 806 | s line=$g(results(1)) | 
|---|
|  | 807 | s line=$$stripLeadingSpaces^%zewdAPI(line) | 
|---|
|  | 808 | s line=$p(line," ",1) | 
|---|
|  | 809 | QUIT +line | 
|---|
|  | 810 | ; | 
|---|
|  | 811 | displayText(textID,reviewMode,sessid) | 
|---|
|  | 812 | ; | 
|---|
|  | 813 | i $g(textID)="" QUIT "" | 
|---|
|  | 814 | s reviewMode=+$g(reviewMode) | 
|---|
|  | 815 | n text,language,phraseType,appName | 
|---|
|  | 816 | s language=$$getSessionValue^%zewdAPI("ewd_Language",sessid) | 
|---|
|  | 817 | i $g(language)="" d | 
|---|
|  | 818 | . n appName | 
|---|
|  | 819 | . s appName=$$getTextAppName^%zewdCompiler5(textID) | 
|---|
|  | 820 | . s language=$$getDefaultLanguage^%zewdCompiler5(appName) | 
|---|
|  | 821 | i '$d(^ewdTranslation("textid",textID)) QUIT "textid "_textID_" : text missing" | 
|---|
|  | 822 | s text=$g(^ewdTranslation("textid",textID,language)) | 
|---|
|  | 823 | i text="" s text=$g(^ewdTranslation("textid",textID,$$getDefaultLanguage^%zewdCompiler5($$getTextAppName^%zewdCompiler5(textID)))) | 
|---|
|  | 824 | i language="xx" s text=textID_" ("_text_")" | 
|---|
|  | 825 | i reviewMode d | 
|---|
|  | 826 | . s text=text_" {textid="_textID_" : "_$g(^ewdTranslation("textid",textID,$$getDefaultLanguage^%zewdCompiler5($$getTextAppName^%zewdCompiler5(textID))))_"}" | 
|---|
|  | 827 | s phraseType=$$getTextPhraseType^%zewdCompiler5(textID) | 
|---|
|  | 828 | ;d trace^%zewdAPI("phraseType="_phraseType_" ; text="_text) | 
|---|
|  | 829 | i phraseType'="error" d | 
|---|
|  | 830 | . s text=$$replaceAll^%zewdAPI(text,"\'","'") | 
|---|
|  | 831 | . s text=$$replaceAll^%zewdAPI(text,"\""","""") | 
|---|
|  | 832 | . s text=$$replaceAll^%zewdAPI(text,"'","'") | 
|---|
|  | 833 | e  d | 
|---|
|  | 834 | . s text=$$replaceAll^%zewdAPI(text,"'",$c(5)) | 
|---|
|  | 835 | . s text=$$replaceAll^%zewdAPI(text,$c(5),"\'") | 
|---|
|  | 836 | QUIT text | 
|---|
|  | 837 | ; | 
|---|
|  | 838 | mergeGlobalToSession(globalName,sessionName,sessid) | 
|---|
|  | 839 | s globalName=$$stripSpaces^%zewdAPI(globalName) | 
|---|
|  | 840 | QUIT:$g(sessid)="" | 
|---|
|  | 841 | QUIT:$g(sessionName)="" | 
|---|
|  | 842 | s sessionName=$tr(sessionName,".","_") | 
|---|
|  | 843 | i $$isTemp^%zewdAPI(sessionName) m zewdSession(sessionName)=@globalName QUIT | 
|---|
|  | 844 | m ^%zewdSession("session",sessid,sessionName)=@globalName | 
|---|
|  | 845 | QUIT | 
|---|
|  | 846 | ; | 
|---|
|  | 847 | ; | 
|---|
|  | 848 | mergeGlobalFromSession(globalName,sessionName,sessid) | 
|---|
|  | 849 | ; | 
|---|
|  | 850 | n x | 
|---|
|  | 851 | ; | 
|---|
|  | 852 | s globalName=$$stripSpaces^%zewdAPI(globalName) | 
|---|
|  | 853 | QUIT:$g(sessid)="" | 
|---|
|  | 854 | QUIT:$g(sessionName)="" | 
|---|
|  | 855 | s sessionName=$tr(sessionName,".","_") | 
|---|
|  | 856 | i $$isTemp^%zewdAPI(sessionName) s x="m "_globalName_"=zewdSession(sessionName)" x x QUIT | 
|---|
|  | 857 | s x="m "_globalName_"=^%zewdSession(""session"",sessid,sessionName)" x x | 
|---|
|  | 858 | QUIT | 
|---|
|  | 859 | ; | 
|---|
|  | 860 | createCSSFile(outputPath,mode,verbose,technology) ; | 
|---|
|  | 861 | ; | 
|---|
|  | 862 | n filePath,label,line,lineNo,no,stop,x | 
|---|
|  | 863 | ; | 
|---|
|  | 864 | i $d(^zewd("config","jsScriptPath",technology,"outputPath")) d | 
|---|
|  | 865 | . n dlim | 
|---|
|  | 866 | . s dlim=$$getDelim^%zewdAPI() | 
|---|
|  | 867 | . s outputPath=^zewd("config","jsScriptPath",technology,"outputPath") | 
|---|
|  | 868 | . i $e(outputPath,$l(outputPath))'=dlim s outputPath=outputPath_dlim | 
|---|
|  | 869 | s filePath=outputPath_"ewd.css" | 
|---|
|  | 870 | i '$$openNewFile^%zewdCompiler(filePath) QUIT | 
|---|
|  | 871 | u filePath | 
|---|
|  | 872 | f label="ewdStyles" d | 
|---|
|  | 873 | . s stop=0 | 
|---|
|  | 874 | . f lineNo=1:1 d  q:stop | 
|---|
|  | 875 | . . s x="s line=$t("_label_"+lineNo^%zewdCompiler18)" | 
|---|
|  | 876 | . . x x | 
|---|
|  | 877 | . . i line["***END***" s stop=1 q | 
|---|
|  | 878 | . . i line[";;*php*",technology'="php" q | 
|---|
|  | 879 | . . i line[";;*csp*",((technology'="csp")!(technology="wl")!(technology="gtm")) q | 
|---|
|  | 880 | . . i line[";;*jsp*",technology'="jsp" q | 
|---|
|  | 881 | . . i line[";;*vb.net*",technology'="vb.net" q | 
|---|
|  | 882 | . . i line["left(up)" d | 
|---|
|  | 883 | . . . ;   left(up):-4px | 
|---|
|  | 884 | . . . s line=$$replace^%zewdAPI(line,"(up)","") | 
|---|
|  | 885 | . . . i mode="collapse" s line=";;   left:0px;" | 
|---|
|  | 886 | . . i line["left(down)" d | 
|---|
|  | 887 | . . . ;;   left(down):-33px ; | 
|---|
|  | 888 | . . . s line=$$replace^%zewdAPI(line,"(down)","") | 
|---|
|  | 889 | . . . i mode="collapse" s line=";;   left:-25px;" | 
|---|
|  | 890 | . . s line=$$replace^%zewdHTMLParser(line,"*php*","     ") | 
|---|
|  | 891 | . . s line=$$replace^%zewdHTMLParser(line,"*csp*","     ") | 
|---|
|  | 892 | . . s line=$$replace^%zewdHTMLParser(line,"*jsp*","     ") | 
|---|
|  | 893 | . . s line=$$replace^%zewdHTMLParser(line,"*vb.net*","     ") | 
|---|
|  | 894 | . . w $p(line,";;",2,250),! | 
|---|
|  | 895 | c filePath | 
|---|
|  | 896 | QUIT | 
|---|
|  | 897 | ; | 
|---|
|  | 898 | spinner(nodeOID,attrValues,docOID,technology) | 
|---|
|  | 899 | ; | 
|---|
|  | 900 | n attr,attrName,elOID,imagePath,increment,max,min,name,onBlur | 
|---|
|  | 901 | n onDown,onUp,onUpOrDown,size,value,width | 
|---|
|  | 902 | ; | 
|---|
|  | 903 | s name=$$getAttrValue^%zewdAPI("name",.attrValues,technology) | 
|---|
|  | 904 | s name=$$removeQuotes^%zewdAPI(name) | 
|---|
|  | 905 | i name="" s name="spinner"_$p(nodeOID,"-",2) | 
|---|
|  | 906 | s size=$$getAttrValue^%zewdAPI("size",.attrValues,technology) | 
|---|
|  | 907 | s size=$$removeQuotes^%zewdAPI(size) | 
|---|
|  | 908 | i size="" s size=2 | 
|---|
|  | 909 | s width=size*8 | 
|---|
|  | 910 | s value=$$getAttrValue^%zewdAPI("value",.attrValues,technology) | 
|---|
|  | 911 | s value=$$removeQuotes^%zewdAPI(value) | 
|---|
|  | 912 | i value="" s value="*" | 
|---|
|  | 913 | s max=$$getAttrValue^%zewdAPI("max",.attrValues,technology) | 
|---|
|  | 914 | s max=$$removeQuotes^%zewdAPI(max) | 
|---|
|  | 915 | i max="" s max="9999999999" | 
|---|
|  | 916 | s min=$$getAttrValue^%zewdAPI("min",.attrValues,technology) | 
|---|
|  | 917 | s min=$$removeQuotes^%zewdAPI(min) | 
|---|
|  | 918 | i min="" s min="0" | 
|---|
|  | 919 | s increment=$$getAttrValue^%zewdAPI("increment",.attrValues,technology) | 
|---|
|  | 920 | s increment=$$removeQuotes^%zewdAPI(increment) | 
|---|
|  | 921 | i increment="" s increment="100" | 
|---|
|  | 922 | s imagePath=$$getAttrValue^%zewdAPI("imagepath",.attrValues,technology) | 
|---|
|  | 923 | s imagePath=$$removeQuotes^%zewdAPI(imagePath) | 
|---|
|  | 924 | s onUp=$$getAttrValue^%zewdAPI("onup",.attrValues,technology) | 
|---|
|  | 925 | s onUp=$$removeQuotes^%zewdAPI(onUp) | 
|---|
|  | 926 | s onDown=$$getAttrValue^%zewdAPI("ondown",.attrValues,technology) | 
|---|
|  | 927 | s onDown=$$removeQuotes^%zewdAPI(onDown) | 
|---|
|  | 928 | s onBlur=$$getAttrValue^%zewdAPI("onblur",.attrValues,technology) | 
|---|
|  | 929 | s onBlur=$$removeQuotes^%zewdAPI(onBlur) | 
|---|
|  | 930 | s onUpOrDown=$$getAttrValue^%zewdAPI("onupordown",.attrValues,technology) | 
|---|
|  | 931 | s onUpOrDown=$$removeQuotes^%zewdAPI(onUpOrDown) | 
|---|
|  | 932 | s attrName="" | 
|---|
|  | 933 | f  s attrName=$o(attrValues(attrName)) q:attrName=""  d | 
|---|
|  | 934 | . i "|name|size|value|max|min|increment|onup|ondown|onupordown|"[("|"_attrName_"|") q | 
|---|
|  | 935 | . s attr(attrName)=$$removeQuotes^%zewdAPI(attrValues(attrName)) | 
|---|
|  | 936 | s attr("type")="text" | 
|---|
|  | 937 | s attr("name")=name | 
|---|
|  | 938 | s attr("value")=value | 
|---|
|  | 939 | s attr("class")="ewdSpinnerText" | 
|---|
|  | 940 | s attr("style")="width:"_width_"px" | 
|---|
|  | 941 | s attr("onKeyDown")="EWD.page.spinnerControl(event,'"_name_"',"_min_","_max_")" | 
|---|
|  | 942 | i onBlur="" d | 
|---|
|  | 943 | . s attr("onBlur")="EWD.page.spinnerValueCheck(this.value,'"_name_"',"_min_","_max_")" | 
|---|
|  | 944 | e  d | 
|---|
|  | 945 | . s attr("onBlur")=onBlur | 
|---|
|  | 946 | s elOID=$$addElementToDOM^%zewdDOM("input",nodeOID,,.attr) | 
|---|
|  | 947 | i onUp'="" s attr("onClick")=onUp | 
|---|
|  | 948 | i onUpOrDown'="" d | 
|---|
|  | 949 | . i onUp'="" s onUpOrDown=onUp_" ; "_onUpOrDown | 
|---|
|  | 950 | . s attr("onClick")=onUpOrDown | 
|---|
|  | 951 | s attr("type")="button" | 
|---|
|  | 952 | s attr("name")=name_"Up" | 
|---|
|  | 953 | s attr("tabIndex")="-1" | 
|---|
|  | 954 | s attr("class")="ewdSpinnerButtonUp" | 
|---|
|  | 955 | i imagePath'="" s attr("style")="background: url("_imagePath_"spinnerUp.gif) no-repeat;" | 
|---|
|  | 956 | s attr("onMouseDown")="EWD.page.spinnerKeyDown = true ;EWD.page.incrementSpinner('"_name_"',"_max_","_increment_")" | 
|---|
|  | 957 | s attr("onMouseUp")="EWD.page.spinnerKeyDown=false" | 
|---|
|  | 958 | s elOID=$$addElementToDOM^%zewdDOM("input",nodeOID,,.attr) | 
|---|
|  | 959 | i onDown'="" s attr("onClick")=onDown | 
|---|
|  | 960 | i onUpOrDown'="" d | 
|---|
|  | 961 | . i onDown'="" s onUpOrDown=onDown_" ; "_onUpOrDown | 
|---|
|  | 962 | . s attr("onClick")=onUpOrDown | 
|---|
|  | 963 | s attr("type")="button" | 
|---|
|  | 964 | s attr("name")=name_"Down" | 
|---|
|  | 965 | s attr("tabIndex")="-1" | 
|---|
|  | 966 | s attr("class")="ewdSpinnerButtonDown" | 
|---|
|  | 967 | i imagePath'="" s attr("style")="background: url("_imagePath_"spinnerDown.gif) no-repeat;" | 
|---|
|  | 968 | s attr("onMouseDown")="EWD.page.spinnerKeyDown = true ;EWD.page.decrementSpinner('"_name_"',"_min_","_increment_")" | 
|---|
|  | 969 | s attr("onMouseUp")="EWD.page.spinnerKeyDown=false" | 
|---|
|  | 970 | s elOID=$$addElementToDOM^%zewdDOM("input",nodeOID,,.attr) | 
|---|
|  | 971 | ; | 
|---|
|  | 972 | do removeIntermediateNode^%zewdDOM(nodeOID) | 
|---|
|  | 973 | ; | 
|---|
|  | 974 | QUIT | 
|---|
|  | 975 | ; | 
|---|
|  | 976 | popups(allArray,docOID,jsOID,nextPageList,urlNameList,technology) | 
|---|
|  | 977 | ; | 
|---|
|  | 978 | ; Process pop-up directives | 
|---|
|  | 979 | ; | 
|---|
|  | 980 | n attr,eh,ehx,ehy,ehz,event,found,jsName,jsParams,nextPage | 
|---|
|  | 981 | n nodeOID,nodeType,nvp,properties,props,tagName,url,useCurrentPosition | 
|---|
|  | 982 | n winHandle,winName | 
|---|
|  | 983 | ; | 
|---|
|  | 984 | ;d getAllNodes^%zewdCompiler(docOID,.allArray) | 
|---|
|  | 985 | s nodeOID="",found=0 | 
|---|
|  | 986 | f  s nodeOID=$o(allArray(0,nodeOID)) q:nodeOID=""  d | 
|---|
|  | 987 | . ; | 
|---|
|  | 988 | . ; popup="eHelpWindow" page="sysConfigHelp" event="OnClick" x=50 y=50 height=400 width=600 | 
|---|
|  | 989 | . ; ewdOpenWindow(url,winName,x,y,height,width,toolbar,location,directories,status,menubar,scrollbars,resizable) | 
|---|
|  | 990 | . ; toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes | 
|---|
|  | 991 | . ; | 
|---|
|  | 992 | . s nodeType=$$getNodeType^%zewdDOM(nodeOID) | 
|---|
|  | 993 | . i nodeType'=1 q | 
|---|
|  | 994 | . s winHandle=$$getAttributeValue^%zewdDOM("popup",1,nodeOID) | 
|---|
|  | 995 | . if winHandle="" quit | 
|---|
|  | 996 | . s winName=winHandle | 
|---|
|  | 997 | . i winHandle["[]" d | 
|---|
|  | 998 | . . n attr,headOID,jsOID,jsText | 
|---|
|  | 999 | . . s winName=$$getAttributeValue^%zewdDOM("windowname",1,nodeOID) | 
|---|
|  | 1000 | . . s jsOID=$$getTagByNameAndAttr^%zewdAPI("script","id","ewdWinNames",1,docName) | 
|---|
|  | 1001 | . . i jsOID="" d | 
|---|
|  | 1002 | . . . s attr("language")="javascript" | 
|---|
|  | 1003 | . . . s attr("id")="ewdWinNames" | 
|---|
|  | 1004 | . . . s headOID=$$getTagOID^%zewdAPI("head",docName) | 
|---|
|  | 1005 | . . . s jsText=$p(winHandle,"[",1)_" = new Array() ;" | 
|---|
|  | 1006 | . . . s jsOID=$$addElementToDOM^%zewdDOM("script",headOID,,.attr,jsText) | 
|---|
|  | 1007 | . . e  d | 
|---|
|  | 1008 | . . . n refStr,textOID | 
|---|
|  | 1009 | . . . s textOID=$$getFirstChild^%zewdDOM(jsOID) | 
|---|
|  | 1010 | . . . s jsText=$$getData^%zewdDOM(textOID) | 
|---|
|  | 1011 | . . . s refStr=$p(winHandle,"[",1)_" = new Array() ;" | 
|---|
|  | 1012 | . . . i jsText'[refStr s jsText=jsText_$c(13,10)_refStr | 
|---|
|  | 1013 | . . . s textOID=$$modifyTextData^%zewdDOM(jsText,textOID) | 
|---|
|  | 1014 | . ; | 
|---|
|  | 1015 | . s found=1 | 
|---|
|  | 1016 | . s event=$$zcvt^%zewdAPI($$getAttributeValue^%zewdDOM("event",1,nodeOID),"L") | 
|---|
|  | 1017 | . i event="" set event="onclick" | 
|---|
|  | 1018 | . s nextPage=$$getAttributeValue^%zewdDOM("page",0,nodeOID) | 
|---|
|  | 1019 | . s props("x")=+$$getAttributeValue^%zewdDOM("x",1,nodeOID) | 
|---|
|  | 1020 | . s props("y")=+$$getAttributeValue^%zewdDOM("y",1,nodeOID) | 
|---|
|  | 1021 | . s useCurrentPosition=$$getAttributeValue^%zewdDOM("usecurrentposition",1,nodeOID) | 
|---|
|  | 1022 | . i $$zcvt^%zewdAPI(useCurrentPosition,"l")="true" d | 
|---|
|  | 1023 | . . s props("x")="EWD.utils.findPosX(this)+"_props("x") | 
|---|
|  | 1024 | . . s props("y")="EWD.utils.findPosY(this)+"_props("y") | 
|---|
|  | 1025 | . e  d | 
|---|
|  | 1026 | . . s props("x")="'"_props("x")_"'" | 
|---|
|  | 1027 | . . s props("y")="'"_props("y")_"'" | 
|---|
|  | 1028 | . s props("width")=$$getAttributeValue^%zewdDOM("width",1,nodeOID) if props("width")="" set props("width")=100 | 
|---|
|  | 1029 | . s props("height")=$$getAttributeValue^%zewdDOM("height",1,nodeOID) if props("height")="" set props("height")=100 | 
|---|
|  | 1030 | . s props("toolbar")=$$getAttributeValue^%zewdDOM("toolbar",1,nodeOID) if props("toolbar")="" set props("toolbar")="no" | 
|---|
|  | 1031 | . s props("location")=$$getAttributeValue^%zewdDOM("location",1,nodeOID) if props("location")="" set props("location")="no" | 
|---|
|  | 1032 | . s props("directories")=$$getAttributeValue^%zewdDOM("directories",1,nodeOID) if props("directories")="" set props("directories")="no" | 
|---|
|  | 1033 | . s props("status")=$$getAttributeValue^%zewdDOM("status",1,nodeOID) if props("status")="" set props("status")="no" | 
|---|
|  | 1034 | . s props("menubar")=$$getAttributeValue^%zewdDOM("menubar",1,nodeOID) if props("menubar")="" set props("menubar")="no" | 
|---|
|  | 1035 | . s props("scrollbars")=$$getAttributeValue^%zewdDOM("scrollbars",1,nodeOID) if props("scrollbars")="" set props("scrollbars")="yes" | 
|---|
|  | 1036 | . s props("resizable")=$$getAttributeValue^%zewdDOM("resizable",1,nodeOID) if props("resizable")="" set props("resizable")="yes" | 
|---|
|  | 1037 | . f attr="useCurrentPosition","popup","event","page","x","y","width","height","toolbar","location","directories","status","menubar","scrollbars","resizable" do | 
|---|
|  | 1038 | . . d removeAttribute^%zewdAPI(attr,nodeOID,1) | 
|---|
|  | 1039 | . ; | 
|---|
|  | 1040 | . s ehx=$$getAttributeValue^%zewdDOM(event,1,nodeOID) | 
|---|
|  | 1041 | . s ehy=$$getAttributeValue^%zewdDOM("onclickpre",1,nodeOID) | 
|---|
|  | 1042 | . s ehz=$$getAttributeValue^%zewdDOM("onclickpost",1,nodeOID) | 
|---|
|  | 1043 | . d removeAttribute^%zewdAPI("onclickpre",nodeOID,1) | 
|---|
|  | 1044 | . d removeAttribute^%zewdAPI("onclickpost",nodeOID,1) | 
|---|
|  | 1045 | . s url=$$expandPageName^%zewdCompiler8(nextPage,.nextPageList,.urlNameList,technology,.jsParams) | 
|---|
|  | 1046 | . ; allow popup names defined in JS reference - ie use unquoted | 
|---|
|  | 1047 | . s winHandle=$s($e($$zcvt^%zewdAPI($tr(winHandle,"",""),"L"),1,9)="document.":winHandle,1:"'"_winHandle_"'") | 
|---|
|  | 1048 | . s winName=$s($e($$zcvt^%zewdAPI($tr(winName,"",""),"L"),1,9)="document.":winName,1:"'"_winName_"'") | 
|---|
|  | 1049 | . set eh="EWD.page.openWindow('"_url_"',"_winHandle_","_winName | 
|---|
|  | 1050 | . for attr="x","y","height","width","toolbar","location","directories","status","menubar","scrollbars","resizable" do | 
|---|
|  | 1051 | . . i attr'="x",attr'="y" d | 
|---|
|  | 1052 | . . . set eh=eh_",'"_props(attr)_"'" | 
|---|
|  | 1053 | . . e  d | 
|---|
|  | 1054 | . . . set eh=eh_","_props(attr) | 
|---|
|  | 1055 | . set jsName="" | 
|---|
|  | 1056 | . for  set jsName=$order(jsParams(jsName)) quit:jsName=""  do | 
|---|
|  | 1057 | . . set eh=eh_","_jsParams(jsName) | 
|---|
|  | 1058 | . set eh=eh_")" | 
|---|
|  | 1059 | . if ehx'="" set eh=eh_" ; "_ehx | 
|---|
|  | 1060 | . if ehz'="" set eh=eh_" ; "_ehz | 
|---|
|  | 1061 | . if ehy'="" set eh=ehy_" ; "_eh | 
|---|
|  | 1062 | . do setAttribute^%zewdDOM(event,eh,nodeOID) | 
|---|
|  | 1063 | ; | 
|---|
|  | 1064 | QUIT | 
|---|
|  | 1065 | ; | 
|---|
|  | 1066 | addServerToSession(sessid,serverArray) | 
|---|
|  | 1067 | QUIT:$g(sessid)="" | 
|---|
|  | 1068 | ; | 
|---|
|  | 1069 | k ^%zewdSession("session",sessid,"ewd_Server") | 
|---|
|  | 1070 | m ^%zewdSession("session",sessid,"ewd_Server")=serverArray | 
|---|
|  | 1071 | d setWLDSymbol^%zewdAPI("ewd_Server",sessid) | 
|---|
|  | 1072 | QUIT | 
|---|
|  | 1073 | ; | 
|---|
|  | 1074 | displayTextArea(fieldName) | 
|---|
|  | 1075 | n lineNo,text,lastLineNo | 
|---|
|  | 1076 | ; | 
|---|
|  | 1077 | s fieldName=$tr(fieldName,".","_") | 
|---|
|  | 1078 | d | 
|---|
|  | 1079 | . s lastLineNo=$o(^%zewdSession("session",sessid,"ewd_textarea",fieldName,""),-1) | 
|---|
|  | 1080 | . s lineNo=0 | 
|---|
|  | 1081 | . f  s lineNo=$o(^%zewdSession("session",sessid,"ewd_textarea",fieldName,lineNo)) q:lineNo=""  d | 
|---|
|  | 1082 | . . k text | 
|---|
|  | 1083 | . . s text=^%zewdSession("session",sessid,"ewd_textarea",fieldName,lineNo) | 
|---|
|  | 1084 | . . s text=$$replaceAll^%zewdHTMLParser(text,"'","'") | 
|---|
|  | 1085 | . . w $$zcvt^%zewdAPI(text,"o","HTML") | 
|---|
|  | 1086 | . . i lineNo'=lastLineNo w $c(13,10) | 
|---|
|  | 1087 | QUIT | 
|---|
|  | 1088 | ; | 
|---|
|  | 1089 | isNextPageTokenValid(token,sessid,page) | 
|---|
|  | 1090 | ; | 
|---|
|  | 1091 | n allowedFrom,expectedPage,fromPage | 
|---|
|  | 1092 | ; | 
|---|
|  | 1093 | s expectedPage=$p($g(^%zewdSession("nextPageTokens",sessid,token)),"~",1) | 
|---|
|  | 1094 | ;s allowedFrom=$p($g(^%zewdSession("nextPageTokens",sessid,token)),"~",2) | 
|---|
|  | 1095 | i expectedPage="" QUIT 0 | 
|---|
|  | 1096 | ;d trace^%zewdAPI("token="_token_" ; allowedFrom="_allowedFrom_" ; actual from page="_fromPage) | 
|---|
|  | 1097 | ;i allowedFrom'=fromPage QUIT 0 | 
|---|
|  | 1098 | i page[".php" d | 
|---|
|  | 1099 | . s page=$p(page,"/",$l(page,"/")) | 
|---|
|  | 1100 | . s page=$p(page,".php",1) | 
|---|
|  | 1101 | QUIT $$zcvt^%zewdAPI(expectedPage,"L")=$$zcvt^%zewdAPI(page,"L") | 
|---|
|  | 1102 | ; | 
|---|
|  | 1103 | existsInSessionArray(name,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11) | 
|---|
|  | 1104 | ; | 
|---|
|  | 1105 | n exists,i,nparams,param,ref,sessid,stop,technology,value | 
|---|
|  | 1106 | ; | 
|---|
|  | 1107 | s stop=0 | 
|---|
|  | 1108 | f i=11:-1:1 d  q:stop | 
|---|
|  | 1109 | . s param="p"_i | 
|---|
|  | 1110 | . i $g(@param)'="" s stop=1 | 
|---|
|  | 1111 | s sessid=@("p"_i) | 
|---|
|  | 1112 | s technology=$$getSessionValue^%zewdAPI("ewd_technology",sessid) | 
|---|
|  | 1113 | s nparams=i-1 | 
|---|
|  | 1114 | s name=$tr($g(name),".","_") | 
|---|
|  | 1115 | i $$isTemp^%zewdAPI(name) d | 
|---|
|  | 1116 | . s ref="s exists=$d(zewdSession("""_name_"""" | 
|---|
|  | 1117 | . s ref="s exists=$d(sessionArray("""_name_"""" | 
|---|
|  | 1118 | e  s ref="s exists=$d(^%zewdSession(""session"","""_sessid_""","""_name_"""" | 
|---|
|  | 1119 | i nparams>0 d | 
|---|
|  | 1120 | . f i=1:1:nparams s ref=ref_","""_$g(@("p"_i))_"""" | 
|---|
|  | 1121 | s ref=ref_"))" | 
|---|
|  | 1122 | ;d trace^%zewdAPI("ref="_$g(ref)) | 
|---|
|  | 1123 | x ref | 
|---|
|  | 1124 | ;d trace^%zewdAPI("ref="_ref_" ; exists="_exists) | 
|---|
|  | 1125 | QUIT exists | 
|---|
|  | 1126 | ; | 
|---|
|  | 1127 | getSchemaFormErrors(errorArray,sessid) | 
|---|
|  | 1128 | ; | 
|---|
|  | 1129 | n error,num | 
|---|
|  | 1130 | ; | 
|---|
|  | 1131 | k errorArray | 
|---|
|  | 1132 | d mergeArrayFromSession^%zewdAPI(.errorArray,"ewd_SchemaFormError",sessid) | 
|---|
|  | 1133 | s error="" | 
|---|
|  | 1134 | s num="" | 
|---|
|  | 1135 | f  s num=$o(errorArray("list",num)) q:num=""  d | 
|---|
|  | 1136 | . s error=error_errorArray("list",num)_$c(13,10) | 
|---|
|  | 1137 | QUIT error | 
|---|
|  | 1138 | ; | 
|---|
|  | 1139 | existsInSession(name,sessid) | 
|---|
|  | 1140 | n result,technology | 
|---|
|  | 1141 | ; | 
|---|
|  | 1142 | s name=$$stripSpaces^%zewdAPI(name) | 
|---|
|  | 1143 | i $g(name)="" QUIT 0 | 
|---|
|  | 1144 | s name=$tr(name,".","_") | 
|---|
|  | 1145 | i $g(sessid)="" QUIT 0 | 
|---|
|  | 1146 | s technology=$$getSessionValue^%zewdAPI("ewd_technology",sessid) | 
|---|
|  | 1147 | i $$isTemp^%zewdAPI(name) QUIT $d(sessionArray(name)) | 
|---|
|  | 1148 | QUIT $d(^%zewdSession("session",sessid,name)) | 
|---|
|  | 1149 | ; | 
|---|
|  | 1150 | encodeDataType(name,dataType,sessid) | 
|---|
|  | 1151 | ; | 
|---|
|  | 1152 | n value,outputMethod,x,encodedValue,Error | 
|---|
|  | 1153 | ; | 
|---|
|  | 1154 | i $g(name)="" QUIT "Data Type encoding attempted but field name was not specified" | 
|---|
|  | 1155 | i $g(dataType)="" QUIT "Data Type encoding attempted for the "_name_" field, but no data type was defined" | 
|---|
|  | 1156 | s value=$$getSessionValue^%zewdAPI(name,sessid) | 
|---|
|  | 1157 | s outputMethod=$$getOutputMethod^%zewdCompiler(dataType) | 
|---|
|  | 1158 | i outputMethod="" QUIT "" | 
|---|
|  | 1159 | s x="s encodedValue=$$"_outputMethod_"("""_value_""",.Error,sessid)" | 
|---|
|  | 1160 | x x | 
|---|
|  | 1161 | i $g(Error)="" d setSessionValue^%zewdAPI(name,encodedValue,sessid) | 
|---|
|  | 1162 | ;i Error'="" s Error=name_" : "_Error | 
|---|
|  | 1163 | QUIT Error | 
|---|
|  | 1164 | ; | 
|---|