redmine_apijs 6.9.2 → 6.9.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README +3 -3
- data/app/controllers/apijs_controller.rb +2 -2
- data/app/views/application/_browser.html.erb +2 -2
- data/app/views/attachments/_links.html.erb +2 -2
- data/app/views/settings/_apijs.html.erb +2 -2
- data/assets/javascripts/apijs-redmine.js +2 -2
- data/assets/javascripts/apijs-redmine.min.js +2 -2
- data/assets/javascripts/apijs-redmine.min.js.map +1 -1
- data/assets/javascripts/apijs.min.js +3 -3
- data/assets/javascripts/apijs.min.js.map +1 -1
- data/assets/stylesheets/apijs-print.min.css +2 -2
- data/assets/stylesheets/apijs-print.min.css.map +1 -1
- data/assets/stylesheets/apijs-redmine-rtl.min.css +2 -2
- data/assets/stylesheets/apijs-redmine-rtl.min.css.map +1 -1
- data/assets/stylesheets/apijs-redmine.css +2 -2
- data/assets/stylesheets/apijs-redmine.min.css +2 -2
- data/assets/stylesheets/apijs-redmine.min.css.map +1 -1
- data/assets/stylesheets/apijs-screen-rtl.min.css +2 -2
- data/assets/stylesheets/apijs-screen-rtl.min.css.map +1 -1
- data/assets/stylesheets/apijs-screen.min.css +2 -2
- data/assets/stylesheets/apijs-screen.min.css.map +1 -1
- data/config/routes.rb +2 -2
- data/init.rb +4 -4
- data/lib/apijs_attachment.rb +2 -2
- data/lib/apijs_files.rb +2 -2
- data/lib/image.py +3 -3
- data/lib/redmine_apijs.rb +2 -2
- data/redmine_apijs.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b44451ffa117a58b08512f54b516c40210f0c19ac383284f1c70375e9b66e971
|
4
|
+
data.tar.gz: 32170513ce63450c398a30bd086a6e6c85c3a173b9d9af52f2737d1646b6a32e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 118b3d45dfd23a3f04f5d30134dcc86b4b15991fa4e3630f17b3753dcb9afee8093febbf015737afa6dfff8f6a83b70aa4205dd15b458d4bad19206dfc7a4ef6
|
7
|
+
data.tar.gz: b06ed1b0f9ff542b191d171f71343b104e96b650caa9c3548d2dc27c128d339f577640bfd8c20048b8b06fe08dc61f2f11a4673a0513c9bccc8745497eb1afa8
|
data/README
CHANGED
@@ -3,7 +3,7 @@ Tracker : https://github.com/luigifab/redmine-apijs
|
|
3
3
|
Rubygems : https://rubygems.org/gems/redmine_apijs
|
4
4
|
Plugin : Luigifab/Apijs
|
5
5
|
License : GNU GPL 2+ (https://opensource.org/licenses/gpl-2.0)
|
6
|
-
Copyright : 2008-
|
6
|
+
Copyright : 2008-2023 Fabrice Creuzot (luigifab) <code~luigifab~fr>
|
7
7
|
|
8
8
|
|
9
9
|
|
@@ -34,7 +34,7 @@ Translations in de-DE (deutsch/Deutschland) by:
|
|
34
34
|
- Philip Junietz <info~label-park~com> 2016
|
35
35
|
- Pamela Steinborn <st.pamela~laposte~net> 2016
|
36
36
|
Translations in en-US (english/United-States) by:
|
37
|
-
- Fabrice Creuzot (luigifab) <code~luigifab~fr> 2008-
|
37
|
+
- Fabrice Creuzot (luigifab) <code~luigifab~fr> 2008-2023
|
38
38
|
- Brian Legrand <mrbibi1987~gmail~com> 2012
|
39
39
|
- Pascale Scellier <scellier.pascale~orange~fr> 2016
|
40
40
|
Translations in es-ES (español/España) by:
|
@@ -44,7 +44,7 @@ Translations in es-ES (español/España) by:
|
|
44
44
|
- Hélène Vergine <vergineh~gmail~com> 2017, 2020
|
45
45
|
- Guillaume Genetet <genetet.incorporated~gmail~com> 2018 https://fr.tipeee.com/william-broome
|
46
46
|
Translations in fr-FR (français/France) by:
|
47
|
-
- Fabrice Creuzot (luigifab) <code~luigifab~fr> 2008-
|
47
|
+
- Fabrice Creuzot (luigifab) <code~luigifab~fr> 2008-2023
|
48
48
|
- Pascale Scellier <scellier.pascale~orange~fr> 2016
|
49
49
|
Translations in it-IT (italiano/Italia) by:
|
50
50
|
- Maria Grasso <mgrasso~outlook~fr> 2016-2017
|
@@ -2,8 +2,8 @@
|
|
2
2
|
# Created J/12/12/2013
|
3
3
|
# Updated M/05/07/2022
|
4
4
|
#
|
5
|
-
# Copyright 2008-
|
6
|
-
# https://
|
5
|
+
# Copyright 2008-2023 | Fabrice Creuzot (luigifab) <code~luigifab~fr>
|
6
|
+
# https://github.com/luigifab/redmine-apijs
|
7
7
|
#
|
8
8
|
# This program is free software, you can redistribute it or modify
|
9
9
|
# it under the terms of the GNU General Public License (GPL) as published
|
@@ -2,8 +2,8 @@
|
|
2
2
|
# Created S/17/08/2019
|
3
3
|
# Updated L/25/05/2020
|
4
4
|
#
|
5
|
-
# Copyright 2008-
|
6
|
-
# https://
|
5
|
+
# Copyright 2008-2023 | Fabrice Creuzot (luigifab) <code~luigifab~fr>
|
6
|
+
# https://github.com/luigifab/redmine-apijs
|
7
7
|
#
|
8
8
|
# This program is free software, you can redistribute it or modify
|
9
9
|
# it under the terms of the GNU General Public License (GPL) as published
|
@@ -2,8 +2,8 @@
|
|
2
2
|
# Created L/21/05/2012
|
3
3
|
# Updated J/26/05/2022
|
4
4
|
#
|
5
|
-
# Copyright 2008-
|
6
|
-
# https://
|
5
|
+
# Copyright 2008-2023 | Fabrice Creuzot (luigifab) <code~luigifab~fr>
|
6
|
+
# https://github.com/luigifab/redmine-apijs
|
7
7
|
#
|
8
8
|
# This program is free software, you can redistribute it or modify
|
9
9
|
# it under the terms of the GNU General Public License (GPL) as published
|
@@ -2,8 +2,8 @@
|
|
2
2
|
# Created J/12/12/2013
|
3
3
|
# Updated V/05/08/2022
|
4
4
|
#
|
5
|
-
# Copyright 2008-
|
6
|
-
# https://
|
5
|
+
# Copyright 2008-2023 | Fabrice Creuzot (luigifab) <code~luigifab~fr>
|
6
|
+
# https://github.com/luigifab/redmine-apijs
|
7
7
|
#
|
8
8
|
# This program is free software, you can redistribute it or modify
|
9
9
|
# it under the terms of the GNU General Public License (GPL) as published
|
@@ -2,8 +2,8 @@
|
|
2
2
|
* Created D/15/12/2013
|
3
3
|
* Updated J/11/08/2022
|
4
4
|
*
|
5
|
-
* Copyright 2008-
|
6
|
-
* https://
|
5
|
+
* Copyright 2008-2023 | Fabrice Creuzot (luigifab) <code~luigifab~fr>
|
6
|
+
* https://github.com/luigifab/redmine-apijs
|
7
7
|
*
|
8
8
|
* This program is free software, you can redistribute it or modify
|
9
9
|
* it under the terms of the GNU General Public License (GPL) as published
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*!
|
2
|
-
* Copyright 2008-
|
3
|
-
* https://
|
2
|
+
* Copyright 2008-2023 | Fabrice Creuzot (luigifab) <code~luigifab~fr>
|
3
|
+
* https://github.com/luigifab/redmine-apijs
|
4
4
|
* This program is free software, you can redistribute it or modify
|
5
5
|
* it under the terms of the GNU General Public License (GPL).
|
6
6
|
*/
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["apijs-redmine.js"],"sourcesContent":["/**\n * Created D/15/12/2013\n * Updated J/11/08/2022\n *\n * Copyright 2008-2022 | Fabrice Creuzot (luigifab) <code~luigifab~fr>\n * https://www.luigifab.fr/redmine/apijs\n *\n * This program is free software, you can redistribute it or modify\n * it under the terms of the GNU General Public License (GPL) as published\n * by the free software foundation, either version 2 of the license, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but without any warranty, without even the implied warranty of\n * merchantability or fitness for a particular purpose. See the\n * GNU General Public License (GPL) for more details.\n */\n\nvar apijsRedmine = new (function () {\n\n\t\"use strict\";\n\n\tthis.init = function () {\n\n\t\tvar d = apijs.i18n.data;\n\t\tif (!d.frca) d.frca = {};\n\t\t// https://docs.google.com/spreadsheets/d/1UUpKZ-YAAlcfvGHYwt6aUM9io390j0-fIL0vMRh1pW0/edit?usp=sharing\n\t\t// auto start\n\t\td.cs[250] = \"Smazat soubor\";\n\t\td.cs[251] = \"Opravdu chcete tento soubor smazat?[br]Pozor, tuto operaci nelze vrátit zpět.\";\n\t\td.cs[252] = \"Chyba\";\n\t\td.de[250] = \"Eine Datei löschen\";\n\t\td.de[251] = \"Sind Sie sicher, dass Sie diese Datei löschen möchten?[br]Achtung, diese Aktion ist unrückgängig.\";\n\t\td.de[252] = \"Fehler\";\n\t\td.de[253] = \"Sie verfügen nicht über die notwendigen Rechte um diese Operation durchzuführen, bitte [a §]aktualisieren Sie die Seite[/a].\";\n\t\td.de[254] = \"Es tut uns leid, diese Datei existiert nicht mehr, bitte [a §]aktualisieren Sie die Seite[/a].\";\n\t\td.de[255] = \"Eine Beschreibung bearbeiten\";\n\t\td.de[256] = \"Bitte geben Sie weiter unten die neue Beschreibung für diese Datei an. Um die Beschreibung zu löschen lassen Sie das Feld leer.\";\n\t\td.el[252] = \"Σφάλμα\";\n\t\td.en[250] = \"Remove file\";\n\t\td.en[251] = \"Are you sure you want to remove this file?[br]Be careful, you can't cancel this operation.\";\n\t\td.en[252] = \"Error\";\n\t\td.en[253] = \"You are not authorized to perform this operation, please [a §]refresh the page[/a].\";\n\t\td.en[254] = \"Sorry, the file no longer exists, please [a §]refresh the page[/a].\";\n\t\td.en[255] = \"Edit description\";\n\t\td.en[256] = \"Enter below the new description for the file. To remove the description, leave the field empty.\";\n\t\td.en[257] = \"Rename file\";\n\t\td.en[258] = \"Enter below the new name for the file.\";\n\t\td.en[259] = \"Clear cache\";\n\t\td.en[260] = \"Are you sure you want to clear the cache?[br]Be careful, you can't cancel this operation.\";\n\t\td.es[250] = \"Borrar un archivo\";\n\t\td.es[251] = \"¿Está usted seguro(a) de que desea eliminar este archivo?[br]Atención, pues no podrá cancelar esta operación.\";\n\t\td.es[253] = \"No está autorizado-a para llevar a cabo esta operación, por favor [a §]actualice la página[/a].\";\n\t\td.es[254] = \"Disculpe, pero el archivo ya no existe, por favor [a §]actualice la página[/a].\";\n\t\td.es[255] = \"Editar una descripción\";\n\t\td.es[256] = \"Introduzca a continuación la nueva descripción para el archivo. Para eliminar la descripción, deje el campo en blanco.\";\n\t\td.es[259] = \"Vaciar la caché\";\n\t\td.es[260] = \"¿Está usted seguro(a) de querer vaciar la caché?[br]Cuidado, esta operación no puede ser cancelada.\";\n\t\td.fr[250] = \"Supprimer le fichier\";\n\t\td.fr[251] = \"Êtes-vous sûr(e) de vouloir supprimer ce fichier ?[br]Attention, cette opération n'est pas annulable.\";\n\t\td.fr[252] = \"Erreur\";\n\t\td.fr[253] = \"Vous n'êtes pas autorisé(e) à effectuer cette opération, veuillez [a §]actualiser la page[/a].\";\n\t\td.fr[254] = \"Désolé, le fichier n'existe plus, veuillez [a §]actualiser la page[/a].\";\n\t\td.fr[255] = \"Modifier la description\";\n\t\td.fr[256] = \"Saisissez ci-dessous la nouvelle description pour ce fichier. Pour supprimer la description, laissez le champ vide.\";\n\t\td.fr[257] = \"Renommer le fichier\";\n\t\td.fr[258] = \"Saisissez ci-dessous le nouveau nom pour ce fichier.\";\n\t\td.fr[259] = \"Vider le cache\";\n\t\td.fr[260] = \"Êtes-vous certain(e) de vouloir vider le cache ?[br]Attention, cette opération n'est pas annulable.\";\n\t\td.hu[252] = \"Hiba\";\n\t\td.it[250] = \"Cancella i file\";\n\t\td.it[251] = \"Sei sicura di voler eliminare il file?[br]Attenzione, questa operazione non può essere annullata.\";\n\t\td.it[252] = \"Errore\";\n\t\td.it[253] = \"Non siete autorizzati a eseguire questa operazione, vi preghiamo di [a §]ricaricare la pagina[/a].\";\n\t\td.it[254] = \"Spiacenti, il file non esiste più, vi preghiamo di [a §]ricaricare la pagina[/a].\";\n\t\td.it[255] = \"Modificare una descrizione\";\n\t\td.it[256] = \"Inserire qui sotto la nuova descrizione del file. Per cancellare la descrizione, lasciate lo spazio vuoto.\";\n\t\td.ja[250] = \"ファイルを削除\";\n\t\td.ja[252] = \"エラー\";\n\t\td.nl[252] = \"Fout\";\n\t\td.pl[250] = \"Usuń plik\";\n\t\td.pl[251] = \"Jesteś pewny, że chcesz usunąć ten plik?[br]Uwaga! Nie ma odwrotu od tej operacji.\";\n\t\td.pl[252] = \"Błąd\";\n\t\td.pt[250] = \"Suprimir um ficheiro\";\n\t\td.pt[251] = \"Tem certeza de que quer suprimir este ficheiro?[br]Cuidado, não pode cancelar esta operação.\";\n\t\td.pt[252] = \"Erro\";\n\t\td.pt[253] = \"Não é autorizado(a) para efetuar esta operação, por favor [a §]atualize a página[/a].\";\n\t\td.pt[254] = \"Lamento, o ficheiro já não existe, por favor [a §]atualize a página[/a].\";\n\t\td.pt[255] = \"Modificar uma descrição\";\n\t\td.pt[256] = \"Digite abaixo a nova descrição para este ficheiro. Para suprimir a descrição, deixe o campo vazio.\";\n\t\td.ro[252] = \"Eroare\";\n\t\td.ru[250] = \"Удалить файл\";\n\t\td.ru[251] = \"Вы уверены, что хотите удалить этот файл?[br]Осторожно, вы не сможете отменить эту операцию.\";\n\t\td.ru[252] = \"Ошибка\";\n\t\td.ru[253] = \"Вы не авторизованы для выполнения этой операции, пожалуйста [a §]обновите страницу[/a].\";\n\t\td.ru[254] = \"Извините, но файл не существует, пожалуйста [a §]обновите страницу[/a].\";\n\t\td.ru[255] = \"Редактировать описание\";\n\t\td.ru[256] = \"Ниже введите новое описание файла. Оставьте поле пустым, чтобы удалить описание.\";\n\t\td.sk[252] = \"Chyba\";\n\t\td.tr[252] = \"Hata\";\n\t\td.tr[259] = \"Önbelleği temizle\";\n\t\td.uk[252] = \"Помилка\";\n\t\td.zh[252] = \"错误信息\";\n\t\t// auto end\n\t};\n\n\tthis.error = function (data) {\n\n\t\tif ((typeof data == 'string') && (data.indexOf('<!DOCTYPE') < 0)) {\n\t\t\tapijs.dialog.dialogInformation(apijs.i18n.translate(252), data, 'error');\n\t\t}\n\t\telse {\n\t\t\tapijs.dialog.remove('lock'); // obligatoire sinon demande de confirmation de quitter la page\n\t\t\tself.location.reload();\n\t\t}\n\t};\n\n\tthis.editAttachment = function (elem, id, action, token) {\n\n\t\tvar desc, text, title = apijs.i18n.translate(255);\n\n\t\tdesc = elem.parentNode.parentNode.querySelector('.description').textContent.trim();\n\t\ttext = '[p][label for=\"apijsinput\"]' + apijs.i18n.translate(256) + '[/label][/p]' +\n\t\t\t\t'[input type=\"text\" name=\"description\" value=\"' + desc + '\" spellcheck=\"true\" id=\"apijsinput\"]';\n\n\t\tapijs.dialog.dialogFormOptions(title, text, action, apijsRedmine.actionEditAttachment, [id, action, token], 'editattach');\n\t\tapijs.dialog.t1.querySelector('input').select();\n\t};\n\n\tthis.actionEditAttachment = function (action, args) {\n\n\t\t// vérification de la nouvelle description\n\t\tif (typeof action == 'boolean') {\n\t\t\treturn true;\n\t\t}\n\t\t// sauvegarde de la nouvelle description\n\t\telse if (typeof action == 'string') {\n\n\t\t\t// args = [id, action, token]\n\t\t\tvar xhr = new XMLHttpRequest();\n\t\t\txhr.open('POST', args[1] + '?id=' + args[0] + '&isAjax=true', true);\n\t\t\txhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n\t\t\txhr.setRequestHeader('X-CSRF-Token', args[2]);\n\n\t\t\txhr.onreadystatechange = function () {\n\n\t\t\t\tif (xhr.readyState === 4) {\n\t\t\t\t\tif ([0, 200].has(xhr.status)) {\n\t\t\t\t\t\tif (xhr.responseText.indexOf('attachmentId') === 0) {\n\n\t\t\t\t\t\t\t// extrait l'id et la description du fichier enregistré\n\t\t\t\t\t\t\tvar elem, id, text;\n\t\t\t\t\t\t\tid = xhr.responseText.slice(0, xhr.responseText.indexOf(':'));\n\t\t\t\t\t\t\ttext = xhr.responseText.slice(xhr.responseText.indexOf(':') + 1);\n\n\t\t\t\t\t\t\t// description\n\t\t\t\t\t\t\telem = document.getElementById(id);\n\t\t\t\t\t\t\telem.querySelector('.description').textContent = text;\n\n\t\t\t\t\t\t\t// input type hidden\n\t\t\t\t\t\t\telem = elem.querySelector('input');\n\t\t\t\t\t\t\tif (elem)\n\t\t\t\t\t\t\t\telem.value = elem.value.slice(0, elem.value.lastIndexOf('|') + 1) + text;\n\n\t\t\t\t\t\t\tapijs.dialog.actionClose();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tapijsRedmine.error(xhr.responseText);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tapijsRedmine.error(xhr.status);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\txhr.send('desc=' + encodeURIComponent(document.getElementById('apijsinput').value));\n\t\t}\n\t};\n\n\tthis.renameAttachment = function (elem, id, action, token) {\n\n\t\tvar name, text, title = apijs.i18n.translate(257);\n\n\t\tname = elem.parentNode.parentNode.querySelector('.filename').textContent.trim();\n\t\ttext = '[p][label for=\"apijsinput\"]' + apijs.i18n.translate(258) + '[/label][/p]' +\n\t\t\t\t'[input type=\"text\" name=\"name\" value=\"' + name + '\" spellcheck=\"false\" id=\"apijsinput\"]';\n\n\t\tapijs.dialog.dialogFormOptions(title, text, action, apijsRedmine.actionRenameAttachment, [id, action, token], 'editattach');\n\t};\n\n\tthis.actionRenameAttachment = function (action, args) {\n\n\t\t// vérification du nouveau nom\n\t\tif (typeof action == 'boolean') {\n\t\t\treturn true;\n\t\t}\n\t\t// sauvegarde du nouveau nom\n\t\telse if (typeof action == 'string') {\n\n\t\t\t// args = [id, action, token]\n\t\t\tvar xhr = new XMLHttpRequest();\n\t\t\txhr.open('POST', args[1] + '?id=' + args[0] + '&isAjax=true', true);\n\t\t\txhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n\t\t\txhr.setRequestHeader('X-CSRF-Token', args[2]);\n\n\t\t\txhr.onreadystatechange = function () {\n\n\t\t\t\tif (xhr.readyState === 4) {\n\t\t\t\t\tif ([0, 200].has(xhr.status)) {\n\t\t\t\t\t\tif (xhr.responseText.indexOf('attachmentId') === 0) {\n\n\t\t\t\t\t\t\t// extrait l'id et le nom du fichier enregistré\n\t\t\t\t\t\t\tvar elem, id, name, subelem, text;\n\t\t\t\t\t\t\tid = xhr.responseText.slice(0, xhr.responseText.indexOf(':'));\n\t\t\t\t\t\t\tname = xhr.responseText.slice(xhr.responseText.indexOf(':') + 1);\n\n\t\t\t\t\t\t\t// nom\n\t\t\t\t\t\t\telem = document.getElementById(id);\n\t\t\t\t\t\t\telem.querySelector('.filename').textContent = name;\n\n\t\t\t\t\t\t\t// URLs sur a/href et input/value et button.download/onclick et button.show/onclick\n\t\t\t\t\t\t\t// pas de maj de src et srcset sur img pour éviter un appel réseau inutile\n\t\t\t\t\t\t\tsubelem = elem.querySelector('input');\n\t\t\t\t\t\t\tif (subelem) {\n\t\t\t\t\t\t\t\ttext = subelem.getAttribute('value');\n\t\t\t\t\t\t\t\tsubelem.setAttribute('value', name + text.substring(text.indexOf('|')));\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsubelem = elem.querySelector('a');\n\t\t\t\t\t\t\tif (subelem) {\n\t\t\t\t\t\t\t\ttext = subelem.getAttribute('href');\n\t\t\t\t\t\t\t\tsubelem.setAttribute('href', text.substring(0, text.lastIndexOf('/') + 1) + name);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsubelem = elem.querySelector('button.download');\n\t\t\t\t\t\t\tif (subelem) {\n\t\t\t\t\t\t\t\ttext = subelem.getAttribute('onclick');\n\t\t\t\t\t\t\t\tsubelem.setAttribute('onclick', text.substring(0, text.lastIndexOf('/') + 1) + name + \"';\");\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsubelem = elem.querySelector('button.show');\n\t\t\t\t\t\t\tif (subelem) {\n\t\t\t\t\t\t\t\ttext = subelem.getAttribute('onclick');\n\t\t\t\t\t\t\t\tsubelem.setAttribute('onclick', text.substring(0, text.lastIndexOf('/') + 1) + name + \"';\");\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tapijs.dialog.actionClose();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tapijsRedmine.error(xhr.responseText);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tapijsRedmine.error(xhr.status);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\txhr.send('name=' + encodeURIComponent(document.getElementById('apijsinput').value));\n\t\t}\n\t};\n\n\tthis.removeAttachment = function (elem, id, action, token) {\n\t\tapijs.dialog.dialogConfirmation(apijs.i18n.translate(250), apijs.i18n.translate(251), apijsRedmine.actionRemoveAttachment, [id, action, token]);\n\t};\n\n\tthis.actionRemoveAttachment = function (args) {\n\n\t\t// args = [id, action, token]\n\t\tvar xhr = new XMLHttpRequest();\n\t\txhr.open('POST', args[1] + '?id=' + args[0] + '&isAjax=true', true);\n\t\txhr.setRequestHeader('X-CSRF-Token', args[2]);\n\n\t\txhr.onreadystatechange = function () {\n\n\t\t\tif (xhr.readyState === 4) {\n\t\t\t\tif ([0, 200].has(xhr.status)) {\n\t\t\t\t\tif (xhr.responseText.indexOf('attachmentId') === 0) {\n\n\t\t\t\t\t\t// supprime le fichier de la page grâce à son id\n\t\t\t\t\t\tvar attachment = document.getElementById(xhr.responseText), elems = attachment.parentNode, idx = 0;\n\t\t\t\t\t\tattachment.remove();\n\n\t\t\t\t\t\t// supprime la liste des fichiers\n\t\t\t\t\t\tif (elems.querySelectorAll('dl, li').length < 1) {\n\t\t\t\t\t\t\telems.remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// ou réattribue les ids du diaporama (pas de réinitialisation, on remet juste les ids en place)\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\telems.querySelectorAll('a[id][type]').forEach(function (elem) {\n\t\t\t\t\t\t\t\telem.setAttribute('id', elem.getAttribute('id').slice(0, elem.getAttribute('id').lastIndexOf('.') + 1) + idx++);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tapijs.dialog.actionClose();\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tapijsRedmine.error(xhr.responseText);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tapijsRedmine.error(xhr.status);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\txhr.send();\n\t};\n\n\tthis.clearCache = function (action) {\n\t\tapijs.dialog.dialogConfirmation(apijs.i18n.translate(259), apijs.i18n.translate(260), apijsRedmine.actionClearCache, action);\n\t};\n\n\tthis.actionClearCache = function (args) {\n\t\tapijs.dialog.remove('waiting', 'lock'); // obligatoire sinon demande de confirmation de quitter la page\n\t\tself.location.href = args;\n\t};\n\n})();\n\nif (typeof self.addEventListener == 'function')\n\tself.addEventListener('apijsload', apijsRedmine.init.bind(apijsRedmine));"],"names":["apijsRedmine","this","init","d","apijs","i18n","data","frca","cs","de","el","en","es","fr","hu","it","ja","nl","pl","pt","ro","ru","sk","tr","uk","zh","error","indexOf","dialog","dialogInformation","translate","remove","self","location","reload","editAttachment","elem","id","action","token","title","desc","parentNode","querySelector","textContent","trim","text","dialogFormOptions","actionEditAttachment","t1","select","args","xhr","XMLHttpRequest","open","setRequestHeader","onreadystatechange","readyState","has","status","responseText","slice","document","getElementById","value","lastIndexOf","actionClose","send","encodeURIComponent","renameAttachment","name","actionRenameAttachment","subelem","getAttribute","setAttribute","substring","removeAttachment","dialogConfirmation","actionRemoveAttachment","attachment","elems","idx","querySelectorAll","length","forEach","clearCache","actionClearCache","href","addEventListener","bind"],"mappings":"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"}
|
1
|
+
{"version":3,"sources":["apijs-redmine.js"],"sourcesContent":["/**\n * Created D/15/12/2013\n * Updated J/11/08/2022\n *\n * Copyright 2008-2023 | Fabrice Creuzot (luigifab) <code~luigifab~fr>\n * https://github.com/luigifab/redmine-apijs\n *\n * This program is free software, you can redistribute it or modify\n * it under the terms of the GNU General Public License (GPL) as published\n * by the free software foundation, either version 2 of the license, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but without any warranty, without even the implied warranty of\n * merchantability or fitness for a particular purpose. See the\n * GNU General Public License (GPL) for more details.\n */\n\nvar apijsRedmine = new (function () {\n\n\t\"use strict\";\n\n\tthis.init = function () {\n\n\t\tvar d = apijs.i18n.data;\n\t\tif (!d.frca) d.frca = {};\n\t\t// https://docs.google.com/spreadsheets/d/1UUpKZ-YAAlcfvGHYwt6aUM9io390j0-fIL0vMRh1pW0/edit?usp=sharing\n\t\t// auto start\n\t\td.cs[250] = \"Smazat soubor\";\n\t\td.cs[251] = \"Opravdu chcete tento soubor smazat?[br]Pozor, tuto operaci nelze vrátit zpět.\";\n\t\td.cs[252] = \"Chyba\";\n\t\td.de[250] = \"Eine Datei löschen\";\n\t\td.de[251] = \"Sind Sie sicher, dass Sie diese Datei löschen möchten?[br]Achtung, diese Aktion ist unrückgängig.\";\n\t\td.de[252] = \"Fehler\";\n\t\td.de[253] = \"Sie verfügen nicht über die notwendigen Rechte um diese Operation durchzuführen, bitte [a §]aktualisieren Sie die Seite[/a].\";\n\t\td.de[254] = \"Es tut uns leid, diese Datei existiert nicht mehr, bitte [a §]aktualisieren Sie die Seite[/a].\";\n\t\td.de[255] = \"Eine Beschreibung bearbeiten\";\n\t\td.de[256] = \"Bitte geben Sie weiter unten die neue Beschreibung für diese Datei an. Um die Beschreibung zu löschen lassen Sie das Feld leer.\";\n\t\td.el[252] = \"Σφάλμα\";\n\t\td.en[250] = \"Remove file\";\n\t\td.en[251] = \"Are you sure you want to remove this file?[br]Be careful, you can't cancel this operation.\";\n\t\td.en[252] = \"Error\";\n\t\td.en[253] = \"You are not authorized to perform this operation, please [a §]refresh the page[/a].\";\n\t\td.en[254] = \"Sorry, the file no longer exists, please [a §]refresh the page[/a].\";\n\t\td.en[255] = \"Edit description\";\n\t\td.en[256] = \"Enter below the new description for the file. To remove the description, leave the field empty.\";\n\t\td.en[257] = \"Rename file\";\n\t\td.en[258] = \"Enter below the new name for the file.\";\n\t\td.en[259] = \"Clear cache\";\n\t\td.en[260] = \"Are you sure you want to clear the cache?[br]Be careful, you can't cancel this operation.\";\n\t\td.es[250] = \"Borrar un archivo\";\n\t\td.es[251] = \"¿Está usted seguro(a) de que desea eliminar este archivo?[br]Atención, pues no podrá cancelar esta operación.\";\n\t\td.es[253] = \"No está autorizado-a para llevar a cabo esta operación, por favor [a §]actualice la página[/a].\";\n\t\td.es[254] = \"Disculpe, pero el archivo ya no existe, por favor [a §]actualice la página[/a].\";\n\t\td.es[255] = \"Editar una descripción\";\n\t\td.es[256] = \"Introduzca a continuación la nueva descripción para el archivo. Para eliminar la descripción, deje el campo en blanco.\";\n\t\td.es[259] = \"Vaciar la caché\";\n\t\td.es[260] = \"¿Está usted seguro(a) de querer vaciar la caché?[br]Cuidado, esta operación no puede ser cancelada.\";\n\t\td.fr[250] = \"Supprimer le fichier\";\n\t\td.fr[251] = \"Êtes-vous sûr(e) de vouloir supprimer ce fichier ?[br]Attention, cette opération n'est pas annulable.\";\n\t\td.fr[252] = \"Erreur\";\n\t\td.fr[253] = \"Vous n'êtes pas autorisé(e) à effectuer cette opération, veuillez [a §]actualiser la page[/a].\";\n\t\td.fr[254] = \"Désolé, le fichier n'existe plus, veuillez [a §]actualiser la page[/a].\";\n\t\td.fr[255] = \"Modifier la description\";\n\t\td.fr[256] = \"Saisissez ci-dessous la nouvelle description pour ce fichier. Pour supprimer la description, laissez le champ vide.\";\n\t\td.fr[257] = \"Renommer le fichier\";\n\t\td.fr[258] = \"Saisissez ci-dessous le nouveau nom pour ce fichier.\";\n\t\td.fr[259] = \"Vider le cache\";\n\t\td.fr[260] = \"Êtes-vous certain(e) de vouloir vider le cache ?[br]Attention, cette opération n'est pas annulable.\";\n\t\td.hu[252] = \"Hiba\";\n\t\td.it[250] = \"Cancella i file\";\n\t\td.it[251] = \"Sei sicura di voler eliminare il file?[br]Attenzione, questa operazione non può essere annullata.\";\n\t\td.it[252] = \"Errore\";\n\t\td.it[253] = \"Non siete autorizzati a eseguire questa operazione, vi preghiamo di [a §]ricaricare la pagina[/a].\";\n\t\td.it[254] = \"Spiacenti, il file non esiste più, vi preghiamo di [a §]ricaricare la pagina[/a].\";\n\t\td.it[255] = \"Modificare una descrizione\";\n\t\td.it[256] = \"Inserire qui sotto la nuova descrizione del file. Per cancellare la descrizione, lasciate lo spazio vuoto.\";\n\t\td.ja[250] = \"ファイルを削除\";\n\t\td.ja[252] = \"エラー\";\n\t\td.nl[252] = \"Fout\";\n\t\td.pl[250] = \"Usuń plik\";\n\t\td.pl[251] = \"Jesteś pewny, że chcesz usunąć ten plik?[br]Uwaga! Nie ma odwrotu od tej operacji.\";\n\t\td.pl[252] = \"Błąd\";\n\t\td.pt[250] = \"Suprimir um ficheiro\";\n\t\td.pt[251] = \"Tem certeza de que quer suprimir este ficheiro?[br]Cuidado, não pode cancelar esta operação.\";\n\t\td.pt[252] = \"Erro\";\n\t\td.pt[253] = \"Não é autorizado(a) para efetuar esta operação, por favor [a §]atualize a página[/a].\";\n\t\td.pt[254] = \"Lamento, o ficheiro já não existe, por favor [a §]atualize a página[/a].\";\n\t\td.pt[255] = \"Modificar uma descrição\";\n\t\td.pt[256] = \"Digite abaixo a nova descrição para este ficheiro. Para suprimir a descrição, deixe o campo vazio.\";\n\t\td.ro[252] = \"Eroare\";\n\t\td.ru[250] = \"Удалить файл\";\n\t\td.ru[251] = \"Вы уверены, что хотите удалить этот файл?[br]Осторожно, вы не сможете отменить эту операцию.\";\n\t\td.ru[252] = \"Ошибка\";\n\t\td.ru[253] = \"Вы не авторизованы для выполнения этой операции, пожалуйста [a §]обновите страницу[/a].\";\n\t\td.ru[254] = \"Извините, но файл не существует, пожалуйста [a §]обновите страницу[/a].\";\n\t\td.ru[255] = \"Редактировать описание\";\n\t\td.ru[256] = \"Ниже введите новое описание файла. Оставьте поле пустым, чтобы удалить описание.\";\n\t\td.sk[252] = \"Chyba\";\n\t\td.tr[252] = \"Hata\";\n\t\td.tr[259] = \"Önbelleği temizle\";\n\t\td.uk[252] = \"Помилка\";\n\t\td.zh[252] = \"错误信息\";\n\t\t// auto end\n\t};\n\n\tthis.error = function (data) {\n\n\t\tif ((typeof data == 'string') && (data.indexOf('<!DOCTYPE') < 0)) {\n\t\t\tapijs.dialog.dialogInformation(apijs.i18n.translate(252), data, 'error');\n\t\t}\n\t\telse {\n\t\t\tapijs.dialog.remove('lock'); // obligatoire sinon demande de confirmation de quitter la page\n\t\t\tself.location.reload();\n\t\t}\n\t};\n\n\tthis.editAttachment = function (elem, id, action, token) {\n\n\t\tvar desc, text, title = apijs.i18n.translate(255);\n\n\t\tdesc = elem.parentNode.parentNode.querySelector('.description').textContent.trim();\n\t\ttext = '[p][label for=\"apijsinput\"]' + apijs.i18n.translate(256) + '[/label][/p]' +\n\t\t\t\t'[input type=\"text\" name=\"description\" value=\"' + desc + '\" spellcheck=\"true\" id=\"apijsinput\"]';\n\n\t\tapijs.dialog.dialogFormOptions(title, text, action, apijsRedmine.actionEditAttachment, [id, action, token], 'editattach');\n\t\tapijs.dialog.t1.querySelector('input').select();\n\t};\n\n\tthis.actionEditAttachment = function (action, args) {\n\n\t\t// vérification de la nouvelle description\n\t\tif (typeof action == 'boolean') {\n\t\t\treturn true;\n\t\t}\n\t\t// sauvegarde de la nouvelle description\n\t\telse if (typeof action == 'string') {\n\n\t\t\t// args = [id, action, token]\n\t\t\tvar xhr = new XMLHttpRequest();\n\t\t\txhr.open('POST', args[1] + '?id=' + args[0] + '&isAjax=true', true);\n\t\t\txhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n\t\t\txhr.setRequestHeader('X-CSRF-Token', args[2]);\n\n\t\t\txhr.onreadystatechange = function () {\n\n\t\t\t\tif (xhr.readyState === 4) {\n\t\t\t\t\tif ([0, 200].has(xhr.status)) {\n\t\t\t\t\t\tif (xhr.responseText.indexOf('attachmentId') === 0) {\n\n\t\t\t\t\t\t\t// extrait l'id et la description du fichier enregistré\n\t\t\t\t\t\t\tvar elem, id, text;\n\t\t\t\t\t\t\tid = xhr.responseText.slice(0, xhr.responseText.indexOf(':'));\n\t\t\t\t\t\t\ttext = xhr.responseText.slice(xhr.responseText.indexOf(':') + 1);\n\n\t\t\t\t\t\t\t// description\n\t\t\t\t\t\t\telem = document.getElementById(id);\n\t\t\t\t\t\t\telem.querySelector('.description').textContent = text;\n\n\t\t\t\t\t\t\t// input type hidden\n\t\t\t\t\t\t\telem = elem.querySelector('input');\n\t\t\t\t\t\t\tif (elem)\n\t\t\t\t\t\t\t\telem.value = elem.value.slice(0, elem.value.lastIndexOf('|') + 1) + text;\n\n\t\t\t\t\t\t\tapijs.dialog.actionClose();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tapijsRedmine.error(xhr.responseText);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tapijsRedmine.error(xhr.status);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\txhr.send('desc=' + encodeURIComponent(document.getElementById('apijsinput').value));\n\t\t}\n\t};\n\n\tthis.renameAttachment = function (elem, id, action, token) {\n\n\t\tvar name, text, title = apijs.i18n.translate(257);\n\n\t\tname = elem.parentNode.parentNode.querySelector('.filename').textContent.trim();\n\t\ttext = '[p][label for=\"apijsinput\"]' + apijs.i18n.translate(258) + '[/label][/p]' +\n\t\t\t\t'[input type=\"text\" name=\"name\" value=\"' + name + '\" spellcheck=\"false\" id=\"apijsinput\"]';\n\n\t\tapijs.dialog.dialogFormOptions(title, text, action, apijsRedmine.actionRenameAttachment, [id, action, token], 'editattach');\n\t};\n\n\tthis.actionRenameAttachment = function (action, args) {\n\n\t\t// vérification du nouveau nom\n\t\tif (typeof action == 'boolean') {\n\t\t\treturn true;\n\t\t}\n\t\t// sauvegarde du nouveau nom\n\t\telse if (typeof action == 'string') {\n\n\t\t\t// args = [id, action, token]\n\t\t\tvar xhr = new XMLHttpRequest();\n\t\t\txhr.open('POST', args[1] + '?id=' + args[0] + '&isAjax=true', true);\n\t\t\txhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n\t\t\txhr.setRequestHeader('X-CSRF-Token', args[2]);\n\n\t\t\txhr.onreadystatechange = function () {\n\n\t\t\t\tif (xhr.readyState === 4) {\n\t\t\t\t\tif ([0, 200].has(xhr.status)) {\n\t\t\t\t\t\tif (xhr.responseText.indexOf('attachmentId') === 0) {\n\n\t\t\t\t\t\t\t// extrait l'id et le nom du fichier enregistré\n\t\t\t\t\t\t\tvar elem, id, name, subelem, text;\n\t\t\t\t\t\t\tid = xhr.responseText.slice(0, xhr.responseText.indexOf(':'));\n\t\t\t\t\t\t\tname = xhr.responseText.slice(xhr.responseText.indexOf(':') + 1);\n\n\t\t\t\t\t\t\t// nom\n\t\t\t\t\t\t\telem = document.getElementById(id);\n\t\t\t\t\t\t\telem.querySelector('.filename').textContent = name;\n\n\t\t\t\t\t\t\t// URLs sur a/href et input/value et button.download/onclick et button.show/onclick\n\t\t\t\t\t\t\t// pas de maj de src et srcset sur img pour éviter un appel réseau inutile\n\t\t\t\t\t\t\tsubelem = elem.querySelector('input');\n\t\t\t\t\t\t\tif (subelem) {\n\t\t\t\t\t\t\t\ttext = subelem.getAttribute('value');\n\t\t\t\t\t\t\t\tsubelem.setAttribute('value', name + text.substring(text.indexOf('|')));\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsubelem = elem.querySelector('a');\n\t\t\t\t\t\t\tif (subelem) {\n\t\t\t\t\t\t\t\ttext = subelem.getAttribute('href');\n\t\t\t\t\t\t\t\tsubelem.setAttribute('href', text.substring(0, text.lastIndexOf('/') + 1) + name);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsubelem = elem.querySelector('button.download');\n\t\t\t\t\t\t\tif (subelem) {\n\t\t\t\t\t\t\t\ttext = subelem.getAttribute('onclick');\n\t\t\t\t\t\t\t\tsubelem.setAttribute('onclick', text.substring(0, text.lastIndexOf('/') + 1) + name + \"';\");\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsubelem = elem.querySelector('button.show');\n\t\t\t\t\t\t\tif (subelem) {\n\t\t\t\t\t\t\t\ttext = subelem.getAttribute('onclick');\n\t\t\t\t\t\t\t\tsubelem.setAttribute('onclick', text.substring(0, text.lastIndexOf('/') + 1) + name + \"';\");\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tapijs.dialog.actionClose();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tapijsRedmine.error(xhr.responseText);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tapijsRedmine.error(xhr.status);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\txhr.send('name=' + encodeURIComponent(document.getElementById('apijsinput').value));\n\t\t}\n\t};\n\n\tthis.removeAttachment = function (elem, id, action, token) {\n\t\tapijs.dialog.dialogConfirmation(apijs.i18n.translate(250), apijs.i18n.translate(251), apijsRedmine.actionRemoveAttachment, [id, action, token]);\n\t};\n\n\tthis.actionRemoveAttachment = function (args) {\n\n\t\t// args = [id, action, token]\n\t\tvar xhr = new XMLHttpRequest();\n\t\txhr.open('POST', args[1] + '?id=' + args[0] + '&isAjax=true', true);\n\t\txhr.setRequestHeader('X-CSRF-Token', args[2]);\n\n\t\txhr.onreadystatechange = function () {\n\n\t\t\tif (xhr.readyState === 4) {\n\t\t\t\tif ([0, 200].has(xhr.status)) {\n\t\t\t\t\tif (xhr.responseText.indexOf('attachmentId') === 0) {\n\n\t\t\t\t\t\t// supprime le fichier de la page grâce à son id\n\t\t\t\t\t\tvar attachment = document.getElementById(xhr.responseText), elems = attachment.parentNode, idx = 0;\n\t\t\t\t\t\tattachment.remove();\n\n\t\t\t\t\t\t// supprime la liste des fichiers\n\t\t\t\t\t\tif (elems.querySelectorAll('dl, li').length < 1) {\n\t\t\t\t\t\t\telems.remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// ou réattribue les ids du diaporama (pas de réinitialisation, on remet juste les ids en place)\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\telems.querySelectorAll('a[id][type]').forEach(function (elem) {\n\t\t\t\t\t\t\t\telem.setAttribute('id', elem.getAttribute('id').slice(0, elem.getAttribute('id').lastIndexOf('.') + 1) + idx++);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tapijs.dialog.actionClose();\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tapijsRedmine.error(xhr.responseText);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tapijsRedmine.error(xhr.status);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\txhr.send();\n\t};\n\n\tthis.clearCache = function (action) {\n\t\tapijs.dialog.dialogConfirmation(apijs.i18n.translate(259), apijs.i18n.translate(260), apijsRedmine.actionClearCache, action);\n\t};\n\n\tthis.actionClearCache = function (args) {\n\t\tapijs.dialog.remove('waiting', 'lock'); // obligatoire sinon demande de confirmation de quitter la page\n\t\tself.location.href = args;\n\t};\n\n})();\n\nif (typeof self.addEventListener == 'function')\n\tself.addEventListener('apijsload', apijsRedmine.init.bind(apijsRedmine));"],"names":["apijsRedmine","this","init","d","apijs","i18n","data","frca","cs","de","el","en","es","fr","hu","it","ja","nl","pl","pt","ro","ru","sk","tr","uk","zh","error","indexOf","dialog","dialogInformation","translate","remove","self","location","reload","editAttachment","elem","id","action","token","title","desc","parentNode","querySelector","textContent","trim","text","dialogFormOptions","actionEditAttachment","t1","select","args","xhr","XMLHttpRequest","open","setRequestHeader","onreadystatechange","readyState","has","status","responseText","slice","document","getElementById","value","lastIndexOf","actionClose","send","encodeURIComponent","renameAttachment","name","actionRenameAttachment","subelem","getAttribute","setAttribute","substring","removeAttachment","dialogConfirmation","actionRemoveAttachment","attachment","elems","idx","querySelectorAll","length","forEach","clearCache","actionClearCache","href","addEventListener","bind"],"mappings":"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"}
|