From d9072a36173fdb6241d01e2cadb5fe3eb24300a8 Mon Sep 17 00:00:00 2001 From: Riccardo Di Dato Date: Wed, 20 Jan 2016 17:26:28 +0100 Subject: [PATCH] Form di creazione edit e cancellazione per Giornalisti ed Amministratori Tabelle Giornalisti ed Amministratori --- private/lib/gui/DatatablesHelper.php | 16 +++- private/lib/gui/MenuGenerator.php | 5 +- public/admin/deleteAmministratori.php | 64 ++++++++++++++ public/admin/deleteGiornalisti.php | 70 +++++++++++++++ public/admin/editAmministratori.php | 88 +++++++++++++++++++ public/admin/editGiornalisti.php | 71 +++++++++++++++ public/admin/listAmministratori.php | 39 ++++++++ public/admin/listGiornalisti.php | 8 +- public/admin/listNotizie.php | 2 +- .../amministratoriTableBackend.php | 24 +++++ .../giornalistiTableBackend.php | 1 + .../tablesBackends/notizieTableBackend.php | 30 ------- 12 files changed, 382 insertions(+), 36 deletions(-) create mode 100644 public/admin/deleteAmministratori.php create mode 100644 public/admin/deleteGiornalisti.php create mode 100644 public/admin/editAmministratori.php create mode 100644 public/admin/editGiornalisti.php create mode 100644 public/admin/listAmministratori.php create mode 100644 public/admin/tablesBackends/amministratoriTableBackend.php diff --git a/private/lib/gui/DatatablesHelper.php b/private/lib/gui/DatatablesHelper.php index db078ca..a4d1718 100644 --- a/private/lib/gui/DatatablesHelper.php +++ b/private/lib/gui/DatatablesHelper.php @@ -53,7 +53,7 @@ class DatatablesHelper { } else { if ($obj->$key instanceof MongoDate){ - $rval->$key = date("d-m-Y",$obj->$key->sec); + $rval->$key = date("d-m-Y H:i",$obj->$key->sec); } else { $rval->$key = $obj->$key; @@ -83,6 +83,7 @@ class DatatablesHelper { 'useForm.submit();'. '}'. '});'; + $i++; } $buttonDiv.='
'; } @@ -92,10 +93,18 @@ class DatatablesHelper { $colLabels = ""; $jsCols = array(); + $i=0; foreach ($columns as $col){ $colLabels.= ''.$col["label"].''; $jsCols[]= '{"data":"'.$col["data"].'"}'; + + if (array_key_exists("sort",$col)){ + $defaultOrder[]= '['.$i.',"'.$col["sort"].'"]'; + } + + + $i++; } $colLabels.= ''; @@ -114,6 +123,11 @@ class DatatablesHelper { "type": "POST" }, "columns": [ ], + 0){ + echo '"order": ['. implode(",", $defaultOrder) . '],'; + } + ?> "initComplete": function () { $("div.").prepend(''); diff --git a/private/lib/gui/MenuGenerator.php b/private/lib/gui/MenuGenerator.php index 34c2845..0f75fb2 100644 --- a/private/lib/gui/MenuGenerator.php +++ b/private/lib/gui/MenuGenerator.php @@ -14,7 +14,10 @@ class MenuGenerator { array("label"=>"Da accettare","page"=>"unacceptedNotizie.php","requires"=>AdminModel::ADMIN_TYPE_EDITORE_SUPERVISOR), array("label"=>"Respinte","page"=>"rejectedNotizie.php","requires"=>AdminModel::ADMIN_TYPE_EDITORE_SUPERVISOR) )), - array("label"=>"Giornalisti","page"=>"listGiornalisti.php","requires"=>AdminModel::ADMIN_TYPE_NORMALADMIN), + array("label"=>"Giornalisti", "subvoices"=>array( + array("label"=>"Nuovo","page"=>"editGiornalisti.php","requires"=>AdminModel::ADMIN_TYPE_NORMALADMIN), + array("label"=>"Lista","page"=>"listGiornalisti.php","requires"=>AdminModel::ADMIN_TYPE_NORMALADMIN), + )), array("label"=>"Commenti","page"=>"unacceptedCommenti.php","requires"=>AdminModel::ADMIN_TYPE_COMMENTI_SUPERVISOR), diff --git a/public/admin/deleteAmministratori.php b/public/admin/deleteAmministratori.php new file mode 100644 index 0000000..8f0559c --- /dev/null +++ b/public/admin/deleteAmministratori.php @@ -0,0 +1,64 @@ +hasRole(AdminModel::ADMIN_TYPE_SUPERADMIN)){ + GUIHandler::redirect("admin/index.php"); +} + +MenuGenerator::generateMenu(); + +HTMLHelper::generateAdminHead(); + +$id = PostHandler::get("id"); +if (is_null($id) || strcmp("", $id)==0){ + GUIHandler::redirect("admin/listAmministratori.php"); +} + +$giornalista = GlobalVariables::get("dao")->getFirst("AdminModel",array("id"=>$id)); +if (is_null($giornalista)){ + GUIHandler::redirect("admin/listAmministratori.php"); +} + +$confirm = PostHandler::get("confirm"); +if (!is_null($confirm) && strcmp("", $confirm)!=0){ + if (strcmp("true", $confirm)==0){ + GlobalVariables::get("dao")->delete($giornalista); + } + GUIHandler::redirect("admin/listAmministratori.php"); +} + +?> +
+nome." ".$giornalista->cognome."?"; +?> +
+ + +
+ Conferma + Annulla +
+ \ No newline at end of file diff --git a/public/admin/deleteGiornalisti.php b/public/admin/deleteGiornalisti.php new file mode 100644 index 0000000..a1a0cd8 --- /dev/null +++ b/public/admin/deleteGiornalisti.php @@ -0,0 +1,70 @@ +hasRole(AdminModel::ADMIN_TYPE_EDITORE_SUPERVISOR)){ + GUIHandler::redirect("admin/index.php"); +} + +MenuGenerator::generateMenu(); + +HTMLHelper::generateAdminHead(); + +$id = PostHandler::get("id"); +if (is_null($id) || strcmp("", $id)==0){ + GUIHandler::redirect("admin/listGiornalisti.php"); +} + +$giornalista = GlobalVariables::get("dao")->getFirst("AdminModel",array("id"=>$id)); +if (is_null($giornalista)){ + GUIHandler::redirect("admin/listGiornalisti.php"); +} + +$confirm = PostHandler::get("confirm"); +if (!is_null($confirm) && strcmp("", $confirm)!=0){ + if (strcmp("true", $confirm)==0){ + $giornalista->removeRole(AdminModel::ADMIN_TYPE_EDITORE); + if ( ($giornalista->roles & 0) == $giornalista->roles){ + GlobalVariables::get("dao")->delete($giornalista); + } + else { + GlobalVariables::get("dao")->save($giornalista); + } + } + GUIHandler::redirect("admin/listGiornalisti.php"); +} + +?> +
+nome." ".$giornalista->cognome."?"; +?> +
+ + +
+ Conferma + Annulla +
+ \ No newline at end of file diff --git a/public/admin/editAmministratori.php b/public/admin/editAmministratori.php new file mode 100644 index 0000000..3b90d27 --- /dev/null +++ b/public/admin/editAmministratori.php @@ -0,0 +1,88 @@ +hasRole(AdminModel::ADMIN_TYPE_SUPERADMIN)){ + GUIHandler::redirect("admin/index.php"); +} + +MenuGenerator::generateMenu(); + +HTMLHelper::generateAdminHead(); + +$id = PostHandler::get("id"); +$giornalista = new AdminModel(); +$giornalista->nome = ""; +$giornalista->cognome = ""; + +if (!is_null($id) && strcmp("", $id)!=0){ + $giornalista = GlobalVariables::get("dao")->getFirst("AdminModel",array("id"=>$id)); + if (is_null($giornalista)){ + GUIHandler::redirect("admin/listAmministratori.php"); + } +} + +$action = PostHandler::get("action"); +if (!is_null($action) && strcmp("", $action)!=0){ + if (strcmp("cancel", $action)==0){ + GUIHandler::redirect("admin/listAmministratori.php"); + } + else if (strcmp("save", $action)==0){ + $giornalista->nome = PostHandler::get("nome"); + $giornalista->cognome = PostHandler::get("cognome"); + foreach (AdminModel::$ADMIN_TYPES as $maskVal=>$data){ + if ($data["typeFlags"]!=AdminModel::TYPE_FLAG_HIDDEN){ + $cur = PostHandler::get($maskVal); + if (!is_null($cur) && $cur = $maskVal){ + $giornalista->addRole($maskVal); + } + else { + $giornalista->removeRole($maskVal); + } + } + } + GlobalVariables::get("dao")->save($giornalista); + GUIHandler::redirect("admin/listAmministratori.php"); + } +} + +?> +
+
+ + + + +
+ $data){ + if ($data["typeFlags"]!=AdminModel::TYPE_FLAG_HIDDEN){ + echo 'hasRole($maskVal)?'checked="checked"':"").' />'.$data["label"]."
"; + } + } + ?> +
+ Salva + Annulla +
+ \ No newline at end of file diff --git a/public/admin/editGiornalisti.php b/public/admin/editGiornalisti.php new file mode 100644 index 0000000..1766f61 --- /dev/null +++ b/public/admin/editGiornalisti.php @@ -0,0 +1,71 @@ +hasRole(AdminModel::ADMIN_TYPE_EDITORE_SUPERVISOR)){ + GUIHandler::redirect("admin/index.php"); +} + +MenuGenerator::generateMenu(); + +HTMLHelper::generateAdminHead(); + + +$id = PostHandler::get("id"); +$giornalista = new AdminModel(); +$giornalista->nome = ""; +$giornalista->cognome = ""; +$giornalista->addRole(AdminModel::ADMIN_TYPE_EDITORE); + +if (!is_null($id) && strcmp("", $id)!=0){ + $giornalista = GlobalVariables::get("dao")->getFirst("AdminModel",array("id"=>$id)); + if (is_null($giornalista)){ + GUIHandler::redirect("admin/listGiornalisti.php"); + } +} + +$action = PostHandler::get("action"); +if (!is_null($action) && strcmp("", $action)!=0){ + if (strcmp("cancel", $action)==0){ + GUIHandler::redirect("admin/listGiornalisti.php"); + } + else if (strcmp("save", $action)==0){ + $giornalista->nome = PostHandler::get("nome"); + $giornalista->cognome = PostHandler::get("cognome"); + GlobalVariables::get("dao")->save($giornalista); + GUIHandler::redirect("admin/listGiornalisti.php"); + } +} + +?> +
+
+ + + + +
+ Salva + Annulla +
+ diff --git a/public/admin/listAmministratori.php b/public/admin/listAmministratori.php new file mode 100644 index 0000000..50c772c --- /dev/null +++ b/public/admin/listAmministratori.php @@ -0,0 +1,39 @@ +hasRole(AdminModel::ADMIN_TYPE_SUPERADMIN)){ + GUIHandler::redirect("admin/index.php"); +} + +MenuGenerator::generateMenu(); + +HTMLHelper::generateAdminHead(); +$columns = array( + array("label"=>"Nome","data"=>"nome","sort"=>"asc"), + array("label"=>"Cognome","data"=>"cognome"), + array("label"=>"Maschera Permessi","data"=>"roles"), + array("label"=>"Ultimo Accesso","data"=>"lastConnection.date") +); + +$buttons = array( + array("icon"=>"icon-medium-blue icon-editmed","page"=>"editAmministratori.php"), + array("icon"=>"icon-medium-blue icon-remove","page"=>"deleteAmministratori.php") +); + +?> +
+ $buttons)); + ?> +
\ No newline at end of file diff --git a/public/admin/listGiornalisti.php b/public/admin/listGiornalisti.php index f8b3538..380b427 100644 --- a/public/admin/listGiornalisti.php +++ b/public/admin/listGiornalisti.php @@ -19,12 +19,14 @@ MenuGenerator::generateMenu(); HTMLHelper::generateAdminHead(); $columns = array( - array("label"=>"Nome","data"=>"nome"), - array("label"=>"Cognome","data"=>"cognome") + array("label"=>"Nome","data"=>"nome","sort"=>"asc"), + array("label"=>"Cognome","data"=>"cognome"), + array("label"=>"Ultimo Accesso","data"=>"lastConnection.date") ); $buttons = array( - array("icon"=>"icon-medium-blue icon-editmed","page"=>"editAdmin.php") + array("icon"=>"icon-medium-blue icon-editmed","page"=>"editGiornalisti.php"), + array("icon"=>"icon-medium-blue icon-remove","page"=>"deleteGiornalisti.php") ); ?> diff --git a/public/admin/listNotizie.php b/public/admin/listNotizie.php index fbcb71b..5e71fcc 100644 --- a/public/admin/listNotizie.php +++ b/public/admin/listNotizie.php @@ -22,7 +22,7 @@ $columns = array( array("label"=>"Titolo","data"=>"titolo"), array("label"=>"Sottotitolo","data"=>"sottotitolo"), array("label"=>"Autore","data"=>"about.author"), - array("label"=>"Data","data"=>"about.data") + array("label"=>"Data","data"=>"about.data","sort"=>"desc") ); $buttons = array( diff --git a/public/admin/tablesBackends/amministratoriTableBackend.php b/public/admin/tablesBackends/amministratoriTableBackend.php new file mode 100644 index 0000000..4ccb394 --- /dev/null +++ b/public/admin/tablesBackends/amministratoriTableBackend.php @@ -0,0 +1,24 @@ +null, + "cognome"=>null, + "lastConnection"=>array("date"=>null), + "roles"=>null, + "id"=>null +); + +$ret = DatatablesHelper::getResult($useModel, $permissionFlagRequired, $exposedFields); +echo json_encode($ret); + + +?> \ No newline at end of file diff --git a/public/admin/tablesBackends/giornalistiTableBackend.php b/public/admin/tablesBackends/giornalistiTableBackend.php index f89c2a6..501d7fc 100644 --- a/public/admin/tablesBackends/giornalistiTableBackend.php +++ b/public/admin/tablesBackends/giornalistiTableBackend.php @@ -11,6 +11,7 @@ $permissionFlagRequired = AdminModel::ADMIN_TYPE_EDITORE_SUPERVISOR; $exposedFields = array( "nome"=>null, "cognome"=>null, + "lastConnection"=>array("date"=>null), "id"=>null ); diff --git a/public/admin/tablesBackends/notizieTableBackend.php b/public/admin/tablesBackends/notizieTableBackend.php index de135f2..1c4f8c8 100644 --- a/public/admin/tablesBackends/notizieTableBackend.php +++ b/public/admin/tablesBackends/notizieTableBackend.php @@ -6,36 +6,6 @@ Creation Date: 14/gen/2016 require_once(dirname(__FILE__)."/../../load.php"); -// $ret = new stdClass(); -// $ret->draw = $_POST["draw"]; - -// $arr = array(); -// $ele = new stdClass(); -// $ele->Sottotitolo = print_r($_POST,true); -// $ele->Titolo = "asd"; -// $ele->about = new stdClass(); -// $ele->about->autore = "autore"; -// $ele->about->data = "data"; - -// $arr[] = $ele; -// for ($i=0; $i<9; $i++){ -// $ele = new stdClass(); -// $ele->Sottotitolo = "asd"; -// $ele->Titolo = "asd"; -// $ele->about = new stdClass(); -// $ele->about->autore = "autore"; -// $ele->about->data = "data"; -// $arr[] = $ele; -// } - -// $ret->recordsTotal = 10; -// $ret->recordsFiltered = 10; -// $ret->data = $arr; -// echo json_encode($ret); -// die(); - -// OK - $useModel = "NotiziaModel"; $permissionFlagRequired = AdminModel::ADMIN_TYPE_EDITORE_SUPERVISOR; $exposedFields = array(