Compare commits

...

22 Commits

Author SHA1 Message Date
Julius Härtl
fde5096856 Merge pull request #524 from nextcloud/release/v0.4.0
Prepare 0.4.0 release
2018-07-11 18:37:17 +02:00
Julius Härtl
f3296dd443 Add compatibility check for 12,13
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-11 14:07:58 +02:00
Julius Härtl
820ad7c523 Update changelog
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-11 13:54:06 +02:00
Julius Härtl
9f66ce618e Bump version to 0.4.0
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-11 13:54:06 +02:00
Julius Härtl
2318425160 Add package target to Makefile
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-11 08:48:01 +02:00
Nextcloud bot
213e3083a1 [tx-robot] updated from transifex 2018-07-11 00:19:11 +00:00
Julius Härtl
4fc65c8302 Merge pull request #522 from nextcloud/dependabot/npm_and_yarn/js/css-loader-1.0.0
Bump css-loader from 0.28.11 to 1.0.0 in /js
2018-07-10 15:21:35 +02:00
dependabot[bot]
bcb54faeaf Bump css-loader from 0.28.11 to 1.0.0 in /js
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 0.28.11 to 1.0.0.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v0.28.11...v1.0.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-10 12:41:11 +00:00
Julius Härtl
f5753f3fde Merge pull request #521 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.15.1
Bump webpack from 4.14.0 to 4.15.1 in /js
2018-07-10 14:39:30 +02:00
dependabot[bot]
5ff8618c10 Bump webpack from 4.14.0 to 4.15.1 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.14.0 to 4.15.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.14.0...v4.15.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-10 12:35:38 +00:00
Julius Härtl
bee918e810 Merge pull request #520 from nextcloud/dependabot/npm_and_yarn/js/node-sass-4.9.2
Bump node-sass from 4.9.0 to 4.9.2 in /js
2018-07-10 14:33:59 +02:00
dependabot[bot]
37301ae92b Bump node-sass from 4.9.0 to 4.9.2 in /js
Bumps [node-sass](https://github.com/sass/node-sass) from 4.9.0 to 4.9.2.
- [Release notes](https://github.com/sass/node-sass/releases)
- [Changelog](https://github.com/sass/node-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/node-sass/compare/v4.9.0...v4.9.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-09 07:50:44 +00:00
Julius Härtl
bd304d5f27 Merge pull request #523 from nextcloud/dependabot/npm_and_yarn/js/babel-loader-7.1.5
Bump babel-loader from 7.1.4 to 7.1.5 in /js
2018-07-09 09:47:27 +02:00
dependabot[bot]
827c69bd7b Bump babel-loader from 7.1.4 to 7.1.5 in /js
Bumps [babel-loader](https://github.com/babel/babel-loader) from 7.1.4 to 7.1.5.
- [Release notes](https://github.com/babel/babel-loader/releases)
- [Changelog](https://github.com/babel/babel-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel-loader/compare/v7.1.4...v7.1.5)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-09 01:15:28 +00:00
Nextcloud bot
812a225334 [tx-robot] updated from transifex 2018-07-08 00:12:30 +00:00
Julius Härtl
90c4e7818a Use ng-attr-value to support IE11
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-06 13:49:29 +02:00
Nextcloud bot
1299df539e [tx-robot] updated from transifex 2018-07-06 00:12:18 +00:00
Julius Härtl
20b25e0108 Bump version to 0.4.0-beta5
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-05 18:53:47 +02:00
Julius Härtl
e959afb2de Merge pull request #519 from nextcloud/bugfix/noid/stream-attachment-download
Fetch file from rootFolder instead of IAppData to use StreamResponse
2018-07-05 18:52:45 +02:00
Julius Härtl
cb25643741 Fetch file from rootFolder instead of IAppData to use StreamResponse when displaying
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-05 18:42:33 +02:00
Nextcloud bot
bbfb9e713a [tx-robot] updated from transifex 2018-07-04 00:12:38 +00:00
Nextcloud bot
e71a38fe96 [tx-robot] updated from transifex 2018-07-03 00:16:32 +00:00
33 changed files with 513 additions and 1139 deletions

View File

@@ -22,6 +22,42 @@ pipeline:
when:
matrix:
TESTS: check-app-compatbility
check-app-compatbility-12:
image: nextcloudci/php7.0:php7.0-17
environment:
- APP_NAME=deck
- CORE_BRANCH=stable12
- DB=sqlite
commands:
# Pre-setup steps
- wget https://raw.githubusercontent.com/nextcloud/travis_ci/master/before_install.sh
- bash ./before_install.sh $APP_NAME $CORE_BRANCH $DB
- cd ../server
# Code checker
- ./occ app:check-code $APP_NAME -c strong-comparison
- ./occ app:check-code $APP_NAME -c deprecation
- cd apps/$APP_NAME/
when:
matrix:
TESTS: check-app-compatbility-13
check-app-compatbility-12:
image: nextcloudci/php7.0:php7.0-17
environment:
- APP_NAME=deck
- CORE_BRANCH=stable12
- DB=sqlite
commands:
# Pre-setup steps
- wget https://raw.githubusercontent.com/nextcloud/travis_ci/master/before_install.sh
- bash ./before_install.sh $APP_NAME $CORE_BRANCH $DB
- cd ../server
# Code checker
- ./occ app:check-code $APP_NAME -c strong-comparison
- ./occ app:check-code $APP_NAME -c deprecation
- cd apps/$APP_NAME/
when:
matrix:
TESTS: check-app-compatbility-12
signed-off-check:
image: nextcloudci/php7.0:php7.0-17
environment:
@@ -194,6 +230,8 @@ pipeline:
matrix:
include:
- TESTS: check-app-compatbility
- TESTS: check-app-compatbility-12
- TESTS: check-app-compatbility-13
- TESTS: signed-off-check
- TESTS: syntax-php5.6
- TESTS: syntax-php7.0

View File

@@ -1,7 +1,7 @@
# Changelog
All notable changes to this project will be documented in this file.
## 0.4.0 - unreleased
## 0.4.0 - 2018-07-11
### Added

View File

@@ -12,7 +12,7 @@ sign_dir=$(build_dir)/sign
cert_dir=$(HOME)/.nextcloud/certificates
default: build
default: package
clean-build:
rm -rf $(build_dir)
@@ -95,3 +95,5 @@ test-integration:
test-js: install-deps
cd js && run test
package:
krankerl package

View File

@@ -14,7 +14,7 @@
- 🚀 Get your project organized
</description>
<version>0.4.0-beta4</version>
<version>0.4.0</version>
<licence>agpl</licence>
<author>Julius Härtl</author>
<namespace>Deck</namespace>

1400
js/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -22,13 +22,13 @@
},
"devDependencies": {
"babel-core": "^6.26.0",
"babel-loader": "^7.1.2",
"babel-loader": "^7.1.5",
"babel-preset-env": "^1.7.0",
"css-loader": "^0.28.9",
"css-loader": "^1.0.0",
"karma": "^2.0.4",
"mini-css-extract-plugin": "^0.4.1",
"node-sass": "^4.5.3",
"webpack": "^4.14.0",
"node-sass": "^4.9.2",
"webpack": "^4.15.1",
"webpack-cli": "^3.0.8",
"webpack-merge": "^4.1.3"
},

View File

@@ -67,6 +67,7 @@ OC.L10N.register(
"Create new board" : "Neues Board erstellen",
"New board title" : "Neuer Board-Titel",
"Select an attachment" : "Anhang auswählen",
"Cancel upload" : "Hochladen abbrechen",
"by" : "von",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Dateilöschung rückgängig machen - Andernfalls wird die Datei beim nächsten CronJob-Lauf gelöscht.",
"Undo file deletion" : "Dateilöschung rückgängig machen",

View File

@@ -65,6 +65,7 @@
"Create new board" : "Neues Board erstellen",
"New board title" : "Neuer Board-Titel",
"Select an attachment" : "Anhang auswählen",
"Cancel upload" : "Hochladen abbrechen",
"by" : "von",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Dateilöschung rückgängig machen - Andernfalls wird die Datei beim nächsten CronJob-Lauf gelöscht.",
"Undo file deletion" : "Dateilöschung rückgängig machen",

View File

@@ -67,6 +67,7 @@ OC.L10N.register(
"Create new board" : "Neues Board erstellen",
"New board title" : "Neuer Board-Titel",
"Select an attachment" : "Wählen Sie einen Anhang",
"Cancel upload" : "Hochladen abbrechen",
"by" : "von",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Dateilöschung rückgängig machen - Andernfalls wird die Datei beim nächsten CronJob-Lauf gelöscht.",
"Undo file deletion" : "Dateilöschung rückgängig machen",

View File

@@ -65,6 +65,7 @@
"Create new board" : "Neues Board erstellen",
"New board title" : "Neuer Board-Titel",
"Select an attachment" : "Wählen Sie einen Anhang",
"Cancel upload" : "Hochladen abbrechen",
"by" : "von",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Dateilöschung rückgängig machen - Andernfalls wird die Datei beim nächsten CronJob-Lauf gelöscht.",
"Undo file deletion" : "Dateilöschung rückgängig machen",

View File

@@ -24,6 +24,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Falta una carpeta temporal",
"Could not write file to disk" : "No se ha podido escribir el archivo al disco",
"A PHP extension stopped the file upload" : "Una extensión de PHP ha detenido la subida del archivo",
"No file uploaded or file size exceeds maximum of %s" : "No se ha subido ningún archivo, o el tamaño del archivo excede el máximo de %s",
"Deck" : "Deck",
"A kanban style project and personal management tool for Nextcloud" : "Una herramienta de manejo de proyectos y personal al estilo kanban para Nextcloud.",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 🚀 Get your project organized" : "Deckes una herramienta de organización al estilo kanban enfocada en la planificación personal y en la organización de proyectos para equipos, integrada en Nextcloud.\n\n\n- 📥 Añade tus tareas a tarjetas y ordénalas\n- 📄 Escribe notas adicionales en markdown\n- 🔖 Asigna etiquetas para una organización aún mejor\n- 👥 Comparte con tu equipo, amigos o familia\n- 🚀 Organiza tu proyecto",
@@ -66,6 +67,7 @@ OC.L10N.register(
"Create new board" : "Crear nuevo tablero",
"New board title" : "Nuevo título de tablero",
"Select an attachment" : "Selecciona un adjunto",
"Cancel upload" : "Cancelar la subida",
"by" : "por",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Deshacer eliminación del archivo. De otra forma el archivo se borrará durante la próxima ejecución del trabajo cron.",
"Undo file deletion" : "Deshacer eliminación del archivo",

View File

@@ -22,6 +22,7 @@
"Missing a temporary folder" : "Falta una carpeta temporal",
"Could not write file to disk" : "No se ha podido escribir el archivo al disco",
"A PHP extension stopped the file upload" : "Una extensión de PHP ha detenido la subida del archivo",
"No file uploaded or file size exceeds maximum of %s" : "No se ha subido ningún archivo, o el tamaño del archivo excede el máximo de %s",
"Deck" : "Deck",
"A kanban style project and personal management tool for Nextcloud" : "Una herramienta de manejo de proyectos y personal al estilo kanban para Nextcloud.",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 🚀 Get your project organized" : "Deckes una herramienta de organización al estilo kanban enfocada en la planificación personal y en la organización de proyectos para equipos, integrada en Nextcloud.\n\n\n- 📥 Añade tus tareas a tarjetas y ordénalas\n- 📄 Escribe notas adicionales en markdown\n- 🔖 Asigna etiquetas para una organización aún mejor\n- 👥 Comparte con tu equipo, amigos o familia\n- 🚀 Organiza tu proyecto",
@@ -64,6 +65,7 @@
"Create new board" : "Crear nuevo tablero",
"New board title" : "Nuevo título de tablero",
"Select an attachment" : "Selecciona un adjunto",
"Cancel upload" : "Cancelar la subida",
"by" : "por",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Deshacer eliminación del archivo. De otra forma el archivo se borrará durante la próxima ejecución del trabajo cron.",
"Undo file deletion" : "Deshacer eliminación del archivo",

View File

@@ -67,6 +67,7 @@ OC.L10N.register(
"Create new board" : "Créer un nouveau tableau",
"New board title" : "Nouveau titre pour le tableau",
"Select an attachment" : "Sélectionner une pièce jointe",
"Cancel upload" : "Annuler le téléversement",
"by" : "par",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Annuler la suppression du fichier - Autrement le fichier sera supprimé lors du prochain lancement de la tâche cron.",
"Undo file deletion" : "Annuler la suppression du fichier",

View File

@@ -65,6 +65,7 @@
"Create new board" : "Créer un nouveau tableau",
"New board title" : "Nouveau titre pour le tableau",
"Select an attachment" : "Sélectionner une pièce jointe",
"Cancel upload" : "Annuler le téléversement",
"by" : "par",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Annuler la suppression du fichier - Autrement le fichier sera supprimé lors du prochain lancement de la tâche cron.",
"Undo file deletion" : "Annuler la suppression du fichier",

View File

@@ -6,14 +6,25 @@ OC.L10N.register(
"Remove user from card" : "הסרת משתמש מכרטיס",
"Hours" : "שעות",
"Minutes" : "דקות",
"Maximum file size of {size} exceeded" : "גודל הקבצים המרבי {size} הושג",
"Are you sure you want to delete the stack with all of its data?" : "למחוק את הערימה הזאת עם כל הנתונים שלה?",
"The card \"%s\" on \"%s\" has reached its due date." : "הכרטיס „%s” שתחת „%s” הגיע למועד התפוגה שלו.",
"The board \"%s\" has been shared with you by %s." : "הלוח „%s” שותף אתך על ידי %s.",
"{user} has shared the board %s with you." : "הלוח %s שותף אתך על ידי {user}",
"No data was provided to create an attachment." : "לא סופקו נתונים ליצירת קובץ מצורף",
"Finished" : "הסתיים",
"To review" : "לסקירה",
"Action needed" : "נדרשת פעולה",
"Later" : "מאוחר יותר",
"The file was uploaded" : "הקובץ הועלה",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "הקובץ שהועלה חורג מההנחיה upload_max_filesize ב־php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "הקובץ שהועלה חורג מההנחיה MAX_FILE_SIZE שצוינה בטופס ה־HTML",
"The file was only partially uploaded" : "הקובץ הועלה באופן חלקי בלבד",
"No file was uploaded" : "לא הועלה קובץ",
"Missing a temporary folder" : "חסרה תיקייה זמנית",
"Could not write file to disk" : "לא ניתן לכתוב לכונן",
"A PHP extension stopped the file upload" : "הרחבת PHP עצרה את העלאת הקובץ",
"No file uploaded or file size exceeds maximum of %s" : "לא הועלה אף קובץ או שגודל הקובץ חרג מהסף המרבי של %s",
"Deck" : "חפיסה",
"A kanban style project and personal management tool for Nextcloud" : "כלי ניהול למיזמים או לדברים אישיים עבור Nextcloud",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 🚀 Get your project organized" : "חבילה היא כלי ניהול בסגנון קנבן שמיועד לתכנון אישי או לארגון מיזמים לצוותים בשילוב עם Nextcloud.\n\n\n- 📥 הוספת המשימות שלך וסידור שלהן\n- 📄 כתיבת הערות נוספות בתצורת markdown\n- 🔖 הקצאת תוויות למטרת ארגון טוב יותר\n- 👥 שיתוף עם הצוות, החברים או המשפחה שלך\n- 🚀 ארגון המיזם שלך כמו שצריך",
@@ -24,6 +35,7 @@ OC.L10N.register(
"Board details" : "פרטי לוח",
"All Boards" : "כל הלוחות",
"Archived boards" : "לוחות שנשמרו בארכיון",
"Drop your files here to upload it to the card" : "ניתן להשליך את הקבצים שלך כאן כדי להעלות אותם לכרטיס",
"Archive" : "לארכיון",
"Unarchive" : "הוצאה מהארכיון",
"Enter a card title" : "נא להקליד כותרת לכרטיס",
@@ -54,7 +66,12 @@ OC.L10N.register(
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "ביטול מחיקת לוח - אחרת הלוח יימחק במהלך ריצת ה־cronjob הבאה.",
"Create new board" : "יצירת לוח חדש",
"New board title" : "כותרת לוח חדשה",
"Select an attachment" : "נא לבחור קובץ מצורף",
"Cancel upload" : "ביטול העלאה",
"by" : "מאת",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "ביטול מחיקת קובץ - אחרת הקובץ יימחק עם ריצת משימת ה־cron הבאה.",
"Undo file deletion" : "ביטול מחיקת קובץ",
"Insert the file into the description" : "הוספת הקובץ לתיאור",
"Modified:" : "מועד השינוי",
"Created:" : "מועד היצירה:",
"Choose a tag" : "נא לבחור תגית",
@@ -67,9 +84,12 @@ OC.L10N.register(
"Click to set" : "יש ללחוץ להגדרה",
"Remove due date" : "הסרת מועד התפוגה",
"Description" : "תיאוג",
"Attachments" : "קבצים מצורפים",
"Saved" : "נשמר",
"Unsaved changes" : "שינויים שלא נשמרו",
"Formatting help" : "עזרה בסידור בתבנית",
"Upload attachment" : "העלאת קבצים מצורפים",
"Insert attachment" : "הוספת קובץ מצורף",
"Add a card description…" : "הוספת תיאור כרטיס…",
"Shared boards" : "לוחות משותפים",
"View more" : "הצגת עוד",

View File

@@ -4,14 +4,25 @@
"Remove user from card" : "הסרת משתמש מכרטיס",
"Hours" : "שעות",
"Minutes" : "דקות",
"Maximum file size of {size} exceeded" : "גודל הקבצים המרבי {size} הושג",
"Are you sure you want to delete the stack with all of its data?" : "למחוק את הערימה הזאת עם כל הנתונים שלה?",
"The card \"%s\" on \"%s\" has reached its due date." : "הכרטיס „%s” שתחת „%s” הגיע למועד התפוגה שלו.",
"The board \"%s\" has been shared with you by %s." : "הלוח „%s” שותף אתך על ידי %s.",
"{user} has shared the board %s with you." : "הלוח %s שותף אתך על ידי {user}",
"No data was provided to create an attachment." : "לא סופקו נתונים ליצירת קובץ מצורף",
"Finished" : "הסתיים",
"To review" : "לסקירה",
"Action needed" : "נדרשת פעולה",
"Later" : "מאוחר יותר",
"The file was uploaded" : "הקובץ הועלה",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "הקובץ שהועלה חורג מההנחיה upload_max_filesize ב־php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "הקובץ שהועלה חורג מההנחיה MAX_FILE_SIZE שצוינה בטופס ה־HTML",
"The file was only partially uploaded" : "הקובץ הועלה באופן חלקי בלבד",
"No file was uploaded" : "לא הועלה קובץ",
"Missing a temporary folder" : "חסרה תיקייה זמנית",
"Could not write file to disk" : "לא ניתן לכתוב לכונן",
"A PHP extension stopped the file upload" : "הרחבת PHP עצרה את העלאת הקובץ",
"No file uploaded or file size exceeds maximum of %s" : "לא הועלה אף קובץ או שגודל הקובץ חרג מהסף המרבי של %s",
"Deck" : "חפיסה",
"A kanban style project and personal management tool for Nextcloud" : "כלי ניהול למיזמים או לדברים אישיים עבור Nextcloud",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 🚀 Get your project organized" : "חבילה היא כלי ניהול בסגנון קנבן שמיועד לתכנון אישי או לארגון מיזמים לצוותים בשילוב עם Nextcloud.\n\n\n- 📥 הוספת המשימות שלך וסידור שלהן\n- 📄 כתיבת הערות נוספות בתצורת markdown\n- 🔖 הקצאת תוויות למטרת ארגון טוב יותר\n- 👥 שיתוף עם הצוות, החברים או המשפחה שלך\n- 🚀 ארגון המיזם שלך כמו שצריך",
@@ -22,6 +33,7 @@
"Board details" : "פרטי לוח",
"All Boards" : "כל הלוחות",
"Archived boards" : "לוחות שנשמרו בארכיון",
"Drop your files here to upload it to the card" : "ניתן להשליך את הקבצים שלך כאן כדי להעלות אותם לכרטיס",
"Archive" : "לארכיון",
"Unarchive" : "הוצאה מהארכיון",
"Enter a card title" : "נא להקליד כותרת לכרטיס",
@@ -52,7 +64,12 @@
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "ביטול מחיקת לוח - אחרת הלוח יימחק במהלך ריצת ה־cronjob הבאה.",
"Create new board" : "יצירת לוח חדש",
"New board title" : "כותרת לוח חדשה",
"Select an attachment" : "נא לבחור קובץ מצורף",
"Cancel upload" : "ביטול העלאה",
"by" : "מאת",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "ביטול מחיקת קובץ - אחרת הקובץ יימחק עם ריצת משימת ה־cron הבאה.",
"Undo file deletion" : "ביטול מחיקת קובץ",
"Insert the file into the description" : "הוספת הקובץ לתיאור",
"Modified:" : "מועד השינוי",
"Created:" : "מועד היצירה:",
"Choose a tag" : "נא לבחור תגית",
@@ -65,9 +82,12 @@
"Click to set" : "יש ללחוץ להגדרה",
"Remove due date" : "הסרת מועד התפוגה",
"Description" : "תיאוג",
"Attachments" : "קבצים מצורפים",
"Saved" : "נשמר",
"Unsaved changes" : "שינויים שלא נשמרו",
"Formatting help" : "עזרה בסידור בתבנית",
"Upload attachment" : "העלאת קבצים מצורפים",
"Insert attachment" : "הוספת קובץ מצורף",
"Add a card description…" : "הוספת תיאור כרטיס…",
"Shared boards" : "לוחות משותפים",
"View more" : "הצגת עוד",

View File

@@ -67,6 +67,7 @@ OC.L10N.register(
"Create new board" : "Crea una nuova lavagna",
"New board title" : "Titolo nuova lavagna",
"Select an attachment" : "Scegli un allegato",
"Cancel upload" : "Annulla caricamento",
"by" : "da",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Annulla eliminazione del file - Altrimenti il file sarà eliminato durante la prossima esecuzione del job di cron.",
"Undo file deletion" : "Annulla l'eliminazione della file",

View File

@@ -65,6 +65,7 @@
"Create new board" : "Crea una nuova lavagna",
"New board title" : "Titolo nuova lavagna",
"Select an attachment" : "Scegli un allegato",
"Cancel upload" : "Annulla caricamento",
"by" : "da",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Annulla eliminazione del file - Altrimenti il file sarà eliminato durante la prossima esecuzione del job di cron.",
"Undo file deletion" : "Annulla l'eliminazione della file",

View File

@@ -28,7 +28,7 @@ OC.L10N.register(
"Add card" : "Dodaj kartę",
"Close" : "Zamknij",
"Sharing" : "Współdzielenie",
"Tags" : "Tagi",
"Tags" : "Etykiety",
"Select users or groups to share with" : "Wybierz użytkowników lub grupy, żeby współdzielić z nimi",
"Access for" : "Dostęp dla",
"No matching user or group found." : "Nie znaleziono pasujących użytkowników lub grup",

View File

@@ -26,7 +26,7 @@
"Add card" : "Dodaj kartę",
"Close" : "Zamknij",
"Sharing" : "Współdzielenie",
"Tags" : "Tagi",
"Tags" : "Etykiety",
"Select users or groups to share with" : "Wybierz użytkowników lub grupy, żeby współdzielić z nimi",
"Access for" : "Dostęp dla",
"No matching user or group found." : "Nie znaleziono pasujących użytkowników lub grup",

View File

@@ -67,6 +67,7 @@ OC.L10N.register(
"Create new board" : "Criar novo painel",
"New board title" : "Título do novo painel",
"Select an attachment" : "Selecionar um anexo",
"Cancel upload" : "Cancelar envio",
"by" : "por",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Desfazer exclusão de arquivo - Caso contrário será excluído na próxima execução do cronjob.",
"Undo file deletion" : "Desfazer exclusão de arquivo",

View File

@@ -65,6 +65,7 @@
"Create new board" : "Criar novo painel",
"New board title" : "Título do novo painel",
"Select an attachment" : "Selecionar um anexo",
"Cancel upload" : "Cancelar envio",
"by" : "por",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Desfazer exclusão de arquivo - Caso contrário será excluído na próxima execução do cronjob.",
"Undo file deletion" : "Desfazer exclusão de arquivo",

View File

@@ -6,6 +6,7 @@ OC.L10N.register(
"Remove user from card" : "Убрать пользователя из карточки",
"Hours" : "Часы",
"Minutes" : "Минуты",
"Maximum file size of {size} exceeded" : "Максимальный размер файла {size} превышен",
"Are you sure you want to delete the stack with all of its data?" : "Вы действительно хотите удалить стек со всеми его данными?",
"The card \"%s\" on \"%s\" has reached its due date." : "Настал срок карточки «%s» в «%s» .",
"The board \"%s\" has been shared with you by %s." : "%s предоставил(а) Вам доступ к доске «%s».",
@@ -66,6 +67,7 @@ OC.L10N.register(
"Create new board" : "Создать новую доску",
"New board title" : "Заголовок новой доски",
"Select an attachment" : "Выберите вложение",
"Cancel upload" : "Прервать загрузку",
"by" : "автор",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Отменить удаление файла, иначе он будет автоматически удалена при следующей обработке cronjob.",
"Undo file deletion" : "Отменить удаление файла",

View File

@@ -4,6 +4,7 @@
"Remove user from card" : "Убрать пользователя из карточки",
"Hours" : "Часы",
"Minutes" : "Минуты",
"Maximum file size of {size} exceeded" : "Максимальный размер файла {size} превышен",
"Are you sure you want to delete the stack with all of its data?" : "Вы действительно хотите удалить стек со всеми его данными?",
"The card \"%s\" on \"%s\" has reached its due date." : "Настал срок карточки «%s» в «%s» .",
"The board \"%s\" has been shared with you by %s." : "%s предоставил(а) Вам доступ к доске «%s».",
@@ -64,6 +65,7 @@
"Create new board" : "Создать новую доску",
"New board title" : "Заголовок новой доски",
"Select an attachment" : "Выберите вложение",
"Cancel upload" : "Прервать загрузку",
"by" : "автор",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Отменить удаление файла, иначе он будет автоматически удалена при следующей обработке cronjob.",
"Undo file deletion" : "Отменить удаление файла",

View File

@@ -67,6 +67,7 @@ OC.L10N.register(
"Create new board" : "Направи нову таблу",
"New board title" : "Назив нове табле",
"Select an attachment" : "Одаберите прилог",
"Cancel upload" : "Откажи отпремање",
"by" : "од",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Поништи брисање фајла - у супротном, фајл ће бити обрисан на следеће покретање крон посла.",
"Undo file deletion" : "Поништи брисање фајла",

View File

@@ -65,6 +65,7 @@
"Create new board" : "Направи нову таблу",
"New board title" : "Назив нове табле",
"Select an attachment" : "Одаберите прилог",
"Cancel upload" : "Откажи отпремање",
"by" : "од",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Поништи брисање фајла - у супротном, фајл ће бити обрисан на следеће покретање крон посла.",
"Undo file deletion" : "Поништи брисање фајла",

View File

@@ -64,9 +64,12 @@ OC.L10N.register(
"Click to set" : "Klicka för att sätta",
"Remove due date" : "Ta bort slutdatum",
"Description" : "Beskrivning",
"Attachments" : "Bilagor",
"Saved" : "Sparad",
"Unsaved changes" : "Osparade ändringar",
"Formatting help" : "Formatteringshjälp",
"Upload attachment" : "Ladda upp bilaga",
"Insert attachment" : "Infoga bilaga",
"Add a card description…" : "Lägg till en kortbeskrivning...",
"Shared boards" : "Delade tavlor",
"View more" : "Titta mer",

View File

@@ -62,9 +62,12 @@
"Click to set" : "Klicka för att sätta",
"Remove due date" : "Ta bort slutdatum",
"Description" : "Beskrivning",
"Attachments" : "Bilagor",
"Saved" : "Sparad",
"Unsaved changes" : "Osparade ändringar",
"Formatting help" : "Formatteringshjälp",
"Upload attachment" : "Ladda upp bilaga",
"Insert attachment" : "Infoga bilaga",
"Add a card description…" : "Lägg till en kortbeskrivning...",
"Shared boards" : "Delade tavlor",
"View more" : "Titta mer",

View File

@@ -6,10 +6,12 @@ OC.L10N.register(
"Remove user from card" : "Kullanıcıyı karttan kaldır",
"Hours" : "Saat",
"Minutes" : "Dakika",
"Maximum file size of {size} exceeded" : "{size} olan en büyük dosya boyutu sınırııldı",
"Are you sure you want to delete the stack with all of its data?" : "Bu yığını tüm bilgileri ile silmek istediğinize emin misiniz?",
"The card \"%s\" on \"%s\" has reached its due date." : "\"%s\" kartı \"%s\" zamanında son kullanma tarihine ulaştı.",
"The board \"%s\" has been shared with you by %s." : "\"%s\" panosu %s tarafından sizinle paylaşıldı.",
"{user} has shared the board %s with you." : "{user} sizinle %s panosunu paylaştı.",
"No data was provided to create an attachment." : "Bir ek dosyası oluşturmak için herhangi bir veri sağlanmadı.",
"Finished" : "Tamamlandı",
"To review" : "İncelenecek",
"Action needed" : "İşlem yapılması gerekiyor",
@@ -22,6 +24,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Geçici bir klasör eksik",
"Could not write file to disk" : "Dosya diske yazılamadı",
"A PHP extension stopped the file upload" : "Bir PHP eklentisi dosyanın yüklenmesini engelledi",
"No file uploaded or file size exceeds maximum of %s" : "Herhangi bir dosya yüklenmedi ya da %s olan en büyük dosya boyutu sınırııldı",
"Deck" : "Tahta",
"A kanban style project and personal management tool for Nextcloud" : "Nextcloud için Kanban tarzında bir proje ve kişisel yönetim uygulaması",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 🚀 Get your project organized" : "Deste, Nextcloud ile bütünleştirilmiş takımlar için Kanban tarzında bir kişisel planlama ve proje yönetimi uygulamasıdır.\n\n\n- 📥 Görevleri kartlara ekleyerek sıralayabilirsiniz\n- 📄 Markdown ile biçimlendirilmiş notlar ekleyebilirsiniz\n- 🔖 Daha iyi düzenleme için etiketler atayabilirsiniz\n- 👥 Takımınız, arkadaşlarınız ya da aileniz ile paylaşabilirsiniz\n- 🚀 Projelerinizi düzenli tutarak izleyebilirsiniz",
@@ -50,7 +53,7 @@ OC.L10N.register(
"Discard share" : "Paylaşımı kaldır",
"Update" : "Güncelle",
"Create" : "Ekle",
"Create a new tag" : "Yeni bir etiket ekle",
"Create a new tag" : "Etiket ekle",
"Status" : "Durum",
"Title" : "Başlık",
"Members" : "Üyeler",
@@ -61,9 +64,10 @@ OC.L10N.register(
"Delete board" : "Panoyu sil",
"Reset" : "Sıfırla",
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Pano silme işlemini geri alır. Yoksa pano zamanlanmış görevin bir sonraki çalışmasında silinir.",
"Create new board" : "Yeni pano ekle",
"Create new board" : "Pano ekle",
"New board title" : "Yeni pano başlığı",
"Select an attachment" : "Bir ek dosyası seçin",
"Cancel upload" : "Yüklemeyi iptal et",
"by" : "Kişi:",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Dosya silme işlemini geri alır. Yoksa dosya zamanlanmış görevin bir sonraki çalışmasında silinir.",
"Undo file deletion" : "Dosya silmeyi geri al",
@@ -90,6 +94,6 @@ OC.L10N.register(
"Shared boards" : "Paylaşılmış panolar",
"View more" : "Diğerlerini görüntüle",
"Move board to archive" : "Panoyu arşive taşı",
"Create a new board" : "Yeni bir pano ekle"
"Create a new board" : "Pano ekle"
},
"nplurals=2; plural=(n > 1);");

View File

@@ -4,10 +4,12 @@
"Remove user from card" : "Kullanıcıyı karttan kaldır",
"Hours" : "Saat",
"Minutes" : "Dakika",
"Maximum file size of {size} exceeded" : "{size} olan en büyük dosya boyutu sınırııldı",
"Are you sure you want to delete the stack with all of its data?" : "Bu yığını tüm bilgileri ile silmek istediğinize emin misiniz?",
"The card \"%s\" on \"%s\" has reached its due date." : "\"%s\" kartı \"%s\" zamanında son kullanma tarihine ulaştı.",
"The board \"%s\" has been shared with you by %s." : "\"%s\" panosu %s tarafından sizinle paylaşıldı.",
"{user} has shared the board %s with you." : "{user} sizinle %s panosunu paylaştı.",
"No data was provided to create an attachment." : "Bir ek dosyası oluşturmak için herhangi bir veri sağlanmadı.",
"Finished" : "Tamamlandı",
"To review" : "İncelenecek",
"Action needed" : "İşlem yapılması gerekiyor",
@@ -20,6 +22,7 @@
"Missing a temporary folder" : "Geçici bir klasör eksik",
"Could not write file to disk" : "Dosya diske yazılamadı",
"A PHP extension stopped the file upload" : "Bir PHP eklentisi dosyanın yüklenmesini engelledi",
"No file uploaded or file size exceeds maximum of %s" : "Herhangi bir dosya yüklenmedi ya da %s olan en büyük dosya boyutu sınırııldı",
"Deck" : "Tahta",
"A kanban style project and personal management tool for Nextcloud" : "Nextcloud için Kanban tarzında bir proje ve kişisel yönetim uygulaması",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 🚀 Get your project organized" : "Deste, Nextcloud ile bütünleştirilmiş takımlar için Kanban tarzında bir kişisel planlama ve proje yönetimi uygulamasıdır.\n\n\n- 📥 Görevleri kartlara ekleyerek sıralayabilirsiniz\n- 📄 Markdown ile biçimlendirilmiş notlar ekleyebilirsiniz\n- 🔖 Daha iyi düzenleme için etiketler atayabilirsiniz\n- 👥 Takımınız, arkadaşlarınız ya da aileniz ile paylaşabilirsiniz\n- 🚀 Projelerinizi düzenli tutarak izleyebilirsiniz",
@@ -48,7 +51,7 @@
"Discard share" : "Paylaşımı kaldır",
"Update" : "Güncelle",
"Create" : "Ekle",
"Create a new tag" : "Yeni bir etiket ekle",
"Create a new tag" : "Etiket ekle",
"Status" : "Durum",
"Title" : "Başlık",
"Members" : "Üyeler",
@@ -59,9 +62,10 @@
"Delete board" : "Panoyu sil",
"Reset" : "Sıfırla",
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Pano silme işlemini geri alır. Yoksa pano zamanlanmış görevin bir sonraki çalışmasında silinir.",
"Create new board" : "Yeni pano ekle",
"Create new board" : "Pano ekle",
"New board title" : "Yeni pano başlığı",
"Select an attachment" : "Bir ek dosyası seçin",
"Cancel upload" : "Yüklemeyi iptal et",
"by" : "Kişi:",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Dosya silme işlemini geri alır. Yoksa dosya zamanlanmış görevin bir sonraki çalışmasında silinir.",
"Undo file deletion" : "Dosya silmeyi geri al",
@@ -88,6 +92,6 @@
"Shared boards" : "Paylaşılmış panolar",
"View more" : "Diğerlerini görüntüle",
"Move board to archive" : "Panoyu arşive taşı",
"Create a new board" : "Yeni bir pano ekle"
"Create a new board" : "Pano ekle"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
}

View File

@@ -29,12 +29,16 @@ use OCA\Deck\StatusException;
use OCP\AppFramework\Http\ContentSecurityPolicy;
use OCP\AppFramework\Http\EmptyContentSecurityPolicy;
use OCP\AppFramework\Http\FileDisplayResponse;
use OCP\AppFramework\Http\StreamResponse;
use OCP\Files\Cache\IScanner;
use OCP\Files\Folder;
use OCP\Files\IAppData;
use OCP\Files\IRootFolder;
use OCP\Files\NotFoundException;
use OCP\Files\NotPermittedException;
use OCP\Files\SimpleFS\ISimpleFile;
use OCP\Files\SimpleFS\ISimpleFolder;
use OCP\IConfig;
use OCP\IL10N;
use OCP\ILogger;
use OCP\IRequest;
@@ -45,17 +49,23 @@ class FileService implements IAttachmentService {
private $appData;
private $request;
private $logger;
private $rootFolder;
private $config;
public function __construct(
IL10N $l10n,
IAppData $appData,
IRequest $request,
ILogger $logger
ILogger $logger,
IRootFolder $rootFolder,
IConfig $config
) {
$this->l10n = $l10n;
$this->appData = $appData;
$this->request = $request;
$this->logger = $logger;
$this->rootFolder = $rootFolder;
$this->config = $config;
}
/**
@@ -174,9 +184,32 @@ class FileService implements IAttachmentService {
}
}
/**
* Workaround until ISimpleFile can be fetched as a resource
*
* @throws \Exception
*/
private function getFileFromRootFolder(Attachment $attachment) {
$folderName = 'file-card-' . (int)$attachment->getCardId();
$instanceId = $this->config->getSystemValue('instanceid', null);
if ($instanceId === null) {
throw new \Exception('no instance id!');
}
$name = 'appdata_' . $instanceId;
$appDataFolder = $this->rootFolder->get($name);
$appDataFolder = $appDataFolder->get('deck');
$cardFolder = $appDataFolder->get($folderName);
return $cardFolder->get($attachment->getData());
}
public function display(Attachment $attachment) {
$file = $this->getFileForAttachment($attachment);
$file = $this->getFileFromRootFolder($attachment);
if (method_exists($file, 'fopen')) {
$response = new StreamResponse($file->fopen('r'));
$response->addHeader('Content-Disposition', 'inline; filename="' . rawurldecode($file->getName()) . '"');
} else {
$response = new FileDisplayResponse($file);
}
if ($file->getMimeType() === 'application/pdf') {
// We need those since otherwise chrome won't show the PDF file with CSP rule object-src 'none'
// https://bugs.chromium.org/p/chromium/issues/detail?id=271452

View File

@@ -9,7 +9,7 @@
<div class="filename">
<span class="basename">{{ attachment.file.name }}</span>
</div>
<progress value="{{ attachment.progress }}" max="100"></progress>
<progress ng-attr-value="{{ attachment.progress }}" max="100"></progress>
</div>
<button class="icon icon-close button-inline" ng-click="attachment.cancel()">
<span class="hidden-visually"><?php p($l->t('Cancel upload')); ?></span>

View File

@@ -38,11 +38,15 @@ use OCA\Deck\StatusException;
use OCP\AppFramework\Http\ContentSecurityPolicy;
use OCP\AppFramework\Http\FileDisplayResponse;
use OCP\AppFramework\Http\Response;
use OCP\AppFramework\Http\StreamResponse;
use OCP\AppFramework\IAppContainer;
use OCP\Files\Folder;
use OCP\Files\IAppData;
use OCP\Files\IRootFolder;
use OCP\Files\SimpleFS\ISimpleFile;
use OCP\Files\SimpleFS\ISimpleFolder;
use OCP\ICacheFactory;
use OCP\IConfig;
use OCP\IL10N;
use OCP\ILogger;
use OCP\IRequest;
@@ -61,6 +65,10 @@ class FileServiceTest extends TestCase {
private $logger;
/** @var FileService */
private $fileService;
/** @var IRootFolder */
private $rootFolder;
/** @var IConfig */
private $config;
public function setUp() {
parent::setUp();
@@ -68,7 +76,9 @@ class FileServiceTest extends TestCase {
$this->appData = $this->createMock(IAppData::class);
$this->l10n = $this->createMock(IL10N::class);
$this->logger = $this->createMock(ILogger::class);
$this->fileService = new FileService($this->l10n, $this->appData, $this->request, $this->logger);
$this->rootFolder = $this->createMock(IRootFolder::class);
$this->config = $this->createMock(IConfig::class);
$this->fileService = new FileService($this->l10n, $this->appData, $this->request, $this->logger, $this->rootFolder, $this->config);
}
public function mockGetFolder($cardId) {
@@ -253,33 +263,60 @@ class FileServiceTest extends TestCase {
}
public function testDisplay() {
$this->config->expects($this->once())
->method('getSystemValue')
->willReturn('123');
$appDataFolder = $this->createMock(Folder::class);
$deckAppDataFolder = $this->createMock(Folder::class);
$cardFolder = $this->createMock(Folder::class);
$this->rootFolder->expects($this->once())->method('get')->willReturn($appDataFolder);
$appDataFolder->expects($this->once())->method('get')->willReturn($deckAppDataFolder);
$deckAppDataFolder->expects($this->once())->method('get')->willReturn($cardFolder);
$attachment = $this->getAttachment();
$file = $this->createMock(ISimpleFile::class);
$folder = $this->mockGetFolder('123');
$folder->expects($this->once())
->method('getFile')
->willReturn($file);
$file->expects($this->exactly(2))
$file = $this->createMock(\OCP\Files\File::class);
$cardFolder->expects($this->once())->method('get')->willReturn($file);
$file->expects($this->any())
->method('getMimeType')
->willReturn('image/jpeg');
$file->expects($this->any())
->method('getName')
->willReturn('file1');
$file->expects($this->any())
->method('fopen')
->willReturn('fileresource');
$actual = $this->fileService->display($attachment);
$expected = new FileDisplayResponse($file);
$expected = new StreamResponse('fileresource');
$expected->addHeader('Content-Type', 'image/jpeg');
$expected->addHeader('Content-Disposition', 'inline; filename="' . rawurldecode($file->getName()) . '"');
$this->assertEquals($expected, $actual);
}
public function testDisplayPdf() {
$this->config->expects($this->once())
->method('getSystemValue')
->willReturn('123');
$appDataFolder = $this->createMock(Folder::class);
$deckAppDataFolder = $this->createMock(Folder::class);
$cardFolder = $this->createMock(Folder::class);
$this->rootFolder->expects($this->once())->method('get')->willReturn($appDataFolder);
$appDataFolder->expects($this->once())->method('get')->willReturn($deckAppDataFolder);
$deckAppDataFolder->expects($this->once())->method('get')->willReturn($cardFolder);
$attachment = $this->getAttachment();
$file = $this->createMock(ISimpleFile::class);
$folder = $this->mockGetFolder('123');
$folder->expects($this->once())
->method('getFile')
->willReturn($file);
$file->expects($this->exactly(2))
$file = $this->createMock(\OCP\Files\File::class);
$cardFolder->expects($this->once())->method('get')->willReturn($file);
$file->expects($this->any())
->method('getMimeType')
->willReturn('application/pdf');
$file->expects($this->any())
->method('getName')
->willReturn('file1');
$file->expects($this->any())
->method('fopen')
->willReturn('fileresource');
$actual = $this->fileService->display($attachment);
$expected = new FileDisplayResponse($file);
$expected = new StreamResponse('fileresource');
$expected->addHeader('Content-Disposition', 'inline; filename="' . rawurldecode($file->getName()) . '"');
$expected->addHeader('Content-Type', 'application/pdf');
$policy = new ContentSecurityPolicy();
$policy->addAllowedObjectDomain('\'self\'');