alfresco:在dashlet中打开任务

时间:2018-03-22 11:31:20

标签: javascript url-routing alfresco alfresco-share

我有自动打开任务的进程。

问题是它在" embedded-documentlibrary"中打开了它。 dashlet而不是当前窗口: enter image description here

我在编辑任务之前尝试更改document.URL但结果相同..

这是我的Javascript:

window.onload = function() {

/* appelé lors de la constitution du dashboard */
var me = this; 
var allActiveTasks = document.location.origin+"/share/page/my-tasks";
var dashboard = document.location.origin+"/share/page/site/documed/dashboard";
var lastUrlLoading = document.location.origin+"/share/page/site/documed/embedded-documentlibrary";
console.log("document.URL : " +document.URL);
console.log("lastUrlLoading : "+lastUrlLoading);
//history.pushState({}, null, dashboard);
//console.log("nouvel url : "+document.URL);

var taskIdList=[] ; 
var dashletNameList=[] ;
var nextTask = "";

// depuis le dashboard
if (document.URL == lastUrlLoading){    

    // 1er reload du dashboard :
     console.log("localStorage.getItem('oldDashlet') = "+ localStorage.getItem('oldDashlet'));
     if(localStorage.getItem('oldDashlet') != "") {                                                              

    // requête qui récupère TOUTES les tâches actives du user
    Alfresco.util.Ajax.request({

            // Note : Alfresco.constants.PROXY_URI = http://localhost:8080/share/proxy/alfresco/

            url: Alfresco.constants.PROXY_URI+ "api/task-instances?authority="+Alfresco.constants.USERNAME,
            method: Alfresco.util.Ajax.GET,
            responseContentType: Alfresco.util.Ajax.JSON,
            successCallback: {
                fn: function generateForm_onSuccess(response){

                    var json = JSON.parse(response.serverResponse.responseText);

                    console.log("json.data : "+json.data);
                    // gestion de toutes les tâches actives du user, récupérées
                    if(json.data!="") {

                         // sauvegarde de chaque id et du nom de la dashlet associée
                         for(var i = 0; i < json.data.length; i++) {
                                taskIdList.push(json.data[i].id);
                                dashletNameList.push(json.data[i].properties["wfvd_nomService"]);
                         }

                        // récupération de la première tâche de la Daslet en cours de traitement
                         for(var i = 0; i < dashletNameList.length; i++) {
                             if (dashletNameList[i] == localStorage.getItem('oldDashlet')) {
                                 nextTask = taskIdList[i];
                                 i = dashletNameList.length;
                             }
                         }

                         if (nextTask != ""){
                             console.log("nouvelle tâche - même dashlet " +nextTask)

                             history.pushState({}, null, dashboard);

                             console.log("nouvel url : "+document.URL);
                             window.location.href = document.location.origin+'/share/page/site/documed/task-edit?taskId=' +nextTask;

                         } else {
                             console.log("toutes les tâches de la dashlet ont été traitées");
                             //Alfresco.util.navigateTo("site/documed/dashboard");
                             localStorage.setItem('oldDashlet', '');
                         }  

                    }
                }
            }
        });
     }
}
};

我不明白为什么它会在dashlet中打开任务

我第一次点击任务时,会在新标签页中打开表单。提交表单后,仪表板将被重新下载,并在&#34; embedded-documentlibrary&#34;中自动打开下一个任务。 dashet而不是新标签。

1 个答案:

答案 0 :(得分:0)

@ Krutik Jayswal,这就是我在这个webview章程中发现的:

Share-jar src / main / resources / alfresco / templates / {project_name} /embedded-documentlibrary.ftl:

<#include "include/alfresco-template.ftl" />
<#include "include/documentlibrary.inc.ftl" />
<@templateHeader>
   <@markup id="location-hash">
   <@documentLibraryJS />
   </@>
   <@markup id="resizer">
      <script type="text/javascript">//<![CDATA[
         new Alfresco.widget.Resizer("DocumentLibrary").setOptions({
            initialWidth: 166
         });
      //]]></script>
   </@>
   <@script type="text/javascript" src="${url.context}/res/modules/documentlibrary/doclib-actions.js" group="documentlibrary"></@script>
</@>

<@templateBody>
<#--   <@markup id="alf-hd">
   <div id="alf-hd">
      <@region scope="global" id="share-header" chromeless="true"/>
   </div>
   </@>-->
<div></div>
   <@markup id="bd">
   <div id="bd">
      <@region id="actions-common" scope="template"/>
      <div class="yui-t1" id="alfresco-documentlibrary">
         <div class="yui-b" id="alf-filters">
            <@region id="filter" scope="template"/>
            <@region id="tree" scope="template"/>
            <@region id="categories" scope="template" />
            <@region id="tags" scope="template"/>
         </div>
         <div id="yui-main">
            <div class="yui-b" id="alf-content">
               <@region id="documentlist_v2" scope="template"/>
            </div>
         </div>
      </div>

      <@region id="html-upload" scope="template"/>
      <@region id="flash-upload" scope="template"/>
      <@region id="file-upload" scope="template"/>
      <@region id="dnd-upload" scope="template"/>
      <@region id="archive-and-download" scope="template"/>
   </div>
   <@region id="doclib-custom" scope="template"/>
   </@>
</@>
<div></div>

<#--<@templateFooter>
   <@markup id="alf-ft">
   <div id="alf-ft">
      <@region id="footer" scope="global"/>
   </div>
   </@>
</@>-->

Share-jar src / main / resources / alfresco / templates / {project_name} / include /documentlibrary.inc.ftl

<#--
   DocumentLibrary Template "documentLibraryJS" macro.
   Client-side JavaScript to parse initial page parameters.
-->
<#macro documentLibraryJS>
<script type="text/javascript">//<![CDATA[
(function()
{
   var $combine = Alfresco.util.combinePaths;

   // If no location.hash exists, convert certain params in location.search to location.hash and replace the page
   var loc = window.location;
   if (loc.hash === "" && loc.search !== "")
   {
      var qs, q, url = loc.protocol + "//" + loc.host + loc.pathname, hash = "";
      qs = Alfresco.util.getQueryStringParameters();

      var hashParams =
      {
         "path": true,
         "page": true,
         "filter": true
      },
         filterDataParam = "filterData";

      for (q in qs)
      {
         if (qs.hasOwnProperty(q) && q in hashParams)
         {
            if (q === "path")
            {
               hash += "&" + "filter=" + encodeURIComponent("path|" + qs[q]);
            }
            else
            {
               hash += "&" + encodeURIComponent(q) + "=" + encodeURIComponent(qs[q]);
               if (q === "filter")
               {
                  // Check for filterData in QueryString for the "filter" case
                  if (qs.hasOwnProperty(filterDataParam))
                  {
                     hash += escape("|" + qs[filterDataParam]);
                     delete qs[filterDataParam];
                  }
               }
            }
            delete qs[q];
         }
      }

      if (hash.length > 0)
      {
         url += Alfresco.util.toQueryString(qs) + "#" + hash.substring(1);
         window.location.replace(url);
      }
   }
})();
//]]></script>
</#macro>

分享-罐/ SRC /主/资源/露天/网络的扩展/站点数据/的网页 /embedded-documentlibrary.xml

<?xml version='1.0' encoding='UTF-8'?>
<page>
   <title>Document Library</title>
   <title-id>page.documentLibrary.title</title-id>
   <description>Document library with Tree view</description>
   <description-id>page.documentLibrary.description</description-id>
   <template-instance>embedded-documentlibrary</template-instance>
   <authentication>user</authentication>
</page>

共享罐/ SRC /主/资源/露天/网络的扩展/站点数据/的模板实例 /embedded-documentlibrary.xml

<?xml version='1.0' encoding='UTF-8'?>
<template-instance>
   <template-type>com/klinck/mc/cac/embedded-documentlibrary</template-type>
   <properties>
      <pageFamily>documentlibrary</pageFamily>
      <container>documentLibrary</container>
   </properties>
   <components>

      <!-- Title -->
      <component>
         <region-id>title</region-id>
         <url>/components/title/collaboration-title</url>
      </component>

      <!-- Navigation -->
      <component>
         <region-id>navigation</region-id>
         <url>/components/navigation/collaboration-navigation</url>
      </component>

      <!-- Actions -->
      <component>
         <region-id>actions-common</region-id>
         <url>/components/documentlibrary/actions-common</url>
         <properties>
            <dependencyGroup>documentlibrary</dependencyGroup>
         </properties>
      </component>

      <!-- Toolbar -->
      <component>
         <region-id>toolbar</region-id>
         <url>/components/documentlibrary/toolbar</url>
      </component>

      <!-- Documentlist -->
      <component>
         <region-id>documentlist</region-id>
         <url>/components/documentlibrary/documentlist</url>
         <properties>
            <pagination>true</pagination>
            <dependencyGroup>documentlibrary</dependencyGroup>
         </properties>
      </component>

      <component>
         <region-id>documentlist_v2</region-id>
         <url>/components/documentlibrary/documentlist_v2</url>
         <properties>
            <pagination>true</pagination>
            <dependencyGroup>documentlibrary</dependencyGroup>
         </properties>
      </component>

      <!-- Filter -->
      <component>
         <region-id>filter</region-id>
         <url>/components/documentlibrary/filter</url>
      </component>

      <!-- Tree -->
      <component>
         <region-id>tree</region-id>
         <url>/components/documentlibrary/tree</url>
         <properties></properties>
      </component>

      <!-- Categories -->
      <component>
         <region-id>categories</region-id>
         <url>/components/documentlibrary/categories</url>
      </component>

      <!-- Tags -->
      <component>
         <region-id>tags</region-id>
         <url>/components/tag-filter</url>
         <properties>
            <scoped>true</scoped>
         </properties>   
      </component>

      <!-- Uploaders -->
      <component>
         <region-id>html-upload</region-id>
         <url>/components/upload/html-upload</url>
      </component>
      <component>
         <region-id>flash-upload</region-id>
         <url>/components/upload/flash-upload</url>
      </component>
      <component>
         <region-id>file-upload</region-id>
         <url>/components/upload/file-upload</url>
      </component>
      <component>
         <region-id>dnd-upload</region-id>
         <url>/components/upload/dnd-upload</url>
      </component>
      <component>
         <region-id>archive-and-download</region-id>
         <url>/components/download/archive</url>
      </component>

      <!-- Custom Code -->
      <component>
         <region-id>doclib-custom</region-id>
         <url>/components/documentlibrary/doclib-custom</url>
      </component>

   </components>
</template-instance>