diff options
author | Frédéric Guillot <fguillot@users.noreply.github.com> | 2014-03-30 19:53:59 -0400 |
---|---|---|
committer | Frédéric Guillot <fguillot@users.noreply.github.com> | 2014-03-30 19:53:59 -0400 |
commit | d9dfd9d6199b15eba9510ef460e18c9245d9ab12 (patch) | |
tree | 6704134700cbc80c39b289620917d4bec011998e /models | |
parent | 34711f584651205cb6738b49df285d93a35393b5 (diff) |
Add Mysql/MariaDB support
Diffstat (limited to 'models')
-rw-r--r-- | models/board.php | 16 | ||||
-rw-r--r-- | models/schema.php | 167 | ||||
-rw-r--r-- | models/task.php | 10 |
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) { |