Compare commits

..

2 Commits

Author SHA1 Message Date
Luka Trovic
45473df9f4 fix: feedback
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-05-11 14:07:30 +00:00
Luka Trovic
6832d41dee fix: show card after moving into another list
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2022-05-11 14:07:29 +00:00
83 changed files with 117 additions and 277 deletions

View File

@@ -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

View File

@@ -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>

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -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",

View File

@@ -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",

View File

@@ -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" : "ثانیه‌هایی پیش",

View File

@@ -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" : "ثانیه‌هایی پیش",

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -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",

View File

@@ -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",

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -2,7 +2,6 @@ OC.L10N.register(
"deck",
{
"Personal" : "ផ្ទាល់​ខ្លួន",
"copy" : "ចម្លង",
"Done" : "Done",
"Cancel" : "បោះបង់",
"Close" : "បិទ",

View File

@@ -1,6 +1,5 @@
{ "translations": {
"Personal" : "ផ្ទាល់​ខ្លួន",
"copy" : "ចម្លង",
"Done" : "Done",
"Cancel" : "បោះបង់",
"Close" : "បិទ",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -124,7 +124,6 @@ OC.L10N.register(
"Next month" : "Наступний місяць",
"Save" : "Зберегти",
"In reply to" : "У відповідь",
"Cancel reply" : "Скасувати відповідь",
"Reply" : "Відповісти",
"Update" : "Оновлення",
"Description" : "Опис",

View File

@@ -122,7 +122,6 @@
"Next month" : "Наступний місяць",
"Save" : "Зберегти",
"In reply to" : "У відповідь",
"Cancel reply" : "Скасувати відповідь",
"Reply" : "Відповісти",
"Update" : "Оновлення",
"Description" : "Опис",

View File

@@ -135,7 +135,6 @@ OC.L10N.register(
"Archived cards" : "已存檔卡片",
"Add list" : "添加清單",
"List name" : "清單名稱",
"Active filters" : "有效的過濾器",
"Apply filter" : "應用過濾器",
"Filter by tag" : "以標籤過濾",
"Filter by assigned user" : "以指派用戶過濾",

View File

@@ -133,7 +133,6 @@
"Archived cards" : "已存檔卡片",
"Add list" : "添加清單",
"List name" : "清單名稱",
"Active filters" : "有效的過濾器",
"Apply filter" : "應用過濾器",
"Filter by tag" : "以標籤過濾",
"Filter by assigned user" : "以指派用戶過濾",

View File

@@ -135,7 +135,6 @@ OC.L10N.register(
"Archived cards" : "已封存的卡片",
"Add list" : "新增列表",
"List name" : "列表名稱",
"Active filters" : "作用中的過濾條件",
"Apply filter" : "套用過濾條件",
"Filter by tag" : "按標籤過濾",
"Filter by assigned user" : "按被分配的使用者過濾",

View File

@@ -133,7 +133,6 @@
"Archived cards" : "已封存的卡片",
"Add list" : "新增列表",
"List name" : "列表名稱",
"Active filters" : "作用中的過濾條件",
"Apply filter" : "套用過濾條件",
"Filter by tag" : "按標籤過濾",
"Filter by assigned user" : "按被分配的使用者過濾",

View File

@@ -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);
}
}

View File

@@ -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());

View File

@@ -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;
}

View File

@@ -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
View File

@@ -1,6 +1,6 @@
{
"name": "deck",
"version": "1.5.8",
"version": "1.0.0",
"lockfileVersion": 2,
"requires": true,
"packages": {

View File

@@ -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"
]
}
}
}

View File

@@ -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)
})
})
},

View File

@@ -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;
}
}
}

View File

@@ -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 }) {

View File

@@ -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) {

View File

@@ -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)