PageRenderTime 34ms CodeModel.GetById 27ms RepoModel.GetById 0ms app.codeStats 0ms

/modules/apps/dynamic-data-lists/dynamic-data-lists-web/src/main/resources/META-INF/resources/configuration.jsp

https://github.com/ealonso/liferay-portal
JavaServer Pages | 309 lines | 235 code | 61 blank | 13 comment | 22 complexity | 0d1965db3582786b8fd830c4ec1350b7 MD5 | raw file
  1. <%--
  2. /**
  3. * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
  4. *
  5. * This library is free software; you can redistribute it and/or modify it under
  6. * the terms of the GNU Lesser General Public License as published by the Free
  7. * Software Foundation; either version 2.1 of the License, or (at your option)
  8. * any later version.
  9. *
  10. * This library is distributed in the hope that it will be useful, but WITHOUT
  11. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  12. * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
  13. * details.
  14. */
  15. --%>
  16. <%@ include file="/init.jsp" %>
  17. <%
  18. int cur = ParamUtil.getInteger(request, SearchContainer.DEFAULT_CUR_PARAM);
  19. String keywords = ParamUtil.getString(request, "keywords");
  20. long displayDDMTemplateId = PrefsParamUtil.getLong(PortletPreferencesFactoryUtil.getPortletSetup(renderRequest), renderRequest, "displayDDMTemplateId");
  21. boolean editable = PrefsParamUtil.getBoolean(PortletPreferencesFactoryUtil.getPortletSetup(renderRequest), renderRequest, "editable", true);
  22. boolean formView = PrefsParamUtil.getBoolean(PortletPreferencesFactoryUtil.getPortletSetup(renderRequest), renderRequest, "formView", false);
  23. long formDDMTemplateId = PrefsParamUtil.getLong(PortletPreferencesFactoryUtil.getPortletSetup(renderRequest), renderRequest, "formDDMTemplateId");
  24. long recordSetId = PrefsParamUtil.getLong(PortletPreferencesFactoryUtil.getPortletSetup(renderRequest), renderRequest, "recordSetId");
  25. boolean spreadsheet = PrefsParamUtil.getBoolean(PortletPreferencesFactoryUtil.getPortletSetup(renderRequest), renderRequest, "spreadsheet");
  26. Group scopeGroup = themeDisplay.getScopeGroup();
  27. if (scopeGroup.isStagingGroup() && !scopeGroup.isInStagingPortlet(DDLPortletKeys.DYNAMIC_DATA_LISTS)) {
  28. scopeGroupId = scopeGroup.getLiveGroupId();
  29. }
  30. long[] templateGroupIds = PortalUtil.getCurrentAndAncestorSiteGroupIds(scopeGroupId);
  31. DDLRecordSet selRecordSet = DDLRecordSetServiceUtil.fetchRecordSet(recordSetId);
  32. String orderByCol = ParamUtil.getString(request, "orderByCol", "modified-date");
  33. String orderByType = ParamUtil.getString(request, "orderByType", "asc");
  34. %>
  35. <liferay-portlet:actionURL portletConfiguration="<%= true %>" var="configurationActionURL" />
  36. <liferay-portlet:renderURL portletConfiguration="<%= true %>" varImpl="configurationRenderURL" />
  37. <div class="portlet-configuration-body-content">
  38. <liferay-ui:tabs
  39. names='<%= (selRecordSet == null) ? "lists" : "lists,optional-configuration" %>'
  40. refresh="<%= false %>"
  41. >
  42. <aui:form action="<%= configurationRenderURL %>" method="post" name="fm1">
  43. <aui:input name="redirect" type="hidden" value="<%= configurationRenderURL.toString() %>" />
  44. <liferay-ui:section>
  45. <clay:container-fluid>
  46. <div class="alert alert-info">
  47. <span class="displaying-help-message-holder <%= (selRecordSet == null) ? StringPool.BLANK : "hide" %>">
  48. <liferay-ui:message key="please-select-a-list-entry-from-the-list-below" />
  49. </span>
  50. <span class="displaying-record-set-id-holder <%= (selRecordSet == null) ? "hide" : StringPool.BLANK %>">
  51. <liferay-ui:message key="displaying-list" />: <span class="displaying-record-set-id"><%= (selRecordSet != null) ? HtmlUtil.escape(selRecordSet.getName(locale)) : StringPool.BLANK %></span>
  52. </span>
  53. </div>
  54. <aui:fieldset>
  55. <div class="lfr-ddl-content">
  56. <clay:sheet>
  57. <liferay-ui:search-container
  58. emptyResultsMessage="no-lists-were-found"
  59. iteratorURL="<%= configurationRenderURL %>"
  60. total="<%= DDLRecordSetServiceUtil.searchCount(company.getCompanyId(), scopeGroupId, keywords, DDLRecordSetConstants.SCOPE_DYNAMIC_DATA_LISTS) %>"
  61. >
  62. <div class="form-search input-append">
  63. <liferay-ui:input-search
  64. autoFocus="<%= true %>"
  65. placeholder='<%= LanguageUtil.get(request, "keywords") %>'
  66. />
  67. </div>
  68. <liferay-ui:search-container-results
  69. results="<%= DDLRecordSetServiceUtil.search(company.getCompanyId(), scopeGroupId, keywords, DDLRecordSetConstants.SCOPE_DYNAMIC_DATA_LISTS, searchContainer.getStart(), searchContainer.getEnd(), getDDLRecordSetOrderByComparator(orderByCol, orderByType)) %>"
  70. />
  71. <liferay-ui:search-container-row
  72. className="com.liferay.dynamic.data.lists.model.DDLRecordSet"
  73. escapedModel="<%= true %>"
  74. keyProperty="recordSetId"
  75. modelVar="recordSet"
  76. >
  77. <%
  78. StringBundler sb = new StringBundler(7);
  79. sb.append("javascript:");
  80. sb.append(liferayPortletResponse.getNamespace());
  81. sb.append("selectRecordSet('");
  82. sb.append(recordSet.getRecordSetId());
  83. sb.append("','");
  84. sb.append(HtmlUtil.escapeJS(recordSet.getName(locale)));
  85. sb.append("');");
  86. String rowURL = sb.toString();
  87. %>
  88. <liferay-ui:search-container-column-text
  89. href="<%= rowURL %>"
  90. name="name"
  91. orderable="<%= false %>"
  92. value="<%= recordSet.getName(locale) %>"
  93. />
  94. <liferay-ui:search-container-column-text
  95. href="<%= rowURL %>"
  96. name="description"
  97. orderable="<%= false %>"
  98. value="<%= StringUtil.shorten(recordSet.getDescription(locale), 100) %>"
  99. />
  100. <liferay-ui:search-container-column-date
  101. href="<%= rowURL %>"
  102. name="modified-date"
  103. orderable="<%= false %>"
  104. value="<%= recordSet.getModifiedDate() %>"
  105. />
  106. </liferay-ui:search-container-row>
  107. <hr class="separator" />
  108. <liferay-ui:search-iterator
  109. searchResultCssClass="show-quick-actions-on-hover table table-autofit"
  110. />
  111. </liferay-ui:search-container>
  112. </clay:sheet>
  113. </div>
  114. </aui:fieldset>
  115. </clay:container-fluid>
  116. </liferay-ui:section>
  117. </aui:form>
  118. <aui:form action="<%= configurationActionURL %>" method="post" name="fm">
  119. <aui:input name="<%= Constants.CMD %>" type="hidden" value="<%= Constants.UPDATE %>" />
  120. <aui:input name="redirect" type="hidden" value='<%= configurationRenderURL.toString() + StringPool.AMPERSAND + liferayPortletResponse.getNamespace() + "cur" + cur %>' />
  121. <aui:input name="preferences--recordSetId--" type="hidden" value="<%= recordSetId %>" />
  122. <c:if test="<%= selRecordSet != null %>">
  123. <liferay-ui:section>
  124. <clay:container-fluid>
  125. <div class="alert alert-info">
  126. <span class="displaying-record-set-id-holder <%= (selRecordSet == null) ? "hide" : StringPool.BLANK %>">
  127. <liferay-ui:message key="displaying-list" />: <span class="displaying-record-set-id"><%= (selRecordSet != null) ? HtmlUtil.escape(selRecordSet.getName(locale)) : StringPool.BLANK %></span>
  128. </span>
  129. </div>
  130. <aui:fieldset>
  131. <div class="lfr-ddl-content">
  132. <clay:sheet>
  133. <aui:select helpMessage="select-the-display-template-used-to-display-the-list-records" label="display-template" name="preferences--displayDDMTemplateId--">
  134. <aui:option label="default" value="<%= 0 %>" />
  135. <%
  136. List<DDMTemplate> templates = new ArrayList<DDMTemplate>();
  137. for (long templateGroupId : templateGroupIds) {
  138. List<DDMTemplate> displayTemplates = DDMTemplateLocalServiceUtil.getTemplates(templateGroupId, PortalUtil.getClassNameId(DDMStructure.class), selRecordSet.getDDMStructureId(), DDMTemplateConstants.TEMPLATE_TYPE_DISPLAY);
  139. templates.addAll(displayTemplates);
  140. }
  141. for (DDMTemplate template : templates) {
  142. if (!DDMTemplatePermission.contains(permissionChecker, template.getTemplateId(), ActionKeys.VIEW)) {
  143. continue;
  144. }
  145. boolean selected = false;
  146. if (displayDDMTemplateId == template.getTemplateId()) {
  147. selected = true;
  148. }
  149. %>
  150. <aui:option label="<%= HtmlUtil.escape(template.getName(locale)) %>" selected="<%= selected %>" value="<%= template.getTemplateId() %>" />
  151. <%
  152. }
  153. %>
  154. </aui:select>
  155. <aui:select helpMessage="select-the-form-template-used-to-add-records-to-the-list" label="form-template" name="preferences--formDDMTemplateId--">
  156. <aui:option label="default" value="<%= 0 %>" />
  157. <%
  158. List<DDMTemplate> templates = new ArrayList<DDMTemplate>();
  159. for (long templateGroupId : templateGroupIds) {
  160. List<DDMTemplate> formTemplates = DDMTemplateLocalServiceUtil.getTemplates(templateGroupId, PortalUtil.getClassNameId(DDMStructure.class), selRecordSet.getDDMStructureId(), DDMTemplateConstants.TEMPLATE_TYPE_FORM, DDMTemplateConstants.TEMPLATE_MODE_CREATE);
  161. templates.addAll(formTemplates);
  162. }
  163. for (DDMTemplate template : templates) {
  164. if (!DDMTemplatePermission.contains(permissionChecker, template.getTemplateId(), ActionKeys.VIEW)) {
  165. continue;
  166. }
  167. boolean selected = false;
  168. if (formDDMTemplateId == template.getTemplateId()) {
  169. selected = true;
  170. }
  171. %>
  172. <aui:option label="<%= HtmlUtil.escape(template.getName(locale)) %>" selected="<%= selected %>" value="<%= template.getTemplateId() %>" />
  173. <%
  174. }
  175. %>
  176. </aui:select>
  177. <aui:input helpMessage="check-to-allow-users-to-add-records-to-the-list" name="preferences--editable--" type="checkbox" value="<%= editable %>" />
  178. <aui:input helpMessage="check-to-display-the-form-entry-view" label="form-view" name="preferences--formView--" type="checkbox" value="<%= formView %>" />
  179. <aui:input helpMessage="check-to-view-the-list-records-in-a-spreadsheet" label="spreadsheet-view" name="preferences--spreadsheet--" type="checkbox" value="<%= spreadsheet %>" />
  180. </clay:sheet>
  181. </div>
  182. </aui:fieldset>
  183. </clay:container-fluid>
  184. </liferay-ui:section>
  185. </c:if>
  186. </aui:form>
  187. </liferay-ui:tabs>
  188. </div>
  189. <aui:button-row>
  190. <aui:button id="fm_submit" type="submit" />
  191. <aui:button type="cancel" />
  192. </aui:button-row>
  193. <aui:script use="aui-base">
  194. var form = A.one('#<portlet:namespace />fm');
  195. var submitButton = A.one('#<portlet:namespace />fm_submit');
  196. if (submitButton) {
  197. submitButton.on('click', (event) => {
  198. if (form) {
  199. form.submit();
  200. }
  201. });
  202. }
  203. </aui:script>
  204. <aui:script>
  205. window['<portlet:namespace />selectRecordSet'] = function (
  206. recordSetId,
  207. recordSetName
  208. ) {
  209. document.<portlet:namespace />fm.<portlet:namespace />recordSetId.value = recordSetId;
  210. var displayingRecordSetIdHolder = document.querySelector(
  211. '.displaying-record-set-id-holder'
  212. );
  213. displayingRecordSetIdHolder.classList.remove('hide');
  214. displayingRecordSetIdHolder.removeAttribute('hidden');
  215. displayingRecordSetIdHolder.style.display = '';
  216. var displayingHelpMessageHolder = document.querySelector(
  217. '.displaying-help-message-holder'
  218. );
  219. displayingHelpMessageHolder.classList.add('hide');
  220. displayingHelpMessageHolder.setAttribute('hidden', 'hidden');
  221. displayingHelpMessageHolder.style.display = 'none';
  222. var displayRecordSetId = document.querySelector(
  223. '.displaying-record-set-id'
  224. );
  225. displayRecordSetId.innerHTML =
  226. recordSetName + ' (<liferay-ui:message key="modified" />)';
  227. displayRecordSetId.classList.add('modified');
  228. };
  229. </aui:script>
  230. <%!
  231. private OrderByComparator<DDLRecordSet> getDDLRecordSetOrderByComparator(String orderByCol, String orderByType) {
  232. boolean orderByAsc = false;
  233. if (orderByType.equals("asc")) {
  234. orderByAsc = true;
  235. }
  236. OrderByComparator<DDLRecordSet> orderByComparator = null;
  237. if (orderByCol.equals("create-date")) {
  238. orderByComparator = new DDLRecordSetCreateDateComparator(orderByAsc);
  239. }
  240. else if (orderByCol.equals("modified-date")) {
  241. orderByComparator = new DDLRecordSetModifiedDateComparator(orderByAsc);
  242. }
  243. else if (orderByCol.equals("name")) {
  244. orderByComparator = new DDLRecordSetNameComparator(orderByAsc);
  245. }
  246. return orderByComparator;
  247. }
  248. %>