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 e114da2..09757ab 100644
Binary files a/database.mwb and b/database.mwb differ
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("");
+}
+
+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