Guest User

Untitled

a guest
Jul 22nd, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.01 KB | None | 0 0
  1. <%@page import="com.liferay.portlet.PortletURLFactoryUtil"%>
  2. <%@ include file="../init.jsp"%>
  3.  
  4.  
  5. <liferay-portlet:resourceURL copyCurrentRenderParameters="<%= false %>" var="uploadMultipleFileEntries">
  6. <portlet:param name="struts_action" value="/document_library/upload_multiple_file_entries" />
  7. <portlet:param name="repositoryId" value="<%= String.valueOf(themeDisplay.getScopeGroupId())%>" />
  8. <portlet:param name="folderId" value="0" />
  9. </liferay-portlet:resourceURL>
  10.  
  11. <portlet:actionURL var="uploadMultipleFileEntriesURL">
  12. <portlet:param name="struts_action" value="document_library/upload_multiple_file_entries" />
  13. <portlet:param name="backURL" value='<%= PortletURLFactoryUtil.create(renderRequest, themeDisplay.getPortletDisplay().getId(), themeDisplay.getLayout().getPlid(), "RENDER_PHASE").toString() %>' />
  14. </portlet:actionURL>
  15.  
  16. <c:choose>
  17. <c:when test="<%= true %>">
  18. <aui:row>
  19. <aui:col width="70">
  20. <aui:form name="fm1">
  21. <div class="lfr-dynamic-uploader">
  22. <div class="lfr-upload-container" id="<portlet:namespace />fileUpload"></div>
  23. </div>
  24. </aui:form>
  25.  
  26. <%
  27. Date expirationDate = new Date(System.currentTimeMillis() + 30 * Time.MINUTE);
  28.  
  29. Ticket ticket = TicketLocalServiceUtil.addTicket(user.getCompanyId(), User.class.getName(), user.getUserId(), TicketConstants.TYPE_IMPERSONATE, null, expirationDate, new ServiceContext());
  30. %>
  31.  
  32. <aui:script use="liferay-upload">
  33. new Liferay.Upload(
  34. {
  35. boundingBox: '#<portlet:namespace />fileUpload',
  36. deleteFile: '<liferay-portlet:actionURL doAsUserId="<%= user.getUserId() %>"><portlet:param name="struts_action" value="/document_library/upload_multiple_file_entries" /><portlet:param name="<%= Constants.CMD %>" value="<%= Constants.DELETE_TEMP %>" /><portlet:param name="folderId" value="<%= String.valueOf(DLFolderConstants.DEFAULT_PARENT_FOLDER_ID) %>" /></liferay-portlet:actionURL>&ticketKey=<%= ticket.getKey() %><liferay-ui:input-permissions-params modelName="com.liferay.portlet.documentlibrary.model.DLFileEntryConstants" />',
  37. fileDescription: '<%= StringUtil.merge(PrefsPropsUtil.getStringArray(RequestConstants.FILE_VALID_EXT, StringPool.COMMA)) %>',
  38. maxFileSize: '<%= String.valueOf(PrefsPropsUtil.getLong(RequestConstants.FILE_VALID_SIZE)) %>',
  39. namespace: '<portlet:namespace />',
  40. tempFileURL: {
  41. method: Liferay.Service.bind('/dlapp/get-temp-file-entry-names'),
  42. params: {
  43. groupId: <%= themeDisplay.getScopeGroupId() %>,
  44. folderId: <%= DLFolderConstants.DEFAULT_PARENT_FOLDER_ID %>,
  45. tempFolderName: 'com.liferay.portlet.documentlibrary.action.EditFileEntryAction'
  46. }
  47. },
  48. tempRandomSuffix: '--tempRandomSuffix--',
  49. uploadFile: '<liferay-portlet:actionURL doAsUserId="<%= user.getUserId() %>"><portlet:param name="struts_action" value="/document_library/upload_multiple_file_entries" /><portlet:param name="<%= Constants.CMD %>" value="<%= Constants.ADD_TEMP %>" /><portlet:param name="folderId" value="0" /></liferay-portlet:actionURL>&ticketKey=<%= ticket.getKey() %>'
  50. }
  51. );
  52. </aui:script>
  53. </aui:col>
  54. <aui:col width="30">
  55. <div class="common-file-metadata-container selected" id="<portlet:namespace />commonFileMetadataContainer">
  56. <aui:form method="post" action="<%=uploadMultipleFileEntriesURL %>" name="fm2" onSubmit='<%="event.preventDefault(); " + liferayPortletResponse.getNamespace() + "updateMultipleFiles();" %>'>
  57. <aui:input name="<%= Constants.CMD %>" type="hidden" value="<%= Constants.ADD_MULTIPLE %>" />
  58. <aui:input name="repositoryId" type="hidden" value="<%= String.valueOf(themeDisplay.getScopeGroupId()) %>" />
  59. <aui:input name="folderId" type="hidden" value="0" />
  60. <div class="no-files-selected-info alert alert-info hide" id="<portlet:namespace />metadataExplanationContainer">
  61. <liferay-ui:message key="select-documents-from-the-left-to-add-them-to-the-documents-and-media" />
  62. </div>
  63.  
  64. <liferay-ui:panel-container extended="<%= false %>" id="documentLibraryAssetPanelContainer" persistState="<%= true %>">
  65. <div class="selected-files-count">
  66. <liferay-ui:message key="no-files-selected" />
  67. </div>
  68. </liferay-ui:panel-container>
  69.  
  70. <span id="<portlet:namespace />selectedFileNameContainer"></span>
  71.  
  72. <aui:button type="submit" value="Save" cssClass="" />
  73. </aui:form>
  74. </div>
  75. <aui:script>
  76. Liferay.provide(window, '<portlet:namespace />updateMultipleFiles',
  77. function() {
  78. var A = AUI();
  79. var Lang = A.Lang;
  80.  
  81. var commonFileMetadataContainer = A.one('#<portlet:namespace />commonFileMetadataContainer');
  82. var selectedFileNameContainer = A.one('#<portlet:namespace />selectedFileNameContainer');
  83.  
  84. var inputTpl = '<input id="<portlet:namespace />selectedFileName{0}" name="<portlet:namespace />selectedFileName" type="hidden" value="{1}" />';
  85.  
  86. var values = A.all('input[name=<portlet:namespace />selectUploadedFileCheckbox]:checked').val();
  87.  
  88. var buffer = [];
  89. var dataBuffer = [];
  90. var length = values.length;
  91.  
  92. for (var i = 0; i < length; i++) {
  93. dataBuffer[0] = i;
  94. dataBuffer[1] = values[i];
  95.  
  96. buffer[i] = Lang.sub(inputTpl, dataBuffer);
  97. }
  98.  
  99. selectedFileNameContainer.html(buffer.join(''));
  100.  
  101. commonFileMetadataContainer.plug(A.LoadingMask);
  102.  
  103. commonFileMetadataContainer.loadingmask.show();
  104.  
  105. A.io.request(
  106. document.<portlet:namespace />fm2.action,
  107. {
  108. dataType: 'json',
  109. form: {
  110. id: document.<portlet:namespace />fm2
  111. },
  112. after: {
  113. success: function(event, id, obj) {
  114. var items = A.all('input[data-fileName]');
  115. console.log(items);
  116. for (var i = 0; i < items.size(); i++) {
  117. var item = item.get(i);
  118. var li = item.ancestor();
  119.  
  120. item.remove(true);
  121.  
  122. li.removeClass('selectable').removeClass('selected');
  123.  
  124. var cssClass = null;
  125. var childHTML = null;
  126.  
  127. if (item.added) {
  128. cssClass = 'file-saved';
  129.  
  130. var originalFileName = item;
  131.  
  132. var pos = originalFileName.indexOf('--tempRandomSuffix--');
  133.  
  134. if (pos != -1) {
  135. originalFileName = originalFileName.substr(0, pos);
  136. }
  137.  
  138. if (originalFileName === item.fileName) {
  139. childHTML = '<span class="success-message"><%= UnicodeLanguageUtil.get(pageContext, "successfully-saved") %></span>';
  140. }
  141. else {
  142. childHTML = '<span class="success-message"><%= UnicodeLanguageUtil.get(pageContext, "successfully-saved") %> (' + item.fileName + ')</span>';
  143. }
  144. }
  145. else {
  146. cssClass = 'upload-error';
  147.  
  148. childHTML = '<span class="error-message">' + item.errorMessage + '</span>';
  149. }
  150.  
  151. li.addClass(cssClass);
  152. li.append(childHTML);
  153. }
  154.  
  155.  
  156.  
  157. if (commonFileMetadataContainer.io) {
  158. commonFileMetadataContainer.io.start();
  159. }
  160. else {
  161. commonFileMetadataContainer.load('<%= uploadMultipleFileEntries %>');
  162. }
  163.  
  164. Liferay.fire('filesSaved');
  165. },
  166. failure: function(event, id, obj) {
  167. var selectedItems = A.all('#<portlet:namespace />fileUpload li.selected');
  168.  
  169. selectedItems.removeClass('selectable').removeClass('selected').addClass('upload-error');
  170.  
  171. selectedItems.append('<span class="error-message"><%= UnicodeLanguageUtil.get(pageContext, "an-unexpected-error-occurred-while-deleting-the-file") %></span>');
  172.  
  173. selectedItems.all('input').remove(true);
  174.  
  175. commonFileMetadataContainer.loadingmask.hide();
  176. }
  177. }
  178. }
  179. );
  180. },
  181. ['aui-base']
  182. );
  183. </aui:script>
  184.  
  185. </aui:col>
  186. </aui:row>
  187. </c:when>
  188.  
  189. <c:otherwise>
  190. <div class="alert alert-error">
  191. <liferay-ui:message key="you-do-not-have-the-required-permissions-to-access-this-application" />
  192. </div>
  193. </c:otherwise>
  194.  
  195. </c:choose>
Add Comment
Please, Sign In to add comment