diff options
| -rw-r--r-- | app/Console/Base.php | 2 | ||||
| -rw-r--r-- | app/Core/Base.php | 4 | ||||
| -rw-r--r-- | app/Core/Helper.php | 23 | ||||
| -rw-r--r-- | app/Helper/Model.php | 94 | ||||
| -rw-r--r-- | app/Import/TaskImport.php (renamed from app/Model/TaskImport.php) | 7 | ||||
| -rw-r--r-- | app/Import/UserImport.php (renamed from app/Model/UserImport.php) | 8 | ||||
| -rw-r--r-- | app/Model/Base.php | 80 | ||||
| -rw-r--r-- | app/Model/Project.php | 4 | ||||
| -rw-r--r-- | app/Model/Subtask.php | 4 | ||||
| -rw-r--r-- | app/Model/TaskCreation.php | 4 | ||||
| -rw-r--r-- | app/Model/TaskModification.php | 6 | ||||
| -rw-r--r-- | app/Model/User.php | 8 | ||||
| -rw-r--r-- | app/ServiceProvider/ClassProvider.php | 6 | 
13 files changed, 136 insertions, 114 deletions
diff --git a/app/Console/Base.php b/app/Console/Base.php index 04ee8a21..b2066a63 100644 --- a/app/Console/Base.php +++ b/app/Console/Base.php @@ -21,6 +21,8 @@ use Symfony\Component\Console\Command\Command;   * @property \Kanboard\Model\TaskExport                                 $taskExport   * @property \Kanboard\Model\TaskFinder                                 $taskFinder   * @property \Kanboard\Model\Transition                                 $transition + * @property \Kanboard\Model\UserNotification                           $userNotification + * @property \Kanboard\Model\UserNotificationFilter                     $userNotificationFilter   * @property \Symfony\Component\EventDispatcher\EventDispatcher         $dispatcher   */  abstract class Base extends Command diff --git a/app/Core/Base.php b/app/Core/Base.php index 14b06b90..c84fcbac 100644 --- a/app/Core/Base.php +++ b/app/Core/Base.php @@ -99,7 +99,6 @@ use Pimple\Container;   * @property \Kanboard\Model\TaskDuplication                            $taskDuplication   * @property \Kanboard\Model\TaskExport                                 $taskExport   * @property \Kanboard\Model\TaskExternalLink                           $taskExternalLink - * @property \Kanboard\Model\TaskImport                                 $taskImport   * @property \Kanboard\Model\TaskFinder                                 $taskFinder   * @property \Kanboard\Model\TaskFilter                                 $taskFilter   * @property \Kanboard\Model\TaskLink                                   $taskLink @@ -111,7 +110,6 @@ use Pimple\Container;   * @property \Kanboard\Model\Transition                                 $transition   * @property \Kanboard\Model\TransitionExport                           $transitionExport   * @property \Kanboard\Model\User                                       $user - * @property \Kanboard\Model\UserImport                                 $userImport   * @property \Kanboard\Model\UserLocking                                $userLocking   * @property \Kanboard\Model\UserMention                                $userMention   * @property \Kanboard\Model\UserNotification                           $userNotification @@ -137,6 +135,8 @@ use Pimple\Container;   * @property \Kanboard\Validator\ExternalLinkValidator                  $externalLinkValidator   * @property \Kanboard\Validator\TaskValidator                          $taskValidator   * @property \Kanboard\Validator\UserValidator                          $userValidator + * @property \Kanboard\Import\TaskImport                                $taskImport + * @property \Kanboard\Import\UserImport                                $userImport   * @property \Psr\Log\LoggerInterface                                   $logger   * @property \PicoDb\Database                                           $db   * @property \Symfony\Component\EventDispatcher\EventDispatcher         $dispatcher diff --git a/app/Core/Helper.php b/app/Core/Helper.php index bf71769f..759209f6 100644 --- a/app/Core/Helper.php +++ b/app/Core/Helper.php @@ -10,17 +10,18 @@ use Pimple\Container;   * @package core   * @author  Frederic Guillot   * - * @property \Helper\App        $app - * @property \Helper\Asset      $asset - * @property \Helper\Dt         $dt - * @property \Helper\File       $file - * @property \Helper\Form       $form - * @property \Helper\Subtask    $subtask - * @property \Helper\Task       $task - * @property \Helper\Text       $text - * @property \Helper\Url        $url - * @property \Helper\User       $user - * @property \Helper\Layout     $layout + * @property \Kanboard\Helper\App        $app + * @property \Kanboard\Helper\Asset      $asset + * @property \Kanboard\Helper\Dt         $dt + * @property \Kanboard\Helper\File       $file + * @property \Kanboard\Helper\Form       $form + * @property \Kanboard\Helper\Subtask    $subtask + * @property \Kanboard\Helper\Task       $task + * @property \Kanboard\Helper\Text       $text + * @property \Kanboard\Helper\Url        $url + * @property \Kanboard\Helper\User       $user + * @property \Kanboard\Helper\Layout     $layout + * @property \Kanboard\Helper\Model      $model   */  class Helper  { diff --git a/app/Helper/Model.php b/app/Helper/Model.php new file mode 100644 index 00000000..68a52542 --- /dev/null +++ b/app/Helper/Model.php @@ -0,0 +1,94 @@ +<?php + +namespace Kanboard\Helper; + +use Kanboard\Core\Base; + +/** + * Model Helper + * + * @package helper + * @author  Frederic Guillot + */ +class Model extends Base +{ +    /** +     * Remove keys from an array +     * +     * @access public +     * @param  array     $values    Input array +     * @param  string[]  $keys      List of keys to remove +     */ +    public function removeFields(array &$values, array $keys) +    { +        foreach ($keys as $key) { +            if (array_key_exists($key, $values)) { +                unset($values[$key]); +            } +        } +    } + +    /** +     * Remove keys from an array if empty +     * +     * @access public +     * @param  array     $values    Input array +     * @param  string[]  $keys      List of keys to remove +     */ +    public function removeEmptyFields(array &$values, array $keys) +    { +        foreach ($keys as $key) { +            if (array_key_exists($key, $values) && empty($values[$key])) { +                unset($values[$key]); +            } +        } +    } + +    /** +     * Force fields to be at 0 if empty +     * +     * @access public +     * @param  array        $values    Input array +     * @param  string[]     $keys      List of keys +     */ +    public function resetFields(array &$values, array $keys) +    { +        foreach ($keys as $key) { +            if (isset($values[$key]) && empty($values[$key])) { +                $values[$key] = 0; +            } +        } +    } + +    /** +     * Force some fields to be integer +     * +     * @access public +     * @param  array        $values    Input array +     * @param  string[]     $keys      List of keys +     */ +    public function convertIntegerFields(array &$values, array $keys) +    { +        foreach ($keys as $key) { +            if (isset($values[$key])) { +                $values[$key] = (int) $values[$key]; +            } +        } +    } + +    /** +     * Force some fields to be null if empty +     * +     * @access public +     * @param  array        $values    Input array +     * @param  string[]     $keys      List of keys +     */ +    public function convertNullFields(array &$values, array $keys) +    { +        foreach ($keys as $key) { +            if (array_key_exists($key, $values) && empty($values[$key])) { +                $values[$key] = null; +            } +        } +    } +} diff --git a/app/Model/TaskImport.php b/app/Import/TaskImport.php index ccab0152..2abafe14 100644 --- a/app/Model/TaskImport.php +++ b/app/Import/TaskImport.php @@ -1,7 +1,8 @@  <?php -namespace Kanboard\Model; +namespace Kanboard\Import; +use Kanboard\Core\Base;  use Kanboard\Core\Csv;  use SimpleValidator\Validator;  use SimpleValidator\Validators; @@ -9,7 +10,7 @@ use SimpleValidator\Validators;  /**   * Task Import   * - * @package  model + * @package  import   * @author   Frederic Guillot   */  class TaskImport extends Base @@ -126,7 +127,7 @@ class TaskImport extends Base              $values['date_due'] = $this->dateParser->getTimestampFromIsoFormat($row['date_due']);          } -        $this->removeEmptyFields( +        $this->helper->model->removeEmptyFields(              $values,              array('owner_id', 'creator_id', 'color_id', 'column_id', 'category_id', 'swimlane_id', 'date_due')          ); diff --git a/app/Model/UserImport.php b/app/Import/UserImport.php index 0ec4e802..64300d77 100644 --- a/app/Model/UserImport.php +++ b/app/Import/UserImport.php @@ -1,16 +1,18 @@  <?php -namespace Kanboard\Model; +namespace Kanboard\Import; +use Kanboard\Model\User;  use SimpleValidator\Validator;  use SimpleValidator\Validators;  use Kanboard\Core\Security\Role; +use Kanboard\Core\Base;  use Kanboard\Core\Csv;  /**   * User Import   * - * @package  model + * @package  import   * @author   Frederic Guillot   */  class UserImport extends Base @@ -91,7 +93,7 @@ class UserImport extends Base          unset($row['is_admin']);          unset($row['is_manager']); -        $this->removeEmptyFields($row, array('password', 'email', 'name')); +        $this->helper->model->removeEmptyFields($row, array('password', 'email', 'name'));          return $row;      } diff --git a/app/Model/Base.php b/app/Model/Base.php index 635ed09a..714b4308 100644 --- a/app/Model/Base.php +++ b/app/Model/Base.php @@ -33,86 +33,6 @@ abstract class Base extends \Kanboard\Core\Base      }      /** -     * Remove keys from an array -     * -     * @access public -     * @param  array     $values    Input array -     * @param  string[]  $keys      List of keys to remove -     */ -    public function removeFields(array &$values, array $keys) -    { -        foreach ($keys as $key) { -            if (array_key_exists($key, $values)) { -                unset($values[$key]); -            } -        } -    } - -    /** -     * Remove keys from an array if empty -     * -     * @access public -     * @param  array     $values    Input array -     * @param  string[]  $keys      List of keys to remove -     */ -    public function removeEmptyFields(array &$values, array $keys) -    { -        foreach ($keys as $key) { -            if (array_key_exists($key, $values) && empty($values[$key])) { -                unset($values[$key]); -            } -        } -    } - -    /** -     * Force fields to be at 0 if empty -     * -     * @access public -     * @param  array        $values    Input array -     * @param  string[]     $keys      List of keys -     */ -    public function resetFields(array &$values, array $keys) -    { -        foreach ($keys as $key) { -            if (isset($values[$key]) && empty($values[$key])) { -                $values[$key] = 0; -            } -        } -    } - -    /** -     * Force some fields to be integer -     * -     * @access public -     * @param  array        $values    Input array -     * @param  string[]     $keys      List of keys -     */ -    public function convertIntegerFields(array &$values, array $keys) -    { -        foreach ($keys as $key) { -            if (isset($values[$key])) { -                $values[$key] = (int) $values[$key]; -            } -        } -    } - -    /** -     * Force some fields to be null if empty -     * -     * @access public -     * @param  array        $values    Input array -     * @param  string[]     $keys      List of keys -     */ -    public function convertNullFields(array &$values, array $keys) -    { -        foreach ($keys as $key) { -            if (array_key_exists($key, $values) && empty($values[$key])) { -                $values[$key] = null; -            } -        } -    } - -    /**       * Build SQL condition for a given time range       *       * @access protected diff --git a/app/Model/Project.php b/app/Model/Project.php index a79e46a1..d2e5b7ce 100644 --- a/app/Model/Project.php +++ b/app/Model/Project.php @@ -334,7 +334,7 @@ class Project extends Base              $values['identifier'] = strtoupper($values['identifier']);          } -        $this->convertIntegerFields($values, array('priority_default', 'priority_start', 'priority_end')); +        $this->helper->model->convertIntegerFields($values, array('priority_default', 'priority_start', 'priority_end'));          if (! $this->db->table(self::TABLE)->save($values)) {              $this->db->cancelTransaction(); @@ -402,7 +402,7 @@ class Project extends Base              $values['identifier'] = strtoupper($values['identifier']);          } -        $this->convertIntegerFields($values, array('priority_default', 'priority_start', 'priority_end')); +        $this->helper->model->convertIntegerFields($values, array('priority_default', 'priority_start', 'priority_end'));          return $this->exists($values['id']) &&                 $this->db->table(self::TABLE)->eq('id', $values['id'])->save($values); diff --git a/app/Model/Subtask.php b/app/Model/Subtask.php index b5898fcf..3f5cfe83 100644 --- a/app/Model/Subtask.php +++ b/app/Model/Subtask.php @@ -168,8 +168,8 @@ class Subtask extends Base       */      public function prepare(array &$values)      { -        $this->removeFields($values, array('another_subtask')); -        $this->resetFields($values, array('time_estimated', 'time_spent')); +        $this->helper->model->removeFields($values, array('another_subtask')); +        $this->helper->model->resetFields($values, array('time_estimated', 'time_spent'));      }      /** diff --git a/app/Model/TaskCreation.php b/app/Model/TaskCreation.php index 576eb18c..2d2e5504 100644 --- a/app/Model/TaskCreation.php +++ b/app/Model/TaskCreation.php @@ -52,8 +52,8 @@ class TaskCreation extends Base          $values = $this->dateParser->convert($values, array('date_due'));          $values = $this->dateParser->convert($values, array('date_started'), true); -        $this->removeFields($values, array('another_task')); -        $this->resetFields($values, array('date_started', 'creator_id', 'owner_id', 'swimlane_id', 'date_due', 'score', 'category_id', 'time_estimated')); +        $this->helper->model->removeFields($values, array('another_task')); +        $this->helper->model->resetFields($values, array('date_started', 'creator_id', 'owner_id', 'swimlane_id', 'date_due', 'score', 'category_id', 'time_estimated'));          if (empty($values['column_id'])) {              $values['column_id'] = $this->column->getFirstColumnId($values['project_id']); diff --git a/app/Model/TaskModification.php b/app/Model/TaskModification.php index 8e59b3fe..a77b78a4 100644 --- a/app/Model/TaskModification.php +++ b/app/Model/TaskModification.php @@ -87,9 +87,9 @@ class TaskModification extends Base          $values = $this->dateParser->convert($values, array('date_due'));          $values = $this->dateParser->convert($values, array('date_started'), true); -        $this->removeFields($values, array('another_task', 'id')); -        $this->resetFields($values, array('date_due', 'date_started', 'score', 'category_id', 'time_estimated', 'time_spent')); -        $this->convertIntegerFields($values, array('priority', 'is_active', 'recurrence_status', 'recurrence_trigger', 'recurrence_factor', 'recurrence_timeframe', 'recurrence_basedate')); +        $this->helper->model->removeFields($values, array('another_task', 'id')); +        $this->helper->model->resetFields($values, array('date_due', 'date_started', 'score', 'category_id', 'time_estimated', 'time_spent')); +        $this->helper->model->convertIntegerFields($values, array('priority', 'is_active', 'recurrence_status', 'recurrence_trigger', 'recurrence_factor', 'recurrence_timeframe', 'recurrence_basedate'));          $values['date_modification'] = time();      } diff --git a/app/Model/User.php b/app/Model/User.php index 2d87d35b..0e11422b 100644 --- a/app/Model/User.php +++ b/app/Model/User.php @@ -253,10 +253,10 @@ class User extends Base              }          } -        $this->removeFields($values, array('confirmation', 'current_password')); -        $this->resetFields($values, array('is_ldap_user', 'disable_login_form')); -        $this->convertNullFields($values, array('gitlab_id')); -        $this->convertIntegerFields($values, array('gitlab_id')); +        $this->helper->model->removeFields($values, array('confirmation', 'current_password')); +        $this->helper->model->resetFields($values, array('is_ldap_user', 'disable_login_form')); +        $this->helper->model->convertNullFields($values, array('gitlab_id')); +        $this->helper->model->convertIntegerFields($values, array('gitlab_id'));      }      /** diff --git a/app/ServiceProvider/ClassProvider.php b/app/ServiceProvider/ClassProvider.php index 0ffe7099..6612844b 100644 --- a/app/ServiceProvider/ClassProvider.php +++ b/app/ServiceProvider/ClassProvider.php @@ -70,12 +70,10 @@ class ClassProvider implements ServiceProviderInterface              'TaskPermission',              'TaskPosition',              'TaskStatus', -            'TaskImport',              'TaskMetadata',              'Transition',              'TransitionExport',              'User', -            'UserImport',              'UserLocking',              'UserMention',              'UserNotification', @@ -111,6 +109,10 @@ class ClassProvider implements ServiceProviderInterface              'TaskLinkValidator',              'UserValidator',          ), +        'Import' => array( +            'TaskImport', +            'UserImport', +        ),          'Core' => array(              'DateParser',              'Helper',  | 
