cancel
Showing results for 
Search instead for 
Did you mean: 

Alfresco Share content rules - Move action form error?

michalwrobel
Champ on-the-rise
Champ on-the-rise
(Alfresco 4.0.a)
I recently tried to add a content rule to move file from one dir to another. But after selecting 'Move' action the destination directory picker doesn't show up. It's fine when selecting copy. I assume it's a small error of Alfresco developers? How to correct it?
p.s
Adding content rule from explorer interface works fine.
4 REPLIES 4

kriton
Champ in-the-making
Champ in-the-making
You could create a javascript that does the move to a destination flder and make an execute javascript rule.

should be simple. i.e:

document.move(companyhome.childByNamePath("sites/my site/documentlibrary"))

mikeh
Star Contributor
Star Contributor
I think this issue was fixed in 4.0.b

Thanks,
Mike

michalwrobel
Champ on-the-rise
Champ on-the-rise
This issue maybe was removed but another emerged.
I can't even reach the Create Rule panel because of server error.
(completely clean install on Ubuntu server from 4.0b.bin installer)
This is the stack:
An error has occured in the Share component: /share/service/components/rules/rule-edit.
It responded with a status of 500 - Internal Error.
Error Code Information: 500 - An error inside the HTTP server which prevented it from fulfilling the request.
Error Message: 10280000 Failed to process template org/alfresco/components/rules/rule-edit.get.html.ftl
Server: Alfresco Spring WebScripts - v1.0.0 (Release Candidate 2 915) schema 1 000
Time: 2011-11-28 13:01:54
Click here to view full technical information on the error.
Exception: freemarker.core.InvalidReferenceException - Expression scripts is undefined on line 79, column 23 in org/alfresco/components/rules/rule-edit.get.html.ftl.
freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:125)
freemarker.core.IteratorBlock.accept(IteratorBlock.java:100)
freemarker.core.Environment.visit(Environment.java:221)
freemarker.core.MixedContent.accept(MixedContent.java:92)
freemarker.core.Environment.visit(Environment.java:221)
freemarker.core.Environment.process(Environment.java:199)
org.springframework.extensions.webscripts.processor.FTLTemplateProcessor.process(FTLTemplateProcessor.java:171)
org.springframework.extensions.webscripts.AbstractWebScript.renderTemplate(AbstractWebScript.java:714)
org.springframework.extensions.webscripts.DeclarativeWebScript.renderFormatTemplate(DeclarativeWebScript.java:267)
org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:147)
org.springframework.extensions.webscripts.PresentationContainer.executeScript(PresentationContainer.java:70)
org.springframework.extensions.webscripts.LocalWebScriptRuntimeContainer.executeScript(LocalWebScriptRuntimeContainer.java:239)
org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:372)
org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:209)
org.springframework.extensions.webscripts.WebScriptProcessor.executeBody(WebScriptProcessor.java:311)
org.springframework.extensions.surf.render.AbstractProcessor.execute(AbstractProcessor.java:57)
org.springframework.extensions.surf.render.RenderService.process(RenderService.java:600)
org.springframework.extensions.surf.render.RenderService.renderSubComponent(RenderService.java:506)
org.springframework.extensions.surf.render.RenderService.renderChromeInclude(RenderService.java:1296)
org.springframework.extensions.webscripts.ChromeIncludeFreeMarkerDirective.execute(ChromeIncludeFreeMarkerDirective.java:81)
freemarker.core.Environment.visit(Environment.java:274)
freemarker.core.UnifiedCall.accept(UnifiedCall.java:126)
freemarker.core.Environment.visit(Environment.java:221)
freemarker.core.MixedContent.accept(MixedContent.java:92)
freemarker.core.Environment.visit(Environment.java:221)
freemarker.core.IfBlock.accept(IfBlock.java:82)
freemarker.core.Environment.visit(Environment.java:221)
freemarker.core.MixedContent.accept(MixedContent.java:92)
freemarker.core.Environment.visit(Environment.java:221)
freemarker.core.Environment.process(Environment.java:199)
org.springframework.extensions.webscripts.processor.FTLTemplateProcessor.process(FTLTemplateProcessor.java:171)
org.springframework.extensions.webscripts.WebTemplateProcessor.executeBody(WebTemplateProcessor.java:455)
org.springframework.extensions.surf.render.AbstractProcessor.execute(AbstractProcessor.java:57)
org.springframework.extensions.surf.render.RenderService.processRenderable(RenderService.java:204)
org.springframework.extensions.surf.render.bean.ChromeRenderer.body(ChromeRenderer.java:95)
org.springframework.extensions.surf.render.AbstractRenderer.render(AbstractRenderer.java:77)
org.springframework.extensions.surf.render.bean.ChromeRenderer.render(ChromeRenderer.java:86)
org.springframework.extensions.surf.render.RenderService.processComponent(RenderService.java:433)
org.springframework.extensions.surf.render.bean.ComponentRenderer.body(ComponentRenderer.java:94)
org.springframework.extensions.surf.render.AbstractRenderer.render(AbstractRenderer.java:77)
org.springframework.extensions.surf.render.RenderService.renderComponent(RenderService.java:962)
org.springframework.extensions.surf.render.RenderService.renderRegionComponents(RenderService.java:901)
org.springframework.extensions.surf.render.RenderService.renderChromeInclude(RenderService.java:1275)
org.springframework.extensions.webscripts.ChromeIncludeFreeMarkerDirective.execute(ChromeIncludeFreeMarkerDirective.java:81)
freemarker.core.Environment.visit(Environment.java:274)
freemarker.core.UnifiedCall.accept(UnifiedCall.java:126)
freemarker.core.Environment.visit(Environment.java:221)
freemarker.core.MixedContent.accept(MixedContent.java:92)
freemarker.core.Environment.visit(Environment.java:221)
freemarker.core.Environment.process(Environment.java:199)
org.springframework.extensions.webscripts.processor.FTLTemplateProcessor.process(FTLTemplateProcessor.java:171)
org.springframework.extensions.webscripts.WebTemplateProcessor.executeBody(WebTemplateProcessor.java:455)
org.springframework.extensions.surf.render.AbstractProcessor.execute(AbstractProcessor.java:57)
org.springframework.extensions.surf.render.RenderService.processRenderable(RenderService.java:204)
org.springframework.extensions.surf.render.bean.ChromeRenderer.body(ChromeRenderer.java:95)
org.springframework.extensions.surf.render.AbstractRenderer.render(AbstractRenderer.java:77)
org.springframework.extensions.surf.render.bean.ChromeRenderer.render(ChromeRenderer.java:86)
org.springframework.extensions.surf.render.bean.RegionRenderer.body(RegionRenderer.java:99)
org.springframework.extensions.surf.render.AbstractRenderer.render(AbstractRenderer.java:77)
org.springframework.extensions.surf.render.RenderService.renderRegion(RenderService.java:852)
org.springframework.extensions.surf.extensibility.impl.RegionDirectiveData.render(RegionDirectiveData.java:90)
org.springframework.extensions.surf.extensibility.impl.ExtensibilityModelImpl.merge(ExtensibilityModelImpl.java:319)
org.springframework.extensions.surf.extensibility.impl.AbstractExtensibilityDirective.merge(AbstractExtensibilityDirective.java:177)
org.springframework.extensions.surf.extensibility.impl.AbstractExtensibilityDirective.execute(AbstractExtensibilityDirective.java:145)
freemarker.core.Environment.visit(Environment.java:274)
freemarker.core.UnifiedCall.accept(UnifiedCall.java:126)
freemarker.core.Environment.visit(Environment.java:221)
freemarker.core.MixedContent.accept(MixedContent.java:92)
freemarker.core.Environment.visit(Environment.java:221)
freemarker.core.Environment.visit(Environment.java:406)
freemarker.core.BodyInstruction.accept(BodyInstruction.java:93)
freemarker.core.Environment.visit(Environment.java:221)
freemarker.core.MixedContent.accept(MixedContent.java:92)
freemarker.core.Environment.visit(Environment.java:221)
freemarker.core.Macro$Context.runMacro(Macro.java:172)
freemarker.core.Environment.visit(Environment.java:614)
freemarker.core.UnifiedCall.accept(UnifiedCall.java:106)
freemarker.core.Environment.visit(Environment.java:221)
freemarker.core.MixedContent.accept(MixedContent.java:92)
freemarker.core.Environment.visit(Environment.java:221)
freemarker.core.Environment.process(Environment.java:199)
org.springframework.extensions.webscripts.processor.FTLTemplateProcessor.process(FTLTemplateProcessor.java:171)
org.springframework.extensions.webscripts.WebTemplateProcessor.executeBody(WebTemplateProcessor.java:455)
org.springframework.extensions.surf.render.AbstractProcessor.execute(AbstractProcessor.java:57)
org.springframework.extensions.surf.render.RenderService.processTemplate(RenderService.java:722)
org.springframework.extensions.surf.render.bean.TemplateInstanceRenderer.body(TemplateInstanceRenderer.java:123)
org.springframework.extensions.surf.render.AbstractRenderer.render(AbstractRenderer.java:77)
org.springframework.extensions.surf.render.bean.PageRenderer.body(PageRenderer.java:85)
org.springframework.extensions.surf.render.AbstractRenderer.render(AbstractRenderer.java:77)
org.springframework.extensions.surf.render.RenderService.renderPage(RenderService.java:763)
org.springframework.extensions.surf.mvc.PageView.dispatchPage(PageView.java:419)
org.springframework.extensions.surf.mvc.PageView.renderView(PageView.java:314)
org.springframework.extensions.surf.mvc.AbstractWebFrameworkView.renderMergedOutputModel(AbstractWebFrameworkView.java:316)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.alfresco.web.site.servlet.MTAuthenticationFilter.doFilter(MTAuthenticationFilter.java:74)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.alfresco.web.site.servlet.SSOAuthenticationFilter.doFilter(SSOAuthenticationFilter.java:307)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Thread.java:619)
Exception: org.springframework.extensions.webscripts.WebScriptException - 10280000 Failed to process template org/alfresco/components/rules/rule-edit.get.html.ftl
org.springframework.extensions.webscripts.processor.FTLTemplateProcessor.process(FTLTemplateProcessor.java:175)

iles
Champ in-the-making
Champ in-the-making
I think this issue was fixed in 4.0.b

Thanks,
Mike
It is not…

Problem lies in javascript file SHARE_HOME/components/rules/config/rule-config-action(-min).js

Both "Move" and "Copy" use functions from "Copy" to render the picker, but the "Copy" action got additional parameter "deep copy" which is null for "Move".


         Copy:
         {
            text: function(configDef, ruleConfig, configEl)
            {
              …
            },
            edit: function(configDef, ruleConfig, configEl)
            {
              ….

               // Make deep-copy visible and make the display label be placed as a unit
               var deepCopy = this._getParamDef(configDef, "deep-copy");
                 deepCopy._type = null;
                 deepCopy._displayLabelToRight = true;
                 deepCopy._hideColon = true;
               return configDef;
            }
         },


When "Move" action is selected, it does not have "deep-copy" so var deepCopy is null and that breaks the code. Just put an if statement that checks for null value like:

               
// Make deep-copy visible and make the display label be placed as a unit
var deepCopy = this._getParamDef(configDef, "deep-copy");
if(deepCopy != null){   
    deepCopy._type = null;
    deepCopy._displayLabelToRight = true;
    deepCopy._hideColon = true;
}
return configDef;

P.S. be sure to minify and replace rule-config-action-min.js