Advertisement
Guest User

Untitled

a guest
Jun 28th, 2013
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.47 KB | None | 0 0
  1. <%@ include file="/WEB-INF/template/include.jsp" %>
  2.  
  3. <openmrs:require privilege="Manage Modules" otherwise="/login.htm" redirect="/admin/modules/module.list" />
  4.  
  5. <%@ include file="/WEB-INF/template/header.jsp" %>
  6. <%@ include file="localHeader.jsp" %>
  7. <openmrs:htmlInclude file="/scripts/jquery/dataTables/css/dataTables.css" />
  8. <openmrs:htmlInclude file="/scripts/jquery/dataTables/js/jquery.dataTables.min.js" />
  9. <openmrs:htmlInclude file="/scripts/jquery-ui/js/jquery-ui-1.7.2.custom.min.js" />
  10. <link href="<openmrs:contextPath/>/scripts/jquery-ui/css/<spring:theme code='jqueryui.theme.name' />/jquery-ui.custom.css" type="text/css" rel="stylesheet" />
  11. <script type="text/javascript">
  12. var oTable;
  13.  
  14. function validateDependencies(module){
  15. var moduleId = module.parentNode.parentNode.id;
  16. var path = "${pageContext.request.contextPath}/admin/modules/manage/checkdependencies.form";
  17. var result = false;
  18. path = path + "?moduleId=" + moduleId;
  19. alert(path);
  20. $j.ajax({
  21. type : "GET",
  22. url : path,
  23. dataType : "text",
  24. success : function(data) {
  25. if(data != ""){ //If conflicting dependencies found, then display confirmation message
  26. var message = '<openmrs:message code="Module.dependencyShutdownNotice" javaScriptEscape="true"/>';
  27. message += '<br/><br/>' + data;
  28.  
  29. document.getElementById('dependency-confirmation-message').innerHTML = message;
  30. $j( "#dialog-confirm" ).dialog({
  31. resizable: false,
  32. width: '50%',
  33. modal: true,
  34. buttons: {
  35. "Stop module": function() {
  36. document.getElementById('hiddenAction').value = this.value;
  37. $j( this ).dialog( "close" );
  38.  
  39. },
  40. Cancel: function() {
  41.  
  42. $j( this ).dialog( "close" );
  43. }
  44. }
  45. });
  46. }else{
  47. //Directly shutdown module if It has no conflicting dependencies
  48. document.getElementById('hiddenAction').value = this.value;
  49. }
  50. }
  51. });
  52. return false;
  53. }
  54.  
  55. $j(document).ready(function() {
  56. $j('#addUpgradePopup').dialog({
  57. autoOpen: false,
  58. modal: true,
  59. title: '<openmrs:message code="Module.addOrUpgrade" javaScriptEscape="true"/>',
  60. width: '90%'
  61. });
  62.  
  63. $j('#addUpgradeButton').click(function() {
  64. $j('#addUpgradePopup').dialog('open');
  65. });
  66.  
  67. $j('.errorDetailsButton').click(function() {
  68. var detailsNum = $j(this).attr('id').substring(118); // strip 'errorDetailsButton'
  69. $j('#errorDetails' + detailsNum).dialog('open');
  70. });
  71.  
  72. oTable = $j('#findModuleTable').dataTable({
  73. "aoColumns": [ { "sName": "Action", "bSortable": false,
  74. "fnRender": function ( oObj ) {
  75. var downloadURL = oObj.aData[0];
  76. return '<form action="module.list" method="post"><input type="hidden" name="download" value="true" /><input type="hidden" name="action" value="upload" /><input type="hidden" name="downloadURL" value="' + downloadURL + '" /><input type="submit" value="<openmrs:message code="Module.install" />" /></form>';
  77. }
  78. },
  79. { "sName": "Name" },
  80. { "sName": "Version" },
  81. { "sName": "Author" },
  82. { "sName": "Description" }
  83. ],
  84. "bLengthChange": false,
  85. "aaSorting": [[1,'asc'], [2,'desc']],
  86. "bAutoWidth": false,
  87. "sPaginationType": "two_button",
  88. "bProcessing": true,
  89. "bServerSide": true,
  90. "fnServerData": function ( sSource, aoData, fnCallback ) {
  91. aoData.push( { "name": "openmrs_version", "value": "${openmrsVersion}" } );
  92.  
  93. <c:forEach var="module" items="${loadedModules}">
  94. aoData.push( { "name": "excludeModule", "value": "${module.moduleId}" } );
  95. </c:forEach>
  96.  
  97. $j.ajax( {
  98. "dataType": 'jsonp',
  99. "type": "GET",
  100. "url": "${moduleRepositoryURL}/findModules",
  101. "data": aoData,
  102. "success": fnCallback
  103. } );
  104. }
  105. });
  106. });
  107. </script>
  108.  
  109. <h2><openmrs:message code="Module.header" /></h2>
  110.  
  111. <p><openmrs:message code="Module.notice" /></p>
  112. <div class="errorDetailsX" id="errorDetailsX">
  113. <pre style="margin: 0px;">XRT</pre>
  114. </div>
  115. <div id="dialog-confirm" title="<openmrs:message code="Module.dependencyValidationNotice"/>"><p id="dependency-confirmation-message"></p></div>
  116. <c:choose>
  117. <c:when test="${allowAdmin == 'true'}">
  118. <div id="buttonPanel">
  119. <div style="float:left">
  120. <input type="button" id="addUpgradeButton" value="<openmrs:message code="Module.addOrUpgrade" javaScriptEscape="true"/>"/>
  121. <div id="addUpgradePopup">
  122. <b class="boxHeader"><openmrs:message code="Module.add"/></b>
  123. <div class="box">
  124. <form id="moduleAddForm" action="module.list" method="post" enctype="multipart/form-data">
  125. <input type="file" name="moduleFile" size="40" <c:if test="${allowAdmin!='true'}">disabled="disabled"</c:if> />
  126. <input type="hidden" name="action" value="upload"/>
  127. <input type="submit" value='<openmrs:message code="Module.upload"/>'/>
  128. </form>
  129. </div>
  130. <br/>
  131.  
  132. <b class="boxHeader"><openmrs:message code="Module.upgrade"/></b>
  133. <div class="box">
  134. <form method="post" id="uploadUpdateForm" enctype="multipart/form-data">
  135. <input type="file" name="moduleFile" size="40" />
  136. <input type="hidden" name="action" value="upload"/>
  137. <input type="hidden" name="update" value="true"/>
  138. <input type="submit" value='<openmrs:message code="Module.upload"/>'/>
  139. </form>
  140. </div>
  141. <br/>
  142.  
  143. <div id="findModule">
  144. <b class="boxHeader"><openmrs:message code="Module.findAndDownload" arguments="${moduleRepositoryURL}" /></b>
  145. <div class="box">
  146. <table id="findModuleTable" cellpadding="5" cellspacing="0">
  147. <thead>
  148. <tr>
  149. <th><openmrs:message code="general.action"/></th>
  150. <th><openmrs:message code="general.name"/></th>
  151. <th><openmrs:message code="general.version"/></th>
  152. <th><openmrs:message code="general.author"/></th>
  153. <th><openmrs:message code="general.description"/></th>
  154. </tr>
  155. </thead>
  156. <tbody>
  157. </tbody>
  158. </table>
  159. </div>
  160. </div>
  161. <br/>
  162. </div>
  163. </div>
  164. <div style="float:left">
  165. <form method="post"><input type="submit" value='<openmrs:message code="Module.checkForUpdates"/>'/></form>
  166. </div>
  167. <div style="clear:both">&nbsp;</div>
  168. </div>
  169. </c:when>
  170. <c:otherwise>
  171. ${disallowUploads}
  172. </c:otherwise>
  173. </c:choose>
  174.  
  175. <c:forEach var="module" items="${moduleList}" varStatus="varStatus">
  176. <c:if test="${varStatus.first}">
  177. <b class="boxHeader"><openmrs:message code="Module.manage" /></b>
  178. <div class="box" id="moduleListing">
  179. <table cellpadding="5" cellspacing="0">
  180. <thead>
  181. <tr>
  182. <c:if test="${allowAdmin=='true'}">
  183. <th colspan="2"><openmrs:message code="general.action"/></th>
  184. </c:if>
  185. <th><openmrs:message code="general.name"/></th>
  186. <th><openmrs:message code="general.version"/></th>
  187. <th><openmrs:message code="general.author"/></th>
  188. <th><openmrs:message code="general.description"/></th>
  189. <th></th>
  190. <th></th>
  191. </tr>
  192. </thead>
  193. <tbody>
  194. </c:if>
  195.  
  196. <form id="moduleManagement" method="post">
  197. <input type="hidden" name="moduleId" value="${module.moduleId}" />
  198. <tr class='${varStatus.index % 2 == 0 ? "oddRow" : "evenRow" }' id="${module.moduleId}">
  199. ${module.moduleId}
  200. <c:choose>
  201. <c:when test="${allowAdmin=='true' && module.mandatory == false && module.coreModule == false}">
  202. <td valign="top">
  203. <c:choose>
  204. <c:when test="${not module.started}">
  205. <input type="image" src="${pageContext.request.contextPath}/images/play.gif" name="start" onclick="document.getElementById('hiddenAction').value = this.value" title="<openmrs:message code="Module.start.help"/>" alt="<openmrs:message code="Module.start"/>" />
  206. </c:when>
  207. <c:otherwise>
  208. <input type="image" src="${pageContext.request.contextPath}/images/stop.gif" name="stop" onclick="return validateDependencies(this);" title="<openmrs:message code="Module.stop.help"/>" alt="<openmrs:message code="Module.stop"/>" />
  209. </c:otherwise>
  210. </c:choose>
  211. </td>
  212. <td valign="top"><input type="image" src="${pageContext.request.contextPath}/images/trash.gif" name="unload" onclick="return confirm('<openmrs:message code="Module.unloadWarning"/>');" title="<openmrs:message code="Module.unload.help"/>" title="<openmrs:message code="Module.unload"/>" alt="<openmrs:message code="Module.unload"/>" /></td>
  213. </c:when>
  214. <c:otherwise>
  215. <td valign="top">
  216. <img src="${pageContext.request.contextPath}/images/lock.gif" title="<openmrs:message code="Module.locked.help"/>" alt="<openmrs:message code="Module.locked"/>" />
  217. </td>
  218. <td></td>
  219. </c:otherwise>
  220. </c:choose>
  221. <td valign="top">${module.name} <c:if test="${not module.started}"><b id="moduleNotStarted" style="white-space: nowrap">[<openmrs:message code="Module.notStarted"/>]</b></c:if></td>
  222. <td valign="top">${module.version}</td>
  223. <td valign="top">${module.author}</td>
  224. <td valign="top">${fn:substring(fn:escapeXml(module.description),0, 200)}...</td>
  225. <td valign="top"<c:if test="${module.startupErrorMessage != null}">class="error"</c:if> >
  226. <c:if test="${module.startupErrorMessage != null}">
  227. <span class="errorDetailsButton" id="errorDetailsButton${varStatus.index}">
  228. <openmrs:message code="Module.errorClickForDetails"/>
  229. </span>
  230. <div class="errorDetailsDialog" id="errorDetails${varStatus.index}">
  231. <pre style="margin: 0px;">${module.startupErrorMessage}</pre>
  232. </div>
  233. <script type="text/javascript">
  234. $j('#errorDetails${varStatus.index}').dialog({
  235. autoOpen: false,
  236. modal: true,
  237. title: '<openmrs:message code="Module.errorStarting" arguments="${module.name}" javaScriptEscape="true"/>',
  238. width: '90%'
  239. });
  240. </script>
  241. </c:if>
  242. </td>
  243. <td>
  244. <c:if test="${module.downloadURL != null}">
  245. ${module.updateVersion}
  246. <openmrs:message code="Module.updateAvailable" />
  247. <c:if test="${allowAdmin=='true'}">
  248. <input type="submit" name="action" value='<openmrs:message code="Module.installUpdate"/>'>
  249. <openmrs:message code="general.or"/>
  250. </c:if>
  251. <a href="${module.downloadURL}"><openmrs:message code="Module.downloadUpdate"/></a>
  252. </c:if>
  253. </td>
  254. </tr>
  255. </form>
  256.  
  257. <c:if test="${varStatus.last}">
  258. </tbody>
  259. </table>
  260. </div>
  261.  
  262. </c:if>
  263.  
  264. </c:forEach>
  265.  
  266. <c:if test="${fn:length(moduleList) == 0}">
  267. <i> &nbsp; <openmrs:message code="Module.noLoadedModules"/></i><br/>
  268. </c:if>
  269.  
  270. <br/>
  271.  
  272. <b class="boxHeader"><openmrs:message code="Module.help" /></b>
  273. <div class="box">
  274. <ul>
  275. <li><i><openmrs:message code="Module.help.load"/></i></li>
  276. <c:if test="${fn:length(moduleList) > 0}">
  277. <li><i><openmrs:message code="Module.help.unload"/></i></li>
  278. <li><i><openmrs:message code="Module.help.startStop"/></i></li>
  279. <li><i><openmrs:message code="Module.help.update"/></i></li>
  280. </c:if>
  281. <li><i><openmrs:message code="Module.help.findMore"/></i></li>
  282. </ul>
  283. </div>
  284.  
  285. <%@ include file="/WEB-INF/template/footer.jsp" %>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement