├── .github └── workflows │ ├── generatemo.yml │ ├── release.yml │ └── updatepot.yml ├── ISSUE_TEMPLATE.md ├── LICENSE ├── README.md ├── SECURITY.md ├── TODO.txt ├── ajax ├── addOptions.php ├── contextForm.php ├── dropdownState.php ├── dropdownTypeTasks.php ├── getTaskComment.php ├── index.php ├── inputEntity.php ├── kanban.php ├── seetask.php └── updatetask.php ├── front ├── comment.form.php ├── index.php ├── kanban.php ├── preference.form.php ├── setup.templates.php ├── task.form.php ├── task.php ├── task_comment.form.php ├── taskstate.form.php ├── taskstate.php ├── tasktype.form.php ├── tasktype.php ├── ticket.form.php └── typevisibility.form.php ├── hook.php ├── inc ├── dashboard.class.php ├── index.php ├── item_kanban.class.php ├── kanban.class.php ├── menu.class.php ├── notificationtargettask.class.php ├── preference.class.php ├── profile.class.php ├── task.class.php ├── task_comment.class.php ├── taskstate.class.php ├── tasktype.class.php ├── ticket.class.php └── typevisibility.class.php ├── index.php ├── lib ├── jquery-ui │ ├── images │ │ ├── ui-icons_444444_256x240.png │ │ ├── ui-icons_555555_256x240.png │ │ ├── ui-icons_777620_256x240.png │ │ ├── ui-icons_777777_256x240.png │ │ ├── ui-icons_cc0000_256x240.png │ │ └── ui-icons_ffffff_256x240.png │ ├── jquery-ui.min.css │ └── jquery-ui.min.js └── kanban │ ├── LICENSE │ ├── README.md │ ├── css │ └── kanban.css │ ├── images │ └── dragger.png │ └── js │ ├── Kanban.js │ └── kanban-actions.js ├── locales ├── cs_CZ.mo ├── cs_CZ.po ├── en_GB.mo ├── en_GB.po ├── es_419.mo ├── es_419.po ├── es_EC.mo ├── es_EC.po ├── es_ES.mo ├── es_ES.po ├── es_MX.mo ├── es_MX.po ├── es_VE.mo ├── es_VE.po ├── fi_FI.mo ├── fi_FI.po ├── fr_FR.mo ├── fr_FR.po ├── glpi.pot ├── ja_JP.mo ├── ja_JP.po ├── pl_PL.mo ├── pl_PL.po ├── pt_BR.mo ├── pt_BR.po ├── ru_RU.mo └── ru_RU.po ├── screenshots ├── Tasks list from Dashboard.png ├── addTask.png └── kanban.png ├── setup.php ├── sql ├── empty-1.0.0.sql ├── empty-1.3.0.sql ├── empty-1.4.0.sql ├── empty-1.5.1.sql ├── empty-1.6.0.sql ├── empty-1.6.1.sql ├── empty-2.0.0.sql ├── empty-2.0.4.sql ├── update-1.4.0.sql ├── update-1.4.1.sql ├── update-1.5.1.sql ├── update-1.6.0.sql ├── update-1.6.1.sql └── update-2.0.0.sql ├── tasklists.png ├── tasklists.xml ├── templates └── kanban.html.twig └── tools ├── extract_template.sh ├── update_mo.pl └── update_po.pl /.github/workflows/generatemo.yml: -------------------------------------------------------------------------------- 1 | name: Generate MO 2 | on: 3 | push: 4 | branches: [ master ] 5 | paths: 6 | - '**.po' 7 | env: 8 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 9 | jobs: 10 | run: 11 | 12 | name: Generate mo 13 | runs-on: ubuntu-latest 14 | steps: 15 | - name: Checkout repo 16 | uses: actions/checkout@v4 17 | 18 | - name: Setup Perl environment 19 | # You may pin to the exact commit or the version. 20 | # uses: shogo82148/actions-setup-perl@8d2e3d59a9516b785ed32169d48a4888eaa9b514 21 | uses: shogo82148/actions-setup-perl@v1 22 | - name: msgfmt 23 | # You may pin to the exact commit or the version. 24 | # uses: whtsky/msgfmt-action@6b2181f051b002182d01a1e1f1aff216230c5a4d 25 | uses: whtsky/msgfmt-action@20190305 26 | - name: Generate mo 27 | run: perl tools/update_mo.pl; 28 | 29 | - name: Commit changes 30 | uses: EndBug/add-and-commit@v9 31 | with: 32 | 33 | message: "Generate mo" 34 | - name: Push changes 35 | 36 | uses: actions-go/push@master 37 | 38 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | 2 | on: 3 | push: 4 | # Sequence of patterns matched against refs/tags 5 | tags: 6 | - '*.*.*' # Push events to matching ex:20.15.10 7 | 8 | name: Create release with tag 9 | env: 10 | TAG_VALUE: ${GITHUB_REF/refs\/tags\//} 11 | jobs: 12 | build: 13 | name: Upload Release Asset 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: Checkout code 17 | uses: actions/checkout@v4 18 | - name: Setup PHP 19 | uses: shivammathur/setup-php@v2 20 | with: 21 | php-version: 7.4 22 | - name: Build project # This would actually build your project, using zip for an example artifact 23 | id: build_ 24 | env: 25 | GITHUB_NAME: ${{ github.event.repository.name }} 26 | 27 | 28 | run: php -v ;sudo apt-get install libxml-xpath-perl; sudo apt-get install composer;echo $(xpath -e '/root/versions/version[num="'${GITHUB_REF/refs\/tags\//}'"]/compatibility/text()' $GITHUB_NAME.xml);echo ::set-output name=version_glpi::$(xpath -e '/root/versions/version[num="'${GITHUB_REF/refs\/tags\//}'"]/compatibility/text()' $GITHUB_NAME.xml); [[ -f composer.json ]] && composer install --no-dev; rm -rf $GITHUB_NAME.xml tools wiki screenshots test .git .github ISSUE_TEMPLATE.md TODO.txt $GITHUB_NAME.png;cd ..; tar -jcvf glpi-$GITHUB_NAME-${GITHUB_REF/refs\/tags\//}.tar.bz2 $GITHUB_NAME;ls -al;echo ::set-output name=tag::${GITHUB_REF/refs\/tags\//};echo ${{ steps.getxml.outputs.info }}; 29 | # run: rm -rf $GITHUB_NAME.xml tools wiki screenshots test ISSUE_TEMPLATE.md TODO.txt $GITHUB_NAME.png; tar -zcvf glpi-$GITHUB_NAME-$GITHUB_TAG.tar.bz2 $GITHUB_NAME 30 | - name: Create Release 31 | id: create_release 32 | uses: actions/create-release@v1 33 | env: 34 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 35 | with: 36 | tag_name: ${{ github.ref }} 37 | release_name: | 38 | GLPI ${{ steps.build_.outputs.version_glpi }} : Version ${{ github.ref }} disponible / available 39 | body : Version ${{ steps.build_.outputs.tag }} released for GLPI ${{ steps.build_.outputs.version_glpi }} 40 | draft: false 41 | prerelease: true 42 | - name: Upload Release Asset 43 | id: upload-release-asset 44 | uses: actions/upload-release-asset@v1 45 | env: 46 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 47 | GITHUB_NAME: ${{ github.event.repository.name }} 48 | with: 49 | upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps 50 | asset_path: /home/runner/work/${{ github.event.repository.name }}/glpi-${{ github.event.repository.name }}-${{ steps.build_.outputs.tag }}.tar.bz2 51 | asset_name: glpi-${{ github.event.repository.name }}-${{ steps.build_.outputs.tag }}.tar.bz2 52 | asset_content_type: application/zip 53 | 54 | -------------------------------------------------------------------------------- /.github/workflows/updatepot.yml: -------------------------------------------------------------------------------- 1 | name: Update POT 2 | on: 3 | push: 4 | branches: [ master ] 5 | paths-ignore: 6 | - 'locales/**' 7 | 8 | env: 9 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 10 | jobs: 11 | run: 12 | 13 | name: Update POT 14 | 15 | runs-on: ubuntu-latest 16 | steps: 17 | - name: Checkout repo 18 | uses: actions/checkout@v4 19 | 20 | - name: install xgettext 21 | 22 | run: sudo apt-get install gettext; 23 | - name: Update POT 24 | run: sh tools/extract_template.sh; 25 | 26 | 27 | - name: Commit changes 28 | uses: EndBug/add-and-commit@v9 29 | with: 30 | message: "Update POT" 31 | - name: Push changes 32 | 33 | uses: actions-go/push@master 34 | 35 | -------------------------------------------------------------------------------- /ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | Dear GLPi user. 2 | 3 | BEFORE SUBMITTING YOUR ISSUE, please make sure to read and follow these steps : 4 | 5 | * Verify that your question has not already been asked 6 | * Please use the below template. 7 | * Delete this text before submiting your issue. 8 | 9 | The Plugin team. 10 | 11 | ------------ 12 | * Version of the plugin : 13 | 14 | 15 | * Version of your GLPI : 16 | 17 | 18 | * Steps to reproduce (which actions have you made) : 19 | 20 | 21 | * Expected result : 22 | 23 | 24 | * Actual result : 25 | 26 | 27 | * URL of the page : 28 | 29 | 30 | * Screenshot of the problem (if pertinent) : 31 | 32 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Plugin Tasklists for GLPI 2 | 3 | ![Plugin tasklists](https://raw.githubusercontent.com/InfotelGLPI/tasklists/master/screenshots/kanban.png "Plugin tasklists") 4 | 5 | This plugin is on Transifex - Help us to translate : 6 | https://www.transifex.com/infotelGLPI/GLPI_tasklists/ 7 | 8 | See wiki for use it ? https://github.com/InfotelGLPI/tasklists/wiki 9 | 10 | Adding a management of tasks & a kanban. This plugin adds in GLPI, an interface to add tasks & manage them into a kanban 11 | 12 | Last features : 13 | 14 | - [X] Clone task 15 | - [X] Add comments to tasks 16 | - [X] See authors tasks filter 17 | - [X] See archived tasks filter 18 | - [X] See in progress tasks filter 19 | - [X] Send notifications for add / change / delete task 20 | - [X] Use richtext on tasks 21 | - [X] Add templates by context 22 | - [X] Add entity pre-selection 23 | - [X] Use a default Backlog from list 24 | - [X] Link to tickets 25 | - [X] Preference : context by default 26 | - [X] See percentage of completion from tasks 27 | - [X] Order States 28 | - [X] Add context to States 29 | - [X] Add color to States 30 | - [X] Minimize closed tasks 31 | - [X] Can be used with mail collector to create tasks 32 | - [ ] Add notification for revive user in charge 33 | - [ ] Add min - max by state 34 | - [ ] Add notifications to comments 35 | 36 | For GLPI versions <9.1, for use it with mail collector you must to modify "inc/rulemailcollector.class.php" file, into "executeActions" fonction, into switch : switch ($action->fields["action_type"]), add a default case : 37 | 38 | ``` 39 | default: 40 | //plugins actions 41 | $executeaction = clone $this; 42 | $output = $executeaction->executePluginsActions($action, $output, $params); 43 | break; 44 | ``` 45 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | | Version | Supported | 6 | | ------- | ------------------ | 7 | | 2.0.x | :white_check_mark: | 8 | 9 | ## Reporting a Vulnerability 10 | 11 | Please send an email to thetsmr[@]gmail.com 12 | -------------------------------------------------------------------------------- /TODO.txt: -------------------------------------------------------------------------------- 1 | Add notification for revive user in charge ? 2 | Add min - max by state 3 | Add notifications to comments ? 4 | 5 | ************** 6 | ordonner les contextes - pref ? 7 | ************** 8 | 9 | GLPI 10 10 | 11 | move teams to specific table for display 12 | Drop context for states 13 | drop clone 14 | drop glpi_plugin_tasklists_stateorders 15 | drop glpi_plugin_tasklists_items_kanbans 16 | drop addoptions.php 17 | 18 | fix see archived 19 | -------------------------------------------------------------------------------- /ajax/addOptions.php: -------------------------------------------------------------------------------- 1 | 'archive', 39 | 'multiple' => true, 40 | 'values' => json_decode($_SESSION["archive"][Session::getLoginUserID()], true), 41 | "display" => false]); 42 | } else { 43 | $arch = Dropdown::showFromArray("archive", $states, ['id' => 'archive', 44 | 'multiple' => true, 45 | 'value' => 0, 46 | "display" => false]); 47 | 48 | } 49 | 50 | echo json_encode($arch, JSON_FORCE_OBJECT); 51 | 52 | } else if ($_REQUEST['action'] == 'changeArchive') { 53 | if (!empty($_REQUEST['vals'])) 54 | $_SESSION["archive"][Session::getLoginUserID()] = json_encode($_REQUEST['vals']); 55 | 56 | } 57 | if ($_REQUEST['action'] == 'addUsers') { 58 | 59 | header("Content-Type: application/json; charset=UTF-8", true); 60 | $users = PluginTasklistsTaskType::findUsers($_REQUEST['context']); 61 | 62 | if (!isset($_SESSION["usersKanban"][Session::getLoginUserID()])) { 63 | $_SESSION["usersKanban"][Session::getLoginUserID()] = json_encode([-1]); 64 | } 65 | if ($_SESSION["usersKanban"][Session::getLoginUserID()] != "" && isset($_SESSION["archive"]) && $_SESSION["archive"][Session::getLoginUserID()] != "null") { 66 | $arch = Dropdown::showFromArray("usersKanban", $users, ['id' => 'users', 67 | 'multiple' => true, 68 | 'values' => json_decode($_SESSION["usersKanban"][Session::getLoginUserID()], true), 69 | "display" => false]); 70 | } else { 71 | $arch = Dropdown::showFromArray("usersKanban", $users, ['id' => 'users', 72 | 'multiple' => true, 73 | 'value' => -1, 74 | "display" => false]); 75 | } 76 | 77 | echo json_encode($arch, JSON_FORCE_OBJECT); 78 | 79 | } else if ($_REQUEST['action'] == 'changeUsers') { 80 | if (!empty($_REQUEST['vals'])) 81 | $_SESSION["usersKanban"][Session::getLoginUserID()] = json_encode($_REQUEST['vals']); 82 | 83 | } 84 | -------------------------------------------------------------------------------- /ajax/contextForm.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | 30 | include("../../../inc/includes.php"); 31 | 32 | Session::checkLoginUser(); 33 | 34 | Html::header_nocache(); 35 | header("Content-Type: text/html; charset=UTF-8"); 36 | 37 | //Html::requireJs('tinymce'); 38 | echo ""; 39 | 40 | if (isset($_GET['newContext'])) { 41 | $options = [ 42 | 'from_edit_ajax' => true, 43 | 44 | 'withtemplate' => 0 45 | ]; 46 | $task = new PluginTasklistsTaskState(); 47 | $task->showForm(0, $options); 48 | 49 | } 50 | Html::ajaxFooter(); -------------------------------------------------------------------------------- /ajax/dropdownState.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | 30 | include('../../../inc/includes.php'); 31 | 32 | header("Content-Type: text/html; charset=UTF-8"); 33 | Html::header_nocache(); 34 | 35 | Session::checkLoginUser(); 36 | 37 | if (isset($_POST["plugin_tasklists_tasktypes_id"])) { 38 | 39 | PluginTasklistsTask::displayState($_POST['plugin_tasklists_tasktypes_id']); 40 | 41 | } 42 | -------------------------------------------------------------------------------- /ajax/dropdownTypeTasks.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | 30 | if (strpos($_SERVER['PHP_SELF'], "dropdownTypeTasks.php")) { 31 | $AJAX_INCLUDE = 1; 32 | include('../../../inc/includes.php'); 33 | header("Content-Type: text/html; charset=UTF-8"); 34 | Html::header_nocache(); 35 | } 36 | 37 | Session::checkCentralAccess(); 38 | 39 | global $DB; 40 | 41 | // Make a select box 42 | if (isset($_POST["tasktypes"])) { 43 | $used = []; 44 | 45 | // Clean used array 46 | if ( 47 | isset($_POST['used']) 48 | && is_array($_POST['used']) 49 | && (count($_POST['used']) > 0) 50 | ) { 51 | foreach ( 52 | $DB->request( 53 | 'glpi_plugin_tasklists_tasks', 54 | [ 55 | 'id' => $_POST['used'], 56 | 'plugin_tasklists_tasktypes_id' => $_POST['tasktypes'] 57 | ] 58 | ) as $data 59 | ) { 60 | $used[$data['id']] = $data['id']; 61 | } 62 | } 63 | 64 | Dropdown::show( 65 | 'PluginTasklistsTask', 66 | [ 67 | 'name' => $_POST['myname'], 68 | 'used' => $used, 69 | 'width' => '50%', 70 | 'entity' => $_POST['entity'], 71 | 'rand' => $_POST['rand'], 72 | 'condition' => ["glpi_plugin_tasklists_tasks.plugin_tasklists_tasktypes_id" => $_POST["tasktypes"]] 73 | ] 74 | ); 75 | } 76 | -------------------------------------------------------------------------------- /ajax/getTaskComment.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | 30 | include('../../../inc/includes.php'); 31 | header("Content-Type: text/html; charset=UTF-8"); 32 | Html::header_nocache(); 33 | 34 | Session::checkLoginUser(); 35 | 36 | if (!isset($_POST['plugin_tasklists_tasks_id'])) { 37 | throw new \RuntimeException('Required argument missing!'); 38 | } 39 | 40 | $plugin_tasklists_tasks_id = $_POST['plugin_tasklists_tasks_id']; 41 | $lang = null; 42 | if (isset($_POST['language'])) { 43 | $lang = $_POST['language']; 44 | } 45 | 46 | $edit = false; 47 | if (isset($_POST['edit'])) { 48 | $edit = $_POST['edit']; 49 | } 50 | 51 | $answer = false; 52 | if (isset($_POST['answer'])) { 53 | $answer = $_POST['answer']; 54 | } 55 | 56 | echo PluginTasklistsTask_Comment::getCommentForm($plugin_tasklists_tasks_id, $lang, $edit, $answer); 57 | -------------------------------------------------------------------------------- /ajax/index.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | -------------------------------------------------------------------------------- /ajax/inputEntity.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | 30 | include('../../../inc/includes.php'); 31 | 32 | header("Content-Type: text/html; charset=UTF-8"); 33 | Html::header_nocache(); 34 | 35 | Session::checkLoginUser(); 36 | 37 | if (isset($_POST["entities_id"])) { 38 | echo Html::hidden('entities_id', ['value' => $_POST["entities_id"]]); 39 | } 40 | -------------------------------------------------------------------------------- /ajax/seetask.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | 30 | include("../../../inc/includes.php"); 31 | 32 | Session::checkLoginUser(); 33 | 34 | Html::header_nocache(); 35 | header("Content-Type: text/html; charset=UTF-8"); 36 | 37 | //Html::requireJs('tinymce'); 38 | echo ""; 39 | 40 | if (isset($_GET['id'])) { 41 | $options = [ 42 | 'from_edit_ajax' => true, 43 | 'id' => $_GET['id'], 44 | 'withtemplate' => 0 45 | ]; 46 | echo "
"; 47 | echo "" . __("View this item in his context") . ""; 48 | echo "
"; 49 | echo "
"; 50 | $task = new PluginTasklistsTask(); 51 | $task->showForm($_GET['id'],$options); 52 | } else if (isset($_GET['plugin_tasklists_tasktypes_id']) 53 | && isset($_GET['plugin_tasklists_taskstates_id'])) { 54 | $options = [ 55 | 'from_edit_ajax' => true, 56 | 'plugin_tasklists_tasktypes_id' => $_GET['plugin_tasklists_tasktypes_id'], 57 | 'plugin_tasklists_taskstates_id' => $_GET['plugin_tasklists_taskstates_id'], 58 | 'withtemplate' => 0 59 | ]; 60 | $task = new PluginTasklistsTask(); 61 | if ($id = $task->hasTemplate($options)) { 62 | $options['withtemplate'] = 2; 63 | $task->showForm($id, $options); 64 | } else { 65 | $task->showForm(0, $options); 66 | } 67 | } else if (isset($_GET['clone_id'])) { 68 | $id = $_GET['clone_id']; 69 | $task = new PluginTasklistsTask(); 70 | if ($task->getFromDB($id)) { 71 | $options = [ 72 | 'from_edit_ajax' => true, 73 | 'plugin_tasklists_tasktypes_id' => $task->fields['plugin_tasklists_tasktypes_id'], 74 | 'plugin_tasklists_taskstates_id' => $task->fields['plugin_tasklists_taskstates_id'], 75 | 'priority' => $task->fields['priority'], 76 | 'users_id' => Session::getLoginUserID(), 77 | 'groups_id' => $task->fields['groups_id'], 78 | 'client' => $task->fields['client'], 79 | 'entities_id' => $task->fields['entities_id'], 80 | 'visibility' => $task->fields['visibility'], 81 | 'withtemplate' => 0 82 | ]; 83 | $taskcloned = new PluginTasklistsTask(); 84 | $taskcloned->showForm(0, $options); 85 | } 86 | } else if (isset($_GET['task_id'])) { 87 | $id = $_GET['task_id']; 88 | $task = new PluginTasklistsTask(); 89 | if ($task->getFromDB($id)) { 90 | $options = [ 91 | 'from_edit_ajax' => true, 92 | //'plugin_tasklists_tasktypes_id' => $task->fields['plugin_tasklists_tasktypes_id'], 93 | //'plugin_tasklists_taskstates_id' => $task->fields['plugin_tasklists_taskstates_id'], 94 | //'priority' => $task->fields['priority'], 95 | //'users_id' => Session::getLoginUserID(), 96 | //'groups_id' => $task->fields['groups_id'], 97 | //'client' => $task->fields['client'], 98 | 'entities_id' => $task->fields['entities_id'], 99 | 'name' => $task->fields['name'], 100 | 'content' => $task->fields['comment'], 101 | 'withtemplate' => 0 102 | ]; 103 | $ticket = new Ticket(); 104 | $ticket->showForm(0, $options); 105 | } 106 | } 107 | Html::ajaxFooter(); -------------------------------------------------------------------------------- /ajax/updatetask.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | 30 | include("../../../inc/includes.php"); 31 | 32 | Session::checkLoginUser(); 33 | 34 | if (isset($_POST['data_id']) 35 | && isset($_POST['percent_done'])) { 36 | $task = new PluginTasklistsTask(); 37 | $input['percent_done'] = $_POST['percent_done']; 38 | $input['id'] = $_POST['data_id']; 39 | $task->update($input); 40 | 41 | } else if (isset($_POST['data_id']) 42 | && isset($_POST['updatepriority'])) { 43 | $task = new PluginTasklistsTask(); 44 | if ($task->getFromDB($_POST['data_id'])) { 45 | if ($task->fields["priority"] < 5) { 46 | $input['priority'] = $task->fields["priority"] + 1; 47 | } 48 | $input['id'] = $_POST['data_id']; 49 | $task->update($input); 50 | } 51 | } else if (isset($_POST['data_id']) 52 | && isset($_POST['archivetask'])) { 53 | $task = new PluginTasklistsTask(); 54 | $input['is_archived'] = 1; 55 | $input['id'] = $_POST['data_id']; 56 | $task->update($input); 57 | 58 | } else if (isset($_POST['archivealltasks']) 59 | && isset($_POST['state_id']) 60 | && isset($_POST['context_id'])) { 61 | 62 | $task = new PluginTasklistsTask(); 63 | $dbu = new DbUtils(); 64 | $cond = ["plugin_tasklists_taskstates_id" => $_POST['state_id'], 65 | "plugin_tasklists_tasktypes_id" => $_POST['context_id'], 66 | "is_deleted" => 0, 67 | "is_archived" => 0]; 68 | $tasks = $dbu->getAllDataFromTable($dbu->getTableForItemType('PluginTasklistsTasks'), 69 | $cond); 70 | foreach ($tasks as $key => $row) { 71 | if ($task->getFromDB($row['id'])) { 72 | $input['is_archived'] = 1; 73 | $input['id'] = $row['id']; 74 | $task->update($input); 75 | } 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /front/comment.form.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | 30 | include('../../../inc/includes.php'); 31 | 32 | if (!isset($_GET["id"])) { 33 | $_GET["id"] = ""; 34 | } 35 | if (!isset($_GET["withtemplate"])) { 36 | $_GET["withtemplate"] = ""; 37 | } 38 | 39 | Html::header(PluginTasklistsTask::getTypeName(2), '', "helpdesk", "plugintasklistsmenu"); 40 | 41 | $task = new PluginTasklistsTask(); 42 | $task->checkGlobal(READ); 43 | $task->getFromDB($_GET['id']); 44 | $note = new Notepad(); 45 | $note->showForItem($task); 46 | 47 | Html::footer(); 48 | -------------------------------------------------------------------------------- /front/index.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | -------------------------------------------------------------------------------- /front/kanban.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | 30 | include('../../../inc/includes.php'); 31 | 32 | Html::header(PluginTasklistsTask::getTypeName(2), '', "helpdesk", "plugintasklistsmenu"); 33 | 34 | $kanban = new PluginTasklistsKanban(); 35 | 36 | if ($kanban->canView() || Session::haveRight("config", CREATE)) { 37 | //AS module for SearchTokenizer 38 | // echo ""; 39 | echo ""; 40 | Html::requireJs('sortable'); 41 | Html::requireJs('kanban'); 42 | echo Html::css(PLUGIN_TASKLISTS_NOTFULL_DIR . '/lib/kanban/css/kanban.css'); 43 | // echo Html::script(PLUGIN_TASKLISTS_NOTFULL_DIR . "/lib/kanban/js/kanban-actions.js"); 44 | if (!isset($_GET["context_id"])) { 45 | $_GET["context_id"] = -1; 46 | } 47 | PluginTasklistsKanban::showKanban($_GET["context_id"]); 48 | 49 | } else { 50 | Html::displayRightError(); 51 | } 52 | 53 | Html::footer(); 54 | -------------------------------------------------------------------------------- /front/preference.form.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | 30 | include('../../../inc/includes.php'); 31 | 32 | Session::checkLoginUser(); 33 | 34 | //Save user preferences 35 | if (isset ($_POST['update'])) { 36 | $pref = new PluginTasklistsPreference(); 37 | $pref->check(-1, UPDATE, $_POST); 38 | $pref->update($_POST); 39 | Html::back(); 40 | } 41 | -------------------------------------------------------------------------------- /front/setup.templates.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | 30 | include('../../../inc/includes.php'); 31 | 32 | $task = new PluginTasklistsTask(); 33 | 34 | if ($task->canView() || Session::haveRight("config", UPDATE)) { 35 | Html::header(PluginTasklistsTask::getTypeName(2), '', "helpdesk", "plugintasklistsmenu"); 36 | 37 | $task->listOfTemplates(PLUGIN_TASKLISTS_WEBDIR . "/front/task.form.php", $_GET["add"]); 38 | 39 | Html::footer(); 40 | } 41 | -------------------------------------------------------------------------------- /front/task.form.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | 30 | include('../../../inc/includes.php'); 31 | 32 | Session::checkRight("plugin_tasklists", READ); 33 | 34 | if (!isset($_GET["id"])) { 35 | $_GET["id"] = ""; 36 | } 37 | if (!isset($_GET["withtemplate"])) { 38 | $_GET["withtemplate"] = ""; 39 | } 40 | 41 | $task = new PluginTasklistsTask(); 42 | 43 | if (isset($_POST["add"])) { 44 | $task->check(-1, CREATE, $_POST); 45 | $newID = $task->add($_POST); 46 | //if ($_SESSION['glpibackcreated']) { 47 | // Html::redirect($task->getFormURL() . "?id=" . $newID); 48 | //} 49 | Html::back(); 50 | } else if (isset($_POST["delete"])) { 51 | $task->check($_POST['id'], DELETE); 52 | $task->delete($_POST); 53 | if (!isset($_POST["from_edit_ajax"])) { 54 | $task->redirectToList(); 55 | } else { 56 | Html::back(); 57 | } 58 | 59 | } else if (isset($_POST["restore"])) { 60 | $task->check($_POST['id'], PURGE); 61 | $task->restore($_POST); 62 | $task->redirectToList(); 63 | 64 | } else if (isset($_POST["purge"])) { 65 | $task->check($_POST['id'], PURGE); 66 | $task->delete($_POST, 1); 67 | if (!isset($_POST["from_edit_ajax"])) { 68 | $task->redirectToList(); 69 | } else { 70 | Html::back(); 71 | } 72 | 73 | } else if (isset($_POST["update"])) { 74 | $task->check($_POST['id'], UPDATE); 75 | $task->update($_POST); 76 | Html::back(); 77 | 78 | } else if (isset($_POST["done"])) { 79 | $task->check($_POST['id'], UPDATE); 80 | $options['id'] = $_POST['id']; 81 | $options['state'] = 2; 82 | $options['percent_done'] = 100; 83 | $task->update($options); 84 | Html::back(); 85 | 86 | } else if (isset($_POST["ticket_link"])) { 87 | 88 | $ticket = new PluginTasklistsTicket(); 89 | $task = new PluginTasklistsTask(); 90 | $task->check($_POST['plugin_tasklists_tasks_id'], UPDATE); 91 | $ticket->add(['tickets_id' => $_POST['tickets_id'], 92 | 'plugin_tasklists_tasks_id' => $_POST['plugin_tasklists_tasks_id']]); 93 | Html::back(); 94 | 95 | } else { 96 | 97 | $task->checkGlobal(READ); 98 | 99 | Html::header(PluginTasklistsTask::getTypeName(2), '', "helpdesk", "plugintasklistsmenu"); 100 | 101 | Html::requireJs('tinymce'); 102 | $task->display(['id' => $_GET["id"], 'withtemplate' => $_GET["withtemplate"]]); 103 | 104 | Html::footer(); 105 | } 106 | -------------------------------------------------------------------------------- /front/task.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | 30 | include('../../../inc/includes.php'); 31 | 32 | Html::header(PluginTasklistsTask::getTypeName(2), '', "helpdesk", "plugintasklistsmenu"); 33 | 34 | $task = new PluginTasklistsTask(); 35 | 36 | if ($task->canView() || Session::haveRight("config", CREATE)) { 37 | 38 | Search::show("PluginTasklistsTask"); 39 | 40 | } else { 41 | Html::displayRightError(); 42 | } 43 | 44 | Html::footer(); 45 | -------------------------------------------------------------------------------- /front/task_comment.form.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | 30 | use Glpi\Event; 31 | 32 | include('../../../inc/includes.php'); 33 | 34 | Session::checkLoginUser(); 35 | 36 | $comment = new PluginTasklistsTask_Comment(); 37 | if (!isset($_POST['plugin_tasklists_tasks_id'])) { 38 | $message = __('Mandatory fields are not filled!'); 39 | Session::addMessageAfterRedirect($message, false, ERROR); 40 | Html::back(); 41 | } 42 | $task = new PluginTasklistsTask(); 43 | $task->getFromDB($_POST['plugin_tasklists_tasks_id']); 44 | //if (!$task->canComment()) { 45 | // Html::displayRightError(); 46 | //} 47 | 48 | if (isset($_POST["add"])) { 49 | if (!isset($_POST['plugin_tasklists_tasks_id']) || !isset($_POST['comment'])) { 50 | $message = __('Mandatory fields are not filled!'); 51 | Session::addMessageAfterRedirect($message, false, ERROR); 52 | Html::back(); 53 | } 54 | 55 | if ($newid = $comment->add($_POST)) { 56 | Session::addMessageAfterRedirect( 57 | "" . __('Your comment has been added') . "", 58 | false, 59 | INFO 60 | ); 61 | } 62 | Html::back(); 63 | } 64 | 65 | if (isset($_POST["edit"])) { 66 | if (!isset($_POST['plugin_tasklists_tasks_id']) || !isset($_POST['id']) || !isset($_POST['comment'])) { 67 | $message = __('Mandatory fields are not filled!'); 68 | Session::addMessageAfterRedirect($message, false, ERROR); 69 | Html::back(); 70 | } 71 | 72 | $comment->getFromDB($_POST['id']); 73 | $data = array_merge($comment->fields, $_POST); 74 | if ($comment->update($data)) { 75 | Session::addMessageAfterRedirect( 76 | "" . __('Your comment has been edited') . "", 77 | false, 78 | INFO 79 | ); 80 | } 81 | Html::back(); 82 | } 83 | 84 | Html::displayErrorAndDie("lost"); 85 | -------------------------------------------------------------------------------- /front/taskstate.form.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | 30 | 31 | include('../../../inc/includes.php'); 32 | 33 | Session::checkRight("plugin_tasklists", READ); 34 | 35 | if (!isset($_GET["id"])) { 36 | $_GET["id"] = ""; 37 | } 38 | if (!isset($_GET["withtemplate"])) { 39 | $_GET["withtemplate"] = ""; 40 | } 41 | 42 | $task = new PluginTasklistsTaskState(); 43 | 44 | if (isset($_POST["add"])) { 45 | $task->check(-1, CREATE, $_POST); 46 | $newID = $task->add($_POST); 47 | if (!isset($_POST["from_edit_ajax"])) { 48 | Html::redirect($task->getFormURL() . "?id=" . $newID); 49 | } else { 50 | Html::back(); 51 | } 52 | 53 | } else if (isset($_POST["delete"])) { 54 | $task->check($_POST['id'], DELETE); 55 | $task->delete($_POST); 56 | if (!isset($_POST["from_edit_ajax"])) { 57 | $task->redirectToList(); 58 | } else { 59 | Html::back(); 60 | } 61 | 62 | } else if (isset($_POST["restore"])) { 63 | $task->check($_POST['id'], PURGE); 64 | $task->restore($_POST); 65 | $task->redirectToList(); 66 | 67 | } else if (isset($_POST["purge"])) { 68 | $task->check($_POST['id'], PURGE); 69 | $task->delete($_POST, 1); 70 | if (!isset($_POST["from_edit_ajax"])) { 71 | $task->redirectToList(); 72 | } else { 73 | Html::back(); 74 | } 75 | 76 | } else if (isset($_POST["update"])) { 77 | $task->check($_POST['id'], UPDATE); 78 | $task->update($_POST); 79 | Html::back(); 80 | 81 | } else if (isset($_POST["done"])) { 82 | $task->check($_POST['id'], UPDATE); 83 | $options['id'] = $_POST['id']; 84 | $options['state'] = 2; 85 | $options['percent_done'] = 100; 86 | $task->update($options); 87 | Html::back(); 88 | 89 | } else if (isset($_POST["ticket_link"])) { 90 | 91 | $ticket = new PluginTasklistsTicket(); 92 | $task = new PluginTasklistsTask(); 93 | $task->check($_POST['plugin_tasklists_tasks_id'], UPDATE); 94 | $ticket->add(['tickets_id' => $_POST['tickets_id'], 95 | 'plugin_tasklists_tasks_id' => $_POST['plugin_tasklists_tasks_id']]); 96 | Html::back(); 97 | 98 | } else { 99 | 100 | $task->checkGlobal(READ); 101 | 102 | Html::header(PluginTasklistsTask::getTypeName(2), '', "helpdesk", "plugintasklistsmenu"); 103 | 104 | Html::requireJs('tinymce'); 105 | $task->display(['id' => $_GET["id"], 'withtemplate' => $_GET["withtemplate"]]); 106 | 107 | Html::footer(); 108 | } 109 | -------------------------------------------------------------------------------- /front/taskstate.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | 30 | include('../../../inc/includes.php'); 31 | 32 | $dropdown = new PluginTasklistsTaskState(); 33 | include(GLPI_ROOT . "/front/dropdown.common.php"); 34 | -------------------------------------------------------------------------------- /front/tasktype.form.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | 30 | include('../../../inc/includes.php'); 31 | 32 | $dropdown = new PluginTasklistsTaskType(); 33 | include(GLPI_ROOT . "/front/dropdown.common.form.php"); 34 | -------------------------------------------------------------------------------- /front/tasktype.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | 30 | include('../../../inc/includes.php'); 31 | 32 | $dropdown = new PluginTasklistsTaskType(); 33 | include(GLPI_ROOT . "/front/dropdown.common.php"); 34 | -------------------------------------------------------------------------------- /front/ticket.form.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | include('../../../inc/includes.php'); 30 | 31 | Session::checkLoginUser(); 32 | 33 | $ticket = new PluginTasklistsTicket(); 34 | if (isset($_POST["add"])) { 35 | $ticket->check(-1, CREATE, $_POST); 36 | 37 | $ticket->add($_POST); 38 | Html::back(); 39 | 40 | } 41 | 42 | Html::displayErrorAndDie("lost"); 43 | -------------------------------------------------------------------------------- /front/typevisibility.form.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | 30 | include('../../../inc/includes.php'); 31 | 32 | $group = new PluginTasklistsTypeVisibility(); 33 | 34 | if (isset($_POST["add_groups"])) { 35 | $group->check(-1, UPDATE, $_POST); 36 | //add groups 37 | foreach ($_POST['groups_id'] as $groups_id) { 38 | $group->add(['groups_id' => $groups_id, 39 | 'plugin_tasklists_tasktypes_id' => $_POST['plugin_tasklists_tasktypes_id']]); 40 | } 41 | Html::back(); 42 | } -------------------------------------------------------------------------------- /inc/index.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | -------------------------------------------------------------------------------- /inc/item_kanban.class.php: -------------------------------------------------------------------------------- 1 | . 31 | * --------------------------------------------------------------------- 32 | */ 33 | 34 | class PluginTasklistsItem_Kanban extends CommonDBRelation { 35 | 36 | static public $itemtype_1 = 'itemtype'; 37 | static public $items_id_1 = 'items_id'; 38 | static public $itemtype_2 = 'User'; 39 | static public $items_id_2 = 'users_id'; 40 | static public $checkItem_1_Rights = 'plugin_tasklists'; 41 | 42 | 43 | /** 44 | * Load the state of a Kanban's column for a specific kanban for the current user 45 | * 46 | * @param string $itemtype Type of the item. 47 | * @param int $items_id ID of the item. 48 | * @param int $plugin_tasklists_taskstates_id column id 49 | * @param string $timestamp Timestamp string of last check or null to always get the state. 50 | * 51 | * @return return the state of the collummn for the user 52 | * if the state doesn't exist it is created 53 | * @since 9.5.0 54 | */ 55 | static function loadStateForItem($itemtype, $items_id, $plugin_tasklists_taskstates_id, $timestamp = null) { 56 | global $DB; 57 | 58 | 59 | $item = new self(); 60 | if ($item->getFromDBByCrit([ 61 | 'users_id' => Session::getLoginUserID(), 62 | 'itemtype' => $itemtype, 63 | 'items_id' => $items_id, 64 | 'plugin_tasklists_taskstates_id' => $plugin_tasklists_taskstates_id 65 | ])) { 66 | return $item->getField('state'); 67 | 68 | } else { 69 | $input = [ 70 | 'users_id' => Session::getLoginUserID(), 71 | 'itemtype' => $itemtype, 72 | 'items_id' => $items_id, 73 | 'state' => false, 74 | 'plugin_tasklists_taskstates_id' => $plugin_tasklists_taskstates_id, 75 | 'date_creation' => $_SESSION['glpi_currenttime'], 76 | 'date_mod' => $_SESSION['glpi_currenttime'] 77 | ]; 78 | $item->add($input); 79 | return false; 80 | } 81 | } 82 | 83 | 84 | static function collapseColumn($itemtype, $items_id, $column) { 85 | $item = new self(); 86 | $item->getFromDBByCrit([ 87 | 'users_id' => Session::getLoginUserID(), 88 | 'itemtype' => $itemtype, 89 | 'items_id' => $items_id, 90 | 'plugin_tasklists_taskstates_id' => $column 91 | ]); 92 | $input = $item->fields; 93 | $input["state"] = true; 94 | $input["date_mod"] = $_SESSION['glpi_currenttime']; 95 | $item->update($input); 96 | } 97 | 98 | static function expandColumn($itemtype, $items_id, $column) { 99 | 100 | $item = new self(); 101 | $item->getFromDBByCrit([ 102 | 'users_id' => Session::getLoginUserID(), 103 | 'itemtype' => $itemtype, 104 | 'items_id' => $items_id, 105 | 'plugin_tasklists_taskstates_id' => $column 106 | ]); 107 | $input = $item->fields; 108 | $input["state"] = false; 109 | $input["date_mod"] = $_SESSION['glpi_currenttime']; 110 | $item->update($input); 111 | } 112 | } -------------------------------------------------------------------------------- /inc/menu.class.php: -------------------------------------------------------------------------------- 1 | . 28 | -------------------------------------------------------------------------- 29 | */ 30 | 31 | 32 | /** 33 | * Class PluginTasklistsMenu 34 | */ 35 | class PluginTasklistsMenu extends CommonGLPI { 36 | static $rightname = 'plugin_tasklists'; 37 | 38 | /** 39 | * @param int $nb 40 | * 41 | * @return translated 42 | */ 43 | static function getMenuName($nb = 1) { 44 | return __('Tasks list', 'tasklists'); 45 | } 46 | 47 | /** 48 | * @return array 49 | */ 50 | static function getMenuContent() { 51 | 52 | $url = ""; 53 | $default_context = 0; 54 | if (class_exists("PluginTasklistsPreference")) { 55 | $default_context = PluginTasklistsPreference::checkDefaultType(Session::getLoginUserID()); 56 | } 57 | if ($default_context > 0) { 58 | $url = "?itemtype=PluginTasklistsKanban&glpi_tab=PluginTasklistsKanban$" . $default_context; 59 | } 60 | 61 | $menu = []; 62 | $menu['title'] = self::getMenuName(2); 63 | $menu['page'] = PluginTasklistsKanban::getSearchURL(false) ; 64 | 65 | $menu['links']['search'] = PluginTasklistsTask::getSearchURL(false); 66 | if (PluginTasklistsTask::canCreate()) { 67 | $menu['links']['add'] = PLUGIN_TASKLISTS_NOTFULL_DIR.'/front/setup.templates.php?add=1'; 68 | $menu['links']['template'] = PLUGIN_TASKLISTS_NOTFULL_DIR.'/front/setup.templates.php?add=0'; 69 | } 70 | $menu['links']['summary'] = PluginTasklistsKanban::getSearchURL(false); 71 | 72 | $menu['icon'] = self::getIcon(); 73 | 74 | return $menu; 75 | } 76 | 77 | /** 78 | * @return string 79 | */ 80 | static function getIcon() { 81 | return "ti ti-layout-kanban"; 82 | } 83 | 84 | static function removeRightsFromSession() { 85 | if (isset($_SESSION['glpimenu']['helpdesk']['types']['PluginTasklistsMenu'])) { 86 | unset($_SESSION['glpimenu']['helpdesk']['types']['PluginTasklistsMenu']); 87 | } 88 | if (isset($_SESSION['glpimenu']['helpdesk']['content']['plugintasklistsmenu'])) { 89 | unset($_SESSION['glpimenu']['helpdesk']['content']['plugintasklistsmenu']); 90 | } 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /inc/preference.class.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | 30 | /** 31 | * Class PluginTasklistsPreference 32 | */ 33 | class PluginTasklistsPreference extends CommonDBTM { 34 | 35 | static $rightname = 'plugin_tasklists'; 36 | 37 | /** 38 | * @param CommonGLPI $item 39 | * @param int $withtemplate 40 | * 41 | * @return string|translated 42 | */ 43 | function getTabNameForItem(CommonGLPI $item, $withtemplate = 0) { 44 | if (Session::haveRight('plugin_tasklists', READ) 45 | && $item->getType() == 'Preference') { 46 | return __('Tasks list', 'tasklists'); 47 | } 48 | return ''; 49 | } 50 | 51 | /** 52 | * @return string 53 | */ 54 | static function getIcon() { 55 | return PluginTasklistsTask::getIcon(); 56 | } 57 | 58 | 59 | /** 60 | * @param CommonGLPI $item 61 | * @param int $tabnum 62 | * @param int $withtemplate 63 | * 64 | * @return bool 65 | */ 66 | static function displayTabContentForItem(CommonGLPI $item, $tabnum = 1, $withtemplate = 0) { 67 | $pref = new self(); 68 | $pref->showPreferenceForm(Session::getLoginUserID()); 69 | return true; 70 | } 71 | 72 | /** 73 | * @param $user_id 74 | */ 75 | function showPreferenceForm($user_id) { 76 | //If user has no preferences yet, we set default values 77 | if (!$this->getFromDB($user_id)) { 78 | $this->initPreferences($user_id); 79 | $this->getFromDB($user_id); 80 | } 81 | 82 | //Preferences are not deletable 83 | $options['candel'] = false; 84 | $options['colspan'] = 1; 85 | 86 | $this->showFormHeader($options); 87 | 88 | echo "" . __("Context by default", "tasklists") . ""; 89 | echo ""; 90 | $types = PluginTasklistsTypeVisibility::seeAllowedTypes(); 91 | Dropdown::show('PluginTasklistsTaskType', ['name' => "default_type", 92 | 'value' => $this->fields['default_type'], 93 | 'condition' => ["id" => $types]]); 94 | echo ""; 95 | echo ""; 96 | echo "" . __("Automatic refreshing of tasklist", "tasklists") . ""; 97 | echo ""; 98 | Dropdown::showYesNo("automatic_refresh", $this->fields['automatic_refresh']); 99 | echo ""; 100 | echo ""; 101 | 102 | echo "" . __("Refresh every ", "tasklists") . ""; 103 | echo ""; 104 | Dropdown::showFromArray("automatic_refresh_delay", [1 => 1, 2 => 2, 5 => 5, 10 => 10, 30 => 30, 60 => 60], 105 | ["value" => $this->fields['automatic_refresh_delay']]); 106 | echo " " . __('minute(s)', "mydashboard"); 107 | echo ""; 108 | echo ""; 109 | 110 | $this->showFormButtons($options); 111 | } 112 | 113 | /** 114 | * @param $users_id 115 | */ 116 | public function initPreferences($users_id) { 117 | 118 | $input = []; 119 | $input['id'] = $users_id; 120 | $input['default_type'] = "0"; 121 | $this->add($input); 122 | 123 | } 124 | 125 | /** 126 | * @param $users_id 127 | * 128 | * @return int 129 | */ 130 | public static function checkDefaultType($users_id) { 131 | return self::checkPreferenceValue('default_type', $users_id); 132 | } 133 | 134 | /** 135 | * @param $field 136 | * @param int $users_id 137 | * 138 | * @return int 139 | */ 140 | public static function checkPreferenceValue($field, $users_id = 0) { 141 | $dbu = new DbUtils(); 142 | $data = $dbu->getAllDataFromTable($dbu->getTableForItemType(__CLASS__), ["id" => $users_id]); 143 | if (!empty($data)) { 144 | $first = array_pop($data); 145 | if ($field != "default_type") { 146 | return $first[$field]; 147 | } 148 | if ($first[$field] > 0) { 149 | return $first[$field]; 150 | } else { 151 | $values = PluginTasklistsTaskType::getAllForKanban(); 152 | $data = []; 153 | foreach ($values as $key => $value) { 154 | if (PluginTasklistsTypeVisibility::isUserHaveRight($key)) { 155 | $data[] = $key; 156 | } 157 | } 158 | if (!empty($data)) { 159 | $first = reset($data); 160 | return $first; 161 | } else { 162 | return 0; 163 | } 164 | } 165 | } else { 166 | $values = PluginTasklistsTaskType::getAllForKanban(); 167 | $data = []; 168 | foreach ($values as $key => $value) { 169 | if (PluginTasklistsTypeVisibility::isUserHaveRight($key)) { 170 | $data[] = $key; 171 | } 172 | } 173 | if (!empty($data)) { 174 | $first = reset($data); 175 | return $first; 176 | } else { 177 | return 0; 178 | } 179 | } 180 | } 181 | } 182 | -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | -------------------------------------------------------------------------------- /lib/jquery-ui/images/ui-icons_444444_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InfotelGLPI/tasklists/db68fda7243a85b5ce72dad27eb2c6cf2ea307c0/lib/jquery-ui/images/ui-icons_444444_256x240.png -------------------------------------------------------------------------------- /lib/jquery-ui/images/ui-icons_555555_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InfotelGLPI/tasklists/db68fda7243a85b5ce72dad27eb2c6cf2ea307c0/lib/jquery-ui/images/ui-icons_555555_256x240.png -------------------------------------------------------------------------------- /lib/jquery-ui/images/ui-icons_777620_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InfotelGLPI/tasklists/db68fda7243a85b5ce72dad27eb2c6cf2ea307c0/lib/jquery-ui/images/ui-icons_777620_256x240.png -------------------------------------------------------------------------------- /lib/jquery-ui/images/ui-icons_777777_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InfotelGLPI/tasklists/db68fda7243a85b5ce72dad27eb2c6cf2ea307c0/lib/jquery-ui/images/ui-icons_777777_256x240.png -------------------------------------------------------------------------------- /lib/jquery-ui/images/ui-icons_cc0000_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InfotelGLPI/tasklists/db68fda7243a85b5ce72dad27eb2c6cf2ea307c0/lib/jquery-ui/images/ui-icons_cc0000_256x240.png -------------------------------------------------------------------------------- /lib/jquery-ui/images/ui-icons_ffffff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InfotelGLPI/tasklists/db68fda7243a85b5ce72dad27eb2c6cf2ea307c0/lib/jquery-ui/images/ui-icons_ffffff_256x240.png -------------------------------------------------------------------------------- /lib/kanban/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 craig-davey96 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /lib/kanban/README.md: -------------------------------------------------------------------------------- 1 | # Kanban-jQuery 2 | # https://github.com/craig-davey96/Kanban-jQuery 3 | Kanban Board jQuery Plugin 4 | 5 | # Requirements 6 | 7 | 1. jQuery v3.2.1+ (https://jquery.com/download/) 8 | 2. jQuery UI v1.12.1+ (https://jqueryui.com/) 9 | 10 | # Example 11 | 12 | Include styles and script 13 | ```html 14 | 15 | 16 | ``` 17 | 18 | Example of the HTML element 19 | ```html 20 |
21 | ``` 22 | 23 | Example of the javascript call to create a Kanban Board 24 | ```js 25 | $('#kanban').kanban({ 26 | titles: ['Task' , 'Estimate' , 'Complete' , 'Invoiced' , 'Paid'], 27 | colours: ['#00aaff','#ff921d','#00ff40','#ffe54b','#8454ff'], 28 | items: [ 29 | { 30 | id: 1, 31 | title: 'Test', 32 | block: 'Task', 33 | link: '[URL]', 34 | link_text: 'TEST001', 35 | footer: ' 1
1/4
' 36 | }, 37 | { 38 | id: 2, 39 | title: 'Test 2', 40 | block: 'Estimate', 41 | footer: ' 1
1/4
' 42 | }, 43 | { 44 | id: 3, 45 | title: 'Test 3', 46 | block: 'Estimate', 47 | footer: ' 1
1/4
' 48 | }, 49 | { 50 | id: 4, 51 | title: 'Test 5', 52 | block: 'Estimate', 53 | footer: ' 1
1/4
' 54 | }, 55 | { 56 | id: 5, 57 | title: 'Test 5', 58 | block: 'Estimate', 59 | footer: ' 1
1/4
' 60 | }, 61 | ] 62 | }); 63 | ``` 64 | -------------------------------------------------------------------------------- /lib/kanban/images/dragger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InfotelGLPI/tasklists/db68fda7243a85b5ce72dad27eb2c6cf2ea307c0/lib/kanban/images/dragger.png -------------------------------------------------------------------------------- /lib/kanban/js/kanban-actions.js: -------------------------------------------------------------------------------- 1 | $(document.body).on("kanban:post_build_toolbar", "#kanban", () => { 2 | 3 | var datas = $("#kanban").data('js_class'); 4 | var kcolumns = datas.columns; 5 | // console.log(datas); 6 | 7 | //Infotel add link on toolbar for archive all tasks on this column 8 | $.each(kcolumns, function( index, value ) { 9 | var finishState = value.finished; 10 | if (datas.rights.canCreateItem) { 11 | if (finishState === 1) { 12 | var archive_all_tasks = __('Archive all tasks of this state', 'tasklists'); 13 | // datas.toolbar_el = ""; 14 | } 15 | } 16 | }); 17 | 18 | // this.root_taslists = PLUGIN_TASKLISTS_WEBDIR + "/ajax/"; 19 | // self.tasklist_root = self.root_taslists + "/ajax/"; 20 | 21 | // var archiveColumnTask = function (column) { 22 | // var archivealltasks = 1; 23 | // var state_id = column; 24 | // var context_id = self.item.items_id; 25 | // var data = {archivealltasks, state_id, context_id}; 26 | // var alert_archive_all_tasks = __('Are you sure you want to archive all tasks ?', 'tasklists'); 27 | // if (confirm(alert_archive_all_tasks)) { 28 | // $.ajax({ 29 | // data: data, 30 | // type: 'POST', 31 | // url: (self.tasklist_root + "updatetask.php"), 32 | // success: function (data) { 33 | // self.refresh(); 34 | // } 35 | // }); 36 | // } 37 | // }; 38 | }); 39 | 40 | $(document.body).on("kanban:post_build", "#kanban", () => { 41 | 42 | //Infotel add card background 43 | //
  • 46 | 47 | 48 | //Infotel add link for update priority & archive task 49 | // let link = ""; 50 | // if (card.finished == 1 && card.archived == 0) { 51 | // let title_archive = __('Archive this task', 'tasklists'); 52 | // link += ' '; 53 | // } 54 | // if (card.finished == 0 && card.priority_id < self.max_priority) { 55 | // let title_priority = __('Update priority of task', 'tasklists'); 56 | // link += ''; 57 | // } 58 | // card_el += link; 59 | 60 | // $("a#archivetask" + items_id).click(function () { 61 | // var archivetask = 1; 62 | // var data_id = items_id; 63 | // var data = {archivetask, data_id}; 64 | // let title_archive = __('Are you sure you want to archive this task ?', 'tasklists'); 65 | // if (confirm(title_archive)) { 66 | // $.ajax({ 67 | // data: data, 68 | // type: 'POST', 69 | // url: (self.tasklist_root + "updatetask.php"), 70 | // success: function (data) { 71 | // self.refresh(); 72 | // } 73 | // }); 74 | // } 75 | // }); 76 | // $("a#updatepriority" + items_id).click(function () { 77 | // var updatepriority = 1; 78 | // var data_id = items_id; 79 | // var data = {updatepriority, data_id}; 80 | // $.ajax({ 81 | // data: data, 82 | // type: 'POST', 83 | // url: (self.tasklist_root + "updatetask.php"), 84 | // success: function (data) { 85 | // self.refresh(); 86 | // } 87 | // }); 88 | // }); 89 | }); 90 | -------------------------------------------------------------------------------- /locales/cs_CZ.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InfotelGLPI/tasklists/db68fda7243a85b5ce72dad27eb2c6cf2ea307c0/locales/cs_CZ.mo -------------------------------------------------------------------------------- /locales/cs_CZ.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR Tasklists Development Team 3 | # This file is distributed under the same license as the GLPI - Tasklists plugin package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | # Translators: 7 | # Pavel Borecki , 2018 8 | # 9 | #, fuzzy 10 | msgid "" 11 | msgstr "" 12 | "Project-Id-Version: GLPI - Tasklists plugin 1.4.0\n" 13 | "Report-Msgid-Bugs-To: \n" 14 | "POT-Creation-Date: 2020-07-20 15:07+0200\n" 15 | "PO-Revision-Date: 2017-10-18 16:45+0000\n" 16 | "Last-Translator: Pavel Borecki , 2018\n" 17 | "Language-Team: Czech (Czech Republic) (https://www.transifex.com/infotelGLPI/teams/79675/cs_CZ/)\n" 18 | "MIME-Version: 1.0\n" 19 | "Content-Type: text/plain; charset=UTF-8\n" 20 | "Content-Transfer-Encoding: 8bit\n" 21 | "Language: cs_CZ\n" 22 | "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" 23 | 24 | #: setup.php:89 inc/dashboard.class.php:58 inc/dashboard.class.php:178 25 | #: inc/dashboard.class.php:183 inc/menu.class.php:44 26 | #: inc/preference.class.php:46 inc/profile.class.php:52 27 | msgid "Tasks list" 28 | msgstr "Seznam úkolů" 29 | 30 | #: ajax/addOptions.php:31 31 | msgid "Not archived" 32 | msgstr "" 33 | 34 | #: ajax/addOptions.php:32 inc/task.class.php:181 inc/task.class.php:599 35 | msgid "Archived" 36 | msgstr "Archivováno" 37 | 38 | #: inc/dashboard.class.php:93 inc/task.class.php:80 inc/task.class.php:418 39 | #: inc/taskstate.class.php:100 inc/taskstate.class.php:152 40 | #: inc/tasktype.class.php:48 41 | msgid "Context" 42 | msgid_plural "Contexts" 43 | msgstr[0] "Kontext" 44 | msgstr[1] "Kontexty" 45 | msgstr[2] "Kontextů" 46 | msgstr[3] "Kontexty" 47 | 48 | #: inc/dashboard.class.php:93 inc/notificationtargettask.class.php:203 49 | #: inc/notificationtargettask.class.php:247 inc/task.class.php:118 50 | #: inc/task.class.php:496 inc/tasktype.class.php:256 51 | msgid "Due date" 52 | msgstr "Termín" 53 | 54 | #: inc/dashboard.class.php:164 inc/dashboard.class.php:172 55 | #: inc/kanban.class.php:257 inc/ticket.class.php:154 56 | msgid "Add task" 57 | msgstr "Přidat úkol" 58 | 59 | #: inc/kanban.class.php:61 60 | msgid "Kanban" 61 | msgstr "Kanban" 62 | 63 | #: inc/kanban.class.php:121 64 | msgid "You don't have the right to see any context" 65 | msgstr "Nemáte oprávnění pro zobrazení žádného kontextu" 66 | 67 | #: inc/kanban.class.php:188 68 | msgid "There is no accessible context" 69 | msgstr "" 70 | 71 | #: inc/kanban.class.php:247 72 | msgid "Toggle collapse" 73 | msgstr "" 74 | 75 | #: inc/kanban.class.php:248 76 | msgid "Search" 77 | msgstr "" 78 | 79 | #: inc/kanban.class.php:249 80 | msgid "Search or filter results" 81 | msgstr "" 82 | 83 | #: inc/kanban.class.php:250 84 | msgid "Add status" 85 | msgstr "" 86 | 87 | #: inc/kanban.class.php:251 88 | msgid "Create status" 89 | msgstr "" 90 | 91 | #: inc/kanban.class.php:253 92 | msgid "Add a column from existing status" 93 | msgstr "" 94 | 95 | #: inc/kanban.class.php:254 96 | msgid "Or add a new status" 97 | msgstr "" 98 | 99 | #: inc/kanban.class.php:259 100 | msgid "Archive all tasks of this state" 101 | msgstr "Archivovat všechny úkoly, které mají tento stav" 102 | 103 | #: inc/kanban.class.php:260 104 | msgid "See archived tasks" 105 | msgstr "Zobrazit archivované úkoly" 106 | 107 | #: inc/kanban.class.php:261 108 | msgid "Hide archived tasks" 109 | msgstr "Skrýt archivované úkoly" 110 | 111 | #: inc/kanban.class.php:262 112 | msgid "Clone task" 113 | msgstr "Klonovat úkol" 114 | 115 | #: inc/kanban.class.php:263 116 | msgid "See tasks in progress" 117 | msgstr "Zobrazit všechny rozpracované úkoly" 118 | 119 | #: inc/kanban.class.php:264 120 | msgid "See tasks of" 121 | msgstr "Zobrazit úkoly" 122 | 123 | #: inc/kanban.class.php:265 124 | msgid "See all tasks" 125 | msgstr "Zobrazit všechny úkoly" 126 | 127 | #: inc/kanban.class.php:266 128 | msgid "Are you sure you want to archive this task ?" 129 | msgstr "Opravdu chcete tento úkol zaarchivovat?" 130 | 131 | #: inc/kanban.class.php:267 132 | msgid "Are you sure you want to archive all tasks ?" 133 | msgstr "Opravdu chcete zaarchivovat všechny úkoly?" 134 | 135 | #: inc/kanban.class.php:268 136 | msgid "Archive this task" 137 | msgstr "Zaarchivovat tento úkol" 138 | 139 | #: inc/kanban.class.php:269 140 | msgid "Update priority of task" 141 | msgstr "Změnit prioritu úkolu" 142 | 143 | #: inc/kanban.class.php:270 144 | msgid "Details of task" 145 | msgstr "Podrobnosti úkolu" 146 | 147 | #: inc/notificationtargettask.class.php:50 148 | msgid "A task has been added" 149 | msgstr "Byl přidán úkol" 150 | 151 | #: inc/notificationtargettask.class.php:51 152 | msgid "A task has been updated" 153 | msgstr "Byl aktualizován úkol" 154 | 155 | #: inc/notificationtargettask.class.php:52 156 | msgid "A task has been removed" 157 | msgstr "Byl odebrán úkol" 158 | 159 | #: inc/notificationtargettask.class.php:207 160 | #: inc/notificationtargettask.class.php:251 inc/task.class.php:189 161 | #: inc/task.class.php:486 162 | msgid "Other client" 163 | msgstr "Jiný klint" 164 | 165 | #: inc/notificationtargettask.class.php:259 166 | msgid "At creation, update, removal of a task" 167 | msgstr "Při vytvoření, aktualizaci a odebrání úkolu" 168 | 169 | #: inc/preference.class.php:80 170 | msgid "Context by default" 171 | msgstr "Kontext ve výchozím stavu" 172 | 173 | #: inc/preference.class.php:88 174 | msgid "Automatic refreshing of tasklist" 175 | msgstr "" 176 | 177 | #: inc/preference.class.php:94 178 | msgid "Refresh every " 179 | msgstr "" 180 | 181 | #: inc/preference.class.php:98 182 | msgid "minute(s)" 183 | msgstr "" 184 | 185 | #: inc/profile.class.php:153 inc/profile.class.php:196 186 | msgid "See and update all tasks" 187 | msgstr "Zobrazit a aktualizovat všechny úkoly" 188 | 189 | #: inc/profile.class.php:162 inc/profile.class.php:199 190 | msgid "Configure contexts and statuses" 191 | msgstr "" 192 | 193 | #: inc/stateorder.class.php:96 194 | msgid "States ordering" 195 | msgstr "Řazení vztahů" 196 | 197 | #: inc/stateorder.class.php:156 198 | msgid "Add states from linked Kanban" 199 | msgstr "" 200 | 201 | #: inc/task.class.php:333 202 | msgid "You cannot archive a task with this state" 203 | msgstr "Není možné archivovat úkol, který je v tomto stavu" 204 | 205 | #: inc/task.class.php:457 206 | msgid "Existing client" 207 | msgstr "Existující klient" 208 | 209 | #: inc/task.class.php:622 inc/task.class.php:709 inc/task.class.php:985 210 | #: inc/tasktype.class.php:161 211 | msgid "Backlog" 212 | msgstr "Nashromážděno" 213 | 214 | #: inc/task.class.php:1045 215 | msgctxt "visibility" 216 | msgid "This user" 217 | msgstr "Tento uživatel" 218 | 219 | #: inc/task.class.php:1048 220 | msgctxt "visibility" 221 | msgid "This user and this group" 222 | msgstr "Tento uživatel a skupina" 223 | 224 | #: inc/task.class.php:1051 225 | msgctxt "visibility" 226 | msgid "All" 227 | msgstr "Všichni" 228 | 229 | #: inc/task.class.php:1093 230 | msgid "Affect entity for create task" 231 | msgstr "Přiřadit entitu pro vytvoření úkolu" 232 | 233 | #: inc/ticket.class.php:74 inc/ticket.class.php:183 234 | msgid "Linked task" 235 | msgid_plural "Linked tasks" 236 | msgstr[0] "Propojený úkol" 237 | msgstr[1] "Propojené úkoly" 238 | msgstr[2] "Propojených úkolů" 239 | msgstr[3] "Propojené úkoly" 240 | 241 | #: inc/ticket.class.php:227 242 | msgid "No task linked to this ticket yet" 243 | msgstr "K tomuto požadavku zatím nejsou připojené žádné úkoly" 244 | 245 | #: inc/ticket.class.php:258 246 | msgid "Link a existant ticket" 247 | msgstr "Propojit s existujícím požadavkem" 248 | 249 | #: inc/ticket.class.php:284 250 | msgid "Linked tickets" 251 | msgstr "Připojené požadavky" 252 | 253 | #: inc/typevisibility.class.php:138 254 | msgid "Add a group" 255 | msgstr "Přidat skupinu" 256 | 257 | #: inc/typevisibility.class.php:179 258 | msgid "Groups allowed to use context" 259 | msgstr "Skupiny kterým je umožněno používat kontext" 260 | -------------------------------------------------------------------------------- /locales/en_GB.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InfotelGLPI/tasklists/db68fda7243a85b5ce72dad27eb2c6cf2ea307c0/locales/en_GB.mo -------------------------------------------------------------------------------- /locales/en_GB.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR Tasklists Development Team 3 | # This file is distributed under the same license as the GLPI - Tasklists plugin package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: GLPI - Tasklists plugin 1.4.0\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2020-07-20 15:07+0200\n" 11 | "PO-Revision-Date: 2020-07-20 15:19+0200\n" 12 | "MIME-Version: 1.0\n" 13 | "Content-Type: text/plain; charset=UTF-8\n" 14 | "Content-Transfer-Encoding: 8bit\n" 15 | "Language: en_GB\n" 16 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 17 | "Last-Translator: \n" 18 | "Language-Team: \n" 19 | "X-Generator: Poedit 2.3\n" 20 | 21 | #: setup.php:89 inc/dashboard.class.php:58 inc/dashboard.class.php:178 22 | #: inc/dashboard.class.php:183 inc/menu.class.php:44 23 | #: inc/preference.class.php:46 inc/profile.class.php:52 24 | msgid "Tasks list" 25 | msgstr "Tasks list" 26 | 27 | #: ajax/addOptions.php:31 28 | msgid "Not archived" 29 | msgstr "Not archived" 30 | 31 | #: ajax/addOptions.php:32 inc/task.class.php:181 inc/task.class.php:599 32 | msgid "Archived" 33 | msgstr "Archived" 34 | 35 | #: inc/dashboard.class.php:93 inc/task.class.php:80 inc/task.class.php:418 36 | #: inc/taskstate.class.php:100 inc/taskstate.class.php:152 37 | #: inc/tasktype.class.php:48 38 | msgid "Context" 39 | msgid_plural "Contexts" 40 | msgstr[0] "Context" 41 | msgstr[1] "Contexts" 42 | 43 | #: inc/dashboard.class.php:93 inc/notificationtargettask.class.php:203 44 | #: inc/notificationtargettask.class.php:247 inc/task.class.php:118 45 | #: inc/task.class.php:496 inc/tasktype.class.php:256 46 | msgid "Due date" 47 | msgstr "Due date" 48 | 49 | #: inc/dashboard.class.php:164 inc/dashboard.class.php:172 50 | #: inc/kanban.class.php:257 inc/ticket.class.php:154 51 | msgid "Add task" 52 | msgstr "Add task" 53 | 54 | #: inc/kanban.class.php:61 55 | msgid "Kanban" 56 | msgstr "Kanban" 57 | 58 | #: inc/kanban.class.php:121 59 | msgid "You don't have the right to see any context" 60 | msgstr "You don't have the right to see any context" 61 | 62 | #: inc/kanban.class.php:188 63 | msgid "There is no accessible context" 64 | msgstr "There is no accessible context" 65 | 66 | #: inc/kanban.class.php:247 67 | msgid "Toggle collapse" 68 | msgstr "Toggle collapse" 69 | 70 | #: inc/kanban.class.php:248 71 | msgid "Search" 72 | msgstr "Search" 73 | 74 | #: inc/kanban.class.php:249 75 | msgid "Search or filter results" 76 | msgstr "Search or filter results" 77 | 78 | #: inc/kanban.class.php:250 79 | msgid "Add status" 80 | msgstr "Add status" 81 | 82 | #: inc/kanban.class.php:251 83 | msgid "Create status" 84 | msgstr "Create status" 85 | 86 | #: inc/kanban.class.php:253 87 | msgid "Add a column from existing status" 88 | msgstr "Add a column from existing status" 89 | 90 | #: inc/kanban.class.php:254 91 | msgid "Or add a new status" 92 | msgstr "Or add a new status" 93 | 94 | #: inc/kanban.class.php:259 95 | msgid "Archive all tasks of this state" 96 | msgstr "Archive all tasks of this state" 97 | 98 | #: inc/kanban.class.php:260 99 | msgid "See archived tasks" 100 | msgstr "See archived tasks" 101 | 102 | #: inc/kanban.class.php:261 103 | msgid "Hide archived tasks" 104 | msgstr "Hide archived tasks" 105 | 106 | #: inc/kanban.class.php:262 107 | msgid "Clone task" 108 | msgstr "Clone task" 109 | 110 | #: inc/kanban.class.php:263 111 | msgid "See tasks in progress" 112 | msgstr "See tasks in progress" 113 | 114 | #: inc/kanban.class.php:264 115 | msgid "See tasks of" 116 | msgstr "See tasks of" 117 | 118 | #: inc/kanban.class.php:265 119 | msgid "See all tasks" 120 | msgstr "See all tasks" 121 | 122 | #: inc/kanban.class.php:266 123 | msgid "Are you sure you want to archive this task ?" 124 | msgstr "Are you sure you want to archive this task ?" 125 | 126 | #: inc/kanban.class.php:267 127 | msgid "Are you sure you want to archive all tasks ?" 128 | msgstr "Are you sure you want to archive all tasks ?" 129 | 130 | #: inc/kanban.class.php:268 131 | msgid "Archive this task" 132 | msgstr "Archive this task" 133 | 134 | #: inc/kanban.class.php:269 135 | msgid "Update priority of task" 136 | msgstr "Update priority of task" 137 | 138 | #: inc/kanban.class.php:270 139 | msgid "Details of task" 140 | msgstr "Details of task" 141 | 142 | #: inc/notificationtargettask.class.php:50 143 | msgid "A task has been added" 144 | msgstr "A task has been added" 145 | 146 | #: inc/notificationtargettask.class.php:51 147 | msgid "A task has been updated" 148 | msgstr "A task has been updated" 149 | 150 | #: inc/notificationtargettask.class.php:52 151 | msgid "A task has been removed" 152 | msgstr "A task has been removed" 153 | 154 | #: inc/notificationtargettask.class.php:207 155 | #: inc/notificationtargettask.class.php:251 inc/task.class.php:189 156 | #: inc/task.class.php:486 157 | msgid "Other client" 158 | msgstr "Other client" 159 | 160 | #: inc/notificationtargettask.class.php:259 161 | msgid "At creation, update, removal of a task" 162 | msgstr "At creation, update, removal of a task" 163 | 164 | #: inc/preference.class.php:80 165 | msgid "Context by default" 166 | msgstr "Context by default" 167 | 168 | #: inc/preference.class.php:88 169 | msgid "Automatic refreshing of tasklist" 170 | msgstr "Automatic refreshing of tasklist" 171 | 172 | #: inc/preference.class.php:94 173 | msgid "Refresh every " 174 | msgstr "Refresh every " 175 | 176 | #: inc/preference.class.php:98 177 | msgid "minute(s)" 178 | msgstr "minute(s)" 179 | 180 | #: inc/profile.class.php:153 inc/profile.class.php:196 181 | msgid "See and update all tasks" 182 | msgstr "See and update all tasks" 183 | 184 | #: inc/profile.class.php:162 inc/profile.class.php:199 185 | msgid "Configure contexts and statuses" 186 | msgstr "Configure contexts and statuses" 187 | 188 | #: inc/stateorder.class.php:96 189 | msgid "States ordering" 190 | msgstr "States ordering" 191 | 192 | #: inc/stateorder.class.php:156 193 | msgid "Add states from linked Kanban" 194 | msgstr "Add states from linked Kanban" 195 | 196 | #: inc/task.class.php:333 197 | msgid "You cannot archive a task with this state" 198 | msgstr "You cannot archive a task with this state" 199 | 200 | #: inc/task.class.php:457 201 | msgid "Existing client" 202 | msgstr "Existing client" 203 | 204 | #: inc/task.class.php:622 inc/task.class.php:709 inc/task.class.php:985 205 | #: inc/tasktype.class.php:161 206 | msgid "Backlog" 207 | msgstr "Backlog" 208 | 209 | #: inc/task.class.php:1045 210 | msgctxt "visibility" 211 | msgid "This user" 212 | msgstr "This user" 213 | 214 | #: inc/task.class.php:1048 215 | msgctxt "visibility" 216 | msgid "This user and this group" 217 | msgstr "This user and this group" 218 | 219 | #: inc/task.class.php:1051 220 | msgctxt "visibility" 221 | msgid "All" 222 | msgstr "All" 223 | 224 | #: inc/task.class.php:1093 225 | msgid "Affect entity for create task" 226 | msgstr "Affect entity for create task" 227 | 228 | #: inc/ticket.class.php:74 inc/ticket.class.php:183 229 | msgid "Linked task" 230 | msgid_plural "Linked tasks" 231 | msgstr[0] "Linked task" 232 | msgstr[1] "Linked tasks" 233 | 234 | #: inc/ticket.class.php:227 235 | msgid "No task linked to this ticket yet" 236 | msgstr "No task linked to this ticket yet" 237 | 238 | #: inc/ticket.class.php:258 239 | msgid "Link a existant ticket" 240 | msgstr "Link a existant ticket" 241 | 242 | #: inc/ticket.class.php:284 243 | msgid "Linked tickets" 244 | msgstr "Linked tickets" 245 | 246 | #: inc/typevisibility.class.php:138 247 | msgid "Add a group" 248 | msgstr "Add a group" 249 | 250 | #: inc/typevisibility.class.php:179 251 | msgid "Groups allowed to use context" 252 | msgstr "Groups allowed to use context" 253 | -------------------------------------------------------------------------------- /locales/es_419.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InfotelGLPI/tasklists/db68fda7243a85b5ce72dad27eb2c6cf2ea307c0/locales/es_419.mo -------------------------------------------------------------------------------- /locales/es_419.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR Tasklists Development Team 3 | # This file is distributed under the same license as the GLPI - Tasklists plugin package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | # Translators: 7 | # Jorge Paniagua , 2019 8 | # 9 | #, fuzzy 10 | msgid "" 11 | msgstr "" 12 | "Project-Id-Version: GLPI - Tasklists plugin 1.4.0\n" 13 | "Report-Msgid-Bugs-To: \n" 14 | "POT-Creation-Date: 2020-07-20 15:07+0200\n" 15 | "PO-Revision-Date: 2017-10-18 16:45+0000\n" 16 | "Last-Translator: Jorge Paniagua , 2019\n" 17 | "Language-Team: Spanish (Latin America) (https://www.transifex.com/infotelGLPI/teams/79675/es_419/)\n" 18 | "MIME-Version: 1.0\n" 19 | "Content-Type: text/plain; charset=UTF-8\n" 20 | "Content-Transfer-Encoding: 8bit\n" 21 | "Language: es_419\n" 22 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 23 | 24 | #: setup.php:89 inc/dashboard.class.php:58 inc/dashboard.class.php:178 25 | #: inc/dashboard.class.php:183 inc/menu.class.php:44 26 | #: inc/preference.class.php:46 inc/profile.class.php:52 27 | msgid "Tasks list" 28 | msgstr "Lista de tareas" 29 | 30 | #: ajax/addOptions.php:31 31 | msgid "Not archived" 32 | msgstr "" 33 | 34 | #: ajax/addOptions.php:32 inc/task.class.php:181 inc/task.class.php:599 35 | msgid "Archived" 36 | msgstr "Archivado" 37 | 38 | #: inc/dashboard.class.php:93 inc/task.class.php:80 inc/task.class.php:418 39 | #: inc/taskstate.class.php:100 inc/taskstate.class.php:152 40 | #: inc/tasktype.class.php:48 41 | msgid "Context" 42 | msgid_plural "Contexts" 43 | msgstr[0] "Contexto" 44 | msgstr[1] "Contexto" 45 | 46 | #: inc/dashboard.class.php:93 inc/notificationtargettask.class.php:203 47 | #: inc/notificationtargettask.class.php:247 inc/task.class.php:118 48 | #: inc/task.class.php:496 inc/tasktype.class.php:256 49 | msgid "Due date" 50 | msgstr "Fecha de vencimiento" 51 | 52 | #: inc/dashboard.class.php:164 inc/dashboard.class.php:172 53 | #: inc/kanban.class.php:257 inc/ticket.class.php:154 54 | msgid "Add task" 55 | msgstr "Agregar tarea" 56 | 57 | #: inc/kanban.class.php:61 58 | msgid "Kanban" 59 | msgstr "Kanban" 60 | 61 | #: inc/kanban.class.php:121 62 | msgid "You don't have the right to see any context" 63 | msgstr "Usted no tiene privilegios para ver ningún contexto" 64 | 65 | #: inc/kanban.class.php:188 66 | msgid "There is no accessible context" 67 | msgstr "" 68 | 69 | #: inc/kanban.class.php:247 70 | msgid "Toggle collapse" 71 | msgstr "" 72 | 73 | #: inc/kanban.class.php:248 74 | msgid "Search" 75 | msgstr "" 76 | 77 | #: inc/kanban.class.php:249 78 | msgid "Search or filter results" 79 | msgstr "" 80 | 81 | #: inc/kanban.class.php:250 82 | msgid "Add status" 83 | msgstr "" 84 | 85 | #: inc/kanban.class.php:251 86 | msgid "Create status" 87 | msgstr "" 88 | 89 | #: inc/kanban.class.php:253 90 | msgid "Add a column from existing status" 91 | msgstr "" 92 | 93 | #: inc/kanban.class.php:254 94 | msgid "Or add a new status" 95 | msgstr "" 96 | 97 | #: inc/kanban.class.php:259 98 | msgid "Archive all tasks of this state" 99 | msgstr "Archivar todas las tareas de este estado" 100 | 101 | #: inc/kanban.class.php:260 102 | msgid "See archived tasks" 103 | msgstr "Ver tareas archivadas" 104 | 105 | #: inc/kanban.class.php:261 106 | msgid "Hide archived tasks" 107 | msgstr "Ocultar tareas archivadas" 108 | 109 | #: inc/kanban.class.php:262 110 | msgid "Clone task" 111 | msgstr "Duplicar tarea" 112 | 113 | #: inc/kanban.class.php:263 114 | msgid "See tasks in progress" 115 | msgstr "Ver tareas en progreso" 116 | 117 | #: inc/kanban.class.php:264 118 | msgid "See tasks of" 119 | msgstr "Ver tareas de " 120 | 121 | #: inc/kanban.class.php:265 122 | msgid "See all tasks" 123 | msgstr "Ver todas las tareas" 124 | 125 | #: inc/kanban.class.php:266 126 | msgid "Are you sure you want to archive this task ?" 127 | msgstr "¿Esta seguro que quiere archivar esta tarea?" 128 | 129 | #: inc/kanban.class.php:267 130 | msgid "Are you sure you want to archive all tasks ?" 131 | msgstr "¿Esta seguro que quiere archivar todas las tareas?" 132 | 133 | #: inc/kanban.class.php:268 134 | msgid "Archive this task" 135 | msgstr "Archiva esta tarea" 136 | 137 | #: inc/kanban.class.php:269 138 | msgid "Update priority of task" 139 | msgstr "Actualizar prioridad de tarea" 140 | 141 | #: inc/kanban.class.php:270 142 | msgid "Details of task" 143 | msgstr "Detalles de tarea" 144 | 145 | #: inc/notificationtargettask.class.php:50 146 | msgid "A task has been added" 147 | msgstr "Una tarea ha sido agregada" 148 | 149 | #: inc/notificationtargettask.class.php:51 150 | msgid "A task has been updated" 151 | msgstr "Una tarea ha sido actualizada" 152 | 153 | #: inc/notificationtargettask.class.php:52 154 | msgid "A task has been removed" 155 | msgstr "Una tarea ha sido eliminada" 156 | 157 | #: inc/notificationtargettask.class.php:207 158 | #: inc/notificationtargettask.class.php:251 inc/task.class.php:189 159 | #: inc/task.class.php:486 160 | msgid "Other client" 161 | msgstr "Otro cliente" 162 | 163 | #: inc/notificationtargettask.class.php:259 164 | msgid "At creation, update, removal of a task" 165 | msgstr "En la creación, actualización, eliminación de una tarea" 166 | 167 | #: inc/preference.class.php:80 168 | msgid "Context by default" 169 | msgstr "Contexto predefinido" 170 | 171 | #: inc/preference.class.php:88 172 | msgid "Automatic refreshing of tasklist" 173 | msgstr "" 174 | 175 | #: inc/preference.class.php:94 176 | msgid "Refresh every " 177 | msgstr "" 178 | 179 | #: inc/preference.class.php:98 180 | msgid "minute(s)" 181 | msgstr "" 182 | 183 | #: inc/profile.class.php:153 inc/profile.class.php:196 184 | msgid "See and update all tasks" 185 | msgstr "Ver y actualizar todas las tareas" 186 | 187 | #: inc/profile.class.php:162 inc/profile.class.php:199 188 | msgid "Configure contexts and statuses" 189 | msgstr "" 190 | 191 | #: inc/stateorder.class.php:96 192 | msgid "States ordering" 193 | msgstr "Ordenación de estados" 194 | 195 | #: inc/stateorder.class.php:156 196 | msgid "Add states from linked Kanban" 197 | msgstr "" 198 | 199 | #: inc/task.class.php:333 200 | msgid "You cannot archive a task with this state" 201 | msgstr "Usted no puede archivar una tarea en este estado" 202 | 203 | #: inc/task.class.php:457 204 | msgid "Existing client" 205 | msgstr "Cliente existente" 206 | 207 | #: inc/task.class.php:622 inc/task.class.php:709 inc/task.class.php:985 208 | #: inc/tasktype.class.php:161 209 | msgid "Backlog" 210 | msgstr "Backlog" 211 | 212 | #: inc/task.class.php:1045 213 | msgctxt "visibility" 214 | msgid "This user" 215 | msgstr "Este usuario" 216 | 217 | #: inc/task.class.php:1048 218 | msgctxt "visibility" 219 | msgid "This user and this group" 220 | msgstr "Este usuario y su grupo" 221 | 222 | #: inc/task.class.php:1051 223 | msgctxt "visibility" 224 | msgid "All" 225 | msgstr "Todo" 226 | 227 | #: inc/task.class.php:1093 228 | msgid "Affect entity for create task" 229 | msgstr "Entidad afectada por tarea creada" 230 | 231 | #: inc/ticket.class.php:74 inc/ticket.class.php:183 232 | msgid "Linked task" 233 | msgid_plural "Linked tasks" 234 | msgstr[0] "T" 235 | msgstr[1] "Tareas vinculadas" 236 | 237 | #: inc/ticket.class.php:227 238 | msgid "No task linked to this ticket yet" 239 | msgstr "Aún no hay ninguna tarea vinculada a este ticket" 240 | 241 | #: inc/ticket.class.php:258 242 | msgid "Link a existant ticket" 243 | msgstr "Vincula un ticket existente" 244 | 245 | #: inc/ticket.class.php:284 246 | msgid "Linked tickets" 247 | msgstr "Tickets vinculados" 248 | 249 | #: inc/typevisibility.class.php:138 250 | msgid "Add a group" 251 | msgstr "Agregar un grupo" 252 | 253 | #: inc/typevisibility.class.php:179 254 | msgid "Groups allowed to use context" 255 | msgstr "Grupos permitidos para usar el contexto" 256 | -------------------------------------------------------------------------------- /locales/es_EC.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InfotelGLPI/tasklists/db68fda7243a85b5ce72dad27eb2c6cf2ea307c0/locales/es_EC.mo -------------------------------------------------------------------------------- /locales/es_EC.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR Tasklists Development Team 3 | # This file is distributed under the same license as the GLPI - Tasklists plugin package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | # Translators: 7 | # Soporte Infraestructura Standby, 2023 8 | # 9 | #, fuzzy 10 | msgid "" 11 | msgstr "" 12 | "Project-Id-Version: GLPI - Tasklists plugin\n" 13 | "Report-Msgid-Bugs-To: \n" 14 | "POT-Creation-Date: 2024-12-30 13:49+0000\n" 15 | "PO-Revision-Date: 2020-11-02 16:28+0000\n" 16 | "Last-Translator: Soporte Infraestructura Standby, 2023\n" 17 | "Language-Team: Spanish (Ecuador) (https://app.transifex.com/infotelGLPI/teams/79675/es_EC/)\n" 18 | "MIME-Version: 1.0\n" 19 | "Content-Type: text/plain; charset=UTF-8\n" 20 | "Content-Transfer-Encoding: 8bit\n" 21 | "Language: es_EC\n" 22 | "Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" 23 | 24 | #: setup.php:87 inc/dashboard.class.php:60 inc/dashboard.class.php:178 25 | #: inc/dashboard.class.php:183 inc/menu.class.php:44 26 | #: inc/preference.class.php:46 inc/profile.class.php:52 27 | msgid "Tasks list" 28 | msgstr "Lista de tareas" 29 | 30 | #: ajax/addOptions.php:30 31 | msgid "Not archived" 32 | msgstr "Sin archivar" 33 | 34 | #: ajax/addOptions.php:31 inc/task.class.php:197 inc/task.class.php:686 35 | msgid "Archived" 36 | msgstr "Archivado" 37 | 38 | #: inc/dashboard.class.php:59 39 | msgid "Tables" 40 | msgstr "Tablas" 41 | 42 | #: inc/dashboard.class.php:102 inc/task.class.php:96 inc/task.class.php:478 43 | #: inc/taskstate.class.php:137 inc/taskstate.class.php:189 44 | #: inc/tasktype.class.php:52 45 | msgid "Context" 46 | msgid_plural "Contexts" 47 | msgstr[0] "Contextos" 48 | msgstr[1] "Contextos" 49 | msgstr[2] "Contextos" 50 | 51 | #: inc/dashboard.class.php:108 inc/notificationtargettask.class.php:213 52 | #: inc/notificationtargettask.class.php:259 inc/task.class.php:134 53 | #: inc/task.class.php:568 inc/tasktype.class.php:229 54 | msgid "Due date" 55 | msgstr "Fecha de vencimiento" 56 | 57 | #: inc/dashboard.class.php:163 inc/dashboard.class.php:164 58 | #: inc/dashboard.class.php:169 inc/ticket.class.php:154 59 | msgid "Add task" 60 | msgstr "Agregar tarea" 61 | 62 | #: inc/kanban.class.php:76 63 | msgid "Kanban" 64 | msgstr "Kanban" 65 | 66 | #: inc/kanban.class.php:148 67 | msgid "You don't have the right to see any context" 68 | msgstr "No tienes derecho a ver ningún contexto" 69 | 70 | #: inc/kanban.class.php:185 71 | msgid "There is no accessible context" 72 | msgstr "No existe un contexto accesible" 73 | 74 | #: inc/notificationtargettask.class.php:51 75 | msgid "A task has been added" 76 | msgstr "Se ha agregado una tarea" 77 | 78 | #: inc/notificationtargettask.class.php:52 79 | msgid "A task has been updated" 80 | msgstr "Una tarea se ha actualizado" 81 | 82 | #: inc/notificationtargettask.class.php:53 83 | msgid "A task has been removed" 84 | msgstr "Una tarea ha sido eliminada" 85 | 86 | #: inc/notificationtargettask.class.php:217 87 | #: inc/notificationtargettask.class.php:263 inc/task.class.php:205 88 | #: inc/task.class.php:559 89 | msgid "Other client" 90 | msgstr "Otro cliente" 91 | 92 | #: inc/notificationtargettask.class.php:271 93 | msgid "At creation, update, removal of a task" 94 | msgstr "En la creación, actualización, eliminación de una tarea" 95 | 96 | #: inc/preference.class.php:88 97 | msgid "Context by default" 98 | msgstr "Contexto predeterminado" 99 | 100 | #: inc/preference.class.php:96 101 | msgid "Automatic refreshing of tasklist" 102 | msgstr "Actualizar automáticamente la lista de tareas" 103 | 104 | #: inc/preference.class.php:102 105 | msgid "Refresh every " 106 | msgstr "Actualizar cada" 107 | 108 | #: inc/preference.class.php:106 109 | msgid "minute(s)" 110 | msgstr "minuto(s)" 111 | 112 | #: inc/profile.class.php:164 inc/profile.class.php:208 113 | msgid "See and update all tasks" 114 | msgstr "Ver y actualizar todas las tareas" 115 | 116 | #: inc/profile.class.php:173 inc/profile.class.php:211 117 | msgid "Configure contexts and statuses" 118 | msgstr "Configurar contextos y estados" 119 | 120 | #: inc/task.class.php:254 121 | msgctxt "quantity" 122 | msgid "Number of comments" 123 | msgstr "Número de comentarios" 124 | 125 | #: inc/task.class.php:392 126 | msgid "You cannot archive a task with this state" 127 | msgstr "No se puede archivar una tarea con este estado" 128 | 129 | #: inc/task.class.php:522 130 | msgid "Existing client" 131 | msgstr "Cliente existente" 132 | 133 | #: inc/task.class.php:709 inc/task.class.php:790 inc/task.class.php:1085 134 | #: inc/tasktype.class.php:165 inc/tasktype.class.php:526 135 | msgid "Backlog" 136 | msgstr "Atrasos" 137 | 138 | #: inc/task.class.php:1143 139 | msgctxt "visibility" 140 | msgid "This user" 141 | msgstr "Este usuario" 142 | 143 | #: inc/task.class.php:1146 144 | msgctxt "visibility" 145 | msgid "This user and this group" 146 | msgstr "Este usuario y este grupo" 147 | 148 | #: inc/task.class.php:1149 149 | msgctxt "visibility" 150 | msgid "All" 151 | msgstr "Todos" 152 | 153 | #: inc/task.class.php:1192 154 | msgid "Affect entity for create task" 155 | msgstr "Entidad afectada para crear tarea" 156 | 157 | #: inc/taskstate.class.php:84 158 | msgid "Status" 159 | msgid_plural "Statuses" 160 | msgstr[0] "Estados" 161 | msgstr[1] "Estados" 162 | msgstr[2] "Estados" 163 | 164 | #: inc/ticket.class.php:74 inc/ticket.class.php:184 165 | msgid "Linked task" 166 | msgid_plural "Linked tasks" 167 | msgstr[0] "Tareas vinculadas" 168 | msgstr[1] "Tareas vinculadas" 169 | msgstr[2] "Tareas vinculadas" 170 | 171 | #: inc/ticket.class.php:228 172 | msgid "No task linked to this ticket yet" 173 | msgstr "Todavía no hay ninguna tarea vinculada a este ticket" 174 | 175 | #: inc/ticket.class.php:259 176 | msgid "Link a existant ticket" 177 | msgstr "Vincular un ticket existente" 178 | 179 | #: inc/ticket.class.php:285 180 | msgid "Linked tickets" 181 | msgstr "Tickets vinculados" 182 | 183 | #: inc/typevisibility.class.php:138 184 | msgid "Add a group" 185 | msgstr "Agregar un grupo" 186 | 187 | #: inc/typevisibility.class.php:179 188 | msgid "Groups allowed to use context" 189 | msgstr "Grupos autorizados a utilizar el contexto" 190 | -------------------------------------------------------------------------------- /locales/es_ES.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InfotelGLPI/tasklists/db68fda7243a85b5ce72dad27eb2c6cf2ea307c0/locales/es_ES.mo -------------------------------------------------------------------------------- /locales/es_ES.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR Tasklists Development Team 3 | # This file is distributed under the same license as the GLPI - Tasklists plugin package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | # Translators: 7 | # Xavier CAILLAUD , 2020 8 | # FranciscoFJ , 2022 9 | # 10 | #, fuzzy 11 | msgid "" 12 | msgstr "" 13 | "Project-Id-Version: GLPI - Tasklists plugin\n" 14 | "Report-Msgid-Bugs-To: \n" 15 | "POT-Creation-Date: 2024-12-30 13:49+0000\n" 16 | "PO-Revision-Date: 2020-11-02 16:28+0000\n" 17 | "Last-Translator: FranciscoFJ , 2022\n" 18 | "Language-Team: Spanish (Spain) (https://app.transifex.com/infotelGLPI/teams/79675/es_ES/)\n" 19 | "MIME-Version: 1.0\n" 20 | "Content-Type: text/plain; charset=UTF-8\n" 21 | "Content-Transfer-Encoding: 8bit\n" 22 | "Language: es_ES\n" 23 | "Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" 24 | 25 | #: setup.php:87 inc/dashboard.class.php:60 inc/dashboard.class.php:178 26 | #: inc/dashboard.class.php:183 inc/menu.class.php:44 27 | #: inc/preference.class.php:46 inc/profile.class.php:52 28 | msgid "Tasks list" 29 | msgstr "Lista de tareas" 30 | 31 | #: ajax/addOptions.php:30 32 | msgid "Not archived" 33 | msgstr "No archivado" 34 | 35 | #: ajax/addOptions.php:31 inc/task.class.php:197 inc/task.class.php:686 36 | msgid "Archived" 37 | msgstr "Archivado" 38 | 39 | #: inc/dashboard.class.php:59 40 | msgid "Tables" 41 | msgstr "Tableros" 42 | 43 | #: inc/dashboard.class.php:102 inc/task.class.php:96 inc/task.class.php:478 44 | #: inc/taskstate.class.php:137 inc/taskstate.class.php:189 45 | #: inc/tasktype.class.php:52 46 | msgid "Context" 47 | msgid_plural "Contexts" 48 | msgstr[0] "Contexto" 49 | msgstr[1] "Contextos" 50 | msgstr[2] "Contextos" 51 | 52 | #: inc/dashboard.class.php:108 inc/notificationtargettask.class.php:213 53 | #: inc/notificationtargettask.class.php:259 inc/task.class.php:134 54 | #: inc/task.class.php:568 inc/tasktype.class.php:229 55 | msgid "Due date" 56 | msgstr "Fecha de vencimiento" 57 | 58 | #: inc/dashboard.class.php:163 inc/dashboard.class.php:164 59 | #: inc/dashboard.class.php:169 inc/ticket.class.php:154 60 | msgid "Add task" 61 | msgstr "Agregar tarea" 62 | 63 | #: inc/kanban.class.php:76 64 | msgid "Kanban" 65 | msgstr "Kanban" 66 | 67 | #: inc/kanban.class.php:148 68 | msgid "You don't have the right to see any context" 69 | msgstr "Usted no tiene privilegios para ver ningún contexto " 70 | 71 | #: inc/kanban.class.php:185 72 | msgid "There is no accessible context" 73 | msgstr "No hay contexto accesible" 74 | 75 | #: inc/notificationtargettask.class.php:51 76 | msgid "A task has been added" 77 | msgstr "Se ha añadido una tarea." 78 | 79 | #: inc/notificationtargettask.class.php:52 80 | msgid "A task has been updated" 81 | msgstr "Se ha actualizado una tarea" 82 | 83 | #: inc/notificationtargettask.class.php:53 84 | msgid "A task has been removed" 85 | msgstr "Se ha borrado una tarea" 86 | 87 | #: inc/notificationtargettask.class.php:217 88 | #: inc/notificationtargettask.class.php:263 inc/task.class.php:205 89 | #: inc/task.class.php:559 90 | msgid "Other client" 91 | msgstr "Otro cliente" 92 | 93 | #: inc/notificationtargettask.class.php:271 94 | msgid "At creation, update, removal of a task" 95 | msgstr "En la creación, actualización, eliminación de una tarea" 96 | 97 | #: inc/preference.class.php:88 98 | msgid "Context by default" 99 | msgstr "Contexto predefinido" 100 | 101 | #: inc/preference.class.php:96 102 | msgid "Automatic refreshing of tasklist" 103 | msgstr "Actualización automática de la lista de tareas" 104 | 105 | #: inc/preference.class.php:102 106 | msgid "Refresh every " 107 | msgstr "Actualizar cada" 108 | 109 | #: inc/preference.class.php:106 110 | msgid "minute(s)" 111 | msgstr "minuto(s)" 112 | 113 | #: inc/profile.class.php:164 inc/profile.class.php:208 114 | msgid "See and update all tasks" 115 | msgstr "Ver y actualizar todas las tareas" 116 | 117 | #: inc/profile.class.php:173 inc/profile.class.php:211 118 | msgid "Configure contexts and statuses" 119 | msgstr "Configurar contextos y estados" 120 | 121 | #: inc/task.class.php:254 122 | msgctxt "quantity" 123 | msgid "Number of comments" 124 | msgstr "Número de comentarios" 125 | 126 | #: inc/task.class.php:392 127 | msgid "You cannot archive a task with this state" 128 | msgstr "No puedes archivar una tarea con este estado" 129 | 130 | #: inc/task.class.php:522 131 | msgid "Existing client" 132 | msgstr "Cliente existente" 133 | 134 | #: inc/task.class.php:709 inc/task.class.php:790 inc/task.class.php:1085 135 | #: inc/tasktype.class.php:165 inc/tasktype.class.php:526 136 | msgid "Backlog" 137 | msgstr "Reserva" 138 | 139 | #: inc/task.class.php:1143 140 | msgctxt "visibility" 141 | msgid "This user" 142 | msgstr "Este usuario" 143 | 144 | #: inc/task.class.php:1146 145 | msgctxt "visibility" 146 | msgid "This user and this group" 147 | msgstr "Este usuario y este grupo" 148 | 149 | #: inc/task.class.php:1149 150 | msgctxt "visibility" 151 | msgid "All" 152 | msgstr "Todos" 153 | 154 | #: inc/task.class.php:1192 155 | msgid "Affect entity for create task" 156 | msgstr "Afecta a la entidad para crear la tarea" 157 | 158 | #: inc/taskstate.class.php:84 159 | msgid "Status" 160 | msgid_plural "Statuses" 161 | msgstr[0] "Estado" 162 | msgstr[1] "Estados" 163 | msgstr[2] "Estados" 164 | 165 | #: inc/ticket.class.php:74 inc/ticket.class.php:184 166 | msgid "Linked task" 167 | msgid_plural "Linked tasks" 168 | msgstr[0] "Tarea vinculada" 169 | msgstr[1] "Tareas vinculadas" 170 | msgstr[2] "Tareas vinculadas" 171 | 172 | #: inc/ticket.class.php:228 173 | msgid "No task linked to this ticket yet" 174 | msgstr "Aún no hay ninguna tarea vinculada a esta petición" 175 | 176 | #: inc/ticket.class.php:259 177 | msgid "Link a existant ticket" 178 | msgstr "Vincula una petición existente" 179 | 180 | #: inc/ticket.class.php:285 181 | msgid "Linked tickets" 182 | msgstr "Peticiones vinculadas" 183 | 184 | #: inc/typevisibility.class.php:138 185 | msgid "Add a group" 186 | msgstr "Agregar un grupo" 187 | 188 | #: inc/typevisibility.class.php:179 189 | msgid "Groups allowed to use context" 190 | msgstr "Grupos permitidos para usar el contexto" 191 | -------------------------------------------------------------------------------- /locales/es_MX.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InfotelGLPI/tasklists/db68fda7243a85b5ce72dad27eb2c6cf2ea307c0/locales/es_MX.mo -------------------------------------------------------------------------------- /locales/es_MX.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR Tasklists Development Team 3 | # This file is distributed under the same license as the GLPI - Tasklists plugin package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | # Translators: 7 | # Carlos Moreno Rodríguez , 2023 8 | # 9 | #, fuzzy 10 | msgid "" 11 | msgstr "" 12 | "Project-Id-Version: GLPI - Tasklists plugin\n" 13 | "Report-Msgid-Bugs-To: \n" 14 | "POT-Creation-Date: 2024-12-30 13:49+0000\n" 15 | "PO-Revision-Date: 2020-11-02 16:28+0000\n" 16 | "Last-Translator: Carlos Moreno Rodríguez , 2023\n" 17 | "Language-Team: Spanish (Mexico) (https://app.transifex.com/infotelGLPI/teams/79675/es_MX/)\n" 18 | "MIME-Version: 1.0\n" 19 | "Content-Type: text/plain; charset=UTF-8\n" 20 | "Content-Transfer-Encoding: 8bit\n" 21 | "Language: es_MX\n" 22 | "Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" 23 | 24 | #: setup.php:87 inc/dashboard.class.php:60 inc/dashboard.class.php:178 25 | #: inc/dashboard.class.php:183 inc/menu.class.php:44 26 | #: inc/preference.class.php:46 inc/profile.class.php:52 27 | msgid "Tasks list" 28 | msgstr "Lista de tareas" 29 | 30 | #: ajax/addOptions.php:30 31 | msgid "Not archived" 32 | msgstr "No archivado" 33 | 34 | #: ajax/addOptions.php:31 inc/task.class.php:197 inc/task.class.php:686 35 | msgid "Archived" 36 | msgstr "Archivado" 37 | 38 | #: inc/dashboard.class.php:59 39 | msgid "Tables" 40 | msgstr "Tablas" 41 | 42 | #: inc/dashboard.class.php:102 inc/task.class.php:96 inc/task.class.php:478 43 | #: inc/taskstate.class.php:137 inc/taskstate.class.php:189 44 | #: inc/tasktype.class.php:52 45 | msgid "Context" 46 | msgid_plural "Contexts" 47 | msgstr[0] "Contexto" 48 | msgstr[1] "Contextos" 49 | msgstr[2] "Contextos" 50 | 51 | #: inc/dashboard.class.php:108 inc/notificationtargettask.class.php:213 52 | #: inc/notificationtargettask.class.php:259 inc/task.class.php:134 53 | #: inc/task.class.php:568 inc/tasktype.class.php:229 54 | msgid "Due date" 55 | msgstr "Fecha de vencimiento" 56 | 57 | #: inc/dashboard.class.php:163 inc/dashboard.class.php:164 58 | #: inc/dashboard.class.php:169 inc/ticket.class.php:154 59 | msgid "Add task" 60 | msgstr "Agregar tarea" 61 | 62 | #: inc/kanban.class.php:76 63 | msgid "Kanban" 64 | msgstr "Kanban" 65 | 66 | #: inc/kanban.class.php:148 67 | msgid "You don't have the right to see any context" 68 | msgstr "Sin derecho a visualizar ningún contexto" 69 | 70 | #: inc/kanban.class.php:185 71 | msgid "There is no accessible context" 72 | msgstr "No hay un contexto accesible" 73 | 74 | #: inc/notificationtargettask.class.php:51 75 | msgid "A task has been added" 76 | msgstr "Tarea agregada" 77 | 78 | #: inc/notificationtargettask.class.php:52 79 | msgid "A task has been updated" 80 | msgstr "Tarea actualizada" 81 | 82 | #: inc/notificationtargettask.class.php:53 83 | msgid "A task has been removed" 84 | msgstr "Tarea eliminada" 85 | 86 | #: inc/notificationtargettask.class.php:217 87 | #: inc/notificationtargettask.class.php:263 inc/task.class.php:205 88 | #: inc/task.class.php:559 89 | msgid "Other client" 90 | msgstr "Otro cliente" 91 | 92 | #: inc/notificationtargettask.class.php:271 93 | msgid "At creation, update, removal of a task" 94 | msgstr "Creación, actualización y borrado de una tarea" 95 | 96 | #: inc/preference.class.php:88 97 | msgid "Context by default" 98 | msgstr "Contexto predefinido" 99 | 100 | #: inc/preference.class.php:96 101 | msgid "Automatic refreshing of tasklist" 102 | msgstr "Actualización automática de la lista de tareas" 103 | 104 | #: inc/preference.class.php:102 105 | msgid "Refresh every " 106 | msgstr "Actualizar cada " 107 | 108 | #: inc/preference.class.php:106 109 | msgid "minute(s)" 110 | msgstr "minuto(s)" 111 | 112 | #: inc/profile.class.php:164 inc/profile.class.php:208 113 | msgid "See and update all tasks" 114 | msgstr "Ver y actualizar todas las tareas" 115 | 116 | #: inc/profile.class.php:173 inc/profile.class.php:211 117 | msgid "Configure contexts and statuses" 118 | msgstr "Configurar contextos y estados" 119 | 120 | #: inc/task.class.php:254 121 | msgctxt "quantity" 122 | msgid "Number of comments" 123 | msgstr "Número de comentarios" 124 | 125 | #: inc/task.class.php:392 126 | msgid "You cannot archive a task with this state" 127 | msgstr "No puedes archivar una tarea con este estado" 128 | 129 | #: inc/task.class.php:522 130 | msgid "Existing client" 131 | msgstr "Cliente existente" 132 | 133 | #: inc/task.class.php:709 inc/task.class.php:790 inc/task.class.php:1085 134 | #: inc/tasktype.class.php:165 inc/tasktype.class.php:526 135 | msgid "Backlog" 136 | msgstr "Reserva" 137 | 138 | #: inc/task.class.php:1143 139 | msgctxt "visibility" 140 | msgid "This user" 141 | msgstr "Este usuario" 142 | 143 | #: inc/task.class.php:1146 144 | msgctxt "visibility" 145 | msgid "This user and this group" 146 | msgstr "Este usuario y su grupo" 147 | 148 | #: inc/task.class.php:1149 149 | msgctxt "visibility" 150 | msgid "All" 151 | msgstr "Todas" 152 | 153 | #: inc/task.class.php:1192 154 | msgid "Affect entity for create task" 155 | msgstr "Afectar entidad para crear tarea" 156 | 157 | #: inc/taskstate.class.php:84 158 | msgid "Status" 159 | msgid_plural "Statuses" 160 | msgstr[0] "Estado" 161 | msgstr[1] "Estados" 162 | msgstr[2] "Estados" 163 | 164 | #: inc/ticket.class.php:74 inc/ticket.class.php:184 165 | msgid "Linked task" 166 | msgid_plural "Linked tasks" 167 | msgstr[0] "Tarea vinculada" 168 | msgstr[1] "Tareas vinculadas" 169 | msgstr[2] "Tareas vinculadas" 170 | 171 | #: inc/ticket.class.php:228 172 | msgid "No task linked to this ticket yet" 173 | msgstr "Aún no hay ninguna tarea vinculada a este ticket" 174 | 175 | #: inc/ticket.class.php:259 176 | msgid "Link a existant ticket" 177 | msgstr "Vincular un ticket existente" 178 | 179 | #: inc/ticket.class.php:285 180 | msgid "Linked tickets" 181 | msgstr "Tickets vinculados" 182 | 183 | #: inc/typevisibility.class.php:138 184 | msgid "Add a group" 185 | msgstr "Agregar un grupo" 186 | 187 | #: inc/typevisibility.class.php:179 188 | msgid "Groups allowed to use context" 189 | msgstr "Grupos permitidos para usar contexto" 190 | -------------------------------------------------------------------------------- /locales/es_VE.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InfotelGLPI/tasklists/db68fda7243a85b5ce72dad27eb2c6cf2ea307c0/locales/es_VE.mo -------------------------------------------------------------------------------- /locales/es_VE.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR Tasklists Development Team 3 | # This file is distributed under the same license as the GLPI - Tasklists plugin package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | # Translators: 7 | # Francisco Bolivar, 2024 8 | # 9 | #, fuzzy 10 | msgid "" 11 | msgstr "" 12 | "Project-Id-Version: GLPI - Tasklists plugin\n" 13 | "Report-Msgid-Bugs-To: \n" 14 | "POT-Creation-Date: 2024-12-30 13:49+0000\n" 15 | "PO-Revision-Date: 2020-11-02 16:28+0000\n" 16 | "Last-Translator: Francisco Bolivar, 2024\n" 17 | "Language-Team: Spanish (Venezuela) (https://app.transifex.com/infotelGLPI/teams/79675/es_VE/)\n" 18 | "MIME-Version: 1.0\n" 19 | "Content-Type: text/plain; charset=UTF-8\n" 20 | "Content-Transfer-Encoding: 8bit\n" 21 | "Language: es_VE\n" 22 | "Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" 23 | 24 | #: setup.php:87 inc/dashboard.class.php:60 inc/dashboard.class.php:178 25 | #: inc/dashboard.class.php:183 inc/menu.class.php:44 26 | #: inc/preference.class.php:46 inc/profile.class.php:52 27 | msgid "Tasks list" 28 | msgstr "Lista de tareas" 29 | 30 | #: ajax/addOptions.php:30 31 | msgid "Not archived" 32 | msgstr "No archivado" 33 | 34 | #: ajax/addOptions.php:31 inc/task.class.php:197 inc/task.class.php:686 35 | msgid "Archived" 36 | msgstr "Archivado" 37 | 38 | #: inc/dashboard.class.php:59 39 | msgid "Tables" 40 | msgstr "Tablas" 41 | 42 | #: inc/dashboard.class.php:102 inc/task.class.php:96 inc/task.class.php:478 43 | #: inc/taskstate.class.php:137 inc/taskstate.class.php:189 44 | #: inc/tasktype.class.php:52 45 | msgid "Context" 46 | msgid_plural "Contexts" 47 | msgstr[0] "Contexto" 48 | msgstr[1] "De contextos" 49 | msgstr[2] "Contextos" 50 | 51 | #: inc/dashboard.class.php:108 inc/notificationtargettask.class.php:213 52 | #: inc/notificationtargettask.class.php:259 inc/task.class.php:134 53 | #: inc/task.class.php:568 inc/tasktype.class.php:229 54 | msgid "Due date" 55 | msgstr "Fecha de vencimiento" 56 | 57 | #: inc/dashboard.class.php:163 inc/dashboard.class.php:164 58 | #: inc/dashboard.class.php:169 inc/ticket.class.php:154 59 | msgid "Add task" 60 | msgstr "Añadir tarea" 61 | 62 | #: inc/kanban.class.php:76 63 | msgid "Kanban" 64 | msgstr "Kanban" 65 | 66 | #: inc/kanban.class.php:148 67 | msgid "You don't have the right to see any context" 68 | msgstr "No tienes permisos para ver ningún contexto" 69 | 70 | #: inc/kanban.class.php:185 71 | msgid "There is no accessible context" 72 | msgstr "No hay un contexto accesible" 73 | 74 | #: inc/notificationtargettask.class.php:51 75 | msgid "A task has been added" 76 | msgstr "Se ha añadido una tarea" 77 | 78 | #: inc/notificationtargettask.class.php:52 79 | msgid "A task has been updated" 80 | msgstr "Se ha actualizado una tarea" 81 | 82 | #: inc/notificationtargettask.class.php:53 83 | msgid "A task has been removed" 84 | msgstr "Se ha eliminado una tarea" 85 | 86 | #: inc/notificationtargettask.class.php:217 87 | #: inc/notificationtargettask.class.php:263 inc/task.class.php:205 88 | #: inc/task.class.php:559 89 | msgid "Other client" 90 | msgstr "Otro cliente" 91 | 92 | #: inc/notificationtargettask.class.php:271 93 | msgid "At creation, update, removal of a task" 94 | msgstr "En la creación, actualización, eliminación de una tarea" 95 | 96 | #: inc/preference.class.php:88 97 | msgid "Context by default" 98 | msgstr "Contexto por defecto" 99 | 100 | #: inc/preference.class.php:96 101 | msgid "Automatic refreshing of tasklist" 102 | msgstr "Actualización automática de la lista de tareas" 103 | 104 | #: inc/preference.class.php:102 105 | msgid "Refresh every " 106 | msgstr "Actualizar cada " 107 | 108 | #: inc/preference.class.php:106 109 | msgid "minute(s)" 110 | msgstr "minuto(s)" 111 | 112 | #: inc/profile.class.php:164 inc/profile.class.php:208 113 | msgid "See and update all tasks" 114 | msgstr "Ver y actualizar todas las tareas" 115 | 116 | #: inc/profile.class.php:173 inc/profile.class.php:211 117 | msgid "Configure contexts and statuses" 118 | msgstr "Configurar contextos y estados" 119 | 120 | #: inc/task.class.php:254 121 | msgctxt "quantity" 122 | msgid "Number of comments" 123 | msgstr "Número de comentarios" 124 | 125 | #: inc/task.class.php:392 126 | msgid "You cannot archive a task with this state" 127 | msgstr "No puede archivar una tarea con este estado" 128 | 129 | #: inc/task.class.php:522 130 | msgid "Existing client" 131 | msgstr "Cliente existente" 132 | 133 | #: inc/task.class.php:709 inc/task.class.php:790 inc/task.class.php:1085 134 | #: inc/tasktype.class.php:165 inc/tasktype.class.php:526 135 | msgid "Backlog" 136 | msgstr "Atrasos" 137 | 138 | #: inc/task.class.php:1143 139 | msgctxt "visibility" 140 | msgid "This user" 141 | msgstr "Este usuario" 142 | 143 | #: inc/task.class.php:1146 144 | msgctxt "visibility" 145 | msgid "This user and this group" 146 | msgstr "Este usuario y este grupo" 147 | 148 | #: inc/task.class.php:1149 149 | msgctxt "visibility" 150 | msgid "All" 151 | msgstr "Todos" 152 | 153 | #: inc/task.class.php:1192 154 | msgid "Affect entity for create task" 155 | msgstr "Afectar entidad para crear tarea" 156 | 157 | #: inc/taskstate.class.php:84 158 | msgid "Status" 159 | msgid_plural "Statuses" 160 | msgstr[0] "Estado" 161 | msgstr[1] "De estados" 162 | msgstr[2] "Estados" 163 | 164 | #: inc/ticket.class.php:74 inc/ticket.class.php:184 165 | msgid "Linked task" 166 | msgid_plural "Linked tasks" 167 | msgstr[0] "Tarea vinculada" 168 | msgstr[1] "De tareas vinculadas" 169 | msgstr[2] "Tareas vinculadas" 170 | 171 | #: inc/ticket.class.php:228 172 | msgid "No task linked to this ticket yet" 173 | msgstr "Aún no hay ninguna tarea vinculada a este caso" 174 | 175 | #: inc/ticket.class.php:259 176 | msgid "Link a existant ticket" 177 | msgstr "Vincular un caso existente" 178 | 179 | #: inc/ticket.class.php:285 180 | msgid "Linked tickets" 181 | msgstr "Casos vinculados" 182 | 183 | #: inc/typevisibility.class.php:138 184 | msgid "Add a group" 185 | msgstr "Agregar un grupo" 186 | 187 | #: inc/typevisibility.class.php:179 188 | msgid "Groups allowed to use context" 189 | msgstr "Grupos autorizados a usar contexto" 190 | -------------------------------------------------------------------------------- /locales/fi_FI.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InfotelGLPI/tasklists/db68fda7243a85b5ce72dad27eb2c6cf2ea307c0/locales/fi_FI.mo -------------------------------------------------------------------------------- /locales/fi_FI.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR Tasklists Development Team 3 | # This file is distributed under the same license as the GLPI - Tasklists plugin package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | # Translators: 7 | # Markku Vepsä, 2018 8 | # 9 | #, fuzzy 10 | msgid "" 11 | msgstr "" 12 | "Project-Id-Version: GLPI - Tasklists plugin 1.4.0\n" 13 | "Report-Msgid-Bugs-To: \n" 14 | "POT-Creation-Date: 2020-07-20 15:07+0200\n" 15 | "PO-Revision-Date: 2017-10-18 16:45+0000\n" 16 | "Last-Translator: Markku Vepsä, 2018\n" 17 | "Language-Team: Finnish (Finland) (https://www.transifex.com/infotelGLPI/teams/79675/fi_FI/)\n" 18 | "MIME-Version: 1.0\n" 19 | "Content-Type: text/plain; charset=UTF-8\n" 20 | "Content-Transfer-Encoding: 8bit\n" 21 | "Language: fi_FI\n" 22 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 23 | 24 | #: setup.php:89 inc/dashboard.class.php:58 inc/dashboard.class.php:178 25 | #: inc/dashboard.class.php:183 inc/menu.class.php:44 26 | #: inc/preference.class.php:46 inc/profile.class.php:52 27 | msgid "Tasks list" 28 | msgstr "Tehtävien luettelo" 29 | 30 | #: ajax/addOptions.php:31 31 | msgid "Not archived" 32 | msgstr "" 33 | 34 | #: ajax/addOptions.php:32 inc/task.class.php:181 inc/task.class.php:599 35 | msgid "Archived" 36 | msgstr "Arkistoitu" 37 | 38 | #: inc/dashboard.class.php:93 inc/task.class.php:80 inc/task.class.php:418 39 | #: inc/taskstate.class.php:100 inc/taskstate.class.php:152 40 | #: inc/tasktype.class.php:48 41 | msgid "Context" 42 | msgid_plural "Contexts" 43 | msgstr[0] "Asiayhteys" 44 | msgstr[1] "Asiayhteydet" 45 | 46 | #: inc/dashboard.class.php:93 inc/notificationtargettask.class.php:203 47 | #: inc/notificationtargettask.class.php:247 inc/task.class.php:118 48 | #: inc/task.class.php:496 inc/tasktype.class.php:256 49 | msgid "Due date" 50 | msgstr "Määräaika" 51 | 52 | #: inc/dashboard.class.php:164 inc/dashboard.class.php:172 53 | #: inc/kanban.class.php:257 inc/ticket.class.php:154 54 | msgid "Add task" 55 | msgstr "Lisää tehtävä" 56 | 57 | #: inc/kanban.class.php:61 58 | msgid "Kanban" 59 | msgstr "Taulu" 60 | 61 | #: inc/kanban.class.php:121 62 | msgid "You don't have the right to see any context" 63 | msgstr "Sinulla ei ole oikeutta nähdä mitään asiayhteyttä" 64 | 65 | #: inc/kanban.class.php:188 66 | msgid "There is no accessible context" 67 | msgstr "" 68 | 69 | #: inc/kanban.class.php:247 70 | msgid "Toggle collapse" 71 | msgstr "" 72 | 73 | #: inc/kanban.class.php:248 74 | msgid "Search" 75 | msgstr "" 76 | 77 | #: inc/kanban.class.php:249 78 | msgid "Search or filter results" 79 | msgstr "" 80 | 81 | #: inc/kanban.class.php:250 82 | msgid "Add status" 83 | msgstr "" 84 | 85 | #: inc/kanban.class.php:251 86 | msgid "Create status" 87 | msgstr "" 88 | 89 | #: inc/kanban.class.php:253 90 | msgid "Add a column from existing status" 91 | msgstr "" 92 | 93 | #: inc/kanban.class.php:254 94 | msgid "Or add a new status" 95 | msgstr "" 96 | 97 | #: inc/kanban.class.php:259 98 | msgid "Archive all tasks of this state" 99 | msgstr "Arkistoi kaikki tässä tilassa olevat tehtävät" 100 | 101 | #: inc/kanban.class.php:260 102 | msgid "See archived tasks" 103 | msgstr "Näytä arkistoidut tehtävät" 104 | 105 | #: inc/kanban.class.php:261 106 | msgid "Hide archived tasks" 107 | msgstr "Piilota arkistoidut tehtävät" 108 | 109 | #: inc/kanban.class.php:262 110 | msgid "Clone task" 111 | msgstr "Monista tehtävä" 112 | 113 | #: inc/kanban.class.php:263 114 | msgid "See tasks in progress" 115 | msgstr "Katso käynnissä olevat tehtävät" 116 | 117 | #: inc/kanban.class.php:264 118 | msgid "See tasks of" 119 | msgstr "Näytä tehtävät" 120 | 121 | #: inc/kanban.class.php:265 122 | msgid "See all tasks" 123 | msgstr "Näytä kaikki tehtävät" 124 | 125 | #: inc/kanban.class.php:266 126 | msgid "Are you sure you want to archive this task ?" 127 | msgstr "Haluatko varmasti arkistoida tämän tehtävän?" 128 | 129 | #: inc/kanban.class.php:267 130 | msgid "Are you sure you want to archive all tasks ?" 131 | msgstr "Haluatko varmasti arkistoida kaikki tehtävät?" 132 | 133 | #: inc/kanban.class.php:268 134 | msgid "Archive this task" 135 | msgstr "Arkistoi tämä tehtävä" 136 | 137 | #: inc/kanban.class.php:269 138 | msgid "Update priority of task" 139 | msgstr "Päivitä tehtävän prioriteetti" 140 | 141 | #: inc/kanban.class.php:270 142 | msgid "Details of task" 143 | msgstr "Tehtävän lisätiedot" 144 | 145 | #: inc/notificationtargettask.class.php:50 146 | msgid "A task has been added" 147 | msgstr "Tehtävä on lisätty" 148 | 149 | #: inc/notificationtargettask.class.php:51 150 | msgid "A task has been updated" 151 | msgstr "Tehtävä on päivitetty" 152 | 153 | #: inc/notificationtargettask.class.php:52 154 | msgid "A task has been removed" 155 | msgstr "Tehtävä on poistettu" 156 | 157 | #: inc/notificationtargettask.class.php:207 158 | #: inc/notificationtargettask.class.php:251 inc/task.class.php:189 159 | #: inc/task.class.php:486 160 | msgid "Other client" 161 | msgstr "Muu asiakas" 162 | 163 | #: inc/notificationtargettask.class.php:259 164 | msgid "At creation, update, removal of a task" 165 | msgstr "Luonti, päivitys, tehtävän poisto" 166 | 167 | #: inc/preference.class.php:80 168 | msgid "Context by default" 169 | msgstr "Asiayhteys oletuksena" 170 | 171 | #: inc/preference.class.php:88 172 | msgid "Automatic refreshing of tasklist" 173 | msgstr "" 174 | 175 | #: inc/preference.class.php:94 176 | msgid "Refresh every " 177 | msgstr "" 178 | 179 | #: inc/preference.class.php:98 180 | msgid "minute(s)" 181 | msgstr "" 182 | 183 | #: inc/profile.class.php:153 inc/profile.class.php:196 184 | msgid "See and update all tasks" 185 | msgstr "Näytä ja päivitä kaikki tehtävät" 186 | 187 | #: inc/profile.class.php:162 inc/profile.class.php:199 188 | msgid "Configure contexts and statuses" 189 | msgstr "" 190 | 191 | #: inc/stateorder.class.php:96 192 | msgid "States ordering" 193 | msgstr "Tilojen järjestely" 194 | 195 | #: inc/stateorder.class.php:156 196 | msgid "Add states from linked Kanban" 197 | msgstr "" 198 | 199 | #: inc/task.class.php:333 200 | msgid "You cannot archive a task with this state" 201 | msgstr "Et voi arkistoida tässä tilassa olevaa tehtävää" 202 | 203 | #: inc/task.class.php:457 204 | msgid "Existing client" 205 | msgstr "Olemassa oleva asiakas" 206 | 207 | #: inc/task.class.php:622 inc/task.class.php:709 inc/task.class.php:985 208 | #: inc/tasktype.class.php:161 209 | msgid "Backlog" 210 | msgstr "Jono" 211 | 212 | #: inc/task.class.php:1045 213 | msgctxt "visibility" 214 | msgid "This user" 215 | msgstr "Tämä käyttäjä" 216 | 217 | #: inc/task.class.php:1048 218 | msgctxt "visibility" 219 | msgid "This user and this group" 220 | msgstr "Tämä käyttäjä ja tämä ryhmä" 221 | 222 | #: inc/task.class.php:1051 223 | msgctxt "visibility" 224 | msgid "All" 225 | msgstr "Kaikki" 226 | 227 | #: inc/task.class.php:1093 228 | msgid "Affect entity for create task" 229 | msgstr "Kohdista tehtävä yksikköön" 230 | 231 | #: inc/ticket.class.php:74 inc/ticket.class.php:183 232 | msgid "Linked task" 233 | msgid_plural "Linked tasks" 234 | msgstr[0] "Liitetty tehtävä" 235 | msgstr[1] "Liitetyt tehtävät" 236 | 237 | #: inc/ticket.class.php:227 238 | msgid "No task linked to this ticket yet" 239 | msgstr "Tikettiin ei vielä ole liitetty tehtävää" 240 | 241 | #: inc/ticket.class.php:258 242 | msgid "Link a existant ticket" 243 | msgstr "Liitä olemassa oleva tiketti" 244 | 245 | #: inc/ticket.class.php:284 246 | msgid "Linked tickets" 247 | msgstr "Liitetyt tiketit" 248 | 249 | #: inc/typevisibility.class.php:138 250 | msgid "Add a group" 251 | msgstr "Lisää ryhmä" 252 | 253 | #: inc/typevisibility.class.php:179 254 | msgid "Groups allowed to use context" 255 | msgstr "Sallitut ryhmät" 256 | -------------------------------------------------------------------------------- /locales/fr_FR.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InfotelGLPI/tasklists/db68fda7243a85b5ce72dad27eb2c6cf2ea307c0/locales/fr_FR.mo -------------------------------------------------------------------------------- /locales/fr_FR.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR Tasklists Development Team 3 | # This file is distributed under the same license as the GLPI - Tasklists plugin package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | # Translators: 7 | # Xavier CAILLAUD , 2022 8 | # 9 | #, fuzzy 10 | msgid "" 11 | msgstr "" 12 | "Project-Id-Version: GLPI - Tasklists plugin\n" 13 | "Report-Msgid-Bugs-To: \n" 14 | "POT-Creation-Date: 2024-12-30 13:49+0000\n" 15 | "PO-Revision-Date: 2020-11-02 16:28+0000\n" 16 | "Last-Translator: Xavier CAILLAUD , 2022\n" 17 | "Language-Team: French (France) (https://app.transifex.com/infotelGLPI/teams/79675/fr_FR/)\n" 18 | "MIME-Version: 1.0\n" 19 | "Content-Type: text/plain; charset=UTF-8\n" 20 | "Content-Transfer-Encoding: 8bit\n" 21 | "Language: fr_FR\n" 22 | "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" 23 | 24 | #: setup.php:87 inc/dashboard.class.php:60 inc/dashboard.class.php:178 25 | #: inc/dashboard.class.php:183 inc/menu.class.php:44 26 | #: inc/preference.class.php:46 inc/profile.class.php:52 27 | msgid "Tasks list" 28 | msgstr "Liste des tâches" 29 | 30 | #: ajax/addOptions.php:30 31 | msgid "Not archived" 32 | msgstr "Non archivé" 33 | 34 | #: ajax/addOptions.php:31 inc/task.class.php:197 inc/task.class.php:686 35 | msgid "Archived" 36 | msgstr "Archivé" 37 | 38 | #: inc/dashboard.class.php:59 39 | msgid "Tables" 40 | msgstr "Tableaux" 41 | 42 | #: inc/dashboard.class.php:102 inc/task.class.php:96 inc/task.class.php:478 43 | #: inc/taskstate.class.php:137 inc/taskstate.class.php:189 44 | #: inc/tasktype.class.php:52 45 | msgid "Context" 46 | msgid_plural "Contexts" 47 | msgstr[0] "Contexte" 48 | msgstr[1] "Contextes" 49 | msgstr[2] "Contextes" 50 | 51 | #: inc/dashboard.class.php:108 inc/notificationtargettask.class.php:213 52 | #: inc/notificationtargettask.class.php:259 inc/task.class.php:134 53 | #: inc/task.class.php:568 inc/tasktype.class.php:229 54 | msgid "Due date" 55 | msgstr "Date d'échéance" 56 | 57 | #: inc/dashboard.class.php:163 inc/dashboard.class.php:164 58 | #: inc/dashboard.class.php:169 inc/ticket.class.php:154 59 | msgid "Add task" 60 | msgstr "Ajouter une tâche" 61 | 62 | #: inc/kanban.class.php:76 63 | msgid "Kanban" 64 | msgstr "Kanban" 65 | 66 | #: inc/kanban.class.php:148 67 | msgid "You don't have the right to see any context" 68 | msgstr "Vous n'avez pas le droit de voir de contexte" 69 | 70 | #: inc/kanban.class.php:185 71 | msgid "There is no accessible context" 72 | msgstr "Il n'y a pas de contexte accessible" 73 | 74 | #: inc/notificationtargettask.class.php:51 75 | msgid "A task has been added" 76 | msgstr "Une tâche a été ajoutée" 77 | 78 | #: inc/notificationtargettask.class.php:52 79 | msgid "A task has been updated" 80 | msgstr "Une tâche a été mise à jour" 81 | 82 | #: inc/notificationtargettask.class.php:53 83 | msgid "A task has been removed" 84 | msgstr "Une tâche a été supprimée" 85 | 86 | #: inc/notificationtargettask.class.php:217 87 | #: inc/notificationtargettask.class.php:263 inc/task.class.php:205 88 | #: inc/task.class.php:559 89 | msgid "Other client" 90 | msgstr "Autre client" 91 | 92 | #: inc/notificationtargettask.class.php:271 93 | msgid "At creation, update, removal of a task" 94 | msgstr "A la création, mise à jour et suppression d'un tâche" 95 | 96 | #: inc/preference.class.php:88 97 | msgid "Context by default" 98 | msgstr "Contexte par défaut" 99 | 100 | #: inc/preference.class.php:96 101 | msgid "Automatic refreshing of tasklist" 102 | msgstr "Rafraîchissement automatique des listes de tâches" 103 | 104 | #: inc/preference.class.php:102 105 | msgid "Refresh every " 106 | msgstr "Rafraîchir toutes les" 107 | 108 | #: inc/preference.class.php:106 109 | msgid "minute(s)" 110 | msgstr "minute(s)" 111 | 112 | #: inc/profile.class.php:164 inc/profile.class.php:208 113 | msgid "See and update all tasks" 114 | msgstr "Voir et mettre à jour toutes les tâches" 115 | 116 | #: inc/profile.class.php:173 inc/profile.class.php:211 117 | msgid "Configure contexts and statuses" 118 | msgstr "Configurer les contextes et les statuts" 119 | 120 | #: inc/task.class.php:254 121 | msgctxt "quantity" 122 | msgid "Number of comments" 123 | msgstr "Nombre de commentaires" 124 | 125 | #: inc/task.class.php:392 126 | msgid "You cannot archive a task with this state" 127 | msgstr "Vous ne pouvez pas archiver une tâche ayant ce statut" 128 | 129 | #: inc/task.class.php:522 130 | msgid "Existing client" 131 | msgstr "Client existant" 132 | 133 | #: inc/task.class.php:709 inc/task.class.php:790 inc/task.class.php:1085 134 | #: inc/tasktype.class.php:165 inc/tasktype.class.php:526 135 | msgid "Backlog" 136 | msgstr "Backlog" 137 | 138 | #: inc/task.class.php:1143 139 | msgctxt "visibility" 140 | msgid "This user" 141 | msgstr "Cet utilisateur" 142 | 143 | #: inc/task.class.php:1146 144 | msgctxt "visibility" 145 | msgid "This user and this group" 146 | msgstr "Cet utilisateur et ce groupe" 147 | 148 | #: inc/task.class.php:1149 149 | msgctxt "visibility" 150 | msgid "All" 151 | msgstr "Tout le monde" 152 | 153 | #: inc/task.class.php:1192 154 | msgid "Affect entity for create task" 155 | msgstr "Affecter une entité pour une création de tâche" 156 | 157 | #: inc/taskstate.class.php:84 158 | msgid "Status" 159 | msgid_plural "Statuses" 160 | msgstr[0] "Statut" 161 | msgstr[1] "Statuts" 162 | msgstr[2] "Statuts" 163 | 164 | #: inc/ticket.class.php:74 inc/ticket.class.php:184 165 | msgid "Linked task" 166 | msgid_plural "Linked tasks" 167 | msgstr[0] "Tâche liée" 168 | msgstr[1] "Tâches liées" 169 | msgstr[2] "Tâches liées" 170 | 171 | #: inc/ticket.class.php:228 172 | msgid "No task linked to this ticket yet" 173 | msgstr "Pas de tâche liée à ce ticket" 174 | 175 | #: inc/ticket.class.php:259 176 | msgid "Link a existant ticket" 177 | msgstr "Lier à un ticket existant" 178 | 179 | #: inc/ticket.class.php:285 180 | msgid "Linked tickets" 181 | msgstr "Tickets liés" 182 | 183 | #: inc/typevisibility.class.php:138 184 | msgid "Add a group" 185 | msgstr "Ajouter un groupe" 186 | 187 | #: inc/typevisibility.class.php:179 188 | msgid "Groups allowed to use context" 189 | msgstr "Groupes autorisés à utiliser ce contexte" 190 | -------------------------------------------------------------------------------- /locales/glpi.pot: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR Tasklists Development Team 3 | # This file is distributed under the same license as the GLPI - Tasklists plugin package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: GLPI - Tasklists plugin\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-12-30 13:55+0000\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=CHARSET\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" 20 | 21 | #: setup.php:87 inc/dashboard.class.php:60 inc/dashboard.class.php:178 22 | #: inc/dashboard.class.php:183 inc/menu.class.php:44 23 | #: inc/preference.class.php:46 inc/profile.class.php:52 24 | msgid "Tasks list" 25 | msgstr "" 26 | 27 | #: ajax/addOptions.php:30 28 | msgid "Not archived" 29 | msgstr "" 30 | 31 | #: ajax/addOptions.php:31 inc/task.class.php:197 inc/task.class.php:686 32 | msgid "Archived" 33 | msgstr "" 34 | 35 | #: inc/dashboard.class.php:59 36 | msgid "Tables" 37 | msgstr "" 38 | 39 | #: inc/dashboard.class.php:102 inc/task.class.php:96 inc/task.class.php:478 40 | #: inc/taskstate.class.php:137 inc/taskstate.class.php:189 41 | #: inc/tasktype.class.php:52 42 | msgid "Context" 43 | msgid_plural "Contexts" 44 | msgstr[0] "" 45 | msgstr[1] "" 46 | 47 | #: inc/dashboard.class.php:108 inc/notificationtargettask.class.php:213 48 | #: inc/notificationtargettask.class.php:259 inc/task.class.php:134 49 | #: inc/task.class.php:568 inc/tasktype.class.php:229 50 | msgid "Due date" 51 | msgstr "" 52 | 53 | #: inc/dashboard.class.php:163 inc/dashboard.class.php:164 54 | #: inc/dashboard.class.php:169 inc/ticket.class.php:154 55 | msgid "Add task" 56 | msgstr "" 57 | 58 | #: inc/kanban.class.php:76 59 | msgid "Kanban" 60 | msgstr "" 61 | 62 | #: inc/kanban.class.php:148 63 | msgid "You don't have the right to see any context" 64 | msgstr "" 65 | 66 | #: inc/kanban.class.php:185 67 | msgid "There is no accessible context" 68 | msgstr "" 69 | 70 | #: inc/notificationtargettask.class.php:51 71 | msgid "A task has been added" 72 | msgstr "" 73 | 74 | #: inc/notificationtargettask.class.php:52 75 | msgid "A task has been updated" 76 | msgstr "" 77 | 78 | #: inc/notificationtargettask.class.php:53 79 | msgid "A task has been removed" 80 | msgstr "" 81 | 82 | #: inc/notificationtargettask.class.php:217 83 | #: inc/notificationtargettask.class.php:263 inc/task.class.php:205 84 | #: inc/task.class.php:559 85 | msgid "Other client" 86 | msgstr "" 87 | 88 | #: inc/notificationtargettask.class.php:271 89 | msgid "At creation, update, removal of a task" 90 | msgstr "" 91 | 92 | #: inc/preference.class.php:88 93 | msgid "Context by default" 94 | msgstr "" 95 | 96 | #: inc/preference.class.php:96 97 | msgid "Automatic refreshing of tasklist" 98 | msgstr "" 99 | 100 | #: inc/preference.class.php:102 101 | msgid "Refresh every " 102 | msgstr "" 103 | 104 | #: inc/preference.class.php:106 105 | msgid "minute(s)" 106 | msgstr "" 107 | 108 | #: inc/profile.class.php:164 inc/profile.class.php:208 109 | msgid "See and update all tasks" 110 | msgstr "" 111 | 112 | #: inc/profile.class.php:173 inc/profile.class.php:211 113 | msgid "Configure contexts and statuses" 114 | msgstr "" 115 | 116 | #: inc/task.class.php:254 117 | msgctxt "quantity" 118 | msgid "Number of comments" 119 | msgstr "" 120 | 121 | #: inc/task.class.php:392 122 | msgid "You cannot archive a task with this state" 123 | msgstr "" 124 | 125 | #: inc/task.class.php:522 126 | msgid "Existing client" 127 | msgstr "" 128 | 129 | #: inc/task.class.php:709 inc/task.class.php:790 inc/task.class.php:1085 130 | #: inc/tasktype.class.php:165 inc/tasktype.class.php:526 131 | msgid "Backlog" 132 | msgstr "" 133 | 134 | #: inc/task.class.php:1143 135 | msgctxt "visibility" 136 | msgid "This user" 137 | msgstr "" 138 | 139 | #: inc/task.class.php:1146 140 | msgctxt "visibility" 141 | msgid "This user and this group" 142 | msgstr "" 143 | 144 | #: inc/task.class.php:1149 145 | msgctxt "visibility" 146 | msgid "All" 147 | msgstr "" 148 | 149 | #: inc/task.class.php:1192 150 | msgid "Affect entity for create task" 151 | msgstr "" 152 | 153 | #: inc/taskstate.class.php:84 154 | msgid "Status" 155 | msgid_plural "Statuses" 156 | msgstr[0] "" 157 | msgstr[1] "" 158 | 159 | #: inc/ticket.class.php:74 inc/ticket.class.php:184 160 | msgid "Linked task" 161 | msgid_plural "Linked tasks" 162 | msgstr[0] "" 163 | msgstr[1] "" 164 | 165 | #: inc/ticket.class.php:228 166 | msgid "No task linked to this ticket yet" 167 | msgstr "" 168 | 169 | #: inc/ticket.class.php:259 170 | msgid "Link a existant ticket" 171 | msgstr "" 172 | 173 | #: inc/ticket.class.php:285 174 | msgid "Linked tickets" 175 | msgstr "" 176 | 177 | #: inc/typevisibility.class.php:138 178 | msgid "Add a group" 179 | msgstr "" 180 | 181 | #: inc/typevisibility.class.php:179 182 | msgid "Groups allowed to use context" 183 | msgstr "" 184 | -------------------------------------------------------------------------------- /locales/ja_JP.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InfotelGLPI/tasklists/db68fda7243a85b5ce72dad27eb2c6cf2ea307c0/locales/ja_JP.mo -------------------------------------------------------------------------------- /locales/ja_JP.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR Tasklists Development Team 3 | # This file is distributed under the same license as the GLPI - Tasklists plugin package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | # Translators: 7 | # INOUE Daisuke, 2024 8 | # 9 | #, fuzzy 10 | msgid "" 11 | msgstr "" 12 | "Project-Id-Version: GLPI - Tasklists plugin\n" 13 | "Report-Msgid-Bugs-To: \n" 14 | "POT-Creation-Date: 2024-12-30 13:49+0000\n" 15 | "PO-Revision-Date: 2020-11-02 16:28+0000\n" 16 | "Last-Translator: INOUE Daisuke, 2024\n" 17 | "Language-Team: Japanese (Japan) (https://app.transifex.com/infotelGLPI/teams/79675/ja_JP/)\n" 18 | "MIME-Version: 1.0\n" 19 | "Content-Type: text/plain; charset=UTF-8\n" 20 | "Content-Transfer-Encoding: 8bit\n" 21 | "Language: ja_JP\n" 22 | "Plural-Forms: nplurals=1; plural=0;\n" 23 | 24 | #: setup.php:87 inc/dashboard.class.php:60 inc/dashboard.class.php:178 25 | #: inc/dashboard.class.php:183 inc/menu.class.php:44 26 | #: inc/preference.class.php:46 inc/profile.class.php:52 27 | msgid "Tasks list" 28 | msgstr "タスクリスト" 29 | 30 | #: ajax/addOptions.php:30 31 | msgid "Not archived" 32 | msgstr "未保管" 33 | 34 | #: ajax/addOptions.php:31 inc/task.class.php:197 inc/task.class.php:686 35 | msgid "Archived" 36 | msgstr "保管済み" 37 | 38 | #: inc/dashboard.class.php:59 39 | msgid "Tables" 40 | msgstr "テーブル" 41 | 42 | #: inc/dashboard.class.php:102 inc/task.class.php:96 inc/task.class.php:478 43 | #: inc/taskstate.class.php:137 inc/taskstate.class.php:189 44 | #: inc/tasktype.class.php:52 45 | msgid "Context" 46 | msgid_plural "Contexts" 47 | msgstr[0] "コンテキスト" 48 | 49 | #: inc/dashboard.class.php:108 inc/notificationtargettask.class.php:213 50 | #: inc/notificationtargettask.class.php:259 inc/task.class.php:134 51 | #: inc/task.class.php:568 inc/tasktype.class.php:229 52 | msgid "Due date" 53 | msgstr "期限" 54 | 55 | #: inc/dashboard.class.php:163 inc/dashboard.class.php:164 56 | #: inc/dashboard.class.php:169 inc/ticket.class.php:154 57 | msgid "Add task" 58 | msgstr "タスクの追加" 59 | 60 | #: inc/kanban.class.php:76 61 | msgid "Kanban" 62 | msgstr "カンバン" 63 | 64 | #: inc/kanban.class.php:148 65 | msgid "You don't have the right to see any context" 66 | msgstr "コンテキストを表示する権限がありません" 67 | 68 | #: inc/kanban.class.php:185 69 | msgid "There is no accessible context" 70 | msgstr "開くことができるコンテキストがありません" 71 | 72 | #: inc/notificationtargettask.class.php:51 73 | msgid "A task has been added" 74 | msgstr "タスクを追加しました" 75 | 76 | #: inc/notificationtargettask.class.php:52 77 | msgid "A task has been updated" 78 | msgstr "タスクを更新しました" 79 | 80 | #: inc/notificationtargettask.class.php:53 81 | msgid "A task has been removed" 82 | msgstr "タスクを削除しました" 83 | 84 | #: inc/notificationtargettask.class.php:217 85 | #: inc/notificationtargettask.class.php:263 inc/task.class.php:205 86 | #: inc/task.class.php:559 87 | msgid "Other client" 88 | msgstr "その他のクライアント" 89 | 90 | #: inc/notificationtargettask.class.php:271 91 | msgid "At creation, update, removal of a task" 92 | msgstr "タスクの作成、更新、削除時" 93 | 94 | #: inc/preference.class.php:88 95 | msgid "Context by default" 96 | msgstr "デフォルトのコンテキスト" 97 | 98 | #: inc/preference.class.php:96 99 | msgid "Automatic refreshing of tasklist" 100 | msgstr "タスクリストの自動画面更新" 101 | 102 | #: inc/preference.class.php:102 103 | msgid "Refresh every " 104 | msgstr "更新間隔" 105 | 106 | #: inc/preference.class.php:106 107 | msgid "minute(s)" 108 | msgstr "分" 109 | 110 | #: inc/profile.class.php:164 inc/profile.class.php:208 111 | msgid "See and update all tasks" 112 | msgstr "すべてのタスクを表示・更新" 113 | 114 | #: inc/profile.class.php:173 inc/profile.class.php:211 115 | msgid "Configure contexts and statuses" 116 | msgstr "コンテキストと状態の設定" 117 | 118 | #: inc/task.class.php:254 119 | msgctxt "quantity" 120 | msgid "Number of comments" 121 | msgstr "コメント数" 122 | 123 | #: inc/task.class.php:392 124 | msgid "You cannot archive a task with this state" 125 | msgstr "この状態のタスクを保管できません" 126 | 127 | #: inc/task.class.php:522 128 | msgid "Existing client" 129 | msgstr "既存のクライアント" 130 | 131 | #: inc/task.class.php:709 inc/task.class.php:790 inc/task.class.php:1085 132 | #: inc/tasktype.class.php:165 inc/tasktype.class.php:526 133 | msgid "Backlog" 134 | msgstr "バックログ" 135 | 136 | #: inc/task.class.php:1143 137 | msgctxt "visibility" 138 | msgid "This user" 139 | msgstr "このユーザー" 140 | 141 | #: inc/task.class.php:1146 142 | msgctxt "visibility" 143 | msgid "This user and this group" 144 | msgstr "このユーザーとグループ" 145 | 146 | #: inc/task.class.php:1149 147 | msgctxt "visibility" 148 | msgid "All" 149 | msgstr "すべて" 150 | 151 | #: inc/task.class.php:1192 152 | msgid "Affect entity for create task" 153 | msgstr "タスクを作成してエンティティ―に影響を与える" 154 | 155 | #: inc/taskstate.class.php:84 156 | msgid "Status" 157 | msgid_plural "Statuses" 158 | msgstr[0] "状態" 159 | 160 | #: inc/ticket.class.php:74 inc/ticket.class.php:184 161 | msgid "Linked task" 162 | msgid_plural "Linked tasks" 163 | msgstr[0] "リンクしたタスク" 164 | 165 | #: inc/ticket.class.php:228 166 | msgid "No task linked to this ticket yet" 167 | msgstr "このチケットにリンクしているタスクはありません" 168 | 169 | #: inc/ticket.class.php:259 170 | msgid "Link a existant ticket" 171 | msgstr "既存のチケットにリンクする" 172 | 173 | #: inc/ticket.class.php:285 174 | msgid "Linked tickets" 175 | msgstr "リンクしているチケット" 176 | 177 | #: inc/typevisibility.class.php:138 178 | msgid "Add a group" 179 | msgstr "グループを追加" 180 | 181 | #: inc/typevisibility.class.php:179 182 | msgid "Groups allowed to use context" 183 | msgstr "コンテキストの利用を許可しているグループ" 184 | -------------------------------------------------------------------------------- /locales/pl_PL.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InfotelGLPI/tasklists/db68fda7243a85b5ce72dad27eb2c6cf2ea307c0/locales/pl_PL.mo -------------------------------------------------------------------------------- /locales/pl_PL.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR Tasklists Development Team 3 | # This file is distributed under the same license as the GLPI - Tasklists plugin package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | # Translators: 7 | # Ryszard Jeziorski , 2019 8 | # 9 | #, fuzzy 10 | msgid "" 11 | msgstr "" 12 | "Project-Id-Version: GLPI - Tasklists plugin 1.4.0\n" 13 | "Report-Msgid-Bugs-To: \n" 14 | "POT-Creation-Date: 2020-07-20 15:07+0200\n" 15 | "PO-Revision-Date: 2017-10-18 16:45+0000\n" 16 | "Last-Translator: Ryszard Jeziorski , 2019\n" 17 | "Language-Team: Polish (Poland) (https://www.transifex.com/infotelGLPI/teams/79675/pl_PL/)\n" 18 | "MIME-Version: 1.0\n" 19 | "Content-Type: text/plain; charset=UTF-8\n" 20 | "Content-Transfer-Encoding: 8bit\n" 21 | "Language: pl_PL\n" 22 | "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" 23 | 24 | #: setup.php:89 inc/dashboard.class.php:58 inc/dashboard.class.php:178 25 | #: inc/dashboard.class.php:183 inc/menu.class.php:44 26 | #: inc/preference.class.php:46 inc/profile.class.php:52 27 | msgid "Tasks list" 28 | msgstr "Lista zadań" 29 | 30 | #: ajax/addOptions.php:31 31 | msgid "Not archived" 32 | msgstr "" 33 | 34 | #: ajax/addOptions.php:32 inc/task.class.php:181 inc/task.class.php:599 35 | msgid "Archived" 36 | msgstr "Zarchiwizowane" 37 | 38 | #: inc/dashboard.class.php:93 inc/task.class.php:80 inc/task.class.php:418 39 | #: inc/taskstate.class.php:100 inc/taskstate.class.php:152 40 | #: inc/tasktype.class.php:48 41 | msgid "Context" 42 | msgid_plural "Contexts" 43 | msgstr[0] "Kontekst" 44 | msgstr[1] "Konteksty" 45 | msgstr[2] "Kontekstów" 46 | msgstr[3] "Kontekst" 47 | 48 | #: inc/dashboard.class.php:93 inc/notificationtargettask.class.php:203 49 | #: inc/notificationtargettask.class.php:247 inc/task.class.php:118 50 | #: inc/task.class.php:496 inc/tasktype.class.php:256 51 | msgid "Due date" 52 | msgstr "Data zakończenia" 53 | 54 | #: inc/dashboard.class.php:164 inc/dashboard.class.php:172 55 | #: inc/kanban.class.php:257 inc/ticket.class.php:154 56 | msgid "Add task" 57 | msgstr "Dodaj zadanie" 58 | 59 | #: inc/kanban.class.php:61 60 | msgid "Kanban" 61 | msgstr "Kanban" 62 | 63 | #: inc/kanban.class.php:121 64 | msgid "You don't have the right to see any context" 65 | msgstr "" 66 | 67 | #: inc/kanban.class.php:188 68 | msgid "There is no accessible context" 69 | msgstr "" 70 | 71 | #: inc/kanban.class.php:247 72 | msgid "Toggle collapse" 73 | msgstr "" 74 | 75 | #: inc/kanban.class.php:248 76 | msgid "Search" 77 | msgstr "" 78 | 79 | #: inc/kanban.class.php:249 80 | msgid "Search or filter results" 81 | msgstr "" 82 | 83 | #: inc/kanban.class.php:250 84 | msgid "Add status" 85 | msgstr "" 86 | 87 | #: inc/kanban.class.php:251 88 | msgid "Create status" 89 | msgstr "" 90 | 91 | #: inc/kanban.class.php:253 92 | msgid "Add a column from existing status" 93 | msgstr "" 94 | 95 | #: inc/kanban.class.php:254 96 | msgid "Or add a new status" 97 | msgstr "" 98 | 99 | #: inc/kanban.class.php:259 100 | msgid "Archive all tasks of this state" 101 | msgstr "" 102 | 103 | #: inc/kanban.class.php:260 104 | msgid "See archived tasks" 105 | msgstr "Zadania zarchiwizowane" 106 | 107 | #: inc/kanban.class.php:261 108 | msgid "Hide archived tasks" 109 | msgstr "Ukryj zarchiwizowane zadania" 110 | 111 | #: inc/kanban.class.php:262 112 | msgid "Clone task" 113 | msgstr "Sklonuj zadanie" 114 | 115 | #: inc/kanban.class.php:263 116 | msgid "See tasks in progress" 117 | msgstr "Zadania wykonywane" 118 | 119 | #: inc/kanban.class.php:264 120 | msgid "See tasks of" 121 | msgstr "Zadania użytkownika" 122 | 123 | #: inc/kanban.class.php:265 124 | msgid "See all tasks" 125 | msgstr "Wszystkie zadania" 126 | 127 | #: inc/kanban.class.php:266 128 | msgid "Are you sure you want to archive this task ?" 129 | msgstr "" 130 | 131 | #: inc/kanban.class.php:267 132 | msgid "Are you sure you want to archive all tasks ?" 133 | msgstr "" 134 | 135 | #: inc/kanban.class.php:268 136 | msgid "Archive this task" 137 | msgstr "" 138 | 139 | #: inc/kanban.class.php:269 140 | msgid "Update priority of task" 141 | msgstr "" 142 | 143 | #: inc/kanban.class.php:270 144 | msgid "Details of task" 145 | msgstr "Szczegóły zdania" 146 | 147 | #: inc/notificationtargettask.class.php:50 148 | msgid "A task has been added" 149 | msgstr "Dodano zadanie" 150 | 151 | #: inc/notificationtargettask.class.php:51 152 | msgid "A task has been updated" 153 | msgstr "Zaktualizowano zadanie" 154 | 155 | #: inc/notificationtargettask.class.php:52 156 | msgid "A task has been removed" 157 | msgstr "Usunięto zadanie" 158 | 159 | #: inc/notificationtargettask.class.php:207 160 | #: inc/notificationtargettask.class.php:251 inc/task.class.php:189 161 | #: inc/task.class.php:486 162 | msgid "Other client" 163 | msgstr "Inny klient" 164 | 165 | #: inc/notificationtargettask.class.php:259 166 | msgid "At creation, update, removal of a task" 167 | msgstr "" 168 | 169 | #: inc/preference.class.php:80 170 | msgid "Context by default" 171 | msgstr "" 172 | 173 | #: inc/preference.class.php:88 174 | msgid "Automatic refreshing of tasklist" 175 | msgstr "" 176 | 177 | #: inc/preference.class.php:94 178 | msgid "Refresh every " 179 | msgstr "" 180 | 181 | #: inc/preference.class.php:98 182 | msgid "minute(s)" 183 | msgstr "" 184 | 185 | #: inc/profile.class.php:153 inc/profile.class.php:196 186 | msgid "See and update all tasks" 187 | msgstr "" 188 | 189 | #: inc/profile.class.php:162 inc/profile.class.php:199 190 | msgid "Configure contexts and statuses" 191 | msgstr "" 192 | 193 | #: inc/stateorder.class.php:96 194 | msgid "States ordering" 195 | msgstr "" 196 | 197 | #: inc/stateorder.class.php:156 198 | msgid "Add states from linked Kanban" 199 | msgstr "" 200 | 201 | #: inc/task.class.php:333 202 | msgid "You cannot archive a task with this state" 203 | msgstr "" 204 | 205 | #: inc/task.class.php:457 206 | msgid "Existing client" 207 | msgstr "" 208 | 209 | #: inc/task.class.php:622 inc/task.class.php:709 inc/task.class.php:985 210 | #: inc/tasktype.class.php:161 211 | msgid "Backlog" 212 | msgstr "Zaległości" 213 | 214 | #: inc/task.class.php:1045 215 | msgctxt "visibility" 216 | msgid "This user" 217 | msgstr "Użytkownik" 218 | 219 | #: inc/task.class.php:1048 220 | msgctxt "visibility" 221 | msgid "This user and this group" 222 | msgstr "Użytkownik i grupa" 223 | 224 | #: inc/task.class.php:1051 225 | msgctxt "visibility" 226 | msgid "All" 227 | msgstr "Wszystko" 228 | 229 | #: inc/task.class.php:1093 230 | msgid "Affect entity for create task" 231 | msgstr "" 232 | 233 | #: inc/ticket.class.php:74 inc/ticket.class.php:183 234 | msgid "Linked task" 235 | msgid_plural "Linked tasks" 236 | msgstr[0] "Powiązane zadanie" 237 | msgstr[1] "Powiązane zadania" 238 | msgstr[2] "Powiązanych zadań" 239 | msgstr[3] "Powiązane zadania" 240 | 241 | #: inc/ticket.class.php:227 242 | msgid "No task linked to this ticket yet" 243 | msgstr "Brak powiązanych zadań do tego zgłoszenia" 244 | 245 | #: inc/ticket.class.php:258 246 | msgid "Link a existant ticket" 247 | msgstr "Powiąż ze zgłoszeniem" 248 | 249 | #: inc/ticket.class.php:284 250 | msgid "Linked tickets" 251 | msgstr "Powiązane zgłoszenia" 252 | 253 | #: inc/typevisibility.class.php:138 254 | msgid "Add a group" 255 | msgstr "Dodaj grupę" 256 | 257 | #: inc/typevisibility.class.php:179 258 | msgid "Groups allowed to use context" 259 | msgstr "Grupy dopuszczone do użycia w tym kontekście" 260 | -------------------------------------------------------------------------------- /locales/pt_BR.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InfotelGLPI/tasklists/db68fda7243a85b5ce72dad27eb2c6cf2ea307c0/locales/pt_BR.mo -------------------------------------------------------------------------------- /locales/pt_BR.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR Tasklists Development Team 3 | # This file is distributed under the same license as the GLPI - Tasklists plugin package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | # Translators: 7 | # Paulo Henrique , 2021 8 | # Luis José Machado Sousa , 2021 9 | # Rafael Gomes , 2022 10 | # Eduardo Mozart de Oliveira , 2025 11 | # 12 | #, fuzzy 13 | msgid "" 14 | msgstr "" 15 | "Project-Id-Version: GLPI - Tasklists plugin\n" 16 | "Report-Msgid-Bugs-To: \n" 17 | "POT-Creation-Date: 2024-12-30 13:55+0000\n" 18 | "PO-Revision-Date: 2020-11-02 16:28+0000\n" 19 | "Last-Translator: Eduardo Mozart de Oliveira , 2025\n" 20 | "Language-Team: Portuguese (Brazil) (https://app.transifex.com/infotelGLPI/teams/79675/pt_BR/)\n" 21 | "MIME-Version: 1.0\n" 22 | "Content-Type: text/plain; charset=UTF-8\n" 23 | "Content-Transfer-Encoding: 8bit\n" 24 | "Language: pt_BR\n" 25 | "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" 26 | 27 | #: setup.php:87 inc/dashboard.class.php:60 inc/dashboard.class.php:178 28 | #: inc/dashboard.class.php:183 inc/menu.class.php:44 29 | #: inc/preference.class.php:46 inc/profile.class.php:52 30 | msgid "Tasks list" 31 | msgstr "Lista de tarefas" 32 | 33 | #: ajax/addOptions.php:30 34 | msgid "Not archived" 35 | msgstr "Não arquivado" 36 | 37 | #: ajax/addOptions.php:31 inc/task.class.php:197 inc/task.class.php:686 38 | msgid "Archived" 39 | msgstr "Arquivado" 40 | 41 | #: inc/dashboard.class.php:59 42 | msgid "Tables" 43 | msgstr "Tabelas" 44 | 45 | #: inc/dashboard.class.php:102 inc/task.class.php:96 inc/task.class.php:478 46 | #: inc/taskstate.class.php:137 inc/taskstate.class.php:189 47 | #: inc/tasktype.class.php:52 48 | msgid "Context" 49 | msgid_plural "Contexts" 50 | msgstr[0] "Contexto" 51 | msgstr[1] "Contextos" 52 | msgstr[2] "Contextos" 53 | 54 | #: inc/dashboard.class.php:108 inc/notificationtargettask.class.php:213 55 | #: inc/notificationtargettask.class.php:259 inc/task.class.php:134 56 | #: inc/task.class.php:568 inc/tasktype.class.php:229 57 | msgid "Due date" 58 | msgstr "Data de vencimento" 59 | 60 | #: inc/dashboard.class.php:163 inc/dashboard.class.php:164 61 | #: inc/dashboard.class.php:169 inc/ticket.class.php:154 62 | msgid "Add task" 63 | msgstr "Adicionar tarefa" 64 | 65 | #: inc/kanban.class.php:76 66 | msgid "Kanban" 67 | msgstr "Kanban" 68 | 69 | #: inc/kanban.class.php:148 70 | msgid "You don't have the right to see any context" 71 | msgstr "Você não tem o direito de ver nenhum contexto" 72 | 73 | #: inc/kanban.class.php:185 74 | msgid "There is no accessible context" 75 | msgstr "Sem contexto acessível" 76 | 77 | #: inc/notificationtargettask.class.php:51 78 | msgid "A task has been added" 79 | msgstr "Uma tarefa foi adicionada" 80 | 81 | #: inc/notificationtargettask.class.php:52 82 | msgid "A task has been updated" 83 | msgstr "Uma tarefa foi atualizada" 84 | 85 | #: inc/notificationtargettask.class.php:53 86 | msgid "A task has been removed" 87 | msgstr "Uma tarefa foi removida" 88 | 89 | #: inc/notificationtargettask.class.php:217 90 | #: inc/notificationtargettask.class.php:263 inc/task.class.php:205 91 | #: inc/task.class.php:559 92 | msgid "Other client" 93 | msgstr "Outro cliente" 94 | 95 | #: inc/notificationtargettask.class.php:271 96 | msgid "At creation, update, removal of a task" 97 | msgstr "Na criação, atualização, remoção de uma tarefa" 98 | 99 | #: inc/preference.class.php:88 100 | msgid "Context by default" 101 | msgstr "Contexto por padrão" 102 | 103 | #: inc/preference.class.php:96 104 | msgid "Automatic refreshing of tasklist" 105 | msgstr "Atualização automática da lista de tarefas" 106 | 107 | #: inc/preference.class.php:102 108 | msgid "Refresh every " 109 | msgstr "Atualizar a cada" 110 | 111 | #: inc/preference.class.php:106 112 | msgid "minute(s)" 113 | msgstr "minuto(s)" 114 | 115 | #: inc/profile.class.php:164 inc/profile.class.php:208 116 | msgid "See and update all tasks" 117 | msgstr "Veja e atualize todas as tarefas" 118 | 119 | #: inc/profile.class.php:173 inc/profile.class.php:211 120 | msgid "Configure contexts and statuses" 121 | msgstr "Configurar contextos e status" 122 | 123 | #: inc/task.class.php:254 124 | msgctxt "quantity" 125 | msgid "Number of comments" 126 | msgstr "Número de comentários" 127 | 128 | #: inc/task.class.php:392 129 | msgid "You cannot archive a task with this state" 130 | msgstr "Você não pode arquivar uma tarefa com este estado" 131 | 132 | #: inc/task.class.php:522 133 | msgid "Existing client" 134 | msgstr "Cliente existente" 135 | 136 | #: inc/task.class.php:709 inc/task.class.php:790 inc/task.class.php:1085 137 | #: inc/tasktype.class.php:165 inc/tasktype.class.php:526 138 | msgid "Backlog" 139 | msgstr "Lista de pendências" 140 | 141 | #: inc/task.class.php:1143 142 | msgctxt "visibility" 143 | msgid "This user" 144 | msgstr "Este usuário" 145 | 146 | #: inc/task.class.php:1146 147 | msgctxt "visibility" 148 | msgid "This user and this group" 149 | msgstr "Este usuário e este grupo" 150 | 151 | #: inc/task.class.php:1149 152 | msgctxt "visibility" 153 | msgid "All" 154 | msgstr "Todos" 155 | 156 | #: inc/task.class.php:1192 157 | msgid "Affect entity for create task" 158 | msgstr "Afetar entidade para criar tarefa" 159 | 160 | #: inc/taskstate.class.php:84 161 | msgid "Status" 162 | msgid_plural "Statuses" 163 | msgstr[0] "Status" 164 | msgstr[1] "Status" 165 | msgstr[2] "Status" 166 | 167 | #: inc/ticket.class.php:74 inc/ticket.class.php:184 168 | msgid "Linked task" 169 | msgid_plural "Linked tasks" 170 | msgstr[0] "Tarefa vinculada" 171 | msgstr[1] "Tarefas vinculadas" 172 | msgstr[2] "Tarefas vinculadas" 173 | 174 | #: inc/ticket.class.php:228 175 | msgid "No task linked to this ticket yet" 176 | msgstr "Nenhuma tarefa vinculada a este chamado ainda" 177 | 178 | #: inc/ticket.class.php:259 179 | msgid "Link a existant ticket" 180 | msgstr "Vincular a um chamado existente" 181 | 182 | #: inc/ticket.class.php:285 183 | msgid "Linked tickets" 184 | msgstr "Vincular chamados" 185 | 186 | #: inc/typevisibility.class.php:138 187 | msgid "Add a group" 188 | msgstr "Adicionar um grupo" 189 | 190 | #: inc/typevisibility.class.php:179 191 | msgid "Groups allowed to use context" 192 | msgstr "Grupos autorizados a usar o contexto" 193 | -------------------------------------------------------------------------------- /locales/ru_RU.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InfotelGLPI/tasklists/db68fda7243a85b5ce72dad27eb2c6cf2ea307c0/locales/ru_RU.mo -------------------------------------------------------------------------------- /locales/ru_RU.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR Tasklists Development Team 3 | # This file is distributed under the same license as the GLPI - Tasklists plugin package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | # Translators: 7 | # Denis Arkhipov , 2019 8 | # 9 | #, fuzzy 10 | msgid "" 11 | msgstr "" 12 | "Project-Id-Version: GLPI - Tasklists plugin 1.4.0\n" 13 | "Report-Msgid-Bugs-To: \n" 14 | "POT-Creation-Date: 2020-07-20 15:07+0200\n" 15 | "PO-Revision-Date: 2017-10-18 16:45+0000\n" 16 | "Last-Translator: Denis Arkhipov , 2019\n" 17 | "Language-Team: Russian (Russia) (https://www.transifex.com/infotelGLPI/teams/79675/ru_RU/)\n" 18 | "MIME-Version: 1.0\n" 19 | "Content-Type: text/plain; charset=UTF-8\n" 20 | "Content-Transfer-Encoding: 8bit\n" 21 | "Language: ru_RU\n" 22 | "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" 23 | 24 | #: setup.php:89 inc/dashboard.class.php:58 inc/dashboard.class.php:178 25 | #: inc/dashboard.class.php:183 inc/menu.class.php:44 26 | #: inc/preference.class.php:46 inc/profile.class.php:52 27 | msgid "Tasks list" 28 | msgstr "Список задач" 29 | 30 | #: ajax/addOptions.php:31 31 | msgid "Not archived" 32 | msgstr "" 33 | 34 | #: ajax/addOptions.php:32 inc/task.class.php:181 inc/task.class.php:599 35 | msgid "Archived" 36 | msgstr "Заархивирован" 37 | 38 | #: inc/dashboard.class.php:93 inc/task.class.php:80 inc/task.class.php:418 39 | #: inc/taskstate.class.php:100 inc/taskstate.class.php:152 40 | #: inc/tasktype.class.php:48 41 | msgid "Context" 42 | msgid_plural "Contexts" 43 | msgstr[0] "Контекст" 44 | msgstr[1] "Контексты" 45 | msgstr[2] "Контексты" 46 | msgstr[3] "Контексты" 47 | 48 | #: inc/dashboard.class.php:93 inc/notificationtargettask.class.php:203 49 | #: inc/notificationtargettask.class.php:247 inc/task.class.php:118 50 | #: inc/task.class.php:496 inc/tasktype.class.php:256 51 | msgid "Due date" 52 | msgstr "Срок исполнения" 53 | 54 | #: inc/dashboard.class.php:164 inc/dashboard.class.php:172 55 | #: inc/kanban.class.php:257 inc/ticket.class.php:154 56 | msgid "Add task" 57 | msgstr "Добавить задачу" 58 | 59 | #: inc/kanban.class.php:61 60 | msgid "Kanban" 61 | msgstr "Канбан" 62 | 63 | #: inc/kanban.class.php:121 64 | msgid "You don't have the right to see any context" 65 | msgstr "У вас нет прав на просмотр контекста" 66 | 67 | #: inc/kanban.class.php:188 68 | msgid "There is no accessible context" 69 | msgstr "" 70 | 71 | #: inc/kanban.class.php:247 72 | msgid "Toggle collapse" 73 | msgstr "" 74 | 75 | #: inc/kanban.class.php:248 76 | msgid "Search" 77 | msgstr "" 78 | 79 | #: inc/kanban.class.php:249 80 | msgid "Search or filter results" 81 | msgstr "" 82 | 83 | #: inc/kanban.class.php:250 84 | msgid "Add status" 85 | msgstr "" 86 | 87 | #: inc/kanban.class.php:251 88 | msgid "Create status" 89 | msgstr "" 90 | 91 | #: inc/kanban.class.php:253 92 | msgid "Add a column from existing status" 93 | msgstr "" 94 | 95 | #: inc/kanban.class.php:254 96 | msgid "Or add a new status" 97 | msgstr "" 98 | 99 | #: inc/kanban.class.php:259 100 | msgid "Archive all tasks of this state" 101 | msgstr "Заархивировать задачи с таким статусом" 102 | 103 | #: inc/kanban.class.php:260 104 | msgid "See archived tasks" 105 | msgstr "Показать архивные задачи" 106 | 107 | #: inc/kanban.class.php:261 108 | msgid "Hide archived tasks" 109 | msgstr "Скрыть архивные задачи" 110 | 111 | #: inc/kanban.class.php:262 112 | msgid "Clone task" 113 | msgstr "Копировать задачу" 114 | 115 | #: inc/kanban.class.php:263 116 | msgid "See tasks in progress" 117 | msgstr "Посмотреть задачи в работе" 118 | 119 | #: inc/kanban.class.php:264 120 | msgid "See tasks of" 121 | msgstr "Посмотреть задачу" 122 | 123 | #: inc/kanban.class.php:265 124 | msgid "See all tasks" 125 | msgstr "Посмотреть все задачи" 126 | 127 | #: inc/kanban.class.php:266 128 | msgid "Are you sure you want to archive this task ?" 129 | msgstr "Вы уверены, что хотите заархивировать эту задачу?" 130 | 131 | #: inc/kanban.class.php:267 132 | msgid "Are you sure you want to archive all tasks ?" 133 | msgstr "Вы уверены, что хотите заархивировать все задачи?" 134 | 135 | #: inc/kanban.class.php:268 136 | msgid "Archive this task" 137 | msgstr "Архивировать эту задачу" 138 | 139 | #: inc/kanban.class.php:269 140 | msgid "Update priority of task" 141 | msgstr "Обновить приоритет задачи" 142 | 143 | #: inc/kanban.class.php:270 144 | msgid "Details of task" 145 | msgstr "Детали задачи" 146 | 147 | #: inc/notificationtargettask.class.php:50 148 | msgid "A task has been added" 149 | msgstr "Задача была добавлена" 150 | 151 | #: inc/notificationtargettask.class.php:51 152 | msgid "A task has been updated" 153 | msgstr "Задача была обновлена" 154 | 155 | #: inc/notificationtargettask.class.php:52 156 | msgid "A task has been removed" 157 | msgstr "Задача была удалена" 158 | 159 | #: inc/notificationtargettask.class.php:207 160 | #: inc/notificationtargettask.class.php:251 inc/task.class.php:189 161 | #: inc/task.class.php:486 162 | msgid "Other client" 163 | msgstr "Другой клиент" 164 | 165 | #: inc/notificationtargettask.class.php:259 166 | msgid "At creation, update, removal of a task" 167 | msgstr "При создании, изменении, удалении задачи" 168 | 169 | #: inc/preference.class.php:80 170 | msgid "Context by default" 171 | msgstr "Контекст по умолчанию" 172 | 173 | #: inc/preference.class.php:88 174 | msgid "Automatic refreshing of tasklist" 175 | msgstr "" 176 | 177 | #: inc/preference.class.php:94 178 | msgid "Refresh every " 179 | msgstr "" 180 | 181 | #: inc/preference.class.php:98 182 | msgid "minute(s)" 183 | msgstr "" 184 | 185 | #: inc/profile.class.php:153 inc/profile.class.php:196 186 | msgid "See and update all tasks" 187 | msgstr "Посмотреть и обновить все задачи" 188 | 189 | #: inc/profile.class.php:162 inc/profile.class.php:199 190 | msgid "Configure contexts and statuses" 191 | msgstr "" 192 | 193 | #: inc/stateorder.class.php:96 194 | msgid "States ordering" 195 | msgstr "Упорядочение статусов" 196 | 197 | #: inc/stateorder.class.php:156 198 | msgid "Add states from linked Kanban" 199 | msgstr "" 200 | 201 | #: inc/task.class.php:333 202 | msgid "You cannot archive a task with this state" 203 | msgstr "Вы не можете заархивировать задачу с таким статусом" 204 | 205 | #: inc/task.class.php:457 206 | msgid "Existing client" 207 | msgstr "Существующий клиент" 208 | 209 | #: inc/task.class.php:622 inc/task.class.php:709 inc/task.class.php:985 210 | #: inc/tasktype.class.php:161 211 | msgid "Backlog" 212 | msgstr "Бэклог" 213 | 214 | #: inc/task.class.php:1045 215 | msgctxt "visibility" 216 | msgid "This user" 217 | msgstr "Этот пользователь" 218 | 219 | #: inc/task.class.php:1048 220 | msgctxt "visibility" 221 | msgid "This user and this group" 222 | msgstr "Этот пользователь и эта группа" 223 | 224 | #: inc/task.class.php:1051 225 | msgctxt "visibility" 226 | msgid "All" 227 | msgstr "Все" 228 | 229 | #: inc/task.class.php:1093 230 | msgid "Affect entity for create task" 231 | msgstr "Влияние организации на создание задачи" 232 | 233 | #: inc/ticket.class.php:74 inc/ticket.class.php:183 234 | msgid "Linked task" 235 | msgid_plural "Linked tasks" 236 | msgstr[0] "Связанная задача" 237 | msgstr[1] "Связанные задачи" 238 | msgstr[2] "Связанные задачи" 239 | msgstr[3] "Связанные задачи" 240 | 241 | #: inc/ticket.class.php:227 242 | msgid "No task linked to this ticket yet" 243 | msgstr "Нет связанных с заявкой задач" 244 | 245 | #: inc/ticket.class.php:258 246 | msgid "Link a existant ticket" 247 | msgstr "Связать с существующей заявкой" 248 | 249 | #: inc/ticket.class.php:284 250 | msgid "Linked tickets" 251 | msgstr "Связанные заявки" 252 | 253 | #: inc/typevisibility.class.php:138 254 | msgid "Add a group" 255 | msgstr "Добавить группу" 256 | 257 | #: inc/typevisibility.class.php:179 258 | msgid "Groups allowed to use context" 259 | msgstr "Группы с разрешением использовать контекст" 260 | -------------------------------------------------------------------------------- /screenshots/Tasks list from Dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InfotelGLPI/tasklists/db68fda7243a85b5ce72dad27eb2c6cf2ea307c0/screenshots/Tasks list from Dashboard.png -------------------------------------------------------------------------------- /screenshots/addTask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InfotelGLPI/tasklists/db68fda7243a85b5ce72dad27eb2c6cf2ea307c0/screenshots/addTask.png -------------------------------------------------------------------------------- /screenshots/kanban.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InfotelGLPI/tasklists/db68fda7243a85b5ce72dad27eb2c6cf2ea307c0/screenshots/kanban.png -------------------------------------------------------------------------------- /setup.php: -------------------------------------------------------------------------------- 1 | . 27 | -------------------------------------------------------------------------- 28 | */ 29 | 30 | define('PLUGIN_TASKLISTS_VERSION', '2.0.4'); 31 | 32 | if (!defined("PLUGIN_TASKLISTS_DIR")) { 33 | define("PLUGIN_TASKLISTS_DIR", Plugin::getPhpDir("tasklists")); 34 | define("PLUGIN_TASKLISTS_NOTFULL_DIR", Plugin::getPhpDir("tasklists",false)); 35 | define("PLUGIN_TASKLISTS_WEBDIR", Plugin::getWebDir("tasklists")); 36 | } 37 | 38 | // Init the hooks of the plugins -Needed 39 | function plugin_init_tasklists() { 40 | global $PLUGIN_HOOKS, $CFG_GLPI; 41 | 42 | $PLUGIN_HOOKS['csrf_compliant']['tasklists'] = true; 43 | $PLUGIN_HOOKS['change_profile']['tasklists'] = ['PluginTasklistsProfile', 'initProfile']; 44 | $PLUGIN_HOOKS['use_rules']['tasklists'] = ['RuleMailCollector']; 45 | 46 | if (Session::getLoginUserID()) { 47 | 48 | Plugin::registerClass('PluginTasklistsTask', [ 49 | // 'linkuser_types' => true, 50 | // 'linkgroup_types' => true, 51 | 'document_types' => true, 52 | 'notificationtemplates_types' => true 53 | ]); 54 | 55 | Plugin::registerClass('PluginTasklistsTicket', 56 | ['addtabon' => 'Ticket']); 57 | 58 | $PLUGIN_HOOKS['item_purge']['tasklists']['Ticket'] = ['PluginTasklistsTaskTicket', 'cleanForTicket']; 59 | 60 | Plugin::registerClass('PluginTasklistsProfile', 61 | ['addtabon' => 'Profile']); 62 | 63 | Plugin::registerClass('PluginTasklistsPreference', 64 | ['addtabon' => 'Preference']); 65 | 66 | if (Session::haveRight("plugin_tasklists", READ)) { 67 | $PLUGIN_HOOKS['menu_toadd']['tasklists'] = ['helpdesk' => 'PluginTasklistsMenu']; 68 | } 69 | 70 | if (class_exists('PluginMydashboardMenu')) { 71 | $PLUGIN_HOOKS['mydashboard']['tasklists'] = ["PluginTasklistsDashboard"]; 72 | } 73 | 74 | if (Session::haveRight("plugin_tasklists", CREATE)) { 75 | $PLUGIN_HOOKS['use_massive_action']['tasklists'] = 1; 76 | } 77 | } 78 | } 79 | 80 | // Get the name and the version of the plugin - Needed 81 | /** 82 | * @return array 83 | */ 84 | function plugin_version_tasklists() { 85 | 86 | return [ 87 | 'name' => __('Tasks list', 'tasklists'), 88 | 'version' => PLUGIN_TASKLISTS_VERSION, 89 | 'license' => 'GPLv2+', 90 | 'author' => "Infotel", 91 | 'homepage' => 'https://github.com/InfotelGLPI/tasklists', 92 | 'requirements' => [ 93 | 'glpi' => [ 94 | 'min' => '10.0', 95 | 'max' => '11.0', 96 | 'dev' => false 97 | ] 98 | ] 99 | ]; 100 | 101 | } 102 | -------------------------------------------------------------------------------- /sql/empty-1.0.0.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS `glpi_plugin_tasklists_tasks`; 2 | CREATE TABLE `glpi_plugin_tasklists_tasks` 3 | ( 4 | `id` int(11) NOT NULL auto_increment, 5 | `entities_id` int(11) NOT NULL default '0', 6 | `is_recursive` tinyint(1) NOT NULL default '0', 7 | `name` varchar(255) collate utf8_unicode_ci default NULL, 8 | `plugin_tasklists_tasktypes_id` int(11) NOT NULL default '0' COMMENT 'RELATION to glpi_plugin_tasklists_tasktypes (id)', 9 | `priority` int(11) NOT NULL DEFAULT '1', 10 | `visibility` int(11) NOT NULL DEFAULT '1', 11 | `actiontime` int(11) NOT NULL DEFAULT '0', 12 | `percent_done` int(11) NOT NULL DEFAULT '0', 13 | `state` int(11) NOT NULL DEFAULT '1', 14 | `due_date` date default NULL, 15 | `users_id` int(11) NOT NULL default '0' COMMENT 'RELATION to glpi_users (id)', 16 | `groups_id` int(11) NOT NULL default '0' COMMENT 'RELATION to glpi_groups (id)', 17 | `comment` text collate utf8_unicode_ci, 18 | `notepad` longtext collate utf8_unicode_ci, 19 | `date_mod` datetime default NULL, 20 | `is_deleted` tinyint(1) NOT NULL default '0', 21 | PRIMARY KEY (`id`), 22 | KEY `name` (`name`), 23 | KEY `entities_id` (`entities_id`), 24 | KEY `plugin_tasklists_tasktypes_id` (`plugin_tasklists_tasktypes_id`), 25 | KEY `users_id` (`users_id`), 26 | KEY `groups_id` (`groups_id`), 27 | KEY `date_mod` (`date_mod`), 28 | KEY `is_deleted` (`is_deleted`) 29 | ) ENGINE = MyISAM 30 | DEFAULT CHARSET = utf8 31 | COLLATE = utf8_unicode_ci; 32 | 33 | 34 | DROP TABLE IF EXISTS `glpi_plugin_tasklists_tasktypes`; 35 | CREATE TABLE `glpi_plugin_tasklists_tasktypes` 36 | ( 37 | `id` int(11) NOT NULL AUTO_INCREMENT, 38 | `name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, 39 | `entities_id` int(11) NOT NULL DEFAULT '0', 40 | `is_recursive` tinyint(1) NOT NULL DEFAULT '0', 41 | `comment` text COLLATE utf8_unicode_ci, 42 | `plugin_tasklists_tasktypes_id` int(11) NOT NULL DEFAULT '0', 43 | `completename` text COLLATE utf8_unicode_ci, 44 | `level` int(11) NOT NULL DEFAULT '0', 45 | `ancestors_cache` longtext COLLATE utf8_unicode_ci, 46 | `sons_cache` longtext COLLATE utf8_unicode_ci, 47 | PRIMARY KEY (`id`), 48 | KEY `name` (`name`), 49 | KEY `unicity` (`plugin_tasklists_tasktypes_id`, `name`) 50 | ) ENGINE = MyISAM 51 | DEFAULT CHARSET = utf8 52 | COLLATE = utf8_unicode_ci; -------------------------------------------------------------------------------- /sql/empty-1.3.0.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS `glpi_plugin_tasklists_tasks`; 2 | CREATE TABLE `glpi_plugin_tasklists_tasks` 3 | ( 4 | `id` int(11) NOT NULL auto_increment, 5 | `entities_id` int(11) NOT NULL default '0', 6 | `is_recursive` tinyint(1) NOT NULL default '0', 7 | `name` varchar(255) collate utf8_unicode_ci default NULL, 8 | `plugin_tasklists_tasktypes_id` int(11) NOT NULL default '0' COMMENT 'RELATION to glpi_plugin_tasklists_tasktypes (id)', 9 | `priority` int(11) NOT NULL DEFAULT '1', 10 | `visibility` int(11) NOT NULL DEFAULT '1', 11 | `actiontime` int(11) NOT NULL DEFAULT '0', 12 | `percent_done` int(11) NOT NULL DEFAULT '0', 13 | `state` int(11) NOT NULL DEFAULT '1', 14 | `due_date` date default NULL, 15 | `users_id` int(11) NOT NULL default '0' COMMENT 'RELATION to glpi_users (id)', 16 | `groups_id` int(11) NOT NULL default '0' COMMENT 'RELATION to glpi_groups (id)', 17 | `comment` text collate utf8_unicode_ci, 18 | `notepad` longtext collate utf8_unicode_ci, 19 | `date_mod` datetime default NULL, 20 | `is_deleted` tinyint(1) NOT NULL default '0', 21 | PRIMARY KEY (`id`), 22 | KEY `name` (`name`), 23 | KEY `entities_id` (`entities_id`), 24 | KEY `plugin_tasklists_tasktypes_id` (`plugin_tasklists_tasktypes_id`), 25 | KEY `users_id` (`users_id`), 26 | KEY `groups_id` (`groups_id`), 27 | KEY `date_mod` (`date_mod`), 28 | KEY `is_deleted` (`is_deleted`) 29 | ) ENGINE = InnoDB 30 | DEFAULT CHARSET = utf8 31 | COLLATE = utf8_unicode_ci; 32 | 33 | 34 | DROP TABLE IF EXISTS `glpi_plugin_tasklists_tasktypes`; 35 | CREATE TABLE `glpi_plugin_tasklists_tasktypes` 36 | ( 37 | `id` int(11) NOT NULL AUTO_INCREMENT, 38 | `name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, 39 | `entities_id` int(11) NOT NULL DEFAULT '0', 40 | `is_recursive` tinyint(1) NOT NULL DEFAULT '0', 41 | `comment` text COLLATE utf8_unicode_ci, 42 | `plugin_tasklists_tasktypes_id` int(11) NOT NULL DEFAULT '0', 43 | `completename` text COLLATE utf8_unicode_ci, 44 | `level` int(11) NOT NULL DEFAULT '0', 45 | `ancestors_cache` longtext COLLATE utf8_unicode_ci, 46 | `sons_cache` longtext COLLATE utf8_unicode_ci, 47 | PRIMARY KEY (`id`), 48 | KEY `name` (`name`), 49 | KEY `unicity` (`plugin_tasklists_tasktypes_id`, `name`) 50 | ) ENGINE = InnoDB 51 | DEFAULT CHARSET = utf8 52 | COLLATE = utf8_unicode_ci; -------------------------------------------------------------------------------- /sql/empty-1.4.0.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS `glpi_plugin_tasklists_tasks`; 2 | CREATE TABLE `glpi_plugin_tasklists_tasks` 3 | ( 4 | `id` int(11) NOT NULL auto_increment, 5 | `entities_id` int(11) NOT NULL default '0', 6 | `is_recursive` tinyint(1) NOT NULL default '0', 7 | `name` varchar(255) collate utf8_unicode_ci default NULL, 8 | `plugin_tasklists_tasktypes_id` int(11) NOT NULL default '0' COMMENT 'RELATION to glpi_plugin_tasklists_tasktypes (id)', 9 | `plugin_tasklists_taskstates_id` int(11) NOT NULL default '0' COMMENT 'RELATION to glpi_plugin_tasklists_taskstates (id)', 10 | `priority` int(11) NOT NULL DEFAULT '1', 11 | `visibility` int(11) NOT NULL DEFAULT '1', 12 | `actiontime` int(11) NOT NULL DEFAULT '0', 13 | `percent_done` int(11) NOT NULL DEFAULT '0', 14 | `state` int(11) NOT NULL DEFAULT '1', 15 | `due_date` date default NULL, 16 | `users_id` int(11) NOT NULL default '0' COMMENT 'RELATION to glpi_users (id)', 17 | `groups_id` int(11) NOT NULL default '0' COMMENT 'RELATION to glpi_groups (id)', 18 | `client` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, 19 | `comment` text collate utf8_unicode_ci, 20 | `notepad` longtext collate utf8_unicode_ci, 21 | `date_mod` datetime default NULL, 22 | `date_creation` datetime default NULL, 23 | `is_template` smallint(6) NOT NULL default '0', 24 | `template_name` varchar(200) collate utf8_unicode_ci NOT NULL default '', 25 | `is_deleted` tinyint(1) NOT NULL default '0', 26 | `is_archived` tinyint(1) NOT NULL default '0', 27 | PRIMARY KEY (`id`), 28 | KEY `name` (`name`), 29 | KEY `entities_id` (`entities_id`), 30 | KEY `plugin_tasklists_tasktypes_id` (`plugin_tasklists_tasktypes_id`), 31 | KEY `is_template` (`is_template`), 32 | KEY `users_id` (`users_id`), 33 | KEY `groups_id` (`groups_id`), 34 | KEY `date_mod` (`date_mod`), 35 | KEY `is_deleted` (`is_deleted`), 36 | KEY `is_archived` (`is_archived`) 37 | ) ENGINE = InnoDB 38 | DEFAULT CHARSET = utf8 39 | COLLATE = utf8_unicode_ci; 40 | 41 | DROP TABLE IF EXISTS `glpi_plugin_tasklists_tasktypes`; 42 | CREATE TABLE `glpi_plugin_tasklists_tasktypes` 43 | ( 44 | `id` int(11) NOT NULL AUTO_INCREMENT, 45 | `name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, 46 | `entities_id` int(11) NOT NULL DEFAULT '0', 47 | `is_recursive` tinyint(1) NOT NULL DEFAULT '0', 48 | `comment` text COLLATE utf8_unicode_ci, 49 | `plugin_tasklists_tasktypes_id` int(11) NOT NULL DEFAULT '0', 50 | `completename` text COLLATE utf8_unicode_ci, 51 | `level` int(11) NOT NULL DEFAULT '0', 52 | `ancestors_cache` longtext COLLATE utf8_unicode_ci, 53 | `sons_cache` longtext COLLATE utf8_unicode_ci, 54 | PRIMARY KEY (`id`), 55 | KEY `name` (`name`), 56 | KEY `entities_id` (`entities_id`), 57 | KEY `unicity` (`plugin_tasklists_tasktypes_id`, `name`) 58 | ) ENGINE = InnoDB 59 | DEFAULT CHARSET = utf8 60 | COLLATE = utf8_unicode_ci; 61 | 62 | DROP TABLE IF EXISTS `glpi_plugin_tasklists_taskstates`; 63 | CREATE TABLE `glpi_plugin_tasklists_taskstates` 64 | ( 65 | `id` int(11) NOT NULL AUTO_INCREMENT, 66 | `name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, 67 | `entities_id` int(11) NOT NULL DEFAULT '0', 68 | `is_recursive` tinyint(1) NOT NULL DEFAULT '0', 69 | `is_finished` tinyint(1) NOT NULL DEFAULT '0', 70 | `tasktypes` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, 71 | `color` varchar(200) DEFAULT '#CCC' NOT NULL, 72 | `comment` text COLLATE utf8_unicode_ci, 73 | PRIMARY KEY (`id`), 74 | KEY `name` (`name`), 75 | KEY `entities_id` (`entities_id`) 76 | ) ENGINE = InnoDB 77 | DEFAULT CHARSET = utf8 78 | COLLATE = utf8_unicode_ci; 79 | 80 | DROP TABLE IF EXISTS `glpi_plugin_tasklists_stateorders`; 81 | CREATE TABLE `glpi_plugin_tasklists_stateorders` 82 | ( 83 | `id` int(11) NOT NULL auto_increment, -- id 84 | `plugin_tasklists_taskstates_id` int(11) NOT NULL DEFAULT 0, 85 | `plugin_tasklists_tasktypes_id` int(11) NOT NULL DEFAULT 0, 86 | `ranking` int(11) NULL, 87 | PRIMARY KEY (`id`), 88 | KEY `plugin_tasklists_tasktypes_id` (`plugin_tasklists_tasktypes_id`), 89 | KEY `plugin_tasklists_taskstates_id` (`plugin_tasklists_taskstates_id`) 90 | ) ENGINE = InnoDB 91 | DEFAULT CHARSET = utf8 92 | COLLATE = utf8_unicode_ci; 93 | 94 | DROP TABLE IF EXISTS `glpi_plugin_tasklists_typevisibilities`; 95 | CREATE TABLE `glpi_plugin_tasklists_typevisibilities` 96 | ( 97 | `id` int(11) NOT NULL AUTO_INCREMENT, 98 | `groups_id` int(11) NOT NULL default '0', 99 | `plugin_tasklists_tasktypes_id` int(11) NOT NULL default '0', 100 | PRIMARY KEY (`id`), 101 | KEY `plugin_tasklists_tasktypes_id` (`plugin_tasklists_tasktypes_id`), 102 | KEY `groups_id` (`groups_id`) 103 | ) ENGINE = InnoDB 104 | DEFAULT CHARSET = utf8 105 | COLLATE = utf8_unicode_ci; 106 | 107 | DROP TABLE IF EXISTS `glpi_plugin_tasklists_preferences`; 108 | CREATE TABLE `glpi_plugin_tasklists_preferences` 109 | ( 110 | `id` int(11) NOT NULL COMMENT 'RELATION to glpi_users(id)', 111 | `default_type` int(11) NOT NULL DEFAULT 0, 112 | PRIMARY KEY (`id`) 113 | ) ENGINE = InnoDB 114 | DEFAULT CHARSET = utf8 115 | COLLATE = utf8_unicode_ci; 116 | 117 | DROP TABLE IF EXISTS `glpi_plugin_tasklists_tickets`; 118 | CREATE TABLE `glpi_plugin_tasklists_tickets` 119 | ( 120 | `id` int(11) NOT NULL AUTO_INCREMENT, 121 | `tickets_id` int(11) NOT NULL DEFAULT '0', 122 | `plugin_tasklists_tasks_id` int(11) NOT NULL DEFAULT '0', 123 | PRIMARY KEY (`id`), 124 | KEY `plugin_tasklists_tasks_id` (`plugin_tasklists_tasks_id`), 125 | KEY `tickets_id` (`tickets_id`) 126 | ) ENGINE = InnoDB 127 | DEFAULT CHARSET = utf8 128 | COLLATE = utf8_unicode_ci; 129 | 130 | DROP TABLE IF EXISTS `glpi_plugin_tasklists_tasks_comments`; 131 | CREATE TABLE `glpi_plugin_tasklists_tasks_comments` 132 | ( 133 | `id` int(11) NOT NULL AUTO_INCREMENT, 134 | `plugin_tasklists_tasks_id` int(11) NOT NULL, 135 | `users_id` int(11) NOT NULL DEFAULT '0', 136 | `language` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL, 137 | `comment` text COLLATE utf8_unicode_ci NOT NULL, 138 | `parent_comment_id` int(11) DEFAULT NULL, 139 | `date_creation` datetime DEFAULT NULL, 140 | `date_mod` datetime DEFAULT NULL, 141 | PRIMARY KEY (`id`) 142 | ) ENGINE = InnoDB 143 | DEFAULT CHARSET = utf8 144 | COLLATE = utf8_unicode_ci; -------------------------------------------------------------------------------- /sql/update-1.4.0.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE `glpi_plugin_tasklists_taskstates` 2 | ( 3 | `id` int(11) NOT NULL AUTO_INCREMENT, 4 | `name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, 5 | `entities_id` int(11) NOT NULL DEFAULT '0', 6 | `is_recursive` tinyint(1) NOT NULL DEFAULT '0', 7 | `is_finished` tinyint(1) NOT NULL DEFAULT '0', 8 | `tasktypes` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, 9 | `color` varchar(200) DEFAULT '#CCC' NOT NULL, 10 | `comment` text COLLATE utf8_unicode_ci, 11 | PRIMARY KEY (`id`), 12 | KEY `name` (`name`), 13 | KEY `entities_id` (`entities_id`) 14 | ) ENGINE = InnoDB 15 | DEFAULT CHARSET = utf8 16 | COLLATE = utf8_unicode_ci; 17 | 18 | INSERT INTO `glpi_plugin_tasklists_taskstates` (`id`, `name`, `entities_id`, `is_recursive`, `comment`, `color`, 19 | `tasktypes`) 20 | VALUES (1, 'To do', '0', '1', NULL, '#CCC', NULL); 21 | INSERT INTO `glpi_plugin_tasklists_taskstates` (`id`, `name`, `entities_id`, `is_recursive`, `comment`, `color`, 22 | `tasktypes`) 23 | VALUES (2, 'Done', '0', '1', NULL, '#CCC', NULL); 24 | 25 | ALTER TABLE `glpi_plugin_tasklists_tasks` 26 | CHANGE `state` `plugin_tasklists_taskstates_id` INT(11) NOT NULL DEFAULT '0' COMMENT 'RELATION to glpi_plugin_tasklists_taskstates (id)'; 27 | ALTER TABLE `glpi_plugin_tasklists_tasks` 28 | ADD `is_archived` tinyint(1) NOT NULL default '0'; 29 | ALTER TABLE `glpi_plugin_tasklists_tasks` 30 | ADD `client` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL; 31 | ALTER TABLE `glpi_plugin_tasklists_tasks` 32 | ADD `date_creation` datetime default NULL; 33 | ALTER TABLE `glpi_plugin_tasklists_tasks` 34 | ADD `due_date` date default NULL; 35 | ALTER TABLE `glpi_plugin_tasklists_tasks` 36 | ADD `is_template` smallint(6) NOT NULL default '0'; 37 | ALTER TABLE `glpi_plugin_tasklists_tasks` 38 | ADD `template_name` varchar(200) collate utf8_unicode_ci NOT NULL default ''; 39 | 40 | CREATE TABLE `glpi_plugin_tasklists_stateorders` 41 | ( 42 | `id` int(11) NOT NULL auto_increment, -- id 43 | `plugin_tasklists_taskstates_id` int(11) NOT NULL DEFAULT 0, 44 | `plugin_tasklists_tasktypes_id` int(11) NOT NULL DEFAULT 0, 45 | `ranking` int(11) NULL, 46 | PRIMARY KEY (`id`), 47 | KEY `plugin_tasklists_tasktypes_id` (`plugin_tasklists_tasktypes_id`), 48 | KEY `plugin_tasklists_taskstates_id` (`plugin_tasklists_taskstates_id`) 49 | ) ENGINE = InnoDB 50 | DEFAULT CHARSET = utf8 51 | COLLATE = utf8_unicode_ci; 52 | 53 | CREATE TABLE `glpi_plugin_tasklists_typevisibilities` 54 | ( 55 | `id` int(11) NOT NULL AUTO_INCREMENT, 56 | `groups_id` int(11) NOT NULL default '0', 57 | `plugin_tasklists_tasktypes_id` int(11) NOT NULL default '0', 58 | PRIMARY KEY (`id`), 59 | KEY `plugin_tasklists_tasktypes_id` (`plugin_tasklists_tasktypes_id`), 60 | KEY `groups_id` (`groups_id`) 61 | ) ENGINE = InnoDB 62 | DEFAULT CHARSET = utf8 63 | COLLATE = utf8_unicode_ci; 64 | 65 | CREATE TABLE `glpi_plugin_tasklists_preferences` 66 | ( 67 | `id` int(11) NOT NULL COMMENT 'RELATION to glpi_users(id)', 68 | `default_type` int(11) NOT NULL DEFAULT 0, 69 | PRIMARY KEY (`id`) 70 | ) ENGINE = InnoDB 71 | DEFAULT CHARSET = utf8 72 | COLLATE = utf8_unicode_ci; 73 | 74 | CREATE TABLE `glpi_plugin_tasklists_tickets` 75 | ( 76 | `id` int(11) NOT NULL AUTO_INCREMENT, 77 | `tickets_id` int(11) NOT NULL DEFAULT '0', 78 | `plugin_tasklists_tasks_id` int(11) NOT NULL DEFAULT '0', 79 | PRIMARY KEY (`id`), 80 | KEY `plugin_tasklists_tasks_id` (`plugin_tasklists_tasks_id`), 81 | KEY `tickets_id` (`tickets_id`) 82 | ) ENGINE = InnoDB 83 | DEFAULT CHARSET = utf8 84 | COLLATE = utf8_unicode_ci; 85 | 86 | CREATE TABLE `glpi_plugin_tasklists_tasks_comments` 87 | ( 88 | `id` int(11) NOT NULL AUTO_INCREMENT, 89 | `plugin_tasklists_tasks_id` int(11) NOT NULL, 90 | `users_id` int(11) NOT NULL DEFAULT '0', 91 | `language` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL, 92 | `comment` text COLLATE utf8_unicode_ci NOT NULL, 93 | `parent_comment_id` int(11) DEFAULT NULL, 94 | `date_creation` datetime DEFAULT NULL, 95 | `date_mod` datetime DEFAULT NULL, 96 | PRIMARY KEY (`id`) 97 | ) ENGINE = InnoDB 98 | DEFAULT CHARSET = utf8 99 | COLLATE = utf8_unicode_ci; -------------------------------------------------------------------------------- /sql/update-1.4.1.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE `glpi_plugin_tasklists_taskstates` 2 | ( 3 | `id` INT(11) NOT NULL AUTO_INCREMENT, 4 | `name` VARCHAR(255) COLLATE utf8_unicode_ci DEFAULT NULL, 5 | `entities_id` INT(11) NOT NULL DEFAULT '0', 6 | `is_recursive` TINYINT(1) NOT NULL DEFAULT '0', 7 | `is_finished` TINYINT(1) NOT NULL DEFAULT '0', 8 | `tasktypes` VARCHAR(255) COLLATE utf8_unicode_ci DEFAULT NULL, 9 | `color` VARCHAR(200) DEFAULT '#CCC' NOT NULL, 10 | `comment` TEXT COLLATE utf8_unicode_ci, 11 | PRIMARY KEY (`id`), 12 | KEY `name` (`name`), 13 | KEY `entities_id` (`entities_id`) 14 | ) 15 | ENGINE = InnoDB 16 | DEFAULT CHARSET = utf8 17 | COLLATE = utf8_unicode_ci; 18 | 19 | INSERT INTO `glpi_plugin_tasklists_taskstates` (`id`, `name`, `entities_id`, `is_recursive`, `comment`, `color`, 20 | `tasktypes`) 21 | VALUES (1, 'To do', '0', '1', NULL, '#CCC', NULL); 22 | INSERT INTO `glpi_plugin_tasklists_taskstates` (`id`, `name`, `entities_id`, `is_recursive`, `comment`, `color`, 23 | `tasktypes`) 24 | VALUES (2, 'Done', '0', '1', NULL, '#CCC', NULL); 25 | 26 | ALTER TABLE `glpi_plugin_tasklists_tasks` 27 | CHANGE `state` `plugin_tasklists_taskstates_id` INT(11) NOT NULL DEFAULT '0' 28 | COMMENT 'RELATION to glpi_plugin_tasklists_taskstates (id)'; 29 | ALTER TABLE `glpi_plugin_tasklists_tasks` 30 | ADD `is_archived` TINYINT(1) NOT NULL DEFAULT '0'; 31 | ALTER TABLE `glpi_plugin_tasklists_tasks` 32 | ADD `client` VARCHAR(255) COLLATE utf8_unicode_ci DEFAULT NULL; 33 | ALTER TABLE `glpi_plugin_tasklists_tasks` 34 | ADD `date_creation` DATETIME DEFAULT NULL; 35 | ALTER TABLE `glpi_plugin_tasklists_tasks` 36 | ADD `is_template` SMALLINT(6) NOT NULL DEFAULT '0'; 37 | ALTER TABLE `glpi_plugin_tasklists_tasks` 38 | ADD `template_name` VARCHAR(200) COLLATE utf8_unicode_ci NOT NULL DEFAULT ''; 39 | 40 | CREATE TABLE `glpi_plugin_tasklists_stateorders` 41 | ( 42 | `id` INT(11) NOT NULL AUTO_INCREMENT, -- id 43 | `plugin_tasklists_taskstates_id` INT(11) NOT NULL DEFAULT 0, 44 | `plugin_tasklists_tasktypes_id` INT(11) NOT NULL DEFAULT 0, 45 | `ranking` INT(11) NULL, 46 | PRIMARY KEY (`id`), 47 | KEY `plugin_tasklists_tasktypes_id` (`plugin_tasklists_tasktypes_id`), 48 | KEY `plugin_tasklists_taskstates_id` (`plugin_tasklists_taskstates_id`) 49 | ) 50 | ENGINE = InnoDB 51 | DEFAULT CHARSET = utf8 52 | COLLATE = utf8_unicode_ci; 53 | 54 | CREATE TABLE `glpi_plugin_tasklists_typevisibilities` 55 | ( 56 | `id` INT(11) NOT NULL AUTO_INCREMENT, 57 | `groups_id` INT(11) NOT NULL DEFAULT '0', 58 | `plugin_tasklists_tasktypes_id` INT(11) NOT NULL DEFAULT '0', 59 | PRIMARY KEY (`id`), 60 | KEY `plugin_tasklists_tasktypes_id` (`plugin_tasklists_tasktypes_id`), 61 | KEY `groups_id` (`groups_id`) 62 | ) 63 | ENGINE = InnoDB 64 | DEFAULT CHARSET = utf8 65 | COLLATE = utf8_unicode_ci; 66 | 67 | CREATE TABLE `glpi_plugin_tasklists_preferences` 68 | ( 69 | `id` INT(11) NOT NULL 70 | COMMENT 'RELATION to glpi_users(id)', 71 | `default_type` INT(11) NOT NULL DEFAULT 0, 72 | PRIMARY KEY (`id`) 73 | ) 74 | ENGINE = InnoDB 75 | DEFAULT CHARSET = utf8 76 | COLLATE = utf8_unicode_ci; 77 | 78 | CREATE TABLE `glpi_plugin_tasklists_tickets` 79 | ( 80 | `id` INT(11) NOT NULL AUTO_INCREMENT, 81 | `tickets_id` INT(11) NOT NULL DEFAULT '0', 82 | `plugin_tasklists_tasks_id` INT(11) NOT NULL DEFAULT '0', 83 | PRIMARY KEY (`id`), 84 | KEY `plugin_tasklists_tasks_id` (`plugin_tasklists_tasks_id`), 85 | KEY `tickets_id` (`tickets_id`) 86 | ) 87 | ENGINE = InnoDB 88 | DEFAULT CHARSET = utf8 89 | COLLATE = utf8_unicode_ci; 90 | 91 | CREATE TABLE `glpi_plugin_tasklists_tasks_comments` 92 | ( 93 | `id` INT(11) NOT NULL AUTO_INCREMENT, 94 | `plugin_tasklists_tasks_id` INT(11) NOT NULL, 95 | `users_id` INT(11) NOT NULL DEFAULT '0', 96 | `language` VARCHAR(5) COLLATE utf8_unicode_ci DEFAULT NULL, 97 | `comment` TEXT COLLATE utf8_unicode_ci NOT NULL, 98 | `parent_comment_id` INT(11) DEFAULT NULL, 99 | `date_creation` DATETIME DEFAULT NULL, 100 | `date_mod` DATETIME DEFAULT NULL, 101 | PRIMARY KEY (`id`) 102 | ) 103 | ENGINE = InnoDB 104 | DEFAULT CHARSET = utf8 105 | COLLATE = utf8_unicode_ci; -------------------------------------------------------------------------------- /sql/update-1.5.1.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE `glpi_plugin_tasklists_items_kanbans` 2 | ( 3 | `id` INT(11) NOT NULL AUTO_INCREMENT, -- id 4 | `itemtype` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, 5 | `items_id` int(11) DEFAULT NULL, 6 | `users_id` int(11) NOT NULL, 7 | `plugin_tasklists_taskstates_id` int(11) NOT NULL, 8 | `state` int(1) NOT NULL DEFAULT 0, 9 | `date_mod` timestamp NULL DEFAULT NULL, 10 | `date_creation` timestamp NULL DEFAULT NULL, 11 | PRIMARY KEY (`id`), 12 | UNIQUE KEY `unicity` (`itemtype`, `items_id`, `users_id`, `plugin_tasklists_taskstates_id`) 13 | ) ENGINE = InnoDB 14 | DEFAULT CHARSET = utf8 15 | COLLATE = utf8_unicode_ci; 16 | 17 | ALTER TABLE `glpi_plugin_tasklists_preferences` 18 | ADD `automatic_refresh` TINYINT(1) NOT NULL DEFAULT '0'; 19 | ALTER TABLE `glpi_plugin_tasklists_preferences` 20 | ADD `automatic_refresh_delay` INT(11) NOT NULL DEFAULT '10'; 21 | 22 | -------------------------------------------------------------------------------- /sql/update-1.6.0.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE `glpi_plugin_tasklists_preferences` 2 | ADD `automatic_refresh` TINYINT(1) NOT NULL DEFAULT '0'; 3 | ALTER TABLE `glpi_plugin_tasklists_preferences` 4 | ADD `automatic_refresh_delay` INT(11) NOT NULL DEFAULT '10'; 5 | 6 | -------------------------------------------------------------------------------- /sql/update-1.6.1.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE `glpi_plugin_tasklists_tasks` 2 | ADD `users_id_requester` int(11) NOT NULL DEFAULT '0'; 3 | 4 | 5 | -------------------------------------------------------------------------------- /sql/update-2.0.0.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE `glpi_plugin_tasklists_tasks` 2 | CHANGE `comment` `content` text collate utf8mb4_unicode_ci; 3 | 4 | 5 | -------------------------------------------------------------------------------- /tasklists.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InfotelGLPI/tasklists/db68fda7243a85b5ce72dad27eb2c6cf2ea307c0/tasklists.png -------------------------------------------------------------------------------- /tasklists.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Tasks List (Kanban) 4 | tasklists 5 | stable 6 | https://raw.githubusercontent.com/InfotelGLPI/tasklists/master/tasklists.png 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | - Ajout de commentaires sur les tâches.
    - Lien avec les tickets.
    - Utilisation de gabarits
    - Gestion des tâches archivées.
    - Ajout de notes possibles sur les tâches.
    - Peut être utilisé avec le collecteur de mail pour créer des tâches.
    - Peut être utilisé avec le plugin mydashboard d'Infotel.]]>
    15 | - Can add comments on tasks.
    - Link with tickets.
    - Can use templates.
    - Manage archived tasks.
    - Can add notes on tasks.
    - Can be used with mail collector to create tasks.
    - Can be used with mydashboard plugin of Infotel]]>
    16 | - K úkolům je možné přidávat poznámky.
    - Je možné použít s přivaděčem e-mailů a vytvářet úkoly skrze něj.
    - Je možné použít se zásuvným modulem Moje nástěnka]]>
    17 |
    18 |
    19 | https://github.com/InfotelGLPI/tasklists 20 | https://github.com/InfotelGLPI/tasklists/releases 21 | https://github.com/InfotelGLPI/tasklists/issues 22 | https://github.com/InfotelGLPI/tasklists/wiki 23 | 24 | Xavier Caillaud 25 | Infotel 26 | 27 | 28 | 29 | 2.0.4 30 | ~10.0 31 | https://github.com/InfotelGLPI/tasklists/releases/download/2.0.4/glpi-tasklists-2.0.4.tar.bz2 32 | 33 | 34 | 2.0.3 35 | ~10.0 36 | https://github.com/InfotelGLPI/tasklists/releases/download/2.0.3/glpi-tasklists-2.0.3.tar.bz2 37 | 38 | 39 | 2.0.2 40 | ~10.0 41 | https://github.com/InfotelGLPI/tasklists/releases/download/2.0.2/glpi-tasklists-2.0.2.tar.bz2 42 | 43 | 44 | 2.0.1 45 | ~10.0 46 | https://github.com/InfotelGLPI/tasklists/releases/download/2.0.1/glpi-tasklists-2.0.1.tar.bz2 47 | 48 | 49 | 2.0.0 50 | ~10.0 51 | https://github.com/InfotelGLPI/tasklists/releases/download/2.0.0/glpi-tasklists-2.0.0.tar.bz2 52 | 53 | 54 | 2.0.0-rc2 55 | ~10.0 56 | https://github.com/InfotelGLPI/tasklists/releases/download/2.0.0-rc2/glpi-tasklists-2.0.0-rc2.tar.bz2 57 | 58 | 59 | 2.0.0-rc1 60 | ~10.0 61 | https://github.com/InfotelGLPI/tasklists/releases/download/2.0.0-rc1/glpi-tasklists-2.0.0-rc1.tar.bz2 62 | 63 | 64 | 1.6.2 65 | 9.5 66 | 67 | 68 | 1.6.1 69 | ~9.5 70 | 71 | 72 | 1.6.0 73 | ~9.5 74 | 75 | 76 | 77 | 1.5.1 78 | 9.4 79 | 80 | 81 | 1.5.0 82 | 9.4 83 | 84 | 85 | 1.4.2 86 | 9.3 87 | 88 | 89 | 1.4.1 90 | 9.3 91 | 92 | 93 | 1.4.0 94 | 9.3 95 | 96 | 97 | 1.3.1 98 | 9.3 99 | 100 | 101 | 1.3.0 102 | 9.3 103 | 104 | 105 | 1.2.0 106 | 9.2 107 | 108 | 109 | 1.1.0 110 | 9.1 111 | 112 | 113 | 1.0.0 114 | 0.90 115 | 116 | 117 | 118 | fr_FR 119 | en_GB 120 | cs_CZ 121 | fi_FI 122 | 123 | 124 | 125 | 126 | Taches 127 | Kanban 128 | 129 | 130 | Tasks 131 | Kanban 132 | 133 | 134 | Úkoly 135 | 136 | 137 | 138 | https://raw.githubusercontent.com/InfotelGLPI/tasklists/master/screenshots/kanban.png 139 | https://raw.githubusercontent.com/InfotelGLPI/tasklists/master/screenshots/addTask.png 140 | https://raw.githubusercontent.com/InfotelGLPI/tasklists/master/screenshots/Tasks%20list%20from%20Dashboard.png 141 | 142 |
    143 | -------------------------------------------------------------------------------- /templates/kanban.html.twig: -------------------------------------------------------------------------------- 1 | {# 2 | # --------------------------------------------------------------------- 3 | # GLPI - Gestionnaire Libre de Parc Informatique 4 | # Copyright (C) 2015-2022 Teclib' and contributors. 5 | # 6 | # http://glpi-project.org 7 | # 8 | # based on GLPI - Gestionnaire Libre de Parc Informatique 9 | # Copyright (C) 2003-2014 by the INDEPNET Development Team. 10 | # 11 | # --------------------------------------------------------------------- 12 | # 13 | # LICENSE 14 | # 15 | # This file is part of GLPI. 16 | # 17 | # GLPI is free software; you can redistribute it and/or modify 18 | # it under the terms of the GNU General Public License as published by 19 | # the Free Software Foundation; either version 2 of the License, or 20 | # (at your option) any later version. 21 | # 22 | # GLPI is distributed in the hope that it will be useful, 23 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 24 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 25 | # GNU General Public License for more details. 26 | # 27 | # You should have received a copy of the GNU General Public License 28 | # along with GLPI. If not, see . 29 | # --------------------------------------------------------------------- 30 | #} 31 | 32 | {% import 'components/form/fields_macros.html.twig' as fields %} 33 | {% import 'components/form/modals_macros.html.twig' as modals %} 34 | 35 | {% if rights is not defined %} 36 | {% set rights = { 37 | 'create_item': false, 38 | 'delete_item': false, 39 | 'create_column': false, 40 | 'modify_view': false, 41 | 'order_card': false, 42 | 'create_card_limited_columns': [0], 43 | } %} 44 | {% endif %} 45 | 46 |
    47 | {{ modals.modal('', '', { 48 | 'id': 'kanban-modal' 49 | }) }} 50 | 51 | {% for supported_itemtype, info in supported_itemtypes %} 52 | 58 | {% endfor %} 59 | 60 | 78 | -------------------------------------------------------------------------------- /tools/extract_template.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Only strings with domain specified are extracted (use Xt args of keyword param to set number of args needed) 4 | 5 | xgettext *.php */*.php --copyright-holder='Tasklists Development Team' --package-name='GLPI - Tasklists plugin' -o locales/glpi.pot -L PHP --add-comments=TRANS --from-code=UTF-8 --force-po \ 6 | --keyword=_n:1,2,4t --keyword=__s:1,2t --keyword=__:1,2t --keyword=_e:1,2t --keyword=_x:1c,2,3t \ 7 | --keyword=_ex:1c,2,3t --keyword=_nx:1c,2,3,5t --keyword=_sx:1c,2,3t 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /tools/update_mo.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | #!/usr/bin/perl -w 3 | 4 | if (@ARGV!=0){ 5 | print "USAGE update_mo.pl\n\n"; 6 | 7 | exit(); 8 | } 9 | 10 | 11 | opendir(DIRHANDLE,'locales')||die "ERROR: can not read current directory\n"; 12 | foreach (readdir(DIRHANDLE)){ 13 | if ($_ ne '..' && $_ ne '.'){ 14 | 15 | if(!(-l "$dir/$_")){ 16 | if (index($_,".po",0)==length($_)-3) { 17 | $lang=$_; 18 | $lang=~s/\.po//; 19 | 20 | `msgfmt locales/$_ -o locales/$lang.mo`; 21 | } 22 | } 23 | 24 | } 25 | } 26 | closedir DIRHANDLE; 27 | 28 | # 29 | # 30 | -------------------------------------------------------------------------------- /tools/update_po.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | #!/usr/bin/perl -w 3 | 4 | if (@ARGV!=2){ 5 | print "USAGE update_po.pl transifex_login transifex_password\n\n"; 6 | 7 | exit(); 8 | } 9 | $user = $ARGV[0]; 10 | $password = $ARGV[1]; 11 | 12 | opendir(DIRHANDLE,'locales')||die "ERROR: can not read current directory\n"; 13 | foreach (readdir(DIRHANDLE)){ 14 | if ($_ ne '..' && $_ ne '.'){ 15 | 16 | if(!(-l "$dir/$_")){ 17 | if (index($_,".po",0)==length($_)-3) { 18 | $lang=$_; 19 | $lang=~s/\.po//; 20 | 21 | `wget --user=$user --password=$password --output-document=locales/$_ http://www.transifex.com/api/2/project/GLPI_tasklists/resource/glpi/translation/$lang/?file=$_`; 22 | } 23 | } 24 | 25 | } 26 | } 27 | closedir DIRHANDLE; 28 | 29 | # 30 | # 31 | --------------------------------------------------------------------------------