1.16.0 • Published 5 years ago

securedapp v1.16.0

Weekly downloads
-
License
ISC
Repository
-
Last release
5 years ago

SecuredApp

A Node.js package that is a secured app.

Usage

First, install the package using npm:

npm install securedapp --save

#File App.js: C'est le fichier de demarrage de l'application.

Exemple de fihcier:

/*-----------------------*/
/* Configuration globale */
/*-----------------------*/
// definition des messaged recu par le soket en provenance du client
let MyServerMessage = (Soket) => { 
    Soket.on('SendTest1', (data) => {
        Soket.emit('Test1', data + " " + data);
    })
}
// Option du serveur
const OptionServer = {
    AppName: "TestApp", // Nom de l'application
    Port: 3000, // Port du serveur
    DebugSerever:true, // Affichier les message de debug du serveur
    AppIsSecured: true, // L'application est elle securisee par un login
    JWTSecret: "JSWTSecret", // phrase secrete pour le JWT
    EncryptSecret: "EncryptSecret", // phrase secrete pour coder le token
    ServerMessage : MyServerMessage, // La fonction de reception des messages sur le serveur
    MongoUrl: "mongodb://login:pass@ipserveur:27017", //Url du serveur mongo avec login:pass@ipserveur:port
    MongoDbName: "DBName",  // Nom de la DB
    CSS: {FontSize:{TexteNomrale:"2vw", TexteIphone:"3vw", TexteMax:"20px",TitreNormale:"4vw", TitreIphone:"7vw", TitreMax:"50px"},
        Color:{Normale:"rgb(20, 163, 255)"}},
    Icon: "/apple-icon-192x192.png"
}

/*---------------------*/
/* Creation du serveur */
/*---------------------*/
let securedapp = require('securedapp').securedapp
let MyServer = new securedapp(OptionServer)
MyServer.AddClientSuperAdminJsFiles("/TestClient/IndexAdmin.js", ["/TestClient/Test1.js","/TestClient/Test2.js"])
MyServer.AddClientJsFiles("Client", "/TestClient/IndexClient.js", ["/TestClient/Test1.js"])
MyServer.Start() // Lancement du serveur

Explication des fonctions

// Définition du fichier index et des fichiers js du SuperAdmin
MyServer.AddClientSuperAdminJsFiles(Index.js, ListeOfJsFiles)

// Définition du fichier index et des fichiers js pour un role déterminé
MyServer.AddClientJsFiles(Role, Index.js, ListeOfJsFiles)

Voici les fonction Mongo disponibles (let Mongo = require('securedapp').Mongo):

  • Mongo.CollectionExist(Collection, Url, DbName, DoneCallback, ErrorCallback)
  • Mongo.FindPromise(Querry, Projection, Collection, Url, DbName)
  • Mongo.FindQuerryProjection(Querry, Projection, Collection, Url, DbName, DoneCallback, ErrorCallback)
  • Mongo.FindAll(Collection, Url, DbName, DoneCallback, ErrorCallback)
  • Mongo.InsertOne(Data, Collection, Url, DbName, DoneCallback, ErrorCallback)
  • Mongo.UpdateById(Id, Newvalues, Collection, Url, DbName, DoneCallback, ErrorCallback)
  • Mongo.DeleteById(Id, Collection, Url, DbName, DoneCallback, ErrorCallback)

#File IndexClient.js: Fichier de demarrage de l'application coté client. Il contient:

  • la définition du CSS globale
  • la creation du client
  • la creation des différentes pages du client
  • Le lancement du client

Exemple de fichier:

/* Definition du CSS */
let CSS = GlobalGetCss()
const GlobalCss = /*html*/`
    <style>
    /* Variable */
    :root {
        --App-color: `+ CSS.Color.Normale +`;
        --App-font-size :`+ CSS.FontSize.TexteNomrale +`;
        --App-Iphone-font-size :`+ CSS.FontSize.TexteIphone +`;
        --App-Max-font-size :`+ CSS.FontSize.TexteMax +`;
    }
    </style>
`

/* Creation de l'application */
var MyApp = new ClientSecuredApp()
MyApp.SetCssGlobal(GlobalCss)

/* Definition de la page 1 */
var Page1 = new Page1Data()
MyApp.AddUi(Page1)
MyApp.DefineFirstUI(Page1)

/* Start de l'application */
MyApp.Start()

#File Test1.js:
C'est un fichier de definition d'une class UI a ajouter à l'application principale (via un extends ClientSecuredUI)

Voici les fonction disponibles :

  • super.AddAction("Nom", "Fct();") permet d'ajouter une action
  • super.CleanAction() permet de supprimer toutes les actions de la liste des actions
  • super.GetGlobalNameFunction(Fct) renvoie le nom gloable de la Fct (avec le nom de l'objet)
  • ClientSecuredApp.GetSocket() retourne l'objet Socket
  • ClientSecuredApp.BuildWindow(UIHtml) crée une fenetre avec le contenu UIHtml
  • ClientSecuredApp.DeleteWindow() supprime la fenetre
  • ClientSecuredApp.ErrorWindow("c'est une erreur...") Genère une fenetre d'erreur
  • ClientSecuredApp.GetNoImageBase64 reception du code base64 de no image
  • GlobalGetUserLogin() Retourne le Login du user
  • GlobalGetCss() Retourne un objet contenant le CSS Global

Le Css Globale est un objet :

{
    FontSize:{TexteNomrale:"2vw", TexteIphone:"3vw", TexteMax:"20px",TitreNormale:"4vw",TitreIphone:"7vw", TitreMax:"50px"},
    Color:{Normale:"rgb(20, 163, 255)"}
}

Exemple de fichier:

class Page1Data extends ClientSecuredUI{
    constructor(){
        super("UI page 1")
    }
    Html () {
        return /*html*/`
        <div id="Global_Titre" >NEw UI page 1</div>
        <button id="Test1But" onclick="Page1.ClickTest1();">Test1</button>
        <button id="Test2But" onclick="Page1.ClickTest2();">Test2</button>
        `
    }
    Css () {
        return /*html*/`
        <style>
        
        @media screen and (max-width: 980px) and (orientation : portrait) {
        }

        @media screen and (min-width: 1200px){   
        }
        </style>
        `
    }
    GetImageSvgBase64() {
        return "SVG-In-Base64"
    }
    InitSocketIo() {
        let socket = ClientSecuredApp.GetSocket()
        socket.on('Test1', (data) =>{
            alert("socket " + data)
        })
    }
    Start(){
        super.AddAction("Test1", "ClickTest1();")
        super.AddAction("Test2", "ClickTest2();")
    }
    /*________________________________________*/

    ClickTest1() {
        let socket = ClientSecuredApp.GetSocket()
        socket.emit('SendTest1','coucou');
    }
    ClickTest2() {
        ClientSecuredApp.ErrorWindow("c'est une erreur...")
    }
}

License

ISC

1.16.0

5 years ago

1.15.0

5 years ago

1.14.0

5 years ago

1.13.0

5 years ago

1.12.0

5 years ago

1.11.0

5 years ago

1.10.0

5 years ago

1.9.0

5 years ago

1.8.0

5 years ago

1.7.0

5 years ago

1.6.0

5 years ago

1.5.0

5 years ago

1.4.0

5 years ago

1.3.0

5 years ago

1.2.2

5 years ago

1.2.1

5 years ago

1.2.0

5 years ago

1.1.0

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

0.0.36

5 years ago

0.0.35

5 years ago

0.0.34

5 years ago

0.0.33

5 years ago

0.0.32

5 years ago

0.0.31

5 years ago

0.0.30

5 years ago

0.0.29

5 years ago

0.0.28

5 years ago

0.0.27

5 years ago

0.0.26

5 years ago

0.0.25

5 years ago

0.0.24

5 years ago

0.0.23

5 years ago

0.0.22

5 years ago

0.0.21

5 years ago

0.0.20

5 years ago

0.0.19

5 years ago

0.0.18

5 years ago

0.0.17

5 years ago

0.0.16

5 years ago

0.0.15

5 years ago

0.0.14

5 years ago

0.0.13

5 years ago

0.0.12

5 years ago

0.0.11

5 years ago

0.0.10

5 years ago

0.0.9

5 years ago

0.0.8

5 years ago

0.0.7

5 years ago

0.0.6

5 years ago

0.0.5

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago