【问题标题】:Show create and upload button only inside specific folder in alfresco Doclib仅在 alfresco Doclib 的特定文件夹内显示创建和上传按钮
【发布时间】:2016-05-04 09:23:34
【问题描述】:

我正在通过 alfresco doclib 中的创建项目操作创建一个项目,如下面的屏幕截图所示。我必须仅在文档库文件夹中创建该项目。因为我在文档库上设置了一条规则,通过 java 脚本代码创建一些动态的默认项目结构。它工作正常。

但现在我面临一个巨大的挑战,那就是在每个子文件夹中,我也得到了创建项目和上传选项。但我不想让用户在每个子文件夹中创建项目。我只想在文档库中展示创建和上传 doclib 操作。和我通过java脚本代码创建的内部目录。所以任何人都可以请帮助我我该怎么做。

提前致谢。

详细了解我的需求,请参考下面的截图。

【问题讨论】:

    标签: alfresco-share


    【解决方案1】:

    在您的 custom-share-config-custom.xml 中,您可以使用评估器来检查 DocLibActions 的条件。

    这是一个仅针对 x:myType 类型的节点显示的操作示例:

    share-amp-slingshot-application-context.xml

    <bean id="evaluator.doclib.action.myCondition" class="org.alfresco.web.evaluator.NodeTypeEvaluator" >
       <property name="types">
            <list>
                <value>x:myType</value>
            </list>
        </property>
    </bean>
    

    share-config-custom.xml

    <action id="example-action" type="javascript" label="....">
        <evaluator>evaluator.doclib.action.myCondition</evaluator>
     </action>
    <evaluator>evaluator.doclib.action.myCondition</evaluator
    

    但是对于像 create-content 这样的顶级菜单,这不起作用。 你可以做的是为你的需要创建一个特定的角色,比如this

    <permissionGroup name="SomeUserPermissions" allowFullControl="false" expose="true">
          <includePermissionGroup permissionGroup="Collaborator" type="cm:cmobject" />
    </permissionGroup>
    

    然后将此特定权限应用于此文件夹上的用户,然后像这样修改您的代码

    <config evaluator="string-compare" condition="DocumentLibrary" > 
         <create-content> 
             <content id="newFolderId" mimetype="text/plain" icon="folder" label="Create Project" itemid="bd:project">
                          <param name="page">create-content?destination={nodeRef}&amp;itemId=cm:content&amp;mimeType=text/plain</param>
            <permissions>
               <permission allow="true">SomeUserPermissions</permission>
            </permissions>
             <content> 
         </create-content> 
    </config>
    

    最后,我建议您在共享战争中查看名为 share-documentlibrary-config.xml 的文档,这将有助于您了解它的工作原理。

    例如,有一段关于标签的文档:

    创建内容菜单项,可以是与通常的 doclib 操作配置匹配的 3 种类型:

    • "link" - 接受一个 "href" 参数,该参数将传递一个 nodeRef 令牌进行替换,用于外部链接
    • "pagelink" - 接受一个 "page" 参数,该参数将传递一个 nodeRef 令牌以进行替换,用于共享链接
    • "javascript" - 接受将当前文件夹项作为第一个参数的操作的 & "function" 参数。

       I.e.
       <content id="plain-text" label="create-content.text" icon="text" type="pagelink">
          <param name="page">create-content?destination={nodeRef}&amp;itemId=cm:content&amp;mimeType=text/plain</param>
          <permissions>
             <permission allow="true">SomeUserPermissions</permission>
          </permissions>
       </content>
      

    请注意,“CreateChildren”权限始终是必需的,如果未授予文件夹权限,则会禁用整个菜单。

    还要注意,旧的/无类型的简单配置仍然是允许的,下面的配置 sn-p 将自动转换为“页面链接”,如上例所示。

         <content id="plain-text" label="create-content.text" icon="text" itemid="cm:content" mimetype="text/plain" 
         permission="SomeUserPermissions"/>
    

    【讨论】:

    • 嗨,Akash,实际上我不知道应该在哪里应用您提供的评估器。在我的情况下,它对我不起作用。你能告诉我我应该在我的代码中在哪里使用该评估器吗? 这是我用来显示创建项目操作的代码。我想根据附件隐藏创建、上传按钮
    • 据我所知,您不能对这种特定情况使用评估器。我一直在为您提供一个操作示例(右键菜单操作)。但是您可以使用特定的权限。我更新我的答案来向你解释。
    • Hii Akah,你试过这个代码吗,其实我试过很多。但它不起作用?你能帮忙吗? :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    • 2015-03-02
    • 1970-01-01
    • 1970-01-01
    • 2019-12-01
    • 1970-01-01
    • 2023-03-09
    相关资源
    最近更新 更多