From: Steve Sutton Date: Thu, 13 Sep 2018 13:48:06 +0000 (-0400) Subject: Update for staff admin side. X-Git-Tag: v1.0.0^2~18 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/index.cgi?a=commitdiff_plain;h=6d73e274de1e0cedc8dd9944d9a0c312e7a720a4;p=WP-Plugins%2Fglm-member-db-staff.git Update for staff admin side. Finishing up admin functions for the staff directory. Add edit delete working for staff, departments and buildings. --- diff --git a/classes/data/dataStaff.php b/classes/data/dataStaff.php index a6c77a5..9510dde 100644 --- a/classes/data/dataStaff.php +++ b/classes/data/dataStaff.php @@ -137,6 +137,14 @@ class GlmDataStaff extends GlmDataAbstract 'use' => 'a' ), + // Email + 'email' => array ( + 'field' => 'email', + 'type' => 'text', + 'required' => true, + 'use' => 'a' + ), + // Last Name 'extension' => array ( 'field' => 'extension', diff --git a/models/admin/staff/index.php b/models/admin/staff/index.php index 65522d3..a1dd9ae 100644 --- a/models/admin/staff/index.php +++ b/models/admin/staff/index.php @@ -98,7 +98,6 @@ class GlmMembersAdmin_staff_index extends GlmDataStaff */ public function modelAction ($actionData = false) { - $data = array(); $success = true; $view = 'index'; $haveStaff = false; @@ -163,8 +162,8 @@ class GlmMembersAdmin_staff_index extends GlmDataStaff break; case 'delete': - $staff = $this->deleteEntry($this->staffID); - break; + // echo '
$_REQUEST: ' . print_r( $_REQUEST, true ) . '
'; + $staff = $this->deleteEntry( $this->staffID, true ); case 'list': default: @@ -187,7 +186,6 @@ class GlmMembersAdmin_staff_index extends GlmDataStaff // Compile template data $templateData = array( - 'data' => $data, 'staff' => $staff, 'total_staff' => $total_staff, 'haveStaff' => $haveStaff, diff --git a/models/admin/staff/settings.php b/models/admin/staff/settings.php index a2a910d..59b0a24 100644 --- a/models/admin/staff/settings.php +++ b/models/admin/staff/settings.php @@ -100,16 +100,19 @@ class GlmMembersAdmin_staff_settings //extends GlmDataStaff */ public function modelAction ($actionData = false) { - $data = array(); - $success = true; - $view = 'index'; - $haveStaff = false; - $option = 'list'; - $total_staff = false; - $insertError = false; - $insertGood = false; - $updateError = false; - $updateGood = false; + $success = true; + $view = 'settings'; + $list = false; + $haveList = false; + $option = 'buildings'; + $total_staff = false; + $insertError = false; + $insertGood = false; + $updateError = false; + $updateGood = false; + $setting_title = 'Buildings'; + + // echo '
$_REQUEST: ' . print_r( $_REQUEST, true ) . '
'; // Get any provided option if (isset($_REQUEST['option'])) { @@ -131,72 +134,140 @@ class GlmMembersAdmin_staff_settings //extends GlmDataStaff // Do selected option switch ($option) { - case 'add': - $staff = $this->newEntry(); - $view = 'edit'; + case 'addDepartment': + $Departments = new GlmDataDepartments( $this->wpdb, $this->config ); + $Departments->insertEntry(); + $option = 'departments'; break; - case 'insert': - $staffInfo = $this->insertEntry(); - if ( $staffInfo['status'] == true ) { - $this->staffID = $staffInfo['fieldData']['id']; - $insertGood = true; - $staff = $this->editEntry( $this->staffID ); - } else { - $insertError = true; + case 'updateDepartment': + // Get ID if supplied + if (isset($_REQUEST['id'])) { + + // Make sure it's numeric + $department_id = ($_REQUEST['id'] - 0); + + if ($department_id <= 0) { + $department_id = false; + } + + } + if ( $department_id ) { + $Departments = new GlmDataDepartments( $this->wpdb, $this->config ); + $Departments->updateEntry( $department_id ); } - $view = 'edit'; + $option = 'departments'; break; - case 'edit': - $staff = $this->editEntry($this->staffID); - $view = 'edit'; + case 'deleteDepartment': + if (isset($_REQUEST['id'])) { + + // Make sure it's numeric + $department_id = ($_REQUEST['id'] - 0); + + if ($department_id <= 0) { + $department_id = false; + } + + } + if ( $department_id ) { + $Departments = new GlmDataDepartments( $this->wpdb, $this->config ); + $Departments->deleteEntry( $department_id, true ); + } + $option = 'departments'; break; - case 'update': - $staffInfo = $this->updateEntry($this->staffID); - if ( $staffInfo['status'] == true ) { - $staff = $this->editEntry( $this->staffID ); - $updateGood = true; - } else { - $updateError = true; + case 'departments': + $setting_title = 'Departments'; + $Departments = new GlmDataDepartments( $this->wpdb, $this->config ); + $list = $Departments->getList(); + + if ( $list ) { + $haveList = true; } - $view = 'edit'; + break; - case 'delete': - $staff = $this->deleteEntry($this->staffID); + case 'addBuilding': + $Buildings = new GlmDataBuildings( $this->wpdb, $this->config ); + $Buildings->insertEntry(); + $option = 'buildings'; break; - case 'list': - default: - // Get staff list - // $staff = $this->getList(); + case 'updateBuilding': + // Get ID if supplied + if (isset($_REQUEST['id'])) { + + // Make sure it's numeric + $building_id = ($_REQUEST['id'] - 0); - // Get stats on the current list - // $total_staff = $this->getStats(); + if ($building_id <= 0) { + $building_id = false; + } - if ( $staff ) { - $haveStaff = true; } + if ( $building_id ) { + $Buildings = new GlmDataBuildings( $this->wpdb, $this->config ); + $Buildings->updateEntry( $building_id ); + } + $option = 'buildings'; + break; + + case 'deleteBuilding': + // Get ID if supplied + if (isset($_REQUEST['id'])) { + + // Make sure it's numeric + $building_id = ($_REQUEST['id'] - 0); + + if ($building_id <= 0) { + $building_id = false; + } + + } + if ( $building_id ) { + $Buildings = new GlmDataBuildings( $this->wpdb, $this->config ); + $Buildings->deleteEntry( $building_id, true ); + } + $option = 'buildings'; + break; + + case 'buildings': + default: + $setting_title = 'Buildings'; break; } + switch ( $option ) { + case 'buildings': + $Buildings = new GlmDataBuildings( $this->wpdb, $this->config ); + $list = $Buildings->getList( '', 'name' ); + break; + case 'departments': + $Departments = new GlmDataDepartments( $this->wpdb, $this->config ); + $list = $Departments->getList( '', 'name' ); + break; + } + if ( $list ) { + $haveList = true; + } + // echo '
$view: ' . print_r( $view, true ) . '
'; // Compile template data $templateData = array( - 'data' => $data, - 'staff' => $staff, - 'total_staff' => $total_staff, - 'haveStaff' => $haveStaff, - 'insertError' => $insertError, - 'insertGood' => $insertGood, - 'updateError' => $updateError, - 'updateGood' => $updateGood, + 'setting_title' => $setting_title, + 'list' => $list, + 'total_staff' => $total_staff, + 'haveList' => $haveList, + 'insertError' => $insertError, + 'insertGood' => $insertGood, + 'updateError' => $updateError, + 'updateGood' => $updateGood, + 'option' => $option, ); // Return status, suggested view, and data to controller @@ -204,7 +275,7 @@ class GlmMembersAdmin_staff_settings //extends GlmDataStaff 'status' => $success, 'menuItemRedirect' => false, 'modelRedirect' => false, - 'view' => 'admin/settings/' . $view . '.html', + 'view' => 'admin/staff/' . $view . '.html', 'data' => $templateData ); diff --git a/setup/databaseScripts/create_database_V0.0.1.sql b/setup/databaseScripts/create_database_V0.0.1.sql index ca56be7..6bdcd83 100644 --- a/setup/databaseScripts/create_database_V0.0.1.sql +++ b/setup/databaseScripts/create_database_V0.0.1.sql @@ -31,14 +31,16 @@ CREATE TABLE {prefix}staff ( id INT NOT NULL AUTO_INCREMENT, old_id INT, -- Ref to import id updated DATETIME, -- Updated timestamp - fname TINYTEXT NOT NULL, -- First Name - lname TINYTEXT NOT NULL, -- Last Name - extension TINYTEXT, -- Phone extension + fname TINYTEXT NOT NULL, -- First Name + lname TINYTEXT NOT NULL, -- Last Name + email TINYTEXT NOT NULL, -- Email Address + extension TINYTEXT, -- Phone extension building INT NOT NULL, -- Reference to Buildings table department INT NOT NULL, -- Reference to Departments table PRIMARY KEY (id), INDEX(lname(20)), INDEX(fname(20)), + INDEX(email(20)), INDEX(building), INDEX(department) ); diff --git a/views/admin/settings/index.html b/views/admin/settings/index.html deleted file mode 100644 index 8a8f29e..0000000 --- a/views/admin/settings/index.html +++ /dev/null @@ -1,5 +0,0 @@ -{include file="admin/staff/header.html"} - -

settings

- -{include file="admin/staff/footer.html"} diff --git a/views/admin/staff/edit.html b/views/admin/staff/edit.html index 696c678..5152301 100644 --- a/views/admin/staff/edit.html +++ b/views/admin/staff/edit.html @@ -5,6 +5,8 @@ {if $updateError}Update Error{/if} {if $insertError}Insert Error{/if} +

Staff Details

+
@@ -35,6 +37,14 @@ + + Email + + + {if $staff.fieldFail.email}

{$staff.fieldFail.email}

{/if}
+ + + Extension diff --git a/views/admin/staff/index.html b/views/admin/staff/index.html index 788d82d..220b60e 100644 --- a/views/admin/staff/index.html +++ b/views/admin/staff/index.html @@ -1,8 +1,8 @@ {include file='admin/staff/header.html'} -

Test

+

Staff List

- +
@@ -12,6 +12,7 @@ + @@ -24,10 +25,24 @@ + {/foreach} {/if}
Extension Building DepartmentDelete
{$st.extension} {$st.building} {$st.department} + Delete +
+ + {include file='admin/staff/footer.html'} diff --git a/views/admin/staff/settingSubHeader.html b/views/admin/staff/settingSubHeader.html new file mode 100644 index 0000000..d9c2070 --- /dev/null +++ b/views/admin/staff/settingSubHeader.html @@ -0,0 +1,8 @@ +

Settings

+ + diff --git a/views/admin/staff/settings.html b/views/admin/staff/settings.html new file mode 100644 index 0000000..2c0a062 --- /dev/null +++ b/views/admin/staff/settings.html @@ -0,0 +1,174 @@ +{include file="admin/staff/header.html"} +{include file="admin/staff/settingSubHeader.html"} + +

{if $option == 'buildings'}Buildings{else}Departments{/if}

+ + + + + + + + + + + {if $haveList} + {foreach $list as $item} + + + + + + {/foreach} + {/if} + +
Id{if $option == 'buildings'}Building{else}Department{/if} Name 
{$item.id} + {if $option == 'buildings'} + {$item.name} + {else} + {$item.name} + {/if} + + {if $option == 'buildings'} + Delete + {else} + Delete + {/if} +
+ +{* Edit Add Building Dialog *} +
+ + + + + + + + + +
Building Name: + +
+

* Required

+ Cancel + + +
+{* End Building Dialog *} + +{* Edit Add Department Dialog *} +
+
+ + + + + + + + +
Department Name: + +
+

* Required

+ Cancel + +
+
+{* End Department Dialog *} + + + +{include file="admin/staff/footer.html"}