Le boite du dialog d' ExecuteScriptAction

cancel
Showing results for 
Search instead for 
Did you mean: 
mynos86
Member II

Le boite du dialog d' ExecuteScriptAction

bonjour

Depuis qlqe jours j'ai installé un composant sous alfresco share 4.0.d qui permet de choisir et exécuter des fichiers script sous dictionnaire de données/Scripts à partir du lien suivant
http://code.google.com/p/share-extras/wiki/ExecuteScriptAction
j'ai suivi les étapes d'installation de ce lien en générant le fichier .jar
l'installation est effectué avec succés mais lorsque je click sur l'action une boite de message d'echec s'affiche:"could not load dialog template from share/service/extras/modules/documentlibrary/execute-script
pour résoudre ce problème j'ai remplacé
templateUrl: Alfresco.constants.URL_SERVICECONTEXT + "extras/modules/documentlibrary/execute-script"
par
templateUrl: Alfresco.constants.URL_SERVICECONTEXT + "modules/documentlibrary/execute-script"
du fichier source\web\extras\components\documentlibrary\execute-script-action.js
ainsi j'ai enlevé "/extras" de tout les autre fichier de webscript
j'ai regénèré mon fichier .jar , je l'ai mis sous shared/lib et j'ai redémarré cette fois il n'y a plus de message d'erreur mais aussi le dialog template ne s'affiche plus
voici la dernière version de mon fichier execute-script-action.js
/**
* Document library Execute Script action
*
* @namespace Alfresco
* @class Alfresco.doclib.Actions
*/
(function()
{
   /**
    * YUI Library aliases
    */
   var Dom = YAHOO.util.Dom,
      Event = YAHOO.util.Event;

   /**
    * Alfresco Slingshot aliases
    */
   var $html = Alfresco.util.encodeHTML,
      $combine = Alfresco.util.combinePaths;

   /**
    * Preferences
    */
   var PREFERENCES_DASHLET = "org.alfresco.share.documentlibrary.actions",
      PREF_SCRIPT_REF = PREFERENCES_DASHLET + ".executeScriptRef";
  
   /**
    * Execute a script against a document.
    *
    * @method onActionExecuteScript
    * @param asset {object} Object literal representing one or more file(s) or folder(s) to be actioned
    */
   YAHOO.Bubbling.fire("registerAction",
   {
      actionName: "onActionExecuteScript",
      fn: function DL_onActionGeotag(asset)
      {
          // We could also call alfresco/api/action/script/formprocessor with JSON params alf_destination and prop_script-ref
          var nodeRef = asset.nodeRef,
             displayName = asset.displayName,
             actionUrl = Alfresco.constants.PROXY_URI + $combine("slingshot/doclib/action/execute-script/node", nodeRef.replace(":/", ""));

          // Preferences service
          this.services.preferences = new Alfresco.service.Preferences();
         
          // Always create a new instance
          this.modules.executeScript = new Alfresco.module.SimpleDialog(this.id + "-executeScript").setOptions(
          {
             width: "30em",
             templateUrl: Alfresco.constants.URL_SERVICECONTEXT + "modules/documentlibrary/execute-script",
             //templateUrl: Alfresco.constants.URL_SERVICECONTEXT + "extras/modules/documentlibrary/execute-script",
             actionUrl: actionUrl,
             firstFocus: this.id + "-executeScript-script",
             onSuccess:
             {
                fn: function dlA_onActionExecuteScript_success(response)
                {
                   var select = Dom.get(this.id + "-executeScript-script");
                   // Persist script to prefs service
                   this.services.preferences.set(PREF_SCRIPT_REF, select.options[select.selectedIndex].value);
                   YAHOO.Bubbling.fire("metadataRefresh",
                   {
                      highlightFile: displayName
                   });
                   Alfresco.util.PopupManager.displayMessage(
                   {
                      text: this.msg("message.execute-script.success", displayName)
                   });
                },
                scope: this
             },
             onFailure:
             {
                fn: function dlA_onActionExecuteScript_failure(response)
                {
                   Alfresco.util.PopupManager.displayMessage(
                   {
                      text: this.msg("message.execute-script.failure", displayName)
                   });
                },
                scope: this
             },
             doSetupFormsValidation:
             {
                fn: function dlA_onActionExecuteScript_doSetupFormsValidation(p_form)
                {
                   // Validation
                   p_form.addValidation(this.id + "-executeScript-script", function fnValidateType(field, args, event, form, silent, message)
                   {
                      return field.options[field.selectedIndex].value !== "-";
                   }, null, "change");
                   p_form.setShowSubmitStateDynamically(true, false);
                },
                scope: this
             }
          });
          //this._showDialog();
          //this.modules.executeScript.show();
          this.modules.executeScript._showDialog();
      }
   });
})();
j'ai remplacé aussi
this.modules.executeScript.show()
par
this.modules.executeScript._showDialog();
mais le résultat reste le même

j'ai passé des jours à résoudre ce problème mais aucun résultats je suis vraiment bloqué je ne sais pas d'où je commence
pouviez vous m'aider svp
cordialement
mynos86
2 Replies
jayjayecl
Active Member II

Re: Le boite du dialog d' ExecuteScriptAction

En effet, j'ai reproduit le bug.

Je vais essayer de creuser pour comprendre, je vous tiens au courant
jayjayecl
Active Member II

Re: Le boite du dialog d' ExecuteScriptAction

Voilà, j'ai soulevé le bug et sa cause ici :
http://code.google.com/p/share-extras/issues/detail?id=72&thanks=72&ts=1333098404

Vous pouvez suivre ce ticket et attendre sa résolution, ou, à l'aide de mon message et du code source disponible sur Share Extras, recompiler le code pour le faire fonctionner.

Bonne chance !