summaryrefslogtreecommitdiff
path: root/models
diff options
context:
space:
mode:
authorFrédéric Guillot <fguillot@users.noreply.github.com>2014-03-30 19:53:59 -0400
committerFrédéric Guillot <fguillot@users.noreply.github.com>2014-03-30 19:53:59 -0400
commitd9dfd9d6199b15eba9510ef460e18c9245d9ab12 (patch)
tree6704134700cbc80c39b289620917d4bec011998e /models
parent34711f584651205cb6738b49df285d93a35393b5 (diff)
Add Mysql/MariaDB support
Diffstat (limited to 'models')
-rw-r--r--models/board.php16
-rw-r--r--models/schema.php167
-rw-r--r--models/task.php10
3 files changed, 16 insertions, 177 deletions
diff --git a/models/board.php b/models/board.php
index 723ffd85..3bff8d56 100644
--- a/models/board.php
+++ b/models/board.php
@@ -32,22 +32,20 @@ class Board extends Base
*/
public function saveTasksPosition(array $values)
{
- $this->db->startTransaction();
-
- $results = array();
$taskModel = new Task($this->db, $this->event);
+ $this->db->startTransaction();
+
foreach ($values as $value) {
- $results[] = $taskModel->move(
- $value['task_id'],
- $value['column_id'],
- $value['position']
- );
+ if (! $taskModel->move($value['task_id'], $value['column_id'], $value['position'])) {
+ $this->db->cancelTransaction();
+ return false;
+ }
}
$this->db->closeTransaction();
- return ! in_array(false, $results, true);
+ return true;
}
/**
diff --git a/models/schema.php b/models/schema.php
deleted file mode 100644
index 621bc981..00000000
--- a/models/schema.php
+++ /dev/null
@@ -1,167 +0,0 @@
-<?php
-
-namespace Schema;
-
-function version_10($pdo)
-{
- $pdo->exec(
- 'CREATE TABLE actions (
- id INTEGER PRIMARY KEY,
- project_id INTEGER,
- event_name TEXT,
- action_name TEXT,
- FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE CASCADE
- )'
- );
-
- $pdo->exec(
- 'CREATE TABLE action_has_params (
- id INTEGER PRIMARY KEY,
- action_id INTEGER,
- name TEXT,
- value TEXT,
- FOREIGN KEY(action_id) REFERENCES actions(id) ON DELETE CASCADE
- )'
- );
-}
-
-function version_9($pdo)
-{
- $pdo->exec("ALTER TABLE tasks ADD COLUMN date_due INTEGER");
-}
-
-function version_8($pdo)
-{
- $pdo->exec(
- 'CREATE TABLE comments (
- id INTEGER PRIMARY KEY,
- task_id INTEGER,
- user_id INTEGER,
- date INTEGER,
- comment TEXT,
- FOREIGN KEY(task_id) REFERENCES tasks(id) ON DELETE CASCADE,
- FOREIGN KEY(user_id) REFERENCES tasks(id) ON DELETE CASCADE
- )'
- );
-}
-
-function version_7($pdo)
-{
- $pdo->exec("
- CREATE TABLE project_has_users (
- id INTEGER PRIMARY KEY,
- project_id INTEGER,
- user_id INTEGER,
- FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE CASCADE,
- FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE,
- UNIQUE(project_id, user_id)
- )
- ");
-}
-
-function version_6($pdo)
-{
- $pdo->exec("ALTER TABLE columns ADD COLUMN task_limit INTEGER DEFAULT '0'");
-}
-
-function version_5($pdo)
-{
- $pdo->exec("ALTER TABLE tasks ADD COLUMN score INTEGER");
-}
-
-function version_4($pdo)
-{
- $pdo->exec("ALTER TABLE config ADD COLUMN timezone TEXT DEFAULT 'UTC'");
-}
-
-function version_3($pdo)
-{
- $pdo->exec('ALTER TABLE projects ADD COLUMN token TEXT');
-
- // For each existing project, assign a different token
- $rq = $pdo->prepare("SELECT id FROM projects WHERE token IS NULL");
- $rq->execute();
- $results = $rq->fetchAll(\PDO::FETCH_ASSOC);
-
- if ($results !== false) {
-
- foreach ($results as &$result) {
- $rq = $pdo->prepare('UPDATE projects SET token=? WHERE id=?');
- $rq->execute(array(\Model\Base::generateToken(), $result['id']));
- }
- }
-}
-
-function version_2($pdo)
-{
- $pdo->exec('ALTER TABLE tasks ADD COLUMN date_completed INTEGER');
- $pdo->exec('UPDATE tasks SET date_completed=date_creation WHERE is_active=0');
-}
-
-function version_1($pdo)
-{
- $pdo->exec("
- CREATE TABLE config (
- language TEXT,
- webhooks_token TEXT
- )
- ");
-
- $pdo->exec("
- CREATE TABLE users (
- id INTEGER PRIMARY KEY,
- username TEXT,
- password TEXT,
- is_admin INTEGER DEFAULT 0,
- default_project_id DEFAULT 0
- )
- ");
-
- $pdo->exec("
- CREATE TABLE projects (
- id INTEGER PRIMARY KEY,
- name TEXT NOCASE UNIQUE,
- is_active INTEGER DEFAULT 1
- )
- ");
-
- $pdo->exec("
- CREATE TABLE columns (
- id INTEGER PRIMARY KEY,
- title TEXT,
- position INTEGER,
- project_id INTEGER,
- FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE CASCADE,
- UNIQUE (title, project_id)
- )
- ");
-
- $pdo->exec("
- CREATE TABLE tasks (
- id INTEGER PRIMARY KEY,
- title TEXT,
- description TEXT,
- date_creation INTEGER,
- color_id TEXT,
- project_id INTEGER,
- column_id INTEGER,
- owner_id INTEGER DEFAULT '0',
- position INTEGER,
- is_active INTEGER DEFAULT 1,
- FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE CASCADE,
- FOREIGN KEY(column_id) REFERENCES columns(id) ON DELETE CASCADE
- )
- ");
-
- $pdo->exec("
- INSERT INTO users
- (username, password, is_admin)
- VALUES ('admin', '".\password_hash('admin', PASSWORD_BCRYPT)."', '1')
- ");
-
- $pdo->exec("
- INSERT INTO config
- (language, webhooks_token)
- VALUES ('en_US', '".\Model\Base::generateToken()."')
- ");
-}
diff --git a/models/task.php b/models/task.php
index cbe37feb..e327e8c2 100644
--- a/models/task.php
+++ b/models/task.php
@@ -348,7 +348,15 @@ class Task extends Base
}
$original_task = $this->getById($values['id']);
- $result = $this->db->table(self::TABLE)->eq('id', $values['id'])->update($values);
+
+ if ($original_task === false) {
+ return false;
+ }
+
+ $updated_task = $values;
+ unset($updated_task['id']);
+
+ $result = $this->db->table(self::TABLE)->eq('id', $values['id'])->update($updated_task);
// Trigger events
if ($result) {