%--
/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
--%>
<%@ include file="/init.jsp" %>
<%
String redirect = ParamUtil.getString(request, "redirect");
long gadgetId = ParamUtil.getLong(request, "gadgetId");
Gadget gadget = null;
try {
gadget = GadgetLocalServiceUtil.getGadget(gadgetId);
}
catch (NoSuchGadgetException nsge) {
}
String portletCategoryNames = StringPool.BLANK;
if (gadget != null) {
portletCategoryNames = gadget.getPortletCategoryNames();
}
String editorGadgetURL = ParamUtil.getString(request, "editorGadgetURL");
boolean editorGadget = false;
String publishGadgetRedirect = StringPool.BLANK;
if (Validator.isNotNull(editorGadgetURL)) {
editorGadget = true;
PortletURL publishGadgetRedirectURL = renderResponse.createRenderURL();
publishGadgetRedirectURL.setParameter("mvcPath", "/editor/publish_gadget_redirect.jsp");
publishGadgetRedirectURL.setWindowState(LiferayWindowState.POP_UP);
publishGadgetRedirect = publishGadgetRedirectURL.toString();
}
%>
function saveGadget() {
submitForm(document.fm);
}
Liferay.Util.focusFormField(document.fm.name);
var selectedPortletCategoryNamesNode = A.one('#portletCategoryNames');
var portletCategoryNames = selectedPortletCategoryNamesNode.val();
var selectedPortletCategoryNames = [];
if (portletCategoryNames) {
selectedPortletCategoryNames = portletCategoryNames.split(',');
}
var CategoryTreeNode = A.Component.create(
{
ATTRS: {
category: {
value: ''
}
},
EXTENDS: A.TreeNodeCheck,
NAME: 'CategoryTreeNode'
}
);
var onCheckedChange = function(event) {
var category = event.target.get('category')
if (event.newVal) {
if (A.Array.indexOf(selectedPortletCategoryNames, category) == -1) {
selectedPortletCategoryNames.push(category);
selectedPortletCategoryNamesNode.val(selectedPortletCategoryNames.join());
}
}
else {
A.Array.removeItem(selectedPortletCategoryNames, category);
selectedPortletCategoryNamesNode.val(selectedPortletCategoryNames.join());
}
};
var treeView = new A.TreeView(
{
boundingBox: '#categoryTreeView',
on: {
'*:checkedChange': onCheckedChange
},
type: 'normal'
}
).render();
<%
PortletLister portletLister = PortletListerFactoryUtil.getPortletLister();
portletLister.setIteratePortlets(false);
portletLister.setThemeDisplay(themeDisplay);
portletLister.setUser(user);
TreeView treeView = portletLister.getTreeView();
for (TreeNodeView treeNodeView : treeView.getList()) {
%>
var category = '<%= treeNodeView.getObjId() %>';
var checked = ((<%= gadget == null %> && category == 'root//category.gadgets') || A.Array.indexOf(selectedPortletCategoryNames, category) > -1);
var categoryTreeNode = new CategoryTreeNode(
{
alwaysShowHitArea: false,
checked: checked,
category: category,
id: '<%= treeNodeView.getId() %>',
label: '<%= UnicodeFormatter.toString(LanguageUtil.get(user.getLocale(), treeNodeView.getName())) %>',
leaf: false
}
);
var parentNode = treeView.getNodeById('<%= treeNodeView.getParentId() %>') || treeView;
parentNode.appendChild(categoryTreeNode);
<%
}
%>
treeView.expandAll();
<%
if (gadget == null) {
PortalUtil.addPortletBreadcrumbEntry(request, LanguageUtil.get(pageContext, "publish-gadget"), currentURL);
}
else {
PortalUtil.addPortletBreadcrumbEntry(request, LanguageUtil.get(pageContext, "edit"), currentURL);
}
%>