[openmairie-framework-Commits] r4937 - in openmairie_exemple/branches/om5_rad: app/js obj sql/pgsql

0 views
Skip to first unread message

fray...@users.adullact.net

unread,
Apr 24, 2024, 1:42:26 PMApr 24
to openmairie...@googlegroups.com
Author: fraynaud
Date: 2024-04-24 19:42:23 +0200 (Wed, 24 Apr 2024)
New Revision: 4937

Modified:
openmairie_exemple/branches/om5_rad/app/js/script.js
openmairie_exemple/branches/om5_rad/obj/om_forms.class.php
openmairie_exemple/branches/om5_rad/sql/pgsql/om_forms.inc.php
Log:
ajout de js pour om_forms et ajout du type sql





Modified: openmairie_exemple/branches/om5_rad/app/js/script.js
===================================================================
--- openmairie_exemple/branches/om5_rad/app/js/script.js 2024-04-23 13:39:04 UTC (rev 4936)
+++ openmairie_exemple/branches/om5_rad/app/js/script.js 2024-04-24 17:42:23 UTC (rev 4937)
@@ -1,9 +1,6 @@
-
// Gestion de l'ergonomie du formulaire OM_TABLES
// ne fonctionne pas en sous formulaire
-
-
-//Au chargement de la page recupere valeur nombre colonne
+// Au chargement de la page recupere valeur nombre colonne
$(function() {
// Au chargement de la page donc du formulaire on appelle la fonction
change_form_om_tables_nombre_colonne($("select#nombre_colonne").val());
@@ -37,19 +34,19 @@
}
}

+
// Gestion de l'ergonomie du formulaire OM_FORMS
// F2 = sous formulaire

-
function change_form_om_forms(champ) {
//alert(champ);
if (champ == undefined) {
return;
}
-
+
// select type options
select = document.getElementById('type');
- var options = select.options;
+
if(champ == 'cle_secondaire'){
// nom de champ
document.f2.elements['tables'].hidden=false;
@@ -58,15 +55,6 @@
document.getElementById('lib-tables').innerHTML='Nom du champs';
// calcul
document.f2.elements['calcul'].hidden=true;
- // type om
- for (var i = 0; i < options.length; i++) {
- if (options[i].value == 'html') {
- options[i].disabled=true;
- }
- if (options[i].value == 'file') {
- options[i].disabled=true;
- }
- }
}else{
document.f2.elements['tables'].hidden=true;
document.f2.elements['column_name'].hidden=false;
@@ -73,22 +61,42 @@
document.getElementById('lib-column_name').innerHTML='Nom du champs';
document.getElementById('lib-tables').innerHTML='';
// calcul
- if(champ == 'integer' || champ == 'double precision' ){
+ if(champ == 'integer' || champ == 'double precision' || champ == 'sql' ){
document.f2.elements['calcul'].hidden=false;
}else{
document.f2.elements['calcul'].hidden=true;
- }
- for (var i = 0; i < options.length; i++) {
+ }
+ }
+ /*
+ // type om
+ var options = select.options;
+ for (var i = 0; i < options.length; i++) {
+ if(champ == 'text' || or champ =='character varying'){
+ if(champ == 'text'){
+ if (options[i].value == 'html') {
+ options[i].disabled=false;
+ }
+ if (options[i].value == 'file') {
+ options[i].disabled=true;
+ }
+ }else{
+ if (options[i].value == 'file') {
+ options[i].disabled=false;
+ }
+ if (options[i].value == 'html') {
+ options[i].disabled=true;
+ }
+ }
+ }else{
if (options[i].value == 'html') {
- options[i].disabled=false;
+ options[i].disabled=true;
}
if (options[i].value == 'file') {
- options[i].disabled=false;
+ options[i].disabled=true;
}
}
- //if(champ == 'text' || or champ =='character varying'){
-
- }
+ }
+ */
+
+}

-
-}

Modified: openmairie_exemple/branches/om5_rad/obj/om_forms.class.php
===================================================================
--- openmairie_exemple/branches/om5_rad/obj/om_forms.class.php 2024-04-23 13:39:04 UTC (rev 4936)
+++ openmairie_exemple/branches/om5_rad/obj/om_forms.class.php 2024-04-24 17:42:23 UTC (rev 4937)
@@ -9,8 +9,10 @@

var $tab; // tableau à insérer en json
var $cle_secondaire; // variable globale clé secondaire
+ var $type_sql; // variable globale type_sql


+
function init_class_actions() {
parent::init_class_actions();

@@ -101,7 +103,17 @@
$this->cle_secondaire='non';
$form->setType("type", "select");
}
- // echo $this->cle_secondaire;
+ // sql
+ $sql = "SELECT parametres->>'type' as type FROM ".DB_PREFIXE."om_forms ";
+ $sql .= " where column_name = '".$this->getParameter("idx")."'";
+ $res = $this->f->db->getOne($sql);
+ $this->f->addToLog("obj/om_champs_class.php: db->getOne(\"".$sql."\");", DEBUG_MODE);
+ $this->f->isDatabaseError($res);
+ if($res=='sql') {
+ $form->setVal('data_type', $res);
+ $this->type_sql='oui';
+ }else
+ $this->type_sql='non';
// initialisation des champs om_champs
$sql = "SELECT table_schema, data_type, character_maximum_length ,";
$sql .= " is_nullable, column_default, comment";
@@ -111,14 +123,13 @@
$res = $this->f->db->query($sql);
$this->f->isDatabaseError($res);
while ($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
- $form->setVal('ltable_schema', $row['table_schema']);
+ $form->setVal('table_schema', $row['table_schema']);
$form->setVal('data_type', $row['data_type']);
$form->setVal('character_maximum_length', $row['character_maximum_length']);
$form->setVal('is_nullable', $row['is_nullable']);
$form->setVal('column_default', $row['column_default']);
$form->setVal('comment', $row['comment']);
- }
-
+ }
}
}

@@ -143,9 +154,11 @@
$form->setType("liste", "select");
if ($this->cle_secondaire == 'oui'){
$form->setType("data_type", "hiddenstatic");
- }else{
- $form->setType("data_type", "select");
}
+ if($this->type_sql == 'oui'){
+ $form->setType("data_type", "hiddenstatic");
+ $form->setType("type", "hiddenstatic");
+ }
$form->setType("tables", "hidden");
//$form->setType("tables", "select"); // cle secondaire
}
@@ -198,8 +211,10 @@
$form->setSelect("is_nullable",$contenu);
// data type
$contenu=array();
- $contenu[0]=array('character varying','integer','double precision','boolean','cle_secondaire','text','date');
- $contenu[1]=array(_('character varying'),_('entier'),_('décimal'),_('booléen'),_('clé secondaire'),_('texte'),_('Date'));
+ $contenu[0]=array('character varying','integer','double precision','boolean',
+ 'cle_secondaire','text','date', 'sql');
+ $contenu[1]=array(_('character varying'),_('entier'),_('décimal'),
+ _('booléen'),_('clé secondaire'),_('texte'),_('Date'),_('virtuel sql'));
$form->setSelect("data_type",$contenu);
// bloc paramétré en om_tables_parametre -> ne fonctionne qu en sous form ...

@@ -222,7 +237,7 @@
// type
$contenu=array();
$contenu[0]=array('','hidden','file','html','sql');
- $contenu[1]=array('visible','non visible','fichier','editeur html','virtuel sql' );
+ $contenu[1]=array('visible','non visible','fichier','editeur html','virtuel sql');
$form->setSelect("type",$contenu);

// liste tables pour clé secondaire
@@ -540,54 +555,31 @@
$this->verifier($val, $this->f->db, null);
$val['calcul']=$this->verifier_calcul($val['calcul']);
$val['libelle']=$this->verifier_libelle($val['libelle']);
+ // data_type -> type sql
+ if($this->valF['data_type']=='sql')
+ $this->valF['type']= 'sql';
if ($this->correct) {
- // cas cle secondaire
- if($this->valF['data_type']== 'cle_secondaire')
- $data_type = 'integer';
- else
- $data_type=$this->valF['data_type'];
- // modifier
- $sql = "alter table ".DB_PREFIXE.$this->valF['table_name']." alter column ";
- $sql .= $temp[1]." type ".$data_type;
- $res = $this->f->db->query($sql);
- if ($this->f->isDatabaseError($res, true)) {
- // Appel de la methode de recuperation des erreurs
- $this->addToMessage($res->getDebugInfo());
- $this->erreur_db($res->getDebugInfo(), $res->getMessage(), '');
- $this->correct = false;
- // Return
- return $this->end_treatment(__METHOD__, false);
- }else{
- $this->addToMessage("modification du champ ".$this->valF['column_name']);
- //*** modification comment
- $this->tab->libelle = $val['libelle'];
- $this->tab->type = $val['type'];
- $this->tab->bloc = $val['bloc'];
- $this->tab->position = $val['position'];
- $this->tab->calcul = $val['calcul'];
- $this->tab->liste = $val['liste']; //***
- $insert=json_encode($this->tab);
- //$sql = "comment on COLUMN ".DB_PREFIXE.$this->valF['table_name'].".".$temp[1]." IS ";
- $sql = "update ".DB_PREFIXE."om_forms set parametres = ";
- $sql .= "'".$insert."'";
- $sql .= " where column_name = '".$this->valF['column_name']."'";
+ // type : sql
+ if($this->valF['type']!= 'sql'){
+ // cas cle secondaire
+ if($this->valF['data_type']== 'cle_secondaire')
+ $data_type = 'integer';
+ else
+ $data_type=$this->valF['data_type'];
+ // modifier
+ $sql = "alter table ".DB_PREFIXE.$this->valF['table_name']." alter column ";
+ $sql .= $temp[1]." type ".$data_type;
$res = $this->f->db->query($sql);
if ($this->f->isDatabaseError($res, true)) {
- // Appel de la methode de recuperation des erreurs[1
+ // Appel de la methode de recuperation des erreurs
$this->addToMessage($res->getDebugInfo());
$this->erreur_db($res->getDebugInfo(), $res->getMessage(), '');
$this->correct = false;
// Return
return $this->end_treatment(__METHOD__, false);
- }else{
- $this->addToMessage("modification des paramètres en om_forms pour"." ".$this->valF['column_name']);
- if($this->triggermodifierapres($id, $this->f->db, $val, null) === false) {
- $this->correct = false;
- $this->addToLog(__METHOD__."(): ERROR", DEBUG_MODE);
- // Return
- return $this->end_treatment(__METHOD__, false);
- }
- }
+ }
+ $this->addToMessage("modification du champ ".$this->valF['column_name']);
+ // champs null
if($this->valF['is_nullable']== 'NO'){
$sql = "alter table ".DB_PREFIXE.$this->valF['table_name']." alter column ";
$sql .= $temp[1]." set not null ";
@@ -600,7 +592,7 @@
// Return
return $this->end_treatment(__METHOD__, false);
}else
- $this->addToMessage("modification du champ not null ".$this->valF['column_name']);
+ $this->addToMessage("modification du champ not null ".$this->valF['column_name']);
}else{
$sql = "alter table ".DB_PREFIXE.$this->valF['table_name']." alter column ";
$sql .= $temp[1]." drop not null ";
@@ -613,12 +605,10 @@
// Return
return $this->end_treatment(__METHOD__, false);
}else
- $this->addToMessage("modification du champ null ".$this->valF['column_name']);
- }
- // *** column default
- // a peu d'intérêt -> utiliser setval car la mise a jour
- // se fait sur les enregistrements existants
- // et n'est pas pris en compte même si champs hidden
+ $this->addToMessage("modification du champ null ".$this->valF['column_name']);
+ }
+ // column default a peu d'intérêt -> utiliser setval car la mise a jour
+ // se fait sur les enregistrements existants et n'est pas pris en compte même si champs hidden
if($this->valF['column_default'] == ''){
$sql = "alter table ".DB_PREFIXE.$this->valF['table_name']." alter column ";
$sql .= $temp[1]." drop DEFAULT ";
@@ -631,7 +621,7 @@
// Return
return $this->end_treatment(__METHOD__, false);
}else
- $this->addToMessage("suppression de la valeur par default ".$this->valF['column_name']);
+ $this->addToMessage("suppression de la valeur par default ".$this->valF['column_name']);
}else{
$sql = "alter table ".DB_PREFIXE.$this->valF['table_name']." alter column ";
$sql .= $temp[1]." set DEFAULT ".$this->valF['column_default'].""; // guillement à mettre ans le champs";
@@ -644,9 +634,52 @@
// Return
return $this->end_treatment(__METHOD__, false);
}else
- $this->addToMessage("ajout de la valeur par default ".$this->valF['column_name']);
- }
- }
+ $this->addToMessage("ajout de la valeur par default ".$this->valF['column_name']);
+ }
+ }else{
+ // sql => destruction de champs
+ // destruction de la table -> CASCADE ?
+ $sql = "alter table ".DB_PREFIXE.$temp[0]." drop IF EXISTS ";
+ $sql .= $temp[1];
+ $res = $this->f->db->query($sql);
+ if ($this->f->isDatabaseError($res, true)) {
+ $this->addToMessage($res->getDebugInfo());
+ // Appel de la methode de recuperation des erreurs
+ $this->erreur_db($res->getDebugInfo(), $res->getMessage(), '');
+ $this->correct = false;
+ // Return
+ return $this->end_treatment(__METHOD__, false);
+ }
+ }
+ // om_forms
+ $this->tab->libelle = $val['libelle'];
+ $this->tab->type = $val['type'];
+ $this->tab->bloc = $val['bloc'];
+ $this->tab->position = $val['position'];
+ $this->tab->calcul = $val['calcul'];
+ $this->tab->liste = $val['liste'];
+ $insert=json_encode($this->tab);
+ //$sql = "comment on COLUMN ".DB_PREFIXE.$this->valF['table_name'].".".$temp[1]." IS ";
+ $sql = "update ".DB_PREFIXE."om_forms set parametres = ";
+ $sql .= "'".$insert."'";
+ $sql .= " where column_name = '".$this->valF['column_name']."'";
+ $res = $this->f->db->query($sql);
+ if ($this->f->isDatabaseError($res, true)) {
+ // Appel de la methode de recuperation des erreurs[1
+ $this->addToMessage($res->getDebugInfo());
+ $this->erreur_db($res->getDebugInfo(), $res->getMessage(), '');
+ $this->correct = false;
+ // Return
+ return $this->end_treatment(__METHOD__, false);
+ }else{
+ $this->addToMessage("modification des paramètres en om_forms pour"." ".$this->valF['column_name']);
+ if($this->triggermodifierapres($id, $this->f->db, $val, null) === false) {
+ $this->correct = false;
+ $this->addToLog(__METHOD__."(): ERROR", DEBUG_MODE);
+ // Return
+ return $this->end_treatment(__METHOD__, false);
+ }
+ }
}else {
// Message d'echec (saut d'une ligne supplementaire avant le
// message pour qu'il soit mis en evidence)
@@ -670,7 +703,7 @@
$this->verifier($val, $this->f->db, null);
if ($this->correct) {
// destruction de la table -> CASCADE ?
- $sql = "alter table ".DB_PREFIXE.$temp[0]." drop ";
+ $sql = "alter table ".DB_PREFIXE.$temp[0]." drop IF EXISTS "; // IF EXISTS = cas sql
$sql .= $temp[1];
$res = $this->f->db->query($sql);
if ($this->f->isDatabaseError($res, true)) {

Modified: openmairie_exemple/branches/om5_rad/sql/pgsql/om_forms.inc.php
===================================================================
--- openmairie_exemple/branches/om5_rad/sql/pgsql/om_forms.inc.php 2024-04-23 13:39:04 UTC (rev 4936)
+++ openmairie_exemple/branches/om5_rad/sql/pgsql/om_forms.inc.php 2024-04-24 17:42:23 UTC (rev 4937)
@@ -1,13 +1,11 @@
<?php
//$Id$
//gen openMairie le 03/05/2018 08:49
-
include "../gen/sql/pgsql/om_forms.inc.php";
-//$selection = " WHERE (om_champs.table_name = '".$f->db->escapeSimple($idxformulaire)."') ";
if($selection=="")
- $selection = " where concat(om_champs.table_name,'.',om_champs.table_name) not like om_champs.column_name ";
+ $selection = " where concat(om_forms.table_name,'.',om_forms.table_name) not like om_forms.column_name ";
else
- $selection .= " and concat(om_champs.table_name,'.',om_champs.table_name) not like om_champs.column_name ";
+ $selection .= " and concat(om_forms.table_name,'.',om_forms.table_name) not like om_forms.column_name ";

// SELECT


Reply all
Reply to author
Forward
0 new messages