cancel
Showing results for 
Search instead for 
Did you mean: 

Estendere action presente su alfresco share

need
Champ in-the-making
Champ in-the-making
Buonasera a tutti, dovrei modificare o estendere il comportamento dell'action copy-move-to presente su Alfresco share. Praticamente dovrei fare in modo che quando viene schiacciato il pulsante OK invece che riportarmi nella pagina di dettaglio mi deve portare nella pagina edit-metadata del path in cui ho copiato il doc. Mi sono visto il codice e ho localizzato l'action e il template che costruiscono il pop-up ma non capisco come dare un comportamento al pulsante OK. mi sono visto i file action.js
      /**
       * Copy single document or folder.
       *
       * @method onActionCopyTo
       * @param asset {object} Object literal representing the file or folder to be actioned
       */
      onActionCopyTo: function dlA_onActionCopyTo(asset)
      {
         this._copyMoveTo("copy", asset);
      },

      /**
       * Move single document or folder.
       *
       * @method onActionMoveTo
       * @param asset {object} Object literal representing the file or folder to be actioned
       */
      onActionMoveTo: function dlA_onActionMoveTo(asset)
      {
         this._copyMoveTo("move", asset);
      },

      /**
       * Copy/Move To implementation.
       *
       * @method _copyMoveTo
       * @param mode {String} Operation mode: copy|move
       * @param asset {object} Object literal representing the file or folder to be actioned
       * @private
       */
      _copyMoveTo: function dlA__copyMoveTo(mode, asset)
      {
         // Check mode is an allowed one
         if (!mode in
            {
               copy: true,
               move: true
            })
         {
            throw new Error("'" + mode + "' is not a valid Copy/Move to mode.");
         }

         if (!this.modules.copyMoveTo)
         {
            this.modules.copyMoveTo = new Alfresco.module.DoclibCopyMoveTo(this.id + "-copyMoveTo");
         }

         this.modules.copyMoveTo.setOptions(
         {
            mode: mode,
            siteId: this.options.siteId,
            containerId: this.options.containerId,
            path: this.currentPath,
            files: asset,
            workingMode: this.options.workingMode,
            rootNode: this.options.rootNode,
            parentId: this.doclistMetadata.parent.nodeRef
         }).showDialog();
      },
  e il web script copy-move-to. Mi date qualche suggerimento che serve almeno per localizzare il codice per pensare alla modifica? Grazie a tutti.
2 REPLIES 2

need
Champ in-the-making
Champ in-the-making
Buongiorno forse ho trovato il codice che associa l'evento js al pulsante OK, sono nuovo delle Yui library è per questo che ho tutti questi dubbi. Posto il codice secondo voi è questo?

onOK: function DLCMT_onOK(e, p_obj)
      {
         var files, multipleFiles = [], params, i, j,
            eventSuffix =
            {
               copy: "Copied",
               move: "Moved"
            };

         // Single/multi files into array of nodeRefs
         if (YAHOO.lang.isArray(this.options.files))
         {
            files = this.options.files;
         }
         else
         {
            files = [this.options.files];
         }
         for (i = 0, j = files.length; i < j; i++)
         {
            multipleFiles.push(files[i].nodeRef);
         }
        
         // Success callback function
         var fnSuccess = function DLCMT__onOK_success(p_data)
         {
            var result,
               successCount = p_data.json.successCount,
               failureCount = p_data.json.failureCount;

            this.widgets.dialog.hide();

            // Did the operation succeed?
            if (!p_data.json.overallSuccess)
            {
               Alfresco.util.PopupManager.displayMessage(
               {
                  text: "COPIATO O SPOSTATO"//this.msg("message.failure")
               });
               return;
            }

            YAHOO.Bubbling.fire("files" + eventSuffix[this.options.mode],
            {
               destination: this.currentPath,
               successCount: successCount,
               failureCount: failureCount
            });
           
            for (var i = 0, j = p_data.json.totalResults; i < j; i++)
            {
               result = p_data.json.results[i];
              
               if (result.success)
               {
                  YAHOO.Bubbling.fire((result.type == "folder" ? "folder" : "file") + eventSuffix[this.options.mode],
                  {
                     multiple: true,
                     nodeRef: result.nodeRef,
                     destination: this.currentPath
                  });
               }
            }

            Alfresco.util.PopupManager.displayMessage(
            {
               text: "COPIATO O SPOSTATO!!!!!!"//this.msg("message.success", successCount)
            });
         };

ho notato che se modifico il messaggio di conferma come sopra, mi compare sempre lo stesso anche se la riga è commentata. Allora mi fa pensare che non sia questo il file? Dove sbaglio?

Grazie a tutti.

need
Champ in-the-making
Champ in-the-making
Ok sbagliavo questo, vi posto la mia domanda sul forum in inglese e la riposta di MikeH: https://forums.alfresco.com/en/viewtopic.php?f=48&t=41668.

Adesso come ho scritto sul forum.com, una strada che mi viene in mente per risolvere il mio problema è quella che dopo il messaggio di conferma viene fatta una chiamata ajax che carica la pagina document-details e gli passo il nuovo nodeRef. E' una via percorribile? Oppure esiste un modo meno costoso e più efficente?

Scusate per le troppe domande ma la parte client di Alfresco non mi è ancora molto chiara.

Grazie a tutti.