diff --git a/ccm-cms-types-mparticle/src/com/arsdigita/cms/contenttypes/ui/mparticle/MultiPartArticleForm.java b/ccm-cms-types-mparticle/src/com/arsdigita/cms/contenttypes/ui/mparticle/MultiPartArticleForm.java
index 3330be592..958399ecb 100755
--- a/ccm-cms-types-mparticle/src/com/arsdigita/cms/contenttypes/ui/mparticle/MultiPartArticleForm.java
+++ b/ccm-cms-types-mparticle/src/com/arsdigita/cms/contenttypes/ui/mparticle/MultiPartArticleForm.java
@@ -18,7 +18,6 @@
*/
package com.arsdigita.cms.contenttypes.ui.mparticle;
-
import com.arsdigita.bebop.ColumnPanel;
import com.arsdigita.bebop.FormData;
import com.arsdigita.bebop.FormProcessException;
@@ -49,13 +48,13 @@ import com.arsdigita.cms.contenttypes.util.MPArticleGlobalizationUtil;
import com.arsdigita.persistence.DataQuery;
import com.arsdigita.persistence.SessionManager;
import com.arsdigita.util.Assert;
+import com.arsdigita.web.Web;
import com.arsdigita.xml.Element;
import org.apache.log4j.Logger;
import javax.servlet.ServletException;
import java.util.Date;
-
/**
* A form for editing MultiPartArticle and subclasses.
*
@@ -63,27 +62,27 @@ import java.util.Date;
* @version $id$
*/
public abstract class MultiPartArticleForm extends FormSection
- implements FormInitListener,
- FormProcessListener,
- FormValidationListener {
+ implements FormInitListener,
+ FormProcessListener,
+ FormValidationListener {
protected ItemSelectionModel m_itemModel;
- protected SaveCancelSection m_saveCancelSection;
+ protected SaveCancelSection m_saveCancelSection;
- public static final String NAME = "name";
- public static final String TITLE = "title";
+ public static final String NAME = "name";
+ public static final String TITLE = "title";
public static final String SUMMARY = "summary";
public static final String LAUNCH_DATE = ContentPage.LAUNCH_DATE;
public static final String LANGUAGE = ContentItem.LANGUAGE;
private static final Logger s_log = Logger.getLogger(MultiPartArticleForm.class);
- public MultiPartArticleForm ( String formName, ItemSelectionModel itemModel ) {
+ public MultiPartArticleForm(String formName, ItemSelectionModel itemModel) {
super(new ColumnPanel(2));
m_itemModel = itemModel;
- ColumnPanel panel = (ColumnPanel)getPanel();
+ ColumnPanel panel = (ColumnPanel) getPanel();
panel.setBorder(false);
panel.setPadColor("#FFFFFF");
panel.setColumnWidth(1, "20%");
@@ -99,57 +98,55 @@ public abstract class MultiPartArticleForm extends FormSection
addValidationListener(this);
}
-
- public void addSaveCancelSection () {
+ public void addSaveCancelSection() {
m_saveCancelSection = new SaveCancelSection();
add(m_saveCancelSection, ColumnPanel.FULL_WIDTH | ColumnPanel.LEFT);
}
-
- public SaveCancelSection getSaveCancelSection () {
+ public SaveCancelSection getSaveCancelSection() {
return m_saveCancelSection;
}
+ private Label m_script = new Label(String.format(
+ "",
+ Web.getWebappContextPath()),
+ false);
- private Label m_script = new Label("", false);
-
-
-
- protected void addWidgets () {
+ protected void addWidgets() {
add(new Label(GlobalizationUtil
- .globalize("cms.contenttypes.ui.title")));
+ .globalize("cms.contenttypes.ui.title")));
TextField titleWidget = new TextField(new TrimmedStringParameter(TITLE));
titleWidget.addValidationListener(new NotNullValidationListener());
- titleWidget.setOnFocus("if (this.form." + NAME + ".value == '') { " +
- " defaulting = true; this.form." + NAME +
- ".value = urlize(this.value); }");
+ titleWidget.setOnFocus("if (this.form." + NAME + ".value == '') { "
+ + " defaulting = true; this.form." + NAME
+ + ".value = urlize(this.value); }");
titleWidget.setOnKeyUp(
- "if (defaulting) { this.form." + NAME +
- ".value = urlize(this.value) }"
- );
+ "if (defaulting) { this.form." + NAME + ".value = urlize(this.value) }"
+ );
add(titleWidget);
add(new Label(GlobalizationUtil
- .globalize("cms.contenttypes.ui.name")));
+ .globalize("cms.contenttypes.ui.name")));
TextField nameWidget = new TextField(new TrimmedStringParameter(NAME));
nameWidget.addValidationListener(new NotNullValidationListener());
nameWidget.addValidationListener(new URLTokenValidationListener());
nameWidget.setOnFocus("defaulting = false");
nameWidget.setOnBlur(
- "if (this.value == '') " +
- "{ defaulting = true; this.value = urlize(this.form." + TITLE +
- ".value) }"
- );
+ "if (this.value == '') " + "{ defaulting = true; this.value = urlize(this.form." + TITLE
+ + ".value) }"
+ );
add(nameWidget);
if (!ContentSection.getConfig().getHideLaunchDate()) {
add(new Label(GlobalizationUtil
- .globalize("cms.ui.authoring.page_launch_date")));
+ .globalize("cms.ui.authoring.page_launch_date")));
ParameterModel launchDateParam = new DateParameter(LAUNCH_DATE);
com.arsdigita.bebop.form.Date launchDate
- = new com.arsdigita.bebop.form.Date(launchDateParam);
+ = new com.arsdigita.bebop.form.Date(launchDateParam);
if (ContentSection.getConfig().getRequireLaunchDate()) {
- launchDate.addValidationListener(new NotNullValidationListener(MPArticleGlobalizationUtil.globalize("cms.contenttypes.ui.mparticle.no_launch_date")));
+ launchDate.addValidationListener(new NotNullValidationListener(
+ MPArticleGlobalizationUtil.globalize(
+ "cms.contenttypes.ui.mparticle.no_launch_date")));
// if launch date is required, help user by suggesting today's date
launchDateParam.setDefaultValue(new Date());
}
@@ -157,38 +154,39 @@ public abstract class MultiPartArticleForm extends FormSection
}
add(new Label(GlobalizationUtil
- .globalize("cms.contenttypes.ui.summary")));
+ .globalize("cms.contenttypes.ui.summary")));
TextArea summaryWidget = new TextArea(new TrimmedStringParameter(SUMMARY));
if (ContentSection.getConfig().mandatoryDescriptions()) {
summaryWidget
- .addValidationListener(new
- NotEmptyValidationListener(GlobalizationUtil
+ .addValidationListener(new NotEmptyValidationListener(GlobalizationUtil
.globalize("cms.contenttypes.ui.description_missing")));
- }
+ }
summaryWidget.setRows(5);
summaryWidget.setCols(30);
summaryWidget.setHint(GlobalizationUtil.globalize(
- "cms.contenttypes.ui.summary_hint"));
+ "cms.contenttypes.ui.summary_hint"));
add(summaryWidget);
}
- public abstract void init ( FormSectionEvent e ) throws FormProcessException;
- public abstract void process ( FormSectionEvent e ) throws FormProcessException;
- public abstract void validate ( FormSectionEvent e ) throws FormProcessException;
+ public abstract void init(FormSectionEvent e) throws FormProcessException;
+ public abstract void process(FormSectionEvent e) throws FormProcessException;
- /** Utility method to initialize the name/title/summary widgets */
- public MultiPartArticle initBasicWidgets ( FormSectionEvent e ) {
+ public abstract void validate(FormSectionEvent e) throws FormProcessException;
+
+ /**
+ * Utility method to initialize the name/title/summary widgets
+ */
+ public MultiPartArticle initBasicWidgets(FormSectionEvent e) {
Assert.exists(m_itemModel, ItemSelectionModel.class);
- FormData data = e.getFormData();
- PageState state = e.getPageState();
- MultiPartArticle article =
- (MultiPartArticle)m_itemModel.getSelectedObject(state);
+ FormData data = e.getFormData();
+ PageState state = e.getPageState();
+ MultiPartArticle article = (MultiPartArticle) m_itemModel.getSelectedObject(state);
- if ( article != null ) {
- data.put(NAME, article.getName());
- data.put(TITLE, article.getTitle());
+ if (article != null) {
+ data.put(NAME, article.getName());
+ data.put(TITLE, article.getTitle());
if (!ContentSection.getConfig().getHideLaunchDate()) {
data.put(LAUNCH_DATE, article.getLaunchDate());
}
@@ -198,23 +196,23 @@ public abstract class MultiPartArticleForm extends FormSection
return article;
}
-
-
- /** Utility method to process the name/title/summary widgets */
- public MultiPartArticle processBasicWidgets ( FormSectionEvent e ) {
+ /**
+ * Utility method to process the name/title/summary widgets
+ */
+ public MultiPartArticle processBasicWidgets(FormSectionEvent e) {
Assert.exists(m_itemModel, ItemSelectionModel.class);
FormData data = e.getFormData();
PageState state = e.getPageState();
- MultiPartArticle article = (MultiPartArticle)m_itemModel.getSelectedObject(state);
+ MultiPartArticle article = (MultiPartArticle) m_itemModel.getSelectedObject(state);
- if ( article != null ) {
- article.setName((String)data.get(NAME));
- article.setTitle((String)data.get(TITLE));
+ if (article != null) {
+ article.setName((String) data.get(NAME));
+ article.setTitle((String) data.get(TITLE));
if (!ContentSection.getConfig().getHideLaunchDate()) {
- article.setLaunchDate((Date)data.get(LAUNCH_DATE));
+ article.setLaunchDate((Date) data.get(LAUNCH_DATE));
}
- article.setSummary((String)data.get(SUMMARY));
+ article.setSummary((String) data.get(SUMMARY));
}
return article;
@@ -224,16 +222,16 @@ public abstract class MultiPartArticleForm extends FormSection
* Ensure that the name of an item is unique within a folder.
*
* @param folder the folder in which to check
- * @param event the FormSectionEvent which was passed to the
- * validation listener
+ * @param event the FormSectionEvent which was passed to the validation listener
+ *
* @return true if the name is not null and unique, false otherwise
*/
- public boolean validateNameUniqueness ( Folder folder, FormSectionEvent event) {
+ public boolean validateNameUniqueness(Folder folder, FormSectionEvent event) {
FormData data = event.getFormData();
- String name = (String)data.get(NAME);
+ String name = (String) data.get(NAME);
- if ( name != null ) {
+ if (name != null) {
final String query = "com.arsdigita.cms.validateUniqueItemName";
DataQuery dq = SessionManager.getSession().retrieveQuery(query);
dq.setParameter("parentId", folder.getID());
@@ -246,33 +244,29 @@ public abstract class MultiPartArticleForm extends FormSection
return false;
}
-
-
/**
- * Utility method to create a new MultiPartArticle and update the
- * selected model. This can be called in the process method of a
- * ProcessListener.
+ * Utility method to create a new MultiPartArticle and update the selected model. This can be
+ * called in the process method of a ProcessListener.
*
* @param state the current page state
+ *
* @return the new content item (or a proper subclass)
*/
- public MultiPartArticle createArticle ( PageState state )
- throws FormProcessException
- {
+ public MultiPartArticle createArticle(PageState state)
+ throws FormProcessException {
Assert.exists(m_itemModel, ItemSelectionModel.class);
MultiPartArticle article = null;
try {
- article = (MultiPartArticle)m_itemModel.createItem();
- } catch(ServletException e) {
+ article = (MultiPartArticle) m_itemModel.createItem();
+ } catch (ServletException e) {
s_log.error("Servlet Exception: " + e.getMessage(), e);
throw new FormProcessException(e.getMessage(), e);
}
-
- if ( m_itemModel.getSelectedKey(state) == null ) {
+ if (m_itemModel.getSelectedKey(state) == null) {
m_itemModel.setSelectedObject(state, article);
}
@@ -284,6 +278,4 @@ public abstract class MultiPartArticleForm extends FormSection
super.generateXML(ps, parent);
}
-
-
}
diff --git a/ccm-cms/src/com/arsdigita/cms/portlet/ContentItemJSRPortlet.java b/ccm-cms/src/com/arsdigita/cms/portlet/ContentItemJSRPortlet.java
index f6bcb36a4..88e1a1b1c 100644
--- a/ccm-cms/src/com/arsdigita/cms/portlet/ContentItemJSRPortlet.java
+++ b/ccm-cms/src/com/arsdigita/cms/portlet/ContentItemJSRPortlet.java
@@ -24,6 +24,7 @@ import com.arsdigita.portal.JSRPortlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.portlet.PortletException;
+import javax.portlet.PortletRequestDispatcher;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
@@ -57,9 +58,11 @@ public class ContentItemJSRPortlet extends JSRPortlet {
@Override
protected void doEdit(RenderRequest request, RenderResponse response)
throws PortletException, IOException {
- response.setContentType("text/html");
- PrintWriter writer = new PrintWriter(response.getWriter());
- writer.println("You're now in Edit mode.");
+ //response.setContentType("text/html");
+ //PrintWriter writer = new PrintWriter(response.getWriter());
+ //writer.println("You're now in Edit mode.");
+ PortletRequestDispatcher dispatcher = getPortletContext().getRequestDispatcher("/templates/portlets/ContentItemJSRPortletAdmin.jsp");
+ dispatcher.include(request, response);
}
/**
diff --git a/ccm-cms/src/com/arsdigita/cms/ui/authoring/BasicItemForm.java b/ccm-cms/src/com/arsdigita/cms/ui/authoring/BasicItemForm.java
index 3afe0bacb..07fe309c8 100755
--- a/ccm-cms/src/com/arsdigita/cms/ui/authoring/BasicItemForm.java
+++ b/ccm-cms/src/com/arsdigita/cms/ui/authoring/BasicItemForm.java
@@ -46,6 +46,7 @@ import static com.arsdigita.cms.util.GlobalizationUtil.globalize;
import com.arsdigita.globalization.GlobalizedMessage;
import com.arsdigita.persistence.DataQuery;
import com.arsdigita.persistence.SessionManager;
+import com.arsdigita.web.Web;
import com.arsdigita.xml.Element;
import org.apache.log4j.Logger;
@@ -145,8 +146,9 @@ public abstract class BasicItemForm extends FormSection
/**
* Currently, to insert javascript code the Label Widget is "abused".
*/
- private final Label m_script = new Label(
- "",
+ private final Label m_script = new Label(String.format(
+ "",
+ Web.getWebappContextPath()),
false);
/**
diff --git a/ccm-cms/src/com/arsdigita/cms/ui/category/BaseCategoryForm.java b/ccm-cms/src/com/arsdigita/cms/ui/category/BaseCategoryForm.java
index 9f865ad97..780f5c8ab 100755
--- a/ccm-cms/src/com/arsdigita/cms/ui/category/BaseCategoryForm.java
+++ b/ccm-cms/src/com/arsdigita/cms/ui/category/BaseCategoryForm.java
@@ -34,6 +34,7 @@ import com.arsdigita.categorization.Category;
import com.arsdigita.categorization.CategoryCollection;
import com.arsdigita.cms.ui.BaseForm;
import com.arsdigita.globalization.GlobalizedMessage;
+import com.arsdigita.web.Web;
import com.arsdigita.xml.Element;
import org.apache.log4j.Logger;
@@ -57,8 +58,9 @@ class BaseCategoryForm extends BaseForm {
final RadioGroup m_isAbstract;
final RadioGroup m_isVisible;
final RadioGroup m_isEnabled;
- private Label m_script = new Label(
- "",
+ private Label m_script = new Label(String.format(
+ "",
+ Web.getWebappContextPath()),
false);
private final static String NAME = "name";
private final static String DESCRIPTION = "description";
diff --git a/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryLocalizationForm.java b/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryLocalizationForm.java
index 650e3cf11..a4e09a9c5 100644
--- a/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryLocalizationForm.java
+++ b/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryLocalizationForm.java
@@ -40,95 +40,96 @@ import com.arsdigita.categorization.CategoryCollection;
import com.arsdigita.cms.ui.BaseForm;
import com.arsdigita.cms.util.GlobalizationUtil;
import com.arsdigita.globalization.GlobalizedMessage;
+import com.arsdigita.web.Web;
import com.arsdigita.xml.Element;
/**
* Base class for CategoryLocalizationAddForm and CategoryLocalizationEditForm.
*
- * This class is part of the admin GUI of CCM and extends the standard form
- * in order to present forms for managing the multi-language categories.
+ * This class is part of the admin GUI of CCM and extends the standard form in order to present
+ * forms for managing the multi-language categories.
*
* @author Sören Bernstein
* @version $Id: $
*/
public class CategoryLocalizationForm extends BaseForm {
-
+
final CategoryRequestLocal m_category;
final SingleSelect m_locale;
final TextField m_name;
final TextArea m_description;
final TextField m_url;
final RadioGroup m_isEnabled;
- private Label m_script = new Label(
- "", false);
-
- private final static String LOCALE = "locale";
- private final static String NAME = "name";
+ private Label m_script = new Label(String.format(
+ "",
+ Web.getWebappContextPath()),
+ false);
+
+ private final static String LOCALE = "locale";
+ private final static String NAME = "name";
private final static String DESCRIPTION = "description";
- private final static String URL = "url";
- private final static String IS_ENABLED = "isEnabled";
-
- /**
+ private final static String URL = "url";
+ private final static String IS_ENABLED = "isEnabled";
+
+ /**
* Creates a new instance of CategoryLocalizationForm.
*
*/
public CategoryLocalizationForm(final String key,
- final GlobalizedMessage heading,
- final CategoryRequestLocal category) {
-
+ final GlobalizedMessage heading,
+ final CategoryRequestLocal category) {
+
super(key, heading);
-
+
m_category = category;
-
+
// Parameter-Model for SingleSelect
ParameterModel localeParam = new StringParameter(LOCALE);
localeParam.addParameterListener(new StringInRangeValidationListener(0, 2));
-
- m_locale = new SingleSelect(localeParam);
+
+ m_locale = new SingleSelect(localeParam);
m_locale.addValidationListener(new ParameterListener() {
-
+
public void validate(ParameterEvent e) throws FormProcessException {
-
+
// the --select one-- option is not allowed
ParameterData data = e.getParameterData();
- String code = (String) data.getValue() ;
+ String code = (String) data.getValue();
if (code == null || code.length() == 0) {
data.addError(
- (String)GlobalizationUtil.globalize(
+ (String) GlobalizationUtil.globalize(
"cms.ui.category.localization_error_locale").localize());
}
}
+
});
-
+
addField(gz("cms.ui.category.localization_locale"), m_locale);
-
+
m_name = new TextField(new TrimmedStringParameter(NAME));
addField(gz("cms.ui.name"), m_name);
-
+
m_name.setSize(30);
m_name.setMaxLength(200);
m_name.addValidationListener(new NotNullValidationListener());
- m_name.setOnFocus("if (this.form." + URL + ".value == '') { " +
- " defaulting = true; this.form." + URL +
- ".value = urlize(this.value); }");
- m_name.setOnKeyUp("if (defaulting) { this.form." + URL +
- ".value = urlize(this.value) }");
-
+ m_name.setOnFocus("if (this.form." + URL + ".value == '') { "
+ + " defaulting = true; this.form." + URL
+ + ".value = urlize(this.value); }");
+ m_name.setOnKeyUp("if (defaulting) { this.form." + URL + ".value = urlize(this.value) }");
+
// is enabled?
m_isEnabled = new RadioGroup(IS_ENABLED);
m_isEnabled.addOption(new Option("no", new Label(gz("cms.ui.no"))));
m_isEnabled.addOption(new Option("yes", new Label(gz("cms.ui.yes"))));
- addField(gz("cms.ui.category.is_enabled"),m_isEnabled);
-
- m_description = new TextArea
- (new TrimmedStringParameter(DESCRIPTION));
+ addField(gz("cms.ui.category.is_enabled"), m_isEnabled);
+
+ m_description = new TextArea(new TrimmedStringParameter(DESCRIPTION));
addField(gz("cms.ui.description"), m_description);
-
+
m_description.setWrap(TextArea.SOFT);
m_description.setRows(5);
m_description.setCols(40);
-
+
// URL
// JavaScript auto-url generation is off by default.
// It is turned on under the following circumstances
@@ -146,45 +147,45 @@ public class CategoryLocalizationForm extends BaseForm {
m_url.setMaxLength(200);
m_url.addValidationListener(new NotNullValidationListener());
m_url.setOnFocus("defaulting = false");
- m_url.setOnBlur("if (this.value == '') " +
- "{ defaulting = true; this.value = urlize(this.form." + NAME +
- ".value) } " +
- "else { this.value = urlize(this.value); }");
- addField(gz("cms.ui.category.url"),m_url);
-
+ m_url.setOnBlur("if (this.value == '') "
+ + "{ defaulting = true; this.value = urlize(this.form." + NAME
+ + ".value) } " + "else { this.value = urlize(this.value); }");
+ addField(gz("cms.ui.category.url"), m_url);
+
addAction(new Finish());
addAction(new Cancel());
-
+
}
-
+
public void generateXML(PageState ps, Element parent) {
m_script.generateXML(ps, parent);
super.generateXML(ps, parent);
}
-
+
/**
* Purpose:
- *
- * XXXToDo: Should be extended with the function:
- * Names have to be unambiguous in the selected language
+ *
+ * XXXToDo: Should be extended with the function: Names have to be unambiguous in the selected
+ * language
*/
class NameUniqueListener implements ParameterListener {
+
private final CategoryRequestLocal m_category;
private final Widget m_widget;
private final int m_type;
public final static int NAME_FIELD = 1;
public final static int URL_FIELD = 2;
-
+
NameUniqueListener(final CategoryRequestLocal category) {
- this(category,m_name,NAME_FIELD);
+ this(category, m_name, NAME_FIELD);
}
+
NameUniqueListener(final CategoryRequestLocal category,
- Widget widget, int type) {
+ Widget widget, int type) {
m_category = category;
m_widget = widget;
m_type = type;
}
-
/**
* Purpose:
@@ -192,28 +193,29 @@ public class CategoryLocalizationForm extends BaseForm {
* XXX provisional, has to be adapted
*
* @param e
+ *
* @throws com.arsdigita.bebop.FormProcessException
*/
public final void validate(final ParameterEvent e)
- throws FormProcessException {
+ throws FormProcessException {
final PageState state = e.getPageState();
final String title = (String) m_widget.getValue(state);
-
+
final Category category = m_category.getCategory(state);
-
+
final CategoryCollection children = category.getChildren();
-
+
while (children.next()) {
final Category child = children.getCategory();
- String compField =
- (m_type == URL_FIELD) ? child.getURL() : child.getName();
+ String compField = (m_type == URL_FIELD) ? child.getURL() : child.getName();
if (compField.equalsIgnoreCase(title)
- && (m_category == null
- || !m_category.getCategory(state).equals(child))) {
- throw new FormProcessException
- (lz("cms.ui.category.name_not_unique"));
+ && (m_category == null
+ || !m_category.getCategory(state).equals(child))) {
+ throw new FormProcessException(lz("cms.ui.category.name_not_unique"));
}
}
}
+
}
+
}
diff --git a/ccm-cms/src/com/arsdigita/cms/ui/folder/FolderBaseForm.java b/ccm-cms/src/com/arsdigita/cms/ui/folder/FolderBaseForm.java
index 8e6979ff6..673b9c5e7 100755
--- a/ccm-cms/src/com/arsdigita/cms/ui/folder/FolderBaseForm.java
+++ b/ccm-cms/src/com/arsdigita/cms/ui/folder/FolderBaseForm.java
@@ -30,11 +30,11 @@ import com.arsdigita.cms.ContentPage;
import com.arsdigita.cms.ui.CMSForm;
import com.arsdigita.cms.util.GlobalizationUtil;
import com.arsdigita.globalization.GlobalizedMessage;
+import com.arsdigita.web.Web;
import org.apache.log4j.Logger;
/**
- * Class FolderForm implements the basic form for creating or renaming
- * folders.
+ * Class FolderForm implements the basic form for creating or renaming folders.
*
* @author Jon Orris <jorris@redhat.com>
* @version $Id: FolderBaseForm.java 1951 2009-06-30 04:35:04Z terry $
@@ -46,29 +46,26 @@ abstract class FolderBaseForm extends CMSForm {
public static final String NAME = ContentItem.NAME;
public static final String TITLE = ContentPage.TITLE;
- private static final String TITLE_ON_FOCUS =
- "if (this.form." + NAME + ".value == '') {" +
- " defaulting = true;" +
- " this.form." + NAME + ".value = urlize(this.value);" +
- "}";
+ private static final String TITLE_ON_FOCUS = "if (this.form." + NAME + ".value == '') {"
+ + " defaulting = true;" + " this.form."
+ + NAME + ".value = urlize(this.value);" + "}";
- private static final String TITLE_ON_KEY_UP =
- "if (defaulting) {" +
- " this.form." + NAME + ".value = urlize(this.value)" +
- "}";
+ private static final String TITLE_ON_KEY_UP = "if (defaulting) {" + " this.form." + NAME
+ + ".value = urlize(this.value)" + "}";
private static final String FRAGMENT_ON_FOCUS = "defaulting = false";
- private static final String FRAGMENT_ON_BLUR =
- "if (this.value == '') {" +
- " defaulting = true;" +
- " this.value = urlize(this.form." + TITLE + ".value)" +
- "} else {" +
- " this.value = urlize(this.value);" +
- "}";
+ private static final String FRAGMENT_ON_BLUR = "if (this.value == '') {"
+ + " defaulting = true;"
+ + " this.value = urlize(this.form." + TITLE
+ + ".value)" + "} else {"
+ + " this.value = urlize(this.value);" + "}";
- private Label m_script = new Label("", false);
-
+ private Label m_script = new Label(
+ String.format(
+ "",
+ Web.getWebappContextPath()),
+ false);
final TextField m_title;
final TextField m_fragment;
@@ -80,7 +77,6 @@ abstract class FolderBaseForm extends CMSForm {
add(m_script, GridPanel.FULL_WIDTH);
// Title
-
add(new Label(gz("cms.ui.folder.name")));
m_title = new TextField(new TrimmedStringParameter(TITLE));
@@ -93,7 +89,6 @@ abstract class FolderBaseForm extends CMSForm {
m_title.setOnKeyUp(TITLE_ON_KEY_UP);
// Fragment
-
add(new Label(gz("cms.ui.folder.fragment")));
m_fragment = new TextField(new TrimmedStringParameter(NAME));
@@ -119,4 +114,5 @@ abstract class FolderBaseForm extends CMSForm {
private static String lz(final String key) {
return (String) gz(key).localize();
}
+
}
diff --git a/ccm-core/src/com/arsdigita/formbuilder/ui/ProcessListenerEditor.java b/ccm-core/src/com/arsdigita/formbuilder/ui/ProcessListenerEditor.java
index ee04c4892..efc9fef11 100755
--- a/ccm-core/src/com/arsdigita/formbuilder/ui/ProcessListenerEditor.java
+++ b/ccm-core/src/com/arsdigita/formbuilder/ui/ProcessListenerEditor.java
@@ -16,7 +16,6 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
-
package com.arsdigita.formbuilder.ui;
import com.arsdigita.bebop.BoxPanel;
@@ -40,7 +39,7 @@ import com.arsdigita.domain.DomainObjectFactory;
import com.arsdigita.formbuilder.PersistentFormSection;
import com.arsdigita.formbuilder.PersistentProcessListener;
import com.arsdigita.formbuilder.util.FormBuilderUtil;
-import com.arsdigita.formbuilder.util.GlobalizationUtil ;
+import com.arsdigita.formbuilder.util.GlobalizationUtil;
import com.arsdigita.persistence.OID;
import com.arsdigita.util.UncheckedWrapperException;
import com.arsdigita.web.RedirectSignal;
@@ -49,10 +48,9 @@ import java.io.IOException;
import java.math.BigDecimal;
/**
- * This class provides a pluggable widget for editing the persistent process
- * listeners for a persistent form.
- * It is designed to be used without requiring any significant
- * infrastructure on a page.
+ * This class provides a pluggable widget for editing the persistent process listeners for a
+ * persistent form. It is designed to be used without requiring any significant infrastructure on a
+ * page.
*/
public class ProcessListenerEditor extends SimpleContainer {
@@ -64,9 +62,8 @@ public class ProcessListenerEditor extends SimpleContainer {
protected ProcessListenerProperties m_edit_action;
/**
- * Constructor, creates a new control editor widget for editing the form
- * specified in the single selection model. The key returned by the single
- * selection model should be an instance of the
+ * Constructor, creates a new control editor widget for editing the form specified in the single
+ * selection model. The key returned by the single selection model should be an instance of the
* {@link java.math.BigDecimal} class.
*
* @param form the form to edit
@@ -78,39 +75,40 @@ public class ProcessListenerEditor extends SimpleContainer {
// Help system is currently not workable
String helpURL = FormBuilderUtil.getConfig().getActionsHelpLink();
if (helpURL != null) {
- add(new Link(new Label(GlobalizationUtil.globalize
- ("formbuilder.ui.help")), helpURL));
+ add(new Link(new Label(GlobalizationUtil.globalize("formbuilder.ui.help")), helpURL));
}
m_newAction = new NewAction(app);
- Table t = new Table(new ProcessListenerTableModelBuilder(m_form),
- new String[] { "Form action", "", "" });
- m_action = new DecimalSingleSelectionModel(t.getRowSelectionModel());
- t.setDefaultCellRenderer(new TableCellRenderer() {
- public Component getComponent(Table table, PageState state, Object value,
- boolean isSelected, Object key,
- int row, int column) {
- PersistentProcessListener l = (PersistentProcessListener)value;
+ Table table = new Table(new ProcessListenerTableModelBuilder(m_form),
+ new String[]{"Form action", "", ""});
+ m_action = new DecimalSingleSelectionModel(table .getRowSelectionModel());
+ table .setDefaultCellRenderer(new TableCellRenderer() {
- if (column == 0) {
- return new Label(l.getDescription());
- } else if (column == 1) {
- ControlLink lk = new ControlLink( new Label(GlobalizationUtil
- .globalize("formbuilder.ui.edit") ));
- return lk;
- } else if (column == 2) {
- ControlLink lk = new ControlLink( new Label(GlobalizationUtil
- .globalize("formbuilder.ui.delete") ));
- lk.setConfirmation(GlobalizationUtil.globalize(
- "formbuilder.ui.form_action.delete_confirm"));
- return lk;
- }
+ public Component getComponent(Table table, PageState state, Object value,
+ boolean isSelected, Object key,
+ int row, int column) {
+ PersistentProcessListener l = (PersistentProcessListener) value;
- return null;
+ if (column == 0) {
+ return new Label(l.getDescription());
+ } else if (column == 1) {
+ ControlLink lk = new ControlLink(new Label(GlobalizationUtil
+ .globalize("formbuilder.ui.edit")));
+ return lk;
+ } else if (column == 2) {
+ ControlLink lk = new ControlLink(new Label(GlobalizationUtil
+ .globalize("formbuilder.ui.delete")));
+ lk.setConfirmation(GlobalizationUtil.globalize(
+ "formbuilder.ui.form_action.delete_confirm"));
+ return lk;
}
- });
- t.addTableActionListener(new FormItemActionListener());
+
+ return null;
+ }
+
+ });
+ table .addTableActionListener(new FormItemActionListener());
m_list_actions = new BoxPanel(BoxPanel.VERTICAL);
m_edit_action = new ProcessListenerProperties(m_form,
@@ -119,20 +117,21 @@ public class ProcessListenerEditor extends SimpleContainer {
app);
m_newAction.addProcessListener(new FormItemProcessListener(m_edit_action,
- m_list_actions));
+ m_list_actions));
m_edit_action.addCompletionListener(new FormItemCompletionListener(m_list_actions,
m_edit_action));
m_list_actions.add(m_newAction);
- m_list_actions.add(t);
+ m_list_actions.add(table );
addComponents();
add(m_list_actions);
add(m_edit_action);
- }
+ }
- protected void addComponents() { }
+ protected void addComponents() {
+ }
public void register(Page page) {
super.register(page);
@@ -145,6 +144,7 @@ public class ProcessListenerEditor extends SimpleContainer {
}
private class FormItemProcessListener implements FormProcessListener {
+
Component m_show;
Component m_hide;
@@ -160,9 +160,11 @@ public class ProcessListenerEditor extends SimpleContainer {
m_show.setVisible(e.getPageState(), true);
m_hide.setVisible(e.getPageState(), false);
}
+
}
private class FormItemCompletionListener implements FormCompletionListener {
+
Component m_show;
Component m_hide;
@@ -178,11 +180,13 @@ public class ProcessListenerEditor extends SimpleContainer {
m_show.setVisible(e.getPageState(), true);
m_hide.setVisible(e.getPageState(), false);
}
+
}
private class FormItemActionListener implements TableActionListener {
- public void headSelected(TableActionEvent e) {}
+ public void headSelected(TableActionEvent e) {
+ }
public void cellSelected(TableActionEvent e) {
PageState state = e.getPageState();
@@ -193,20 +197,18 @@ public class ProcessListenerEditor extends SimpleContainer {
m_edit_action.setVisible(state, true);
m_list_actions.setVisible(state, false);
} else {
- BigDecimal action_id = (BigDecimal)m_action.getSelectedKey(state);
-
- try {
- BigDecimal formID = (BigDecimal)
- m_form.getSelectedKey( state );
- PersistentFormSection form =
- new PersistentFormSection( formID );
+ BigDecimal action_id = (BigDecimal) m_action.getSelectedKey(state);
- PersistentProcessListener l = (PersistentProcessListener)
- DomainObjectFactory.newInstance(
+ try {
+ BigDecimal formID = (BigDecimal) m_form.getSelectedKey(state);
+ PersistentFormSection form = new PersistentFormSection(formID);
+
+ PersistentProcessListener l = (PersistentProcessListener) DomainObjectFactory
+ .newInstance(
new OID(PersistentProcessListener.BASE_DATA_OBJECT_TYPE,
action_id));
//l.delete();
- form.removeProcessListener( l );
+ form.removeProcessListener(l);
} catch (DataObjectNotFoundException ex) {
throw new UncheckedWrapperException("cannot find listener", ex);
}
@@ -214,11 +216,12 @@ public class ProcessListenerEditor extends SimpleContainer {
state.clearControlEvent();
try {
- throw new RedirectSignal( state.stateAsURL(), true );
- } catch( IOException ex ) {
- throw new UncheckedWrapperException( ex );
+ throw new RedirectSignal(state.stateAsURL(), true);
+ } catch (IOException ex) {
+ throw new UncheckedWrapperException(ex);
}
}
+
}
}
diff --git a/ccm-core/src/com/arsdigita/formbuilder/ui/editors/WidgetForm.java b/ccm-core/src/com/arsdigita/formbuilder/ui/editors/WidgetForm.java
index efb26ebb0..893ecfc82 100755
--- a/ccm-core/src/com/arsdigita/formbuilder/ui/editors/WidgetForm.java
+++ b/ccm-core/src/com/arsdigita/formbuilder/ui/editors/WidgetForm.java
@@ -16,14 +16,13 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
-
package com.arsdigita.formbuilder.ui.editors;
import com.arsdigita.formbuilder.PersistentWidget;
import com.arsdigita.formbuilder.PersistentFormSection;
import com.arsdigita.formbuilder.parameters.PersistentParameterListener;
import com.arsdigita.formbuilder.ui.PropertiesForm;
-import com.arsdigita.formbuilder.util.GlobalizationUtil ;
+import com.arsdigita.formbuilder.util.GlobalizationUtil;
import com.arsdigita.bebop.ColumnPanel;
import com.arsdigita.bebop.FormData;
@@ -50,6 +49,7 @@ import com.arsdigita.bebop.parameters.StringParameter;
import com.arsdigita.bebop.parameters.URLTokenValidationListener;
import com.arsdigita.domain.DataObjectNotFoundException;
import com.arsdigita.util.Assert;
+import com.arsdigita.web.Web;
import com.arsdigita.xml.Element;
import java.math.BigDecimal;
@@ -57,7 +57,8 @@ import java.math.BigDecimal;
import org.apache.log4j.Logger;
public abstract class WidgetForm extends PropertiesForm {
- private static final Logger s_log = Logger.getLogger( WidgetForm.class );
+
+ private static final Logger s_log = Logger.getLogger(WidgetForm.class);
private SingleSelectionModel m_form;
private SingleSelectionModel m_action;
@@ -71,8 +72,10 @@ public abstract class WidgetForm extends PropertiesForm {
private RequestLocal m_widget = new RequestLocal();
- private Label m_script = new Label("", false);
-
+ private Label m_script = new Label(String.format(
+ "",
+ Web.getWebappContextPath()),
+ false);
public WidgetForm(String name,
SingleSelectionModel form,
@@ -86,8 +89,6 @@ public abstract class WidgetForm extends PropertiesForm {
addProcessListener(new WidgetFormProcessListener());
}
-
-
public SingleSelectionModel getSelection() {
return m_form;
}
@@ -99,7 +100,7 @@ public abstract class WidgetForm extends PropertiesForm {
protected PersistentWidget getWidget(PageState state) {
if (m_widget.get(state) == null) {
- BigDecimal action = (BigDecimal)m_action.getSelectedKey(state);
+ BigDecimal action = (BigDecimal) m_action.getSelectedKey(state);
PersistentWidget widget = null;
if (action == null) {
@@ -109,25 +110,31 @@ public abstract class WidgetForm extends PropertiesForm {
try {
widget = getWidget(action);
} catch (DataObjectNotFoundException ex) {
- throw new com.arsdigita.util.UncheckedWrapperException("cannot find persistent widget " + action, ex);
+ throw new com.arsdigita.util.UncheckedWrapperException(
+ "cannot find persistent widget " + action, ex);
}
}
m_widget.set(state, widget);
}
- return (PersistentWidget)m_widget.get(state);
+ return (PersistentWidget) m_widget.get(state);
}
protected void addWidgets(FormSection section) {
super.addWidgets(section);
- if (showName()) addName(section);
- if (showDescription()) addDescription(section);
- if (includeRequiredRadioGroup()) addRequiredRadioGroup(section);
+ if (showName()) {
+ addName(section);
+ }
+ if (showDescription()) {
+ addDescription(section);
+ }
+ if (includeRequiredRadioGroup()) {
+ addRequiredRadioGroup(section);
+ }
}
/**
- * Add the name field to the form. Override this method to alter the
- * creation of the name field.
+ * Add the name field to the form. Override this method to alter the creation of the name field.
*/
protected void addName(FormSection section) {
TextField name = new TextField(new StringParameter(NAME));
@@ -136,15 +143,14 @@ public abstract class WidgetForm extends PropertiesForm {
name.addValidationListener(new StringInRangeValidationListener(1, 40));
name.setSize(30);
section.add(new Label(GlobalizationUtil.globalize(
- "formbuilder.ui.editors.name")), ColumnPanel.RIGHT);
+ "formbuilder.ui.editors.name")), ColumnPanel.RIGHT);
section.add(name);
m_name = name;
}
/**
- * Add the name field to the form. Override this method to alter the
- * creation of the name field.
+ * Add the name field to the form. Override this method to alter the creation of the name field.
*/
protected void addDescription(FormSection section) {
TextArea description = new TextArea(new StringParameter(DESCRIPTION));
@@ -152,7 +158,7 @@ public abstract class WidgetForm extends PropertiesForm {
description.setRows(5);
description.addValidationListener(new StringInRangeValidationListener(0, 200));
section.add(new Label(GlobalizationUtil.globalize(
- "formbuilder.ui.editors.description")),
+ "formbuilder.ui.editors.description")),
ColumnPanel.RIGHT);
section.add(description);
@@ -160,60 +166,51 @@ public abstract class WidgetForm extends PropertiesForm {
}
protected void addRequiredRadioGroup(FormSection section) {
- m_required = new RadioGroup( new BooleanParameter( "required" ) );
+ m_required = new RadioGroup(new BooleanParameter("required"));
section.add(new Label(GlobalizationUtil.globalize(
- "formbuilder.ui.editors.answer_required")),
+ "formbuilder.ui.editors.answer_required")),
ColumnPanel.RIGHT);
section.add(m_required);
-
+
m_required.addOption(new Option(Boolean.TRUE.toString(), "Yes"));
m_required.addOption(new Option(Boolean.FALSE.toString(), "No"));
m_required.setOptionSelected(Boolean.FALSE.toString());
}
/**
- * If this is called then the value of the widget that is used for
- * the passed in model is used to auto-generate the value of the
- * "name" value. For instance, if you want the label to dictate
- * the "name" then you would pass in the label ParameterModel
- * and add the following to the labelWidget:
+ * If this is called then the value of the widget that is used for the passed in model is used
+ * to auto-generate the value of the "name" value. For instance, if you want the label to
+ * dictate the "name" then you would pass in the label ParameterModel and add the following to
+ * the labelWidget:
*
- * labelWidget.setOnFocus("if (this.form." + NAME + ".value == '') { " +
- * " defaulting = true; this.form." + NAME +
- * ".value = urlize(this.value); }");
- * labelWidget.setOnKeyUp(
- * "if (defaulting) { this.form." + NAME +
- * ".value = urlize(this.value) }"
- * );
+ * labelWidget.setOnFocus("if (this.form." + NAME + ".value == '') { " + " defaulting = true;
+ * this.form." + NAME + ".value = urlize(this.value); }"); labelWidget.setOnKeyUp( "if
+ * (defaulting) { this.form." + NAME + ".value = urlize(this.value) }" );
*
*
- * This can only be called after calling addWidgets()
+ * This can only be called after calling addWidgets()
*/
protected void automaticallySetName(ParameterModel model) {
Assert.exists(m_name);
m_name.setOnFocus("defaulting = false");
m_name.setOnBlur(
- "if (this.value == '') " +
- "{ defaulting = true; this.value = urlize(this.form." +
- model.getName() + ".value) }"
+ "if (this.value == '') " + "{ defaulting = true; this.value = urlize(this.form." + model
+ .getName() + ".value) }"
);
}
/**
- * This determines whether or not the "required value" radio group
- * is part of the form. This returns true and should be overridden
- * by fields where it does not make sense to ask. For instance,
- * when the widget is a hidden field then asking if it is required
- * or not does not make any logical sense so those widgets should
- * return false.
+ * This determines whether or not the "required value" radio group is part of the form. This
+ * returns true and should be overridden by fields where it does not make sense to ask. For
+ * instance, when the widget is a hidden field then asking if it is required or not does not
+ * make any logical sense so those widgets should return false.
*
- * This will always return the same value for a given widget no matter
- * what state the widget is in.
+ * This will always return the same value for a given widget no matter what state the widget is
+ * in.
*/
protected boolean includeRequiredRadioGroup() {
return true;
- }
-
+ }
public void generateXML(PageState ps, Element parent) {
m_script.generateXML(ps, parent);
@@ -221,8 +218,7 @@ public abstract class WidgetForm extends PropertiesForm {
}
/**
- * Should the HTML name be on the form? Can be overridden
- * by sub classes.
+ * Should the HTML name be on the form? Can be overridden by sub classes.
*/
protected boolean showName() {
@@ -230,8 +226,7 @@ public abstract class WidgetForm extends PropertiesForm {
}
/**
- * Should the description be on the form? Can be overridden
- * by sub classes.
+ * Should the description be on the form? Can be overridden by sub classes.
*/
protected boolean showDescription() {
@@ -261,31 +256,31 @@ public abstract class WidgetForm extends PropertiesForm {
m_description.setValue(state, widget.getDescription());
}
-/*
- Leaving this around just in case it turns out it does something useful
+ /*
+ Leaving this around just in case it turns out it does something useful
- //Get the associated listeners and set the value for the radio button accordingly
- if(includeRequiredRadioGroup()) {
- Collection col = widget.getValidationListeners();
- Iterator iterator;
- if(!col.isEmpty()) {
- iterator = col.iterator();
- while(iterator.hasNext()) {
- PersistentParameterListener listener =
- (PersistentParameterListener)iterator.next();
- s_log.debug(listener.getClassName());
-
- if(((String)listener.getClassName()).equals("com.arsdigita.bebop.parameters.NotEmptyValidationListener")) {
- m_required.setValue(state,Boolean.TRUE.toString());
- }
- }
- }
- }
-*/
+ //Get the associated listeners and set the value for the radio button accordingly
+ if(includeRequiredRadioGroup()) {
+ Collection col = widget.getValidationListeners();
+ Iterator iterator;
+ if(!col.isEmpty()) {
+ iterator = col.iterator();
+ while(iterator.hasNext()) {
+ PersistentParameterListener listener =
+ (PersistentParameterListener)iterator.next();
+ s_log.debug(listener.getClassName());
+ if(((String)listener.getClassName()).equals("com.arsdigita.bebop.parameters.NotEmptyValidationListener")) {
+ m_required.setValue(state,Boolean.TRUE.toString());
+ }
+ }
+ }
+ }
+ */
//m_name.setVisible(state, false);
- if(includeRequiredRadioGroup())
+ if (includeRequiredRadioGroup()) {
m_required.setValue(state, new Boolean(widget.isRequired()));
+ }
}
}
@@ -300,7 +295,7 @@ public abstract class WidgetForm extends PropertiesForm {
widget.setParameterName(name);
if (showDescription()) {
- String description = (String)data.get(DESCRIPTION);
+ String description = (String) data.get(DESCRIPTION);
widget.setDescription(description);
}
@@ -310,15 +305,15 @@ public abstract class WidgetForm extends PropertiesForm {
}
if (includeRequiredRadioGroup()) {
- boolean required = ( (Boolean) m_required.getValue( pageState ) ).booleanValue();
+ boolean required = ((Boolean) m_required.getValue(pageState)).booleanValue();
- widget.setRequired( required );
- if( required ) {
+ widget.setRequired(required);
+ if (required) {
// Answer is required
- String listenerClassName =
- "com.arsdigita.bebop.parameters.NotEmptyValidationListener";
- PersistentParameterListener listener =
- new PersistentParameterListener(listenerClassName);
+ String listenerClassName
+ = "com.arsdigita.bebop.parameters.NotEmptyValidationListener";
+ PersistentParameterListener listener = new PersistentParameterListener(
+ listenerClassName);
widget.addValidationListener(listener);
} else {
// Answer is not required
@@ -328,14 +323,14 @@ public abstract class WidgetForm extends PropertiesForm {
}
protected String getName(PageState pageState, FormData formData) {
- return (String)formData.get(NAME);
+ return (String) formData.get(NAME);
}
protected void addToForm(FormSectionEvent e,
PersistentWidget widget)
throws FormProcessException {
- BigDecimal form_id = (BigDecimal)m_form.getSelectedKey(e.getPageState());
+ BigDecimal form_id = (BigDecimal) m_form.getSelectedKey(e.getPageState());
PersistentFormSection form = null;
try {
@@ -348,14 +343,14 @@ public abstract class WidgetForm extends PropertiesForm {
form.save();
}
-
private class WidgetFormInitListener implements FormInitListener {
+
public void init(FormSectionEvent e)
throws FormProcessException {
PageState state = e.getPageState();
- BigDecimal action = (BigDecimal)m_action.getSelectedKey(state);
+ BigDecimal action = (BigDecimal) m_action.getSelectedKey(state);
if (action == null) {
initWidgets(e, null);
@@ -364,32 +359,38 @@ public abstract class WidgetForm extends PropertiesForm {
try {
widget = getWidget(action);
} catch (DataObjectNotFoundException ex) {
- throw new FormProcessException("cannot find persistent widget "
- + action, ex);
+ throw new FormProcessException("cannot find persistent widget "
+ + action, ex);
}
initWidgets(e, widget);
}
}
+
}
private class WidgetFormProcessListener implements FormProcessListener {
+
public void process(FormSectionEvent e)
throws FormProcessException {
PageState state = e.getPageState();
- if (isCancelled(state))
+ if (isCancelled(state)) {
return;
+ }
- BigDecimal action = (BigDecimal)m_action.getSelectedKey(state);
+ BigDecimal action = (BigDecimal) m_action.getSelectedKey(state);
PersistentWidget widget = getWidget(state);
processWidgets(e, widget);
widget.save();
- if (action == null)
+ if (action == null) {
addToForm(e, widget);
+ }
}
+
}
+
}
diff --git a/ccm-sci-bundle/bundles/devel/cfg/sci-portlet.xml b/ccm-sci-bundle/bundles/devel/cfg/sci-portlet.xml
index b9d8ba30e..e2986faca 100644
--- a/ccm-sci-bundle/bundles/devel/cfg/sci-portlet.xml
+++ b/ccm-sci-bundle/bundles/devel/cfg/sci-portlet.xml
@@ -18,7 +18,7 @@
HELP
- Hello, Pluto at last!
+ Hello, Pluto from LibreCCM!
\ No newline at end of file
diff --git a/ccm-sci-bundle/web/themes/mandalay/fallback/admin-themes.xsl b/ccm-sci-bundle/web/themes/mandalay/fallback/admin-themes.xsl
index 9ed30f248..33b85a0a6 100755
--- a/ccm-sci-bundle/web/themes/mandalay/fallback/admin-themes.xsl
+++ b/ccm-sci-bundle/web/themes/mandalay/fallback/admin-themes.xsl
@@ -35,7 +35,7 @@
-
+
|
diff --git a/ccm-sci-bundle/web/themes/mandalay/includes/cms/cmsCategoryStep.xsl b/ccm-sci-bundle/web/themes/mandalay/includes/cms/cmsCategoryStep.xsl
index 284092890..529b2554d 100644
--- a/ccm-sci-bundle/web/themes/mandalay/includes/cms/cmsCategoryStep.xsl
+++ b/ccm-sci-bundle/web/themes/mandalay/includes/cms/cmsCategoryStep.xsl
@@ -161,7 +161,7 @@
-
+
diff --git a/ccm-sci-bundle/web/themes/mandalay/includes/forum/categoryStepSummary.xsl b/ccm-sci-bundle/web/themes/mandalay/includes/forum/categoryStepSummary.xsl
index 16bf05bab..def1998c0 100644
--- a/ccm-sci-bundle/web/themes/mandalay/includes/forum/categoryStepSummary.xsl
+++ b/ccm-sci-bundle/web/themes/mandalay/includes/forum/categoryStepSummary.xsl
@@ -161,7 +161,7 @@
-
+
diff --git a/ccm-sci-bundle/web/themes/mandalay/includes/mandalay/imageGallery.xsl b/ccm-sci-bundle/web/themes/mandalay/includes/mandalay/imageGallery.xsl
index abe3dcdb6..8b847a79e 100644
--- a/ccm-sci-bundle/web/themes/mandalay/includes/mandalay/imageGallery.xsl
+++ b/ccm-sci-bundle/web/themes/mandalay/includes/mandalay/imageGallery.xsl
@@ -51,22 +51,34 @@
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+