IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

APIs Google Discussion :

[Apps Script] Copier un document et l'ouvrir dans une nouvelle fenêtre


Sujet :

APIs Google

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    mars 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : mars 2019
    Messages : 9
    Points : 5
    Points
    5
    Par défaut [Apps Script] Copier un document et l'ouvrir dans une nouvelle fenêtre
    Bonjour,

    J'ai créé un document Google Sheets, que j'appellerai "Devis", qui va servir de "modèle".

    Sur mon site web, je mets un lien (bouton) vers ce document, qui au clic a pour but de créer une copie du Devis original et d'ouvrir cette copie dans une nouvelle fenêtre (ou nouvel onglet). Cela passe donc par un script qui crée cette copie de "Devis" et l'ouvre.

    N'y connaissant pas grand chose en programmation, j'ai récupéré et ajusté des bouts de code, et cela fonctionne presque :

    Au clic sur le bouton de mon site web, cela ouvre une page html avec un bouton qui, lui, crée la copie de mon document et l'ouvre.

    Cela n'est pas idéal, car 1) la page html est inutile d'un point de vue utilisateur, 2) elle n'est pas du tout sexy, 3) les temps de réponse sont très (trop longs).

    J'aimerais donc ajuster mon code pour :

    - Idéalement : créer à copie directement sans passer par cette page html

    - Si cela n'est pas possible, faire en sorte que la page html soit juste une redirection (de façon à ce que l'utilisateur n'ait pas à cliquer sur le bouton de la page html)

    - Si cela n'est pas possible, afficher une boîte de dialogue au clic sur le bouton de la page html pour informer "chargement en cours" (car actuellement il faut compter 5 secondes après le clic bouton page html avant qu'il se passe quelque chose de façon visible pour l'utilisateur)

    Voici mon code actuel (qui mérite sans doute une optimisation) :

    Code GS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function doGet(e) { return HtmlService.createHtmlOutputFromFile('page');}
    function fctOpenForm(idForm){
      // fonction qui va faire une copie du formulaire pour ensuite l'ouvrir (on préserve ainsi l'original)
      // 1 - on va chercher en fonction de l'id du formulaire le répertoire où il doit être copié
      // 1.1 - on "ouvre" le fichier de configuration var ssConfigId="[mon fichier]";
      var ssConfig=SpreadsheetApp.openById(ssConfigId);
      var idForm ="[id de mon fichier]";
      // 1.3 - on cherche l'id du répertoire de destination de la copie
      var idRepDest="[id de mon dossier de destination]";
      // 1.4 - on cherche le nom du formulaire var nomForm="Devis";
      // 2 - on copie le formulaire var folderDest=DriveApp.getFolderById(idRepDest);
      var newForm=DriveApp.getFileById(idForm).makeCopy("Nouveau"+nomForm,folderDest);
      var newFormId=newForm.getId();
      return newForm.getUrl()
    }
    Code html (page):
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <!DOCTYPE html><html> <body onload='fctOpenFile()'>
      <h1>mon titre</h1>
      <button value="[id de mon fichier]" onclick="fctGo(this)">Démarrer mon devis</button>
    </body>
    <script>
    function fctGo(element){
      var idForm=element.value;
      google.script.run.withSuccessHandler(fctOpenByUrl).fctOpenForm(idForm);
    }
    function fctOpenByUrl(url){
      window.open(url);
    }
    </script>
    </html>

    Pouvez-vous m'aider svp ?

    Merci d'avance !

    Kano

  2. #2
    Futur Membre du Club
    Inscrit en
    juillet 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations forums :
    Inscription : juillet 2008
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Creation fichier Google App Script
    Bonjour,

    As tu résolu ton problème ?

    Si oui peux tu partager ton code et les autorisation d’accès au drive par la fonction DriveApp.getFolderById ?

    Merci

Discussions similaires

  1. target="_blank" pour ouvrir dans une nouvelle fenêtre ou dans un nouvel onglet?
    Par Marc22 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 23/03/2010, 20h56
  2. Réponses: 3
    Dernier message: 07/01/2009, 18h23
  3. Bloquer les liens ou les ouvrir dans une nouvelle fenêtre
    Par Invité2 dans le forum Outlook Express / Windows Mail
    Réponses: 0
    Dernier message: 01/01/2009, 18h33
  4. Ouvrir un document dans une nouvelle fenêtre
    Par pepelele dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 14/03/2008, 11h24
  5. [Struts] Ouvrir dans une nouvelle fenêtre
    Par vallica dans le forum Struts 1
    Réponses: 4
    Dernier message: 17/05/2006, 15h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo