Reverted Logneon Offline editing changes.

These will be transfered to a DEV branch.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@8226 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2008-02-08 14:02:04 +00:00
parent 41872c82e4
commit 522af9f56e
22 changed files with 459 additions and 1594 deletions

View File

@@ -1,50 +0,0 @@
/*
* 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"
*/
package org.alfresco.web.action.evaluator;
import javax.faces.context.FacesContext;
import org.alfresco.model.ContentModel;
import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.web.bean.repository.Node;
import org.alfresco.web.bean.repository.Repository;
/**
* UI Action Evaluator - Upload new version
*
*/
public class UploadNewVersionEvaluator extends BaseActionEvaluator
{
/**
* @see org.alfresco.web.action.ActionEvaluator#evaluate(org.alfresco.web.bean.repository.Node)
*/
public boolean evaluate(Node node)
{
DictionaryService dd = Repository.getServiceRegistry(
FacesContext.getCurrentInstance()).getDictionaryService();
return dd.isSubClass(node.getType(), ContentModel.TYPE_CONTENT) && node.isWorkingCopyOwner();
}
}

View File

@@ -1,96 +0,0 @@
package org.alfresco.web.bean.coci;
import java.io.Serializable;
import java.util.Map;
import java.util.StringTokenizer;
import javax.faces.context.FacesContext;
import org.alfresco.model.ContentModel;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.version.Version;
import org.alfresco.service.namespace.QName;
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_VERSIONABLE = "done_editing_title_versionable";
private final static String MSG_TITLE_NOT_VERSIONABLE = "done_editing_title_not_versionable";
/**
* @return Returns label for new version with major changes
*/
public String getMajorNewVersionLabel()
{
String label = getCurrentVersionLabel();
StringTokenizer st = new StringTokenizer(label, ".");
return (Integer.valueOf(st.nextToken()) + 1) + ".0";
}
/**
* @return Returns label for new version with minor changes
*/
public String getMinorNewVersionLabel()
{
String label = getCurrentVersionLabel();
StringTokenizer st = new StringTokenizer(label, ".");
return st.nextToken() + "." + (Integer.valueOf(st.nextToken()) + 1);
}
@Override
public String getFinishButtonLabel()
{
return Application.getMessage(FacesContext.getCurrentInstance(), MSG_DONE);
}
@Override
public boolean getFinishButtonDisabled()
{
return false;
}
@Override
public String getContainerTitle()
{
if (property.getDocument().hasAspect(ContentModel.ASPECT_VERSIONABLE))
{
return Application.getMessage(FacesContext.getCurrentInstance(), MSG_TITLE_VERSIONABLE) + " '" + property.getDocument().getName() + "'";
}
else
{
return Application.getMessage(FacesContext.getCurrentInstance(), MSG_TITLE_NOT_VERSIONABLE) + " '" + property.getDocument().getName() + "'";
}
}
@Override
protected String finishImpl(FacesContext context, String outcome) throws Exception
{
return checkinFileOK(context, outcome);
}
/**
* @return version label for source node for working copy.
*/
private String getCurrentVersionLabel()
{
NodeRef workingCopyNodeRef = property.getDocument().getNodeRef();
if (this.nodeService.hasAspect(workingCopyNodeRef, ContentModel.ASPECT_COPIEDFROM) == true)
{
Map<QName, Serializable> workingCopyProperties = nodeService.getProperties(workingCopyNodeRef);
NodeRef nodeRef = (NodeRef) workingCopyProperties.get(ContentModel.PROP_COPY_REFERENCE);
Version curVersion = property.getVersionQueryService().getCurrentVersion(nodeRef);
return curVersion.getVersionLabel();
}
return null;
}
}

View File

@@ -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,7 +29,6 @@ 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;
@@ -39,9 +38,6 @@ 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;
@@ -68,11 +64,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;
@@ -93,23 +89,6 @@ 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.
*/
@@ -326,7 +305,7 @@ public class CCProperties
{
this.workflowTaskId = workflowTaskId;
}
/**
* @return Returns the version history notes.
*/
@@ -343,7 +322,7 @@ public class CCProperties
{
this.versionNotes = versionNotes;
}
/**
* @return Returns the copy location. Either the current or other space.
*/
@@ -351,7 +330,7 @@ public class CCProperties
{
if (this.getFileName() == null || this.getFileName().length() == 0)
{
return this.copyLocation;
return this.copyLocation;
}
else
{

View File

@@ -1,119 +0,0 @@
/*
* 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"
*/
package org.alfresco.web.bean.coci;
import javax.faces.context.FacesContext;
import org.alfresco.model.ContentModel;
import org.alfresco.web.app.Application;
import org.alfresco.web.bean.repository.Node;
import org.alfresco.web.ui.common.Utils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class CancelEditingDialog extends CheckinCheckoutDialog
{
public static final String LBL_CANCEL_EDITING = "cancel_editing";
public static final String MSG_CANCEL_EDITING_FOR = "cancel_editing_for";
private static Log logger = LogFactory.getLog(CheckinCheckoutDialog.class);
@Override
protected String finishImpl(FacesContext context, String outcome) throws Exception
{
undoCheckoutFile(context, outcome);
return "dialog:close[2]";
}
@Override
public String getContainerTitle()
{
return Application.getMessage(FacesContext.getCurrentInstance(), MSG_CANCEL_EDITING_FOR) + " '" + property.getDocument().getName() + "'";
}
@Override
public boolean getFinishButtonDisabled()
{
return false;
}
@Override
public String getFinishButtonLabel()
{
return Application.getMessage(FacesContext.getCurrentInstance(), LBL_CANCEL_EDITING);
}
/**
* Action to undo the checkout of a locked document. This document may
* either by the original copy or the working copy node. Therefore calculate
* which it is, if the working copy is found then we simply cancel checkout
* on that document. If the original copy is found then we need to find the
* appropriate working copy and perform the action on that node.
*/
public String undoCheckoutFile(FacesContext context, String outcome)
{
Node node = property.getDocument();
if (node != null)
{
try
{
if (node.hasAspect(ContentModel.ASPECT_WORKING_COPY))
{
this.property.getVersionOperationsService().cancelCheckout(node.getNodeRef());
}
else if (node.hasAspect(ContentModel.ASPECT_LOCKABLE))
{
// TODO: find the working copy for this document and cancel
// the checkout on it
// is this possible? as currently only the workingcopy
// aspect has the copyReference
// attribute - this means we cannot find out where the copy
// is to cancel it!
// can we construct an XPath node lookup?
throw new RuntimeException("NOT IMPLEMENTED");
}
else
{
throw new IllegalStateException("Node supplied for undo checkout has neither Working Copy or Locked aspect!");
}
resetState();
}
catch (Throwable err)
{
Utils.addErrorMessage(Application.getMessage(FacesContext.getCurrentInstance(), MSG_ERROR_CANCELCHECKOUT) + err.getMessage(), err);
}
}
else
{
logger.warn("WARNING: undoCheckout called without a current WorkingDocument!");
}
return outcome;
}
}

View File

@@ -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,7 +28,6 @@ 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;
@@ -80,12 +79,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
*/
@@ -93,7 +92,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean
{
this.property = property;
}
/**
* @param navigator The NavigationBean to set.
*/
@@ -101,7 +100,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean
{
this.navigator = navigator;
}
/**
* @return Returns the BrowseBean.
*/
@@ -109,7 +108,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean
{
return this.browseBean;
}
/**
* @param browseBean The BrowseBean to set.
*/
@@ -117,7 +116,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean
{
this.browseBean = browseBean;
}
/**
* @return Returns the NodeService.
*/
@@ -133,33 +132,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
*/
@@ -168,7 +167,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
*/
@@ -184,7 +183,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean
property.setFile(fileBean.getFile());
property.setFileName(fileBean.getFileName());
}
return property.getFileName();
}
@@ -194,7 +193,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().
@@ -220,7 +219,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean
fileBean.setFileName(null);
}
}
/**
* Action handler called when the user wishes to remove an uploaded file
*/
@@ -231,15 +230,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)
@@ -250,34 +249,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<String, String> 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
*/
@@ -287,23 +286,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();
@@ -313,12 +312,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)
@@ -330,21 +329,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)
{
@@ -354,7 +353,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) ||
@@ -363,7 +362,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);
@@ -374,7 +373,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);
@@ -382,7 +381,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean
}
}
}
if (editingInline == false)
{
// normal downloadable document
@@ -392,7 +391,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean
}
}
}
/**
* Action handler called to set the content of a node from an inline editing page.
*/
@@ -405,11 +404,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);
@@ -429,14 +428,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)
{
@@ -444,9 +443,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)
@@ -459,16 +458,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(""))))
@@ -482,7 +481,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;
@@ -521,22 +520,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();
@@ -551,16 +550,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)
@@ -574,24 +573,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)
@@ -604,10 +603,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
*/
@@ -621,11 +620,11 @@ public class CheckinCheckoutDialog extends BaseDialogBean
resetState();
return outcome;
}
@Override
protected String finishImpl(FacesContext context, String outcome) throws Exception
{
return null;
}
@@ -639,7 +638,7 @@ public class CheckinCheckoutDialog extends BaseDialogBean
{
property.getFile().delete();
}
property.setFile(null);
property.setFileName(null);
property.setKeepCheckedOut(false);
@@ -649,7 +648,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);

View File

@@ -1,77 +0,0 @@
/*
* 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"
*/
package org.alfresco.web.bean.coci;
import javax.faces.context.FacesContext;
import org.alfresco.web.app.Application;
public class UploadNewVersionDialog extends CCDoneEditingDialog
{
private final static String MSG_UPLOAD_NEW_VERSION = "upload_new_version";
private final static String MSG_OF = "of";
private boolean finishedEditing = false;
public void setFinishedEditing(boolean finished)
{
this.finishedEditing = finished;
}
public boolean isFinishedEditing()
{
return finishedEditing;
}
@Override
public boolean getFinishButtonDisabled()
{
return property.getFile() == null;
}
@Override
public String getContainerTitle()
{
return Application.getMessage(FacesContext.getCurrentInstance(), MSG_UPLOAD_NEW_VERSION) + " " + Application.getMessage(FacesContext.getCurrentInstance(), MSG_OF) + " '"
+ property.getDocument().getName() + "'";
}
@Override
protected String finishImpl(FacesContext context, String outcome) throws Exception
{
property.setKeepCheckedOut(!finishedEditing);
return checkinFileOK(context, outcome);
}
@Override
public void resetState()
{
super.resetState();
finishedEditing = false;
}
}

View File

@@ -1,223 +0,0 @@
package org.alfresco.web.bean.content;
import java.text.MessageFormat;
import java.util.Map;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.workflow.WorkflowModel;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.InvalidNodeRefException;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.workflow.WorkflowTask;
import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
import org.alfresco.web.app.Application;
import org.alfresco.web.app.context.UIContextService;
import org.alfresco.web.app.servlet.DownloadContentServlet;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import org.alfresco.web.bean.FileUploadBean;
import org.alfresco.web.bean.coci.CCProperties;
import org.alfresco.web.bean.coci.CheckinCheckoutDialog;
import org.alfresco.web.bean.dialog.BaseDialogBean;
import org.alfresco.web.bean.repository.Node;
import org.alfresco.web.bean.repository.Repository;
import org.alfresco.web.ui.common.Utils;
import org.alfresco.web.ui.common.component.UIActionLink;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class EditOfflineDialog extends BaseDialogBean
{
private static final String CLOSE = "close";
public static final String MSG_ERROR_CHECKOUT = "error_checkout";
private static Log logger = LogFactory.getLog(EditOfflineDialog.class);
protected CCProperties property;
public CCProperties getProperty()
{
return property;
}
public void setProperty(CCProperties property)
{
this.property = property;
}
@Override
public String getContainerTitle()
{
return "Download of '" + getProperty().getDocument().getName() + "' for offline editing.";
}
@Override
protected String finishImpl(FacesContext context, String outcome) throws Exception
{
return outcome;
}
@Override
public String getCancelButtonLabel()
{
return Application.getMessage(FacesContext.getCurrentInstance(), CLOSE);
}
public void setupContentAction(ActionEvent event)
{
UIActionLink link = (UIActionLink) event.getComponent();
Map<String, String> params = link.getParameterMap();
String id = params.get("id");
if (id != null && id.length() != 0)
{
setupContentDocument(id);
checkoutFile();
}
else
{
property.setDocument(null);
}
resetState();
}
private Node setupContentDocument(String id)
{
if (logger.isDebugEnabled())
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));
// 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();
}
catch (InvalidNodeRefException refErr)
{
Utils.addErrorMessage(MessageFormat.format(Application.getMessage(
FacesContext.getCurrentInstance(), Repository.ERROR_NODEREF), new Object[] {id}) );
}
return node;
}
public void resetState()
{
// delete the temporary file we uploaded earlier
if (property.getFile() != null)
{
property.getFile().delete();
}
property.setFile(null);
property.setFileName(null);
property.setKeepCheckedOut(false);
property.setMinorChange(true);
property.setCopyLocation(CCProperties.COPYLOCATION_CURRENT);
property.setVersionNotes("");
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);
}
public void checkoutFile()
{
final Node node = property.getDocument();
if (node != null)
{
try
{
if (logger.isDebugEnabled())
logger.debug("Trying to checkout content node Id: " + node.getId());
// checkout the node content to create a working copy
if (logger.isDebugEnabled())
{
logger.debug("Checkout copy location: " + property.getCopyLocation());
logger.debug("Selected Space Id: " + property.getSelectedSpaceId());
}
NodeRef workingCopyRef = null;
if (property.getCopyLocation().equals(CCProperties.COPYLOCATION_OTHER) && property.getSelectedSpaceId() != null)
{
// checkout to a arbituary parent Space
NodeRef destRef = property.getSelectedSpaceId();
ChildAssociationRef childAssocRef = nodeService.getPrimaryParent(destRef);
workingCopyRef = property.getVersionOperationsService().checkout(node.getNodeRef(), destRef, ContentModel.ASSOC_CONTAINS, childAssocRef.getQName());
}
else
{
// checkout the content to the current space
workingCopyRef = property.getVersionOperationsService().checkout(node.getNodeRef());
// if this is a workflow action and there is a task id
// present we need
// to also link the working copy to the workflow package so
// it appears
// in the resources panel in the manage task dialog
if (property.isWorkflowAction() && property.getWorkflowTaskId() != null && (property.getWorkflowTaskId().equals("null") == false))
{
WorkflowTask task = property.getWorkflowService().getTaskById(property.getWorkflowTaskId());
if (task != null)
{
NodeRef workflowPackage = (NodeRef) task.properties.get(WorkflowModel.ASSOC_PACKAGE);
if (workflowPackage != null)
{
nodeService.addChild(workflowPackage, workingCopyRef, ContentModel.ASSOC_CONTAINS, QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, QName
.createValidLocalName((String) nodeService.getProperty(workingCopyRef, ContentModel.PROP_NAME))));
if (logger.isDebugEnabled())
logger.debug("Added working copy to workflow package: " + workflowPackage);
}
}
}
}
// set the working copy Node instance
Node workingCopy = new Node(workingCopyRef);
property.setWorkingDocument(workingCopy);
// 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(workingCopyRef, workingCopy.getName());
workingCopy.getProperties().put("url", url);
workingCopy.getProperties().put("fileType32", Utils.getFileTypeImage(workingCopy.getName(), false));
}
catch (Throwable err)
{
Utils.addErrorMessage(Application.getMessage(FacesContext.getCurrentInstance(), MSG_ERROR_CHECKOUT) + err.getMessage(), err);
}
}
else
{
logger.warn("WARNING: checkoutFile called without a current Document!");
}
}
}

View File

@@ -4,7 +4,7 @@
<faces-config>
<!-- ==================== MANAGED BEANS ==================== -->
<managed-bean>
<description>
The bean for the Delete Category screen.
@@ -43,7 +43,7 @@
<value>#{DocumentDetailsDialog.translationDocument}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>
The bean that make a document multilingual
@@ -755,7 +755,7 @@
<value>#{FormsService}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>
The bean that backs up the Edit Content Wizard
@@ -1135,7 +1135,7 @@
<managed-property>
<property-name>tenantService</property-name>
<value>#{tenantService}</value>
</managed-property>
</managed-property>
</managed-bean>
<managed-bean>
@@ -1301,10 +1301,6 @@
<managed-bean-name>CCProperties</managed-bean-name>
<managed-bean-class>org.alfresco.web.bean.coci.CCProperties</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>versionQueryService</property-name>
<value>#{VersionService}</value>
</managed-property>
<managed-property>
<property-name>versionOperationsService</property-name>
<value>#{CheckoutCheckinService}</value>
@@ -1318,29 +1314,6 @@
<value>#{WorkflowService}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>The bean that help with edit offline procedure.</description>
<managed-bean-name>EditOfflineDialog</managed-bean-name>
<managed-bean-class>org.alfresco.web.bean.content.EditOfflineDialog</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>browseBean</property-name>
<value>#{BrowseBean}</value>
</managed-property>
<managed-property>
<property-name>navigator</property-name>
<value>#{NavigationBean}</value>
</managed-property>
<managed-property>
<property-name>nodeService</property-name>
<value>#{NodeService}</value>
</managed-property>
<managed-property>
<property-name>property</property-name>
<value>#{CCProperties}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>The bean that backs up the Checkin and Checkout pages.</description>
@@ -1364,7 +1337,7 @@
<value>#{CCProperties}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>The bean for the Update File Screen.</description>
<managed-bean-name>CCUpdateFileDialog</managed-bean-name>
@@ -1377,28 +1350,7 @@
<value>#{CCProperties}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>The bean for the Upload a new versoin Screen.</description>
<managed-bean-name>UploadNewVersionDialog</managed-bean-name>
<managed-bean-class>
org.alfresco.web.bean.coci.UploadNewVersionDialog
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>property</property-name>
<value>#{CCProperties}</value>
</managed-property>
<managed-property>
<property-name>navigator</property-name>
<value>#{NavigationBean}</value>
</managed-property>
<managed-property>
<property-name>nodeService</property-name>
<value>#{NodeService}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>
The bean that holds manage content rules state
@@ -1427,7 +1379,7 @@
<value>#{NavigationBean}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>
The bean that holds delete content rules state
@@ -1529,7 +1481,7 @@
<property-name>ownableService</property-name>
<value>#{OwnableService}</value>
</managed-property>
<managed-property>
<property-name>navigator</property-name>
<value>#{NavigationBean}</value>
@@ -1609,7 +1561,7 @@
<value>#{CopyService}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>
Backing bean used by the forum details dialog
@@ -1633,7 +1585,7 @@
<property-name>ownableService</property-name>
<value>#{OwnableService}</value>
</managed-property>
<managed-property>
<property-name>navigator</property-name>
<value>#{NavigationBean}</value>
@@ -1643,7 +1595,7 @@
<value>#{PermissionService}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>
Backing bean used by the forums details dialog
@@ -1676,7 +1628,7 @@
<value>#{PermissionService}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>
Backing bean used by the topic details dialog
@@ -1700,7 +1652,7 @@
<property-name>ownableService</property-name>
<value>#{OwnableService}</value>
</managed-property>
<managed-property>
<property-name>navigator</property-name>
<value>#{NavigationBean}</value>
@@ -2587,7 +2539,7 @@
<property-name>workflowService</property-name>
<value>#{WorkflowService}</value>
</managed-property>
<managed-property>
<managed-property>
<property-name>unprotectedNodeService</property-name>
<value>#{nodeService}</value>
</managed-property>
@@ -2765,7 +2717,7 @@
<value>#{workflowInterpreter}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>Backing bean used for the Web Client Config Admin Console</description>
<managed-bean-name>ConfigAdminConsoleBean</managed-bean-name>
@@ -2798,7 +2750,7 @@
<value>#{tenantInterpreter}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>
The bean that backs up the Email Space Users Dialog
@@ -2876,7 +2828,7 @@
</managed-bean>
<!-- ==================== WCM BEANS ==================== -->
<managed-bean>
<description>
The bean that backs up the Create XML Content Type Wizard
@@ -2974,7 +2926,7 @@
<value>#{FormsService}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>
The bean that backs up the Create XML Content Type Wizard (WCM)
@@ -3186,7 +3138,7 @@
<value>#{FormsService}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>
The bean that backs up the Edit Web Content Wizard
@@ -3511,7 +3463,7 @@
<value>#{FormsService}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>
The bean that backs up the Snapshot Sandbox Dialog
@@ -4192,7 +4144,7 @@
</managed-property>
-->
</managed-bean>
<managed-bean>
<description>
Bean that generates a link component
@@ -4520,7 +4472,7 @@
<managed-bean-class>org.alfresco.web.bean.ajax.PresenceProxyBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<description>
Bean backing the ajax requests for the ajax based picker components
@@ -4635,7 +4587,7 @@
</managed-property>
</managed-bean>
<!-- This is the bean for managing the profiles of one IG -->
<!-- This is the bean for managing the profiles of one IG -->
<managed-bean>
<description>
The bean that backs up the view of the Versioned Properties
@@ -4666,7 +4618,7 @@
<value>#{ContentFilterLanguagesService}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>
The bean that backs up the New User Wizard
@@ -4766,7 +4718,7 @@
<managed-property>
<property-name>tenantService</property-name>
<value>#{tenantService}</value>
</managed-property>
</managed-property>
<managed-property>
<property-name>ownableService</property-name>
<value>#{OwnableService}</value>
@@ -4970,7 +4922,7 @@
<value>#{DictionaryService}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>
The bean for the Edit Category screen.
@@ -5042,7 +4994,7 @@
<value>#{BrowseBean}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>The bean for Apply RSS Template Screen.</description>
<managed-bean-name>ApplyRssTemplateDialog</managed-bean-name>
@@ -5110,7 +5062,7 @@
<value>#{NodeService}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>The bean for Change Current User Password Screen.</description>
<managed-bean-name>ChangeMyPasswordDialog</managed-bean-name>
@@ -5465,20 +5417,6 @@
</managed-property>
</managed-bean>
<managed-bean>
<description>The bean for the Cancel Editing File Screen.</description>
<managed-bean-name>CancelEditingDialog</managed-bean-name>
<managed-bean-class>
org.alfresco.web.bean.coci.CancelEditingDialog
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>property</property-name>
<value>#{CCProperties}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>The bean for the Working Copy Missing Screen.</description>
<managed-bean-name>CCWorkingCopyMissingDialog</managed-bean-name>
@@ -5491,7 +5429,7 @@
<value>#{CCProperties}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>The bean for the Checkin File Screen.</description>
<managed-bean-name>CCCheckinFileDialog</managed-bean-name>
@@ -5504,24 +5442,7 @@
<value>#{CCProperties}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>The bean for the Done-Editing File Screen(New commit dialog).</description>
<managed-bean-name>CCDoneEditingDialog</managed-bean-name>
<managed-bean-class>
org.alfresco.web.bean.coci.CCDoneEditingDialog
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>property</property-name>
<value>#{CCProperties}</value>
</managed-property>
<managed-property>
<property-name>nodeService</property-name>
<value>#{NodeService}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>The bean for the Edit Search Screen.</description>
<managed-bean-name>EditSearchDialog</managed-bean-name>
@@ -5579,7 +5500,7 @@
<value>#{SearchProperties}</value>
</managed-property>
</managed-bean>
<managed-bean>
<description>
The bean that backs up the Create Project Dialog
@@ -5633,7 +5554,7 @@
<value>#{AboutBean}</value>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>CategoryBrowserPluginBean</managed-bean-name>
<managed-bean-class>org.alfresco.web.bean.ajax.CategoryBrowserPluginBean</managed-bean-class>
@@ -5647,7 +5568,7 @@
<value>#{CategoryService}</value>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>CategoryBrowserBean</managed-bean-name>
<managed-bean-class>org.alfresco.web.bean.CategoryBrowserBean</managed-bean-class>
@@ -5657,5 +5578,5 @@
<value>#{NodeService}</value>
</managed-property>
</managed-bean>
</faces-config>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 852 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 912 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 859 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 864 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 954 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 847 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 910 B

View File

@@ -1,48 +0,0 @@
<%--
* 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.ui.common.PanelGenerator" %>
<f:verbatim>
<table cellspacing="0" cellpadding="3" border="0" width="100%">
<tr>
<td width="100%" valign="top">
<% PanelGenerator.generatePanelStart(out, request.getContextPath(), "yellowInner", "#ffffcc"); %>
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td valign=top style="padding-top:2px" width=20></f:verbatim><h:graphicImage url="/images/icons/info_icon.gif" width="16" height="16"/><f:verbatim></td>
<td class="mainSubText"></f:verbatim><h:outputText value="#{msg.cancel_editing_info}" /><f:verbatim></td>
</tr>
</table>
<% PanelGenerator.generatePanelEnd(out, request.getContextPath(), "yellowInner"); %>
</td>
</tr>
</table>
</f:verbatim>

View File

@@ -1,101 +0,0 @@
<%--
* 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 buffer="32kb" contentType="text/html;charset=UTF-8"%>
<%@ page isELIgnored="false"%>
<%@page import="org.alfresco.web.ui.common.PanelGenerator"%>
<a:booleanEvaluator value="#{!DialogManager.bean.versionable}">
<f:verbatim>
<table cellspacing="0" cellpadding="3" border="0" width="100%">
<tr>
<td width="100%" valign="top">
<% PanelGenerator.generatePanelStart(out, request.getContextPath(), "yellowInner", "#ffffcc"); %>
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td valign=top style="padding-top:2px" width=20></f:verbatim><h:graphicImage url="/images/icons/info_icon.gif" width="16" height="16"/><f:verbatim></td>
<td class="mainSubText"> </f:verbatim>
<h:outputText value="#{msg.done_editing}?" /> <f:verbatim>
</td>
</tr>
</table>
<% PanelGenerator.generatePanelEnd(out, request.getContextPath(), "yellowInner"); %>
</td>
</tr>
</table>
</f:verbatim>
</a:booleanEvaluator>
<a:booleanEvaluator value="#{DialogManager.bean.versionable}">
<f:verbatim>
<table cellspacing="0" cellpadding="0" border="0" width="100%">
<tr>
<td>
<table cellpadding="2" cellspacing="2" border="0" width="100%">
<tr>
<td class="wizardSectionHeading"> </f:verbatim>
<h:outputText value="#{msg.version_info}" rendered="#{DialogManager.bean.versionable}" /> <f:verbatim>
</td>
</tr>
<tr>
<td> </f:verbatim>
<h:outputText value="#{msg.new_version_has}" escape="false" rendered="#{DialogManager.bean.versionable}" /> <f:verbatim>
</td>
</tr>
<tr>
<td> </f:verbatim>
<h:selectOneRadio value="#{CCProperties.minorChange}" layout="pageDirection" rendered="#{DialogManager.bean.versionable}" >
<f:selectItem itemValue="#{true}" itemLabel="#{msg.minor_changes} (#{DialogManager.bean.minorNewVersionLabel})" />
<f:selectItem itemValue="#{false}" itemLabel="#{msg.major_changes} (#{DialogManager.bean.majorNewVersionLabel})" />
</h:selectOneRadio> <f:verbatim>
</span> <br/>
</td>
</tr>
<tr>
<td> </f:verbatim>
<h:outputText value="#{msg.version_notes}" rendered="#{DialogManager.bean.versionable}" /> <f:verbatim>
</td>
</tr>
<tr>
<td> </f:verbatim>
<h:inputTextarea value="#{CCProperties.versionNotes}" rows="4" cols="50" rendered="#{DialogManager.bean.versionable}" /> <f:verbatim>
</span></td>
</tr>
<tr>
<td class="paddingRow"> </td>
</tr>
</table>
</td>
</tr>
</table>
</f:verbatim>
</a:booleanEvaluator>

View File

@@ -1,61 +0,0 @@
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html" %>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core" %>
<%@taglib prefix="a" uri="/WEB-INF/alfresco.tld" %>
<%@taglib prefix="c" uri="/WEB-INF/c.tld" %>
<script type="text/javascript">
<!--
setTimeout("document.location.href=" + "\'" + document.getElementById("url") + "\'", 10000);
//-->
</script>
<script type="text/javascript">
<!--
function timer(second)
{
document.getElementById("time").innerHTML = second;
second--;
if (second >=0)
{
window.setTimeout('timer('+second+')', 1000);
}
}
//-->
</script>
<f:verbatim>
<body onload="timer(10)">
&nbsp;&nbsp;&nbsp;</f:verbatim><h:outputText value="#{msg.offline_download_first}"/>
<f:verbatim>&nbsp;<b id="time">10</b>&nbsp;</f:verbatim>
<h:outputText value="#{msg.offline_download_second}"/><f:verbatim>&nbsp;</f:verbatim>
<a:actionLink id="url" style="text-decoration: underline;" value="#{msg.click_here}" href="#{CCProperties.document.properties.url}"/>
<f:verbatim><br/><br/>
&nbsp;&nbsp;&nbsp;</f:verbatim><h:outputText value="#{msg.offline_download_third}"/><f:verbatim>&nbsp;</f:verbatim>
<a:actionLink value="#{msg.click_here}"
action="dialog:userConsole"
actionListener="#{UsersDialog.setupUserAction}"
style="text-decoration: underline;">
<f:param name="id" value="#{NavigationBean.currentUser.person.id}" />
</a:actionLink>
<f:verbatim><br/><br/>&nbsp;&nbsp;&nbsp;</f:verbatim>
<h:graphicImage url="/images/icons/Help_icon.gif" alt="#{msg.help}"/><f:verbatim>&nbsp;&nbsp;</f:verbatim>
<h:outputText value="#{msg.offline_help}"/><f:verbatim>&nbsp;</f:verbatim>
<a:actionLink style="text-decoration: underline;" value="#{msg.click_here}" target="_blank" href="http://wiki.alfresco.com/wiki/Main_Page"/>
<f:verbatim>
<br/>
</f:verbatim>

View File

@@ -1,160 +0,0 @@
<%--
* 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.ui.common.PanelGenerator"%>
<%@ page import="org.alfresco.web.bean.coci.UploadNewVersionDialog"%>
<%@ page import="org.alfresco.web.app.servlet.FacesHelper"%>
<%@ page import="javax.faces.context.FacesContext"%>
<%@ page buffer="32kb" contentType="text/html;charset=UTF-8"%>
<%
boolean fileUploaded = false;
UploadNewVersionDialog dialog = (UploadNewVersionDialog) FacesHelper.getManagedBean(FacesContext.getCurrentInstance(), "UploadNewVersionDialog");
if (dialog != null && dialog.getFileName() != null)
{
fileUploaded = true;
}
%>
<f:verbatim>
<script type="text/javascript" src="<%=request.getContextPath()%>/scripts/validation.js"> </script>
<%
if (fileUploaded)
{
PanelGenerator.generatePanelStart(out, request.getContextPath(), "yellowInner", "#ffffcc");
out.write("<img alt='' align='absmiddle' src='");
out.write(request.getContextPath());
out.write("/images/icons/info_icon.gif' />&nbsp;&nbsp;");
out.write(dialog.getFileUploadSuccessMsg());
PanelGenerator.generatePanelEnd(out, request.getContextPath(), "yellowInner");
out.write("<div style='padding:2px;'></div>");
}
%>
<table cellpadding="2" cellspacing="2" border="0" width="100%">
</f:verbatim>
<a:booleanEvaluator value="#{empty DialogManager.bean.fileName}" ><f:verbatim>
<tr>
<td class="wizardSectionHeading"></f:verbatim><h:outputText value="#{msg.local_copy_location}" /><f:verbatim></td>
</tr>
<tr>
<td></f:verbatim>
<h:panelGrid id="upload_panel" columns="2" cellpadding="2" cellspacing="2" border="0" width="100%" columnClasses="panelGridLabelColumn,panelGridValueColumn" >
<h:outputText value="#{msg.locate_content_upload}" style="padding-left:8px"/>
<f:verbatim/>
<h:outputText id="out_schema" value="#{msg.file_location}:" style="padding-left:8px" />
<h:column id="upload_empty" rendered="#{empty DialogManager.bean.fileName}">
<r:upload id="uploader" value="#{DialogManager.bean.fileName}" framework="dialog"/>
</h:column>
</h:panelGrid>
<f:verbatim>
</td>
</tr>
</f:verbatim>
</a:booleanEvaluator>
<f:verbatim>
<tr>
<td>
</f:verbatim>
<%
if (fileUploaded)
{
%>
<a:booleanEvaluator value="#{DialogManager.bean.versionable}" >
<f:verbatim>
<table cellpadding="2" cellspacing="2" border="0" width="100%">
<tr>
<td class="wizardSectionHeading"> </f:verbatim>
<h:outputText value="#{msg.version_info}" /> <f:verbatim>
</td>
</tr>
<tr>
<td> </f:verbatim>
<h:outputText value="#{msg.new_version_has}" escape="false" /> <f:verbatim>
</td>
</tr>
<tr>
<td> </f:verbatim>
<h:selectOneRadio id="vvvv" value="#{CCProperties.minorChange}" required="true" layout="pageDirection" rendered="#{DialogManager.bean.versionable}">
<f:selectItem itemValue="#{true}" itemLabel="#{msg.minor_changes} (#{DialogManager.bean.minorNewVersionLabel})" />
<f:selectItem itemValue="#{false}" itemLabel="#{msg.major_changes} (#{DialogManager.bean.majorNewVersionLabel})" />
</h:selectOneRadio>
<h:message for="vvvv"></h:message>
<f:verbatim>
</span> <br/>
</td>
</tr>
<tr>
<td> </f:verbatim>
<h:outputText value="#{msg.version_notes}" /> <f:verbatim>
</td>
</tr>
<tr>
<td> </f:verbatim>
<h:inputTextarea value="#{CCProperties.versionNotes}" rows="4" cols="50" /> <f:verbatim>
</span></td>
</tr>
<tr>
<td class="paddingRow"></td>
</tr>
</table> </f:verbatim>
</a:booleanEvaluator>
<f:verbatim>
</td>
</tr>
</f:verbatim>
<f:verbatim>
<tr>
<td class="wizardSectionHeading"></f:verbatim><h:outputText value="#{msg.other_options}" /><f:verbatim></td>
</tr>
<tr>
<td>
</f:verbatim>
<h:selectBooleanCheckbox value="#{DialogManager.bean.finishedEditing}"/> <h:outputText value="#{msg.done_editing_file}"/>
<f:verbatim>
</td>
</tr>
</f:verbatim>
<%
}
%>
<f:verbatim>
</table>
</f:verbatim>