home *** CD-ROM | disk | FTP | other *** search
/ PC User 2003 September / Australian PC User - September 2003 (CD1).iso / magstuff / web / files / dwmx61.exe / Disk1 / data1.cab / Configuration_En / DataSources / UD4-ColdFusion / helper.js < prev    next >
Encoding:
JavaScript  |  2002-11-25  |  8.5 KB  |  361 lines

  1. // Copyright 2001 Macromedia, Inc. All rights reserved.
  2.  
  3. /* SITE WIDE HELPER FUNCTIONS BEGIN */
  4.  
  5. function GetSiteWideSourceDisplayNode(sourceName, nodeName, iconFileName, dataSource,name)
  6. {
  7.   var DSL = new Array()
  8.  
  9.   var siteURL = dw.getSiteRoot()
  10.   var bindingsArray = new Array()
  11.  
  12.   if (siteURL.length)
  13.   {
  14.     getValuesFromNote(siteURL, bindingsArray, sourceName, sourceName + "Count")
  15.     if (bindingsArray.length > 0)
  16.     {
  17.       DSL.push(new ObjectInfo(nodeName, iconFileName, false, dataSource,name))
  18.     }
  19.   }
  20.  
  21.   return DSL
  22. }
  23.  
  24.  
  25. function GetBindingsOfSiteWideSource(sourceName, dataSource)
  26. {
  27.   var bindingsArray = new Array()
  28.   var outArray = new Array
  29.  
  30.   var siteURL = dw.getSiteRoot()
  31.  
  32.   if (siteURL.length)
  33.   {
  34.     getValuesFromNote(siteURL, bindingsArray, sourceName, sourceName + "Count")
  35.     outArray = GenerateObjectInfoForSourceBindings(bindingsArray, datasourceleaf_filename, dataSource)
  36.   }
  37.  
  38.   return outArray 
  39. }
  40.  
  41.  
  42. function DeleteBindingOfSiteWideSource(sourceName, bindingName)
  43. {
  44.   var siteURL = dw.getSiteRoot()
  45.   if (siteURL.length)
  46.   {
  47.     deleteValueFromNote(siteURL, sourceName + "Count", sourceName, bindingName)
  48.   }
  49. }
  50.  
  51.  
  52. function SaveSiteWideValue(sourceName)
  53. {
  54.   var siteURL = dw.getSiteRoot()
  55.  
  56.   if (siteURL.length)
  57.   {
  58.     dw.runCommand("CFDS" + sourceName + ".htm")   
  59.     if (MM.clickedOK) 
  60.     {
  61.       addValueToNote(siteURL, sourceName + "Count", sourceName, MM.retVal)
  62.     } 
  63.   }
  64.   else
  65.   {
  66.     alert(MM.MSG_PleaseSaveSite)
  67.   }
  68. }
  69.  
  70. /* SITE WIDE HELPER FUNCTIONS END */
  71.  
  72.  
  73. /* PAGE WIDE HELPER FUNCTIONS BEGIN */
  74.  
  75. function GetPageWideSourceDisplayNode(sourceName, nodeName, iconFileName, dataSource,name)
  76. {
  77.   var DSL = new Array()
  78.  
  79.   var dom = dw.getDocumentDOM()
  80.  
  81.   if (!dom)
  82.   {
  83.     return DSL
  84.   }
  85.  
  86.   var bindingsArray = new Array()
  87.   var fileURL = dom.URL
  88.  
  89.   if (!fileURL.length)
  90.     fileURL = dwscripts.getTempURLForDesignNotes();
  91.  
  92.   if (fileURL.length)
  93.   {
  94.     getValuesFromNote(fileURL, bindingsArray, sourceName, sourceName + "Count")
  95.     if (bindingsArray.length > 0)
  96.     {
  97.       DSL.push(new ObjectInfo(nodeName, iconFileName, false, dataSource,name))
  98.     }
  99.   }
  100.   return DSL
  101. }
  102.  
  103.  
  104. function GetBindingsOfPageWideSource(sourceName, dataSource)
  105. {
  106.   var bindingsArray = new Array()
  107.   var outArray = new Array
  108.   var dom = dw.getDocumentDOM()
  109.   var fileURL = dom.URL
  110.   if (!fileURL.length)
  111.     fileURL = dwscripts.getTempURLForDesignNotes();
  112.   if (fileURL.length)
  113.   {
  114.     getValuesFromNote(fileURL, bindingsArray, sourceName, sourceName + "Count")
  115.   }
  116.   outArray = GenerateObjectInfoForSourceBindings(bindingsArray, datasourceleaf_filename, dataSource)
  117.  
  118.   return outArray 
  119. }
  120.  
  121.  
  122. function DeleteBindingOfPageWideSource(sourceName, bindingName)
  123. {
  124.   var fileURL = dw.getDocumentDOM().URL
  125.   if (!fileURL.length)
  126.     fileURL = dwscripts.getTempURLForDesignNotes();
  127.   if (fileURL.length)
  128.   {
  129.     deleteValueFromNote(fileURL, sourceName + "Count", sourceName, bindingName)
  130.   }
  131. }
  132.  
  133.  
  134. function SavePageWideValue(sourceName)
  135. {
  136.   var fileURL = dw.getDocumentDOM().URL
  137.   if (!fileURL.length)
  138.     fileURL = dwscripts.getTempURLForDesignNotes();
  139.   if (fileURL.length)
  140.   {
  141.     dw.runCommand("CFDS" + sourceName + ".htm")   
  142.     if (MM.clickedOK) 
  143.     {
  144.       //alert("about to add a note called: " + sourceName + " with a value of " + MM.retVal)
  145.       addValueToNote(fileURL, sourceName + "Count", sourceName, MM.retVal)
  146.     } 
  147.   }
  148. }
  149.  
  150. /* PAGE WIDE HELPER FUNCTIONS END */
  151.  
  152.  
  153.  
  154. function ObjectInfo(title, imageFile, allowDelete,dataSource,name)
  155. {
  156.   this.title = title;
  157.   this.imageFile = imageFile;
  158.  
  159.   if (ObjectInfo.arguments.length >= 3)
  160.   {
  161.     this.allowDelete = allowDelete
  162.   }
  163.   else
  164.   {
  165.     this.allowDelete = true
  166.   }
  167.  
  168.   if (ObjectInfo.arguments.length >= 4)
  169.   {
  170.     this.dataSource = dataSource
  171.   }
  172.  
  173.   if (ObjectInfo.arguments.length >= 5)
  174.   {
  175.     this.name = name
  176.   }
  177. }
  178.  
  179.  
  180. function GenerateObjectInfoForSourceBindings(oldArray, filename, dataSource)
  181. {
  182.   var outArray = new Array();
  183.   for (var i = 0; i < oldArray.length; i++)
  184.   {
  185.     outArray[outArray.length] = new ObjectInfo(oldArray[i], filename, true, dataSource + ".htm","");
  186.   }
  187.   return outArray;
  188. }
  189.  
  190. ////////////////////////////////////////////////////////////////////////////////
  191. //
  192. //  Function: findNodebyName(elementName)
  193. //
  194. //  Returns a data source node by name.
  195. ////////////////////////////////////////////////////////////////////////////////
  196. function findSourceNode(elementName)
  197. {
  198.   var foundnode = null;
  199.   var currentdom = dreamweaver.getDocumentDOM();
  200.  
  201.   if (currentdom) {
  202.   var nodes = currentdom.getElementsByTagName("CFQUERY");
  203.   for (var index =0 ; index < nodes.length ; index++) {
  204.     var node = nodes.item(index);
  205.     if (node) {
  206.       if(node.getAttribute("NAME") == elementName) {
  207.         foundnode = node;
  208.       }
  209.     }
  210.   }
  211.  
  212.   if (!foundnode){
  213.     var nodes = currentdom.getElementsByTagName("CFSTOREDPROC")
  214.     for (var i = 0; i < nodes.length; i++)  
  215.     {
  216.       var node = nodes[i]
  217.       if(GetSPName(node) == elementName) 
  218.       {
  219.         foundnode = node;
  220.       }
  221.     }
  222.   }
  223.  
  224.   if (!foundnode){
  225.     var nodes = currentdom.getElementsByTagName("CFPROCRESULT");
  226.     for (var index =0 ; index < nodes.length ; index++) {
  227.       var node = nodes.item(index);
  228.       if (node) {
  229.         if(node.getAttribute("NAME") == elementName) {
  230.           foundnode = node;
  231.         }
  232.       }
  233.     }
  234.   }
  235.    }
  236.  
  237.   return foundnode;
  238. }
  239.  
  240. function findSSrec(node,type)
  241. {
  242.   ssRecs = dw.serverBehaviorInspector.getServerBehaviors();
  243.   ssMatchRec = null;
  244.     for (var j=0; j<ssRecs.length; j++) { //search all ssRecs
  245.       ssRec = ssRecs[j];
  246.       if ((ssRec.participants)&&(ssRec.type == type)) {
  247.         for (var k=0; k<ssRec.participants.length; k++) {    //scan ssRec participants
  248.           if (ssRec.participants[k] == node){
  249.       ssMatchRec = ssRec;
  250.        } //check if node is participant, and increase refCount
  251.         }
  252.       }
  253.     }
  254.   return ssMatchRec;
  255. }
  256.  
  257. function GetResultsetName(node)
  258. {
  259.   if (node.hasChildNodes())
  260.   {
  261.     for (var i = 0; i < node.childNodes.length; i ++)
  262.     {
  263.       var thisChild = node.childNodes[i]
  264.       if (thisChild.tagName == "CFPROCRESULT")
  265.       {
  266.         return thisChild.getAttribute("NAME")
  267.       }
  268.     }
  269.   }
  270.   
  271.   return ""
  272. }
  273.  
  274.  
  275. function GetSPName(node)
  276. {
  277.   var retVal = "mmerror"
  278.  
  279.   var inner = node.innerHTML
  280.   var re = /<!---\s*mm_procname\s*=\s*"(\w+)"/i
  281.  
  282.   if (inner.search(re) != -1)
  283.   {
  284.     retVal = RegExp.$1
  285.   }
  286.  
  287.  
  288.   return retVal
  289. }
  290.  
  291. function findSSrecByTitle(title,type)
  292. {
  293.   ssRecs = dw.serverBehaviorInspector.getServerBehaviors();
  294.   ssMatchRec = null;
  295.     for (var j=0; j<ssRecs.length; j++) { //search all ssRecs
  296.       ssRec = ssRecs[j];
  297.       if ((ssRec.participants)&&(ssRec.type == type)&&(ssRec.title == title)) {
  298.       ssMatchRec = ssRec;
  299.         }
  300.       }
  301.   return ssMatchRec;
  302. }
  303.  
  304. function GetRecordsetNodeForCommand(node)
  305. {
  306.   var rnode = null;
  307.   if (node.hasChildNodes())
  308.   {
  309.     for (var i = 0; i < node.childNodes.length; i ++)
  310.     {
  311.       var thisChild = node.childNodes[i]
  312.       if (thisChild.tagName == "CFPROCRESULT")
  313.       {
  314.         rnode = thisChild;
  315.         //Currently we support only one returned recordset.
  316.         break;
  317.       }
  318.     }
  319.   }
  320.   
  321.   return rnode;
  322. }
  323.  
  324. ////////////////////////////////////////////////////////////////////////////////
  325. //
  326. //  Function: inspectDynamicDataRef
  327. //
  328. //  Inspects a dynamic binding string and returns a pair of source and binding.
  329. ////////////////////////////////////////////////////////////////////////////////
  330. function CFInspectDynamicDataRef(expression)
  331. {
  332.   var retArray = new Array()
  333.   if(expression.length) 
  334.   {
  335.     // Quickly reject if the expression doesn't contain "<cfouput>"
  336.     var exprIndex = expression.indexOf("#");
  337.     if (exprIndex != -1)
  338.     {
  339.       // No need to search the string prior to the "<cfoutput>"
  340.       expression = "<cfoutput>"+expression.substr(exprIndex)+"</cfoutput>";
  341.  
  342.       var TranslatorDOM = dreamweaver.getDocumentDOM(dreamweaver.getConfigurationPath() + "/Translators/UD4-ColdFusion.htm");
  343.       if (TranslatorDOM)  
  344.       { 
  345.         TranslatedStr = TranslatorDOM.parentWindow.miniTranslateMarkup("", "", expression, false);        
  346.         if (TranslatedStr.length)
  347.         {
  348.           var found = TranslatedStr.search(/mm_dynamic_content\s+source="?(\w+)"?\s+binding="?(\w[\w\.]*)"?/i)
  349.           if (found != -1)
  350.           {
  351.             retArray[0] = RegExp.$1
  352.             retArray[1] = RegExp.$2         
  353.           }
  354.         }
  355.       }
  356.     }
  357.   }
  358.     
  359.   return retArray;
  360. }
  361.