From 189422edce93082b6c8f8c1331616ba455f81bac Mon Sep 17 00:00:00 2001 From: Kevin Roast Date: Tue, 19 Jan 2010 11:50:05 +0000 Subject: [PATCH] Merged V3.2E to HEAD 17495: Changed xforms-samples name to wcm-sample 17496: Minor fixes for day and week views when rendering new events 17497: *RECORD ONLY* Added Enterprise logo local copy. 17498: ETHREEOH-2933 - User can see contents of the moderated site if user is not a member of the site - Site containers are now private and non member's can't see content. - fix only applies to new moderated sites. 17499: ETHREEOH-2322 - Office Plugin: filename overlaps the plugin UI if longer than 40 characters without spaces 17500: Temorary build fix for site visibility 17508: ETHREEOH-1268 - Pages and Components show varying degrees of success handling "site not found" errors. 17509: Fix for ETHREEOH1733 - Wrong display of multi day events in Share 17514: View In Browser action for document list and document details actions. 17515: Merged DEV-TEMPORARY to V3.2 17471: ETHREEOH-3193: 'capitalize' in output path pattern works differently for templates (vs. XSDs) 17516: Missing css file from Edit Offline changes. Also "Checked out on/by" text changed to "Editing started on/by". Tags now comma separated 17517: Merged DEV-TEMPORARY to V3.2 17474: ETHREEOH-1211: Can't See Images in TinyMCE 17518: Office add-in: ETHREEOH-3361 - Workflow name is visible only before symbol &, ETHREEOH-2735 - Total number of founded items is not shown 17519: 3.2E help links 17520: 3.2E help links, plus ETHREEOH-1536 - Incorrect "insert into current document" function work for unsupported files in MS Office Addin 17522: Fix for ETHREEOH-3257 - Event becomes All day again after editing it to not All day 17526: Fix for unreported issue when rendering an edited event after the view is filtered via tag component causes an script error 17528: Fixed ETHREEOH-3364 " Admin Console - Group Search needs to show searching message and disable further requests while search is running" - Disabling search button & message displaying "Searching..." after 2 seconds for long searches for the following components: * Admin Console: Users - search user, add group * Admin Console: Groups - search group, add group, add user * Site: Members: People - search members, add people * Site: Members: Groups - search membergroups, add group * Site: Members: Pending invites - search invites * Site: Doclib: Assign Workflow - add users * People Finder * Site Finder - All component listed above uses max search result except the following where webscript services lacks support for it: * Admin Console: Users - add group * Admin Console: Groups - search group, add group * Site: Members: Pending invites - search invites - Bugfix: When minSearchTermLength is set to 0: * Group Admin Console: switched to browse view * User Admin Console: didnt do a search - Bugfix: For some components minSearchTermLength & maxSearchResults were brought in as strings causing the global search's max result to be 1001 instead of 101 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@18126 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../alfresco/messages/office-addin.properties | 2 +- .../messages/office-addin_de_DE.properties | 2 +- config/alfresco/web-client-config.xml | 2 +- .../web/bean/wcm/CreateWebContentWizard.java | 3 +- .../web/forms/FormInstanceDataImpl.java | 2 +- .../web/forms/RenderingEngineTemplate.java | 3 +- .../forms/RenderingEngineTemplateImpl.java | 8 ++-- source/web/css/office.css | 7 ++++ source/web/css/office_ie6.css | 11 ++++-- .../scripts/ajax/tiny_mce_wcm_extensions.js | 2 +- source/web/scripts/ajax/xforms.js | 17 ++++++-- .../web/scripts/office/external_component.js | 4 +- source/web/scripts/office/my_alfresco.js | 2 +- source/web/scripts/office/my_tasks.js | 24 +++++++----- source/web/scripts/office/navigation.js | 12 +++--- source/web/scripts/office/office_addin.js | 39 +++---------------- source/web/scripts/office/search.js | 6 +-- 17 files changed, 72 insertions(+), 74 deletions(-) diff --git a/config/alfresco/messages/office-addin.properties b/config/alfresco/messages/office-addin.properties index 07ef67110b..ff6d287669 100644 --- a/config/alfresco/messages/office-addin.properties +++ b/config/alfresco/messages/office-addin.properties @@ -11,7 +11,7 @@ office.title.document_tags=Document Tags # Help office.help.title=Online Help -office.help.url=http://www.alfresco.com/help/32/labs/msaddin/ +office.help.url=http://www.alfresco.com/help/32/enterprise/msaddin/ # Headers and Subheaders office.header.my_checked_out_documents=My Checked Out Documents diff --git a/config/alfresco/messages/office-addin_de_DE.properties b/config/alfresco/messages/office-addin_de_DE.properties index 1ed867ca9e..1cf75912f3 100644 --- a/config/alfresco/messages/office-addin_de_DE.properties +++ b/config/alfresco/messages/office-addin_de_DE.properties @@ -11,7 +11,7 @@ office.title.document_tags=Dokumente Tags # Help office.help.title=Online-Hilfe -office.help.url=http://www.alfresco.com/help/32/labs/msaddin/ +office.help.url=http://www.alfresco.com/help/32/enterprise/msaddin/ # Headers and Subheaders office.header.my_checked_out_documents=Meine ausgecheckten Dokumente diff --git a/config/alfresco/web-client-config.xml b/config/alfresco/web-client-config.xml index 2213098d62..38508cb3d3 100644 --- a/config/alfresco/web-client-config.xml +++ b/config/alfresco/web-client-config.xml @@ -72,7 +72,7 @@ false - http://www.alfresco.com/help/32/labs/ecmexplorerhelp/ + http://www.alfresco.com/help/32/enterprise/ecmexplorerhelp/ diff --git a/source/java/org/alfresco/web/bean/wcm/CreateWebContentWizard.java b/source/java/org/alfresco/web/bean/wcm/CreateWebContentWizard.java index 40f6c513df..36fbac635a 100644 --- a/source/java/org/alfresco/web/bean/wcm/CreateWebContentWizard.java +++ b/source/java/org/alfresco/web/bean/wcm/CreateWebContentWizard.java @@ -489,6 +489,7 @@ public class CreateWebContentWizard extends CreateContentWizard { // get the parent path of the location to save the content String fileName = this.getFileName(); + String contentName = fileName; if (logger.isDebugEnabled()) logger.debug("saving file content to " + fileName); @@ -579,7 +580,7 @@ public class CreateWebContentWizard extends CreateContentWizard { try { - path = ret.getOutputPathForRendition(this.formInstanceData, cwd); + path = ret.getOutputPathForRendition(this.formInstanceData, cwd, contentName); if (logger.isDebugEnabled()) logger.debug("About to render path: " + path); diff --git a/source/java/org/alfresco/web/forms/FormInstanceDataImpl.java b/source/java/org/alfresco/web/forms/FormInstanceDataImpl.java index 03f3019dc9..10e4b65d6e 100644 --- a/source/java/org/alfresco/web/forms/FormInstanceDataImpl.java +++ b/source/java/org/alfresco/web/forms/FormInstanceDataImpl.java @@ -258,7 +258,7 @@ import org.xml.sax.SAXException; try { renditionLockedBefore = false; - path = ret.getOutputPathForRendition(this, originalParentAvmPath); + path = ret.getOutputPathForRendition(this, originalParentAvmPath, getName()); if (logger.isDebugEnabled()) logger.debug("regenerating rendition of " + this.getPath() + diff --git a/source/java/org/alfresco/web/forms/RenderingEngineTemplate.java b/source/java/org/alfresco/web/forms/RenderingEngineTemplate.java index 6742a7ee32..bdcdc11a60 100644 --- a/source/java/org/alfresco/web/forms/RenderingEngineTemplate.java +++ b/source/java/org/alfresco/web/forms/RenderingEngineTemplate.java @@ -72,10 +72,11 @@ public interface RenderingEngineTemplate * @param formInstanceData the form instance data to use for * processing the pattern. * @param currentAVMPath the current path where the form is being created. + * @param name the name which is used in a pattern * @return the output path for the rendition. */ public String getOutputPathForRendition(final FormInstanceData formInstanceData, - final String currentAVMPath); + final String currentAVMPath, final String name); /** * Returns the mimetype to use when generating content for this diff --git a/source/java/org/alfresco/web/forms/RenderingEngineTemplateImpl.java b/source/java/org/alfresco/web/forms/RenderingEngineTemplateImpl.java index 96b64aebe9..55b522963a 100644 --- a/source/java/org/alfresco/web/forms/RenderingEngineTemplateImpl.java +++ b/source/java/org/alfresco/web/forms/RenderingEngineTemplateImpl.java @@ -214,10 +214,11 @@ public class RenderingEngineTemplateImpl * * @param formInstanceData the form instance data to use for the rendition path. * @param currentAVMPath the current path in which the form is being created. + * @param name the name which is used in a pattern * * @return the output path to use for renditions. */ - public String getOutputPathForRendition(final FormInstanceData formInstanceData, final String currentAVMPath) + public String getOutputPathForRendition(final FormInstanceData formInstanceData, final String currentAVMPath, final String name) { final ServiceRegistry sr = this.getServiceRegistry(); final AVMService avmService = sr.getAVMLockingAwareService(); @@ -234,8 +235,7 @@ public class RenderingEngineTemplateImpl : null); root.put("webapp", webappName); - final String formInstanceDataName = formInstanceData.getName(); - root.put("name", formInstanceDataName.replaceAll("(.+)\\..*", "$1")); + root.put("name", name); root.put("extension", sr.getMimetypeService().getExtension(this.getMimetypeForRendition())); Document formInstanceDataDocument = null; @@ -268,7 +268,7 @@ public class RenderingEngineTemplateImpl { logger.error(te.getMessage(), te); throw new AlfrescoRuntimeException("Error processing output path pattern " + outputPathPattern + - " for " + formInstanceDataName + + " for " + name + " in webapp " + webappName + ":\n" + te.getMessage(), te); diff --git a/source/web/css/office.css b/source/web/css/office.css index ef6342c6fc..4ea8e26458 100644 --- a/source/web/css/office.css +++ b/source/web/css/office.css @@ -70,6 +70,13 @@ input.button { overflow-x: hidden; } +.ellipsis { + margin: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + .tabBar { float: left; width: 100%; diff --git a/source/web/css/office_ie6.css b/source/web/css/office_ie6.css index 5fe6b0e7e8..9e9562e1a9 100644 --- a/source/web/css/office_ie6.css +++ b/source/web/css/office_ie6.css @@ -1,7 +1,8 @@ .header { - padding: 5px 0px 0px 4px; - margin: 0px 0px 0px -1px; height: 16px; + margin: 0px 0px 0px -1px; + padding: 5px 0px 0px 4px; + width: 260px; } .tabBar .help { @@ -9,9 +10,9 @@ } .toggle { + left: -3px; margin-top: 0px; position: relative; - left: -3px; } .containerBig, .containerBigAlt, .containerMedium, .containerSmall, .containerSearchTerms, .containerSearchResults, .containerTabMedium, #currentSpaceInfo, #myAlfrescoActions, #navigationActions, #documentActions { @@ -24,4 +25,8 @@ .tabBarInline, .tabHeader, .taggedFound { margin: 0px 1px; +} + +.taskResources { + width: 268px; } \ No newline at end of file diff --git a/source/web/scripts/ajax/tiny_mce_wcm_extensions.js b/source/web/scripts/ajax/tiny_mce_wcm_extensions.js index aa256101ea..fb5d268065 100644 --- a/source/web/scripts/ajax/tiny_mce_wcm_extensions.js +++ b/source/web/scripts/ajax/tiny_mce_wcm_extensions.js @@ -57,7 +57,7 @@ function alfresco_TinyMCE_urlconverter_callback(href, element, onsave) } // handle URL issue with IE (WCM-1134) - if (tinyMCE.isMSIE) + if (navigator.appName == "Microsoft Internet Explorer" || tinyMCE.isMSIE) { var server = document.location.protocol + "//" + document.location.host; if (href.startsWith(server)) diff --git a/source/web/scripts/ajax/xforms.js b/source/web/scripts/ajax/xforms.js index f4db2f1abf..ef3f72a23f 100644 --- a/source/web/scripts/ajax/xforms.js +++ b/source/web/scripts/ajax/xforms.js @@ -967,9 +967,21 @@ alfresco.xforms.RichTextEditor = alfresco.xforms.Widget.extend({ $each(this.widget.getElementsByTagName("img"), function(img, index) { - if (img.getAttribute("src") && img.getAttribute("src").match("^/")) + + var href = img.getAttribute("src"); + //Fix for ETHREEOH-1211 + if (navigator.appName == "Microsoft Internet Explorer" || tinyMCE.isMSIE) { - img.setAttribute("src", alfresco.constants.AVM_WEBAPP_URL + img.getAttribute("src")); + var server = document.location.protocol + "//" + document.location.host; + if (href.startsWith(server)) + { + href = href.substring(server.length); + } + } + + if (href && href.match("^/")) + { + img.setAttribute("src", alfresco.constants.AVM_WEBAPP_URL + href); } }); @@ -4755,7 +4767,6 @@ alfresco.constants.TINY_MCE_DEFAULT_SETTINGS = height: -1, auto_resize: false, force_p_newlines: false, - forced_root_block:false, encoding: "UTF-8", entity_encoding: "raw", add_unload_trigger: false, diff --git a/source/web/scripts/office/external_component.js b/source/web/scripts/office/external_component.js index 572b9a9c0c..be8e65608e 100755 --- a/source/web/scripts/office/external_component.js +++ b/source/web/scripts/office/external_component.js @@ -236,7 +236,7 @@ var OpenOffice = new Class( with (this) { var newUrl = params.folderPath + "callexternal?extcall=&action=" + methodName - + "&path=" + path + "&ts=" + new Date().getTime() + + "&path=" + encodeURIComponent(path) + "&ts=" + new Date().getTime() + (params.ticket != "" ? "&ticket=" + params.ticket : ""); logDebug('doExternalCall', 'url=' + newUrl); $("if_externalComponenetMethodCall").src = newUrl; @@ -249,7 +249,7 @@ var OpenOffice = new Class( with (this) { var newUrl = params.folderPath + "callexternal?extcall=&action=" + methodName - + "&path=" + path + "&filename=" + filename + "&ts=" + new Date().getTime() + + "&path=" + encodeURIComponent(path) + "&filename=" + encodeURIComponent(filename) + "&ts=" + new Date().getTime() + (params.ticket != "" ? "&ticket=" + params.ticket : ""); logDebug('doExternalCallEx', 'url=' + newUrl); $("if_externalComponenetMethodCall").src = newUrl; diff --git a/source/web/scripts/office/my_alfresco.js b/source/web/scripts/office/my_alfresco.js index d7cb367817..5c70046141 100644 --- a/source/web/scripts/office/my_alfresco.js +++ b/source/web/scripts/office/my_alfresco.js @@ -51,7 +51,7 @@ var OfficeMyAlfresco = // register 'click' event for each task task.addEvent('click', function(e) { - window.location.href = window.serviceContextPath + "/office/myTasks" + OfficeAddin.defaultQuery + "&t=" + task.id; + window.location.href = window.serviceContextPath + "/office/myTasks" + OfficeAddin.defaultQuery + "&t=" + encodeURIComponent(task.id); }); }); diff --git a/source/web/scripts/office/my_tasks.js b/source/web/scripts/office/my_tasks.js index 1f5b841a0d..f88b7255a6 100644 --- a/source/web/scripts/office/my_tasks.js +++ b/source/web/scripts/office/my_tasks.js @@ -40,7 +40,7 @@ var OfficeMyTasks = } }); } - + if ($('wrkDueDate')) { var dueDate = new DatePicker($('wrkDueDate'), @@ -118,7 +118,10 @@ var OfficeMyTasks = // highlight the item title task.addClass('taskItemSelected'); - OfficeAddin.showStatusText("Loading task...", "ajax_anim.gif", false); + if (!window.queryObject.st) + { + OfficeAddin.showStatusText("Loading task...", "ajax_anim.gif", false); + } // ajax call to load task details var actionURL = window.serviceContextPath + "/office/myTasksDetail" + OfficeAddin.defaultQuery + "&t=" + task.id.replace(/\./, "$"); @@ -128,7 +131,10 @@ var OfficeMyTasks = headers: {'If-Modified-Since': 'Sat, 1 Jan 2000 00:00:00 GMT'}, onComplete: function(textResponse, xmlResponse) { - OfficeAddin.hideStatusText(); + if (!window.queryObject.st) + { + OfficeAddin.hideStatusText(); + } $("taskDetails").innerHTML = textResponse; } }).request(); @@ -221,15 +227,15 @@ var OfficeMyTasks = } OfficeAddin.showStatusText("Starting workflow...", "ajax_anim.gif", false); - var actionURL = commandURL + "?a=workflow&n=" + Doc; - actionURL += "&wt=" + wrkType; - actionURL += "&at=" + wrkAssignTo; + var actionURL = commandURL + "?a=workflow&n=" + encodeURIComponent(Doc); + actionURL += "&wt=" + encodeURIComponent(wrkType); + actionURL += "&at=" + encodeURIComponent(wrkAssignTo); // Date supplied? if (wrkDueDate !== "") { - actionURL += "&dd=" + wrkDueDate; + actionURL += "&dd=" + encodeURIComponent(wrkDueDate); } - actionURL += "&desc=" + wrkDescription; + actionURL += "&desc=" + encodeURIComponent(wrkDescription); var myAjax = new Ajax(actionURL, { method: 'get', @@ -253,7 +259,7 @@ var OfficeMyTasks = }, /* AJAX call to perform server-side actions */ - runAction: function(useTemplate, action, nodeId, confirmMsg) + runTaskAction: function(useTemplate, action, nodeId, confirmMsg) { // Re-select a selected task after reload var taskSel = $E('#taskList .taskItemSelected'), diff --git a/source/web/scripts/office/navigation.js b/source/web/scripts/office/navigation.js index f393350f11..0904c15891 100644 --- a/source/web/scripts/office/navigation.js +++ b/source/web/scripts/office/navigation.js @@ -295,12 +295,12 @@ var OfficeNavigation = saveOK: function() { - // Shortcut for double-event firing issue - if (this.popupPanel === null) - { - return; - } - + // Shortcut for double-event firing issue + if (this.popupPanel === null) + { + return; + } + var filename = $('saveFilename').value.trim(), currentPath = this.popupPanel.currentPath, cancelSave = false; diff --git a/source/web/scripts/office/office_addin.js b/source/web/scripts/office/office_addin.js index 53a7a1261f..ceed520e51 100644 --- a/source/web/scripts/office/office_addin.js +++ b/source/web/scripts/office/office_addin.js @@ -16,7 +16,7 @@ var OfficeAddin = window.serviceContextPath = OfficeAddin.getServiceContextPath(); /* Update needed after page load? */ - if(this.queryObject.st) + if (this.queryObject.st) { var objResponse = Json.evaluate(this.queryObject.st), imgSuccess = (objResponse.statusCode ? "action_successful.gif" : "action_failed.gif"), @@ -72,10 +72,10 @@ var OfficeAddin = }); if (fadeOut) { - fx.onComplete = function() + fx.chain(function() { OfficeAddin.hideStatusText.delay(OfficeAddin.STATUS_FADE); - }; + }); } var fxBackground = (typeof colBackground == "undefined") ? "#ffffcc" : colBackground; fx.start(fxBackground, "#ffffff"); @@ -103,7 +103,7 @@ var OfficeAddin = }, runAction: function(httpMethod, useTemplate, action, nodeId, confirmMsg, inParams, outParams) { - if ((confirmMsg !== null) && (confirmMsg !== "")) + if (confirmMsg && confirmMsg !== "") { if (!window.confirm(confirmMsg)) { @@ -259,33 +259,4 @@ var OfficeAddin = } }; -function htmlWordWrap(elementId, lineWidth, sentence) -{ - if(!elementId || (elementId.length < 1) || !sentence || (sentence.length < 1) || (lineWidth <= 0)) - { - return; - } - - var result = ""; - var i = 0; - - for(; (sentence.length - i) >= lineWidth; i += lineWidth) - { - result += sentence.substr(i, lineWidth) + "
"; - } - if((sentence.length - i) > 0) - { - result += sentence.substr(i, (sentence.length - i)); - } - else - { - result = result.substr(0, (result.length - 6)); - } - var nameElement = document.getElementById(elementId); - if(undefined != nameElement) - { - nameElement.innerHTML = result; - } -} - -window.addEvent('domready', OfficeAddin.init); +window.addEvent('domready', OfficeAddin.init); \ No newline at end of file diff --git a/source/web/scripts/office/search.js b/source/web/scripts/office/search.js index e4ceda7953..8b3cafda68 100644 --- a/source/web/scripts/office/search.js +++ b/source/web/scripts/office/search.js @@ -29,13 +29,9 @@ var OfficeSearch = { strFound = "No items found"; } - else if (shownResults < totalResults) - { - strFound = "Showing first " + shownResults + " of " + totalResults + " total items found"; - } else { - strFound = "Showing all " + shownResults + " items found"; + strFound = shownResults + " items found"; } $('itemsFound').innerHTML = strFound; },