From 7e3246c6c06bf51eff64c201560f319308d19051 Mon Sep 17 00:00:00 2001 From: Skylar Ittner Date: Sat, 6 Jan 2018 20:18:44 -0700 Subject: [PATCH] Add group assignment to jobs --- action.php | 12 ++++++- database.mwb | Bin 11792 -> 11688 bytes database_upgrade/1.0.1_1.1.sql | 2 +- pages.php | 5 ++- pages/editjob.php | 57 +++++++++++++++++++++++++++++++++ pages/editjobhistory.php | 2 +- pages/jobs.php | 2 +- static/js/editjob.js | 44 +++++++++++++++++++++++++ static/js/editjobs.js | 2 +- 9 files changed, 120 insertions(+), 6 deletions(-) create mode 100644 static/js/editjob.js diff --git a/action.php b/action.php index a8767ec..016e4bc 100644 --- a/action.php +++ b/action.php @@ -252,7 +252,7 @@ switch ($VARS['action']) { foreach ($groups as $g) { $gids[] = $g['id']; } - $job = $database->has('jobs', ['[>]job_groups' => ['jobid']], ["AND" => ['groupid' => $gids, 'jobs.jobid' => $VARS['job']]]); + $job = $database->has('jobs', ['[>]job_groups' => ['jobid']], ["AND" => ["OR" => ['groupid' => $gids, 'groupid #-1' => -1], 'deleted' => 0]]); } else { $job = $database->has('jobs', 'jobid', ['jobid' => $VARS['job']]); } @@ -273,15 +273,25 @@ switch ($VARS['action']) { $name = htmlentities($VARS['jobname']); $code = $VARS['jobcode']; $color = $VARS['color']; + $groups = $VARS['groups']; if (is_empty($VARS['jobid'])) { if ($database->has('jobs', ['jobname' => $name])) { returnToSender("job_name_used"); } $database->insert('jobs', ["jobname" => $name, "jobcode" => $code, "color" => $color]); + $jobid = $database->id(); + $database->delete('job_groups', ['jobid' => $jobid]); + foreach ($groups as $g) { + $database->insert('job_groups', ['jobid' => $jobid, 'groupid' => $g]); + } returnToSender("job_added"); } else if ($database->has('jobs', ['jobid' => $VARS['jobid']])) { $database->update('jobs', ["jobname" => $name, "jobcode" => $code, "color" => $color], ["jobid" => $VARS['jobid']]); + $database->delete('job_groups', ['jobid' => $VARS['jobid']]); + foreach ($groups as $g) { + $database->insert('job_groups', ['jobid' => $VARS['jobid'], 'groupid' => $g]); + } returnToSender("job_saved"); } else { returnToSender("invalid_jobid"); diff --git a/database.mwb b/database.mwb index e114da2463e69f5ba6017e57a29c4dab134afb20..09757ab0e86a4a6f518a785e910541d0c4b3fa13 100644 GIT binary patch delta 10634 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 delta 10693 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%0A>*=w#U{w!a$Wp8cxo2K) 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 Ai2wiq diff --git a/database_upgrade/1.0.1_1.1.sql b/database_upgrade/1.0.1_1.1.sql index 5777f8f..43a8ffa 100644 --- a/database_upgrade/1.0.1_1.1.sql +++ b/database_upgrade/1.0.1_1.1.sql @@ -16,7 +16,7 @@ DEFAULT CHARACTER SET = utf8; CREATE TABLE IF NOT EXISTS `job_groups` ( `id` INT(11) NOT NULL AUTO_INCREMENT, - `groupid` VARCHAR(45) NOT NULL, + `groupid` INT(11) NOT NULL, `jobid` INT(11) NOT NULL, PRIMARY KEY (`id`, `groupid`, `jobid`), UNIQUE INDEX `id_UNIQUE` (`id` ASC), diff --git a/pages.php b/pages.php index 2f720a3..9d211b5 100644 --- a/pages.php +++ b/pages.php @@ -59,7 +59,10 @@ define("PAGES", [ ], "editjob" => [ "title" => "edit job", - "navbar" => false + "navbar" => false, + "scripts" => [ + "static/js/editjob.js" + ] ], "editjobhistory" => [ "title" => "edit job", diff --git a/pages/editjob.php b/pages/editjob.php index 7ae42ff..d29637c 100644 --- a/pages/editjob.php +++ b/pages/editjob.php @@ -83,6 +83,63 @@ if (isset($VARS['job']) && $database->has('jobs', ['jobid' => $VARS['job']])) { +
+
+
+
+ +
+
+ +
+
+
+
+ select('job_groups', ['groupid (id)'], ['jobid' => $data['jobid']]); + foreach ($groups as $g) { + if ($g['id'] == -1) { + $g['name'] = lang("all groups", false); + } else { + $g['name'] = $all_groups[$g['id']]; + } + ?> +
+
+
+ +
+
+
diff --git a/pages/editjobhistory.php b/pages/editjobhistory.php index ab81faf..4f32b56 100644 --- a/pages/editjobhistory.php +++ b/pages/editjobhistory.php @@ -56,7 +56,7 @@ if (isset($VARS['job']) && $database->has('job_tracking', ['id' => $VARS['job']] foreach ($groups as $g) { $gids[] = $g['id']; } - $jobs = $database->select('jobs', ['[>]job_groups' => ['jobid']], ['jobs.jobid', 'jobname'], ["AND" => ['groupid' => $gids, 'deleted' => 0]]); + $jobs = $database->select('jobs', ['[>]job_groups' => ['jobid']], ['jobs.jobid', 'jobname'], ["AND" => ["OR" => ['groupid' => $gids, 'groupid #-1' => -1], 'deleted' => 0]]); } else { $jobs = $database->select('jobs', ['jobid', 'jobname'], ['deleted' => 0]); } diff --git a/pages/jobs.php b/pages/jobs.php index 8a3f90a..27cd9a5 100644 --- a/pages/jobs.php +++ b/pages/jobs.php @@ -28,7 +28,7 @@ redirectifnotloggedin(); foreach ($groups as $g) { $gids[] = $g['id']; } - $jobs = $database->select('jobs', ['[>]job_groups' => ['jobid']], ['jobs.jobid', 'jobname', 'jobcode', 'color'], ["AND" => ['groupid' => $gids, 'deleted' => 0]]); + $jobs = $database->select('jobs', ['[>]job_groups' => ['jobid']], ['jobs.jobid', 'jobname', 'jobcode', 'color'], ["AND" => ["OR" => ['groupid' => $gids, 'groupid #-1' => -1], 'deleted' => 0]]); } else { $jobs = $database->select('jobs', ['jobid', 'jobname', 'jobcode', 'color'], ['deleted' => 0]); } diff --git a/static/js/editjob.js b/static/js/editjob.js new file mode 100644 index 0000000..1bc6eba --- /dev/null +++ b/static/js/editjob.js @@ -0,0 +1,44 @@ +/* + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + + +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +function addGroup(id, name) { + id = id.trim(); + if (id == "") { + return false; + } + if ($("#groupslist div[data-groupid=" + id + "]").length) { + $("#groupslist .list-group-item[data-groupid=" + id + "]").animate({ + backgroundColor: "#ff0000", + }, 500, "linear", function () { + $("#groupslist .list-group-item[data-groupid=" + id + "]").animate({ + backgroundColor: "#ffffff", + }, 500); + }); + return false; + } + $('#groupslist').append("
" + name + "
"); +} + +function removeGroup(gid) { + $("#groupslist div[data-groupid=" + gid + "]").remove(); +} + +$("#addgroupbtn").click(function () { + addGroup($("#groups-box").val(), $("#groups-box option:selected").text()); +}); + +$('#groupslist').on("click", ".rm", function () { + removeGroup($(this).parent().data("groupid")); +}); + +$('#groups-box').change(function () { + addGroup($("#groups-box").val(), $("#groups-box option:selected").text()); +}); \ No newline at end of file diff --git a/static/js/editjobs.js b/static/js/editjobs.js index ef72adb..1f48555 100644 --- a/static/js/editjobs.js +++ b/static/js/editjobs.js @@ -29,6 +29,6 @@ var jobtable = $('#jobtable').DataTable({ } ], order: [ - [2, 'desc'] + [2, 'asc'] ] }); \ No newline at end of file