mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Clipboard Changes: When an item is added to the clipboard a status message is now displayed (which can be turned off in config). The Paste All action now also automatically clears the clipboard (again this behaviour can be turned off in config). This is to allow users to navigate around the app copying and pasting without having to ever see the clipboard.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5065 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -97,6 +97,7 @@ has_following_categories_space=This space has the following categories applied..
|
|||||||
moved=moved
|
moved=moved
|
||||||
copied=copied
|
copied=copied
|
||||||
clipboard=Clipboard
|
clipboard=Clipboard
|
||||||
|
node_added_clipboard=An item was added to the clipboard. There are now {0} item(s) in the clipboard. Click ''Paste All'' in the ''More Actions'' menu to add the items to your current location.
|
||||||
recent_spaces=Recent Spaces
|
recent_spaces=Recent Spaces
|
||||||
shortcuts=Shortcuts
|
shortcuts=Shortcuts
|
||||||
company_home=Company Home
|
company_home=Company Home
|
||||||
|
@@ -75,6 +75,11 @@
|
|||||||
|
|
||||||
<!-- the from address to use when sending emails from the client -->
|
<!-- the from address to use when sending emails from the client -->
|
||||||
<from-email-address>alfresco@alfresco.org</from-email-address>
|
<from-email-address>alfresco@alfresco.org</from-email-address>
|
||||||
|
|
||||||
|
<!-- clipboard behaviour i.e. whether to show a status message when an item is added -->
|
||||||
|
<!-- to the clipboard and whether the paste all action also clears the clipboard -->
|
||||||
|
<clipboard-status-visible>true</clipboard-status-visible>
|
||||||
|
<paste-all-and-clear>true</paste-all-and-clear>
|
||||||
</client>
|
</client>
|
||||||
</config>
|
</config>
|
||||||
|
|
||||||
|
@@ -16,10 +16,12 @@
|
|||||||
*/
|
*/
|
||||||
package org.alfresco.web.bean.clipboard;
|
package org.alfresco.web.bean.clipboard;
|
||||||
|
|
||||||
|
import java.text.MessageFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import javax.faces.application.FacesMessage;
|
||||||
import javax.faces.context.FacesContext;
|
import javax.faces.context.FacesContext;
|
||||||
import javax.faces.event.ActionEvent;
|
import javax.faces.event.ActionEvent;
|
||||||
|
|
||||||
@@ -135,6 +137,8 @@ public class ClipboardBean
|
|||||||
*/
|
*/
|
||||||
private void performPasteItems(int index, int action)
|
private void performPasteItems(int index, int action)
|
||||||
{
|
{
|
||||||
|
FacesContext context = FacesContext.getCurrentInstance();
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (index == -1)
|
if (index == -1)
|
||||||
@@ -152,7 +156,12 @@ public class ClipboardBean
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// TODO: after a paste all - remove items from the clipboard...? or not. ask linton
|
|
||||||
|
// if configured to do so clear the clipboard after a paste all
|
||||||
|
if (Application.getClientConfig(context).isPasteAllAndClearEnabled())
|
||||||
|
{
|
||||||
|
this.items.clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -169,12 +178,12 @@ public class ClipboardBean
|
|||||||
}
|
}
|
||||||
|
|
||||||
// refresh UI on success
|
// refresh UI on success
|
||||||
UIContextService.getInstance(FacesContext.getCurrentInstance()).notifyBeans();
|
UIContextService.getInstance(context).notifyBeans();
|
||||||
}
|
}
|
||||||
catch (Throwable err)
|
catch (Throwable err)
|
||||||
{
|
{
|
||||||
Utils.addErrorMessage(Application.getMessage(
|
Utils.addErrorMessage(Application.getMessage(context,
|
||||||
FacesContext.getCurrentInstance(), MSG_ERROR_PASTE) + err.getMessage(), err);
|
MSG_ERROR_PASTE) + err.getMessage(), err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -268,6 +277,16 @@ public class ClipboardBean
|
|||||||
{
|
{
|
||||||
items.add(item);
|
items.add(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// add a message to inform the user of the clipboard state now if configured
|
||||||
|
FacesContext context = FacesContext.getCurrentInstance();
|
||||||
|
if (Application.getClientConfig(context).isClipboardStatusVisible())
|
||||||
|
{
|
||||||
|
String pattern = Application.getMessage(context, "node_added_clipboard");
|
||||||
|
String msg = MessageFormat.format(pattern, items.size());
|
||||||
|
FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_INFO, msg, msg);
|
||||||
|
context.addMessage(null, facesMsg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -56,9 +56,11 @@ public class ClientConfigElement extends ConfigElementAdapter
|
|||||||
private String homeSpacePermission = null;
|
private String homeSpacePermission = null;
|
||||||
private boolean ajaxEnabled = false;
|
private boolean ajaxEnabled = false;
|
||||||
private String initialLocation = "myalfresco";
|
private String initialLocation = "myalfresco";
|
||||||
private ExpiringValueCache<String> wcmDomain = new ExpiringValueCache(1000*10L);
|
private ExpiringValueCache<String> wcmDomain = new ExpiringValueCache<String>(1000*10L);
|
||||||
private ExpiringValueCache<String> wcmPort = new ExpiringValueCache(1000*10L);
|
private ExpiringValueCache<String> wcmPort = new ExpiringValueCache<String>(1000*10L);
|
||||||
private String defaultHomeSpacePath = "/app:company_home";
|
private String defaultHomeSpacePath = "/app:company_home";
|
||||||
|
private boolean clipboardStatusVisible = true;
|
||||||
|
private boolean pasteAllAndClear = true;
|
||||||
private boolean allowGuestConfig = false;
|
private boolean allowGuestConfig = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -164,6 +166,16 @@ public class ClientConfigElement extends ConfigElementAdapter
|
|||||||
combinedElement.setShelfVisible(newElement.isShelfVisible());
|
combinedElement.setShelfVisible(newElement.isShelfVisible());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (newElement.isClipboardStatusVisible() != combinedElement.isClipboardStatusVisible())
|
||||||
|
{
|
||||||
|
combinedElement.setClipboardStatusVisible(newElement.isClipboardStatusVisible());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (newElement.isPasteAllAndClearEnabled() != combinedElement.isPasteAllAndClearEnabled())
|
||||||
|
{
|
||||||
|
combinedElement.setPasteAllAndClearEnabled(newElement.isPasteAllAndClearEnabled());
|
||||||
|
}
|
||||||
|
|
||||||
if (newElement.getFromEmailAddress() != null &&
|
if (newElement.getFromEmailAddress() != null &&
|
||||||
(newElement.getFromEmailAddress().equals(combinedElement.getFromEmailAddress()) == false))
|
(newElement.getFromEmailAddress().equals(combinedElement.getFromEmailAddress()) == false))
|
||||||
{
|
{
|
||||||
@@ -220,6 +232,39 @@ public class ClientConfigElement extends ConfigElementAdapter
|
|||||||
{
|
{
|
||||||
this.shelfVisible = shelfVisible;
|
this.shelfVisible = shelfVisible;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Returns if the clipboard status messages are visible by default.
|
||||||
|
*/
|
||||||
|
public boolean isClipboardStatusVisible()
|
||||||
|
{
|
||||||
|
return this.clipboardStatusVisible;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param clipboardStatusVisible True if the clipboard status messages should be visible.
|
||||||
|
*/
|
||||||
|
/*package*/ void setClipboardStatusVisible(boolean clipboardStatusVisible)
|
||||||
|
{
|
||||||
|
this.clipboardStatusVisible = clipboardStatusVisible;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Returns if the clipboard paste all action should clear the clipboard.
|
||||||
|
*/
|
||||||
|
public boolean isPasteAllAndClearEnabled()
|
||||||
|
{
|
||||||
|
return this.pasteAllAndClear;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param pasteAllAndClear Sets whether the paste all action should clear all items
|
||||||
|
* from the clipboard.
|
||||||
|
*/
|
||||||
|
/*package*/ void setPasteAllAndClearEnabled(boolean pasteAllAndClear)
|
||||||
|
{
|
||||||
|
this.pasteAllAndClear = pasteAllAndClear;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return The error page the application should use
|
* @return The error page the application should use
|
||||||
|
@@ -43,6 +43,8 @@ public class ClientElementReader implements ConfigElementReader
|
|||||||
public static final String ELEMENT_AJAX_ENABLED = "ajax-enabled";
|
public static final String ELEMENT_AJAX_ENABLED = "ajax-enabled";
|
||||||
public static final String ELEMENT_INITIALLOCATION = "initial-location";
|
public static final String ELEMENT_INITIALLOCATION = "initial-location";
|
||||||
public static final String ELEMENT_DEFAULTHOMESPACEPATH = "default-home-space-path";
|
public static final String ELEMENT_DEFAULTHOMESPACEPATH = "default-home-space-path";
|
||||||
|
public static final String ELEMENT_CLIPBOARDSTATUS = "clipboard-status-visible";
|
||||||
|
public static final String ELEMENT_PASTEALLANDCLEAR = "paste-all-and-clear";
|
||||||
public static final String ELEMENT_GUESTCONFIG = "allow-guest-config";
|
public static final String ELEMENT_GUESTCONFIG = "allow-guest-config";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -171,6 +173,22 @@ public class ClientElementReader implements ConfigElementReader
|
|||||||
configElement.setDefaultHomeSpacePath(defaultHomeSpacePath.getTextTrim());
|
configElement.setDefaultHomeSpacePath(defaultHomeSpacePath.getTextTrim());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// get the default visibility of the clipboard status messages
|
||||||
|
Element clipboardStatusVisible = element.element(ELEMENT_CLIPBOARDSTATUS);
|
||||||
|
if (clipboardStatusVisible != null)
|
||||||
|
{
|
||||||
|
configElement.setClipboardStatusVisible(Boolean.parseBoolean(
|
||||||
|
clipboardStatusVisible.getTextTrim()));
|
||||||
|
}
|
||||||
|
|
||||||
|
// get the default setting for the paste all action, should it clear the clipboard after?
|
||||||
|
Element pasteAllAndClear = element.element(ELEMENT_PASTEALLANDCLEAR);
|
||||||
|
if (pasteAllAndClear != null)
|
||||||
|
{
|
||||||
|
configElement.setPasteAllAndClearEnabled(Boolean.parseBoolean(
|
||||||
|
pasteAllAndClear.getTextTrim()));
|
||||||
|
}
|
||||||
|
|
||||||
// get allow Guest to configure start location preferences
|
// get allow Guest to configure start location preferences
|
||||||
Element guestConfigElement = element.element(ELEMENT_GUESTCONFIG);
|
Element guestConfigElement = element.element(ELEMENT_GUESTCONFIG);
|
||||||
if (guestConfigElement != null)
|
if (guestConfigElement != null)
|
||||||
|
@@ -55,6 +55,8 @@ public class ErrorsRenderer extends BaseRenderer
|
|||||||
ResponseWriter out = context.getResponseWriter();
|
ResponseWriter out = context.getResponseWriter();
|
||||||
String contextPath = context.getExternalContext().getRequestContextPath();
|
String contextPath = context.getExternalContext().getRequestContextPath();
|
||||||
String styleClass = (String)component.getAttributes().get("styleClass");
|
String styleClass = (String)component.getAttributes().get("styleClass");
|
||||||
|
String errorClass = (String)component.getAttributes().get("errorClass");
|
||||||
|
String infoClass = (String)component.getAttributes().get("infoClass");
|
||||||
String message = (String)component.getAttributes().get("message");
|
String message = (String)component.getAttributes().get("message");
|
||||||
|
|
||||||
if (message == null)
|
if (message == null)
|
||||||
@@ -75,27 +77,57 @@ public class ErrorsRenderer extends BaseRenderer
|
|||||||
|
|
||||||
PanelGenerator.generatePanelStart(out, contextPath, "yellowInner", "#ffffcc");
|
PanelGenerator.generatePanelStart(out, contextPath, "yellowInner", "#ffffcc");
|
||||||
|
|
||||||
out.write("\n<div");
|
out.write("\n<div");
|
||||||
if (styleClass != null)
|
if (styleClass != null)
|
||||||
{
|
{
|
||||||
outputAttribute(out, styleClass, "class");
|
outputAttribute(out, styleClass, "class");
|
||||||
}
|
}
|
||||||
out.write(">");
|
out.write(">");
|
||||||
out.write("<img src='");
|
|
||||||
out.write(contextPath);
|
|
||||||
out.write("/images/icons/info_icon.gif' alt='Error' align='absmiddle'/> ");
|
|
||||||
out.write(Utils.encode(message));
|
|
||||||
out.write("\n<ul style='margin:2px;'>");
|
|
||||||
|
|
||||||
while (messages.hasNext())
|
// if we have a message to display show it next to the info icon
|
||||||
|
if (message.length() > 0)
|
||||||
{
|
{
|
||||||
FacesMessage fm = (FacesMessage)messages.next();
|
out.write("<img src='");
|
||||||
out.write("<li>");
|
out.write(contextPath);
|
||||||
out.write(Utils.encode(fm.getSummary()));
|
out.write("/images/icons/info_icon.gif' alt='Error' align='absmiddle'/> ");
|
||||||
out.write("</li>\n");
|
out.write(Utils.encode(message));
|
||||||
|
out.write("\n<ul style='margin:2px;'>");
|
||||||
|
|
||||||
|
while (messages.hasNext())
|
||||||
|
{
|
||||||
|
FacesMessage fm = (FacesMessage)messages.next();
|
||||||
|
out.write("<li");
|
||||||
|
renderMessageAttrs(fm, out, errorClass, infoClass);
|
||||||
|
out.write(">");
|
||||||
|
out.write(Utils.encode(fm.getSummary()));
|
||||||
|
out.write("</li>\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
out.write("</ul>");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// if there is no title message to display use a table to place
|
||||||
|
// the info icon on the left and the list of messages on the right
|
||||||
|
out.write("<table border='0' cellpadding='3' cellspacing='0'><tr><td valign='top'><img src='");
|
||||||
|
out.write(contextPath);
|
||||||
|
out.write("/images/icons/info_icon.gif' alt='Error' />");
|
||||||
|
out.write("</td><td>");
|
||||||
|
|
||||||
|
while (messages.hasNext())
|
||||||
|
{
|
||||||
|
FacesMessage fm = (FacesMessage)messages.next();
|
||||||
|
out.write("<div style='margin-bottom: 3px;'");
|
||||||
|
renderMessageAttrs(fm, out, errorClass, infoClass);
|
||||||
|
out.write(">");
|
||||||
|
out.write(Utils.encode(fm.getSummary()));
|
||||||
|
out.write("</div>\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
out.write("</td></tr></table>");
|
||||||
}
|
}
|
||||||
|
|
||||||
out.write("</ul></div>\n");
|
out.write("</div>\n");
|
||||||
|
|
||||||
PanelGenerator.generatePanelEnd(out, contextPath, "yellowInner");
|
PanelGenerator.generatePanelEnd(out, contextPath, "yellowInner");
|
||||||
|
|
||||||
@@ -111,4 +143,31 @@ public class ErrorsRenderer extends BaseRenderer
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Renders the attributes for the given FacesMessage.
|
||||||
|
*/
|
||||||
|
private void renderMessageAttrs(FacesMessage fm, ResponseWriter out,
|
||||||
|
String errorClass, String infoClass) throws IOException
|
||||||
|
{
|
||||||
|
// use the error class if the message is error level
|
||||||
|
if (errorClass != null &&
|
||||||
|
fm.getSeverity() == FacesMessage.SEVERITY_ERROR ||
|
||||||
|
fm.getSeverity() == FacesMessage.SEVERITY_FATAL)
|
||||||
|
{
|
||||||
|
out.write(" class='");
|
||||||
|
out.write(errorClass);
|
||||||
|
out.write("'");
|
||||||
|
}
|
||||||
|
|
||||||
|
// use the info class if the message is info level
|
||||||
|
if (infoClass != null &&
|
||||||
|
fm.getSeverity() == FacesMessage.SEVERITY_INFO ||
|
||||||
|
fm.getSeverity() == FacesMessage.SEVERITY_WARN)
|
||||||
|
{
|
||||||
|
out.write(" class='");
|
||||||
|
out.write(infoClass);
|
||||||
|
out.write("'");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -21,6 +21,8 @@ import javax.faces.component.UIComponent;
|
|||||||
public class ErrorsTag extends HtmlComponentTag
|
public class ErrorsTag extends HtmlComponentTag
|
||||||
{
|
{
|
||||||
private String message;
|
private String message;
|
||||||
|
private String errorClass;
|
||||||
|
private String infoClass;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see javax.faces.webapp.UIComponentTag#getComponentType()
|
* @see javax.faces.webapp.UIComponentTag#getComponentType()
|
||||||
@@ -46,6 +48,8 @@ public class ErrorsTag extends HtmlComponentTag
|
|||||||
super.setProperties(component);
|
super.setProperties(component);
|
||||||
|
|
||||||
setStringProperty(component, "message", this.message);
|
setStringProperty(component, "message", this.message);
|
||||||
|
setStringProperty(component, "errorClass", this.errorClass);
|
||||||
|
setStringProperty(component, "infoClass", this.infoClass);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -55,4 +59,20 @@ public class ErrorsTag extends HtmlComponentTag
|
|||||||
{
|
{
|
||||||
this.message = message;
|
this.message = message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param errorClass The CSS class to use for error messages
|
||||||
|
*/
|
||||||
|
public void setErrorClass(String errorClass)
|
||||||
|
{
|
||||||
|
this.errorClass = errorClass;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param infoClass The CSS class to use for info messages
|
||||||
|
*/
|
||||||
|
public void setInfoClass(String infoClass)
|
||||||
|
{
|
||||||
|
this.infoClass = infoClass;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1470,6 +1470,18 @@
|
|||||||
<rtexprvalue>true</rtexprvalue>
|
<rtexprvalue>true</rtexprvalue>
|
||||||
</attribute>
|
</attribute>
|
||||||
|
|
||||||
|
<attribute>
|
||||||
|
<name>infoClass</name>
|
||||||
|
<required>false</required>
|
||||||
|
<rtexprvalue>true</rtexprvalue>
|
||||||
|
</attribute>
|
||||||
|
|
||||||
|
<attribute>
|
||||||
|
<name>errorClass</name>
|
||||||
|
<required>false</required>
|
||||||
|
<rtexprvalue>true</rtexprvalue>
|
||||||
|
</attribute>
|
||||||
|
|
||||||
<attribute>
|
<attribute>
|
||||||
<name>style</name>
|
<name>style</name>
|
||||||
<required>false</required>
|
<required>false</required>
|
||||||
|
@@ -202,6 +202,16 @@
|
|||||||
<td><img src="<%=request.getContextPath()%>/images/parts/statuspanel_9.gif" width=4 height=9></td>
|
<td><img src="<%=request.getContextPath()%>/images/parts/statuspanel_9.gif" width=4 height=9></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
<%-- Error Messages --%>
|
||||||
|
<tr valign=top>
|
||||||
|
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width=4></td>
|
||||||
|
<td>
|
||||||
|
<%-- messages tag to show messages not handled by other specific message tags --%>
|
||||||
|
<a:errors message="" infoClass="statusWarningText" errorClass="statusErrorText" />
|
||||||
|
</td>
|
||||||
|
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width=4></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
<%-- Custom Template View --%>
|
<%-- Custom Template View --%>
|
||||||
<a:panel id="custom-wrapper-panel" rendered="#{NavigationBean.currentNodeHasTemplate}">
|
<a:panel id="custom-wrapper-panel" rendered="#{NavigationBean.currentNodeHasTemplate}">
|
||||||
<tr valign=top>
|
<tr valign=top>
|
||||||
@@ -487,16 +497,6 @@
|
|||||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width=4></td>
|
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width=4></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<%-- Error Messages --%>
|
|
||||||
<tr valign=top>
|
|
||||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width=4></td>
|
|
||||||
<td>
|
|
||||||
<%-- messages tag to show messages not handled by other specific message tags --%>
|
|
||||||
<h:messages globalOnly="true" styleClass="errorMessage" layout="table" />
|
|
||||||
</td>
|
|
||||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width=4></td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<%-- separator row with bottom panel graphics --%>
|
<%-- separator row with bottom panel graphics --%>
|
||||||
<tr>
|
<tr>
|
||||||
<td><img src="<%=request.getContextPath()%>/images/parts/whitepanel_7.gif" width=4 height=4></td>
|
<td><img src="<%=request.getContextPath()%>/images/parts/whitepanel_7.gif" width=4 height=4></td>
|
||||||
|
@@ -117,6 +117,16 @@
|
|||||||
<td><img src="<%=request.getContextPath()%>/images/parts/statuspanel_9.gif" width="4" height="9"></td>
|
<td><img src="<%=request.getContextPath()%>/images/parts/statuspanel_9.gif" width="4" height="9"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
<%-- Error Messages --%>
|
||||||
|
<tr valign=top>
|
||||||
|
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width=4></td>
|
||||||
|
<td>
|
||||||
|
<%-- messages tag to show messages not handled by other specific message tags --%>
|
||||||
|
<a:errors message="" infoClass="statusWarningText" errorClass="statusErrorText" />
|
||||||
|
</td>
|
||||||
|
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width=4></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
<%-- Details --%>
|
<%-- Details --%>
|
||||||
<tr valign=top>
|
<tr valign=top>
|
||||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width="4"></td>
|
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width="4"></td>
|
||||||
@@ -227,7 +237,6 @@
|
|||||||
action="#{DocumentDetailsBean.applyInlineEditable}"
|
action="#{DocumentDetailsBean.applyInlineEditable}"
|
||||||
rendered="#{DocumentDetailsBean.inlineEditable == false}" />
|
rendered="#{DocumentDetailsBean.inlineEditable == false}" />
|
||||||
</r:permissionEvaluator>
|
</r:permissionEvaluator>
|
||||||
<h:messages id="error1" globalOnly="true" styleClass="errorMessage" layout="table" />
|
|
||||||
<h:message id="msg1" for="document-props" styleClass="statusMessage" />
|
<h:message id="msg1" for="document-props" styleClass="statusMessage" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -259,7 +268,6 @@
|
|||||||
columns="1" mode="view" labelStyleClass="propertiesLabel" externalConfig="true" />
|
columns="1" mode="view" labelStyleClass="propertiesLabel" externalConfig="true" />
|
||||||
<h:outputText id="no-inline-msg2" value="<br/>#{msg.not_inline_editable}<br/>"
|
<h:outputText id="no-inline-msg2" value="<br/>#{msg.not_inline_editable}<br/>"
|
||||||
rendered="#{DocumentDetailsBean.inlineEditable == false}" escape="false" />
|
rendered="#{DocumentDetailsBean.inlineEditable == false}" escape="false" />
|
||||||
<h:messages id="error2" globalOnly="true" styleClass="errorMessage" layout="table" />
|
|
||||||
<h:message id="msg2" for="document-props-locked" styleClass="statusMessage" />
|
<h:message id="msg2" for="document-props-locked" styleClass="statusMessage" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@@ -105,6 +105,16 @@
|
|||||||
<td><img src="<%=request.getContextPath()%>/images/parts/statuspanel_9.gif" width="4" height="9"></td>
|
<td><img src="<%=request.getContextPath()%>/images/parts/statuspanel_9.gif" width="4" height="9"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
<%-- Error Messages --%>
|
||||||
|
<tr valign=top>
|
||||||
|
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width=4></td>
|
||||||
|
<td>
|
||||||
|
<%-- messages tag to show messages not handled by other specific message tags --%>
|
||||||
|
<a:errors message="" infoClass="statusWarningText" errorClass="statusErrorText" />
|
||||||
|
</td>
|
||||||
|
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width=4></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
<%-- Details --%>
|
<%-- Details --%>
|
||||||
<tr valign=top>
|
<tr valign=top>
|
||||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width="4"></td>
|
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width="4"></td>
|
||||||
@@ -205,7 +215,6 @@
|
|||||||
<r:propertySheetGrid id="space-props" value="#{SpaceDetailsBean.space}" var="spaceProps"
|
<r:propertySheetGrid id="space-props" value="#{SpaceDetailsBean.space}" var="spaceProps"
|
||||||
columns="1" mode="view" labelStyleClass="propertiesLabel"
|
columns="1" mode="view" labelStyleClass="propertiesLabel"
|
||||||
externalConfig="true" />
|
externalConfig="true" />
|
||||||
<h:messages globalOnly="true" styleClass="errorMessage" layout="table" />
|
|
||||||
<h:message for="space-props" styleClass="statusMessage" />
|
<h:message for="space-props" styleClass="statusMessage" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@@ -113,6 +113,16 @@
|
|||||||
<td><img src="<%=request.getContextPath()%>/images/parts/statuspanel_9.gif" width=4 height=9></td>
|
<td><img src="<%=request.getContextPath()%>/images/parts/statuspanel_9.gif" width=4 height=9></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
<%-- Error Messages --%>
|
||||||
|
<tr valign=top>
|
||||||
|
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width=4></td>
|
||||||
|
<td>
|
||||||
|
<%-- messages tag to show messages not handled by other specific message tags --%>
|
||||||
|
<a:errors message="" infoClass="statusWarningText" errorClass="statusErrorText" />
|
||||||
|
</td>
|
||||||
|
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width=4></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
<%-- Details - Topics --%>
|
<%-- Details - Topics --%>
|
||||||
<tr valign=top>
|
<tr valign=top>
|
||||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width=4></td>
|
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width=4></td>
|
||||||
@@ -175,16 +185,6 @@
|
|||||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width=4></td>
|
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width=4></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<%-- Error Messages --%>
|
|
||||||
<tr valign=top>
|
|
||||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width=4></td>
|
|
||||||
<td>
|
|
||||||
<%-- messages tag to show messages not handled by other specific message tags --%>
|
|
||||||
<h:messages globalOnly="true" styleClass="errorMessage" layout="table" />
|
|
||||||
</td>
|
|
||||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width=4></td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<%-- separator row with bottom panel graphics --%>
|
<%-- separator row with bottom panel graphics --%>
|
||||||
<tr>
|
<tr>
|
||||||
<td><img src="<%=request.getContextPath()%>/images/parts/whitepanel_7.gif" width=4 height=4></td>
|
<td><img src="<%=request.getContextPath()%>/images/parts/whitepanel_7.gif" width=4 height=4></td>
|
||||||
|
@@ -116,6 +116,16 @@
|
|||||||
<td><img src="<%=request.getContextPath()%>/images/parts/statuspanel_9.gif" width=4 height=9></td>
|
<td><img src="<%=request.getContextPath()%>/images/parts/statuspanel_9.gif" width=4 height=9></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
<%-- Error Messages --%>
|
||||||
|
<tr valign=top>
|
||||||
|
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width=4></td>
|
||||||
|
<td>
|
||||||
|
<%-- messages tag to show messages not handled by other specific message tags --%>
|
||||||
|
<a:errors message="" infoClass="statusWarningText" errorClass="statusErrorText" />
|
||||||
|
</td>
|
||||||
|
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width=4></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
<%-- Details - Forums --%>
|
<%-- Details - Forums --%>
|
||||||
<tr valign=top>
|
<tr valign=top>
|
||||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width=4></td>
|
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width=4></td>
|
||||||
@@ -231,16 +241,6 @@
|
|||||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width=4></td>
|
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width=4></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<%-- Error Messages --%>
|
|
||||||
<tr valign=top>
|
|
||||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width=4></td>
|
|
||||||
<td>
|
|
||||||
<%-- messages tag to show messages not handled by other specific message tags --%>
|
|
||||||
<h:messages globalOnly="true" styleClass="errorMessage" layout="table" />
|
|
||||||
</td>
|
|
||||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width=4></td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<%-- separator row with bottom panel graphics --%>
|
<%-- separator row with bottom panel graphics --%>
|
||||||
<tr>
|
<tr>
|
||||||
<td><img src="<%=request.getContextPath()%>/images/parts/whitepanel_7.gif" width=4 height=4></td>
|
<td><img src="<%=request.getContextPath()%>/images/parts/whitepanel_7.gif" width=4 height=4></td>
|
||||||
|
@@ -114,6 +114,16 @@
|
|||||||
<td><img src="<%=request.getContextPath()%>/images/parts/statuspanel_9.gif" width=4 height=9></td>
|
<td><img src="<%=request.getContextPath()%>/images/parts/statuspanel_9.gif" width=4 height=9></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
<%-- Error Messages --%>
|
||||||
|
<tr valign=top>
|
||||||
|
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width=4></td>
|
||||||
|
<td>
|
||||||
|
<%-- messages tag to show messages not handled by other specific message tags --%>
|
||||||
|
<a:errors message="" infoClass="statusWarningText" errorClass="statusErrorText" />
|
||||||
|
</td>
|
||||||
|
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width=4></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
<%-- Details - Posts --%>
|
<%-- Details - Posts --%>
|
||||||
<tr valign=top>
|
<tr valign=top>
|
||||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width=4></td>
|
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width=4></td>
|
||||||
@@ -209,16 +219,6 @@
|
|||||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width=4></td>
|
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width=4></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<%-- Error Messages --%>
|
|
||||||
<tr valign=top>
|
|
||||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width=4></td>
|
|
||||||
<td>
|
|
||||||
<%-- messages tag to show messages not handled by other specific message tags --%>
|
|
||||||
<h:messages globalOnly="true" styleClass="errorMessage" layout="table" />
|
|
||||||
</td>
|
|
||||||
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width=4></td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<%-- separator row with bottom panel graphics --%>
|
<%-- separator row with bottom panel graphics --%>
|
||||||
<tr>
|
<tr>
|
||||||
<td><img src="<%=request.getContextPath()%>/images/parts/whitepanel_7.gif" width=4 height=4></td>
|
<td><img src="<%=request.getContextPath()%>/images/parts/whitepanel_7.gif" width=4 height=4></td>
|
||||||
|
Reference in New Issue
Block a user