diff --git a/config/alfresco/messages/webclient.properties b/config/alfresco/messages/webclient.properties index ea772a21fa..cecc7a5a27 100644 --- a/config/alfresco/messages/webclient.properties +++ b/config/alfresco/messages/webclient.properties @@ -131,6 +131,7 @@ no_icons_found=No icons found required_field=Required Field # UI Component messages +done=Done yes=Yes no=No no_not_now=No not now @@ -609,6 +610,13 @@ file_location=Location minor_change=Minor Change major_change=Major Change notes=Notes +new_version_has=This new version has +minor_changes=Minor Changes +major_changes=Major Changes +done_editing_title=New Version info for +done_editing=Done Editing +version_info=Version Info +not_versionable=No version info, because this document isn't versionable. # Check-out messages check_out=Check Out @@ -1842,4 +1850,4 @@ create_project_desc=This wizard helps you create a new space for Project Collabo create_project=Create Project title_calendar=Project Calendar calendar_info=This view allows you to view and edit Calendar entries. -select_project_template=Select Project Template \ No newline at end of file +select_project_template=Select Project Template diff --git a/source/java/org/alfresco/web/bean/coci/CCDoneEditingDialog.java b/source/java/org/alfresco/web/bean/coci/CCDoneEditingDialog.java new file mode 100644 index 0000000000..19909d3cea --- /dev/null +++ b/source/java/org/alfresco/web/bean/coci/CCDoneEditingDialog.java @@ -0,0 +1,65 @@ + +package org.alfresco.web.bean.coci; + +import java.util.StringTokenizer; + +import javax.faces.context.FacesContext; + +import org.alfresco.service.cmr.version.Version; +import org.alfresco.web.app.Application; + +/** + * This bean class handle done-editing(commit) dialog. + * + */ +public class CCDoneEditingDialog extends CheckinCheckoutDialog +{ + + private final static String MSG_DONE = "done"; + private final static String MSG_TITLE = "done_editing_title"; + + /** + * @return Returns label for new version with major changes + */ + public String getMajorNewVersionLabel() + { + Version curVersion = property.getVersionQueryService().getCurrentVersion(property.getDocument().getNodeRef()); + StringTokenizer st = new StringTokenizer(curVersion.getVersionLabel(), "."); + return (Integer.valueOf(st.nextToken()) + 1) + ".0"; + } + + /** + * @return Returns label for new version with minor changes + */ + public String getMinorNewVersionLabel() + { + Version curVersion = property.getVersionQueryService().getCurrentVersion(property.getDocument().getNodeRef()); + StringTokenizer st = new StringTokenizer(curVersion.getVersionLabel(), "."); + return st.nextToken() + "." + (Integer.valueOf(st.nextToken()) + 1); + } + + @Override + protected String finishImpl(FacesContext context, String outcome) throws Exception + { + return checkinFileOK(context, outcome); + } + + @Override + public String getFinishButtonLabel() + { + return Application.getMessage(FacesContext.getCurrentInstance(), MSG_DONE); + } + + @Override + public boolean getFinishButtonDisabled() + { + return false; + } + + @Override + public String getContainerTitle() + { + return Application.getMessage(FacesContext.getCurrentInstance(), MSG_TITLE) + " '" + property.getDocument().getName() + "'"; + } + +} diff --git a/source/java/org/alfresco/web/bean/coci/CCProperties.java b/source/java/org/alfresco/web/bean/coci/CCProperties.java index e9dd0e63ca..ae465d2894 100644 --- a/source/java/org/alfresco/web/bean/coci/CCProperties.java +++ b/source/java/org/alfresco/web/bean/coci/CCProperties.java @@ -15,11 +15,11 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * As a special exception to the terms and conditions of version 2.0 of - * the GPL, you may redistribute this Program in connection with Free/Libre - * and Open Source Software ("FLOSS") applications as described in Alfresco's - * FLOSS exception. You should have recieved a copy of the text describing - * the FLOSS exception, and it is also available here: + * As a special exception to the terms and conditions of version 2.0 of + * the GPL, you may redistribute this Program in connection with Free/Libre + * and Open Source Software ("FLOSS") applications as described in Alfresco's + * FLOSS exception. You should have recieved a copy of the text describing + * the FLOSS exception, and it is also available here: * http://www.alfresco.com/legal/licensing" */ package org.alfresco.web.bean.coci; @@ -29,6 +29,7 @@ import java.io.File; import org.alfresco.service.cmr.coci.CheckOutCheckInService; import org.alfresco.service.cmr.repository.ContentService; import org.alfresco.service.cmr.repository.NodeRef; +import org.alfresco.service.cmr.version.VersionService; import org.alfresco.service.cmr.workflow.WorkflowService; import org.alfresco.web.bean.repository.Node; @@ -38,6 +39,9 @@ public class CCProperties /** The VersionOperationsService to be used by the bean */ protected CheckOutCheckInService versionOperationsService; + /** The VersionQueryService to be used by the bean */ + protected VersionService versionQueryService; + /** The ContentService to be used by the bean */ protected ContentService contentService; @@ -64,11 +68,11 @@ public class CCProperties private boolean isWorkflowAction = false; private String workflowTaskId; private NodeRef selectedSpaceId = null; - + /** constants for copy location selection */ public static final String COPYLOCATION_CURRENT = "current"; public static final String COPYLOCATION_OTHER = "other"; - + private String versionNotes = ""; private String copyLocation = COPYLOCATION_CURRENT; @@ -89,6 +93,23 @@ public class CCProperties this.versionOperationsService = versionOperationsService; } + /** + * @return Returns the VersionQueryService. + */ + public VersionService getVersionQueryService() + { + return this.versionQueryService; + } + + /** + * @param versionQueryService + * The VersionQueryService to set. + */ + public void setVersionQueryService(VersionService versionQueryService) + { + this.versionQueryService = versionQueryService; + } + /** * @return Returns the ContentService. */ @@ -305,7 +326,7 @@ public class CCProperties { this.workflowTaskId = workflowTaskId; } - + /** * @return Returns the version history notes. */ @@ -322,7 +343,7 @@ public class CCProperties { this.versionNotes = versionNotes; } - + /** * @return Returns the copy location. Either the current or other space. */ @@ -330,7 +351,7 @@ public class CCProperties { if (this.getFileName() == null || this.getFileName().length() == 0) { - return this.copyLocation; + return this.copyLocation; } else { diff --git a/source/java/org/alfresco/web/bean/coci/CheckinCheckoutDialog.java b/source/java/org/alfresco/web/bean/coci/CheckinCheckoutDialog.java index 4429310ba7..03b37f9e86 100644 --- a/source/java/org/alfresco/web/bean/coci/CheckinCheckoutDialog.java +++ b/source/java/org/alfresco/web/bean/coci/CheckinCheckoutDialog.java @@ -14,13 +14,13 @@ * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - + * As a special exception to the terms and conditions of version 2.0 of * the GPL, you may redistribute this Program in connection with Free/Libre * and Open Source Software ("FLOSS") applications as described in Alfresco's * FLOSS exception. You should have recieved a copy of the text describing * the FLOSS exception, and it is also available here: - * http://www.alfresco.com/legal/licensing" + * http://www.alfresco.com/legal/licensing" */ package org.alfresco.web.bean.coci; @@ -28,6 +28,7 @@ import java.io.Serializable; import java.text.MessageFormat; import java.util.HashMap; import java.util.Map; +import java.util.StringTokenizer; import javax.faces.context.FacesContext; import javax.faces.event.ActionEvent; @@ -79,12 +80,12 @@ public class CheckinCheckoutDialog extends BaseDialogBean public static final String MSG_ERROR_CHECKOUT = "error_checkout"; public static final String FILE = "file"; - + protected CCProperties property; // ------------------------------------------------------------------------------ - // Bean property getters and setters - + // Bean property getters and setters + /** * @param property the property to set */ @@ -92,7 +93,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean { this.property = property; } - + /** * @param navigator The NavigationBean to set. */ @@ -100,7 +101,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean { this.navigator = navigator; } - + /** * @return Returns the BrowseBean. */ @@ -108,7 +109,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean { return this.browseBean; } - + /** * @param browseBean The BrowseBean to set. */ @@ -116,7 +117,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean { this.browseBean = browseBean; } - + /** * @return Returns the NodeService. */ @@ -132,33 +133,33 @@ public class CheckinCheckoutDialog extends BaseDialogBean { this.nodeService = nodeService; } - + public boolean getFinishButtonDisabled() { return false; } - + public String getFinishButtonLabel() { return Application.getMessage(FacesContext.getCurrentInstance(), "check_in"); } - + public String getContainerTitle() { return Application.getMessage(FacesContext.getCurrentInstance(), "check_in") + " '" + this.property.getDocument().getName() + "'"; } - + /** - * Determines whether the document being checked in has + * Determines whether the document being checked in has * the versionable aspect applied - * + * * @return true if the versionable aspect is applied */ public boolean isVersionable() { return property.getDocument().hasAspect(ContentModel.ASPECT_VERSIONABLE); } - + /** * @return Returns the message to display when a file has been uploaded */ @@ -167,7 +168,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean String msg = Application.getMessage(FacesContext.getCurrentInstance(), "file_upload_success"); return MessageFormat.format(msg, new Object[] {getFileName()}); } - + /** * @return Returns the name of the file */ @@ -183,7 +184,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean property.setFile(fileBean.getFile()); property.setFileName(fileBean.getFileName()); } - + return property.getFileName(); } @@ -193,7 +194,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean public void setFileName(String fileName) { property.setFileName(fileName); - + // we also need to keep the file upload bean in sync FacesContext ctx = FacesContext.getCurrentInstance(); FileUploadBean fileBean = (FileUploadBean)ctx.getExternalContext().getSessionMap(). @@ -219,7 +220,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean fileBean.setFileName(null); } } - + /** * Action handler called when the user wishes to remove an uploaded file */ @@ -230,15 +231,15 @@ public class CheckinCheckoutDialog extends BaseDialogBean property.setFile(null); return null; } - + // ------------------------------------------------------------------------------ // Navigation action event handlers - + /** - * Action event called by all actions that need to setup a Content Document context on the + * Action event called by all actions that need to setup a Content Document context on the * CheckinCheckoutDialog before an action page/wizard is called. The context will be a Node in * setDocument() which can be retrieved on action pages via getDocument(). - * + * * @param event ActionEvent */ public void setupContentAction(ActionEvent event) @@ -249,34 +250,34 @@ public class CheckinCheckoutDialog extends BaseDialogBean if (id != null && id.length() != 0) { setupContentDocument(id); - } + } else { property.setDocument(null); } - + resetState(); } - + public void setupWorkflowContentAction(ActionEvent event) { // do the common processing setupContentAction(event); - + // retrieve the id of the task UIActionLink link = (UIActionLink)event.getComponent(); Map params = link.getParameterMap(); property.setWorkflowTaskId(params.get("taskId")); - + property.setWorkflowAction(true); - + if (logger.isDebugEnabled()) logger.debug("Setup for workflow package action for task id: " + property.getWorkflowTaskId()); } - + /** * Setup a content document node context - * + * * @param id GUID of the node to setup as the content document context * @return The Node */ @@ -286,23 +287,23 @@ public class CheckinCheckoutDialog extends BaseDialogBean logger.debug("Setup for action, setting current document to: " + id); Node node = null; - + try { // create the node ref, then our node representation NodeRef ref = new NodeRef(Repository.getStoreRef(), id); node = new Node(ref); - + // create content URL to the content download servlet with ID and expected filename // the myfile part will be ignored by the servlet but gives the browser a hint String url = DownloadContentServlet.generateDownloadURL(ref, node.getName()); node.getProperties().put("url", url); node.getProperties().put("workingCopy", node.hasAspect(ContentModel.ASPECT_WORKING_COPY)); - node.getProperties().put("fileType32", Utils.getFileTypeImage(node.getName(), false)); - + node.getProperties().put("fileType32", Utils.getFileTypeImage(node.getName(), false)); + // remember the document property.setDocument(node); - + // refresh the UI, calling this method now is fine as it basically makes sure certain // beans clear the state - so when we finish here other beans will have been reset UIContextService.getInstance(FacesContext.getCurrentInstance()).notifyBeans(); @@ -312,12 +313,12 @@ public class CheckinCheckoutDialog extends BaseDialogBean Utils.addErrorMessage(MessageFormat.format(Application.getMessage( FacesContext.getCurrentInstance(), Repository.ERROR_NODEREF), new Object[] {id}) ); } - + return node; } - + /** - * Action handler called to calculate which editing screen to display based on the mimetype + * Action handler called to calculate which editing screen to display based on the mimetype * of a document. If appropriate, the in-line editing screen will be shown. */ public void editFile(ActionEvent event) @@ -329,21 +330,21 @@ public class CheckinCheckoutDialog extends BaseDialogBean { boolean editingInline = false; Node node = setupContentDocument(id); - + if (node.hasAspect(WCMAppModel.ASPECT_FORM_INSTANCE_DATA)) { editingInline = true; - + // editable form document FacesContext fc = FacesContext.getCurrentInstance(); this.navigator.setupDispatchContext(node); - + // TODO - rename editContent Wizard since it only deals with editing form content fc.getApplication().getNavigationHandler().handleNavigation(fc, null, "wizard:editContent"); } - + // detect the inline editing aspect to see which edit mode to use - else if (node.hasAspect(ApplicationModel.ASPECT_INLINEEDITABLE) && + else if (node.hasAspect(ApplicationModel.ASPECT_INLINEEDITABLE) && node.getProperties().get(ApplicationModel.PROP_EDITINLINE) != null && ((Boolean)node.getProperties().get(ApplicationModel.PROP_EDITINLINE)).booleanValue() == true) { @@ -353,7 +354,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean { editingInline = true; String mimetype = reader.getMimetype(); - + // calculate which editor screen to display if (MimetypeMap.MIMETYPE_TEXT_PLAIN.equals(mimetype) || MimetypeMap.MIMETYPE_XML.equals(mimetype) || @@ -362,7 +363,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean { // make content available to the text editing screen property.setEditorOutput(reader.getContentString()); - + // navigate to appropriate screen FacesContext fc = FacesContext.getCurrentInstance(); this.navigator.setupDispatchContext(node); @@ -373,7 +374,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean // make content available to the html editing screen property.setDocumentContent(reader.getContentString()); property.setEditorOutput(null); - + // navigate to appropriate screen FacesContext fc = FacesContext.getCurrentInstance(); this.navigator.setupDispatchContext(node); @@ -381,7 +382,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean } } } - + if (editingInline == false) { // normal downloadable document @@ -391,7 +392,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean } } } - + /** * Action handler called to set the content of a node from an inline editing page. */ @@ -404,11 +405,11 @@ public class CheckinCheckoutDialog extends BaseDialogBean { if (logger.isDebugEnabled()) logger.debug("Trying to update content node Id: " + node.getId()); - + // get an updating writer that we can use to modify the content on the current node ContentWriter writer = property.getContentService().getWriter(node.getNodeRef(), ContentModel.PROP_CONTENT, true); writer.putContent(property.getEditorOutput()); - + // clean up and clear action context resetState(); property.setDocument(null); @@ -428,14 +429,14 @@ public class CheckinCheckoutDialog extends BaseDialogBean } return outcome; } - + /** * Action to undo the checkout of a document just checked out from the checkout screen. */ public String undoCheckout() { String outcome = null; - + Node node = property.getWorkingDocument(); if (node != null) { @@ -443,9 +444,9 @@ public class CheckinCheckoutDialog extends BaseDialogBean { // try to cancel checkout of the working copy this.property.getVersionOperationsService().cancelCheckout(node.getNodeRef()); - + resetState(); - + outcome = AlfrescoNavigationHandler.CLOSE_DIALOG_OUTCOME; } catch (Throwable err) @@ -458,16 +459,16 @@ public class CheckinCheckoutDialog extends BaseDialogBean { logger.warn("WARNING: undoCheckout called without a current WorkingDocument!"); } - + return outcome; } - + /** * Action called upon completion of the Check In file page */ public String checkinFileOK(final FacesContext context, String outcome) { - + // NOTE: for checkin the document node _is_ the working document! final Node node = property.getDocument(); if (node != null && (property.getCopyLocation().equals(CCProperties.COPYLOCATION_CURRENT) || (this.getFileName() != null && !this.getFileName().equals("")))) @@ -481,7 +482,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean { if (logger.isDebugEnabled()) logger.debug("Trying to checkin content node Id: " + node.getId()); - + // we can either checkin the content from the current working copy node // which would have been previously updated by the user String contentUrl; @@ -520,22 +521,22 @@ public class CheckinCheckoutDialog extends BaseDialogBean { props.put(VersionModel.PROP_VERSION_TYPE, VersionType.MAJOR); } - + // perform the checkin - property.getVersionOperationsService().checkin(node.getNodeRef(), + property.getVersionOperationsService().checkin(node.getNodeRef(), props, contentUrl, property.getKeepCheckedOut()); return null; } }; txnHelper.doInTransaction(callback); - + outcome = AlfrescoNavigationHandler.CLOSE_DIALOG_OUTCOME; - + if (property.isWorkflowAction() == false) { outcome = outcome + AlfrescoNavigationHandler.OUTCOME_SEPARATOR + "browse"; } - + // clear action context property.setDocument(null); resetState(); @@ -550,16 +551,16 @@ public class CheckinCheckoutDialog extends BaseDialogBean { logger.warn("WARNING: checkinFileOK called without a current Document!"); } - + return outcome; } - + /** * Action called upon completion of the Update File page */ public String updateFileOK(final FacesContext context, String outcome) { - + // NOTE: for update the document node _is_ the working document! final Node node = property.getDocument(); if (node != null && this.getFileName() != null) @@ -573,24 +574,24 @@ public class CheckinCheckoutDialog extends BaseDialogBean { if (logger.isDebugEnabled()) logger.debug("Trying to update content node Id: " + node.getId()); - + // get an updating writer that we can use to modify the content on the current node ContentWriter writer = property.getContentService().getWriter(node.getNodeRef(), ContentModel.PROP_CONTENT, true); - + // also update the mime type in case a different type of file is uploaded String mimeType = Repository.getMimeTypeForFileName(context, property.getFileName()); writer.setMimetype(mimeType); - + writer.putContent(property.getFile()); return null; } }; txnHelper.doInTransaction(callback); - + // clear action context property.setDocument(null); resetState(); - + outcome = AlfrescoNavigationHandler.CLOSE_DIALOG_OUTCOME; } catch (Throwable err) @@ -603,10 +604,10 @@ public class CheckinCheckoutDialog extends BaseDialogBean { logger.warn("WARNING: updateFileOK called without a current Document!"); } - + return outcome; } - + /** * Deals with the cancel button being pressed on the check in file page */ @@ -620,11 +621,11 @@ public class CheckinCheckoutDialog extends BaseDialogBean resetState(); return outcome; } - + @Override protected String finishImpl(FacesContext context, String outcome) throws Exception { - + return null; } @@ -638,7 +639,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean { property.getFile().delete(); } - + property.setFile(null); property.setFileName(null); property.setKeepCheckedOut(false); @@ -648,7 +649,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean property.setSelectedSpaceId(null); property.setWorkflowAction(false); property.setWorkflowTaskId(null); - + // remove the file upload bean from the session FacesContext ctx = FacesContext.getCurrentInstance(); ctx.getExternalContext().getSessionMap().remove(FileUploadBean.FILE_UPLOAD_BEAN_NAME); diff --git a/source/web/WEB-INF/faces-config-beans.xml b/source/web/WEB-INF/faces-config-beans.xml index 3b1a02e326..a8a07db737 100644 --- a/source/web/WEB-INF/faces-config-beans.xml +++ b/source/web/WEB-INF/faces-config-beans.xml @@ -4,7 +4,7 @@ - + The bean for the Delete Category screen. @@ -43,7 +43,7 @@ #{DocumentDetailsDialog.translationDocument} - + The bean that make a document multilingual @@ -755,7 +755,7 @@ #{FormsService} - + The bean that backs up the Edit Content Wizard @@ -1135,7 +1135,7 @@ tenantService #{tenantService} - + @@ -1301,6 +1301,10 @@ CCProperties org.alfresco.web.bean.coci.CCProperties session + + versionQueryService + #{VersionService} + versionOperationsService #{CheckoutCheckinService} @@ -1337,7 +1341,7 @@ #{CCProperties} - + The bean for the Update File Screen. CCUpdateFileDialog @@ -1350,7 +1354,7 @@ #{CCProperties} - + The bean that holds manage content rules state @@ -1379,7 +1383,7 @@ #{NavigationBean} - + The bean that holds delete content rules state @@ -1481,7 +1485,7 @@ ownableService #{OwnableService} - + navigator #{NavigationBean} @@ -1561,7 +1565,7 @@ #{CopyService} - + Backing bean used by the forum details dialog @@ -1585,7 +1589,7 @@ ownableService #{OwnableService} - + navigator #{NavigationBean} @@ -1595,7 +1599,7 @@ #{PermissionService} - + Backing bean used by the forums details dialog @@ -1628,7 +1632,7 @@ #{PermissionService} - + Backing bean used by the topic details dialog @@ -1652,7 +1656,7 @@ ownableService #{OwnableService} - + navigator #{NavigationBean} @@ -2539,7 +2543,7 @@ workflowService #{WorkflowService} - + unprotectedNodeService #{nodeService} @@ -2717,7 +2721,7 @@ #{workflowInterpreter} - + Backing bean used for the Web Client Config Admin Console ConfigAdminConsoleBean @@ -2750,7 +2754,7 @@ #{tenantInterpreter} - + The bean that backs up the Email Space Users Dialog @@ -2828,7 +2832,7 @@ - + The bean that backs up the Create XML Content Type Wizard @@ -2926,7 +2930,7 @@ #{FormsService} - + The bean that backs up the Create XML Content Type Wizard (WCM) @@ -3138,7 +3142,7 @@ #{FormsService} - + The bean that backs up the Edit Web Content Wizard @@ -3463,7 +3467,7 @@ #{FormsService} - + The bean that backs up the Snapshot Sandbox Dialog @@ -4144,7 +4148,7 @@ --> - + Bean that generates a link component @@ -4472,7 +4476,7 @@ org.alfresco.web.bean.ajax.PresenceProxyBean request - + Bean backing the ajax requests for the ajax based picker components @@ -4587,7 +4591,7 @@ - + The bean that backs up the view of the Versioned Properties @@ -4618,7 +4622,7 @@ #{ContentFilterLanguagesService} - + The bean that backs up the New User Wizard @@ -4718,7 +4722,7 @@ tenantService #{tenantService} - + ownableService #{OwnableService} @@ -4922,7 +4926,7 @@ #{DictionaryService} - + The bean for the Edit Category screen. @@ -4994,7 +4998,7 @@ #{BrowseBean} - + The bean for Apply RSS Template Screen. ApplyRssTemplateDialog @@ -5062,7 +5066,7 @@ #{NodeService} - + The bean for Change Current User Password Screen. ChangeMyPasswordDialog @@ -5429,7 +5433,7 @@ #{CCProperties} - + The bean for the Checkin File Screen. CCCheckinFileDialog @@ -5442,7 +5446,20 @@ #{CCProperties} - + + + The bean for the Done-Editing File Screen(New commit dialog). + CCDoneEditingDialog + + org.alfresco.web.bean.coci.CCDoneEditingDialog + + session + + property + #{CCProperties} + + + The bean for the Edit Search Screen. EditSearchDialog @@ -5500,7 +5517,7 @@ #{SearchProperties} - + The bean that backs up the Create Project Dialog @@ -5554,7 +5571,7 @@ #{AboutBean} - + CategoryBrowserPluginBean org.alfresco.web.bean.ajax.CategoryBrowserPluginBean @@ -5568,7 +5585,7 @@ #{CategoryService} - + CategoryBrowserBean org.alfresco.web.bean.CategoryBrowserBean @@ -5578,5 +5595,5 @@ #{NodeService} - + diff --git a/source/web/images/icons/done_editing.gif b/source/web/images/icons/done_editing.gif new file mode 100644 index 0000000000..27a28e39e5 Binary files /dev/null and b/source/web/images/icons/done_editing.gif differ diff --git a/source/web/jsp/coci/done-editing.jsp b/source/web/jsp/coci/done-editing.jsp new file mode 100644 index 0000000000..f0cb95a743 --- /dev/null +++ b/source/web/jsp/coci/done-editing.jsp @@ -0,0 +1,90 @@ +<%-- + * Copyright (C) 2005-2007 Alfresco Software Limited. + + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program 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 General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + * As a special exception to the terms and conditions of version 2.0 of + * the GPL, you may redistribute this Program in connection with Free/Libre + * and Open Source Software ("FLOSS") applications as described in Alfresco's + * FLOSS exception. You should have recieved a copy of the text describing + * the FLOSS exception, and it is also available here: + * http://www.alfresco.com/legal/licensing" +--%> + +<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> +<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> +<%@ taglib uri="/WEB-INF/alfresco.tld" prefix="a"%> +<%@ taglib uri="/WEB-INF/repo.tld" prefix="r"%> + +<%@ page import="org.alfresco.web.bean.coci.CCDoneEditingDialog"%> + +<%@ page buffer="32kb" contentType="text/html;charset=UTF-8"%> +<%@ page isELIgnored="false"%> + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ +
+ + +
+ +
+
+ +
+ +
+
+ + + + + + + + +
+ +
+
+ +
+