Chrono

Pré-requis

Installer l'extension "Chrono"

  1. Télécharger le fichier chrono.zip et le décompresser.

  2. Menu → Admin → Transfer In.

  3. Importer le fichier JSON.

Configuration

Pour afficher le chrono et intégerer l'extension, insérer le code suivant dans l'onglet "Script JS" de la table :

$("#timer").val("00m 00s 00");
clearInterval(timerInterval);

Load_chrono(thisComponent);

Exemple

function onLoad_chrono() {
  var thisComponent = this;

  $("#timer").val("00m 00s 00");
  clearInterval(timerInterval);

  Load_chrono(thisComponent);

  return true;
}

Résultat

Chrono

vsCode

Installation

  1. Installez l'extension GoPaaS Script Editor depuis le store des extensions de Visual Studio Code.
  2. Créez un dossier avec le nom de votre application dans votre espace de travail local.
  3. Dans ce dossier, ajoutez un fichier config.json contenant la configuration suivante :
{
    "API_ENDPOINT": "https://{application-url}/",
    "BEARER_TOKEN": "{your-bearer-token}"
}
  • API_ENDPOINT : URL de votre application GoPaaS.
  • BEARER_TOKEN : Token d'authentification (Bearer) pour accéder à l'application GoPaaS.

Utilisation de l'Extension

  • Pour récupérer les scripts en local :

    • Dans la barre de commande de Visual Studio Code, tapez > Pull GoPaaS Scripts JS pour télécharger tous les fichiers JavaScript de votre application GoPaaS en local.

      Hearder Top
  • Pour envoyer vos modifications vers GoPaaS :

    • Après avoir modifié un script, tapez > Push GoPaaS Scripts JS dans la barre de commande pour envoyer vos modifications vers l'application GoPaaS.

      Hearder Top

Utiliser Git pour gérer les développements en équipe

Afin de travailler efficacement à plusieurs sur le même projet GoPaaS et éviter les conflits, il est recommandé d'utiliser un dépôt Git partagé. Voici la procédure de collaboration :

  1. L'administrateur du projet :

    • Utilise l'extension pour récupérer le code de GoPaaS en local.
    • Initialise un dépôt Git local dans le dossier de l'application.
    • Pousse le code récupéré vers un dépôt Git distant (par exemple, GitHub).
  2. Les développeurs :

    • Clonent le dépôt Git distant en local pour obtenir la dernière version du code.
    • Travaillent sur les scripts en local et poussent sur GoPaaS pour tester.
    • Une vois validé ils poussent leurs modifications vers le dépôt Git.
  3. Gestion des conflits :

    • Si d'autres modifications ont été faites entre-temps, GitHub proposera un Merge.
    • Résoudre les éventuels conflits avant de finaliser le merge.
---
config:
  theme: redux
  primaryColor: '#BB2528'
---
flowchart TD
    %% Groupes
    subgraph Admin Team
        n2["Admin"] 
        n3["Admin"]
    end

    subgraph DevOps Team
        n5["DevOps"]
    end

    subgraph Platforms
        A(["GoPaaS"])
        B["VSCode"]
        C["GitHub"]
    end

    %% Flux principal
    A -->|pull all| B
    B -->|Push all| C

    %% Flux côté Admin/DevOps
    n2 --> A
    n3 --> n4(["GitHub"])
    n5 --> n4
    n4 -->|clone/pull| n6["VSCode"]
    n6 -->|push one table| n7["GoPaaS"]
    n6 -->|Push| n8["GitHub"]

    %% Styles
    style A color:#2962FF
    style n7 color:#2962FF
    style C color:#00C853
    style n4 color:#00C853
    style n8 color:#00C853
    style Admin Team fill:#FFF9C4,stroke:#FDD835,stroke-width:2px
    style DevOps Team fill:#E8F5E9,stroke:#66BB6A,stroke-width:2px
    style Platforms fill:#E8F5E9,stroke:#AED581,stroke-width:2px

Exemples de Commandes Git

  • Initialiser un dépôt Git (pour l'administrateur) :

      git init
      git add .
      git commit -m "Initial commit from GoPaaS"
      git remote add origin https://github.com/your-repo.git
      git push -u origin main
  • Récupérer les dernières modifications du dépôt Git (pour les développeurs) :

      git pull origin main
  • Envoyer les modifications locales vers le dépôt Git (pour les développeurs) :

      git add .
      git commit -m "Modifications locales"
      git push origin main
  • Récupérer les contributions des développeurs et pousser vers GoPaaS (pour l'administrateur) :

      git pull origin main
      # Résoudre les éventuels conflits si nécessaire
      > Push GoPaaS Script JS

societe.com

Description

L'extension GoPaaS SOCIETE.COM permet de récupérer des informations sur une entreprise directement depuis société.com.

Une fois installée et configurée, cette extension ajoute un bouton qui permet d'envoyer les données de la fiche de l'entreprise directement dans votre application GoPaaS. Cette extension ne fonctionne que lorsque vous êtes sur une URL au format https://www.societe.com/societe/xxxxx.html. Par exemple, depuis une page comme : https://www.societe.com/societe/nids-consulting-482064706.html.

L'extension est disponible sur le Chrome Web Store : https://chromewebstore.google.com/

Configuration

Après avoir installé l'extension, rendez-vous sur le panneau de contrôle :

Hearder Top

Puis suivez les étapes de configuration suivantes :

  1. Paramétrer les accès GoPaaS :

    • Renseignez l'URL de votre instance GoPaaS.
    • Ajoutez votre Bearer Token.
    • Sélectionnez la table cible dans laquelle vous souhaitez stocker les informations récupérées.
    Hearder Top
  2. Réaliser le mapping des champs :

    • Associez les champs correspondants dans GoPaaS.
    • Seuls les champs nécessaires peuvent être mappés ; vous n'êtes pas obligé de tous les mapper.
    Hearder Top

Utilisation

  1. Allez sur la page société.com de l'entreprise que vous souhaitez ajouter à GoPaaS.

  2. Cliquez sur le bouton Envoyer vers GoPaaS.

    Hearder Top
  3. Une confirmation vous sera demandée pour vérifier si vous souhaitez créer une fiche pour cette entreprise.

  4. Si vous cliquez sur Oui, la fiche est créée, et vous êtes directement redirigé vers la fiche de votre application GoPaaS, qui s'ouvre dans un nouvel onglet.

Exportation et Importation de la Configuration

Il est possible d'exporter la configuration de l'extension pour la réutiliser sur un autre poste. Cela permet aux collaborateurs d'avoir la même configuration sans avoir à la recréer manuellement. Pour cela :

  • Allez dans les paramètres de l'extension.
  • Exportez la configuration sous forme de fichier.
  • Importez ensuite ce fichier de configuration sur un autre poste.

viewMapDirection

Prérequis

Importer le fichier "viewMapDirection.json":

  1. Télécharger le fichier viewMapDirection.zip et le décompresser.

  2. Menu → Admin → Transfer In.

  3. Sélectionner le fichier “viewMapDirection.json”.

Paramètres

Param Type Description
destinations tableau Tableau contenant les différents points sous la forme : adresse, cp, ville
fields tableau Tableau d'objets contenant divers paramètres :
cle (cle de la fiche, obligatoire)
markerColor (couleur du point en hexadicimal, obligatoire)
Titre (titre de l'information, optionnel)
Valeur (valeur de l'information, optionnel)


Exemple : "cle" : "20240301_nids", "markerColor" : "FF0000", "Entreprise" : "NiDS CONSULTING", "Contact" : "Francis" ...
tableName string Nom de la table

Exemple

Pour afficher le bouton "Afficher sur une carte" et intégerer l'extension, insérer le code suivant dans l'onglet "Script JS" de la vue et/ou de la vue liée :

thisComponent.ui.find(".glyphicon-search").after("<button id='btnShowMap' type='button' role='button' class='btn btn-info' style='margin-left:5px; color:white;' title='Afficher sur une carte'><i class='fas fa-map-marker-alt'></i>&nbsp;<span class='trn'>Afficher sur une carte</span></button>");
  thisComponent.ui.find("#btnShowMap").on('click', async function(){
    destinations = [];
    fields = [];
    tableName = "actions";

    $.get('webservice/view/list-item.php', {
      "tableName": "actions",
      "viewName": "LinkVisiteActions",
      "filter_value": itemComponent.getValue("cle")
    }).done(function (items) {
      for(let i = 0; i < items.rows.length; i++){
        fields.push({"cle" : items.rows[i].cle, "markerColor" : items.rows[i].code_couleur, "Entreprise": items.rows[i].nom_entreprise, "Ville": items.rows[i].ville, "CP": items.rows[i].cp, "Contact": items.rows[i].prenom + ' ' + items.rows[i].nom + ' ' + items.rows[i].telephone, "RDV" : gopaas.date.toFr(items.rows[i].date_debut) + ' à ' + items.rows[i].heure_debut});
        var concat = items.rows[i].adresse + ", " + items.rows[i].ville + ", " + items.rows[i].cp;
        destinations.push(concat.toString());
      }

      viewMapDirection(destinations, fields, tableName);
    });
  });

Résultat

screenshot

N'hésitez pas à ajuster ces informations en fonction de votre cas d'utilisation spécifique.

L'extension est modifiable, vous pouvez l'adapter à vos besoins.

viewImageGallery

Prérequis

Installer l'extension "viewImageGallery"

  1. Télécharger le fichier viewImageGallery.zip et le décompresser.

  2. Menu → Admin → Transfer In.

  3. Sélectionner le fichier “viewImageGallery.json”.

Paramètres

Param Type Description
tableName string Nom de la table
viewName string Nom de la vue liée
columnName string Nom du champ contenant la photo

Exemple

Pour afficher le bouton "Afficher les photos dans la galerie" et intégerer l'extension, insérer le code suivant dans l'onglet "Script JS" de la vue liée :

thisComponent.ui.find(".glyphicon-search").after("<button id='btnShowGallery' type='button' role='button' class='btn btn-ajouter' style='margin-left:5px; background-color:#296294; color:white;' title='Afficher les photos dans la galerie'><i class='fas fa-images'></i>&nbsp;&nbsp;<span class='trn'>Afficher les photos dans la galerie</span></button>");

thisComponent.ui.find("#btnShowGallery").on("click", function() {

 var imageGallery_options = {
  tableName : "tableName", 
  viewName : "viewName", 
  columnName : "columnName"
 };

 viewImageGallery(itemComponent, imageGallery_options);
});

Résultat

screenshot

Le champ contenant la photo doit être ajouter dans la vue liée. Le champ contenant la photo peut être du type image ou fichier.

viewExtractPDF

Prérequis

Importer le fichier "viewExtractPDF.json":

  1. Télécharger le fichier viewExtractPDF.zip et le décompresser.

  2. Menu → Admin → Transfer In.

  3. Sélectionner le fichier “viewExtractPDF.json”.

Paramètres

Param Type Description
tableName string Nom de la table dans laquelle enregistrer les informations extraites
pjFieldName string Nom du champ de type fichier
fieldName string Noms du champ dans lequel stocker les informations extraites
page float Numéro de la page ou se situe les informations
coord objet Contient les coordonnées de l'élément recherché
x_min float Valeur définissant la position horizontale minimale de l'élément recherché
x_max float Valeur définissant la position horizontale maximale de l'élément recherché
y_min float Valeur définissant la position verticale minimale de l'élément recherché
y_max float Valeur définissant la position verticale maximale de l'élément recherché

Mode debug

Le mode debug permet aux administrateurs de récupérer les valeurs de la position horizontale et verticale d'un élément contenu dans un fichier PDF en réalisant une recherche par mot-clé.

Pour passer en mode debug, le paramètre "debug" doit être renseigné à "true" :

let debug = true;
viewExtractPDF(options, async function(data){}, debug);

screenshot

Exemple

Pour afficher le bouton "ExtractPDF" et intégerer l'extension, insérer le code suivant dans l'onglet "Script JS" de la vue :

var viewbar = Component.find("Viewbar", this);
let debug = false;
viewbar.addTool("<span><i class='fas fa-file-pdf'></i>&nbspExtractPDF</span>", function(){

    let options = {
        tableName : "file", 
        pjFieldName : "fichier", 
        values : [
            {
                fieldName : "reference", 
                page : 1, 
                coord : {
                    x_min : 66, 
                    x_max : 76, 
                    y_min : 682, 
                    y_max : 687
                }
            },
            {
                fieldName : "adresse_sinistre", 
                page : 3, 
                coord : {
                    x_min : 147, 
                    x_max : 157, 
                    y_min : 659, 
                    y_max : 664
                    }
            }
        ]
    };

    viewExtractPDF(options, function(callback){
        console.log(callback);
    }, debug);
});

Résultat

screenshot

itemAddButton

Prérequis

Installer l'extension "itemAddButton"

  1. Télécharger le fichier itemAddButton.zip et le décompresser.

  2. Menu → Admin → Transfer In.

  3. Sélectionner le fichier “itemAddButton.json”.

Paramètres

Param Type Description
id string id du bouton
position string Position du bouton : "right", "top", "bottom", "connection", "section" et "tools"
elementId string id de l'élément parent du bouton
icon string Icône font-awesome du bouton
style string Style du bouton : "primary", "success", "danger", "warning" et "info"
label string Titre du bouton
function string Fonction à exécuter sur le clic du bouton
col int Index de la class "col-sm" du conteneur parent de l'élément qui a pour id "elementId"

Exemple

Pour ajouter des boutons sur des champs de la fiche et intégerer l'extension, insérer le code suivant dans l'onglet "Script JS" de la table :

let thisComponent = this;
let buttons = [
  {id: "button_1", position: "top", elementId: "type_compte", icon: "fas fa-users", style: "primary", label: "Bouton 1", function: "nom_fonction1()", col : 9},
  {id: "button_2", position: "connection", elementId: "societe_mere", icon: "fas fa-users", function: "nom_fonction2()"},
  {id: "button_3", position: "tools", icon: "fas fa-users", style: "warning", label: "Bouton 3", function: "nom_fonction3()"},
  {id: "button_4", position: "section", elementId: "section_1339", icon: "fas fa-users", style: "info", label: "Bouton 4", function: "nom_fonction4()"},
  {id: "button_5", position: "right", elementId: "email", icon: "fas fa-users", style: "danger", label: "Bouton 5", function: "nom_fonction5()", col : 9},
  {id: "button_6", position: "bottom", elementId: "siret", icon: "fas fa-users", style: "success", label: "Bouton 6", function: "nom_fonction6()", col : 9}
];

itemAddButton(thisComponent, buttons);

Pour ajouter des boutons sur une vue liée, insérer le code suivant dans l'onglet "Script JS" de la vue liée :

let thisComponent = this;
let buttons = [
  {id : "button_7", position : "view", elementId : "LinkCompteFile", style : "primary", icon : "fas fa-users", label : "Bouton 7"}
];

itemAddButton(thisComponent, buttons);

Résultat

screenshot screenshot screenshot

N'hésitez pas à ajuster ces informations en fonction de votre cas d'utilisation spécifique.

L'extension est modifiable, vous pouvez l'adapter à vos besoins.

dropFile

Pré-requis

Installer l'extension "dropfile"

  1. Télécharger le fichier dropfile.zip et le décompresser.

  2. Menu → Admin → Transfer In.

  3. Sélectionner le fichier “dropfile.json”.

Paramètres

Param Type Description
tableName string Nom de la table
fieldName string Nom du champ de type "Fichier" à utiliser
fileName string Nom du champ de type "Texte" à utiliser pour enregistrer le nom du fichier
imageSize object Redimensionnement maximum des images (longueur, largeur) en pixel (option)
fieldConnection string Nom de la "connexion" à utiliser dans le cas d'une vue liée (option)
trigItemName string Clé de la fiche parent dans le cas d'une vue liée (option)
update object Mise à jour des autres champs de la fiche

Exemple

Pour afficher le bouton "Ajouter des fichiers" et intégerer l'extension, insérer le code suivant dans l'onglet
"Script JS" de la vue liée :

function onLoad_view[VIEW_ID](){
    let thisComponent = this;
    let itemComponent = Component.find("Item",this);

    thisComponent.ui.find('.glyphicon-search').after("<button id='btnDragNDrop' style='margin-left: 5px' class='btn btn-primary'>Ajouter des fichiers</button>");

    thisComponent.ui.find('#btnDragNDrop').on('click', function() {

        let object = {
            tableName : "file", 
            fileName : "nom_fichier", 
            fieldName : "fichier", 
            fieldConnection : "compte", 
            trigItemName : itemComponent.getValue("cle"),
            imageSize : {width : 1920, height : 1080}
        };

        let update = {type : "En attente"};

        dropfile(thisComponent, object, update);
    });

    return true;
}

Résultat

screenshot

N'hésitez pas à ajuster ces informations en fonction de votre cas d'utilisation spécifique.*

L'extension est modifiable, vous pouvez l'adapter à vos besoins.*