AnsweredAssumed Answered

Script empéchant de renommer un document

Question asked by crono40 on Apr 2, 2014
Latest reply on Apr 8, 2014 by crono40
Bonjour,

Dans Alfresco Share V4.2.e sous Windows, j'ai réalisé un script permettant de contraindre l'utilisateur à n'importer que des fichiers dont le nom respecte un masque de saisie (XX-XX-XX-XX). Ce script est déclenché grâce à une règle, quand des fichiers sont importés dans le dossier. Si le fichier ne correspond pas à ce formalisme, il est supprimé (document.remove()).

J'aimerai aller un peu plus loin. A ce jour, rien n'empêche l'utilisateur d'importer son fichier nommé au bon format et de le renommer ensuite dans l'application avec un nom au format incorrect.

Je veux donc de la même manière, exécuter une règle lorsque des fichiers sont modifiés et exécuter un script quasi similaire. Celui-ci contrôle que c'est au bon format et si ce n'est pas le cas, empêche de renommer le fichier. C'est la que je coince : je ne sais pas comment empêcher l'utilisateur de renommer un fichier.

Quelqu'un peut-il m'aider ?

Voila le code de mon script utilisé pour l'import des fichiers. Il faudrait juste modifier la fin dans le dernier test
if(!format)



function check()
{
//                                    //
//Fonction de vérification de nom de documents //
//                                    //
//Si le nom d'un document ne respecte pas le format prévu, il est supprimé et n'est donc pas uploadé sur le serveur.
//Format à respecter : XX-XX-XX-XX

      //Variables d'état
      var format = true;
      var trouve = false;
      var i = 0;

      var tabTypeDoc = new Array("CDC", "SFC", "SFG");

      //Récupération du nom du document et séparation selon le caractère -
      var nomDoc =document.properties.name;
      var tabDoc = nomDoc.split("-");

      //Si le format XX-XX-XX-XX est bon
      if(tabDoc.length == 4)
      {
         //Traitement de la dernière partie, pour retirer le format du fichier
         var tabNum = tabDoc[3].split(".");
         //Si le nom du fichier ne commence pas par AA, ce n'est pas bon
         if(tabDoc[0] != "AA")
         {
            format = false;
         }

         //Parcours de la liste des types de document pour voir si un type correspond
         //Si ce n'est pas le cas et que le parcours est fini, pas le bon format
         while (i < tabTypeDoc.length && trouve ==false)
         {
            if(tabTypeDoc == tabDoc[2])
            {
               trouve = true;
            }
            i++;
         }

         //S'il a parcouru toute la liste et qu'il ne l'a pas trouvé, ce n'est pas bon
         if( i == tabTypeDoc.length && !trouve)
         {
            format = false;
         }

         //On vérifie que le Numéro ne contient que des chiffres
         if( !/^\d+$/.test(tabNum[0]))
         {
            format = false;
         }
      }
      else
      {
         format = false;
      }

      if(!format)
      {
         document.remove();
      }
   }
check();

Outcomes