Source for file Harmoni.js.inc.php

Documentation is available at Harmoni.js.inc.php

  1. <?php
  2. /**
  3. * This file includes a number of static javascript files and writes a Harmoni
  4. * javascript class that dynamically adapts to changes in the configuration
  5. * of the RequestContext url writer.
  6. *
  7. * @since 11/29/06
  8. * @package polyphony.javascript
  9. *
  10. * @copyright Copyright &copy; 2005, Middlebury College
  11. * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL)
  12. *
  13. * @version $Id: Harmoni.js.inc.php,v 1.4 2007/09/04 20:27:57 adamfranco Exp $
  14. */
  15.  
  16. // Additional Files
  17. print "\n\t\t\t<script type='text/javascript' src='".POLYPHONY_PATH."javascript/common.js'></script>";
  18. print "\n\t\t\t<script type='text/javascript' src='".POLYPHONY_PATH."javascript/Panel.js'></script>";
  19. print "\n\t\t\t<link rel='stylesheet' type='text/css' href='".POLYPHONY_PATH."javascript/Panel.css' />";
  20. print "\n\t\t\t<script type='text/javascript' src='".POLYPHONY_PATH."javascript/Tagger.js'></script>";
  21. print "\n\t\t\t<script type='text/javascript' src='".POLYPHONY_PATH."javascript/AuthZViewer.js'></script>";
  22. print "\n\t\t\t<script type='text/javascript' src='".POLYPHONY_PATH."javascript/quicksort.js'></script>";
  23.  
  24. ?>
  25.  
  26. <script type='text/javascript'>
  27. // <![CDATA[
  28. /**
  29. * A Class for harmoni related static methods.
  30. *
  31. * @access public
  32. * @since 11/10/06
  33. */
  34. function Harmoni () {
  35. alert('Error: Harmoni is a static class. Do not instantiate');
  36. }
  37. /**
  38. * Create an XML HTTP request object
  39. *
  40. * @return object
  41. * @access public
  42. * @since 11/10/06
  43. */
  44. Harmoni.createRequest = function () {
  45. // branch for native XMLHttpRequest object (Mozilla, Safari, etc)
  46. if (window.XMLHttpRequest)
  47. var req = new XMLHttpRequest();
  48. // branch for IE/Windows ActiveX version
  49. else if (window.ActiveXObject)
  50. var req = new ActiveXObject("Microsoft.XMLHTTP");
  51. return req;
  52. }
  53.  
  54. /**
  55. * Answer a harmoni URL
  56. *
  57. * @param string action
  58. * @param optional array parameters
  59. * @return string
  60. * @access public
  61. * @since 11/10/06
  62. */
  63. Harmoni.quickUrl = function (module, action, parameters, namespace) {
  64. <?php
  65. $harmoni = Harmoni::instance();
  66. $url = $harmoni->request->quickURL('xxMODULExx', 'xxACTIONxx',
  67. array('xxKEY1xx'=> 'xxVALUE1xx', 'xxKEY2xx' => 'xxVALUE2xx'));
  68. print "\n\t\t\t\tvar normalUrl = '".$url."';";
  69. $harmoni->request->startNameSpace('xxnamespacexx');
  70. $url = $harmoni->request->quickURL('xxMODULExx', 'xxACTIONxx',
  71. array('xxKEY1xx'=> 'xxVALUE1xx', 'xxKEY2xx' => 'xxVALUE2xx'));
  72. $harmoni->request->endNameSpace();
  73. print "\n\t\t\t\tvar namespacedUrl = '".$url."';";
  74. ?>
  75. var debug = '';
  76. if (namespace) {
  77. var url = namespacedUrl.replaceAll(/xxnamespacexx/, namespace);
  78. debug += "\nnamespaced";
  79. } else
  80. var url = normalUrl;
  81. url = url.urlDecodeAmpersands();
  82. var result = url.match(/^.+xxACTIONxx/);
  83. var baseUrl = result[0];
  84. var result = url.match(/xxVALUE1xx(.+)xxKEY2xx/);
  85. var parameterSeparator = result[1];
  86. var result = url.match(/xxKEY1xx(.+)xxVALUE1xx/);
  87. var keyValueSeparator = result[1];
  88. var newUrl = baseUrl.replace(/xxMODULExx/, module);
  89. newUrl = newUrl.replace(/xxACTIONxx/, action);
  90. if (parameters) {
  91. for (var key in parameters) {
  92. newUrl += parameterSeparator + key + keyValueSeparator + parameters[key];
  93. }
  94. }
  95. return newUrl;
  96. }
  97. /**
  98. * Answer a namespaced form fieldname
  99. *
  100. * @param string action
  101. * @param optional array parameters
  102. * @return string
  103. * @access public
  104. * @since 7/12/07
  105. */
  106. Harmoni.fieldName = function (name, namespace) {
  107. <?php
  108. $harmoni = Harmoni::instance();
  109. $fieldName = RequestContext::name('xxFIELDNAMExx');
  110. print "\n\t\t\t\tvar normalFieldName = '".$fieldName."';";
  111. $harmoni->request->startNameSpace('xxNAMESPACExx');
  112. $fieldName = RequestContext::name('xxFIELDNAMExx');
  113. $harmoni->request->endNameSpace();
  114. print "\n\t\t\t\tvar namespacedFieldName = '".$fieldName."';";
  115. ?>
  116. var debug = '';
  117. if (namespace) {
  118. var fieldName = namespacedFieldName.replaceAll(/xxNAMESPACExx/, namespace);
  119. debug += "\nnamespaced";
  120. } else
  121. var fieldName = normalFieldName;
  122. return fieldName.replaceAll(/xxFIELDNAMExx/, name);
  123. }
  124. // ]]>
  125. </script>

Documentation generated on Wed, 19 Sep 2007 10:23:35 -0400 by phpDocumentor 1.3.0RC3