Compare commits
2 Commits
v1.5.8
...
backport/3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
45473df9f4 | ||
|
|
6832d41dee |
@@ -1,15 +1,6 @@
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 1.5.8
|
||||
|
||||
### Fixed
|
||||
- Align Duedate-delete icon properly - fixes nextcloud/deck#3791 [#3817](https://github.com/nextcloud/deck/pull/3817)
|
||||
- Increase file count after sharing [#3806](https://github.com/nextcloud/deck/pull/3806)
|
||||
- Show cards after moving into another list [#3794](https://github.com/nextcloud/deck/pull/3794)
|
||||
- Fetch full board data after cloning [#3781](https://github.com/nextcloud/deck/pull/3781)
|
||||
|
||||
|
||||
## 1.5.7
|
||||
|
||||
### Added
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
- 🚀 Get your project organized
|
||||
|
||||
</description>
|
||||
<version>1.5.8</version>
|
||||
<version>1.5.7</version>
|
||||
<licence>agpl</licence>
|
||||
<author>Julius Härtl</author>
|
||||
<namespace>Deck</namespace>
|
||||
|
||||
@@ -135,7 +135,6 @@ OC.L10N.register(
|
||||
"Archived cards" : "Archivované karty",
|
||||
"Add list" : "Přidat seznam",
|
||||
"List name" : "Název seznamu",
|
||||
"Active filters" : "Zapnuté filtry",
|
||||
"Apply filter" : "Uplatnit filtr",
|
||||
"Filter by tag" : "Filtrovat podle příznaků",
|
||||
"Filter by assigned user" : "Filtrovat podle uživatele, který je úkolem pověřen",
|
||||
|
||||
@@ -133,7 +133,6 @@
|
||||
"Archived cards" : "Archivované karty",
|
||||
"Add list" : "Přidat seznam",
|
||||
"List name" : "Název seznamu",
|
||||
"Active filters" : "Zapnuté filtry",
|
||||
"Apply filter" : "Uplatnit filtr",
|
||||
"Filter by tag" : "Filtrovat podle příznaků",
|
||||
"Filter by assigned user" : "Filtrovat podle uživatele, který je úkolem pověřen",
|
||||
|
||||
@@ -135,7 +135,6 @@ OC.L10N.register(
|
||||
"Archived cards" : "Archivierte Karten",
|
||||
"Add list" : "Liste hinzufügen",
|
||||
"List name" : "Listenname",
|
||||
"Active filters" : "Aktive Filter",
|
||||
"Apply filter" : "Filter anwenden",
|
||||
"Filter by tag" : "Nach Schlagwort filtern",
|
||||
"Filter by assigned user" : "Nach zugewiesenem Benutzer filtern",
|
||||
|
||||
@@ -133,7 +133,6 @@
|
||||
"Archived cards" : "Archivierte Karten",
|
||||
"Add list" : "Liste hinzufügen",
|
||||
"List name" : "Listenname",
|
||||
"Active filters" : "Aktive Filter",
|
||||
"Apply filter" : "Filter anwenden",
|
||||
"Filter by tag" : "Nach Schlagwort filtern",
|
||||
"Filter by assigned user" : "Nach zugewiesenem Benutzer filtern",
|
||||
|
||||
@@ -135,7 +135,6 @@ OC.L10N.register(
|
||||
"Archived cards" : "Archivierte Karten",
|
||||
"Add list" : "Liste hinzufügen",
|
||||
"List name" : "Listenname",
|
||||
"Active filters" : "Aktive Filter",
|
||||
"Apply filter" : "Filter anwenden",
|
||||
"Filter by tag" : "Nach Schlagwort filtern",
|
||||
"Filter by assigned user" : "Nach zugewiesenem Benutzer filtern",
|
||||
|
||||
@@ -133,7 +133,6 @@
|
||||
"Archived cards" : "Archivierte Karten",
|
||||
"Add list" : "Liste hinzufügen",
|
||||
"List name" : "Listenname",
|
||||
"Active filters" : "Aktive Filter",
|
||||
"Apply filter" : "Filter anwenden",
|
||||
"Filter by tag" : "Nach Schlagwort filtern",
|
||||
"Filter by assigned user" : "Nach zugewiesenem Benutzer filtern",
|
||||
|
||||
15
l10n/es.js
15
l10n/es.js
@@ -100,12 +100,10 @@ OC.L10N.register(
|
||||
"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",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Este comentario tiene más de %s caracteres.\nAñadido como adjunto a la tarjeta con el nombre %s.\nAccesible en la URL: %s.",
|
||||
"Card not found" : "Tarjeta no encontrada",
|
||||
"Path is already shared with this card" : "La ruta ya se ha compartido con esta tarjeta",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Fecha no válida, el formato de las fechas debe ser AAAA-MM-DD",
|
||||
"Personal planning and team project organization" : "Planificación personal y organización de proyecto de equipo",
|
||||
"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- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck es una herramienta de organización de estilo kanban dirigida a la planificación personal y la organización de proyectos para equipos integrados con Nextcloud.\n\n\n- 📥 Agrega tus tareas a las tarjetas y ordénalas.\n- 📄 Escriba notas adicionales\n- 🔖 Asignar etiquetas para una organización mejor\n- 👥 Comparte con tu equipo, amigos o familia.\n- 📎 Adjuntar archivos e incrustarlos en su descripción\n- 💬 Discuta con su equipo usando comentarios.\n- ⚡ Mantenga un registro de los cambios en el flujo de actividad\n- 🚀 Organiza tu proyecto",
|
||||
"Card details" : "Detalles de la tarjeta",
|
||||
"Add board" : "Añadir tablero",
|
||||
"Select the board to link to a project" : "Selecciona el tablero que enlazar a un proyecto",
|
||||
@@ -135,7 +133,6 @@ OC.L10N.register(
|
||||
"Archived cards" : "Tarjetas archivadas",
|
||||
"Add list" : "Agregar lista",
|
||||
"List name" : "Nombre de la lista",
|
||||
"Active filters" : "Filtros activos",
|
||||
"Apply filter" : "Aplicar filtro",
|
||||
"Filter by tag" : "Filtrar por etiqueta",
|
||||
"Filter by assigned user" : "Filtrar por usuario asignado",
|
||||
@@ -174,11 +171,7 @@ OC.L10N.register(
|
||||
"Owner" : "Propietario",
|
||||
"Delete" : "Eliminar",
|
||||
"Failed to create share with {displayName}" : "Fallo al crear el recurso compartido denominado {displayName}",
|
||||
"Are you sure you want to transfer the board {title} to {user}?" : "¿Estás seguro de que quieres transferir el tablero {título} a {usuario}?",
|
||||
"Transfer the board." : "Transfiere el tablero.",
|
||||
"Transfer" : "Transferir",
|
||||
"The board has been transferred to {user}" : "El tablero ha sido transferido a {usuario}",
|
||||
"Failed to transfer the board to {user}" : "Failed to transfer the board to {user}",
|
||||
"Add a new list" : "Añadir una lista nueva",
|
||||
"Archive all cards" : "Archivar todas las tarjetas",
|
||||
"Delete list" : "Eliminar lista",
|
||||
@@ -294,10 +287,6 @@ OC.L10N.register(
|
||||
"Share {file} with a Deck card" : "Compartir {file} con una tarjeta de Deck",
|
||||
"Share" : "Compartir",
|
||||
"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- 📎 Attach files and embed them in your markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck es una herramienta de organización de estilo kanban dirigida a la planificación personal y la organización de proyectos para equipos integrados con Nextcloud.\n\n\n- 📥 Agrega tus tareas a las tarjetas y ordénalas.\n- 📄 Escriba notas adicionales\n- 🔖 Asignar etiquetas para una organización mejor\n- 👥 Comparte con tu equipo, amigos o familia.\n- 📎 Adjuntar archivos e incrustarlos en su descripción\n- 💬 Discuta con su equipo usando comentarios.\n- ⚡ Mantenga un registro de los cambios en el flujo de actividad\n- 🚀 Organiza tu proyecto",
|
||||
"Are you sure you want to transfer the board {title} for {user} ?" : "¿Estás seguro de que quieres transferir el tablero {título} a {usuario}?",
|
||||
"Transfer the board for {user} successfully" : "Transferir el tablero para {usuario} con éxito",
|
||||
"Failed to transfer the board for {user}" : "No se ha podido transferir el tablero para {usuario}",
|
||||
"This week" : "Esta semana",
|
||||
"Are you sure you want to transfer the board {title} for {user}?" : "¿Estás seguro de que quieres transferir el tablero {título} a {usuario}?"
|
||||
"This week" : "Esta semana"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
15
l10n/es.json
15
l10n/es.json
@@ -98,12 +98,10 @@
|
||||
"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",
|
||||
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Este comentario tiene más de %s caracteres.\nAñadido como adjunto a la tarjeta con el nombre %s.\nAccesible en la URL: %s.",
|
||||
"Card not found" : "Tarjeta no encontrada",
|
||||
"Path is already shared with this card" : "La ruta ya se ha compartido con esta tarjeta",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Fecha no válida, el formato de las fechas debe ser AAAA-MM-DD",
|
||||
"Personal planning and team project organization" : "Planificación personal y organización de proyecto de equipo",
|
||||
"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- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck es una herramienta de organización de estilo kanban dirigida a la planificación personal y la organización de proyectos para equipos integrados con Nextcloud.\n\n\n- 📥 Agrega tus tareas a las tarjetas y ordénalas.\n- 📄 Escriba notas adicionales\n- 🔖 Asignar etiquetas para una organización mejor\n- 👥 Comparte con tu equipo, amigos o familia.\n- 📎 Adjuntar archivos e incrustarlos en su descripción\n- 💬 Discuta con su equipo usando comentarios.\n- ⚡ Mantenga un registro de los cambios en el flujo de actividad\n- 🚀 Organiza tu proyecto",
|
||||
"Card details" : "Detalles de la tarjeta",
|
||||
"Add board" : "Añadir tablero",
|
||||
"Select the board to link to a project" : "Selecciona el tablero que enlazar a un proyecto",
|
||||
@@ -133,7 +131,6 @@
|
||||
"Archived cards" : "Tarjetas archivadas",
|
||||
"Add list" : "Agregar lista",
|
||||
"List name" : "Nombre de la lista",
|
||||
"Active filters" : "Filtros activos",
|
||||
"Apply filter" : "Aplicar filtro",
|
||||
"Filter by tag" : "Filtrar por etiqueta",
|
||||
"Filter by assigned user" : "Filtrar por usuario asignado",
|
||||
@@ -172,11 +169,7 @@
|
||||
"Owner" : "Propietario",
|
||||
"Delete" : "Eliminar",
|
||||
"Failed to create share with {displayName}" : "Fallo al crear el recurso compartido denominado {displayName}",
|
||||
"Are you sure you want to transfer the board {title} to {user}?" : "¿Estás seguro de que quieres transferir el tablero {título} a {usuario}?",
|
||||
"Transfer the board." : "Transfiere el tablero.",
|
||||
"Transfer" : "Transferir",
|
||||
"The board has been transferred to {user}" : "El tablero ha sido transferido a {usuario}",
|
||||
"Failed to transfer the board to {user}" : "Failed to transfer the board to {user}",
|
||||
"Add a new list" : "Añadir una lista nueva",
|
||||
"Archive all cards" : "Archivar todas las tarjetas",
|
||||
"Delete list" : "Eliminar lista",
|
||||
@@ -292,10 +285,6 @@
|
||||
"Share {file} with a Deck card" : "Compartir {file} con una tarjeta de Deck",
|
||||
"Share" : "Compartir",
|
||||
"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- 📎 Attach files and embed them in your markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck es una herramienta de organización de estilo kanban dirigida a la planificación personal y la organización de proyectos para equipos integrados con Nextcloud.\n\n\n- 📥 Agrega tus tareas a las tarjetas y ordénalas.\n- 📄 Escriba notas adicionales\n- 🔖 Asignar etiquetas para una organización mejor\n- 👥 Comparte con tu equipo, amigos o familia.\n- 📎 Adjuntar archivos e incrustarlos en su descripción\n- 💬 Discuta con su equipo usando comentarios.\n- ⚡ Mantenga un registro de los cambios en el flujo de actividad\n- 🚀 Organiza tu proyecto",
|
||||
"Are you sure you want to transfer the board {title} for {user} ?" : "¿Estás seguro de que quieres transferir el tablero {título} a {usuario}?",
|
||||
"Transfer the board for {user} successfully" : "Transferir el tablero para {usuario} con éxito",
|
||||
"Failed to transfer the board for {user}" : "No se ha podido transferir el tablero para {usuario}",
|
||||
"This week" : "Esta semana",
|
||||
"Are you sure you want to transfer the board {title} for {user}?" : "¿Estás seguro de que quieres transferir el tablero {título} a {usuario}?"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
"This week" : "Esta semana"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -60,4 +60,4 @@ OC.L10N.register(
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -57,5 +57,5 @@
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -57,4 +57,4 @@ OC.L10N.register(
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -54,5 +54,5 @@
|
||||
"An error occurred" : "Ocurrió un error",
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -63,4 +63,4 @@ OC.L10N.register(
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -60,5 +60,5 @@
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -64,4 +64,4 @@ OC.L10N.register(
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -61,5 +61,5 @@
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -63,4 +63,4 @@ OC.L10N.register(
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -60,5 +60,5 @@
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -63,4 +63,4 @@ OC.L10N.register(
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -60,5 +60,5 @@
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -63,4 +63,4 @@ OC.L10N.register(
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -60,5 +60,5 @@
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -63,4 +63,4 @@ OC.L10N.register(
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -60,5 +60,5 @@
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -59,4 +59,4 @@ OC.L10N.register(
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -56,5 +56,5 @@
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -67,4 +67,4 @@ OC.L10N.register(
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -64,5 +64,5 @@
|
||||
"An error occurred" : "Ha ocurrido un error",
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -59,4 +59,4 @@ OC.L10N.register(
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -56,5 +56,5 @@
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -59,4 +59,4 @@ OC.L10N.register(
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -56,5 +56,5 @@
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -59,4 +59,4 @@ OC.L10N.register(
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -56,5 +56,5 @@
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -59,4 +59,4 @@ OC.L10N.register(
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -56,5 +56,5 @@
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -61,4 +61,4 @@ OC.L10N.register(
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -58,5 +58,5 @@
|
||||
"An error occurred" : "Se presentó un error",
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -63,4 +63,4 @@ OC.L10N.register(
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},
|
||||
"nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -60,5 +60,5 @@
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},"pluralForm" :"nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -59,4 +59,4 @@ OC.L10N.register(
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -56,5 +56,5 @@
|
||||
"Delete board" : "Borrar tableros",
|
||||
"Share" : "Compartir",
|
||||
"This week" : "Esta semana"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -135,7 +135,6 @@ OC.L10N.register(
|
||||
"Archived cards" : "Artxibatutako txartelak",
|
||||
"Add list" : "Gehitu zerrenda",
|
||||
"List name" : "Zerrendaren izena",
|
||||
"Active filters" : "Iragazki aktiboak",
|
||||
"Apply filter" : "Ezarri iragazkia",
|
||||
"Filter by tag" : "Iragazi etiketaz",
|
||||
"Filter by assigned user" : "Iragazi esleitutako erabiltzailez",
|
||||
@@ -174,11 +173,8 @@ OC.L10N.register(
|
||||
"Owner" : "Jabea",
|
||||
"Delete" : "Ezabatu",
|
||||
"Failed to create share with {displayName}" : "Ezin izan da {displayName}-(r)ekin partekatzea sortu",
|
||||
"Are you sure you want to transfer the board {title} to {user}?" : "Ziur {title} taula {user}-(a)ri transferitu nahi diozula?",
|
||||
"Transfer the board." : "Transferitu panela.",
|
||||
"Transfer" : "Transferitu",
|
||||
"The board has been transferred to {user}" : "Arbela {user}-(a)ri transferitu zaio",
|
||||
"Failed to transfer the board to {user}" : "Ezin izan zaio transferitu arbela {use}-(a)ri",
|
||||
"Add a new list" : "Gehitu zerrenda berria",
|
||||
"Archive all cards" : "Artxibatu txartel guztiak",
|
||||
"Delete list" : "Zerrenda ezabatu",
|
||||
|
||||
@@ -133,7 +133,6 @@
|
||||
"Archived cards" : "Artxibatutako txartelak",
|
||||
"Add list" : "Gehitu zerrenda",
|
||||
"List name" : "Zerrendaren izena",
|
||||
"Active filters" : "Iragazki aktiboak",
|
||||
"Apply filter" : "Ezarri iragazkia",
|
||||
"Filter by tag" : "Iragazi etiketaz",
|
||||
"Filter by assigned user" : "Iragazi esleitutako erabiltzailez",
|
||||
@@ -172,11 +171,8 @@
|
||||
"Owner" : "Jabea",
|
||||
"Delete" : "Ezabatu",
|
||||
"Failed to create share with {displayName}" : "Ezin izan da {displayName}-(r)ekin partekatzea sortu",
|
||||
"Are you sure you want to transfer the board {title} to {user}?" : "Ziur {title} taula {user}-(a)ri transferitu nahi diozula?",
|
||||
"Transfer the board." : "Transferitu panela.",
|
||||
"Transfer" : "Transferitu",
|
||||
"The board has been transferred to {user}" : "Arbela {user}-(a)ri transferitu zaio",
|
||||
"Failed to transfer the board to {user}" : "Ezin izan zaio transferitu arbela {use}-(a)ri",
|
||||
"Add a new list" : "Gehitu zerrenda berria",
|
||||
"Archive all cards" : "Artxibatu txartel guztiak",
|
||||
"Delete list" : "Zerrenda ezabatu",
|
||||
|
||||
24
l10n/fa.js
24
l10n/fa.js
@@ -73,7 +73,7 @@ OC.L10N.register(
|
||||
"The card {deck-card} on {deck-board} has reached its due date." : "برگه {deck-card} در {deck-board} به تاریخ سررسید خود رسیده است.",
|
||||
"{user} has mentioned you in a comment on {deck-card}." : "{user} از شما در نظری در {deck-card} نام برده است.",
|
||||
"{user} has shared {deck-board} with you." : "{user} {deck-board} را با شما به اشتراک گذاشته است.",
|
||||
"Card comments" : "دیدگاههای برگه",
|
||||
"Card comments" : "برگهٔ نظر",
|
||||
"No data was provided to create an attachment." : "هیچ داده ای برای ایجاد پیوست ارائه نشد.",
|
||||
"Finished" : "تمام شده",
|
||||
"To review" : "برای بازبینی",
|
||||
@@ -101,20 +101,20 @@ OC.L10N.register(
|
||||
"Personal planning and team project organization" : "برنامهریزی شخصی و سازماندهی کار گروهی",
|
||||
"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- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "برگهدان یک ابزار سازماندهی سبک کانبان است که هدف آن برنامهریزی شخصی و سازماندهی پروژه برای گروههای مرتبط با Nextcloud است.\n\n\n- 📥 وظایف خود را به برگهها اضافه کنید و آنها را مرتب کنید\n- 📄 یادداشتهای اضافی را در Markdown یادداشت کنید\n- 🔖 برچسبهایی را برای سازماندهی بهتر اختصاص دهید\n- 👥 با گروه، دوستان یا خانوادهٔ خود به اشتراک بگذارید\n- 📎 فایلها را ضمیمه کنید و آنها را در توضیحات Markdown خود قرار دهید\n- 💬 با استفاده از نظرات با تیم خود بحث کنید\n- ⚡ تغییرات در جریان فعالیت را پیگیری کنید\n- 🚀 پروژه خود را سازماندهی کنید",
|
||||
"Card details" : "جزئیات برگه",
|
||||
"Add board" : "افزودن تخته",
|
||||
"Add board" : "تخته را اضافه کنید",
|
||||
"Select the board to link to a project" : "تختهای را برای ایجاد پیوند با یک پروژه انتخاب کنید",
|
||||
"Search by board title" : "جستجو بر اساس عنوان تخته",
|
||||
"Select board" : "انتخاب تخته",
|
||||
"Create a new card" : "یک برگهٔ جدید بسازید",
|
||||
"Create a new card" : "برگهٔ جدید بسازید",
|
||||
"Select a board" : "انتخاب یک تخته",
|
||||
"Select a list" : "یک فهرست برگزینید",
|
||||
"Card title" : "عنوان برگه",
|
||||
"Cancel" : "لغو",
|
||||
"Creating the new card …" : "ساختن برگهٔ جدید ...",
|
||||
"Creating the new card …" : "ساختن برگهٔ جدید",
|
||||
"Card \"{card}\" was added to \"{board}\"" : "برگه \"{card}\" به \"{board}\" اضافه شد",
|
||||
"Open card" : "بازکردن برگه",
|
||||
"Open card" : "برگهٔ گشوده",
|
||||
"Close" : "بسته",
|
||||
"Create card" : "ایجاد برگه",
|
||||
"Create card" : "برگه بسازید",
|
||||
"Select a card" : "انتخاب یک برگه",
|
||||
"Select the card to link to a project" : "برگهای را برای ایجاد پیوند با یک پروژه انتخاب کنید",
|
||||
"Link to card" : "پیوند به برگه",
|
||||
@@ -200,10 +200,10 @@ OC.L10N.register(
|
||||
"The title cannot be empty." : "عنوان نمیتواند خالی باشد.",
|
||||
"No comments yet. Begin the discussion!" : "هنوز نظری وجود ندارد. بحثی را آغاز کنید!",
|
||||
"Failed to load comments" : "نظرات بارگیری نشد",
|
||||
"Assign a tag to this card…" : "یک برچسب به این برگه اختصاص دهید…",
|
||||
"Assign a tag to this card…" : "یک برچسب به این کارت اختصاص دهید…",
|
||||
"Assign to users" : "به کاربران اختصاص دهید",
|
||||
"Assign to users/groups/circles" : "به کاربران/ گروهها/ حلقهها اختصاص دهید",
|
||||
"Assign a user to this card…" : "اختصاص یک کاربر به این برگه…",
|
||||
"Assign a user to this card…" : "اختصاص یک کاربر به این کارت…",
|
||||
"Due date" : "موعد مقرر",
|
||||
"Set a due date" : "تاریخ سررسید را تعیین کنید",
|
||||
"Remove due date" : "تاریخ سررسید را حذف کنید",
|
||||
@@ -232,11 +232,11 @@ OC.L10N.register(
|
||||
"{count} comments, {unread} unread" : "{count} نظر، { خوانده نشده} خوانده نشده",
|
||||
"Assign to me" : "به من اختصاص دهید",
|
||||
"Unassign myself" : "واگذاری به خودم را لغو میکنم",
|
||||
"Move card" : "انتقال برگه",
|
||||
"Move card" : "انتقال کارت",
|
||||
"Unarchive card" : "برگه را از بایگانی خارج کنید",
|
||||
"Archive card" : "بایگانی برگه",
|
||||
"Delete card" : "حذف برگه",
|
||||
"Move card to another board" : "انتقال برگه به تختهای دیگر",
|
||||
"Archive card" : "کارت بایگانی",
|
||||
"Delete card" : "حذف کارت",
|
||||
"Move card to another board" : "انتقال کارت به تختهای دیگر",
|
||||
"List is empty" : "فهرست خالی است",
|
||||
"Card deleted" : "برگه پاک شد",
|
||||
"seconds ago" : "ثانیههایی پیش",
|
||||
|
||||
24
l10n/fa.json
24
l10n/fa.json
@@ -71,7 +71,7 @@
|
||||
"The card {deck-card} on {deck-board} has reached its due date." : "برگه {deck-card} در {deck-board} به تاریخ سررسید خود رسیده است.",
|
||||
"{user} has mentioned you in a comment on {deck-card}." : "{user} از شما در نظری در {deck-card} نام برده است.",
|
||||
"{user} has shared {deck-board} with you." : "{user} {deck-board} را با شما به اشتراک گذاشته است.",
|
||||
"Card comments" : "دیدگاههای برگه",
|
||||
"Card comments" : "برگهٔ نظر",
|
||||
"No data was provided to create an attachment." : "هیچ داده ای برای ایجاد پیوست ارائه نشد.",
|
||||
"Finished" : "تمام شده",
|
||||
"To review" : "برای بازبینی",
|
||||
@@ -99,20 +99,20 @@
|
||||
"Personal planning and team project organization" : "برنامهریزی شخصی و سازماندهی کار گروهی",
|
||||
"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- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "برگهدان یک ابزار سازماندهی سبک کانبان است که هدف آن برنامهریزی شخصی و سازماندهی پروژه برای گروههای مرتبط با Nextcloud است.\n\n\n- 📥 وظایف خود را به برگهها اضافه کنید و آنها را مرتب کنید\n- 📄 یادداشتهای اضافی را در Markdown یادداشت کنید\n- 🔖 برچسبهایی را برای سازماندهی بهتر اختصاص دهید\n- 👥 با گروه، دوستان یا خانوادهٔ خود به اشتراک بگذارید\n- 📎 فایلها را ضمیمه کنید و آنها را در توضیحات Markdown خود قرار دهید\n- 💬 با استفاده از نظرات با تیم خود بحث کنید\n- ⚡ تغییرات در جریان فعالیت را پیگیری کنید\n- 🚀 پروژه خود را سازماندهی کنید",
|
||||
"Card details" : "جزئیات برگه",
|
||||
"Add board" : "افزودن تخته",
|
||||
"Add board" : "تخته را اضافه کنید",
|
||||
"Select the board to link to a project" : "تختهای را برای ایجاد پیوند با یک پروژه انتخاب کنید",
|
||||
"Search by board title" : "جستجو بر اساس عنوان تخته",
|
||||
"Select board" : "انتخاب تخته",
|
||||
"Create a new card" : "یک برگهٔ جدید بسازید",
|
||||
"Create a new card" : "برگهٔ جدید بسازید",
|
||||
"Select a board" : "انتخاب یک تخته",
|
||||
"Select a list" : "یک فهرست برگزینید",
|
||||
"Card title" : "عنوان برگه",
|
||||
"Cancel" : "لغو",
|
||||
"Creating the new card …" : "ساختن برگهٔ جدید ...",
|
||||
"Creating the new card …" : "ساختن برگهٔ جدید",
|
||||
"Card \"{card}\" was added to \"{board}\"" : "برگه \"{card}\" به \"{board}\" اضافه شد",
|
||||
"Open card" : "بازکردن برگه",
|
||||
"Open card" : "برگهٔ گشوده",
|
||||
"Close" : "بسته",
|
||||
"Create card" : "ایجاد برگه",
|
||||
"Create card" : "برگه بسازید",
|
||||
"Select a card" : "انتخاب یک برگه",
|
||||
"Select the card to link to a project" : "برگهای را برای ایجاد پیوند با یک پروژه انتخاب کنید",
|
||||
"Link to card" : "پیوند به برگه",
|
||||
@@ -198,10 +198,10 @@
|
||||
"The title cannot be empty." : "عنوان نمیتواند خالی باشد.",
|
||||
"No comments yet. Begin the discussion!" : "هنوز نظری وجود ندارد. بحثی را آغاز کنید!",
|
||||
"Failed to load comments" : "نظرات بارگیری نشد",
|
||||
"Assign a tag to this card…" : "یک برچسب به این برگه اختصاص دهید…",
|
||||
"Assign a tag to this card…" : "یک برچسب به این کارت اختصاص دهید…",
|
||||
"Assign to users" : "به کاربران اختصاص دهید",
|
||||
"Assign to users/groups/circles" : "به کاربران/ گروهها/ حلقهها اختصاص دهید",
|
||||
"Assign a user to this card…" : "اختصاص یک کاربر به این برگه…",
|
||||
"Assign a user to this card…" : "اختصاص یک کاربر به این کارت…",
|
||||
"Due date" : "موعد مقرر",
|
||||
"Set a due date" : "تاریخ سررسید را تعیین کنید",
|
||||
"Remove due date" : "تاریخ سررسید را حذف کنید",
|
||||
@@ -230,11 +230,11 @@
|
||||
"{count} comments, {unread} unread" : "{count} نظر، { خوانده نشده} خوانده نشده",
|
||||
"Assign to me" : "به من اختصاص دهید",
|
||||
"Unassign myself" : "واگذاری به خودم را لغو میکنم",
|
||||
"Move card" : "انتقال برگه",
|
||||
"Move card" : "انتقال کارت",
|
||||
"Unarchive card" : "برگه را از بایگانی خارج کنید",
|
||||
"Archive card" : "بایگانی برگه",
|
||||
"Delete card" : "حذف برگه",
|
||||
"Move card to another board" : "انتقال برگه به تختهای دیگر",
|
||||
"Archive card" : "کارت بایگانی",
|
||||
"Delete card" : "حذف کارت",
|
||||
"Move card to another board" : "انتقال کارت به تختهای دیگر",
|
||||
"List is empty" : "فهرست خالی است",
|
||||
"Card deleted" : "برگه پاک شد",
|
||||
"seconds ago" : "ثانیههایی پیش",
|
||||
|
||||
@@ -291,4 +291,4 @@ OC.L10N.register(
|
||||
"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- 📎 Attach files and embed them in your markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck est un outil d'organisation de style kanban destiné à la planification personnelle et à l'organisation de projets pour les équipes intégrées à Nextcloud.\n\n\n- 📥 Ajoutez vos tâches à des cartes et organisez-les\n- 📄 Écrivez des notes supplémentaires en Markdown\n- 🔖 Affectez des étiquettes pour une organisation encore meilleure\n- 👥 Partagez avec votre équipe, vos amis ou votre famille\n- 📎 Attachez des fichiers et utilisez les dans vos descriptions en Markdown\n- 💬 Échangez avec votre équipe grâce aux commentaires\n- ⚡ Gardez un œil sur les modifications dans le flux d'activité\n- 🚀 Organisez vos projets",
|
||||
"This week" : "Cette semaine"
|
||||
},
|
||||
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
"nplurals=2; plural=(n > 1);");
|
||||
|
||||
@@ -288,5 +288,5 @@
|
||||
"Share" : "Partager",
|
||||
"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- 📎 Attach files and embed them in your markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck est un outil d'organisation de style kanban destiné à la planification personnelle et à l'organisation de projets pour les équipes intégrées à Nextcloud.\n\n\n- 📥 Ajoutez vos tâches à des cartes et organisez-les\n- 📄 Écrivez des notes supplémentaires en Markdown\n- 🔖 Affectez des étiquettes pour une organisation encore meilleure\n- 👥 Partagez avec votre équipe, vos amis ou votre famille\n- 📎 Attachez des fichiers et utilisez les dans vos descriptions en Markdown\n- 💬 Échangez avec votre équipe grâce aux commentaires\n- ⚡ Gardez un œil sur les modifications dans le flux d'activité\n- 🚀 Organisez vos projets",
|
||||
"This week" : "Cette semaine"
|
||||
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
},"pluralForm" :"nplurals=2; plural=(n > 1);"
|
||||
}
|
||||
@@ -135,7 +135,6 @@ OC.L10N.register(
|
||||
"Archived cards" : "Archivált kártyák",
|
||||
"Add list" : "Lista hozzáadása",
|
||||
"List name" : "Listanév",
|
||||
"Active filters" : "Aktív szűrők",
|
||||
"Apply filter" : "Szűrő alkalmazása",
|
||||
"Filter by tag" : "Szűrés címke szerint",
|
||||
"Filter by assigned user" : "Szűrés hozzárendelt felhasználó szerint",
|
||||
|
||||
@@ -133,7 +133,6 @@
|
||||
"Archived cards" : "Archivált kártyák",
|
||||
"Add list" : "Lista hozzáadása",
|
||||
"List name" : "Listanév",
|
||||
"Active filters" : "Aktív szűrők",
|
||||
"Apply filter" : "Szűrő alkalmazása",
|
||||
"Filter by tag" : "Szűrés címke szerint",
|
||||
"Filter by assigned user" : "Szűrés hozzárendelt felhasználó szerint",
|
||||
|
||||
@@ -291,4 +291,4 @@ OC.L10N.register(
|
||||
"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- 📎 Attach files and embed them in your markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck è uno strumento di organizzazione in stile kanban destinato alla pianificazione personale e all'organizzazione di progetti per squadre integrato con Nextcloud.\n\n\n- 📥 Aggiungi le tue attività alle schede e tienile in ordine\n- 📄 Scrivi note aggiuntive in markdown\n- 🔖 Assegna etichette per un'organizzazione ancora migliore\n- 👥 Condividi con la tua squadra, amici o famiglia\n- 📎 Allega file e integrali nella tua descrizione markdown\n- 💬 Discuti con la tua squadra utilizzando i commenti\n- ⚡ Tieni traccia dei cambiamenti nel flusso delle attività\n- 🚀 Organizza il tuo progetto",
|
||||
"This week" : "Questa settimana"
|
||||
},
|
||||
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -288,5 +288,5 @@
|
||||
"Share" : "Condividi",
|
||||
"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- 📎 Attach files and embed them in your markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Deck è uno strumento di organizzazione in stile kanban destinato alla pianificazione personale e all'organizzazione di progetti per squadre integrato con Nextcloud.\n\n\n- 📥 Aggiungi le tue attività alle schede e tienile in ordine\n- 📄 Scrivi note aggiuntive in markdown\n- 🔖 Assegna etichette per un'organizzazione ancora migliore\n- 👥 Condividi con la tua squadra, amici o famiglia\n- 📎 Allega file e integrali nella tua descrizione markdown\n- 💬 Discuti con la tua squadra utilizzando i commenti\n- ⚡ Tieni traccia dei cambiamenti nel flusso delle attività\n- 🚀 Organizza il tuo progetto",
|
||||
"This week" : "Questa settimana"
|
||||
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -2,7 +2,6 @@ OC.L10N.register(
|
||||
"deck",
|
||||
{
|
||||
"Personal" : "ផ្ទាល់ខ្លួន",
|
||||
"copy" : "ចម្លង",
|
||||
"Done" : "Done",
|
||||
"Cancel" : "បោះបង់",
|
||||
"Close" : "បិទ",
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{ "translations": {
|
||||
"Personal" : "ផ្ទាល់ខ្លួន",
|
||||
"copy" : "ចម្លង",
|
||||
"Done" : "Done",
|
||||
"Cancel" : "បោះបង់",
|
||||
"Close" : "បិទ",
|
||||
|
||||
@@ -135,7 +135,6 @@ OC.L10N.register(
|
||||
"Archived cards" : "Zarchiwizowane karty",
|
||||
"Add list" : "Dodaj listę",
|
||||
"List name" : "Nazwa listy",
|
||||
"Active filters" : "Aktywne filtry",
|
||||
"Apply filter" : "Zastosuj filtr",
|
||||
"Filter by tag" : "Filtruj według etykiety",
|
||||
"Filter by assigned user" : "Filtruj według przydzielonego użytkownika",
|
||||
|
||||
@@ -133,7 +133,6 @@
|
||||
"Archived cards" : "Zarchiwizowane karty",
|
||||
"Add list" : "Dodaj listę",
|
||||
"List name" : "Nazwa listy",
|
||||
"Active filters" : "Aktywne filtry",
|
||||
"Apply filter" : "Zastosuj filtr",
|
||||
"Filter by tag" : "Filtruj według etykiety",
|
||||
"Filter by assigned user" : "Filtruj według przydzielonego użytkownika",
|
||||
|
||||
@@ -135,7 +135,6 @@ OC.L10N.register(
|
||||
"Archived cards" : "Cartões arquivados",
|
||||
"Add list" : "Adicionar lista",
|
||||
"List name" : "Nome da lista",
|
||||
"Active filters" : "Filtros ativos",
|
||||
"Apply filter" : "Aplicar filtro",
|
||||
"Filter by tag" : "Filtrar por etiqueta",
|
||||
"Filter by assigned user" : "Filtrar por usuário atribuído",
|
||||
@@ -300,4 +299,4 @@ OC.L10N.register(
|
||||
"This week" : "Esta semana",
|
||||
"Are you sure you want to transfer the board {title} for {user}?" : "Tem certeza de que deseja transferir o quadro {title} para {user}?"
|
||||
},
|
||||
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
"nplurals=2; plural=(n > 1);");
|
||||
|
||||
@@ -133,7 +133,6 @@
|
||||
"Archived cards" : "Cartões arquivados",
|
||||
"Add list" : "Adicionar lista",
|
||||
"List name" : "Nome da lista",
|
||||
"Active filters" : "Filtros ativos",
|
||||
"Apply filter" : "Aplicar filtro",
|
||||
"Filter by tag" : "Filtrar por etiqueta",
|
||||
"Filter by assigned user" : "Filtrar por usuário atribuído",
|
||||
@@ -297,5 +296,5 @@
|
||||
"Failed to transfer the board for {user}" : "Falha ao transferir a reunião para {user}",
|
||||
"This week" : "Esta semana",
|
||||
"Are you sure you want to transfer the board {title} for {user}?" : "Tem certeza de que deseja transferir o quadro {title} para {user}?"
|
||||
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
},"pluralForm" :"nplurals=2; plural=(n > 1);"
|
||||
}
|
||||
@@ -158,4 +158,4 @@ OC.L10N.register(
|
||||
"Share" : "Partilhar",
|
||||
"This week" : "Esta semana"
|
||||
},
|
||||
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -155,5 +155,5 @@
|
||||
"An error occurred" : "Ocorreu um erro",
|
||||
"Share" : "Partilhar",
|
||||
"This week" : "Esta semana"
|
||||
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -8,14 +8,9 @@ OC.L10N.register(
|
||||
"Later" : "Mai târziu",
|
||||
"copy" : "copiază",
|
||||
"Done" : "Realizat",
|
||||
"The file was uploaded" : "Fișierul a fost încărcat",
|
||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Fișierul încărcat depășește directiva upload_max_filesize din php.ini",
|
||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Fișierul încărcat depășește directiva MAX_FILE_SIZE specificată în formularul HTML",
|
||||
"The file was only partially uploaded" : "Fișierul a fost încărcat doar parțial",
|
||||
"No file was uploaded" : "Nu a fost încărcat niciun fișier",
|
||||
"Missing a temporary folder" : "Lipsește un dosar temporar",
|
||||
"Could not write file to disk" : "Nu s-a putut scrie fișierul pe disc",
|
||||
"A PHP extension stopped the file upload" : "O extensie PHP a oprit încărcarea fișierelor",
|
||||
"Card not found" : "Card negăsit ",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Dată invalidă, formatul trebuie să fie AAAA-LL-ZZ",
|
||||
"Add board" : "Adaugă panou",
|
||||
|
||||
@@ -6,14 +6,9 @@
|
||||
"Later" : "Mai târziu",
|
||||
"copy" : "copiază",
|
||||
"Done" : "Realizat",
|
||||
"The file was uploaded" : "Fișierul a fost încărcat",
|
||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Fișierul încărcat depășește directiva upload_max_filesize din php.ini",
|
||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Fișierul încărcat depășește directiva MAX_FILE_SIZE specificată în formularul HTML",
|
||||
"The file was only partially uploaded" : "Fișierul a fost încărcat doar parțial",
|
||||
"No file was uploaded" : "Nu a fost încărcat niciun fișier",
|
||||
"Missing a temporary folder" : "Lipsește un dosar temporar",
|
||||
"Could not write file to disk" : "Nu s-a putut scrie fișierul pe disc",
|
||||
"A PHP extension stopped the file upload" : "O extensie PHP a oprit încărcarea fișierelor",
|
||||
"Card not found" : "Card negăsit ",
|
||||
"Invalid date, date format must be YYYY-MM-DD" : "Dată invalidă, formatul trebuie să fie AAAA-LL-ZZ",
|
||||
"Add board" : "Adaugă panou",
|
||||
|
||||
@@ -135,7 +135,6 @@ OC.L10N.register(
|
||||
"Archived cards" : "Arşivlenmiş kartlar",
|
||||
"Add list" : "Liste ekle",
|
||||
"List name" : "Liste adı",
|
||||
"Active filters" : "Etkin süzgeçler",
|
||||
"Apply filter" : "Süzgeci uygula",
|
||||
"Filter by tag" : "Etikete göre süz",
|
||||
"Filter by assigned user" : "Atanmış kullanıcıya göre süz",
|
||||
|
||||
@@ -133,7 +133,6 @@
|
||||
"Archived cards" : "Arşivlenmiş kartlar",
|
||||
"Add list" : "Liste ekle",
|
||||
"List name" : "Liste adı",
|
||||
"Active filters" : "Etkin süzgeçler",
|
||||
"Apply filter" : "Süzgeci uygula",
|
||||
"Filter by tag" : "Etikete göre süz",
|
||||
"Filter by assigned user" : "Atanmış kullanıcıya göre süz",
|
||||
|
||||
@@ -124,7 +124,6 @@ OC.L10N.register(
|
||||
"Next month" : "Наступний місяць",
|
||||
"Save" : "Зберегти",
|
||||
"In reply to" : "У відповідь",
|
||||
"Cancel reply" : "Скасувати відповідь",
|
||||
"Reply" : "Відповісти",
|
||||
"Update" : "Оновлення",
|
||||
"Description" : "Опис",
|
||||
|
||||
@@ -122,7 +122,6 @@
|
||||
"Next month" : "Наступний місяць",
|
||||
"Save" : "Зберегти",
|
||||
"In reply to" : "У відповідь",
|
||||
"Cancel reply" : "Скасувати відповідь",
|
||||
"Reply" : "Відповісти",
|
||||
"Update" : "Оновлення",
|
||||
"Description" : "Опис",
|
||||
|
||||
@@ -135,7 +135,6 @@ OC.L10N.register(
|
||||
"Archived cards" : "已存檔卡片",
|
||||
"Add list" : "添加清單",
|
||||
"List name" : "清單名稱",
|
||||
"Active filters" : "有效的過濾器",
|
||||
"Apply filter" : "應用過濾器",
|
||||
"Filter by tag" : "以標籤過濾",
|
||||
"Filter by assigned user" : "以指派用戶過濾",
|
||||
|
||||
@@ -133,7 +133,6 @@
|
||||
"Archived cards" : "已存檔卡片",
|
||||
"Add list" : "添加清單",
|
||||
"List name" : "清單名稱",
|
||||
"Active filters" : "有效的過濾器",
|
||||
"Apply filter" : "應用過濾器",
|
||||
"Filter by tag" : "以標籤過濾",
|
||||
"Filter by assigned user" : "以指派用戶過濾",
|
||||
|
||||
@@ -135,7 +135,6 @@ OC.L10N.register(
|
||||
"Archived cards" : "已封存的卡片",
|
||||
"Add list" : "新增列表",
|
||||
"List name" : "列表名稱",
|
||||
"Active filters" : "作用中的過濾條件",
|
||||
"Apply filter" : "套用過濾條件",
|
||||
"Filter by tag" : "按標籤過濾",
|
||||
"Filter by assigned user" : "按被分配的使用者過濾",
|
||||
|
||||
@@ -133,7 +133,6 @@
|
||||
"Archived cards" : "已封存的卡片",
|
||||
"Add list" : "新增列表",
|
||||
"List name" : "列表名稱",
|
||||
"Active filters" : "作用中的過濾條件",
|
||||
"Apply filter" : "套用過濾條件",
|
||||
"Filter by tag" : "按標籤過濾",
|
||||
"Filter by assigned user" : "按被分配的使用者過濾",
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* @copyright Copyright (c) 2020 Julius Härtl <jus@bitgrid.net>
|
||||
*
|
||||
* @author Julius Härtl <jus@bitgrid.net>
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
|
||||
namespace OCA\Deck\Cache;
|
||||
|
||||
use OCP\ICache;
|
||||
use OCP\ICacheFactory;
|
||||
|
||||
class AttachmentCacheHelper {
|
||||
/** @var ICache */
|
||||
private $cache;
|
||||
|
||||
public function __construct(ICacheFactory $cacheFactory) {
|
||||
$this->cache = $cacheFactory->createDistributed('deck-attachments');
|
||||
}
|
||||
|
||||
public function getAttachmentCount(int $cardId): ?int {
|
||||
return $this->cache->get('count-' . $cardId);
|
||||
}
|
||||
|
||||
public function setAttachmentCount(int $cardId, int $count): void {
|
||||
$this->cache->set('count-' . $cardId, $count);
|
||||
}
|
||||
|
||||
public function clearAttachmentCount(int $cardId): void {
|
||||
$this->cache->remove('count-' . $cardId);
|
||||
}
|
||||
}
|
||||
@@ -34,10 +34,11 @@ use OCA\Deck\Db\ChangeHelper;
|
||||
use OCA\Deck\InvalidAttachmentType;
|
||||
use OCA\Deck\NoPermissionException;
|
||||
use OCA\Deck\NotFoundException;
|
||||
use OCA\Deck\Cache\AttachmentCacheHelper;
|
||||
use OCA\Deck\StatusException;
|
||||
use OCP\AppFramework\Db\IMapperException;
|
||||
use OCP\AppFramework\Http\Response;
|
||||
use OCP\ICache;
|
||||
use OCP\ICacheFactory;
|
||||
use OCP\IL10N;
|
||||
|
||||
class AttachmentService {
|
||||
@@ -48,10 +49,9 @@ class AttachmentService {
|
||||
|
||||
/** @var IAttachmentService[] */
|
||||
private $services = [];
|
||||
/** @var Application */
|
||||
private $application;
|
||||
/** @var AttachmentCacheHelper */
|
||||
private $attachmentCacheHelper;
|
||||
/** @var ICache */
|
||||
private $cache;
|
||||
/** @var IL10N */
|
||||
private $l10n;
|
||||
/** @var ActivityManager */
|
||||
@@ -59,13 +59,13 @@ class AttachmentService {
|
||||
/** @var ChangeHelper */
|
||||
private $changeHelper;
|
||||
|
||||
public function __construct(AttachmentMapper $attachmentMapper, CardMapper $cardMapper, ChangeHelper $changeHelper, PermissionService $permissionService, Application $application, AttachmentCacheHelper $attachmentCacheHelper, $userId, IL10N $l10n, ActivityManager $activityManager) {
|
||||
public function __construct(AttachmentMapper $attachmentMapper, CardMapper $cardMapper, ChangeHelper $changeHelper, PermissionService $permissionService, Application $application, ICacheFactory $cacheFactory, $userId, IL10N $l10n, ActivityManager $activityManager) {
|
||||
$this->attachmentMapper = $attachmentMapper;
|
||||
$this->cardMapper = $cardMapper;
|
||||
$this->permissionService = $permissionService;
|
||||
$this->userId = $userId;
|
||||
$this->application = $application;
|
||||
$this->attachmentCacheHelper = $attachmentCacheHelper;
|
||||
$this->cache = $cacheFactory->createDistributed('deck-card-attachments-');
|
||||
$this->l10n = $l10n;
|
||||
$this->activityManager = $activityManager;
|
||||
$this->changeHelper = $changeHelper;
|
||||
@@ -139,16 +139,14 @@ class AttachmentService {
|
||||
* @param $cardId
|
||||
* @return int|mixed
|
||||
* @throws BadRequestException
|
||||
* @throws InvalidAttachmentType
|
||||
* @throws \OCP\DB\Exception
|
||||
*/
|
||||
public function count($cardId) {
|
||||
if (is_numeric($cardId) === false) {
|
||||
throw new BadRequestException('card id must be a number');
|
||||
}
|
||||
|
||||
$count = $this->attachmentCacheHelper->getAttachmentCount((int)$cardId);
|
||||
if ($count === null) {
|
||||
$count = $this->cache->get('card-' . $cardId);
|
||||
if (!$count) {
|
||||
$count = count($this->attachmentMapper->findAll($cardId));
|
||||
|
||||
foreach (array_keys($this->services) as $attachmentType) {
|
||||
@@ -158,7 +156,7 @@ class AttachmentService {
|
||||
}
|
||||
}
|
||||
|
||||
$this->attachmentCacheHelper->setAttachmentCount((int)$cardId, $count);
|
||||
$this->cache->set('card-' . $cardId, $count);
|
||||
}
|
||||
|
||||
return $count;
|
||||
@@ -188,7 +186,7 @@ class AttachmentService {
|
||||
|
||||
$this->permissionService->checkPermission($this->cardMapper, $cardId, Acl::PERMISSION_EDIT);
|
||||
|
||||
$this->attachmentCacheHelper->clearAttachmentCount((int)$cardId);
|
||||
$this->cache->clear('card-' . $cardId);
|
||||
$attachment = new Attachment();
|
||||
$attachment->setCardId($cardId);
|
||||
$attachment->setType($type);
|
||||
@@ -300,7 +298,7 @@ class AttachmentService {
|
||||
}
|
||||
|
||||
$this->permissionService->checkPermission($this->cardMapper, $attachment->getCardId(), Acl::PERMISSION_EDIT);
|
||||
$this->attachmentCacheHelper->clearAttachmentCount($cardId);
|
||||
$this->cache->clear('card-' . $attachment->getCardId());
|
||||
|
||||
$attachment->setData($data);
|
||||
try {
|
||||
@@ -358,7 +356,7 @@ class AttachmentService {
|
||||
}
|
||||
}
|
||||
|
||||
$this->attachmentCacheHelper->clearAttachmentCount($cardId);
|
||||
$this->cache->clear('card-' . $attachment->getCardId());
|
||||
$this->changeHelper->cardChanged($attachment->getCardId());
|
||||
$this->activityManager->triggerEvent(ActivityManager::DECK_OBJECT_CARD, $attachment, ActivityManager::SUBJECT_ATTACHMENT_DELETE);
|
||||
return $attachment;
|
||||
@@ -372,7 +370,7 @@ class AttachmentService {
|
||||
}
|
||||
|
||||
$this->permissionService->checkPermission($this->cardMapper, $attachment->getCardId(), Acl::PERMISSION_EDIT);
|
||||
$this->attachmentCacheHelper->clearAttachmentCount($cardId);
|
||||
$this->cache->clear('card-' . $attachment->getCardId());
|
||||
|
||||
try {
|
||||
$service = $this->getService($attachment->getType());
|
||||
|
||||
@@ -96,8 +96,7 @@ class ConfigService {
|
||||
return false;
|
||||
}
|
||||
|
||||
$appConfigState = $this->config->getAppValue(Application::APP_ID, 'calendar', 'yes') === 'yes';
|
||||
$defaultState = (bool)$this->config->getUserValue($this->getUserId(), Application::APP_ID, 'calendar', $appConfigState);
|
||||
$defaultState = (bool)$this->config->getUserValue($this->getUserId(), Application::APP_ID, 'calendar', true);
|
||||
if ($boardId === null) {
|
||||
return $defaultState;
|
||||
}
|
||||
|
||||
@@ -28,7 +28,6 @@ namespace OCA\Deck\Sharing;
|
||||
|
||||
use Doctrine\DBAL\Platforms\MySQLPlatform;
|
||||
use OC\Files\Cache\Cache;
|
||||
use OCA\Deck\Cache\AttachmentCacheHelper;
|
||||
use OCA\Deck\Db\Acl;
|
||||
use OCA\Deck\Db\Board;
|
||||
use OCA\Deck\Db\BoardMapper;
|
||||
@@ -47,6 +46,7 @@ use OCP\Files\IMimeTypeLoader;
|
||||
use OCP\Files\Node;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\IL10N;
|
||||
use OCP\Security\ISecureRandom;
|
||||
use OCP\Share\Exceptions\GenericShareException;
|
||||
use OCP\Share\Exceptions\ShareNotFound;
|
||||
use OCP\Share\IManager;
|
||||
@@ -70,8 +70,6 @@ class DeckShareProvider implements \OCP\Share\IShareProvider {
|
||||
private $dbConnection;
|
||||
/** @var IManager */
|
||||
private $shareManager;
|
||||
/** @var AttachmentCacheHelper */
|
||||
private $attachmentCacheHelper;
|
||||
/** @var BoardMapper */
|
||||
private $boardMapper;
|
||||
/** @var CardMapper */
|
||||
@@ -80,25 +78,14 @@ class DeckShareProvider implements \OCP\Share\IShareProvider {
|
||||
private $permissionService;
|
||||
/** @var ITimeFactory */
|
||||
private $timeFactory;
|
||||
/** @var IL10N */
|
||||
private $l;
|
||||
|
||||
public function __construct(
|
||||
IDBConnection $connection,
|
||||
IManager $shareManager,
|
||||
BoardMapper $boardMapper,
|
||||
CardMapper $cardMapper,
|
||||
PermissionService $permissionService,
|
||||
AttachmentCacheHelper $attachmentCacheHelper,
|
||||
IL10N $l
|
||||
) {
|
||||
public function __construct(IDBConnection $connection, IManager $shareManager, ISecureRandom $secureRandom, BoardMapper $boardMapper, CardMapper $cardMapper, PermissionService $permissionService, IL10N $l) {
|
||||
$this->dbConnection = $connection;
|
||||
$this->shareManager = $shareManager;
|
||||
$this->boardMapper = $boardMapper;
|
||||
$this->cardMapper = $cardMapper;
|
||||
$this->attachmentCacheHelper = $attachmentCacheHelper;
|
||||
$this->permissionService = $permissionService;
|
||||
|
||||
$this->l = $l;
|
||||
$this->timeFactory = \OC::$server->get(ITimeFactory::class);
|
||||
}
|
||||
@@ -166,8 +153,6 @@ class DeckShareProvider implements \OCP\Share\IShareProvider {
|
||||
);
|
||||
$data = $this->getRawShare($shareId);
|
||||
|
||||
$this->attachmentCacheHelper->clearAttachmentCount((int)$cardId);
|
||||
|
||||
return $this->createShareObject($data);
|
||||
}
|
||||
|
||||
@@ -355,8 +340,6 @@ class DeckShareProvider implements \OCP\Share\IShareProvider {
|
||||
$qb->orWhere($qb->expr()->eq('parent', $qb->createNamedParameter($share->getId())));
|
||||
|
||||
$qb->execute();
|
||||
|
||||
$this->attachmentCacheHelper->clearAttachmentCount((int)$share->getSharedWith());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
2
package-lock.json
generated
2
package-lock.json
generated
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "deck",
|
||||
"version": "1.5.8",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "deck",
|
||||
"description": "",
|
||||
"version": "1.5.8",
|
||||
"version": "1.5.7",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Julius Härtl",
|
||||
@@ -65,8 +65,8 @@
|
||||
"extends @nextcloud/browserslist-config"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^14.0.0",
|
||||
"npm": "^7.0.0"
|
||||
"node": ">=14.0.0",
|
||||
"npm": ">=7.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@nextcloud/babel-config": "^1.0.0-beta.1",
|
||||
@@ -96,4 +96,4 @@
|
||||
"<rootDir>/node_modules/jest-serializer-vue"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -109,7 +109,7 @@ import relativeDate from '../../mixins/relativeDate'
|
||||
import { formatFileSize } from '@nextcloud/files'
|
||||
import { getCurrentUser } from '@nextcloud/auth'
|
||||
import { generateUrl, generateOcsUrl, generateRemoteUrl } from '@nextcloud/router'
|
||||
import { mapState, mapActions } from 'vuex'
|
||||
import { mapState } from 'vuex'
|
||||
import { loadState } from '@nextcloud/initial-state'
|
||||
import attachmentUpload from '../../mixins/attachmentUpload'
|
||||
import { getFilePickerBuilder } from '@nextcloud/dialogs'
|
||||
@@ -205,14 +205,11 @@ export default {
|
||||
cardId: {
|
||||
immediate: true,
|
||||
handler() {
|
||||
this.fetchAttachments(this.cardId)
|
||||
this.$store.dispatch('fetchAttachments', this.cardId)
|
||||
},
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
...mapActions([
|
||||
'fetchAttachments',
|
||||
]),
|
||||
handleUploadFile(event) {
|
||||
const files = event.target.files ?? []
|
||||
for (const file of files) {
|
||||
@@ -236,7 +233,7 @@ export default {
|
||||
shareType: 12,
|
||||
shareWith: '' + this.cardId,
|
||||
}).then(() => {
|
||||
this.fetchAttachments(this.cardId)
|
||||
this.$store.dispatch('fetchAttachments', this.cardId)
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
@@ -330,11 +330,9 @@ export default {
|
||||
|
||||
.section-details {
|
||||
flex-grow: 1;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
||||
button.action-item--single {
|
||||
margin-top: -3px;
|
||||
margin-top: -6px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,7 +84,6 @@ export default {
|
||||
async fetchAttachments({ commit }, cardId) {
|
||||
const attachments = await apiClient.fetchAttachments(cardId)
|
||||
commit('createAttachments', { cardId, attachments })
|
||||
commit('cardSetAttachmentCount', { cardId, count: attachments.length })
|
||||
},
|
||||
|
||||
async createAttachment({ commit }, { cardId, formData, onUploadProgress }) {
|
||||
|
||||
@@ -252,12 +252,6 @@ export default {
|
||||
}
|
||||
Vue.set(state.cards[existingIndex], 'lastModified', Date.now() / 1000)
|
||||
},
|
||||
cardSetAttachmentCount(state, { cardId, count }) {
|
||||
const existingIndex = state.cards.findIndex(_card => _card.id === cardId)
|
||||
if (existingIndex !== -1) {
|
||||
Vue.set(state.cards[existingIndex], 'attachmentCount', count)
|
||||
}
|
||||
},
|
||||
cardIncreaseAttachmentCount(state, cardId) {
|
||||
const existingIndex = state.cards.findIndex(_card => _card.id === cardId)
|
||||
if (existingIndex !== -1) {
|
||||
|
||||
@@ -25,7 +25,6 @@ namespace OCA\Deck\Service;
|
||||
|
||||
use OCA\Deck\Activity\ActivityManager;
|
||||
use OCA\Deck\AppInfo\Application;
|
||||
use OCA\Deck\Cache\AttachmentCacheHelper;
|
||||
use OCA\Deck\Db\Acl;
|
||||
use OCA\Deck\Db\Attachment;
|
||||
use OCA\Deck\Db\AttachmentMapper;
|
||||
@@ -36,6 +35,8 @@ use OCA\Deck\NoPermissionException;
|
||||
use OCA\Deck\NotFoundException;
|
||||
use OCP\AppFramework\Http\Response;
|
||||
use OCP\AppFramework\IAppContainer;
|
||||
use OCP\ICache;
|
||||
use OCP\ICacheFactory;
|
||||
use OCP\IL10N;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
use Test\TestCase;
|
||||
@@ -66,11 +67,10 @@ class AttachmentServiceTest extends TestCase {
|
||||
private $cardMapper;
|
||||
/** @var PermissionService|MockObject */
|
||||
private $permissionService;
|
||||
/** @var string */
|
||||
private $userId = 'admin';
|
||||
/** @var Application|MockObject */
|
||||
private $application;
|
||||
private $attachmentCacheHelper;
|
||||
private $cacheFactory;
|
||||
/** @var AttachmentService */
|
||||
private $attachmentService;
|
||||
/** @var MockObject */
|
||||
@@ -78,6 +78,8 @@ class AttachmentServiceTest extends TestCase {
|
||||
/** @var ActivityManager */
|
||||
private $activityManager;
|
||||
private $appContainer;
|
||||
/** ICache */
|
||||
private $cache;
|
||||
/** @var IL10N */
|
||||
private $l10n;
|
||||
/** @var ChangeHelper */
|
||||
@@ -102,9 +104,12 @@ class AttachmentServiceTest extends TestCase {
|
||||
$this->cardMapper = $this->createMock(CardMapper::class);
|
||||
$this->permissionService = $this->createMock(PermissionService::class);
|
||||
$this->application = $this->createMock(Application::class);
|
||||
$this->attachmentCacheHelper = $this->createMock(AttachmentCacheHelper::class);
|
||||
$this->cacheFactory = $this->createMock(ICacheFactory::class);
|
||||
$this->activityManager = $this->createMock(ActivityManager::class);
|
||||
|
||||
$this->cache = $this->createMock(ICache::class);
|
||||
$this->cacheFactory->expects($this->any())->method('createDistributed')->willReturn($this->cache);
|
||||
|
||||
$this->appContainer->expects($this->exactly(2))
|
||||
->method('query')
|
||||
->withConsecutive(
|
||||
@@ -123,17 +128,7 @@ class AttachmentServiceTest extends TestCase {
|
||||
$this->l10n = $this->createMock(IL10N::class);
|
||||
$this->changeHelper = $this->createMock(ChangeHelper::class);
|
||||
|
||||
$this->attachmentService = new AttachmentService(
|
||||
$this->attachmentMapper,
|
||||
$this->cardMapper,
|
||||
$this->changeHelper,
|
||||
$this->permissionService,
|
||||
$this->application,
|
||||
$this->attachmentCacheHelper,
|
||||
$this->userId,
|
||||
$this->l10n,
|
||||
$this->activityManager
|
||||
);
|
||||
$this->attachmentService = new AttachmentService($this->attachmentMapper, $this->cardMapper, $this->changeHelper, $this->permissionService, $this->application, $this->cacheFactory, $this->userId, $this->l10n, $this->activityManager);
|
||||
}
|
||||
|
||||
public function testRegisterAttachmentService() {
|
||||
@@ -158,7 +153,7 @@ class AttachmentServiceTest extends TestCase {
|
||||
$application->expects($this->any())
|
||||
->method('getContainer')
|
||||
->willReturn($appContainer);
|
||||
$attachmentService = new AttachmentService($this->attachmentMapper, $this->cardMapper, $this->changeHelper, $this->permissionService, $application, $this->attachmentCacheHelper, $this->userId, $this->l10n, $this->activityManager);
|
||||
$attachmentService = new AttachmentService($this->attachmentMapper, $this->cardMapper, $this->changeHelper, $this->permissionService, $application, $this->cacheFactory, $this->userId, $this->l10n, $this->activityManager);
|
||||
$attachmentService->registerAttachmentService('custom', MyAttachmentService::class);
|
||||
$this->assertEquals($fileServiceMock, $attachmentService->getService('deck_file'));
|
||||
$this->assertEquals(MyAttachmentService::class, get_class($attachmentService->getService('custom')));
|
||||
@@ -188,7 +183,7 @@ class AttachmentServiceTest extends TestCase {
|
||||
->method('getContainer')
|
||||
->willReturn($appContainer);
|
||||
|
||||
$attachmentService = new AttachmentService($this->attachmentMapper, $this->cardMapper, $this->changeHelper, $this->permissionService, $application, $this->attachmentCacheHelper, $this->userId, $this->l10n, $this->activityManager);
|
||||
$attachmentService = new AttachmentService($this->attachmentMapper, $this->cardMapper, $this->changeHelper, $this->permissionService, $application, $this->cacheFactory, $this->userId, $this->l10n, $this->activityManager);
|
||||
$attachmentService->registerAttachmentService('custom', MyAttachmentService::class);
|
||||
$attachmentService->getService('deck_file_invalid');
|
||||
}
|
||||
@@ -267,14 +262,14 @@ class AttachmentServiceTest extends TestCase {
|
||||
}
|
||||
|
||||
public function testCount() {
|
||||
$this->attachmentCacheHelper->expects($this->once())->method('getAttachmentCount')->with(123)->willReturn(null);
|
||||
$this->cache->expects($this->once())->method('get')->with('card-123')->willReturn(null);
|
||||
$this->attachmentMapper->expects($this->once())->method('findAll')->willReturn([1,2,3,4]);
|
||||
$this->attachmentCacheHelper->expects($this->once())->method('setAttachmentCount')->with(123, 4);
|
||||
$this->cache->expects($this->once())->method('set')->with('card-123', 4)->willReturn(null);
|
||||
$this->assertEquals(4, $this->attachmentService->count(123));
|
||||
}
|
||||
|
||||
public function testCountCacheHit() {
|
||||
$this->attachmentCacheHelper->expects($this->once())->method('getAttachmentCount')->with(123)->willReturn(4);
|
||||
$this->cache->expects($this->once())->method('get')->with('card-123')->willReturn(4);
|
||||
$this->assertEquals(4, $this->attachmentService->count(123));
|
||||
}
|
||||
|
||||
@@ -282,7 +277,7 @@ class AttachmentServiceTest extends TestCase {
|
||||
$attachment = $this->createAttachment('deck_file', 'file_name.jpg');
|
||||
$expected = $this->createAttachment('deck_file', 'file_name.jpg');
|
||||
$this->mockPermission(Acl::PERMISSION_EDIT);
|
||||
$this->attachmentCacheHelper->expects($this->once())->method('clearAttachmentCount')->with(123);
|
||||
$this->cache->expects($this->once())->method('clear')->with('card-123');
|
||||
$this->attachmentServiceImpl->expects($this->once())
|
||||
->method('create');
|
||||
$this->attachmentMapper->expects($this->once())
|
||||
@@ -335,7 +330,7 @@ class AttachmentServiceTest extends TestCase {
|
||||
$attachment = $this->createAttachment('deck_file', 'file_name.jpg');
|
||||
$expected = $this->createAttachment('deck_file', 'file_name.jpg');
|
||||
$this->mockPermission(Acl::PERMISSION_EDIT);
|
||||
$this->attachmentCacheHelper->expects($this->once())->method('clearAttachmentCount')->with(1);
|
||||
$this->cache->expects($this->once())->method('clear')->with('card-123');
|
||||
$this->attachmentMapper->expects($this->once())
|
||||
->method('find')
|
||||
->with(1)
|
||||
@@ -362,7 +357,7 @@ class AttachmentServiceTest extends TestCase {
|
||||
$attachment = $this->createAttachment('deck_file', 'file_name.jpg');
|
||||
$expected = $this->createAttachment('deck_file', 'file_name.jpg');
|
||||
$this->mockPermission(Acl::PERMISSION_EDIT);
|
||||
$this->attachmentCacheHelper->expects($this->once())->method('clearAttachmentCount')->with(1);
|
||||
$this->cache->expects($this->once())->method('clear')->with('card-123');
|
||||
$this->attachmentMapper->expects($this->once())
|
||||
->method('find')
|
||||
->with(1)
|
||||
@@ -383,7 +378,7 @@ class AttachmentServiceTest extends TestCase {
|
||||
$attachment = $this->createAttachment('deck_file', 'file_name.jpg');
|
||||
$expected = $this->createAttachment('deck_file', 'file_name.jpg');
|
||||
$this->mockPermission(Acl::PERMISSION_EDIT);
|
||||
$this->attachmentCacheHelper->expects($this->once())->method('clearAttachmentCount')->with(1);
|
||||
$this->cache->expects($this->once())->method('clear')->with('card-123');
|
||||
$this->attachmentMapper->expects($this->once())
|
||||
->method('find')
|
||||
->with(1)
|
||||
@@ -408,7 +403,7 @@ class AttachmentServiceTest extends TestCase {
|
||||
$attachment = $this->createAttachment('deck_file', 'file_name.jpg');
|
||||
$expected = $this->createAttachment('deck_file', 'file_name.jpg');
|
||||
$this->mockPermission(Acl::PERMISSION_EDIT);
|
||||
$this->attachmentCacheHelper->expects($this->once())->method('clearAttachmentCount')->with(1);
|
||||
$this->cache->expects($this->once())->method('clear')->with('card-123');
|
||||
$this->attachmentMapper->expects($this->once())
|
||||
->method('find')
|
||||
->with(1)
|
||||
@@ -429,7 +424,7 @@ class AttachmentServiceTest extends TestCase {
|
||||
$attachment = $this->createAttachment('deck_file', 'file_name.jpg');
|
||||
$expected = $this->createAttachment('deck_file', 'file_name.jpg');
|
||||
$this->mockPermission(Acl::PERMISSION_EDIT);
|
||||
$this->attachmentCacheHelper->expects($this->once())->method('clearAttachmentCount')->with(1);
|
||||
$this->cache->expects($this->once())->method('clear')->with('card-123');
|
||||
$this->attachmentMapper->expects($this->once())
|
||||
->method('find')
|
||||
->with(1)
|
||||
|
||||
Reference in New Issue
Block a user