digiclear:admin

DigiCleaR 4 Installation

DigiCleaR Update

Structure

DigiClear is managing four kind of data,

  1. the users,
  2. the projects,
  3. the machines and
  4. the samples.

All the data are managed according to rights.

  • no right
  • user = right to read and use data
  • manager = right to manage the data (changing settings)

You can manage your samples, your projects and your machines. You can also share your data with other users by managing rights to specific users.

The way to fix rights to samples, projects or machines is the same. It is a column on the right of the screen and you choose users to add or to remove.

The application DigiCleaR is a database manager so you can make some requests on your data. All the data are displayed in tables and you apply filters on this tables.

Here you can find the details of the structure of the database: digiclear:db-diagram.png

Admin Menu

If you are an admin user, then you can click on

As an administrator you can do what a regular user is able to do plus all over the DB.
When you are looking for something in “machines” then your research is done on all the data without regarding access rights.

the same for the samples and for the projects.

You are manager of all the projects, samples and machines. So you can correct some errors on user requests.

The search bar is the same everywhere as on the picture


You have got also a specific menu in the Admin menu called Browse operations. In this menu you can apply filter and sort the data as in the Operation History (see here)
digiclear:adminbrowseoperations.png


To fulfill the database with your machines, it is possible to build a file in JSON format. Then to use the menu Import Machines The menu is on the left in menu.


There are two kind of JSON files that DigiCleaR can import for machines.

Import JSON format from DigiTool (first version)

{
    "model": "dju_ctu_eq_core.equipement",
    "pk": 48,
    "fields": {
        "nom": "MEB_HITACHI_S4800",
        "nom_web": "N.C.",
        "modele": "N.C.",
        "fabricant": "HITACHI",
        "sn": "9014-08",
        "num_inv": "N.C.",
        "cnrs_ups": "N.C",
        "annee_achat": "2016-06-01",
        "emplacement": "N.C.",
        "tel": "N.C.",
        "ressource": "C2N_Str_54",
        "responsable": "C2N_Pers_76",
        "suppleant": []
    }
},


Import JSON format from internal API

The goal is to use the same format as it is used for the API's built in DigiCleaR. DigiCleaR is using API's between the server and the JavaScript code executed by the navigator. For example, here is the JSON you can get by using the following API:
http://localhost/api/getPolesGroupsMachines
localhost is the address of DigiCleaR.

[ 
   {
      "id":116,
      "name":"Caracterization & Back-End",
      "groups":
      [
         {
            "id":269,
            "name":"Back-end",
            "machines":
            [
               {
                  "id":474,
                  "name":"Bonder EVG"
               },
            ]
         }
      ]
   }
]

At the begining the software DigiCleaR is not designed to manage projects. So you can import projects from another projects manager where you can add a lot of data and details about the projects of the laboratory. And of course create some useful summary of the highlights, the details projects, and persons involved, etc. In DigiCleaR we need the following data about projects:

  1. Project Number
  2. Project name (nickname)
  3. status of the project:
    • 1 =
    • 2 =
    • 3 = Investigating if possible and how
    • 4 = Refused
    • 5 = transfered to another laboratory
    • 6 = Finished but still active for results data
    • 7 = closed, no input possible
    • 8 = active, in production
    • 9 = waiting…
  4. date of the beginning of the project
  5. date of the end of the project
  6. oui/non, is the project confidential
  7. The leaders of the project, aka the managers of the projects
  8. People using the project aka project's users

DigiCleaR reads only projects that have in the field status : 8 and 7 that means the project is active (8)or not (7). the other status are ignored. So for each projects you can produce a JSON class as follow:

{
   "idprojet":"396",
   "num_projet":"P-13-00377",
   "acronyme":"PRAM",
   "statut":"6",
   "date_debut_projet":"01/11/2011",
   "date_fin_projet":"01/11/2014",
   "projet_confidentiel":"Non",
   "leader_project":
   {
      "leader_0":""
   },
   "personnes_travaillant_sur_le_projet":
   {
      "personne_0":"jonathan.lee tin wah","personne_1":"adrian.zambrano"
   }
},
You can produce a complete JSON file with all the projects of the laboratory with the name of persons involved. Then you can import this file into the database of DigiCleaR.

There is a new version of the JSON according to evolution of the REnatech software. You have to produce two JSON files:

  • first the list of projects
  • second the list of users linked to a project

list of projects:

[

{
         "id_projet": 798,
         "UUID": "707ba7de-7efa-4f1d-9766-cad2b4bf9ee3",
         "date_demande": "2018-03-21",
         "datetime": "2021-12-13T08:42:28.209253",
         "titre_projet": "Etude de  la Gravure des Aciers Austénitique",
         "description_projet": "we will need an ICP/RIE compatible with metal etching, some standard UV lithograpy and metal/dielectric deposition on substrates | Description technologique : developp dry ethcing of metal material, sample preparation, and characterization",
         "contexte": "The aim of the project for the C2N part is to understand how to etch with plasma reactor (ICP/RIE) the stainless steal",
         "acronyme_projet": "SPOT",
         "confidentiel": false,
         "televerser": true,
         "id_type_projet": 3,
         "developpement_technologique": true,
         "multiplateforme": true,
         "nom_type_projet": "Académique en partenariat avec un industriel",
         "date_debut_projet": "2018-03-21",
         "date_fin_projet": "2022-04-21",
         "id_thematique_projet": 5,
         "nom_thematique_projet": "Caractérisation/Instrumentation",
         "numero_projet": "P-18-02509",
         "id_statut_projet": 3,
         "nom_statut_projet": "Fini",
         "reference_interne": "",
         "id_utilisateur": 3051,
         "nom": "LAOURINE",
         "prenom": "Feriel",
         "id_projet_utilisateur": 798,
         "id_etablissement": 8,
         "nom_etablissement": "Centre de Nanosciences et de Nanotechnologies",
         "acronyme_etablissement": "C2N",
         "code_unite": "UMR9001"
     }

]

The list of user by project:

[
{
        "id_projet": 798,
        "numero_projet": "P-18-02509",
        "titre_projet": "Etude de  la Gravure des Aciers Austénitique",
        "acronyme_projet": "SPOT",
        "id_statut_projet": 3,
        "multiplateforme": true,
        "nom_statut_projet": "Fini",
        "nom": "LAOURINE",
        "prenom": "Feriel",
        "email": "feriel.laourine@c2n.upsaclay.fr",
        "nom_role_utilisateur_projets": "Personne autorisée à utiliser les moyens technologiques pour le projet",
        "id_role_utilisateur_projets": 3,
        "acronyme_etablissement": "C2N"
    }
]


the name of persons should be first name and last name to be able to bind projects and people.

You have to go Through the admin menu:

Admin top menu

then you will select the menu on the left called Manage machines: digiclear:managemachinesmenu-polesandgroups.png

  • You can create new pole and then in each pole you will be able to create new group. Of course the name of the pole and group is free. in the database there are a pole_id and a group_id. But for the users it is better to give explicit names and different name for each pole and group.
  • In the group you can select the machine you want to add to the group (and pole). digiclear:managepolegroupemachines.png
  • Locally you can create a new machine by clicking ,
  • you can add or remove users of a machine from a group with ,
  • you can edit the machine settings by clicking or
  • you can remove a machine from a group by clicking the red cross
  • Here is an example of what is possible to do digiclear:managepolegroup-overview.png


To manage Users, you can find the option in the Admin menu like the menu Manage machines (here) digiclear:adminusers.png You can't add any users if you are using an external authantication system like SSO. DigiCleaR was disigned to use an SSO system or LDAP system to avoid security issue.
You can search someone in the database, fill-in the case Search for a user
For each user, you can edit the profile and change options with the button :

  • Change the profile to active
  • change the rights of the profile to admin
  • you can give the same rights of the current users to another user in the database


With this section, you can create the different type of templates that manager of machines can choose to configure. For each type of template you can put some mandatory components in the template to get some common data with all the operation, whatever is the type of data.
the configuration of the templates is really similar to the section managing machines digiclear:adminoperationtemplates.png Choose your icon : https://fontawesome.com/icons/

This menu allows to define the elements for the database that MUST be present in a template to allow the database of DigiCleaR to work well. In other terms if you want the software to work properly you have to use it wisely and to read carefully the warnings in the headers of this page

- Pour la librairie coté admin, il faut aller dans templates/AdminMachineMasterTemplateTemplate.php et templates/AdminMainTemplateMakerTemplate.php. Pour la librairie coté manager c'est dans templates/MachineTemplate.php.

Tu y trouveras la page html, et dans cette page il y a une balise qui s'appelle <form-builder> :

c'est le composant javascript qui permet de construire les templates.

Les balises de paramètres contenues dans <form-builder> deviendront la librairie lors de l’exécution de la page.

Coté admin je n'avais pas mis de données préremplies sur les paramètres pour pouvoir tester plus rapidement, c'est pourquoi certains paramètres ne sont pas nommés. Pour changer ça il faut rajouter des données préremplies en plaçant l'attribut v-bind:data='JSON' dans le composant, avec JSON étant le JSON des données que tu veux préremplir.

Par exemple :

Là tu a un paramètre select sans aucune donnée remplie (et donc sans nom dans la librairie) :

<parameter-select></parameter-select>

Alors que là le paramètre s'appellera “A select” :

<parameter-select v-bind:data='{displayName:"A select"}'></parameter-select>

Le JSON que tu dois insérer est le même que celui de la template que tu télécharges, donc tu peux remplir ton paramètre avec l'interface, télécharger la template, et copier le morceau de JSON qui t'intéresse directement dans l'attribut du composant. Ou alors tu peux directement copier coller les paramètres depuis la librairie manager dans la librairie admin.


API's : Exchanging Data with DigiCleaR

DigiCleaR is built on two main parts.

  • The first part is the server side, coded in php. It is the main code to generate html pages and to get data from the database by SQL requests. The database is a PostGreSQL server.
  • The second part is the execution of the html pages on the local side, aka, the navigator. For a maximum of functions, you should get Firefox, but Chromium based browser are also fine. In the HTML pages DigiCleaR is including a lot of javascript code to accelerate the execution of the code.

The two parts are exchanging data through API's. The format of the data exchange has been chosen to be JSON.

To use the API's you have to use the following syntax: https://digiclearAddress/api/NameOfTheAPI
All the API's need an authentication and of course you will get only the information you are allowed to get in the database.

  • changeUsersOfMachine;
  • getTemplates;
  • getUsers; : The JSON file of the all the users in DigiCleaR with the profile
  • getUsersOfMachine;
  • setTemplate;
  • debug;
  • getUsersOfSample;
  • cangeUsersOfSample;
  • getSample;
  • insertOrUpdateSample;
  • getSamplesOfUser;
  • setUserSettings;
  • changeSampleParents;
  • getMachines; : You will get a JSON file with all the details of all the machines. Excepting Managers and Users
  • getProject;
  • getProjectsOfUser;
  • changeUsersOfProject;
  • getProjectsUsers;
  • getTemplatesColors;
  • getUsersOfProject;
  • getMachine;
  • getMachinesOfUser;
  • insertOrUpdateMachine;
  • getIP;
  • setOperation;
  • getOperations;
  • getCurrentTimestamp;
  • getSamplesAvailableToUser;
  • getProjectsAvailableToUser;
  • getSampleParents;
  • importProjectsJson;
  • importMachinesJson;
  • getMachinesUsers;
  • getPolesGroupsMachines; : You will get the JSON file of all the machines with their Poles and Groups.
  • getSamplesUsers;
  • giveAllRightsToUser;
  • setPolesGroupsMachines;
  • setUserProfile;


  • digiclear/admin.txt
  • Last modified: 2023/02/08 12:18
  • by stephane