From e7d8ce70602ca9bccd26e4a327e5d79b7d4d0dba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Mon, 2 Nov 2015 11:08:19 +0100 Subject: [PATCH 001/100] Remove the projects sample text from joyride since its not already done --- app/locales/locale-en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/locales/locale-en.json b/app/locales/locale-en.json index c959212b..847655d4 100644 --- a/app/locales/locale-en.json +++ b/app/locales/locale-en.json @@ -1359,7 +1359,7 @@ "DASHBOARD": { "STEP1": { "TITLE": "Your project", - "TEXT": "Welcome! Here you will find the projects you are involved on. We have left you sample project templates to help you discover the power of Taiga." + "TEXT": "Welcome! Here you will find the projects you are involved on." }, "STEP2": { "TITLE": "Working on", From 6548653cdd49b04809c4bb9d903a92ce57b647f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Mon, 2 Nov 2015 11:23:08 +0100 Subject: [PATCH 002/100] [i18n] Update locales: fix joyriders --- app/locales/locale-ca.json | 2 +- app/locales/locale-de.json | 2 +- app/locales/locale-es.json | 2 +- app/locales/locale-fi.json | 2 +- app/locales/locale-fr.json | 2 +- app/locales/locale-it.json | 2 +- app/locales/locale-nl.json | 2 +- app/locales/locale-pl.json | 2 +- app/locales/locale-pt-br.json | 2 +- app/locales/locale-ru.json | 2 +- app/locales/locale-zh-hant.json | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/app/locales/locale-ca.json b/app/locales/locale-ca.json index 72fb43d1..de8ce5e6 100644 --- a/app/locales/locale-ca.json +++ b/app/locales/locale-ca.json @@ -1356,7 +1356,7 @@ "DASHBOARD": { "STEP1": { "TITLE": "El teu projecte", - "TEXT": "Welcome! Here you will find the projects you are involved on. We have left you sample project templates to help you discover the power of Taiga." + "TEXT": "Welcome! Here you will find the projects you are involved on." }, "STEP2": { "TITLE": "En Progrés", diff --git a/app/locales/locale-de.json b/app/locales/locale-de.json index 803a8a61..9118f516 100644 --- a/app/locales/locale-de.json +++ b/app/locales/locale-de.json @@ -1356,7 +1356,7 @@ "DASHBOARD": { "STEP1": { "TITLE": "Ihr Projekt", - "TEXT": "Welcome! Here you will find the projects you are involved on. We have left you sample project templates to help you discover the power of Taiga." + "TEXT": "Welcome! Here you will find the projects you are involved on." }, "STEP2": { "TITLE": "Zuletzt bearbeitet", diff --git a/app/locales/locale-es.json b/app/locales/locale-es.json index f19c8c35..7cf8166e 100644 --- a/app/locales/locale-es.json +++ b/app/locales/locale-es.json @@ -1356,7 +1356,7 @@ "DASHBOARD": { "STEP1": { "TITLE": "Su proyecto", - "TEXT": "Bienvenido! Aquí encontrarás los proyectos en los que estás participando. Te hemos dejado plantillas con proyectos de ejemplo para ayudarte a descubrir el poder de Taiga." + "TEXT": "Welcome! Here you will find the projects you are involved on." }, "STEP2": { "TITLE": "Trabajando en", diff --git a/app/locales/locale-fi.json b/app/locales/locale-fi.json index 214b3685..a8160d80 100644 --- a/app/locales/locale-fi.json +++ b/app/locales/locale-fi.json @@ -1356,7 +1356,7 @@ "DASHBOARD": { "STEP1": { "TITLE": "Projektisi", - "TEXT": "Welcome! Here you will find the projects you are involved on. We have left you sample project templates to help you discover the power of Taiga." + "TEXT": "Welcome! Here you will find the projects you are involved on." }, "STEP2": { "TITLE": "Working on", diff --git a/app/locales/locale-fr.json b/app/locales/locale-fr.json index d76d0ea8..3b9d57b2 100644 --- a/app/locales/locale-fr.json +++ b/app/locales/locale-fr.json @@ -1356,7 +1356,7 @@ "DASHBOARD": { "STEP1": { "TITLE": "Votre projet", - "TEXT": "Welcome! Here you will find the projects you are involved on. We have left you sample project templates to help you discover the power of Taiga." + "TEXT": "Welcome! Here you will find the projects you are involved on." }, "STEP2": { "TITLE": "Projets en cours", diff --git a/app/locales/locale-it.json b/app/locales/locale-it.json index 8c4e02b4..0830c042 100644 --- a/app/locales/locale-it.json +++ b/app/locales/locale-it.json @@ -1356,7 +1356,7 @@ "DASHBOARD": { "STEP1": { "TITLE": "Your project", - "TEXT": "Welcome! Here you will find the projects you are involved on. We have left you sample project templates to help you discover the power of Taiga." + "TEXT": "Welcome! Here you will find the projects you are involved on." }, "STEP2": { "TITLE": "Sta lavorando su", diff --git a/app/locales/locale-nl.json b/app/locales/locale-nl.json index 44df576b..bd818d3a 100644 --- a/app/locales/locale-nl.json +++ b/app/locales/locale-nl.json @@ -1356,7 +1356,7 @@ "DASHBOARD": { "STEP1": { "TITLE": "Your project", - "TEXT": "Welcome! Here you will find the projects you are involved on. We have left you sample project templates to help you discover the power of Taiga." + "TEXT": "Welcome! Here you will find the projects you are involved on." }, "STEP2": { "TITLE": "Werkt aan", diff --git a/app/locales/locale-pl.json b/app/locales/locale-pl.json index d5789e80..09143d82 100644 --- a/app/locales/locale-pl.json +++ b/app/locales/locale-pl.json @@ -1356,7 +1356,7 @@ "DASHBOARD": { "STEP1": { "TITLE": "Twój projekt", - "TEXT": "Welcome! Here you will find the projects you are involved on. We have left you sample project templates to help you discover the power of Taiga." + "TEXT": "Welcome! Here you will find the projects you are involved on." }, "STEP2": { "TITLE": "Pracujesz nad", diff --git a/app/locales/locale-pt-br.json b/app/locales/locale-pt-br.json index cbc6eda8..7fd05050 100644 --- a/app/locales/locale-pt-br.json +++ b/app/locales/locale-pt-br.json @@ -1356,7 +1356,7 @@ "DASHBOARD": { "STEP1": { "TITLE": "Seu projeto", - "TEXT": "Bem-Vindo! Aqui você encontrará os projetos que você está envolvido. Temos para você, modelos de projetos para ajudar você a descobrir a potência do Taiga. " + "TEXT": "Welcome! Here you will find the projects you are involved on." }, "STEP2": { "TITLE": "Trabalhando em", diff --git a/app/locales/locale-ru.json b/app/locales/locale-ru.json index 9ac3bc0f..0c84ecec 100644 --- a/app/locales/locale-ru.json +++ b/app/locales/locale-ru.json @@ -1356,7 +1356,7 @@ "DASHBOARD": { "STEP1": { "TITLE": "Ваш проект", - "TEXT": "Welcome! Here you will find the projects you are involved on. We have left you sample project templates to help you discover the power of Taiga." + "TEXT": "Welcome! Here you will find the projects you are involved on." }, "STEP2": { "TITLE": "Работает над", diff --git a/app/locales/locale-zh-hant.json b/app/locales/locale-zh-hant.json index 1f22a88f..e9ddf834 100644 --- a/app/locales/locale-zh-hant.json +++ b/app/locales/locale-zh-hant.json @@ -1356,7 +1356,7 @@ "DASHBOARD": { "STEP1": { "TITLE": "你的專案", - "TEXT": "Welcome! Here you will find the projects you are involved on. We have left you sample project templates to help you discover the power of Taiga." + "TEXT": "Welcome! Here you will find the projects you are involved on." }, "STEP2": { "TITLE": "進行中", From 076e9deb459a1c59f38548fda7f330d4da004693 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Mon, 2 Nov 2015 11:49:01 +0100 Subject: [PATCH 003/100] Set max width to avoid scroll on Firefox --- app/styles/layout/kanban.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/app/styles/layout/kanban.scss b/app/styles/layout/kanban.scss index b57d9884..ce1cb08d 100644 --- a/app/styles/layout/kanban.scss +++ b/app/styles/layout/kanban.scss @@ -3,6 +3,7 @@ flex-direction: column; height: $main-height; max-height: $main-height; + max-width: calc(100vw - 50px); header { min-height: 70px; } From 0cdf7991ed3b2eedde2551874449d91440a09dd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Mon, 2 Nov 2015 14:57:13 +0100 Subject: [PATCH 004/100] Fix bug #3429: Translate type options in custom field form at the admin section --- app/locales/locale-ca.json | 59 ++++++++++--------- app/locales/locale-de.json | 1 + app/locales/locale-en.json | 1 + app/locales/locale-es.json | 5 +- app/locales/locale-fi.json | 1 + app/locales/locale-fr.json | 11 ++-- app/locales/locale-it.json | 11 ++-- app/locales/locale-nl.json | 57 +++++++++--------- app/locales/locale-pl.json | 1 + app/locales/locale-pt-br.json | 1 + app/locales/locale-ru.json | 1 + app/locales/locale-zh-hant.json | 1 + .../admin-project-values-custom-fields.jade | 30 ++++++---- .../admin/admin-custom-attributes.jade | 6 +- 14 files changed, 104 insertions(+), 82 deletions(-) diff --git a/app/locales/locale-ca.json b/app/locales/locale-ca.json index de8ce5e6..a4108be3 100644 --- a/app/locales/locale-ca.json +++ b/app/locales/locale-ca.json @@ -156,7 +156,7 @@ "TITLE_LIGHTBOX_DELETE_WARTCHER": "Esborrar seguidor..." }, "WATCH_BUTTON": { - "WATCH": "Watch", + "WATCH": "Segueix", "WATCHING": "Observant", "UNWATCH": "Unwatch", "WATCHERS": "Watchers", @@ -328,7 +328,7 @@ "PLACEHOLDER_NEW_PASSWORD": "nova contrasenya", "PLACEHOLDER_RE_TYPE_NEW_PASSWORD": "Reescriu la nova contrasenya", "ACTION_RESET_PASSWORD": "Resetejar contrasenya", - "ERROR": "Our Oompa Loompas can't find your request to recover your password. Try to ask for it again.", + "ERROR": "Els Oompa Loompas no troben el teu password. Per favor intenta-ho de nou.", "SUCCESS": "Els Oompa Loompas han salvat la teua contrasenya
Prova a entrar amb ella." }, "INVITATION": { @@ -343,8 +343,8 @@ "HOME": { "PAGE_TITLE": "Home - Taiga", "PAGE_DESCRIPTION": "La home de Taiga amb els teus projectes principals, totes les històries d'usuari, tasques i incidències que tens assignades i aquelles que estàs Watching", - "EMPTY_WORKING_ON": "It feels empty, doesn't it? Start working with Taiga and you'll see here the stories, tasks and issues you are workin on.", - "EMPTY_WATCHING": "Follow User Stories, Tasks, Issues... that you want to know about :)", + "EMPTY_WORKING_ON": "Sembla buit, no? Comenceu a treballar amb Taiga i voràs ací les históries, tasques e incidències en les que estás treballant.", + "EMPTY_WATCHING": "Segueix les históries, tasques e incidéncies...que vols tindre en compte :)", "EMPTY_PROJECT_LIST": "No tens cap projecte encara", "WORKING_ON_SECTION": "En Progrés", "WATCHING_SECTION": "Observant" @@ -436,8 +436,8 @@ "PROJECT_DETAILS": "Detalls de projecte", "PROJECT_NAME": "Nom del projecte", "PROJECT_SLUG": "Slug de projecte", - "NUMBER_SPRINTS": "Number of sprints (0 for an undetermined quantity)", - "NUMBER_US_POINTS": "Number of US points (0 for an undetermined quantity)", + "NUMBER_SPRINTS": "Nombre d'sprints (0 per a quantitat indetermindad)", + "NUMBER_US_POINTS": "Nombre de punts d'històries (0 per a una quantitat indeterminada)", "TAGS": "Etiquetes", "DESCRIPTION": "Descripció", "PUBLIC_PROJECT": "Projecte públic", @@ -447,7 +447,7 @@ "REPORTS": { "TITLE": "Informes", "SUBTITLE": "Exporta les dades del teu projecte en CSV i fes els teus propis informes.", - "DESCRIPTION": "Download a CSV file or copy the generated URL and open it in your favourite text editor or spreadsheet to make your own project data reports. You will be able to visualize and analyze all your data easily.", + "DESCRIPTION": "Descarrega un arxiu CSV o copia la URL generada i obrila en el teu editor de text o fulla de cálcul per a poder crear els teus propi informes. Podrás vore i analitzar totes les teues dades fàcilment.", "HELP": "Com utilitzar açó a la meu fulla de càlcul?", "REGENERATE_TITLE": "Canviar URL", "REGENERATE_SUBTITLE": "Vas a canviar la URL d'accés al CSV. La URL previa no funcionarà. Estàs segur?" @@ -476,7 +476,7 @@ "FIELD_TYPE_DATE": "Data" }, "PROJECT_VALUES": { - "PAGE_TITLE": "{{sectionName}} - Project values - {{projectName}}", + "PAGE_TITLE": "{{sectionName}} - Valors de projecte - {{projectName}}", "REPLACEMENT": "Tots els elements amb aquest valor seràn canviats a", "ERROR_DELETE_ALL": "No pots esborrar tots els valors." }, @@ -579,6 +579,7 @@ "CANCEL_TITLE": "Cancel·la la creació", "SET_FIELD_NAME": "Escriu el nom del camp personalitzat", "SET_FIELD_DESCRIPTION": "Escriu la descripció del camp personalitzat", + "FIELD_TYPE_DEFAULT": "-- select one --", "ACTION_UPDATE": "Actualitza el camp personalitzat", "ACTION_CANCEL_EDITION": "Cancel·la la edició" }, @@ -665,7 +666,7 @@ "REPORT": "Informar d'un abús", "TABS": { "ACTIVITY_TAB": "Activitat", - "ACTIVITY_TAB_TITLE": "Show all the activity of this user", + "ACTIVITY_TAB_TITLE": "Mostra tota la activitat d'aquest usuari", "PROJECTS_TAB": "Projectes", "PROJECTS_TAB_TITLE": "List all projects that this user is a member", "LIKES_TAB": "Likes", @@ -681,20 +682,20 @@ "PROFILE_SIDEBAR": { "TITLE": "El teu perfil", "DESCRIPTION": "La gent pot vore tot el que fas i en qué estàs treballant. Afegix una bio interessant per a donar una millor versió de la teua informació.", - "ADD_INFO": "Edit bio" + "ADD_INFO": "Edita la bio" }, "PROFILE_FAVS": { - "FILTER_INPUT_PLACEHOLDER": "Type something...", + "FILTER_INPUT_PLACEHOLDER": "Escriu algo...", "FILTER_TYPE_ALL": "Tot", - "FILTER_TYPE_ALL_TITLE": "Show all", + "FILTER_TYPE_ALL_TITLE": "Mostrar tot", "FILTER_TYPE_PROJECTS": "Projectes", - "FILTER_TYPE_PROJECT_TITLES": "Show only projects", - "FILTER_TYPE_USER_STORIES": "Stories", - "FILTER_TYPE_USER_STORIES_TITLES": "Show only user stories", + "FILTER_TYPE_PROJECT_TITLES": "Mostra només projectes", + "FILTER_TYPE_USER_STORIES": "Históries", + "FILTER_TYPE_USER_STORIES_TITLES": "Veure només històries d'usuari", "FILTER_TYPE_TASKS": "Tasques", - "FILTER_TYPE_TASK_TITLES": "Show only tasks", + "FILTER_TYPE_TASK_TITLES": "Mostra només tasquest", "FILTER_TYPE_ISSUES": "Incidències", - "FILTER_TYPE_ISSUES_TITLE": "Show only issues", + "FILTER_TYPE_ISSUES_TITLE": "Mostra només incidències", "EMPTY_TITLE": "It looks like there's nothing to show here." } }, @@ -754,7 +755,7 @@ }, "IMPORT": { "TITLE": "Important Projecte", - "UPLOADING_FILE": "Uploading dump file", + "UPLOADING_FILE": "Pujant arxiu de dades", "DESCRIPTION": "Aquest procés pot durar una mica, pero favor mantinga la finestra oberta", "ASYNC_IN_PROGRESS_TITLE": "Els Oompa Loompas estàn important el teu projecte", "ASYNC_IN_PROGRESS_MESSAGE": "Aquest procés pot durar uns moments
T'enviarem un correo quan estiga llest.", @@ -766,15 +767,15 @@ "SYNC_SUCCESS": "El teu projecte s'ha importat correctament" }, "LIKE_BUTTON": { - "LIKE": "Like", - "LIKED": "Liked", - "UNLIKE": "Unlike", + "LIKE": "M'agrada", + "LIKED": "T'agrada", + "UNLIKE": "No t'agrada", "BUTTON_TITLE": "Like or unlike this project", "COUNTER_TITLE": "{total, plural, one{one fan} other{# fans}}" }, "WATCH_BUTTON": { - "BUTTON_TITLE": "Watch this project and set notification policy", - "WATCH": "Watch", + "BUTTON_TITLE": "Segueix este projecte i edita les notificacions", + "WATCH": "Segueix", "WATCHING": "Observant", "COUNTER_TITLE": "{total, plural, one{one watcher} other{# watchers}}", "OPTIONS": { @@ -857,7 +858,7 @@ "SECTION_NAME": "Detalls de la història d'usuari", "LINK_TASKBOARD": "Panell de tasques", "TITLE_LINK_TASKBOARD": "Anar a panell de tasques", - "TOTAL_POINTS": "total points", + "TOTAL_POINTS": "punts totals", "ADD": "+ Afegeix una nova història d'usuari", "ADD_BULK": "Afegeix noves històries d'usuari en grup", "PROMOTED": "Aquesta US ha sigut promocionada desde:", @@ -944,8 +945,8 @@ "PAGE_TITLE": "Backlog - {{projectName}}", "PAGE_DESCRIPTION": "El panell Backlog, amb històries d'usuari i esprints del projecte {{projectName}}: {{projectDescription}}", "SECTION_NAME": "Backlog", - "CUSTOMIZE_GRAPH": "Customize your backlog graph", - "CUSTOMIZE_GRAPH_TEXT": "To have a nice graph that helps you follow the evolution of the project you have to set up the points and sprints through the", + "CUSTOMIZE_GRAPH": "Edita el teu gràfic de backlog", + "CUSTOMIZE_GRAPH_TEXT": "Per a tindre un gràfic que t'ajude a seguir la evolució del projecte deus de editar els punts i els sprints per mig del", "CUSTOMIZE_GRAPH_ADMIN": "Admin", "CUSTOMIZE_GRAPH_TITLE": "Set up the points and sprints through the Admin", "MOVE_US_TO_CURRENT_SPRINT": "Envia al Sprint", @@ -1024,12 +1025,12 @@ "NOT_FOUND": "No trobat", "NOT_FOUND_TEXT": "Error 404. La pàgina que busques no existeix. Pots tornar a la página principal de taiga i provar desde allí.", "PERMISSION_DENIED": "Permis denegat", - "PERMISSION_DENIED_TEXT": "You don't have permission to access to this page.", + "PERMISSION_DENIED_TEXT": "No tens permissos per a accedir a esta pàgina.", "VERSION_ERROR": "Algú dins de Taiga ha canviat aȯ abans i els Oompa Loompas no pode aplicar els teus canvis. Per favor recarrega i aplica els teus canvis (es perdràn)" }, "TASKBOARD": { "PAGE_TITLE": "{{sprintName}} - Panell de tasques del esprint - {{projectName}}", - "PAGE_DESCRIPTION": "Sprint {{sprintName}} (from {{startDate}} to {{endDate}}) of {{projectName}}. Completed {{completedPercentage}}% ({{completedPoints}} of {{totalPoints}} points). {{openTasks}} opened tasks of {{totalTasks}}.", + "PAGE_DESCRIPTION": "Sprint {{sprintName}} (from {{startDate}} to {{endDate}}) de {{projectName}}. Completat {{completedPercentage}}% ({{completedPoints}} de {{totalPoints}} points). {{openTasks}} tasques obertes de {{totalTasks}}.", "SECTION_NAME": "Panell de tasques", "TITLE_ACTION_ADD": "Afegir nova tasca", "TITLE_ACTION_ADD_BULK": "Afegeix noves històries d'usuari en grup", @@ -1055,7 +1056,7 @@ } }, "TASK": { - "PAGE_TITLE": "{{taskSubject}} - Task {{taskRef}} - {{projectName}}", + "PAGE_TITLE": "{{taskSubject}} - Tasca {{taskRef}} - {{projectName}}", "PAGE_DESCRIPTION": "Estat: {{taskStatus }}. Descripció: {{taskDescription}}", "SECTION_NAME": "Detalls de la tasca", "LINK_TASKBOARD": "Panell de tasques", diff --git a/app/locales/locale-de.json b/app/locales/locale-de.json index 9118f516..04371555 100644 --- a/app/locales/locale-de.json +++ b/app/locales/locale-de.json @@ -579,6 +579,7 @@ "CANCEL_TITLE": "Erstellung abbrechen", "SET_FIELD_NAME": "Legen Sie den Namen Ihres benutzerdefinierten Feldes fest", "SET_FIELD_DESCRIPTION": "Legen Sie Ihre Beschreibung für das benutzerdefinierte Feld fest", + "FIELD_TYPE_DEFAULT": "-- select one --", "ACTION_UPDATE": "Benutzerdefiniertes Feld aktualisieren", "ACTION_CANCEL_EDITION": "Bearbeitung abbrechen" }, diff --git a/app/locales/locale-en.json b/app/locales/locale-en.json index 847655d4..30defbb9 100644 --- a/app/locales/locale-en.json +++ b/app/locales/locale-en.json @@ -579,6 +579,7 @@ "CANCEL_TITLE": "Cancel creation", "SET_FIELD_NAME": "Set your custom field name", "SET_FIELD_DESCRIPTION": "Set your custom field description", + "FIELD_TYPE_DEFAULT": "-- select one --", "ACTION_UPDATE": "Update Custom Field", "ACTION_CANCEL_EDITION": "Cancel edition" }, diff --git a/app/locales/locale-es.json b/app/locales/locale-es.json index 7cf8166e..bd86d6f1 100644 --- a/app/locales/locale-es.json +++ b/app/locales/locale-es.json @@ -579,6 +579,7 @@ "CANCEL_TITLE": "Cancelar la creación", "SET_FIELD_NAME": "Escribe el nombre del atributo personalizado", "SET_FIELD_DESCRIPTION": "Escribe una descripción para el atributo personalizado", + "FIELD_TYPE_DEFAULT": "-- elige uno --", "ACTION_UPDATE": "Actualizar Atributo Personalizado", "ACTION_CANCEL_EDITION": "Cancelar edición" }, @@ -590,7 +591,7 @@ "STATUS_ACTIVE": "Activado", "STATUS_PENDING": "Pendiente", "DELETE_MEMBER": "Borrar miembro", - "RESEND": "Resend", + "RESEND": "Enviar de nuevo", "SUCCESS_SEND_INVITATION": "Hemos enviado nuevamente la invitación a '{{email}}'.", "ERROR_SEND_INVITATION": "No hemos enviado la invitación.", "SUCCESS_DELETE": "Hemos eliminado {{message}}.", @@ -1356,7 +1357,7 @@ "DASHBOARD": { "STEP1": { "TITLE": "Su proyecto", - "TEXT": "Welcome! Here you will find the projects you are involved on." + "TEXT": "¡Bienvenido! Aquí encontrarás los proyectos en los que participas." }, "STEP2": { "TITLE": "Trabajando en", diff --git a/app/locales/locale-fi.json b/app/locales/locale-fi.json index a8160d80..e561cc2d 100644 --- a/app/locales/locale-fi.json +++ b/app/locales/locale-fi.json @@ -579,6 +579,7 @@ "CANCEL_TITLE": "Peru luonti", "SET_FIELD_NAME": "Anna oman kentän nimi", "SET_FIELD_DESCRIPTION": "Anna oman kenttäsi kuvaus", + "FIELD_TYPE_DEFAULT": "-- select one --", "ACTION_UPDATE": "Päivitä oma kenttä", "ACTION_CANCEL_EDITION": "Peru versio" }, diff --git a/app/locales/locale-fr.json b/app/locales/locale-fr.json index 3b9d57b2..71822862 100644 --- a/app/locales/locale-fr.json +++ b/app/locales/locale-fr.json @@ -156,7 +156,7 @@ "TITLE_LIGHTBOX_DELETE_WARTCHER": "Supprimer l'observateur..." }, "WATCH_BUTTON": { - "WATCH": "Watch", + "WATCH": "Suivre", "WATCHING": "Observant", "UNWATCH": "Unwatch", "WATCHERS": "Watchers", @@ -579,6 +579,7 @@ "CANCEL_TITLE": "Annuler la création", "SET_FIELD_NAME": "Saisissez le nom du champ personnalisé", "SET_FIELD_DESCRIPTION": "Entrez la description de votre champ personnalisé", + "FIELD_TYPE_DEFAULT": "-- select one --", "ACTION_UPDATE": "Mettre à jour le champ personnalisé", "ACTION_CANCEL_EDITION": "Annuler l'édition" }, @@ -665,7 +666,7 @@ "REPORT": "Signaler un abus", "TABS": { "ACTIVITY_TAB": "Activité", - "ACTIVITY_TAB_TITLE": "Show all the activity of this user", + "ACTIVITY_TAB_TITLE": "Voir toutes les activités de cet utilisateur", "PROJECTS_TAB": "Projets", "PROJECTS_TAB_TITLE": "List all projects that this user is a member", "LIKES_TAB": "Likes", @@ -774,11 +775,11 @@ }, "WATCH_BUTTON": { "BUTTON_TITLE": "Watch this project and set notification policy", - "WATCH": "Watch", + "WATCH": "Suivre", "WATCHING": "Observant", "COUNTER_TITLE": "{total, plural, one{one watcher} other{# watchers}}", "OPTIONS": { - "NOTIFY_ALL": "Receive all notifications", + "NOTIFY_ALL": "Recevoir toutes les notifications", "NOTIFY_ALL_TITLE": "Receive all notifications for this project", "NOTIFY_INVOLVED": "Only involved", "NOTIFY_INVOLVED_TITLE": "Recive notificacions only when you are involved", @@ -1375,7 +1376,7 @@ }, "BACKLOG": { "STEP1": { - "TITLE": "Project summary", + "TITLE": "Résumé du projet", "TEXT1": "Here you will see the state of your project.", "TEXT2": "You can change every kind of project settings through the admin." }, diff --git a/app/locales/locale-it.json b/app/locales/locale-it.json index 0830c042..6b288254 100644 --- a/app/locales/locale-it.json +++ b/app/locales/locale-it.json @@ -336,14 +336,14 @@ "PAGE_DESCRIPTION": "Accetta l'invito a partecipare ad un progetto in Taiga, una piattaforma semplice di project management che rende il lavoro davvero piacevole a start-up e a chi sviluppa e progetta con il metodo \"agile\"." }, "INVITATION_LOGIN_FORM": { - "NOT_FOUND": "Our Oompa Loompas can't find your invitation.", + "NOT_FOUND": "I nostri Digital Champions non hanno trovato il tuo invito.", "SUCCESS": "Sei ora un membro di questo progetto. Benvenuto in {{project_name}}", "ERROR": "Secondo i nostri Digital Champions, non sei ancora regisrtrato o hai inserito una password non valida." }, "HOME": { "PAGE_TITLE": "Home - Taiga", - "PAGE_DESCRIPTION": "La home di Taiga con i tuoi principali progetti e tutti ile storie utente, compiti e problemi assegnati e osservati. ", - "EMPTY_WORKING_ON": "It feels empty, doesn't it? Start working with Taiga and you'll see here the stories, tasks and issues you are workin on.", + "PAGE_DESCRIPTION": "La home di Taiga con i tuoi principali progetti e tutte le storie utente, i compiti e problemi assegnati e osservati. ", + "EMPTY_WORKING_ON": "Dà un po' l'idea di vuoto, no? Inizia a lavorare con Taiga e qui vedrai le storie, i compiti ed i problemi su cui stai lavorando.", "EMPTY_WATCHING": "Follow User Stories, Tasks, Issues... that you want to know about :)", "EMPTY_PROJECT_LIST": "Per ora non hai nessun progetto", "WORKING_ON_SECTION": "Sta lavorando su", @@ -579,6 +579,7 @@ "CANCEL_TITLE": "Elimina la creazione", "SET_FIELD_NAME": "Imposta il nome del campo predefinito", "SET_FIELD_DESCRIPTION": "Imposta la descrizione del campo personalizzato ", + "FIELD_TYPE_DEFAULT": "-- select one --", "ACTION_UPDATE": "Aggiorna il campo personalizzato", "ACTION_CANCEL_EDITION": "Elimina versione" }, @@ -694,7 +695,7 @@ "FILTER_TYPE_TASKS": "Compiti", "FILTER_TYPE_TASK_TITLES": "Mostra solo attività", "FILTER_TYPE_ISSUES": "problemi", - "FILTER_TYPE_ISSUES_TITLE": "Show only issues", + "FILTER_TYPE_ISSUES_TITLE": "Mostra solo i problemi", "EMPTY_TITLE": "It looks like there's nothing to show here." } }, @@ -769,7 +770,7 @@ "LIKE": "Mi piace", "LIKED": "Liked", "UNLIKE": "Non mi piace", - "BUTTON_TITLE": "Like or unlike this project", + "BUTTON_TITLE": "Vota a favore o a sfavore di questo progetto", "COUNTER_TITLE": "{total, plural, one{one fan} other{# fans}}" }, "WATCH_BUTTON": { diff --git a/app/locales/locale-nl.json b/app/locales/locale-nl.json index bd818d3a..9f913ac5 100644 --- a/app/locales/locale-nl.json +++ b/app/locales/locale-nl.json @@ -156,7 +156,7 @@ "TITLE_LIGHTBOX_DELETE_WARTCHER": "Verwijder waarnemer..." }, "WATCH_BUTTON": { - "WATCH": "Watch", + "WATCH": "Bekijk", "WATCHING": "Volgers", "UNWATCH": "Unwatch", "WATCHERS": "Watchers", @@ -336,7 +336,7 @@ "PAGE_DESCRIPTION": "Accepteer de uitnodiging voor een project in Taiga, een project management platform voor startups en agile ontwikkelaars & designers die een simpele, mooie tool willen om werken echt leuk te maken." }, "INVITATION_LOGIN_FORM": { - "NOT_FOUND": "Our Oompa Loompas can't find your invitation.", + "NOT_FOUND": "Onze Oompa Loompa's kunnen je uitnodiging niet vinden.", "SUCCESS": "Je bent met succes toegetreden tot dit project, Welkom bij {{project_name}}", "ERROR": "Volgens onze Oempa-Loempa's, ben je nog niet geregistreerd of heb je een fout wachtwoord getypt." }, @@ -436,8 +436,8 @@ "PROJECT_DETAILS": "Project details", "PROJECT_NAME": "Naam project", "PROJECT_SLUG": "Project Slug", - "NUMBER_SPRINTS": "Number of sprints (0 for an undetermined quantity)", - "NUMBER_US_POINTS": "Number of US points (0 for an undetermined quantity)", + "NUMBER_SPRINTS": "Aantal sprinten (0 voor een onbepaalde hoeveelheid)", + "NUMBER_US_POINTS": "Aantal US punten (0 voor een onbepaalde hoeveelheid)", "TAGS": "Tags", "DESCRIPTION": "Beschrijving", "PUBLIC_PROJECT": "Open project", @@ -579,6 +579,7 @@ "CANCEL_TITLE": "Annuleer aanmaken", "SET_FIELD_NAME": "Stel de naam van je eigen veld in", "SET_FIELD_DESCRIPTION": "Eigen veld omschrijving instellen", + "FIELD_TYPE_DEFAULT": "-- select one --", "ACTION_UPDATE": "Eigen veld bijwerken", "ACTION_CANCEL_EDITION": "Editie annuleren" }, @@ -665,11 +666,11 @@ "REPORT": "Meld misbruik", "TABS": { "ACTIVITY_TAB": "Activiteit", - "ACTIVITY_TAB_TITLE": "Show all the activity of this user", + "ACTIVITY_TAB_TITLE": "Alle activiteit van deze gebruiker weergeven", "PROJECTS_TAB": "Projecten", - "PROJECTS_TAB_TITLE": "List all projects that this user is a member", - "LIKES_TAB": "Likes", - "LIKES_TAB_TITLE": "List all likes made by this user", + "PROJECTS_TAB_TITLE": "Lijst alle projecten op waar deze gebruiker lid van is", + "LIKES_TAB": "Personen die dit leuk vinden", + "LIKES_TAB_TITLE": "Lijst alles op wat deze gebruiker leuk vind", "VOTES_TAB": "Stemmen", "VOTES_TAB_TITLE": "List all votes made by this user", "WATCHED_TAB": "Watched", @@ -681,21 +682,21 @@ "PROFILE_SIDEBAR": { "TITLE": "Jouw profiel", "DESCRIPTION": "Mensen kunnen alles zien wat je doet en waar je aan werkt. Voeg een mooie biografie toe voor een meer uitgebreide versie van jouw informatie.", - "ADD_INFO": "Edit bio" + "ADD_INFO": "Bio aanpassen" }, "PROFILE_FAVS": { - "FILTER_INPUT_PLACEHOLDER": "Type something...", + "FILTER_INPUT_PLACEHOLDER": "Typ iets...", "FILTER_TYPE_ALL": "Alles", - "FILTER_TYPE_ALL_TITLE": "Show all", + "FILTER_TYPE_ALL_TITLE": "Alles weergeven", "FILTER_TYPE_PROJECTS": "Projecten", - "FILTER_TYPE_PROJECT_TITLES": "Show only projects", - "FILTER_TYPE_USER_STORIES": "Stories", - "FILTER_TYPE_USER_STORIES_TITLES": "Show only user stories", + "FILTER_TYPE_PROJECT_TITLES": "Enkel projecten weergeven", + "FILTER_TYPE_USER_STORIES": "Verhalen", + "FILTER_TYPE_USER_STORIES_TITLES": "Enkel verhalen van gebruikers weergeven", "FILTER_TYPE_TASKS": "Taken", - "FILTER_TYPE_TASK_TITLES": "Show only tasks", + "FILTER_TYPE_TASK_TITLES": "Enkel taken weergeven", "FILTER_TYPE_ISSUES": "Issues", - "FILTER_TYPE_ISSUES_TITLE": "Show only issues", - "EMPTY_TITLE": "It looks like there's nothing to show here." + "FILTER_TYPE_ISSUES_TITLE": "Enkel problemen weergeven", + "EMPTY_TITLE": "Het ziet er naar uit dat er hier niets is om weer te geven." } }, "PROJECT": { @@ -766,20 +767,20 @@ "SYNC_SUCCESS": "Je project werd met succes geïmporteerd" }, "LIKE_BUTTON": { - "LIKE": "Like", - "LIKED": "Liked", - "UNLIKE": "Unlike", - "BUTTON_TITLE": "Like or unlike this project", + "LIKE": "Vind ik leuk", + "LIKED": "Leuk gevonden", + "UNLIKE": "Vind ik niet meer leu", + "BUTTON_TITLE": "Vind dit project leuk of niet", "COUNTER_TITLE": "{total, plural, one{one fan} other{# fans}}" }, "WATCH_BUTTON": { "BUTTON_TITLE": "Watch this project and set notification policy", - "WATCH": "Watch", + "WATCH": "Bekijk", "WATCHING": "Volgers", "COUNTER_TITLE": "{total, plural, one{one watcher} other{# watchers}}", "OPTIONS": { - "NOTIFY_ALL": "Receive all notifications", - "NOTIFY_ALL_TITLE": "Receive all notifications for this project", + "NOTIFY_ALL": "Ontvang alle notificaties", + "NOTIFY_ALL_TITLE": "Ontvang alle notificaties voor dit project", "NOTIFY_INVOLVED": "Only involved", "NOTIFY_INVOLVED_TITLE": "Recive notificacions only when you are involved", "UNWATCH": "Unwatch", @@ -857,7 +858,7 @@ "SECTION_NAME": "User story details", "LINK_TASKBOARD": "Taakbord", "TITLE_LINK_TASKBOARD": "Ga naar het dashboard", - "TOTAL_POINTS": "total points", + "TOTAL_POINTS": "totaal aantal punten", "ADD": "+ Nieuwe User Story toevoegen", "ADD_BULK": "Voeg enkele nieuwe User Stories in bulk toe", "PROMOTED": "Deze US werd gepromoveerd van Issue:", @@ -944,7 +945,7 @@ "PAGE_TITLE": "Backlog - {{projectName}}", "PAGE_DESCRIPTION": "Het backlog overzicht, met user stories en sprints van het project {{projectName}}: {{projectDescription}}", "SECTION_NAME": "Backlog", - "CUSTOMIZE_GRAPH": "Customize your backlog graph", + "CUSTOMIZE_GRAPH": "Je backlog grafiek aanpassen", "CUSTOMIZE_GRAPH_TEXT": "To have a nice graph that helps you follow the evolution of the project you have to set up the points and sprints through the", "CUSTOMIZE_GRAPH_ADMIN": "Admin", "CUSTOMIZE_GRAPH_TITLE": "Set up the points and sprints through the Admin", @@ -1024,7 +1025,7 @@ "NOT_FOUND": "Niet gevonden", "NOT_FOUND_TEXT": "Error 404. De pagina die je zoekt bestaat niet meer. Misschien kan je terugkeren naar de TAIGA startpagina en kijken of je kan vinden wat je zoekt.", "PERMISSION_DENIED": "Niet toegestaan", - "PERMISSION_DENIED_TEXT": "You don't have permission to access to this page.", + "PERMISSION_DENIED_TEXT": "Je hebt geen toegangsrechten tot deze pagina", "VERSION_ERROR": "Iemand bij Taiga heeft dit vooraf veranderd en onze Oempa-Loempa's konden je veranderingen niet toepassen. Gelieve te herladen en je veranderingen opnieuw toe te passen (ze zullen verloren gaan)" }, "TASKBOARD": { @@ -1035,7 +1036,7 @@ "TITLE_ACTION_ADD_BULK": "Wat nieuwe taken in bulk toevoegen", "TITLE_ACTION_ASSIGN": "Toegewezen taak", "TITLE_ACTION_EDIT": "Bewerk taak", - "PLACEHOLDER_CARD_TITLE": "This could be a task", + "PLACEHOLDER_CARD_TITLE": "Dit zou een taak kunnen zijn", "PLACEHOLDER_CARD_TEXT": "Split Stories into tasks to track them separately", "TABLE": { "COLUMN": "User story", diff --git a/app/locales/locale-pl.json b/app/locales/locale-pl.json index 09143d82..060714db 100644 --- a/app/locales/locale-pl.json +++ b/app/locales/locale-pl.json @@ -579,6 +579,7 @@ "CANCEL_TITLE": "Anuluj tworzenie", "SET_FIELD_NAME": "podaj nazwę pola", "SET_FIELD_DESCRIPTION": "podaj opis pola", + "FIELD_TYPE_DEFAULT": "-- select one --", "ACTION_UPDATE": "Aktualizuj pole", "ACTION_CANCEL_EDITION": "Anuluj edycję" }, diff --git a/app/locales/locale-pt-br.json b/app/locales/locale-pt-br.json index 7fd05050..bc8bad59 100644 --- a/app/locales/locale-pt-br.json +++ b/app/locales/locale-pt-br.json @@ -579,6 +579,7 @@ "CANCEL_TITLE": "Cancelar criação", "SET_FIELD_NAME": "Definir nome do seu campo personalizados", "SET_FIELD_DESCRIPTION": "Definir a descrição do seu campo personalizado", + "FIELD_TYPE_DEFAULT": "-- select one --", "ACTION_UPDATE": "Atualizar campo personalizado", "ACTION_CANCEL_EDITION": "Cancelar edição" }, diff --git a/app/locales/locale-ru.json b/app/locales/locale-ru.json index 0c84ecec..e2d693ad 100644 --- a/app/locales/locale-ru.json +++ b/app/locales/locale-ru.json @@ -579,6 +579,7 @@ "CANCEL_TITLE": "Отменить создание", "SET_FIELD_NAME": "Введите имя поля", "SET_FIELD_DESCRIPTION": "Назначьте описание специальному полю", + "FIELD_TYPE_DEFAULT": "-- select one --", "ACTION_UPDATE": "Обновить поле", "ACTION_CANCEL_EDITION": "Отменить правку" }, diff --git a/app/locales/locale-zh-hant.json b/app/locales/locale-zh-hant.json index e9ddf834..0b0178ea 100644 --- a/app/locales/locale-zh-hant.json +++ b/app/locales/locale-zh-hant.json @@ -579,6 +579,7 @@ "CANCEL_TITLE": "取消創建", "SET_FIELD_NAME": "設定你的客制欄位名稱 ", "SET_FIELD_DESCRIPTION": "設定你客製化欄位的文字描述", + "FIELD_TYPE_DEFAULT": "-- select one --", "ACTION_UPDATE": "更新客製化欄位", "ACTION_CANCEL_EDITION": "取消編輯 " }, diff --git a/app/partials/admin/admin-project-values-custom-fields.jade b/app/partials/admin/admin-project-values-custom-fields.jade index ff7110da..691079b5 100644 --- a/app/partials/admin/admin-project-values-custom-fields.jade +++ b/app/partials/admin/admin-project-values-custom-fields.jade @@ -1,7 +1,9 @@ doctype html -div.wrapper(ng-controller="ProjectValuesSectionController", - ng-init="sectionName='ADMIN.CUSTOM_FIELDS.TITLE'") +div.wrapper( + ng-controller="ProjectValuesSectionController", + ng-init="sectionName='ADMIN.CUSTOM_FIELDS.TITLE'" +) tg-project-menu @@ -15,17 +17,23 @@ div.wrapper(ng-controller="ProjectValuesSectionController", include ../includes/components/mainTitle p.admin-subtitle(translate="ADMIN.CUSTOM_FIELDS.SUBTITLE") - div.admin-attributes-section(tg-project-custom-attributes, - ng-controller="ProjectCustomAttributesController as ctrl", - ng-init="type='userstory'; customFieldSectionTitle='ADMIN.CUSTOM_FIELDS.US_DESCRIPTION'; customFieldButtonTitle='ADMIN.CUSTOM_FIELDS.US_ADD'") + div.admin-attributes-section( + tg-project-custom-attributes, + ng-controller="ProjectCustomAttributesController as ctrl", + ng-init="type='userstory'; customFieldSectionTitle='ADMIN.CUSTOM_FIELDS.US_DESCRIPTION'; customFieldButtonTitle='ADMIN.CUSTOM_FIELDS.US_ADD'" + ) include ../includes/modules/admin/admin-custom-attributes - div.admin-attributes-section(tg-project-custom-attributes, - ng-controller="ProjectCustomAttributesController as ctrl", - ng-init="type='task'; customFieldSectionTitle='ADMIN.CUSTOM_FIELDS.TASK_DESCRIPTION'; customFieldButtonTitle='ADMIN.CUSTOM_FIELDS.TASK_ADD'") + div.admin-attributes-section( + tg-project-custom-attributes, + ng-controller="ProjectCustomAttributesController as ctrl", + ng-init="type='task'; customFieldSectionTitle='ADMIN.CUSTOM_FIELDS.TASK_DESCRIPTION'; customFieldButtonTitle='ADMIN.CUSTOM_FIELDS.TASK_ADD'" + ) include ../includes/modules/admin/admin-custom-attributes - div.admin-attributes-section(tg-project-custom-attributes, - ng-controller="ProjectCustomAttributesController as ctrl", - ng-init="type='issue'; customFieldSectionTitle='ADMIN.CUSTOM_FIELDS.ISSUE_DESCRIPTION'; customFieldButtonTitle='ADMIN.CUSTOM_FIELDS.ISSUE_ADD'") + div.admin-attributes-section( + tg-project-custom-attributes, + ng-controller="ProjectCustomAttributesController as ctrl", + ng-init="type='issue'; customFieldSectionTitle='ADMIN.CUSTOM_FIELDS.ISSUE_DESCRIPTION'; customFieldButtonTitle='ADMIN.CUSTOM_FIELDS.ISSUE_ADD'" + ) include ../includes/modules/admin/admin-custom-attributes diff --git a/app/partials/includes/modules/admin/admin-custom-attributes.jade b/app/partials/includes/modules/admin/admin-custom-attributes.jade index 8d2ef76f..353ea45e 100644 --- a/app/partials/includes/modules/admin/admin-custom-attributes.jade +++ b/app/partials/includes/modules/admin/admin-custom-attributes.jade @@ -63,7 +63,7 @@ section.custom-fields-table.basic-table fieldset.custom-field-type select( ng-model="attr.type" - ng-options="type.key as type.name | translate for type in TYPE_CHOICES" + ng-options="type.key as type.name|translate for type in TYPE_CHOICES" ) fieldset.custom-options div.custom-options-wrapper @@ -96,8 +96,10 @@ section.custom-fields-table.basic-table fieldset.custom-field-type select( ng-model="newAttr.type" - ng-options="type.key as type.name for type in TYPE_CHOICES" + ng-options="type.key as type.name|translate for type in TYPE_CHOICES" ) + option(value="", translate="ADMIN.CUSTOM_ATTRIBUTES.FIELD_TYPE_DEFAULT") + fieldset.custom-options div.custom-options-wrapper a.js-create-custom-field-button.icon.icon-floppy( From 86fe29eee6447d538b05539be6fa6ede5fd2f0d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Mon, 2 Nov 2015 16:03:26 +0100 Subject: [PATCH 005/100] =?UTF-8?q?Movember=20logo!=20(=20=EF=BF=A3?= =?UTF-8?q?=E2=94=8F=EF=BC=BF=E2=94=93=EF=BF=A3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/change-password-from-recovery.jade | 10 ++-- app/partials/auth/forgot-password.jade | 8 ++-- app/partials/auth/login.jade | 7 +-- app/partials/auth/register.jade | 8 ++-- app/partials/user/cancel-account.jade | 11 +++-- app/partials/user/change-email.jade | 10 ++-- app/styles/layout/{login.scss => auth.scss} | 47 ++++++++++++++++--- app/svg/logo-moustache.svg | 15 ++++++ 8 files changed, 84 insertions(+), 32 deletions(-) rename app/styles/layout/{login.scss => auth.scss} (60%) create mode 100644 app/svg/logo-moustache.svg diff --git a/app/partials/auth/change-password-from-recovery.jade b/app/partials/auth/change-password-from-recovery.jade index 0ab0cf39..cb1cd82c 100644 --- a/app/partials/auth/change-password-from-recovery.jade +++ b/app/partials/auth/change-password-from-recovery.jade @@ -1,10 +1,10 @@ doctype html div.wrapper - div.login-main - div.login-container - h1.logo - img.logo-svg(src="/svg/logo.svg", alt="TAIGA") - p.tagline(translate="COMMON.TAG_LINE") + div.auth + div.auth-container + div.logo-svg + include ../../svg/logo-moustache.svg + h1.logo Taiga include ../includes/modules/change-password-from-recovery-form diff --git a/app/partials/auth/forgot-password.jade b/app/partials/auth/forgot-password.jade index 22dfd2a6..34a16248 100644 --- a/app/partials/auth/forgot-password.jade +++ b/app/partials/auth/forgot-password.jade @@ -2,10 +2,10 @@ doctype html include ../includes/components/beta div.wrapper - div.login-main - div.login-container - img.logo-svg(src="/svg/logo.svg", alt="TAIGA") + div.auth + div.auth-container + div.logo-svg + include ../../svg/logo-moustache.svg h1.logo Taiga - h2.tagline(translate="COMMON.TAG_LINE_2") include ../includes/modules/forgot-form diff --git a/app/partials/auth/login.jade b/app/partials/auth/login.jade index 4cb2950d..073ceed5 100644 --- a/app/partials/auth/login.jade +++ b/app/partials/auth/login.jade @@ -4,9 +4,10 @@ div include ../includes/components/beta div.wrapper - div.login-main - div.login-container - img.logo-svg(src="/svg/logo.svg", alt="TAIGA") + div.auth + div.auth-container + div.logo-svg + include ../../svg/logo-moustache.svg h1.logo Taiga h2.tagline(translate="COMMON.TAG_LINE_2") diff --git a/app/partials/auth/register.jade b/app/partials/auth/register.jade index 1c658f36..1bf2e176 100644 --- a/app/partials/auth/register.jade +++ b/app/partials/auth/register.jade @@ -1,10 +1,10 @@ doctype html div.wrapper - div.login-main - div.login-container - img.logo-svg(src="/svg/logo.svg", alt="TAIGA") + div.auth + div.auth-container + div.logo-svg + include ../../svg/logo-moustache.svg h1.logo Taiga - h2.tagline(translate="COMMON.TAG_LINE_2") include ../includes/modules/register-form diff --git a/app/partials/user/cancel-account.jade b/app/partials/user/cancel-account.jade index 9d3043e5..32df3953 100644 --- a/app/partials/user/cancel-account.jade +++ b/app/partials/user/cancel-account.jade @@ -1,10 +1,11 @@ doctype html div.wrapper.cancel-account - div.login-main - div.login-container - h1.logo - img.logo-svg(src="/svg/logo.svg", alt="TAIGA") - p.tagline(translate="COMMON.TAG_LINE") + div.auth + div.auth-container + div.logo-svg + include ../../svg/logo-moustache.svg + h1.logo Taiga + h2.tagline(translate="COMMON.TAG_LINE") include ../includes/modules/cancel-account-form diff --git a/app/partials/user/change-email.jade b/app/partials/user/change-email.jade index 7f2ef8ab..f464d4a7 100644 --- a/app/partials/user/change-email.jade +++ b/app/partials/user/change-email.jade @@ -1,10 +1,10 @@ doctype html div.wrapper - div.login-main - div.login-container - h1.logo - img.logo-svg(src="/svg/logo.svg", alt="TAIGA") - p.tagline(translate="COMMON.TAG_LINE") + div.auth + div.auth-container + div.logo-svg + include ../../svg/logo-moustache.svg + h1.logo Taiga include ../includes/modules/change-email-form diff --git a/app/styles/layout/login.scss b/app/styles/layout/auth.scss similarity index 60% rename from app/styles/layout/login.scss rename to app/styles/layout/auth.scss index d911cf3d..66e47a71 100644 --- a/app/styles/layout/login.scss +++ b/app/styles/layout/auth.scss @@ -1,4 +1,4 @@ -.login-main { +.auth { @extend %triangled-bg; align-items: center; bottom: 0; @@ -10,10 +10,7 @@ right: 0; top: 0; z-index: 999; - fieldset { - margin-bottom: .5rem; - } - .login-container { + .auth-container { flex-basis: 400px; } .logo-svg { @@ -31,7 +28,6 @@ } .tagline { @extend %xlarge; - @extend %title; color: $white; line-height: 2rem; margin-bottom: 1rem; @@ -41,6 +37,9 @@ form { margin-bottom: 1rem; } + fieldset { + margin-bottom: .5rem; + } .login-text, .register-text { text-align: center; @@ -59,3 +58,39 @@ } } } + +.moustache { + animation-duration: 5s; + animation-iteration-count: infinite; + animation-name: moustache; + animation-timing-function: ease-in-out; + fill: rgba($primary, .9); + stroke: $primary-light; + stroke-width: 1px; + transform-origin: 50% 20%; + transition: .3s; + &:hover { + fill: rgba($primary-light, .9); + transition: .3s; + } +} +@keyframes moustache { + 0% { + transform: rotate(0); + } + 10% { + transform: rotate(-10deg); + } + 30% { + transform: rotate(0); + } + 70% { + transform: rotate(0); + } + 80% { + transform: rotate(10deg); + } + 90% { + transform: rotate(0); + } +} diff --git a/app/svg/logo-moustache.svg b/app/svg/logo-moustache.svg new file mode 100644 index 00000000..67505793 --- /dev/null +++ b/app/svg/logo-moustache.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + From d685f5989c688605a500ea0af326f43a4e7527d7 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Tue, 3 Nov 2015 08:31:54 +0100 Subject: [PATCH 006/100] fix timeline with unassined tasks --- .../user-timeline-item/user-timeline-item-type.service.coffee | 4 ++-- app/partials/includes/modules/taskboard-table.jade | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/app/modules/user-timeline/user-timeline-item/user-timeline-item-type.service.coffee b/app/modules/user-timeline/user-timeline-item/user-timeline-item-type.service.coffee index 56fa4941..68b330cb 100644 --- a/app/modules/user-timeline/user-timeline-item/user-timeline-item-type.service.coffee +++ b/app/modules/user-timeline/user-timeline-item/user-timeline-item-type.service.coffee @@ -219,7 +219,7 @@ timelineType = (timeline, event) -> check: (timeline, event) -> return event.obj == 'task' && event.type == 'change' && - !timeline.getIn('data', 'task', 'userstory') && + !timeline.getIn(['data', 'task', 'userstory']) && timeline.hasIn(['data', 'value_diff']) && timeline.getIn(['data', 'value_diff', 'key']) == 'description_diff' key: 'TIMELINE.TASK_UPDATED', @@ -229,7 +229,7 @@ timelineType = (timeline, event) -> check: (timeline, event) -> return event.obj == 'task' && event.type == 'change' && - timeline.getIn('data', 'task', 'userstory') && + timeline.getIn(['data', 'task', 'userstory']) && timeline.hasIn(['data', 'value_diff']) && timeline.getIn(['data', 'value_diff', 'key']) == 'description_diff' key: 'TIMELINE.TASK_UPDATED_WITH_US', diff --git a/app/partials/includes/modules/taskboard-table.jade b/app/partials/includes/modules/taskboard-table.jade index de30e250..5559f648 100644 --- a/app/partials/includes/modules/taskboard-table.jade +++ b/app/partials/includes/modules/taskboard-table.jade @@ -49,12 +49,11 @@ div.taskboard-table(tg-taskboard-squish-column) div.taskboard-tasks-box.task-column(ng-repeat="st in taskStatusList track by st.id", tg-taskboard-sortable, class="squish-status-{{st.id}}", ng-class="{'column-fold':statusesFolded[st.id]}", tg-bind-scope) div.taskboard-task( ng-repeat="task in usTasks[null][st.id] track by task.id" - tg-taskboard-task tg-bind-scope tg-class-permission="{'readonly': '!modify_task'}" ng-class="{'card-placeholder': task.isPlaceholder}" ) - div(ng-if="!task.isPlaceholder") + div(ng-if="!task.isPlaceholder", tg-taskboard-task) include ../components/taskboard-task div(ng-if="task.isPlaceholder") From 9e636abb701218f11f957cc0783a7956fdf75c80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Tue, 3 Nov 2015 09:03:40 +0100 Subject: [PATCH 007/100] Added min-width to flexbox because weird default spec causes overflow in Firefox 34 --- app/styles/core/base.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/styles/core/base.scss b/app/styles/core/base.scss index 55e5b543..c2eba8f0 100644 --- a/app/styles/core/base.scss +++ b/app/styles/core/base.scss @@ -77,8 +77,8 @@ body { } .main { - flex: 4; - flex-basis: 600px; + flex: 1; + min-width: 0; padding: 1rem 2rem; } From f251c7ee9493dec63dc1ca208fb59e2862f9f068 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Tue, 3 Nov 2015 10:16:12 +0100 Subject: [PATCH 008/100] Fix blocked status in taskboard tasks --- app/styles/components/taskboard-task.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/styles/components/taskboard-task.scss b/app/styles/components/taskboard-task.scss index 016d126b..65788966 100644 --- a/app/styles/components/taskboard-task.scss +++ b/app/styles/components/taskboard-task.scss @@ -21,7 +21,7 @@ &.ui-sortable-placeholder { background: $grayer; } - &.blocked { + .blocked { background: $red; border: 1px solid darken($red, 10%); color: $white; From 05f8def88dc84e931afc4227dee725aabbbc12aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Tue, 3 Nov 2015 13:39:44 +0100 Subject: [PATCH 009/100] [i18n] #3435 Fix text USER.PROFILE.TABS.PROJECTS_TAB_TITLE --- app/locales/locale-ca.json | 2 +- app/locales/locale-de.json | 124 ++++++++++----------- app/locales/locale-en.json | 2 +- app/locales/locale-es.json | 2 +- app/locales/locale-fi.json | 2 +- app/locales/locale-fr.json | 184 ++++++++++++++++---------------- app/locales/locale-it.json | 2 +- app/locales/locale-nl.json | 2 +- app/locales/locale-pl.json | 2 +- app/locales/locale-pt-br.json | 2 +- app/locales/locale-ru.json | 2 +- app/locales/locale-zh-hant.json | 2 +- 12 files changed, 164 insertions(+), 164 deletions(-) diff --git a/app/locales/locale-ca.json b/app/locales/locale-ca.json index a4108be3..c7407672 100644 --- a/app/locales/locale-ca.json +++ b/app/locales/locale-ca.json @@ -668,7 +668,7 @@ "ACTIVITY_TAB": "Activitat", "ACTIVITY_TAB_TITLE": "Mostra tota la activitat d'aquest usuari", "PROJECTS_TAB": "Projectes", - "PROJECTS_TAB_TITLE": "List all projects that this user is a member", + "PROJECTS_TAB_TITLE": "List of all projects in which the user is a member", "LIKES_TAB": "Likes", "LIKES_TAB_TITLE": "List all likes made by this user", "VOTES_TAB": "Vots", diff --git a/app/locales/locale-de.json b/app/locales/locale-de.json index 04371555..ac54f3a4 100644 --- a/app/locales/locale-de.json +++ b/app/locales/locale-de.json @@ -15,7 +15,7 @@ "COPY_TO_CLIPBOARD": "Ins Clipboard übernehmen: Strg+C", "EDIT": "Bearbeiten", "DRAG": "Ziehen", - "TAG_LINE": "Ihr agiles, freies und quelloffenes Projekt-Management Tool", + "TAG_LINE": "Dein agiles, freies und quelloffenes Projekt-Management Tool", "TAG_LINE_2": "LIEBE DEIN PROJEKT", "BLOCK": "Blockieren", "UNBLOCK": "Blockierung aufheben", @@ -49,13 +49,13 @@ "TYPE_PHONE": "Dieser Wert sollte eine gültige Telefonnummer enthalten.", "NOTNULL": "Dieser Wert darf nicht leer sein. ", "NOT_BLANK": "Dieser Wert darf nicht leer bleiben. ", - "REQUIRED": "Dieser Wert ist erforderlich", + "REQUIRED": "Diese Angabe ist erforderlich", "REGEXP": "Dieser Wert scheint ungültig zu sein. ", "MIN": "Dieser Wert sollte größer oder gleich %s sein.", "MAX": "Dieser Wert sollte niedriger oder gleich %s sein.", "RANGE": "Der Wert sollte zwischen %s und %s liegen.", - "MIN_LENGTH": "Dieser Wert ist zu kurz. Er sollte mindestens %s Zeichen haben, oder mehr.", - "MAX_LENGTH": "Dieser Wert ist zu lang. Er sollte %s Zeichen haben oder weniger.", + "MIN_LENGTH": "Diese Angabe ist zu kurz. Sie sollte mindestens %s Zeichen haben oder mehr.", + "MAX_LENGTH": "Diese Angabe ist zu lang. Sie sollte %s Zeichen haben oder weniger.", "RANGE_LENGTH": "Die Länge des Wertes ist ungültig. Sie sollte zwischen %s und %s Zeichen liegen.", "MIN_CHECK": "Sie müssen mindestens %s auswählen.", "MAX_CHECK": "Wählen Sie %s oder weniger.", @@ -151,7 +151,7 @@ }, "WATCHERS": { "ADD": "Beobachter hinzufügen", - "TITLE_ADD": "Add a project member to the watchers list", + "TITLE_ADD": "Füge ein neues Projektmitglied der Beobachterliste hinzu", "DELETE": "Beobachter löschen", "TITLE_LIGHTBOX_DELETE_WARTCHER": "Beobachter löschen..." }, @@ -161,15 +161,15 @@ "UNWATCH": "Nicht beobachten", "WATCHERS": "Beobachter", "BUTTON_TITLE": "Beobachte/Beobachte dieses Objekt (nicht mehr)", - "COUNTER_TITLE": "{total, plural, one{one watcher} other{# watchers}}" + "COUNTER_TITLE": "{total, plural, one{ein Beobachter} other{# Beobachter}}" }, "VOTE_BUTTON": { "UPVOTE": "Upvote", "UPVOTED": "Hochgevotet", "DOWNVOTE": "Runtergevotet", - "VOTERS": "Voters", - "BUTTON_TITLE": "Upvote/Downvote this item", - "COUNTER_TITLE": "{total, plural, one{one vote} other{# votes}}" + "VOTERS": "Voter", + "BUTTON_TITLE": "Upvote/Downvote diesen Eintrag", + "COUNTER_TITLE": "{total, plural, one{eine Stimme} other{# Stimmen}}" }, "CUSTOM_ATTRIBUTES": { "CUSTOM_FIELDS": "Benutzerdefinierte Felder", @@ -272,26 +272,26 @@ }, "LOGIN_COMMON": { "HEADER": "Ich bin bereits bei Taiga angemeldet", - "PLACEHOLDER_AUTH_NAME": "Benutzername oder E-Mail-Adresse (Groß- und Kleinschreibung beachten)", + "PLACEHOLDER_AUTH_NAME": "Benutzername oder E-Mail-Adresse", "LINK_FORGOT_PASSWORD": "Haben Sie es vergessen?", - "TITLE_LINK_FORGOT_PASSWORD": "Haben Sie Ihr Passwort vergessen?", + "TITLE_LINK_FORGOT_PASSWORD": "Hast Du Dein Passwort vergessen?", "ACTION_ENTER": "Eingabe", "ACTION_SIGN_IN": "Anmelden", - "PLACEHOLDER_AUTH_PASSWORD": "Passwort (Groß- und Kleinschreibung beachten)" + "PLACEHOLDER_AUTH_PASSWORD": "Passwort" }, "LOGIN_FORM": { - "ERROR_AUTH_INCORRECT": "Laut unseren Helferlein ist Ihr Benutzername/Ihre E-Mail-Adresse oder Ihr Passwort nicht korrekt. ", + "ERROR_AUTH_INCORRECT": "Laut unseren Helferlein ist Dein Benutzername/Deine E-Mail-Adresse oder Dein Passwort nicht korrekt. ", "SUCCESS": "Herzlich willkommen bei Taiga, unsere Helferlein freuen sich. " }, "REGISTER": { "PAGE_TITLE": "Registrieren - Taiga", - "PAGE_DESCRIPTION": "Erstellen Sie Ihr Benutzerkonto in Taiga, einer Projekt-Management Plattform für Neugründer und agile Entwickler und Designer, die ein unkompliziertes und ansprechendes Tool möchten, das die Arbeit wirklich angenehm macht. " + "PAGE_DESCRIPTION": "Erstellee Dein Benutzerkonto in Taiga, einer Projekt-Management Plattform für Neugründer und agile Entwickler und Designer, die ein unkompliziertes und ansprechendes Tool möchten, das die Arbeit wirklich angenehm macht. " }, "REGISTER_FORM": { "TITLE": "Ein neues Taiga Benutzerkonto registrieren (kostenlos)", "PLACEHOLDER_NAME": "Wählen Sie einen Benutzernamen (Groß- und Kleinschreibung beachten)", - "PLACEHOLDER_FULL_NAME": "Wählen Sie Ihren Anzeigenamen", - "PLACEHOLDER_EMAIL": "Ihre E-Mail", + "PLACEHOLDER_FULL_NAME": "Wähle Deinen Anzeigenamen", + "PLACEHOLDER_EMAIL": "Deine E-Mail", "PLACEHOLDER_PASSWORD": "Setzen Sie ein Passwort (Groß- und Kleinschreibung beachten)", "ACTION_SIGN_UP": "Anmelden", "TITLE_LINK_LOGIN": "anmelden", @@ -299,11 +299,11 @@ }, "FORGOT_PASSWORD": { "PAGE_TITLE": "Passwort vergessen - Taiga", - "PAGE_DESCRIPTION": "Geben Sie Ihren Benutzernamen oder Ihre E-Mail Adresse ein, um ein neues Passwort zu erhalten, und Sie können auf Taiga wieder zugreifen. " + "PAGE_DESCRIPTION": "Gib Dein Benutzernamen oder Deine E-Mail Adresse ein, um ein neues Passwort zu erhalten, und wieder auf Taiga zuzugreifen." }, "FORGOT_PASSWORD_FORM": { - "TITLE": "Huch, haben Sie Ihr Passwort vergessen?", - "SUBTITLE": "Geben Sie Ihren Benutzernamen oder Ihre E-Mail-Adresse ein, um einen neuen zu erhalten. ", + "TITLE": "Huch, hast Du Dein Passwort vergessen?", + "SUBTITLE": "Gib Deinen Benutzernamen oder Deine E-Mail-Adresse ein, um einen neuen zu erhalten. ", "PLACEHOLDER_FIELD": "Benutzername oder E-Mail-Adresse", "ACTION_RESET_PASSWORD": "Passwort zurücksetzen", "LINK_CANCEL": "Nein, bring mich zurück. Ich denke, ich erinnere mich daran. ", @@ -311,11 +311,11 @@ "ERROR": "Laut unseren Helferlein sind Sie bislang noch nicht registriert. " }, "CHANGE_PASSWORD": { - "PAGE_TITLE": "Ändern Sie Ihr Passwort - Taiga", + "PAGE_TITLE": "Ändere Dein Passwort - Taiga", "PAGE_DESCRIPTION": "Setzen Sie ein neues Passwort für Ihr Taiga Benutzerkonto.", "SECTION_NAME": "Passwort ändern", "FIELD_CURRENT_PASSWORD": "Aktuelles Passwort", - "PLACEHOLDER_CURRENT_PASSWORD": "Ihr aktuelles Passwort (oder leer, wenn Sie noch kein Passwort haben)", + "PLACEHOLDER_CURRENT_PASSWORD": "Dein aktuelles Passwort (oder leer, wenn Du noch kein Passwort hast)", "FIELD_NEW_PASSWORD": "Neues Passwort", "PLACEHOLDER_NEW_PASSWORD": "Geben Sie ein neues Passwort ein", "FIELD_RETYPE_PASSWORD": "Neues Passwort wiederholen", @@ -344,14 +344,14 @@ "PAGE_TITLE": "Home - Taiga", "PAGE_DESCRIPTION": "Die Taiga Homepage mit Ihren wichtigsten Projekten und all Ihren zugeordneten und beobachteten User-Stories, Aufgaben und Tickets. ", "EMPTY_WORKING_ON": "Hier sieht’s ziemlich leer aus, oder? Beginne deine Arbeit mit Taiga und wir zeigen dir hier die Stories, Tasks und Issues an denen du arbeitest.", - "EMPTY_WATCHING": "Follow User Stories, Tasks, Issues... that you want to know about :)", + "EMPTY_WATCHING": "Folge User Stories, Tasks, Issues … alles was du wissen musst :)", "EMPTY_PROJECT_LIST": "Sie haben noch keine Projekte", "WORKING_ON_SECTION": "Zuletzt bearbeitet", "WATCHING_SECTION": "Beobachtet" }, "PROJECTS": { "PAGE_TITLE": "Meine Projekte - Taiga", - "PAGE_DESCRIPTION": "Eine Liste mit all Ihren Projekten, Sie können Sie ordnen oder eine neue anlegen. ", + "PAGE_DESCRIPTION": "Eine Liste mit all Deinen Projekten. Du kannst sie ordnen oder ein Neues anlegen. ", "MY_PROJECTS": "Meine Projekte" }, "ATTACHMENT": { @@ -515,9 +515,9 @@ "PAGE_TITLE": "Rollen - {{projectName}}", "WARNING_NO_ROLE": "Beachten Sie, keine Rolle in Ihrem Projekt wird in der Lage sein, die Punktevergabe für User-Stories einzuschätzen. ", "HELP_ROLE_ENABLED": "Wenn Sie dies freischalten, werden Mitglieder, denen diese Rolle zugewiesen ist, in der Lage sein, die Punktevergabe für User-Stories vorzunehmen. ", - "DISABLE_COMPUTABLE_ALERT_TITLE": "Disable estimation for this role", - "DISABLE_COMPUTABLE_ALERT_SUBTITLE": "If you disable estimation permissions for role {{roleName}} all previous estimations made by this role will be removed", - "DISABLE_COMPUTABLE_ALERT_MESSAGE": "Are you sure you want to disable this role estimations?", + "DISABLE_COMPUTABLE_ALERT_TITLE": "Deaktiviere Estimatepoints für diese Rolle", + "DISABLE_COMPUTABLE_ALERT_SUBTITLE": "Wenn du die Estimatepoints für die Rolle {{roleName}} deaktivierst, werden alle bisherigen gelöscht", + "DISABLE_COMPUTABLE_ALERT_MESSAGE": "Bist du sicher, dass in dieser Rolle Estimatepoints deaktivieren möchtest?", "COUNT_MEMBERS": "{{ role.members_count }} Mitglieder mit dieser Rolle", "TITLE_DELETE_ROLE": "Rolle löschen", "REPLACEMENT_ROLE": "Alle Benutzer mit dieser Rolle werden verschoben nach ", @@ -579,7 +579,7 @@ "CANCEL_TITLE": "Erstellung abbrechen", "SET_FIELD_NAME": "Legen Sie den Namen Ihres benutzerdefinierten Feldes fest", "SET_FIELD_DESCRIPTION": "Legen Sie Ihre Beschreibung für das benutzerdefinierte Feld fest", - "FIELD_TYPE_DEFAULT": "-- select one --", + "FIELD_TYPE_DEFAULT": "-- Bitte auswählen --", "ACTION_UPDATE": "Benutzerdefiniertes Feld aktualisieren", "ACTION_CANCEL_EDITION": "Bearbeitung abbrechen" }, @@ -591,7 +591,7 @@ "STATUS_ACTIVE": "Aktiv", "STATUS_PENDING": "Noch nicht erledigt", "DELETE_MEMBER": "Mitglied löschen", - "RESEND": "Resend", + "RESEND": "Neu senden", "SUCCESS_SEND_INVITATION": "Wir haben die Einladung erneut versandt an '{{email}}'.", "ERROR_SEND_INVITATION": "Wir haben die Einladung nicht versandt. ", "SUCCESS_DELETE": "Gelöscht {{message}}.", @@ -668,19 +668,19 @@ "ACTIVITY_TAB": "Aktivität", "ACTIVITY_TAB_TITLE": "Alle Aktivitäten dieses Benutzers anzeigen", "PROJECTS_TAB": "Projekte", - "PROJECTS_TAB_TITLE": "Alle Projekte bei denen dieser Benutzer Mitgleid ist anzeigen", + "PROJECTS_TAB_TITLE": "List of all projects in which the user is a member", "LIKES_TAB": "Likes", - "LIKES_TAB_TITLE": "List all likes made by this user", + "LIKES_TAB_TITLE": "Zeige alle Likes von diesem Benutzer", "VOTES_TAB": "Stimmen", - "VOTES_TAB_TITLE": "List all votes made by this user", + "VOTES_TAB_TITLE": "Zeige alle Votes von diesem Nutzer", "WATCHED_TAB": "Beobachtet", - "WATCHED_TAB_TITLE": "List all item watched by this user", + "WATCHED_TAB_TITLE": "Zeige alle von diesem Nutzer beobachteten Items an", "CONTACTS_TAB": "Kontakte", "CONTACTS_TAB_TITLE": "Alle Kontakte dieses Buntzers anzeigen" } }, "PROFILE_SIDEBAR": { - "TITLE": "Ihr Profil", + "TITLE": "Dein Profil", "DESCRIPTION": "Da andere Mitglieder sehen, dass sie ebenfalls an einem Projekt arbeiten wäre es schön, wenn Sie ein paar Informationen zu Ihrer Person angeben.", "ADD_INFO": "Bio bearbeiten" }, @@ -774,23 +774,23 @@ "COUNTER_TITLE": "{total, plural, one{ein Fan} other{# Fans}}" }, "WATCH_BUTTON": { - "BUTTON_TITLE": "Watch this project and set notification policy", + "BUTTON_TITLE": "Beobachte dieses Projekt und setze Benachrichtigungsregeln", "WATCH": "Beobachten", "WATCHING": "Beobachtet", - "COUNTER_TITLE": "{total, plural, one{one watcher} other{# watchers}}", + "COUNTER_TITLE": "{total, plural, one{ein Beobachter} other{# Beobachter}}", "OPTIONS": { "NOTIFY_ALL": "Alle Benachrichtigungen empfangen", "NOTIFY_ALL_TITLE": "Alle Benachrichtigungen für dieses Projekt anzeigen", "NOTIFY_INVOLVED": "Nur Beteiligte", - "NOTIFY_INVOLVED_TITLE": "Recive notificacions only when you are involved", + "NOTIFY_INVOLVED_TITLE": "Erhalte Benachrichtigungen wenn du involviert bist", "UNWATCH": "Nicht beobachten", - "UNWATCH_TITLE": "Unwatch this project" + "UNWATCH_TITLE": "Nicht beobachten" } } }, "LIGHTBOX": { "DELETE_ACCOUNT": { - "SECTION_NAME": "Ihr Taiga Benutzerkonto löschen", + "SECTION_NAME": "Dein Taiga Benutzerkonto löschen", "CONFIRM": "Sind Sie sicher, dass Sie Ihr Taiga Benutzerkonto löschen wollen?", "SUBTITLE": "Wir werden Sie vermissen! :-(", "NEWSLETTER_LABEL_TEXT": "Ich möchte keinen Newsletter mehr erhalten" @@ -946,9 +946,9 @@ "PAGE_DESCRIPTION": "Das Auftragslisten-Panel mit User-Stories und Sprints des Projekts. {{projectName}}: {{projectDescription}}", "SECTION_NAME": "Auftragsliste", "CUSTOMIZE_GRAPH": "Personalisiere deinen Backloggraph", - "CUSTOMIZE_GRAPH_TEXT": "To have a nice graph that helps you follow the evolution of the project you have to set up the points and sprints through the", + "CUSTOMIZE_GRAPH_TEXT": "Um schöne Graphen, die Dir bei der Entwicklung Deines Projekts helfen, zu sehen, musst du Estimatepoints und Sprints einstellen", "CUSTOMIZE_GRAPH_ADMIN": "Administrator ", - "CUSTOMIZE_GRAPH_TITLE": "Set up the points and sprints through the Admin", + "CUSTOMIZE_GRAPH_TITLE": "Stelle Points und Sprints über das Adminpanel ein", "MOVE_US_TO_CURRENT_SPRINT": "Zum aktuellen Sprint wechseln", "SHOW_FILTERS": "Filter zeigen", "SHOW_TAGS": "Tags anzeigen", @@ -989,7 +989,7 @@ "CLOSED_TASKS": "geschlossene
Aufgaben", "IOCAINE_DOSES": "Iocaine
Dosen", "SHOW_STATISTICS_TITLE": "Statistik anzeigen", - "TOGGLE_BAKLOG_GRAPH": "Show/Hide burndown graph" + "TOGGLE_BAKLOG_GRAPH": "Zeige/Verstecke Burndowngraph" }, "SUMMARY": { "PROJECT_POINTS": "Projekt
Punkte", @@ -1013,9 +1013,9 @@ "TITLE_LINK_TASKBOARD": "Gehe zu Taskboard von \"{{name}}\"", "NUMBER_SPRINTS": "
Sprints", "EMPTY": "DU HAST KEINE SPRINTS", - "WARNING_EMPTY_SPRINT": "Drop here Stories from your backlog to start a new sprint", - "TITLE_ACTION_NEW_SPRINT": "Add new sprint", - "TEXT_ACTION_NEW_SPRINT": "You may want to create a new sprint in your project", + "WARNING_EMPTY_SPRINT": "Ziehe Stories aus deiner Auftragsliste her um einen neuen Sprint zu starten", + "TITLE_ACTION_NEW_SPRINT": "Neuen Sprint hinzufügen", + "TEXT_ACTION_NEW_SPRINT": "Du möchtest einen neuen Sprint in Deinem Projekt erstellen", "ACTION_SHOW_CLOSED_SPRINTS": "Geschlossene Sprints anzeigen", "ACTION_HIDE_CLOSED_SPRINTS": "Geschlossene Sprints ausblenden" } @@ -1037,7 +1037,7 @@ "TITLE_ACTION_ASSIGN": "Aufgabe zuweisen", "TITLE_ACTION_EDIT": "Aufgabe bearbeiten", "PLACEHOLDER_CARD_TITLE": "Das könnte ein Task sein", - "PLACEHOLDER_CARD_TEXT": "Split Stories into tasks to track them separately", + "PLACEHOLDER_CARD_TEXT": "Teile Stories in Tasks auf um sie einzeln zu verfolgen", "TABLE": { "COLUMN": "User-Story", "TITLE_ACTION_FOLD": "Spalte einklappen", @@ -1189,7 +1189,7 @@ "HIDDEN_USER_STORIES": "Die User-Stories in diesem Status werden automatisch verborgen ", "ARCHIVED": "Sie haben es archiviert", "UNDO_ARCHIVED": "Wiederholen Sie Drag & Drop zum Rückgängigmachen ", - "PLACEHOLDER_CARD_TITLE": "These are your User Stories", + "PLACEHOLDER_CARD_TITLE": "Dies sind deine User Stories", "PLACEHOLDER_CARD_TEXT": "Stories können Unteraufgaben für weitere Anforderungen haben" }, "SEARCH": { @@ -1323,7 +1323,7 @@ "MILESTONE_UPDATED": "{{username}} aktualisierte den Sprint {{obj_name}}", "US_UPDATED": "{{username}} aktualisierte das Attribut \"{{field_name}}\" der User-Story {{obj_name}}", "US_UPDATED_WITH_NEW_VALUE": "{{username}} aktualisierte das Attribut \"{{field_name}}\" der User-Story {{obj_name}} zu {{new_value}}", - "US_UPDATED_POINTS": "{{username}} has updated '{{role_name}}' points of the US {{obj_name}} to {{new_value}}", + "US_UPDATED_POINTS": "{{username}} aktualisierte das Attribut \"{{field_name}}\" der Story {{obj_name}} zu {{new_value}}", "ISSUE_UPDATED": "{{username}} aktualisierte das Attribut \"{{field_name}}\" des Tickets {{obj_name}}", "ISSUE_UPDATED_WITH_NEW_VALUE": "{{username}} aktualisierte das Attribut \"{{field_name}}\" des Tickets {{obj_name}} zu {{new_value}}", "TASK_UPDATED": "{{username}} aktualisierte das Attribut \"{{field_name}}\" der Aufgabe {{obj_name}} zu {{new_value}}", @@ -1336,18 +1336,18 @@ "NEW_COMMENT_TASK": "{{username}} schrieb einen Kommentar in der Aufgabe {{obj_name}}", "NEW_MEMBER": "{{project_name}} hat ein neues Mitglied", "US_ADDED_MILESTONE": "{{username}} fügte dem Sprint {{sprint_name}} die User-Story {{obj_name}} hinzu", - "US_MOVED": "{{username}} has moved the US {{obj_name}}", + "US_MOVED": "{{username}} wurde in die Story {{obj_name}} verschoben", "US_REMOVED_FROM_MILESTONE": "{{username}} fügte der Auftragsliste die User-Story {{obj_name}} hinzu", "BLOCKED": "{{username}} vermerkte die Blockierung von {{obj_name}}", "UNBLOCKED": "{{username}} hob die Blockierung von {{obj_name}} auf", "NEW_USER": "{{username}} ist Taiga beigetreten" }, "LEGAL": { - "TERMS_OF_SERVICE_AND_PRIVACY_POLICY_AD": "By clicking \"Sign up\"', you agree to our
terms of service and privacy policy." + "TERMS_OF_SERVICE_AND_PRIVACY_POLICY_AD": "Durch Klick auf \"Anmelden\" stimmst du unseren
Nutzungsbedingungen und Datenschutzbestimmungen zu." }, "EXTERNAL_APP": { - "PAGE_TITLE": "An external app requires authentication", - "PAGE_DESCRIPTION": "An external app requires authentication", + "PAGE_TITLE": "Eine externe Anwendung benötigt eine Genehmigung", + "PAGE_DESCRIPTION": "Eine externe Anwendung benötigt eine Genehmigung", "AUTHORIZATION_REQUEST": "{{application}} erlauben ihren Taiga Account zu benutzen?", "LOGIN_WITH_ANOTHER_USER": "Mit einem anderen Benutzer einloggen.", "AUTHORIZE_APP": "App autorisieren", @@ -1357,15 +1357,15 @@ "DASHBOARD": { "STEP1": { "TITLE": "Ihr Projekt", - "TEXT": "Welcome! Here you will find the projects you are involved on." + "TEXT": "Willkommen! Hier wirst du deine Projekte sehen." }, "STEP2": { "TITLE": "Zuletzt bearbeitet", - "TEXT": "Here you will find the User Stories, Tasks and Issues in which you are working on." + "TEXT": "Here wirst du deine User Stories, Tasks und Issues sehen, an denen du arbeitest." }, "STEP3": { "TITLE": "Beobachtet", - "TEXT1": "And right here you will find the ones that you want to know about.", + "TEXT1": "Und hier drüben siehst du die, von denen du wissen willst.", "TEXT2": "Du arbeitest schon mit Taiga ;)" }, "STEP4": { @@ -1377,34 +1377,34 @@ "BACKLOG": { "STEP1": { "TITLE": "Projektzusammenfassung", - "TEXT1": "Here you will see the state of your project.", - "TEXT2": "You can change every kind of project settings through the admin." + "TEXT1": "Hier wirst du den Status deines Projektes sehen.", + "TEXT2": "Du kannst dein Projekt im Adminpanel verwalten." }, "STEP2": { "TITLE": "Produkt Backlog", - "TEXT": "The backlog is the list of requirements (User Stories) for the project. Here is where you will plan your sprints." + "TEXT": "Die Auftragsliste zeigt dir alle Anforderungen (User Stories) für das Projekt an. Hier kannst du auch deine Sprints planen." }, "STEP3": { "TITLE": "Sprints", - "TEXT": "Sprints are short periods of time (usually 2 weeks) during which specific work has to be completed and delivered." + "TEXT": "Sprints sind kurze Zeiträume (üblicherweise 2 Wochen) in welchem eine bestimmte Arbeit erledigt und geliefert wird." }, "STEP4": { "TITLE": "User-Stories", - "TEXT": "Those are the requirements at high level. You can add them to the backlog and drag them to the sprint in which it should be delivered." + "TEXT": "Dies sind die Anforderungen. Du kannst sie der Auftragsliste hinzufügen und sie zu einem Sprint hinzufügen." } }, "KANBAN": { "STEP1": { "TITLE": "Personalisiere deinen Workflow", - "TEXT": "Set up the columns you need to map your workflow statuses through the admin." + "TEXT": "Stelle die Spalten für deinen Workflow im Adminpanel ein." }, "STEP2": { "TITLE": "User-Stories und Tasks", - "TEXT": "User Stories are the requirements at high level. You can drag them to different columns." + "TEXT": "User Stories sind die Anforderungen an dein Projekt. Du kannst sie zwischen den verschiedenen Spalten hin- und herziehen." }, "STEP3": { "TITLE": "User-Stories hinzufügen", - "TEXT1": "You may want to add a single User Story (add US icon) or a group of them (bulk icon)", + "TEXT1": "Du möchtest wahrscheinlich eine einzelne User Story (Story Icon) oder mehrere (Mehrfach Icon) hinzufügen.", "TEXT2": "Viel Glück!" } } diff --git a/app/locales/locale-en.json b/app/locales/locale-en.json index 30defbb9..e55790a8 100644 --- a/app/locales/locale-en.json +++ b/app/locales/locale-en.json @@ -668,7 +668,7 @@ "ACTIVITY_TAB": "Activity", "ACTIVITY_TAB_TITLE": "Show all the activity of this user", "PROJECTS_TAB": "Projects", - "PROJECTS_TAB_TITLE": "List all projects that this user is a member", + "PROJECTS_TAB_TITLE": "List of all projects in which the user is a member", "LIKES_TAB": "Likes", "LIKES_TAB_TITLE": "List all likes made by this user", "VOTES_TAB": "Votes", diff --git a/app/locales/locale-es.json b/app/locales/locale-es.json index bd86d6f1..caf613b0 100644 --- a/app/locales/locale-es.json +++ b/app/locales/locale-es.json @@ -668,7 +668,7 @@ "ACTIVITY_TAB": "Actividad", "ACTIVITY_TAB_TITLE": "Muestra toda la actividad de este usuario", "PROJECTS_TAB": "Proyectos", - "PROJECTS_TAB_TITLE": "Lista todo los proyectos en los que este usuario es miembro", + "PROJECTS_TAB_TITLE": "List of all projects in which the user is a member", "LIKES_TAB": "Likes", "LIKES_TAB_TITLE": "Lista todo lo que le gusta a este usuario", "VOTES_TAB": "Votos", diff --git a/app/locales/locale-fi.json b/app/locales/locale-fi.json index e561cc2d..eb0f09be 100644 --- a/app/locales/locale-fi.json +++ b/app/locales/locale-fi.json @@ -668,7 +668,7 @@ "ACTIVITY_TAB": "Aktiivisuus", "ACTIVITY_TAB_TITLE": "Show all the activity of this user", "PROJECTS_TAB": "Projektit", - "PROJECTS_TAB_TITLE": "List all projects that this user is a member", + "PROJECTS_TAB_TITLE": "List of all projects in which the user is a member", "LIKES_TAB": "Likes", "LIKES_TAB_TITLE": "List all likes made by this user", "VOTES_TAB": "Ääniä", diff --git a/app/locales/locale-fr.json b/app/locales/locale-fr.json index 71822862..2615dd98 100644 --- a/app/locales/locale-fr.json +++ b/app/locales/locale-fr.json @@ -36,7 +36,7 @@ "EXTERNAL_USER": "um usuário externo", "GENERIC_ERROR": "L'un de nos Oompa Loompas dit {{error}}.", "IOCAINE_TEXT": "Vous vous sentez un peu submergé par une tâche ? Soyez certains d'en informer les autres en cliquant su Iocaine lors de la modification de la tâche. Il est possible de s'immuniser contre ce poison (fictif) en consommant de petites quantités en heures supplémentaires, tout comme il est possible de s'améliorer en acceptant parfois de nouveaux défis !", - "CAPSLOCK_WARNING": "Be careful! You're writing with capital letters and this input is case sensitive.", + "CAPSLOCK_WARNING": "Attention! Vous tapez en lettres capitales et ce champ est sensible à la case.", "FORM_ERRORS": { "DEFAULT_MESSAGE": "Cette valeur semble être invalide.", "TYPE_EMAIL": "Cette valeur devrait être une adresse courriel valide.", @@ -150,26 +150,26 @@ "OPEN": "Ouvert" }, "WATCHERS": { - "ADD": "Add watchers", - "TITLE_ADD": "Add a project member to the watchers list", + "ADD": "Ajouter un suiveur", + "TITLE_ADD": "Ajoutez un membre du projet à la liste de suiveurs", "DELETE": "Supprimer l'observateur", "TITLE_LIGHTBOX_DELETE_WARTCHER": "Supprimer l'observateur..." }, "WATCH_BUTTON": { "WATCH": "Suivre", "WATCHING": "Observant", - "UNWATCH": "Unwatch", - "WATCHERS": "Watchers", - "BUTTON_TITLE": "Watch/Unwatch this item", - "COUNTER_TITLE": "{total, plural, one{one watcher} other{# watchers}}" + "UNWATCH": "Ne plus suivre", + "WATCHERS": "Suiveurs", + "BUTTON_TITLE": "Suivre/ne plus suivre cet élément", + "COUNTER_TITLE": "{total, plural, one{un suiveur} other{# suiveurs}}" }, "VOTE_BUTTON": { - "UPVOTE": "Upvote", - "UPVOTED": "Upvoted", - "DOWNVOTE": "Downvote", - "VOTERS": "Voters", - "BUTTON_TITLE": "Upvote/Downvote this item", - "COUNTER_TITLE": "{total, plural, one{one vote} other{# votes}}" + "UPVOTE": "Vote positif", + "UPVOTED": "Voté positivement", + "DOWNVOTE": "Vote négatif", + "VOTERS": "Votants", + "BUTTON_TITLE": "Vote positif/négatif pour cet élément", + "COUNTER_TITLE": "{total, plural, one{un vote} other{# votes}}" }, "CUSTOM_ATTRIBUTES": { "CUSTOM_FIELDS": "Champs personnalisés", @@ -328,7 +328,7 @@ "PLACEHOLDER_NEW_PASSWORD": "Nouveau mot de passe", "PLACEHOLDER_RE_TYPE_NEW_PASSWORD": "Confirmez votre nouveau mot de passe", "ACTION_RESET_PASSWORD": "Réinitialiser le mot de passe", - "ERROR": "Our Oompa Loompas can't find your request to recover your password. Try to ask for it again.", + "ERROR": "Nos Oompa Loompas n'ont pas trouvé votre requête de réinitialisation de mot de passe. Effectuez une nouvelle demande.", "SUCCESS": "Nos Oompa Loompas ont sauvegardé votre nouveau mot de passe.
Essayez de vous connecter avec." }, "INVITATION": { @@ -336,15 +336,15 @@ "PAGE_DESCRIPTION": "Acceptez l'invitation à rejoindre un projet sur Taiga, une plateforme de gestion de projets pour les startups, les développeurs et les designers agiles qui veulent un outil simple, beau et qui rend le travail vraiment agréable." }, "INVITATION_LOGIN_FORM": { - "NOT_FOUND": "Our Oompa Loompas can't find your invitation.", + "NOT_FOUND": "Nos Oompa Loompas n'ont pas trouvé votre invitation.", "SUCCESS": "Vous avez rejoint ce projet, Bienvenue sur {{project_name}}", "ERROR": "D'après nos Oompa Loompas, vous n'êtes pas encore enregistrés ou vous avez saisi un mot de passe incorrect." }, "HOME": { "PAGE_TITLE": "Accueil - Taiga", "PAGE_DESCRIPTION": "La page d'accueil de Taiga sur laquelle apparaissent vos projets principaux et toutes les récits utilisateur, tâches et tickets qui vont sont assignés et surveillés.", - "EMPTY_WORKING_ON": "It feels empty, doesn't it? Start working with Taiga and you'll see here the stories, tasks and issues you are workin on.", - "EMPTY_WATCHING": "Follow User Stories, Tasks, Issues... that you want to know about :)", + "EMPTY_WORKING_ON": "C'est un peu vide, n'est-ce pas? Commencez à utiliser Taiga et vous verrez ici les stories, tâches et issues sur lesquelles vous travaillez.", + "EMPTY_WATCHING": "Suivez les User Stories, Tâches, Issues, ... dont vous voulez être informé :)", "EMPTY_PROJECT_LIST": "Vous n'avez aucun projet pour l'instant", "WORKING_ON_SECTION": "Projets en cours", "WATCHING_SECTION": "Observant" @@ -360,7 +360,7 @@ "DESCRIPTION": "Saisissez une courte description", "DEPRECATED": "(obsolète)", "DEPRECATED_FILE": "Obsolète?", - "ADD": "Add new attachment. {{maxFileSizeMsg}}", + "ADD": "Ajoutez une nouvelle pièce jointe. {{maxFileSizeMsg}}", "MAX_FILE_SIZE": "[Taille max.: {{maxFileSize}}]", "SHOW_DEPRECATED": "+ montrer les pièces jointes obsolètes", "HIDE_DEPRECATED": "- cacher les pièces jointes obsolètes", @@ -436,8 +436,8 @@ "PROJECT_DETAILS": "Détails du projet", "PROJECT_NAME": "Nom du projet", "PROJECT_SLUG": "Label du projet", - "NUMBER_SPRINTS": "Number of sprints (0 for an undetermined quantity)", - "NUMBER_US_POINTS": "Number of US points (0 for an undetermined quantity)", + "NUMBER_SPRINTS": "Nombre de sprints (0 pour non déterminé)", + "NUMBER_US_POINTS": "Nombre de points d'US (0 pour non déterminé)", "TAGS": "Mots-clés", "DESCRIPTION": "Description", "PUBLIC_PROJECT": "Projet public", @@ -447,7 +447,7 @@ "REPORTS": { "TITLE": "Rapports", "SUBTITLE": "Exportez les données de votre projet au format CSV pour créer vos propres rapports.", - "DESCRIPTION": "Download a CSV file or copy the generated URL and open it in your favourite text editor or spreadsheet to make your own project data reports. You will be able to visualize and analyze all your data easily.", + "DESCRIPTION": "Téléchargez un fichier CSV ou copier l'URL générée puis ouvrez la dans votre éditeur de texte ou tableur préféré pour créer votre propre rapports de projet. Vous pourrez facilement visualiser et analyser toutes vos données.", "HELP": "Comment utiliser ceci dans ma propre feuille de calcul?", "REGENERATE_TITLE": "Changer l'URL", "REGENERATE_SUBTITLE": "Vous êtes sur le point de changer l'url d'accès aux données CSV. L'url précédente sera désactivée. Êtes-vous sûre ?" @@ -515,9 +515,9 @@ "PAGE_TITLE": "Rôles - {{projectName}}", "WARNING_NO_ROLE": "Attention, aucun rôle dans votre projet ne pourra estimer la valeur du point pour les récits utilisateurs", "HELP_ROLE_ENABLED": "Si activé, les membres affectés à ce rôle pourront estimer la valeur du point pour les récits utilisateurs", - "DISABLE_COMPUTABLE_ALERT_TITLE": "Disable estimation for this role", - "DISABLE_COMPUTABLE_ALERT_SUBTITLE": "If you disable estimation permissions for role {{roleName}} all previous estimations made by this role will be removed", - "DISABLE_COMPUTABLE_ALERT_MESSAGE": "Are you sure you want to disable this role estimations?", + "DISABLE_COMPUTABLE_ALERT_TITLE": "Désactiver les estimations pour ce rôle", + "DISABLE_COMPUTABLE_ALERT_SUBTITLE": "Si vous désactivez les estimations pour le rôle {{roleName}} toutes les estimations précédentes faites par ce rôle seront supprimées", + "DISABLE_COMPUTABLE_ALERT_MESSAGE": "Êtes-vous sûr de vouloir désactiver les estimations de ce rôle?", "COUNT_MEMBERS": "{{ role.members_count }} membres avec ce rôle", "TITLE_DELETE_ROLE": "Supprimer des rôles", "REPLACEMENT_ROLE": "Tous les utilisateurs avec ce rôle seront déplacés dans", @@ -579,7 +579,7 @@ "CANCEL_TITLE": "Annuler la création", "SET_FIELD_NAME": "Saisissez le nom du champ personnalisé", "SET_FIELD_DESCRIPTION": "Entrez la description de votre champ personnalisé", - "FIELD_TYPE_DEFAULT": "-- select one --", + "FIELD_TYPE_DEFAULT": "-- sélectionnez un --", "ACTION_UPDATE": "Mettre à jour le champ personnalisé", "ACTION_CANCEL_EDITION": "Annuler l'édition" }, @@ -591,7 +591,7 @@ "STATUS_ACTIVE": "Actif", "STATUS_PENDING": "En attente", "DELETE_MEMBER": "Supprimer un membre", - "RESEND": "Resend", + "RESEND": "Renvoyer", "SUCCESS_SEND_INVITATION": "Nous avons envoyé une autre invitation à '{{email}}'.", "ERROR_SEND_INVITATION": "Nous n'avons pas envoyé l'invitation", "SUCCESS_DELETE": "Nous avons supprimé {{message}}.", @@ -668,35 +668,35 @@ "ACTIVITY_TAB": "Activité", "ACTIVITY_TAB_TITLE": "Voir toutes les activités de cet utilisateur", "PROJECTS_TAB": "Projets", - "PROJECTS_TAB_TITLE": "List all projects that this user is a member", - "LIKES_TAB": "Likes", - "LIKES_TAB_TITLE": "List all likes made by this user", + "PROJECTS_TAB_TITLE": "List of all projects in which the user is a member", + "LIKES_TAB": "Aime", + "LIKES_TAB_TITLE": "Lister tous les 'aime' fait par cet utilisateur", "VOTES_TAB": "Votes", - "VOTES_TAB_TITLE": "List all votes made by this user", - "WATCHED_TAB": "Watched", - "WATCHED_TAB_TITLE": "List all item watched by this user", + "VOTES_TAB_TITLE": "Lister tous les votes faits par cet utilisateur", + "WATCHED_TAB": "Suivre", + "WATCHED_TAB_TITLE": "Lister tous les éléments suivis par cet utilisateur", "CONTACTS_TAB": "Contacts", - "CONTACTS_TAB_TITLE": "List all contacts made by this user" + "CONTACTS_TAB_TITLE": "Lister tous les contacts pris par cet utilisateur" } }, "PROFILE_SIDEBAR": { "TITLE": "Votre profil", "DESCRIPTION": "Tout le monde peut voir ce que vous faites et ce sur quoi vous travaillez. Ajoutez une bio détaillée pour améliorer la vision perçue de votre profil.", - "ADD_INFO": "Edit bio" + "ADD_INFO": "Editer la biographie" }, "PROFILE_FAVS": { - "FILTER_INPUT_PLACEHOLDER": "Type something...", + "FILTER_INPUT_PLACEHOLDER": "Écrivez quelque chose...", "FILTER_TYPE_ALL": "Toutes", - "FILTER_TYPE_ALL_TITLE": "Show all", + "FILTER_TYPE_ALL_TITLE": "Voir tous", "FILTER_TYPE_PROJECTS": "Projets", - "FILTER_TYPE_PROJECT_TITLES": "Show only projects", + "FILTER_TYPE_PROJECT_TITLES": "Voir uniquement les projets", "FILTER_TYPE_USER_STORIES": "Stories", - "FILTER_TYPE_USER_STORIES_TITLES": "Show only user stories", + "FILTER_TYPE_USER_STORIES_TITLES": "Voir uniquement les user stories", "FILTER_TYPE_TASKS": "Tâches", - "FILTER_TYPE_TASK_TITLES": "Show only tasks", + "FILTER_TYPE_TASK_TITLES": "Voir uniquement les tâches", "FILTER_TYPE_ISSUES": "Tickets", - "FILTER_TYPE_ISSUES_TITLE": "Show only issues", - "EMPTY_TITLE": "It looks like there's nothing to show here." + "FILTER_TYPE_ISSUES_TITLE": "Voir uniquement les tickets", + "EMPTY_TITLE": "Il n'y a rien à afficher ici." } }, "PROJECT": { @@ -767,24 +767,24 @@ "SYNC_SUCCESS": "Votre projet a été importé avec succès" }, "LIKE_BUTTON": { - "LIKE": "Like", - "LIKED": "Liked", - "UNLIKE": "Unlike", - "BUTTON_TITLE": "Like or unlike this project", - "COUNTER_TITLE": "{total, plural, one{one fan} other{# fans}}" + "LIKE": "Aimer", + "LIKED": "Aimé", + "UNLIKE": "Je n'aime plus", + "BUTTON_TITLE": "Aimer ou ne plus aimer ce projet", + "COUNTER_TITLE": "{total, plural, one{un fan} other{# fans}}" }, "WATCH_BUTTON": { - "BUTTON_TITLE": "Watch this project and set notification policy", + "BUTTON_TITLE": "Suivre ce projet et définir une politique de notification", "WATCH": "Suivre", "WATCHING": "Observant", - "COUNTER_TITLE": "{total, plural, one{one watcher} other{# watchers}}", + "COUNTER_TITLE": "{total, plural, one{un suiveur} other{# suiveurs}}", "OPTIONS": { "NOTIFY_ALL": "Recevoir toutes les notifications", - "NOTIFY_ALL_TITLE": "Receive all notifications for this project", - "NOTIFY_INVOLVED": "Only involved", - "NOTIFY_INVOLVED_TITLE": "Recive notificacions only when you are involved", - "UNWATCH": "Unwatch", - "UNWATCH_TITLE": "Unwatch this project" + "NOTIFY_ALL_TITLE": "Recevoir toutes les notifications pour ce projet", + "NOTIFY_INVOLVED": "Uniquement si impliqué", + "NOTIFY_INVOLVED_TITLE": "Recevoir des notifications uniquement si vous êtes impliqué", + "UNWATCH": "Ne plus suivre", + "UNWATCH_TITLE": "Ne plus suivre ce projet" } } }, @@ -858,7 +858,7 @@ "SECTION_NAME": "Détails du récit utilisateur", "LINK_TASKBOARD": "Tableau des tâches", "TITLE_LINK_TASKBOARD": "Aller au tableau des tâches", - "TOTAL_POINTS": "total points", + "TOTAL_POINTS": "Total des points", "ADD": "Ajouter un nouveau récit utilisateur", "ADD_BULK": "Ajouter de nouveaux récits utilisateur en lot", "PROMOTED": "Ce récit utilisateur a été promue à partir d'un ticket :", @@ -945,10 +945,10 @@ "PAGE_TITLE": "Carnet - {{projectName}}", "PAGE_DESCRIPTION": "Le panneau carnet avec les récits utilisateurs et sprints du projet {{projectName}} : {{projectDescription}}", "SECTION_NAME": "Carnet", - "CUSTOMIZE_GRAPH": "Customize your backlog graph", - "CUSTOMIZE_GRAPH_TEXT": "To have a nice graph that helps you follow the evolution of the project you have to set up the points and sprints through the", + "CUSTOMIZE_GRAPH": "Personnalisez votre backlog", + "CUSTOMIZE_GRAPH_TEXT": "Pour obtenir un graphique agréable qui vous aide à suivre l'évolution du projet vous devez définir les points et les sprints via", "CUSTOMIZE_GRAPH_ADMIN": "Admin", - "CUSTOMIZE_GRAPH_TITLE": "Set up the points and sprints through the Admin", + "CUSTOMIZE_GRAPH_TITLE": "Définissez les points et les sprints via l'admin", "MOVE_US_TO_CURRENT_SPRINT": "Déplacer vers le Sprint Courant", "SHOW_FILTERS": "Afficher les filtres", "SHOW_TAGS": "Afficher les mots-clés", @@ -1012,10 +1012,10 @@ "LINK_TASKBOARD": "Taskboard du sprint", "TITLE_LINK_TASKBOARD": "Aller au Taskboard de \"{{name}}\"", "NUMBER_SPRINTS": "
sprints", - "EMPTY": "YOU HAVE NO SPRINTS", - "WARNING_EMPTY_SPRINT": "Drop here Stories from your backlog to start a new sprint", - "TITLE_ACTION_NEW_SPRINT": "Add new sprint", - "TEXT_ACTION_NEW_SPRINT": "You may want to create a new sprint in your project", + "EMPTY": "VOUS N'AVEZ AUCUN SPRINT", + "WARNING_EMPTY_SPRINT": "Déposez ici des Stories de votre backlog pour démarrer un nouveau sprint", + "TITLE_ACTION_NEW_SPRINT": "Ajouter un sprint", + "TEXT_ACTION_NEW_SPRINT": "Vous souhaitez peut être créer un nouveau sprint dans votre projet.", "ACTION_SHOW_CLOSED_SPRINTS": "Afficher les sprints fermés", "ACTION_HIDE_CLOSED_SPRINTS": "Cacher les sprints fermés" } @@ -1036,8 +1036,8 @@ "TITLE_ACTION_ADD_BULK": "Ajouter de nouvelles tâches en lot", "TITLE_ACTION_ASSIGN": "Affecter une tâche", "TITLE_ACTION_EDIT": "Modifier la tâche", - "PLACEHOLDER_CARD_TITLE": "This could be a task", - "PLACEHOLDER_CARD_TEXT": "Split Stories into tasks to track them separately", + "PLACEHOLDER_CARD_TITLE": "Cela pourrait être une tâche", + "PLACEHOLDER_CARD_TEXT": "Eclater les Stories en tâches pour les suivre séparemment", "TABLE": { "COLUMN": "Récit utilisateur", "TITLE_ACTION_FOLD": "Replier la colonne", @@ -1189,8 +1189,8 @@ "HIDDEN_USER_STORIES": "Les user stories avec ce statut sont masquées par défaut", "ARCHIVED": "Vous avez archivé", "UNDO_ARCHIVED": "Refaites le glisser-déposer pour annuler", - "PLACEHOLDER_CARD_TITLE": "These are your User Stories", - "PLACEHOLDER_CARD_TEXT": "Stories might also have subtasks to separate requirements" + "PLACEHOLDER_CARD_TITLE": "Ce sont vos User Stories", + "PLACEHOLDER_CARD_TEXT": "Les stories peuvent avoir des sous-tâches pour séparer les pré-requis" }, "SEARCH": { "PAGE_TITLE": "Chercher - {{projectName}}", @@ -1323,7 +1323,7 @@ "MILESTONE_UPDATED": "{{username}} a mis à jour le sprint {{obj_name}}", "US_UPDATED": "{{username}} a mis à jour l'attribut «{{field_name}}» du récit utilisateur {{obj_name}}", "US_UPDATED_WITH_NEW_VALUE": "{{username}} a mis l'attribut \"{{field_name}}\" à {{new_value}} pour le récit utilisateur {{obj_name}}", - "US_UPDATED_POINTS": "{{username}} has updated '{{role_name}}' points of the US {{obj_name}} to {{new_value}}", + "US_UPDATED_POINTS": "{{username}} a mit à jour les points du rôle '{{role_name}}' de l'US {{obj_name}} à la valeur {{new_value}}", "ISSUE_UPDATED": "{{username}} a mis à jour l'attribut «{{field_name}}» du ticket {{obj_name}}", "ISSUE_UPDATED_WITH_NEW_VALUE": "{{username}} a mis l'attribut \"{{field_name}}\" à {{new_value}} pour le ticket {{obj_name}}", "TASK_UPDATED": "{{username}} a mis l'attribut \"{{field_name}}\" à {{new_value}} pour la tâche {{obj_name}}", @@ -1336,20 +1336,20 @@ "NEW_COMMENT_TASK": "{{username}} a commenté la tâche {{obj_name}}", "NEW_MEMBER": "{{project_name}} a un nouveau membre", "US_ADDED_MILESTONE": "{{username}} a ajouté le récit utilisateur {{obj_name}} à {{sprint_name}}", - "US_MOVED": "{{username}} has moved the US {{obj_name}}", + "US_MOVED": "{{username}} a déplacé l'US {{obj_name}}", "US_REMOVED_FROM_MILESTONE": "{{username}} a ajouté le récit utilisateur {{obj_name}} au carnet", "BLOCKED": "{{username}} a bloqué {{obj_name}}", "UNBLOCKED": "{{username}} a débloqué {{obj_name}}", "NEW_USER": "{{username}} a rejoint Taiga" }, "LEGAL": { - "TERMS_OF_SERVICE_AND_PRIVACY_POLICY_AD": "By clicking \"Sign up\"', you agree to our
terms of service and privacy policy." + "TERMS_OF_SERVICE_AND_PRIVACY_POLICY_AD": "En cliquant sur \"S'enregistrer\"', vous acceptez nos
conditions de service et notre politique de sécurité." }, "EXTERNAL_APP": { - "PAGE_TITLE": "An external app requires authentication", - "PAGE_DESCRIPTION": "An external app requires authentication", - "AUTHORIZATION_REQUEST": "Authorize {{application}} to use your Taiga account?", - "LOGIN_WITH_ANOTHER_USER": "Login with another user", + "PAGE_TITLE": "Une application externe requiert l'authentification", + "PAGE_DESCRIPTION": "Une application externe requiert l'authentification", + "AUTHORIZATION_REQUEST": "Autoriser {{application}} à utiliser votre compte Taiga?", + "LOGIN_WITH_ANOTHER_USER": "Se connecter avec un autre utilisateur", "AUTHORIZE_APP": "Autoriser l'application", "CANCEL": "Annuler" }, @@ -1357,55 +1357,55 @@ "DASHBOARD": { "STEP1": { "TITLE": "Votre projet", - "TEXT": "Welcome! Here you will find the projects you are involved on." + "TEXT": "Bienvenue! Ici vous trouverez tous les projets dont vous êtes membre." }, "STEP2": { "TITLE": "Projets en cours", - "TEXT": "Here you will find the User Stories, Tasks and Issues in which you are working on." + "TEXT": "Ici vous trouverez les User Stories, tâches et tickets sur lesquels vous travaillez." }, "STEP3": { "TITLE": "Observant", - "TEXT1": "And right here you will find the ones that you want to know about.", - "TEXT2": "You are already working with Taiga ;)" + "TEXT1": "Et ici vous trouverez celles dont vous voulez être informé.", + "TEXT2": "Vous travaillez déjà avec Taiga ;)" }, "STEP4": { - "TITLE": "Let’s start", - "TEXT1": "You can start by creating your first Taiga project.", - "TEXT2": "Good luck!" + "TITLE": "Commençons", + "TEXT1": "Vous pouvez démarrer en créant votre premier projet Taiga.", + "TEXT2": "Bonne chance!" } }, "BACKLOG": { "STEP1": { "TITLE": "Résumé du projet", - "TEXT1": "Here you will see the state of your project.", - "TEXT2": "You can change every kind of project settings through the admin." + "TEXT1": "Ici vous verrez l'état de votre projet.", + "TEXT2": "Vous pouvez modifier tous les paramètres d'un projet dans l'administration." }, "STEP2": { - "TITLE": "Product backlog", - "TEXT": "The backlog is the list of requirements (User Stories) for the project. Here is where you will plan your sprints." + "TITLE": "Backlog du produit", + "TEXT": "Le backlog est la liste des pré-requis (User Stories) pour le projet. Ici vous préparerez vos sprints." }, "STEP3": { "TITLE": "Sprints", - "TEXT": "Sprints are short periods of time (usually 2 weeks) during which specific work has to be completed and delivered." + "TEXT": "Les sprints sont des courtes périodes (généralement 2 semaines) pendant lesquels certaines tâches doivent êtres faites et livrées." }, "STEP4": { "TITLE": "Récits utilisateur", - "TEXT": "Those are the requirements at high level. You can add them to the backlog and drag them to the sprint in which it should be delivered." + "TEXT": "Ce sont les pré-requis de haut niveau. Vous pouvez les ajouter au backlog et les déplacer dans le sprint pour lequel elle devront être livrées." } }, "KANBAN": { "STEP1": { - "TITLE": "Customize your workflow", - "TEXT": "Set up the columns you need to map your workflow statuses through the admin." + "TITLE": "Personnalisez votre workflow", + "TEXT": "Configurez les colonnes de statut dont vous aurez besoin pour lier votre workflow à l'administration." }, "STEP2": { - "TITLE": "User Stories & Tasks", - "TEXT": "User Stories are the requirements at high level. You can drag them to different columns." + "TITLE": "User Stories et Tâches", + "TEXT": "Les user stories sont les pré-requis de haut niveau. Vous pouvez les déplacer dans différentes colonnes." }, "STEP3": { - "TITLE": "Adding User Stories", - "TEXT1": "You may want to add a single User Story (add US icon) or a group of them (bulk icon)", - "TEXT2": "Good luck!" + "TITLE": "Ajout d'User Stories", + "TEXT1": "Vous pouvez vouloir ajouter une User Story (icône ajouter une US) ou un groupe d'User Stories (icône provisoir)", + "TEXT2": "Bonne chance!" } } } diff --git a/app/locales/locale-it.json b/app/locales/locale-it.json index 6b288254..558096cc 100644 --- a/app/locales/locale-it.json +++ b/app/locales/locale-it.json @@ -668,7 +668,7 @@ "ACTIVITY_TAB": "Attività", "ACTIVITY_TAB_TITLE": "Mostra tutte le attività dell'utente", "PROJECTS_TAB": "Progetti", - "PROJECTS_TAB_TITLE": "Mostra tutti i progetti di cui questo utente è membro", + "PROJECTS_TAB_TITLE": "List of all projects in which the user is a member", "LIKES_TAB": "Likes", "LIKES_TAB_TITLE": "List all likes made by this user", "VOTES_TAB": "Voti", diff --git a/app/locales/locale-nl.json b/app/locales/locale-nl.json index 9f913ac5..d970caf8 100644 --- a/app/locales/locale-nl.json +++ b/app/locales/locale-nl.json @@ -668,7 +668,7 @@ "ACTIVITY_TAB": "Activiteit", "ACTIVITY_TAB_TITLE": "Alle activiteit van deze gebruiker weergeven", "PROJECTS_TAB": "Projecten", - "PROJECTS_TAB_TITLE": "Lijst alle projecten op waar deze gebruiker lid van is", + "PROJECTS_TAB_TITLE": "List of all projects in which the user is a member", "LIKES_TAB": "Personen die dit leuk vinden", "LIKES_TAB_TITLE": "Lijst alles op wat deze gebruiker leuk vind", "VOTES_TAB": "Stemmen", diff --git a/app/locales/locale-pl.json b/app/locales/locale-pl.json index 060714db..182065a2 100644 --- a/app/locales/locale-pl.json +++ b/app/locales/locale-pl.json @@ -668,7 +668,7 @@ "ACTIVITY_TAB": "Aktywność", "ACTIVITY_TAB_TITLE": "Show all the activity of this user", "PROJECTS_TAB": "Projekty", - "PROJECTS_TAB_TITLE": "List all projects that this user is a member", + "PROJECTS_TAB_TITLE": "List of all projects in which the user is a member", "LIKES_TAB": "Likes", "LIKES_TAB_TITLE": "List all likes made by this user", "VOTES_TAB": "Głosy", diff --git a/app/locales/locale-pt-br.json b/app/locales/locale-pt-br.json index bc8bad59..1a714cb1 100644 --- a/app/locales/locale-pt-br.json +++ b/app/locales/locale-pt-br.json @@ -668,7 +668,7 @@ "ACTIVITY_TAB": "Atividade", "ACTIVITY_TAB_TITLE": "Exibir todas as atividade deste usuário", "PROJECTS_TAB": "Projetos", - "PROJECTS_TAB_TITLE": "Listar todos projetos que este usuário é membro", + "PROJECTS_TAB_TITLE": "List of all projects in which the user is a member", "LIKES_TAB": "Curtir", "LIKES_TAB_TITLE": "Lista todos curtidas feitas por este usuário", "VOTES_TAB": "Votos", diff --git a/app/locales/locale-ru.json b/app/locales/locale-ru.json index e2d693ad..e87e575d 100644 --- a/app/locales/locale-ru.json +++ b/app/locales/locale-ru.json @@ -668,7 +668,7 @@ "ACTIVITY_TAB": "Действия", "ACTIVITY_TAB_TITLE": "Показать все действия пользователя", "PROJECTS_TAB": "Проекты", - "PROJECTS_TAB_TITLE": "Список всех проектов, в которых участвует пользователь", + "PROJECTS_TAB_TITLE": "List of all projects in which the user is a member", "LIKES_TAB": "Likes", "LIKES_TAB_TITLE": "List all likes made by this user", "VOTES_TAB": "Голоса", diff --git a/app/locales/locale-zh-hant.json b/app/locales/locale-zh-hant.json index 0b0178ea..160cceac 100644 --- a/app/locales/locale-zh-hant.json +++ b/app/locales/locale-zh-hant.json @@ -668,7 +668,7 @@ "ACTIVITY_TAB": "動態", "ACTIVITY_TAB_TITLE": "Show all the activity of this user", "PROJECTS_TAB": "專案", - "PROJECTS_TAB_TITLE": "List all projects that this user is a member", + "PROJECTS_TAB_TITLE": "List of all projects in which the user is a member", "LIKES_TAB": "Likes", "LIKES_TAB_TITLE": "List all likes made by this user", "VOTES_TAB": "投票數", From ff4d2c173d8ea1b98d00736ad9eb52ed18b40d38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Tue, 3 Nov 2015 13:51:57 +0100 Subject: [PATCH 010/100] Moustache transform origin compatibility in Firefox --- app/styles/layout/auth.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/styles/layout/auth.scss b/app/styles/layout/auth.scss index 66e47a71..14d7265c 100644 --- a/app/styles/layout/auth.scss +++ b/app/styles/layout/auth.scss @@ -67,7 +67,7 @@ fill: rgba($primary, .9); stroke: $primary-light; stroke-width: 1px; - transform-origin: 50% 20%; + transform-origin: 50% 50%; transition: .3s; &:hover { fill: rgba($primary-light, .9); From 0b4d265686e2f321bae00729772050a916a46679 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Tue, 3 Nov 2015 16:35:16 +0100 Subject: [PATCH 011/100] [i18n] Fix locales --- app/locales/locale-ca.json | 6 +++--- app/locales/locale-de.json | 6 +++--- app/locales/locale-en.json | 6 +++--- app/locales/locale-es.json | 6 +++--- app/locales/locale-fi.json | 6 +++--- app/locales/locale-fr.json | 6 +++--- app/locales/locale-it.json | 6 +++--- app/locales/locale-nl.json | 6 +++--- app/locales/locale-pl.json | 6 +++--- app/locales/locale-pt-br.json | 6 +++--- app/locales/locale-ru.json | 6 +++--- app/locales/locale-zh-hant.json | 6 +++--- 12 files changed, 36 insertions(+), 36 deletions(-) diff --git a/app/locales/locale-ca.json b/app/locales/locale-ca.json index c7407672..a32ab1eb 100644 --- a/app/locales/locale-ca.json +++ b/app/locales/locale-ca.json @@ -1305,9 +1305,9 @@ "HINT1_TITLE": "Saps que pots importar i exportar projectes?", "HINT1_TEXT": "Això li permet extreure totes les dades d'un Taiga i moure'l a un altre.", "HINT2_TITLE": "Saps que pots crear camps personalitzats?", - "HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow", - "HINT3_TITLE": "Reorder your projects to feature those most relevant to you", - "HINT3_TEXT": "The top 10 project will be in your top bar direct access", + "HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow.", + "HINT3_TITLE": "Reorder your projects to feature those most relevant to you.", + "HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.", "HINT4_TITLE": "Did you forgot what were you working on?", "HINT4_TEXT": "Don't worry, on your dashboard you'll find your open tasks, issues, and user stories in the order you worked on them." }, diff --git a/app/locales/locale-de.json b/app/locales/locale-de.json index ac54f3a4..e335cd59 100644 --- a/app/locales/locale-de.json +++ b/app/locales/locale-de.json @@ -1305,9 +1305,9 @@ "HINT1_TITLE": "Wussten Sie, dass Sie Projekte importieren und exportieren?", "HINT1_TEXT": "Dies erlaubt Ihnen, alle Ihre Daten zu extrahieren und sie von einer Taiga zur nächsten zu transportieren", "HINT2_TITLE": "Wussten Sie, dass Sie benutzerdefinierte Felder erstellen können?", - "HINT2_TEXT": "Teams können jetzt benutzerdefinierte Felder erstellen, als eine flexible Möglichkeit, spezifische Daten einzutragen. Dies ist praktisch für ihren jeweiligen Arbeitsablauf", - "HINT3_TITLE": "Sortieren Sie ihre Projekte neu, um die zu zeigen, die für Sie am relevantesten sind", - "HINT3_TEXT": "Das Top 10 Projekt wird in der Navigationsleiste direkt zugreifbar sein.", + "HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow.", + "HINT3_TITLE": "Reorder your projects to feature those most relevant to you.", + "HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.", "HINT4_TITLE": "Haben Sie vergessen, woran Sie arbeiten?", "HINT4_TEXT": "Machen Sie sich keine Sorgen, im Dashboard finden Sie Aufgaben, Tickets und User-Stories in der Reihenfolge in der Sie diese bearbeitet haben." }, diff --git a/app/locales/locale-en.json b/app/locales/locale-en.json index e55790a8..570dfd7f 100644 --- a/app/locales/locale-en.json +++ b/app/locales/locale-en.json @@ -1308,9 +1308,9 @@ "HINT1_TITLE": "Did you know you can import and export projects?", "HINT1_TEXT": "This allow you to extract all your data from one Taiga and move it to another one.", "HINT2_TITLE": "Did you know you can create custom fields?", - "HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow", - "HINT3_TITLE": "Reorder your projects to feature those most relevant to you", - "HINT3_TEXT": "The top 10 project will be in your top bar direct access", + "HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow.", + "HINT3_TITLE": "Reorder your projects to feature those most relevant to you.", + "HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.", "HINT4_TITLE": "Did you forgot what were you working on?", "HINT4_TEXT": "Don't worry, on your dashboard you'll find your open tasks, issues, and user stories in the order you worked on them." }, diff --git a/app/locales/locale-es.json b/app/locales/locale-es.json index caf613b0..7c1448c9 100644 --- a/app/locales/locale-es.json +++ b/app/locales/locale-es.json @@ -1305,9 +1305,9 @@ "HINT1_TITLE": "¿Sabes que puedes importar y exportar proyectos?", "HINT1_TEXT": "Esto permite extraer todos tus datos para moverlos de una instancia de Taiga a otra.\n", "HINT2_TITLE": "¿Sabías que puedes crear atributos personalizados?", - "HINT2_TEXT": "Los equipos ahora pueden crear atributos personalizados como un medio flexible para introducir datos específicos útiles para su flujo de trabajo particular", - "HINT3_TITLE": "Reordenar tus proyectos para facilitar el acceso a los más relevantes para ti", - "HINT3_TEXT": "Los 10 primeros proyectos aparecerán en el listado del acceso directo de la barra superior.", + "HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow.", + "HINT3_TITLE": "Reorder your projects to feature those most relevant to you.", + "HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.", "HINT4_TITLE": "Has olvidado en qué estabas trabajando?", "HINT4_TEXT": "No te preocupes, en el dashboard encontrarás las tareas, peticiones e historias de usuario abiertas en el orden en el que trabajste en ellas." }, diff --git a/app/locales/locale-fi.json b/app/locales/locale-fi.json index eb0f09be..b7b2537b 100644 --- a/app/locales/locale-fi.json +++ b/app/locales/locale-fi.json @@ -1305,9 +1305,9 @@ "HINT1_TITLE": "Did you know you can import and export projects?", "HINT1_TEXT": "This allow you to extract all your data from one Taiga and move it to another one.", "HINT2_TITLE": "Did you know you can create custom fields?", - "HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow", - "HINT3_TITLE": "Reorder your projects to feature those most relevant to you", - "HINT3_TEXT": "The top 10 project will be in your top bar direct access", + "HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow.", + "HINT3_TITLE": "Reorder your projects to feature those most relevant to you.", + "HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.", "HINT4_TITLE": "Did you forgot what were you working on?", "HINT4_TEXT": "Don't worry, on your dashboard you'll find your open tasks, issues, and user stories in the order you worked on them." }, diff --git a/app/locales/locale-fr.json b/app/locales/locale-fr.json index 2615dd98..4abf833e 100644 --- a/app/locales/locale-fr.json +++ b/app/locales/locale-fr.json @@ -1305,9 +1305,9 @@ "HINT1_TITLE": "Savez-vous que vous pouvez importer et exporter les projets?", "HINT1_TEXT": "Cela vous permet d'extraire toutes vos données d'un Taiga et de le déplacer vers un autre", "HINT2_TITLE": "Savez-vous que vous pouvez créer des champs personnalisés ?", - "HINT2_TEXT": "Les équipes peuvent maintenant créer des champs personnalisés de façon à leur permettre de saisir les données qui font sens à leur flux de travail", - "HINT3_TITLE": "Triez vos projets pour mettre en avant ceux qui sont les plus pertinants pour vous", - "HINT3_TEXT": "Vos 10 principaux projets seront accessibles via la barre du haut", + "HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow.", + "HINT3_TITLE": "Reorder your projects to feature those most relevant to you.", + "HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.", "HINT4_TITLE": "Avez-vous oublié ce sur quoi vous travailliez ?", "HINT4_TEXT": "Pas d'inquiétude, vous trouverez dans votre tableau de bord vos tâches, tickets et récits utilisateurs dans l'ordre dans lequel vous avez travaillé dessus." }, diff --git a/app/locales/locale-it.json b/app/locales/locale-it.json index 558096cc..39807ee0 100644 --- a/app/locales/locale-it.json +++ b/app/locales/locale-it.json @@ -1305,9 +1305,9 @@ "HINT1_TITLE": "Sai che puoi anche importare ed esportare progetti?", "HINT1_TEXT": "Questo ti permette di estrarre tutti i tuoi dati da un Taiga e muoverli dentro un altro.", "HINT2_TITLE": "Sai che puoi anche creare dei cambi personalizzati?", - "HINT2_TEXT": "Ora il team puà creare un nuovo campo personalizzato come strumento flessibile per inserire dati specificamente utili per alcuni flussi di lavoro", - "HINT3_TITLE": "Riordina i tuoi progetti per includere quelli più rilevanti", - "HINT3_TEXT": "La top 10 dei progetti sarà visibile in alto nella barra ad accesso diretto", + "HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow.", + "HINT3_TITLE": "Reorder your projects to feature those most relevant to you.", + "HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.", "HINT4_TITLE": "Ti sei dimenticato su cosa stavi lavorando?", "HINT4_TEXT": "Non preoccuparti, sulla tua dashboard troverai i compiti aperti, i problemi e le storie utenti così da poterci lavorare" }, diff --git a/app/locales/locale-nl.json b/app/locales/locale-nl.json index d970caf8..0cfac83d 100644 --- a/app/locales/locale-nl.json +++ b/app/locales/locale-nl.json @@ -1305,9 +1305,9 @@ "HINT1_TITLE": "Wist je dat je nu projecten kunt importeren en exporteren?", "HINT1_TEXT": "Dit maakt het mogelijk om al je data vanuit de ene taiga te verplaatsen naar een andere", "HINT2_TITLE": "Weet je dat je custom velden kunt aanmaken?", - "HINT2_TEXT": "Teams kunnen nu eigen velden definiëren als een flexibele manier om specifieke data in te voeren die nuttig is voor hun specifieke workflow", - "HINT3_TITLE": "Herorden je projecten zodat de belangrijkste bovenaan staan", - "HINT3_TEXT": "De top 10 projecten verschijnen in je directe toegang bovenbalk", + "HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow.", + "HINT3_TITLE": "Reorder your projects to feature those most relevant to you.", + "HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.", "HINT4_TITLE": "Ben je vergeten waar je aan hebt gewerkt?", "HINT4_TEXT": "Maak je geen zorgen, op je dashboard vind je al jouw open taken, issues en user stories in de volgorde waarin je hebt gewerkt." }, diff --git a/app/locales/locale-pl.json b/app/locales/locale-pl.json index 182065a2..3e425954 100644 --- a/app/locales/locale-pl.json +++ b/app/locales/locale-pl.json @@ -1305,9 +1305,9 @@ "HINT1_TITLE": "Czy wiesz, że możesz eksportować i importować projekty?", "HINT1_TEXT": "Dzięki temu możesz przenieść wszystkie swoje dane z jednej instalacji Taiga do drugiej.", "HINT2_TITLE": "Czy wiesz, że możesz tworzyć niestandardowe pola?", - "HINT2_TEXT": "Zespoły mogą tworzyć niestandardowe pola co pozwala dopasować formularze do sposobu pracy.", - "HINT3_TITLE": "Zmieniaj kolejność projektów aby wyróżnić te najbardziej istotne dla Ciebie", - "HINT3_TEXT": "Pierwsze 10 projektów będzie wyświetlane w górnym menu", + "HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow.", + "HINT3_TITLE": "Reorder your projects to feature those most relevant to you.", + "HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.", "HINT4_TITLE": "Zapomniałeś nad czym pracujesz?", "HINT4_TEXT": "Nie martw się, na Twojej tablicy znajdziesz otwarte zadania, zgłoszenia i historyjki użytkownika w takiej kolejności, w jakiej nad nimi pracowałeś." }, diff --git a/app/locales/locale-pt-br.json b/app/locales/locale-pt-br.json index 1a714cb1..654ad114 100644 --- a/app/locales/locale-pt-br.json +++ b/app/locales/locale-pt-br.json @@ -1305,9 +1305,9 @@ "HINT1_TITLE": "Você sabia que você pode importar e exportar projetos?", "HINT1_TEXT": "Isso permite você extrair todo o seu conteúdo de um Taiga e mover para outro.", "HINT2_TITLE": "Você sabia que pode criar campos personalizados?", - "HINT2_TEXT": "Times podem agora criar campos personalizados flexíveis como entrar valores relevantes especificamente para seus escopos de trabalho", - "HINT3_TITLE": "Reordenar seus projetos para evidenciar os mais relevantes para você", - "HINT3_TEXT": "The top 10 project will be in your top bar direct access\nOs 10 projetos com maior destaque estarão na sua barra de acesso direto", + "HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow.", + "HINT3_TITLE": "Reorder your projects to feature those most relevant to you.", + "HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.", "HINT4_TITLE": "Você esqueceu no que está trabalhando?", "HINT4_TEXT": "Não se preocupe, no seu painel você vai encontrar suas tarefas abertas, casos, e user stories na ordem que você trabalha neles." }, diff --git a/app/locales/locale-ru.json b/app/locales/locale-ru.json index e87e575d..99a9c7b2 100644 --- a/app/locales/locale-ru.json +++ b/app/locales/locale-ru.json @@ -1305,9 +1305,9 @@ "HINT1_TITLE": "Вы знали что можно импортировать и экспортировать проекты?", "HINT1_TEXT": "Это позволяет вам собирать данные из одной Taiga и копировать в другую.", "HINT2_TITLE": "Вы знали что можно создавать собственные поля?", - "HINT2_TEXT": "Команды теперь могут создавать специальные поля в качестве гибкого средства для ввода специфических данных их конкретного процесса работы", - "HINT3_TITLE": "Отсортируйте ваши проекты по признаку, наиболее важному для вас", - "HINT3_TEXT": "Главные 10 проектов будут доступны непосредственно из верхней панели", + "HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow.", + "HINT3_TITLE": "Reorder your projects to feature those most relevant to you.", + "HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.", "HINT4_TITLE": "Вы забыли над чем работали?", "HINT4_TEXT": "Не переживайте, на вашем рабочем столе вы найдёте ваши активные задачи, запросы и пользовательские истории в том порядке, в котором вы над ними работали." }, diff --git a/app/locales/locale-zh-hant.json b/app/locales/locale-zh-hant.json index 160cceac..e70ae3d7 100644 --- a/app/locales/locale-zh-hant.json +++ b/app/locales/locale-zh-hant.json @@ -1305,9 +1305,9 @@ "HINT1_TITLE": "你知道可以滙入與滙出專案嗎?", "HINT1_TEXT": "可以從 Taiga提取所有個人資料記錄,移入其它地方。", "HINT2_TITLE": "你知道可以創建個人化欄位嗎", - "HINT2_TEXT": "團隊可以創建客製欄位,以彈性的方式來輸入特殊資料,有利於其特別的工作流程需求。", - "HINT3_TITLE": "記錄你的專案並突顯其中最相關者", - "HINT3_TEXT": "前十個專案將展示在你的上方欄位以便直接連結。", + "HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow.", + "HINT3_TITLE": "Reorder your projects to feature those most relevant to you.", + "HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.", "HINT4_TITLE": "你是否曾忘了自己要做什麼?", "HINT4_TEXT": "別憺心,在控制台可以找到你的公開任務、問題以及使用者故事的工作次序。" }, From b906cfe02a5e9afb496606207e14cb207ea68c52 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Tue, 3 Nov 2015 13:32:32 +0100 Subject: [PATCH 012/100] fix keyboard navigation in assinedTo and watchers lightbox --- app/coffee/modules/common/lightboxes.coffee | 22 +-- app/styles/components/user-list.scss | 7 +- app/styles/modules/common/lightbox.scss | 5 +- e2e/full/issues/issue-detail.e2e.js | 4 +- e2e/full/tasks/task-detail.e2e.js | 4 +- .../user-stories/user-story-detail.e2e.js | 4 +- e2e/helpers/common-helper.js | 9 + e2e/helpers/detail-helper.js | 20 +- e2e/utils/detail.js | 178 +++++++++++++++--- 9 files changed, 196 insertions(+), 57 deletions(-) diff --git a/app/coffee/modules/common/lightboxes.coffee b/app/coffee/modules/common/lightboxes.coffee index 2bde4891..4cb8b372 100644 --- a/app/coffee/modules/common/lightboxes.coffee +++ b/app/coffee/modules/common/lightboxes.coffee @@ -89,34 +89,34 @@ class LightboxKeyboardNavigationService extends taiga.Service docEl.off(".keyboard-navigation") dispatch: ($el, code) -> - activeElement = $el.find(".active") + activeElement = $el.find(".selected") # Key: enter if code == 13 - if $el.find(".watcher-single").length == 1 - $el.find('.watcher-single:first').trigger("click") + if $el.find(".user-list-single").length == 1 + $el.find('.user-list-single:first').trigger("click") else activeElement.trigger("click") # Key: down else if code == 40 if not activeElement.length - $el.find('.watcher-single:first').addClass('active') + $el.find('.user-list-single:not(".is-active"):first').addClass('selected') else - next = activeElement.next('.watcher-single') + next = activeElement.next('.user-list-single') if next.length - activeElement.removeClass('active') - next.addClass('active') + activeElement.removeClass('selected') + next.addClass('selected') # Key: up else if code == 38 if not activeElement.length - $el.find('.watcher-single:last').addClass('active') + $el.find('.user-list-single:last').addClass('selected') else - prev = activeElement.prev('.watcher-single') + prev = activeElement.prev('.user-list-single:not(".is-active")') if prev.length - activeElement.removeClass('active') - prev.addClass('active') + activeElement.removeClass('selected') + prev.addClass('selected') init: ($el) -> @stop() diff --git a/app/styles/components/user-list.scss b/app/styles/components/user-list.scss index 0000c4dc..6247ddff 100644 --- a/app/styles/components/user-list.scss +++ b/app/styles/components/user-list.scss @@ -31,9 +31,12 @@ @extend %user-list; margin-top: 1rem; .user-list-single { - &:hover { + &:hover, + &.selected { background: lighten($primary, 58%); cursor: pointer; + } + &:hover { transition: background .3s linear; transition-delay: .2s; } @@ -48,7 +51,7 @@ opacity: 1; position: absolute; right: 1rem; - top: 1.3rem; + top: 1.5rem; transition: opacity .2s ease-in; } } diff --git a/app/styles/modules/common/lightbox.scss b/app/styles/modules/common/lightbox.scss index 47c34245..14c3c70a 100644 --- a/app/styles/modules/common/lightbox.scss +++ b/app/styles/modules/common/lightbox.scss @@ -471,9 +471,12 @@ width: 600px; } .user-list-single { - &:hover { + &:hover, + &.selected { background: lighten($primary, 58%); cursor: pointer; + } + &:hover { transition: background .3s linear; transition-delay: .2s; } diff --git a/e2e/full/issues/issue-detail.e2e.js b/e2e/full/issues/issue-detail.e2e.js index f5486f83..5419b19f 100644 --- a/e2e/full/issues/issue-detail.e2e.js +++ b/e2e/full/issues/issue-detail.e2e.js @@ -32,9 +32,9 @@ describe('Issue detail', async function(){ it('status edition', utils.detail.statusTesting); - it('assigned to edition', utils.detail.assignedToTesting); + describe('assigned to edition', utils.detail.assignedToTesting); - it('watchers edition', utils.detail.watchersTesting); + describe('watchers edition', utils.detail.watchersTesting); it('history', utils.detail.historyTesting); diff --git a/e2e/full/tasks/task-detail.e2e.js b/e2e/full/tasks/task-detail.e2e.js index 01766da0..8739b1bd 100644 --- a/e2e/full/tasks/task-detail.e2e.js +++ b/e2e/full/tasks/task-detail.e2e.js @@ -34,9 +34,9 @@ describe('Task detail', function(){ it('status edition', utils.detail.statusTesting); - it('assigned to edition', utils.detail.assignedToTesting); + describe('assigned to edition', utils.detail.assignedToTesting); - it('watchers edition', utils.detail.watchersTesting); + describe('watchers edition', utils.detail.watchersTesting); it('iocaine edition', async function() { // Toggle iocaine status diff --git a/e2e/full/user-stories/user-story-detail.e2e.js b/e2e/full/user-stories/user-story-detail.e2e.js index 1bdd46b6..88849eac 100644 --- a/e2e/full/user-stories/user-story-detail.e2e.js +++ b/e2e/full/user-stories/user-story-detail.e2e.js @@ -33,7 +33,7 @@ describe('User story detail', function(){ it('status edition', utils.detail.statusTesting); - it('assigned to edition', utils.detail.assignedToTesting); + describe('assigned to edition', utils.detail.assignedToTesting); it('team requirement edition', async function() { let requirementHelper = usDetailHelper.teamRequirement(); @@ -65,7 +65,7 @@ describe('User story detail', function(){ expect(isRequired).to.be.equal(newIsRequired); }); - it('watchers edition', utils.detail.watchersTesting); + describe('watchers edition', utils.detail.watchersTesting); it('history', utils.detail.historyTesting); diff --git a/e2e/helpers/common-helper.js b/e2e/helpers/common-helper.js index 3af5d7f9..fc1ee715 100644 --- a/e2e/helpers/common-helper.js +++ b/e2e/helpers/common-helper.js @@ -20,6 +20,15 @@ helper.assignToLightbox = function() { }, getName: function(item) { return el.$$('div[data-user-id] .user-list-name').get(item).getText(); + }, + getNames: function() { + return el.$$('.user-list-name').getText(); + }, + filter: function(text) { + return el.$('input').sendKeys(text); + }, + userList: function() { + return el.$$('.user-list-single'); } }; diff --git a/e2e/helpers/detail-helper.js b/e2e/helpers/detail-helper.js index 3f4d38b2..bc787d86 100644 --- a/e2e/helpers/detail-helper.js +++ b/e2e/helpers/detail-helper.js @@ -114,7 +114,6 @@ helper.assignedTo = function() { let obj = { el: el, - clear: async function() { await browser.actions().mouseMove(el).perform(); @@ -124,15 +123,12 @@ helper.assignedTo = function() { await browser.waitForAngular(); } }, - assign: function() { - el.$('.user-assigned').click(); + el.$('.user-assigned').click(); }, - getUserName: function() { - return el.$('.user-assigned').getText(); + return el.$('.user-assigned').getText(); } - }; return obj; @@ -422,8 +418,16 @@ helper.watchersLightbox = function() { }, getFirstName: function() { return el.$$('.lightbox .ticket-watchers div[data-user-id]').first().getText(); - } - + }, + getNames: function() { + return el.$$('.user-list-name').getText(); + }, + filter: function(text) { + return el.$('input').sendKeys(text); + }, + userList: function() { + return el.$$('.user-list-single'); + } }; return obj; diff --git a/e2e/utils/detail.js b/e2e/utils/detail.js index 952aa295..eb65b555 100644 --- a/e2e/utils/detail.js +++ b/e2e/utils/detail.js @@ -70,17 +70,84 @@ helper.statusTesting = async function() { expect(newGenericStatus).to.be.not.equal(genericStatus); } -helper.assignedToTesting = async function() { - let assignedTo = detailHelper.assignedTo(); - let assignToLightbox = commonHelper.assignToLightbox(); - let userName = detailHelper.assignedTo().getUserName(); - await assignedTo.clear(); - assignedTo.assign(); - await assignToLightbox.waitOpen(); - assignToLightbox.selectFirst(); - await assignToLightbox.waitClose(); - let newUserName = assignedTo.getUserName(); - expect(newUserName).to.be.not.equal(userName); +helper.assignedToTesting = function() { + before(function () { + let assignedTo = detailHelper.assignedTo(); + return assignedTo.clear(); + }) + + it('assign', async function() { + let assignedTo = detailHelper.assignedTo(); + let assignToLightbox = commonHelper.assignToLightbox(); + let userName = detailHelper.assignedTo().getUserName(); + + assignedTo.assign(); + + await assignToLightbox.waitOpen(); + + assignToLightbox.selectFirst(); + + await assignToLightbox.waitClose(); + + let newUserName = assignedTo.getUserName(); + + expect(newUserName).to.be.not.equal(userName); + }); + + it('unassign', async function() { + let assignedTo = detailHelper.assignedTo(); + let assignToLightbox = commonHelper.assignToLightbox(); + + await assignedTo.clear(); + + let newUserName = await assignedTo.getUserName(); + + expect(newUserName).to.be.equal('Not assigned'); + }); + + it('filter', async function () { + let assignedTo = detailHelper.assignedTo(); + let assignToLightbox = commonHelper.assignToLightbox(); + + assignedTo.assign(); + + await assignToLightbox.waitOpen(); + + let names = await assignToLightbox.getNames(); + + await assignToLightbox.filter(names[0]); + + let newNames = await assignToLightbox.getNames(); + + expect(newNames).to.have.length(1); + + assignToLightbox.selectFirst(); + + await assignToLightbox.waitClose(); + }); + + it('keyboard navigatin', async function() { + let assignedTo = detailHelper.assignedTo(); + let assignToLightbox = commonHelper.assignToLightbox(); + + assignedTo.assign(); + + await assignToLightbox.waitOpen(); + + browser + .actions() + .sendKeys(protractor.Key.ARROW_DOWN) + .sendKeys(protractor.Key.ARROW_DOWN) + .sendKeys(protractor.Key.ARROW_DOWN) + .sendKeys(protractor.Key.ARROW_UP) + .perform(); + + let selected = assignToLightbox.userList().get(2); + + let isSelected = await commonUtil.hasClass(selected, 'selected'); + + expect(isSelected).to.be.true; + }); } helper.historyTesting = async function() { @@ -188,30 +255,83 @@ helper.deleteTesting = async function() { await deleteHelper.delete(); } -helper.watchersTesting = async function() { - let watchersHelper = detailHelper.watchers(); - await watchersHelper.removeAllWatchers(); +helper.watchersTesting = function() { + before(function () { + let watchersHelper = detailHelper.watchers(); + return watchersHelper.removeAllWatchers(); + }) - let watchersLightboxHelper = detailHelper.watchersLightbox(); - let userNames = await watchersHelper.getWatchersUserNames(); + it('add watcher', async function() { + let watchersHelper = detailHelper.watchers(); + let watchersLightboxHelper = detailHelper.watchersLightbox(); + let userNames = await watchersHelper.getWatchersUserNames(); - //Add watcher - await watchersHelper.addWatcher(); - await watchersLightboxHelper.waitOpen(); - let newWatcherName = await watchersLightboxHelper.getFirstName(); - await watchersLightboxHelper.selectFirst(); - await watchersLightboxHelper.waitClose(); + await watchersHelper.addWatcher(); + await watchersLightboxHelper.waitOpen(); - let newUserNames = await watchersHelper.getWatchersUserNames(); + let newWatcherName = await watchersLightboxHelper.getFirstName(); - await userNames.push(newWatcherName); + await watchersLightboxHelper.selectFirst(); + await watchersLightboxHelper.waitClose(); - expect(newUserNames.join(',')).to.be.equal(userNames.join(',')); + let newUserNames = await watchersHelper.getWatchersUserNames(); - //Clear watchers - await watchersHelper.removeAllWatchers(); - newUserNames = await watchersHelper.getWatchersUserNames(); - expect(newUserNames.join()).to.be.equal(''); + await userNames.push(newWatcherName); + + expect(newUserNames.join(',')).to.be.equal(userNames.join(',')); + }); + + it('clear watcher', async function() { + let watchersHelper = detailHelper.watchers(); + + await watchersHelper.removeAllWatchers(); + + let newUserNames = await watchersHelper.getWatchersUserNames(); + + expect(newUserNames.join()).to.be.equal(''); + }); + + it('filter watcher', async function () { + let watchersHelper = detailHelper.watchers(); + let watchersLightboxHelper = detailHelper.watchersLightbox(); + let userNames = await watchersHelper.getWatchersUserNames(); + + await watchersHelper.addWatcher(); + await watchersLightboxHelper.waitOpen(); + + let names = await watchersLightboxHelper.getNames(); + + await watchersLightboxHelper.filter(names[0]); + + let newNames = await watchersLightboxHelper.getNames(); + + expect(newNames).to.have.length(1); + + await watchersLightboxHelper.selectFirst(); + await watchersLightboxHelper.waitClose(); + }); + + it('keyboard navigatin', async function() { + let watchersHelper = detailHelper.watchers(); + let watchersLightboxHelper = detailHelper.watchersLightbox(); + + await watchersHelper.addWatcher(); + await watchersLightboxHelper.waitOpen(); + + browser + .actions() + .sendKeys(protractor.Key.ARROW_DOWN) + .sendKeys(protractor.Key.ARROW_DOWN) + .sendKeys(protractor.Key.ARROW_DOWN) + .sendKeys(protractor.Key.ARROW_UP) + .perform(); + + let selected = watchersLightboxHelper.userList().get(1); + + let isSelected = await commonUtil.hasClass(selected, 'selected'); + + expect(isSelected).to.be.true; + }); } helper.customFields = function(typeIndex) { From afb4b4884b321eff47ab734ea3c67958902e69f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Wed, 4 Nov 2015 16:55:20 +0100 Subject: [PATCH 013/100] Fix #3451, change notify_policy to notifi_level --- app/modules/resources/projects-resource.service.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/modules/resources/projects-resource.service.coffee b/app/modules/resources/projects-resource.service.coffee index 4be78a45..a561d575 100644 --- a/app/modules/resources/projects-resource.service.coffee +++ b/app/modules/resources/projects-resource.service.coffee @@ -78,9 +78,9 @@ Resource = (urlsService, http, paginateResponseService) -> url = urlsService.resolve("project-unlike", projectId) return http.post(url) - service.watchProject = (projectId, notifyPolicy) -> + service.watchProject = (projectId, notifyLevel) -> data = { - notify_policy: notifyPolicy + notify_level: notifyLevel } url = urlsService.resolve("project-watch", projectId) return http.post(url, data) From 02bc1c0d774898b03a81ecb25a09636b41a861d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Thu, 5 Nov 2015 13:31:56 +0100 Subject: [PATCH 014/100] Improve placeholders for members, registered users and anonymous users --- app/locales/locale-en.json | 4 ++-- app/partials/backlog/backlog.jade | 9 +++++++-- app/partials/includes/modules/issues-table.jade | 10 ++++++++-- app/partials/includes/modules/sprints.jade | 5 +++-- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/app/locales/locale-en.json b/app/locales/locale-en.json index 570dfd7f..02278cf2 100644 --- a/app/locales/locale-en.json +++ b/app/locales/locale-en.json @@ -954,7 +954,7 @@ "MOVE_US_TO_CURRENT_SPRINT": "Move to Current Sprint", "SHOW_FILTERS": "Show filters", "SHOW_TAGS": "Show tags", - "EMPTY": "Your backlog is empty!", + "EMPTY": "The backlog is empty!", "CREATE_NEW_US": "Create a new US", "CREATE_NEW_US_EMPTY_HELP": "You may want to create a new user story", "EXCESS_OF_POINTS": "Excess of points", @@ -1015,7 +1015,7 @@ "LINK_TASKBOARD": "Sprint Taskboard", "TITLE_LINK_TASKBOARD": "Go to Taskboard of \"{{name}}\"", "NUMBER_SPRINTS": "
sprints", - "EMPTY": "YOU HAVE NO SPRINTS", + "EMPTY": "There are no sprints yet", "WARNING_EMPTY_SPRINT": "Drop here Stories from your backlog to start a new sprint", "TITLE_ACTION_NEW_SPRINT": "Add new sprint", "TEXT_ACTION_NEW_SPRINT": "You may want to create a new sprint in your project", diff --git a/app/partials/backlog/backlog.jade b/app/partials/backlog/backlog.jade index ad6b8ffc..50bcb97f 100644 --- a/app/partials/backlog/backlog.jade +++ b/app/partials/backlog/backlog.jade @@ -50,13 +50,18 @@ div.wrapper(tg-backlog, ng-controller="BacklogController as ctrl", section.backlog-table(ng-class="{'hidden': !userstories.length}") include ../includes/modules/backlog-table - div.empty-backlog(ng-class="{'hidden': userstories.length}", tg-backlog-empty-sortable) + div.empty-backlog( + ng-class="{'hidden': userstories === undefined || userstories.length}" + tg-backlog-empty-sortable + ) img( src="/images/backlog-empty.png" alt="{{'BACKLOG.EMPTY' | translate}}" ) p.title(translate="BACKLOG.EMPTY") - a(href="", title="{{'BACKLOG.CREATE_NEW_US' | translate}}" + a( + href="" + title="{{'BACKLOG.CREATE_NEW_US' | translate}}" ng-click="ctrl.addNewUs('standard')" tg-check-permission="add_us" translate="BACKLOG.CREATE_NEW_US_EMPTY_HELP" diff --git a/app/partials/includes/modules/issues-table.jade b/app/partials/includes/modules/issues-table.jade index e33b7d01..f696730d 100644 --- a/app/partials/includes/modules/issues-table.jade +++ b/app/partials/includes/modules/issues-table.jade @@ -51,10 +51,16 @@ section.issues-table.basic-table(ng-class="{empty: !issues.length}") figure.avatar span.icon.icon-arrow-bottom(tg-check-permission="modify_issue") -section.empty-issues(ng-if="!issues.length") +section.empty-issues(ng-if="issues != undefined && issues.length == 0") img( src="../../images/issues-empty.png", alt="{{ISSUES.TABLE.EMPTY.TITLE | translate }}" ) p.title(translate="ISSUES.TABLE.EMPTY.TITLE") - p(translate="ISSUES.TABLE.EMPTY.SUBTITLE") + a( + href="" + ng-click="ctrl.addNewIssue()" + tg-check-permission="add_issue" + title="{{ ISSUES.ACTION_NEW_ISSUE | translate }}" + translate="ISSUES.TABLE.EMPTY.SUBTITLE" + ) diff --git a/app/partials/includes/modules/sprints.jade b/app/partials/includes/modules/sprints.jade index 3324f818..d333e52d 100644 --- a/app/partials/includes/modules/sprints.jade +++ b/app/partials/includes/modules/sprints.jade @@ -7,7 +7,7 @@ section.sprints ) span(translate="BACKLOG.SPRINTS.TITLE") a.add-sprint( - href="" + href="" title="{{ 'BACKLOG.SPRINTS.TITLE_ACTION_NEW_SPRINT' | translate}}" ng-click="ctrl.addNewSprint()" ng-if="totalMilestones" @@ -15,7 +15,7 @@ section.sprints ) include ../../../svg/add.svg - div.sprints-empty(ng-if="!totalMilestones") + div.sprints-empty(ng-if="totalMilestones === 0") img( src="/images/sprint-empty.png" alt="{{'BACKLOG.SPRINTS.EMPTY' | translate}}" @@ -26,6 +26,7 @@ section.sprints ng-click="ctrl.addNewSprint()" title="{{'BACKLOG.SPRINTS.TITLE_ACTION_NEW_SPRINT' | translate}}" translate="BACKLOG.SPRINTS.TEXT_ACTION_NEW_SPRINT" + tg-check-permission="add_milestone" ) div.sprint.sprint-open(ng-repeat="sprint in openSprints track by sprint.id", From 259b3278e3dee3d14d5b60f73ee30ab8aa2dd73c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Thu, 5 Nov 2015 14:42:04 +0100 Subject: [PATCH 015/100] Fix bug #3459 - Resend invitation button doesn't work --- app/coffee/modules/admin/memberships.coffee | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/app/coffee/modules/admin/memberships.coffee b/app/coffee/modules/admin/memberships.coffee index 98279a35..9068b3b0 100644 --- a/app/coffee/modules/admin/memberships.coffee +++ b/app/coffee/modules/admin/memberships.coffee @@ -351,18 +351,22 @@ module.directive("tgMembershipsRowRoleSelector", ["$log", "$tgRepo", "$tgConfirm MembershipsRowActionsDirective = ($log, $repo, $rs, $confirm, $compile, $translate) -> activedTemplate = """ -
+
- + """ pendingTemplate = """ - - {{'ADMIN.MEMBERSHIP.RESEND' | translate}} + - + """ @@ -383,7 +387,7 @@ MembershipsRowActionsDirective = ($log, $repo, $rs, $confirm, $compile, $transla member = $scope.$eval($attrs.tgMembershipsRowActions) render(member) - $el.on "click", ".pending", (event) -> + $el.on "click", ".js-resend", (event) -> event.preventDefault() onSuccess = -> text = $translate.instant("ADMIN.MEMBERSHIP.SUCCESS_SEND_INVITATION", { From c65ddc1d54281e0fb1deb87be7ad3a6d552a66b3 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Thu, 5 Nov 2015 13:54:46 +0100 Subject: [PATCH 016/100] Not showing empty entries in timelines or activity tabs --- app/coffee/modules/common/history.coffee | 17 +++++++++++------ .../user-timeline/user-timeline.service.coffee | 6 ++++++ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/app/coffee/modules/common/history.coffee b/app/coffee/modules/common/history.coffee index aa548c88..c28f6d96 100644 --- a/app/coffee/modules/common/history.coffee +++ b/app/coffee/modules/common/history.coffee @@ -29,9 +29,12 @@ module = angular.module("taigaCommon") IGNORED_FIELDS = { "userstories.userstory": [ "watchers", "kanban_order", "backlog_order", "sprint_order", "finish_date" - ] + ], "tasks.task": [ "watchers", "us_order", "taskboard_order" + ], + "issues.issue": [ + "watchers" ] } @@ -66,7 +69,13 @@ class HistoryController extends taiga.Controller delete historyResult.values_diff.blocked_note_html delete historyResult.values_diff.blocked_note_diff - @scope.history = history + for historyEntry in history + changeModel = historyEntry.key.split(":")[0] + if IGNORED_FIELDS[changeModel]? + historyEntry.values_diff = _.removeKeys(historyEntry.values_diff, IGNORED_FIELDS[changeModel]) + + @scope.history = _.filter(history, (item) -> Object.keys(item.values_diff).length > 0) + @scope.comments = _.filter(history, (item) -> item.comment != "") deleteComment: (type, objectId, activityId) -> @@ -262,10 +271,6 @@ HistoryDirective = ($log, $loading, $qqueue, $template, $confirm, $translate, $c return templateChangeGeneric({name:name, from:from, to: to}) renderChangeEntries = (change) -> - changeModel = change.key.split(":")[0] - if IGNORED_FIELDS[changeModel]? - change.values_diff = _.removeKeys(change.values_diff, IGNORED_FIELDS[changeModel]) - return _.map(change.values_diff, (value, field) -> renderChangeEntry(field, value)) renderChangesHelperText = (change) -> diff --git a/app/modules/user-timeline/user-timeline/user-timeline.service.coffee b/app/modules/user-timeline/user-timeline/user-timeline.service.coffee index b8e9b4c9..74d24ad1 100644 --- a/app/modules/user-timeline/user-timeline/user-timeline.service.coffee +++ b/app/modules/user-timeline/user-timeline/user-timeline.service.coffee @@ -66,6 +66,12 @@ class UserTimelineService extends taiga.Service return false }, + {# Empty change + check: (timeline) -> + event = timeline.get('event_type').split(".") + value_diff = timeline.get("data").get("value_diff") + return event[2] == 'change' and value_diff == undefined + }, {# Deleted check: (timeline) -> event = timeline.get('event_type').split(".") From 112350e50a9da45181689ffad13406197fe12698 Mon Sep 17 00:00:00 2001 From: James Riley Date: Thu, 5 Nov 2015 07:16:53 +0000 Subject: [PATCH 017/100] Minor corrections to readme --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index edf97336..0f481575 100644 --- a/README.md +++ b/README.md @@ -30,14 +30,14 @@ Big features are also welcome but if you want to see your contributions included #### License #### -Every code patch accepted in taiga codebase is licensed under [AGPL v3.0](http://www.gnu.org/licenses/agpl-3.0.html). You should must be careful to not include any code that can not be licensed under this license. +Every code patch accepted in taiga codebase is licensed under [AGPL v3.0](http://www.gnu.org/licenses/agpl-3.0.html). You must be careful to not include any code that can not be licensed under this license. Please read carefully [our license](https://github.com/taigaio/taiga-front/blob/master/LICENSE) and ask us if you have any questions. #### Bug reports, enhancements and support #### -If you **nedd help to setup Taiga**, you want to **talk about some cool enhancemnt** or you have **some questions** please write us to our [mailing list](http://groups.google.com/d/forum/taigaio). +If you **need help to setup Taiga**, want to **talk about some cool enhancemnt** or you have **some questions**, please write us to our [mailing list](http://groups.google.com/d/forum/taigaio). If you **find a bug** in Taiga you can always report it: @@ -48,12 +48,12 @@ If you **find a bug** in Taiga you can always report it: One of our fellow Taiga developers will search, find and hunt it as soon as possible. -Please, before reporting an bug write down how can we reproduce it, your operating system, your browser and version, and if it's possible, a screenshot. Sometimes it take less time to fix a bug if the developer know how to find it and we will solve your problem as fast as possible. +Please, before reporting a bug write down how can we reproduce it, your operating system, your browser and version, and if it's possible, a screenshot. Sometimes it takes less time to fix a bug if the developer knows how to find it and we will solve your problem as fast as possible. #### Documentation improvements #### -We are gathering lots of information from our users to build and enhance our documentation. If you are the documentation to install or develop with Taiga and find any mistakes, omissions or confused sequences, it is enormously helpful to report it. Or better still, if you believe you can author additions, please make a pull-request to taiga project. +We are gathering lots of information from our users to build and enhance our documentation. If you use the documentation to install or develop with Taiga and find any mistakes, omissions or confused sequences, it is enormously helpful to report it. Or better still, if you believe you can author additions, please make a pull-request to taiga project. Currently, we have authored three main documentation hubs: @@ -64,14 +64,14 @@ Currently, we have authored three main documentation hubs: #### Translation #### -We are ready now to accept your help translating Taiga. It's easy (and fun!) just access to our team of translators with the link below, set up an account in Transifex and start contributing. Join us to make sure your language is covered! **[Help Taiga to trasnlate content](https://www.transifex.com/signup/ "Help Taiga to trasnlatecontent")** +We are ready now to accept your help translating Taiga. It's easy (and fun!) just access our team of translators with the link below, set up an account in Transifex and start contributing. Join us to make sure your language is covered! **[Help Taiga to trasnlate content](https://www.transifex.com/signup/ "Help Taiga to trasnlatecontent")** #### Code patches #### Taiga will always be glad to receive code patches to update, fix or improve its code. -If you know how to improve our code base or you found a bug, a security vulnerabilities a performance issue and you think you can solve, we will be very happy to accept your pull-request. If your code requires considerable changes, we recommend you first talk to us directly. We will find the best way to help. +If you know how to improve our code base or you found a bug, a security vulnerability or a performance issue and you think you can solve it, we will be very happy to accept your pull-request. If your code requires considerable changes, we recommend you first talk to us directly. We will find the best way to help. #### UI enhancements #### @@ -80,7 +80,7 @@ Taiga is made for developers and designers. We care enormously about UI because There are two possible ways to contribute to our UI: - **Bugs**: If you find a bug regarding front-end, please report it as previously indicated in the Bug reports section or send a pull-request as indicated in the Code Patches section. -- **Enhancements**: If its a design or UX bug or enhancement we will love to receive your feedback. Please send us your enhancement, with the reason and, if it's possible, an example. Our design and UX team will review your enhancement and fix it as soon as possible. We recommend you to use our [mailing list](http://groups.google.co.uk/d/forum/taigaio){target="_blank"} so we can have a lot of different opinions and debate. +- **Enhancements**: If its a design or UX bug or enhancement we will love to receive your feedback. Please send us your enhancement, with the reason and, if possible, an example. Our design and UX team will review your enhancement and fix it as soon as possible. We recommend you to use our [mailing list](http://groups.google.co.uk/d/forum/taigaio){target="_blank"} so we can have a lot of different opinions and debate. - **Language Localization**: We are eager to offer localized versions of Taiga. Some members of the community have already volunteered to work to provide a variety of languages. We are working to implement some changes to allow for this and expect to accept these requests in the near future. From 6269fea418b1a06a0d1735e4e47e0404a21a5aab Mon Sep 17 00:00:00 2001 From: Juanfran Date: Thu, 5 Nov 2015 09:13:06 +0100 Subject: [PATCH 018/100] fix like/watch for new users & prevent watch twice --- .../like-project-button.service.coffee | 4 +- .../like-project-button.service.spec.coffee | 30 +++++++++ .../watch-project-button.controller.coffee | 2 + ...atch-project-button.controller.spec.coffee | 13 ++++ .../watch-project-button.jade | 2 +- .../watch-project-button.service.coffee | 15 ++++- .../watch-project-button.service.spec.coffee | 65 +++++++++++++++++++ 7 files changed, 126 insertions(+), 5 deletions(-) diff --git a/app/modules/projects/components/like-project-button/like-project-button.service.coffee b/app/modules/projects/components/like-project-button/like-project-button.service.coffee index ec674e94..a2747231 100644 --- a/app/modules/projects/components/like-project-button/like-project-button.service.coffee +++ b/app/modules/projects/components/like-project-button/like-project-button.service.coffee @@ -31,10 +31,12 @@ class LikeProjectButtonService extends taiga.Service _updateProjects: (projectId, isFan) -> projectIndex = @._getProjectIndex(projectId) + + return if projectIndex == -1 + projects = @currentUserService.projects .get('all') .update projectIndex, (project) -> - totalFans = project.get("total_fans") if isFan then totalFans++ else totalFans-- diff --git a/app/modules/projects/components/like-project-button/like-project-button.service.spec.coffee b/app/modules/projects/components/like-project-button/like-project-button.service.spec.coffee index c519a1f3..2c07b487 100644 --- a/app/modules/projects/components/like-project-button/like-project-button.service.spec.coffee +++ b/app/modules/projects/components/like-project-button/like-project-button.service.spec.coffee @@ -118,6 +118,36 @@ describe "tgLikeProjectButtonService", -> done() + it "like, if the user doesn't have the project", (done) -> + projectId = 4 + + mocks.tgResources.projects.likeProject.withArgs(projectId).promise().resolve() + + newProject = { + id: 4, + total_fans: 3, + is_fan: true + } + + mocks.tgProjectService.project = mocks.tgCurrentUserService.projects.getIn(['all', 0]) + + mocks.tgCurrentUserService.projects = Immutable.fromJS({ + all: [] + }) + + projectServiceCheckImmutable = sinon.match ((immutable) -> + immutable = immutable.toJS() + + return _.isEqual(immutable, newProject) + ), 'projectServiceCheckImmutable' + + + likeButtonService.like(projectId).finally () -> + expect(mocks.tgCurrentUserService.setProjects).to.not.have.been.called + expect(mocks.tgProjectService.setProject).to.have.been.calledWith(projectServiceCheckImmutable) + + done() + it "unlike", (done) -> projectId = 5 diff --git a/app/modules/projects/components/watch-project-button/watch-project-button.controller.coffee b/app/modules/projects/components/watch-project-button/watch-project-button.controller.coffee index d4635c63..d4c5ce85 100644 --- a/app/modules/projects/components/watch-project-button/watch-project-button.controller.coffee +++ b/app/modules/projects/components/watch-project-button/watch-project-button.controller.coffee @@ -34,6 +34,8 @@ class WatchProjectButtonController @.showWatchOptions = false watch: (notifyLevel) -> + return if notifyLevel == @.project.get('notify_level') + @.loading = true @.closeWatcherOptions() diff --git a/app/modules/projects/components/watch-project-button/watch-project-button.controller.spec.coffee b/app/modules/projects/components/watch-project-button/watch-project-button.controller.spec.coffee index 0616178b..cbbceab2 100644 --- a/app/modules/projects/components/watch-project-button/watch-project-button.controller.spec.coffee +++ b/app/modules/projects/components/watch-project-button/watch-project-button.controller.spec.coffee @@ -95,6 +95,19 @@ describe "WatchProjectButton", -> done() + it "watch the same option", () -> + notifyLevel = 5 + project = Immutable.fromJS({ + id: 3, + notify_level: 5 + }) + + ctrl = $controller("WatchProjectButton") + ctrl.project = project + + result = ctrl.watch(notifyLevel) + expect(result).to.be.falsy + it "watch, notify error", (done) -> notifyLevel = 5 project = Immutable.fromJS({ diff --git a/app/modules/projects/components/watch-project-button/watch-project-button.jade b/app/modules/projects/components/watch-project-button/watch-project-button.jade index cd556a19..508922fd 100644 --- a/app/modules/projects/components/watch-project-button/watch-project-button.jade +++ b/app/modules/projects/components/watch-project-button/watch-project-button.jade @@ -40,7 +40,7 @@ ul.watch-options( a( href="", title="{{ 'PROJECT.WATCH_BUTTON.OPTIONS.NOTIFY_INVOLVED_TITLE' | translate }}", - ng-click="vm.watch(1)", + ng-click="vm.watch(1)", ng-class="{'active': vm.project.get('is_watcher') && vm.project.get('notify_level') == 1}" ) span(translate="PROJECT.WATCH_BUTTON.OPTIONS.NOTIFY_INVOLVED") diff --git a/app/modules/projects/components/watch-project-button/watch-project-button.service.coffee b/app/modules/projects/components/watch-project-button/watch-project-button.service.coffee index fdb8d8ca..ac50e13f 100644 --- a/app/modules/projects/components/watch-project-button/watch-project-button.service.coffee +++ b/app/modules/projects/components/watch-project-button/watch-project-button.service.coffee @@ -37,12 +37,18 @@ class WatchProjectButtonService extends taiga.Service _updateProjects: (projectId, notifyLevel, isWatcher) -> projectIndex = @._getProjectIndex(projectId) + return if projectIndex == -1 + projects = @currentUserService.projects .get('all') .update projectIndex, (project) => totalWatchers = project.get('total_watchers') - if isWatcher then totalWatchers++ else totalWatchers-- + + if !@projectService.project.get('is_watcher') && isWatcher + totalWatchers++ + else if @projectService.project.get('is_watcher') && !isWatcher + totalWatchers-- return project.merge({ is_watcher: isWatcher, @@ -55,12 +61,15 @@ class WatchProjectButtonService extends taiga.Service _updateCurrentProject: (notifyLevel, isWatcher) -> totalWatchers = @projectService.project.get("total_watchers") - if isWatcher then totalWatchers++ else totalWatchers-- + if !@projectService.project.get('is_watcher') && isWatcher + totalWatchers++ + else if @projectService.project.get('is_watcher') && !isWatcher + totalWatchers-- project = @projectService.project.merge({ is_watcher: isWatcher, + notify_level: notifyLevel, total_watchers: totalWatchers - notify_level: notifyLevel }) @projectService.setProject(project) diff --git a/app/modules/projects/components/watch-project-button/watch-project-button.service.spec.coffee b/app/modules/projects/components/watch-project-button/watch-project-button.service.spec.coffee index 4b545b24..86c5a065 100644 --- a/app/modules/projects/components/watch-project-button/watch-project-button.service.spec.coffee +++ b/app/modules/projects/components/watch-project-button/watch-project-button.service.spec.coffee @@ -121,6 +121,71 @@ describe "tgWatchProjectButtonService", -> ), 'projectServiceCheckImmutable' + watchButtonService.watch(projectId, notifyLevel).finally () -> + expect(mocks.tgCurrentUserService.setProjects).to.have.been.calledWith(userServiceCheckImmutable) + expect(mocks.tgProjectService.setProject).to.have.been.calledWith(projectServiceCheckImmutable) + + done() + + it "watch, if the user doesn't have the projects", (done) -> + projectId = 4 + notifyLevel = 3 + + mocks.tgResources.projects.watchProject.withArgs(projectId, notifyLevel).promise().resolve() + + newProject = { + id: 4, + total_watchers: 1, + is_watcher: true, + notify_level: notifyLevel + } + + mocks.tgProjectService.project = mocks.tgCurrentUserService.projects.getIn(['all', 0]) + mocks.tgCurrentUserService.projects = Immutable.fromJS({ + all: [] + }) + + projectServiceCheckImmutable = sinon.match ((immutable) -> + immutable = immutable.toJS() + + return _.isEqual(immutable, newProject) + ), 'projectServiceCheckImmutable' + + + watchButtonService.watch(projectId, notifyLevel).finally () -> + expect(mocks.tgCurrentUserService.setProjects).to.not.have.been.called + expect(mocks.tgProjectService.setProject).to.have.been.calledWith(projectServiceCheckImmutable) + + done() + + it "watch another option", (done) -> + projectId = 5 + notifyLevel = 3 + + mocks.tgResources.projects.watchProject.withArgs(projectId, notifyLevel).promise().resolve() + + newProject = { + id: 5, + total_watchers: 1, + is_watcher: true, + notify_level: notifyLevel + } + + mocks.tgProjectService.project = mocks.tgCurrentUserService.projects.getIn(['all', 1]) + + userServiceCheckImmutable = sinon.match ((immutable) -> + immutable = immutable.toJS() + + return _.isEqual(immutable[1], newProject) + ), 'userServiceCheckImmutable' + + projectServiceCheckImmutable = sinon.match ((immutable) -> + immutable = immutable.toJS() + + return _.isEqual(immutable, newProject) + ), 'projectServiceCheckImmutable' + + watchButtonService.watch(projectId, notifyLevel).finally () -> expect(mocks.tgCurrentUserService.setProjects).to.have.been.calledWith(userServiceCheckImmutable) expect(mocks.tgProjectService.setProject).to.have.been.calledWith(projectServiceCheckImmutable) From 2a4aee66eb4e6c9a707f4b0dc7466dde1bfe1ec1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Fri, 6 Nov 2015 10:20:10 +0100 Subject: [PATCH 019/100] [i18n] Update locales --- app/locales/locale-ca.json | 4 ++-- app/locales/locale-de.json | 8 ++++---- app/locales/locale-es.json | 4 ++-- app/locales/locale-fi.json | 4 ++-- app/locales/locale-fr.json | 4 ++-- app/locales/locale-it.json | 4 ++-- app/locales/locale-nl.json | 4 ++-- app/locales/locale-pl.json | 4 ++-- app/locales/locale-pt-br.json | 4 ++-- app/locales/locale-ru.json | 4 ++-- app/locales/locale-zh-hant.json | 4 ++-- 11 files changed, 24 insertions(+), 24 deletions(-) diff --git a/app/locales/locale-ca.json b/app/locales/locale-ca.json index a32ab1eb..823be5b0 100644 --- a/app/locales/locale-ca.json +++ b/app/locales/locale-ca.json @@ -952,7 +952,7 @@ "MOVE_US_TO_CURRENT_SPRINT": "Envia al Sprint", "SHOW_FILTERS": "Mostra filtres", "SHOW_TAGS": "Mostra etiquetes", - "EMPTY": "El teu backlog està buit!", + "EMPTY": "The backlog is empty!", "CREATE_NEW_US": "Crea una nova US", "CREATE_NEW_US_EMPTY_HELP": "Potser vols crear una nova història d'usuari", "EXCESS_OF_POINTS": "Excés de punts", @@ -1012,7 +1012,7 @@ "LINK_TASKBOARD": "Anar al panell de sprint", "TITLE_LINK_TASKBOARD": "Anar al panell de {{::name}}", "NUMBER_SPRINTS": "
sprints", - "EMPTY": "YOU HAVE NO SPRINTS", + "EMPTY": "There are no sprints yet", "WARNING_EMPTY_SPRINT": "Drop here Stories from your backlog to start a new sprint", "TITLE_ACTION_NEW_SPRINT": "Add new sprint", "TEXT_ACTION_NEW_SPRINT": "You may want to create a new sprint in your project", diff --git a/app/locales/locale-de.json b/app/locales/locale-de.json index e335cd59..12aea437 100644 --- a/app/locales/locale-de.json +++ b/app/locales/locale-de.json @@ -280,7 +280,7 @@ "PLACEHOLDER_AUTH_PASSWORD": "Passwort" }, "LOGIN_FORM": { - "ERROR_AUTH_INCORRECT": "Laut unseren Helferlein ist Dein Benutzername/Deine E-Mail-Adresse oder Dein Passwort nicht korrekt. ", + "ERROR_AUTH_INCORRECT": "Laut unseren Helferlein ist Dein Benutzername/Deine E-Mail-Adresse oder Dein Passwort nicht korrekt. (Bitte achte auf die Groß- und Kleinschreibung.)", "SUCCESS": "Herzlich willkommen bei Taiga, unsere Helferlein freuen sich. " }, "REGISTER": { @@ -585,7 +585,7 @@ }, "MEMBERSHIP": { "COLUMN_MEMBER": "Mitglied", - "COLUMN_ADMIN": "Administrator", + "COLUMN_ADMIN": "Admin", "COLUMN_ROLE": "Rolle", "COLUMN_STATUS": "Status", "STATUS_ACTIVE": "Aktiv", @@ -952,7 +952,7 @@ "MOVE_US_TO_CURRENT_SPRINT": "Zum aktuellen Sprint wechseln", "SHOW_FILTERS": "Filter zeigen", "SHOW_TAGS": "Tags anzeigen", - "EMPTY": "Ihre Auftragsliste ist leer", + "EMPTY": "The backlog is empty!", "CREATE_NEW_US": "Eine neue User-Story anlegen", "CREATE_NEW_US_EMPTY_HELP": "Sie sollten eine User-Story anlegen", "EXCESS_OF_POINTS": "Punkte Überschuss", @@ -1012,7 +1012,7 @@ "LINK_TASKBOARD": "Sprint Taskboard", "TITLE_LINK_TASKBOARD": "Gehe zu Taskboard von \"{{name}}\"", "NUMBER_SPRINTS": "
Sprints", - "EMPTY": "DU HAST KEINE SPRINTS", + "EMPTY": "There are no sprints yet", "WARNING_EMPTY_SPRINT": "Ziehe Stories aus deiner Auftragsliste her um einen neuen Sprint zu starten", "TITLE_ACTION_NEW_SPRINT": "Neuen Sprint hinzufügen", "TEXT_ACTION_NEW_SPRINT": "Du möchtest einen neuen Sprint in Deinem Projekt erstellen", diff --git a/app/locales/locale-es.json b/app/locales/locale-es.json index 7c1448c9..c8d5eb09 100644 --- a/app/locales/locale-es.json +++ b/app/locales/locale-es.json @@ -952,7 +952,7 @@ "MOVE_US_TO_CURRENT_SPRINT": "Mover al Sprint en curso", "SHOW_FILTERS": "Mostrar filtros", "SHOW_TAGS": "Ver etiquetas", - "EMPTY": "¡Tu backlog está vacío!", + "EMPTY": "The backlog is empty!", "CREATE_NEW_US": "Crear una nueva historia", "CREATE_NEW_US_EMPTY_HELP": "Es posible que desees crear una nueva historia de usuario", "EXCESS_OF_POINTS": "Exceso de puntos", @@ -1012,7 +1012,7 @@ "LINK_TASKBOARD": "Panel de Tareas del Sprint", "TITLE_LINK_TASKBOARD": "Ir al panel de tareas de \"{{name}}\"", "NUMBER_SPRINTS": "
sprints", - "EMPTY": "NO TIENES NINGÚN SPRINT", + "EMPTY": "There are no sprints yet", "WARNING_EMPTY_SPRINT": "Arrastra aquí las historias desde tu backlog para comenzar un nuevo sprint", "TITLE_ACTION_NEW_SPRINT": "+ Nuevo sprint", "TEXT_ACTION_NEW_SPRINT": "Es posible que desees crear un nuevo sprint para tu proyecto", diff --git a/app/locales/locale-fi.json b/app/locales/locale-fi.json index b7b2537b..4f31bebe 100644 --- a/app/locales/locale-fi.json +++ b/app/locales/locale-fi.json @@ -952,7 +952,7 @@ "MOVE_US_TO_CURRENT_SPRINT": "Siirrä nykyiseen kierrokseen", "SHOW_FILTERS": "Näytä suodattimet", "SHOW_TAGS": "Näytä avainsanat", - "EMPTY": "Odottavien lista on tyhjä!", + "EMPTY": "The backlog is empty!", "CREATE_NEW_US": "Luo uusi Kt", "CREATE_NEW_US_EMPTY_HELP": "Voit haluta lisätä uuden käyttäjätarinan", "EXCESS_OF_POINTS": "Pisteiden ylimäärä", @@ -1012,7 +1012,7 @@ "LINK_TASKBOARD": "Kierroksien tehtävätaulu", "TITLE_LINK_TASKBOARD": "Siirry tehtävätauluun {{name}}", "NUMBER_SPRINTS": "
kierroksia", - "EMPTY": "YOU HAVE NO SPRINTS", + "EMPTY": "There are no sprints yet", "WARNING_EMPTY_SPRINT": "Drop here Stories from your backlog to start a new sprint", "TITLE_ACTION_NEW_SPRINT": "Add new sprint", "TEXT_ACTION_NEW_SPRINT": "You may want to create a new sprint in your project", diff --git a/app/locales/locale-fr.json b/app/locales/locale-fr.json index 4abf833e..8bd1aa87 100644 --- a/app/locales/locale-fr.json +++ b/app/locales/locale-fr.json @@ -952,7 +952,7 @@ "MOVE_US_TO_CURRENT_SPRINT": "Déplacer vers le Sprint Courant", "SHOW_FILTERS": "Afficher les filtres", "SHOW_TAGS": "Afficher les mots-clés", - "EMPTY": "Votre historique est vide !", + "EMPTY": "The backlog is empty!", "CREATE_NEW_US": "Créer un nouveau récit utilisateur", "CREATE_NEW_US_EMPTY_HELP": "Vous pouvez envisager de créer un nouveau récit utilisateur", "EXCESS_OF_POINTS": "Excès de points", @@ -1012,7 +1012,7 @@ "LINK_TASKBOARD": "Taskboard du sprint", "TITLE_LINK_TASKBOARD": "Aller au Taskboard de \"{{name}}\"", "NUMBER_SPRINTS": "
sprints", - "EMPTY": "VOUS N'AVEZ AUCUN SPRINT", + "EMPTY": "There are no sprints yet", "WARNING_EMPTY_SPRINT": "Déposez ici des Stories de votre backlog pour démarrer un nouveau sprint", "TITLE_ACTION_NEW_SPRINT": "Ajouter un sprint", "TEXT_ACTION_NEW_SPRINT": "Vous souhaitez peut être créer un nouveau sprint dans votre projet.", diff --git a/app/locales/locale-it.json b/app/locales/locale-it.json index 39807ee0..846cdf09 100644 --- a/app/locales/locale-it.json +++ b/app/locales/locale-it.json @@ -952,7 +952,7 @@ "MOVE_US_TO_CURRENT_SPRINT": "Spostati allo sprint attuale", "SHOW_FILTERS": "Mostra filtri", "SHOW_TAGS": "Mostra tag", - "EMPTY": "Il tuo backlog è vuoto!", + "EMPTY": "The backlog is empty!", "CREATE_NEW_US": "Crea una nuova Storia Utente", "CREATE_NEW_US_EMPTY_HELP": "Potresti voler creare una nuova storia utente", "EXCESS_OF_POINTS": "Eccesso di punti", @@ -1012,7 +1012,7 @@ "LINK_TASKBOARD": "Pannello dei compiti dello sprint", "TITLE_LINK_TASKBOARD": "Vai al pannello dei compiti di \"{{name}}\"", "NUMBER_SPRINTS": "
sprints", - "EMPTY": "YOU HAVE NO SPRINTS", + "EMPTY": "There are no sprints yet", "WARNING_EMPTY_SPRINT": "Drop here Stories from your backlog to start a new sprint", "TITLE_ACTION_NEW_SPRINT": "Add new sprint", "TEXT_ACTION_NEW_SPRINT": "You may want to create a new sprint in your project", diff --git a/app/locales/locale-nl.json b/app/locales/locale-nl.json index 0cfac83d..fa025617 100644 --- a/app/locales/locale-nl.json +++ b/app/locales/locale-nl.json @@ -952,7 +952,7 @@ "MOVE_US_TO_CURRENT_SPRINT": "Verplaats naar huidige sprint", "SHOW_FILTERS": "Toon filters", "SHOW_TAGS": "Toon tags", - "EMPTY": "Je backlog is leeg!", + "EMPTY": "The backlog is empty!", "CREATE_NEW_US": "Nieuwe US aanmaken", "CREATE_NEW_US_EMPTY_HELP": "Misschien wil je een nieuwe user story aanmaken", "EXCESS_OF_POINTS": "Overschot aan punten", @@ -1012,7 +1012,7 @@ "LINK_TASKBOARD": "Sprint taakbord", "TITLE_LINK_TASKBOARD": "Ga naar taakbord van \"{{name}}\"", "NUMBER_SPRINTS": "
sprints", - "EMPTY": "YOU HAVE NO SPRINTS", + "EMPTY": "There are no sprints yet", "WARNING_EMPTY_SPRINT": "Drop here Stories from your backlog to start a new sprint", "TITLE_ACTION_NEW_SPRINT": "Add new sprint", "TEXT_ACTION_NEW_SPRINT": "You may want to create a new sprint in your project", diff --git a/app/locales/locale-pl.json b/app/locales/locale-pl.json index 3e425954..cce56670 100644 --- a/app/locales/locale-pl.json +++ b/app/locales/locale-pl.json @@ -952,7 +952,7 @@ "MOVE_US_TO_CURRENT_SPRINT": "Przejdź do bieżącego sprintu", "SHOW_FILTERS": "Pokaż filtry", "SHOW_TAGS": "Pokaż tagi", - "EMPTY": "Nie masz zaległości", + "EMPTY": "The backlog is empty!", "CREATE_NEW_US": "Utwórz nową HU", "CREATE_NEW_US_EMPTY_HELP": "Możesz utworzyć nową historyjkę użytkownika", "EXCESS_OF_POINTS": "Nadwyżka punktów", @@ -1012,7 +1012,7 @@ "LINK_TASKBOARD": "Tablica zadań sprintu", "TITLE_LINK_TASKBOARD": "Idź do tablicy zadań użytkownika {{name}}", "NUMBER_SPRINTS": "
sprintów", - "EMPTY": "YOU HAVE NO SPRINTS", + "EMPTY": "There are no sprints yet", "WARNING_EMPTY_SPRINT": "Drop here Stories from your backlog to start a new sprint", "TITLE_ACTION_NEW_SPRINT": "Add new sprint", "TEXT_ACTION_NEW_SPRINT": "You may want to create a new sprint in your project", diff --git a/app/locales/locale-pt-br.json b/app/locales/locale-pt-br.json index 654ad114..37e3ed17 100644 --- a/app/locales/locale-pt-br.json +++ b/app/locales/locale-pt-br.json @@ -952,7 +952,7 @@ "MOVE_US_TO_CURRENT_SPRINT": "Mover para Sprint Corrente", "SHOW_FILTERS": "Mostrar filtros", "SHOW_TAGS": "Exibir tags", - "EMPTY": "Seu backlog está vazio!", + "EMPTY": "The backlog is empty!", "CREATE_NEW_US": "Criar uma nova EU", "CREATE_NEW_US_EMPTY_HELP": "Você talvez queira criar uma nova user story", "EXCESS_OF_POINTS": "Excesso de pontos", @@ -1012,7 +1012,7 @@ "LINK_TASKBOARD": "Sprint quadro de tarefas", "TITLE_LINK_TASKBOARD": "ir para quadro de tarefas de \"{{name}}\"", "NUMBER_SPRINTS": "
sprints", - "EMPTY": "VOCÊ NÃO POSSUI SPRINTS", + "EMPTY": "There are no sprints yet", "WARNING_EMPTY_SPRINT": "Solte aqui Estórias do seu backlog para iniciar uma nova sprint", "TITLE_ACTION_NEW_SPRINT": "Add nova sprint", "TEXT_ACTION_NEW_SPRINT": "Você poderá querer criar uma nova sprint em seu projeto", diff --git a/app/locales/locale-ru.json b/app/locales/locale-ru.json index 99a9c7b2..a8420633 100644 --- a/app/locales/locale-ru.json +++ b/app/locales/locale-ru.json @@ -952,7 +952,7 @@ "MOVE_US_TO_CURRENT_SPRINT": "Перейти к текущему спринту", "SHOW_FILTERS": "Показать фильтры", "SHOW_TAGS": "Показать теги", - "EMPTY": "Ваш список задач пуст!", + "EMPTY": "The backlog is empty!", "CREATE_NEW_US": "Создать новую ПИ", "CREATE_NEW_US_EMPTY_HELP": "Возможно будет лучше создать пользовательскую историю?", "EXCESS_OF_POINTS": "Избыток очков", @@ -1012,7 +1012,7 @@ "LINK_TASKBOARD": "Панель задач Спринта", "TITLE_LINK_TASKBOARD": "Перейти к Панели Задач \"{{name}}\"", "NUMBER_SPRINTS": "
спринты", - "EMPTY": "YOU HAVE NO SPRINTS", + "EMPTY": "There are no sprints yet", "WARNING_EMPTY_SPRINT": "Drop here Stories from your backlog to start a new sprint", "TITLE_ACTION_NEW_SPRINT": "Добавить новый спринт", "TEXT_ACTION_NEW_SPRINT": "You may want to create a new sprint in your project", diff --git a/app/locales/locale-zh-hant.json b/app/locales/locale-zh-hant.json index e70ae3d7..6e044acc 100644 --- a/app/locales/locale-zh-hant.json +++ b/app/locales/locale-zh-hant.json @@ -952,7 +952,7 @@ "MOVE_US_TO_CURRENT_SPRINT": "移到目前的 Sprint", "SHOW_FILTERS": "顯示過濾器", "SHOW_TAGS": "顯示標籤 (Tag)", - "EMPTY": "你的待辦任務優先表已清空", + "EMPTY": "The backlog is empty!", "CREATE_NEW_US": "創建一個新的使用者故事", "CREATE_NEW_US_EMPTY_HELP": "你可以創建一個新使用者故事", "EXCESS_OF_POINTS": "超過的點數", @@ -1012,7 +1012,7 @@ "LINK_TASKBOARD": "衝刺任務板", "TITLE_LINK_TASKBOARD": "到任務板 {{spring.name}}", "NUMBER_SPRINTS": "
衝刺任務 ", - "EMPTY": "YOU HAVE NO SPRINTS", + "EMPTY": "There are no sprints yet", "WARNING_EMPTY_SPRINT": "Drop here Stories from your backlog to start a new sprint", "TITLE_ACTION_NEW_SPRINT": "Add new sprint", "TEXT_ACTION_NEW_SPRINT": "You may want to create a new sprint in your project", From a0bfbf5dc76671beff34951c0fbfca381325bdb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Fri, 6 Nov 2015 10:33:27 +0100 Subject: [PATCH 020/100] Update README.md (minor typos) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0f481575..f8435a1b 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ Currently, we have authored three main documentation hubs: #### Translation #### -We are ready now to accept your help translating Taiga. It's easy (and fun!) just access our team of translators with the link below, set up an account in Transifex and start contributing. Join us to make sure your language is covered! **[Help Taiga to trasnlate content](https://www.transifex.com/signup/ "Help Taiga to trasnlatecontent")** +We are ready now to accept your help translating Taiga. It's easy (and fun!) just access our team of translators with the link below, set up an account in Transifex and start contributing. Join us to make sure your language is covered! **[Help Taiga to translate content](https://www.transifex.com/signup/ "Help Taiga to translate content")** #### Code patches #### From d0207ed71a4e7d11b5fb24d3759a1456edb46ca5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Tue, 10 Nov 2015 08:38:23 +0100 Subject: [PATCH 021/100] Fix SVG login layout bug in old webkit versions --- app/styles/layout/auth.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/app/styles/layout/auth.scss b/app/styles/layout/auth.scss index 14d7265c..393e1eb6 100644 --- a/app/styles/layout/auth.scss +++ b/app/styles/layout/auth.scss @@ -14,6 +14,7 @@ flex-basis: 400px; } .logo-svg { + max-height: 140px; padding: 0 33%; text-align: center; width: 100%; From 54108680d70b359cb0dde546887d3ab3797cfbbb Mon Sep 17 00:00:00 2001 From: Juanfran Date: Tue, 10 Nov 2015 14:20:52 +0100 Subject: [PATCH 022/100] fix xss issues in timeline & lightbox confirmation --- app/coffee/modules/common/confirm.coffee | 6 +++--- .../user-timeline-item-title.service.coffee | 8 +++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/coffee/modules/common/confirm.coffee b/app/coffee/modules/common/confirm.coffee index e56b4347..0f2b41fc 100644 --- a/app/coffee/modules/common/confirm.coffee +++ b/app/coffee/modules/common/confirm.coffee @@ -56,9 +56,9 @@ class ConfirmService extends taiga.Service el = angular.element(lightboxSelector) # Render content - el.find("h2.title").html(title) - el.find("span.subtitle").html(subtitle) - el.find("span.message").html(message) + el.find("h2.title").text(title) + el.find("span.subtitle").text(subtitle) + el.find("span.message").text(message) # Assign event handlers el.on "click.confirm-dialog", "a.button-green", debounce 2000, (event) => diff --git a/app/modules/user-timeline/user-timeline-item/user-timeline-item-title.service.coffee b/app/modules/user-timeline/user-timeline-item/user-timeline-item-title.service.coffee index 2d21c17b..f362ddf7 100644 --- a/app/modules/user-timeline/user-timeline-item/user-timeline-item-title.service.coffee +++ b/app/modules/user-timeline/user-timeline-item/user-timeline-item-title.service.coffee @@ -67,9 +67,11 @@ class UserTimelineItemTitle if value == null && timeline.getIn(["data", "value_diff", "key"]) == 'assigned_to' value = @translate.instant('ACTIVITY.VALUES.UNASSIGNED') - return value + new_value = value else - return timeline.getIn(["data", "value_diff", "value"]).first().get(1) + new_value = timeline.getIn(["data", "value_diff", "value"]).first().get(1) + + return _.escape(new_value) sprint_name: (timeline, event) -> url = "project-taskboard:project=timeline.getIn(['data', 'project', 'slug']),sprint=timeline.getIn(['data', 'milestone', 'slug'])" @@ -100,7 +102,7 @@ class UserTimelineItemTitle return @._getLink(url, text) role_name: (timeline, event) -> - return timeline.getIn(['data', 'value_diff', 'value']).keySeq().first() + return _.escape(timeline.getIn(['data', 'value_diff', 'value']).keySeq().first()) } constructor: (@translate) -> From e2ba1a5f241417ad06d823010bc1da1ea77b4785 Mon Sep 17 00:00:00 2001 From: Marno Date: Wed, 11 Nov 2015 09:46:14 +0100 Subject: [PATCH 023/100] Fix wording --- app/locales/locale-en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/locales/locale-en.json b/app/locales/locale-en.json index 02278cf2..297aac13 100644 --- a/app/locales/locale-en.json +++ b/app/locales/locale-en.json @@ -681,7 +681,7 @@ }, "PROFILE_SIDEBAR": { "TITLE": "Your profile", - "DESCRIPTION": "People can see everything you do and what are you working on. Add a nice bio to give an enhanced version of your information.", + "DESCRIPTION": "People can see everything you do and what you are working on. Add a nice bio to give an enhanced version of your information.", "ADD_INFO": "Edit bio" }, "PROFILE_FAVS": { From 98549c6aab8359c6264851c51317b97fe4334259 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Wed, 11 Nov 2015 09:48:22 +0100 Subject: [PATCH 024/100] enable angular-translate sanitize --- app/coffee/app.coffee | 2 + app/coffee/modules/common/components.coffee | 34 ++++++-------- .../user-timeline-item-title.service.coffee | 18 ++++++-- ...er-timeline-item-title.service.spec.coffee | 44 +++++-------------- .../common/components/created-by.jade | 10 ++--- 5 files changed, 45 insertions(+), 63 deletions(-) diff --git a/app/coffee/app.coffee b/app/coffee/app.coffee index 51d14005..c94ff19a 100644 --- a/app/coffee/app.coffee +++ b/app/coffee/app.coffee @@ -510,6 +510,7 @@ configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEven prefix: "/locales/locale-", suffix: ".json" }) + .useSanitizeValueStrategy('escapeParameters') .addInterpolation('$translateMessageFormatInterpolation') .preferredLanguage(preferedLangCode) @@ -669,6 +670,7 @@ modules = [ "templates", # Vendor modules + "ngSanitize", "ngRoute", "ngAnimate", "ngAria", diff --git a/app/coffee/modules/common/components.coffee b/app/coffee/modules/common/components.coffee index b71abdb4..6f41595a 100644 --- a/app/coffee/modules/common/components.coffee +++ b/app/coffee/modules/common/components.coffee @@ -135,27 +135,18 @@ CreatedByDisplayDirective = ($template, $compile, $translate, $navUrls)-> # 'owner'(ng-model) # - scope.usersById object is required. - template = $template.get("common/components/created-by.html", true) - link = ($scope, $el, $attrs) -> - render = (model) -> - owner = model.owner_extra_info or { - full_name_display: $translate.instant("COMMON.EXTERNAL_USER") - photo: "/images/user-noimage.png" - } - - html = template({ - owner: owner - url: if owner?.is_active then $navUrls.resolve("user-profile", {username: owner.username}) else "" - date: moment(model.created_date).format($translate.instant("COMMON.DATETIME")) - }) - - html = $compile(html)($scope) - - $el.html(html) - bindOnce $scope, $attrs.ngModel, (model) -> - render(model) if model? + if model? + $scope.owner = model.owner_extra_info or { + full_name_display: $translate.instant("COMMON.EXTERNAL_USER") + photo: "/images/user-noimage.png" + } + + $scope.url = if $scope.owner?.is_active then $navUrls.resolve("user-profile", {username: $scope.owner.username}) else "" + + + $scope.date = moment(model.created_date).format($translate.instant("COMMON.DATETIME")) $scope.$on "$destroy", -> $el.off() @@ -163,13 +154,14 @@ CreatedByDisplayDirective = ($template, $compile, $translate, $navUrls)-> return { link: link restrict: "EA" - require: "ngModel" + require: "ngModel", + scope: true, + templateUrl: "common/components/created-by.html" } module.directive("tgCreatedByDisplay", ["$tgTemplate", "$compile", "$translate", "$tgNavUrls", CreatedByDisplayDirective]) - ############################################################################# ## Watchers directive ############################################################################# diff --git a/app/modules/user-timeline/user-timeline-item/user-timeline-item-title.service.coffee b/app/modules/user-timeline/user-timeline-item/user-timeline-item-title.service.coffee index f362ddf7..772d05e3 100644 --- a/app/modules/user-timeline/user-timeline-item/user-timeline-item-title.service.coffee +++ b/app/modules/user-timeline/user-timeline-item/user-timeline-item-title.service.coffee @@ -21,7 +21,8 @@ unslugify = @.taiga.unslugify class UserTimelineItemTitle @.$inject = [ - "$translate" + "$translate", + "$sce" ] _fieldTranslationKey: { @@ -105,7 +106,7 @@ class UserTimelineItemTitle return _.escape(timeline.getIn(['data', 'value_diff', 'value']).keySeq().first()) } - constructor: (@translate) -> + constructor: (@translate, @sce) -> _translateTitleParams: (param, timeline, event) -> @@ -152,7 +153,18 @@ class UserTimelineItemTitle return params getTitle: (timeline, event, type) -> - return @translate.instant(type.key, @._getParams(timeline, event, type)) + params = @._getParams(timeline, event, type) + + paramsKeys = {} + Object.keys(params).forEach (key) -> paramsKeys[key] = '{{' +key + '}}' + + translation = @translate.instant(type.key, paramsKeys) + + Object.keys(params).forEach (key) -> + find = '{{' +key + '}}' + translation = translation.replace(new RegExp(find, 'g'), params[key]) + + return translation angular.module("taigaUserTimeline") .service("tgUserTimelineItemTitle", UserTimelineItemTitle) diff --git a/app/modules/user-timeline/user-timeline-item/user-timeline-item-title.service.spec.coffee b/app/modules/user-timeline/user-timeline-item/user-timeline-item-title.service.spec.coffee index ef60ffce..5855c0fc 100644 --- a/app/modules/user-timeline/user-timeline-item/user-timeline-item-title.service.spec.coffee +++ b/app/modules/user-timeline/user-timeline-item/user-timeline-item-title.service.spec.coffee @@ -72,12 +72,8 @@ describe "tgUserTimelineItemTitle", -> .withArgs('COMMON.SEE_USER_PROFILE', {username: timeline.getIn(['data', 'user', 'username'])}) .returns('user-param') - usernamelink = sinon.match ((value) -> - return value.username == 'oo' - ), "usernamelink" - mockTranslate.instant - .withArgs('TITLE_USER_NAME', usernamelink) + .withArgs('TITLE_USER_NAME', {username: '{{username}}'}) .returns('title_ok') title = mySvc.getTitle(timeline, event, type) @@ -106,12 +102,8 @@ describe "tgUserTimelineItemTitle", -> .withArgs('COMMON.SEE_USER_PROFILE', {username: timeline.getIn(['data', 'user', 'username'])}) .returns('user-param') - usernamelink = sinon.match ((value) -> - return value.username == 'oo' - ), "usernamelink" - mockTranslate.instant - .withArgs('TITLE_USER_NAME', usernamelink) + .withArgs('TITLE_USER_NAME', {username: '{{username}}'}) .returns('title_ok') title = mySvc.getTitle(timeline, event, type) @@ -138,12 +130,8 @@ describe "tgUserTimelineItemTitle", -> .withArgs('COMMON.FIELDS.STATUS') .returns('field-params') - fieldparam = sinon.match ((value) -> - return value.field_name == 'field-params' - ), "fieldparam" - mockTranslate.instant - .withArgs('TITLE_FIELD', fieldparam) + .withArgs('TITLE_FIELD', {field_name: '{{field_name}}'}) .returns('title_ok') title = mySvc.getTitle(timeline, event, type) @@ -168,7 +156,7 @@ describe "tgUserTimelineItemTitle", -> } mockTranslate.instant - .withArgs('NEW_VALUE', {new_value: 'new'}) + .withArgs('NEW_VALUE', {new_value: '{{new_value}}'}) .returns('new_value_ok') title = mySvc.getTitle(timeline, event, type) @@ -191,12 +179,8 @@ describe "tgUserTimelineItemTitle", -> translate_params: ['project_name'] } - projectparam = sinon.match ((value) -> - return value.project_name == 'project_name' - ), "projectparam" - mockTranslate.instant - .withArgs('TITLE_PROJECT', projectparam) + .withArgs('TITLE_PROJECT', {project_name: '{{project_name}}'}) .returns('title_ok') title = mySvc.getTitle(timeline, event, type) @@ -224,7 +208,7 @@ describe "tgUserTimelineItemTitle", -> ), "milestoneparam" mockTranslate.instant - .withArgs('TITLE_MILESTONE', milestoneparam) + .withArgs('TITLE_MILESTONE', {sprint_name: '{{sprint_name}}'}) .returns('title_ok') title = mySvc.getTitle(timeline, event, type) @@ -250,12 +234,8 @@ describe "tgUserTimelineItemTitle", -> translate_params: ['obj_name'] } - objparam = sinon.match ((value) -> - return value.obj_name == '#123 subject' - ), "objparam" - mockTranslate.instant - .withArgs('TITLE_OBJ', objparam) + .withArgs('TITLE_OBJ', obj_name: '{{obj_name}}') .returns('title_ok') title = mySvc.getTitle(timeline, event, type) @@ -280,12 +260,8 @@ describe "tgUserTimelineItemTitle", -> translate_params: ['obj_name'] } - objparam = sinon.match ((value) -> - return value.obj_name == 'Slug wiki' - ), "objparam" - mockTranslate.instant - .withArgs('TITLE_OBJ', objparam) + .withArgs('TITLE_OBJ', {obj_name: '{{obj_name}}'}) .returns('title_ok') title = mySvc.getTitle(timeline, event, type) @@ -315,7 +291,7 @@ describe "tgUserTimelineItemTitle", -> ), "objparam" mockTranslate.instant - .withArgs('TITLE_OBJ', objparam) + .withArgs('TITLE_OBJ', {obj_name: '{{obj_name}}'}) .returns('title_ok') title = mySvc.getTitle(timeline, event, type) @@ -349,7 +325,7 @@ describe "tgUserTimelineItemTitle", -> ), "objparam" mockTranslate.instant - .withArgs('TITLE_OBJ', objparam) + .withArgs('TITLE_OBJ', {us_name: '{{us_name}}'}) .returns('title_ok') title = mySvc.getTitle(timeline, event, type) diff --git a/app/partials/common/components/created-by.jade b/app/partials/common/components/created-by.jade index 03ed8980..3689afef 100644 --- a/app/partials/common/components/created-by.jade +++ b/app/partials/common/components/created-by.jade @@ -1,9 +1,9 @@ .user-avatar - a(href!="<%- url %>", title!="<%- owner.full_name_display %>") - img(src!="<%- owner.photo %>", alt!="<%- owner.full_name_display %>") + a(href="{{url}}", title="{{owner.full_name_display}}") + img(src="{{owner.photo}}", alt="{{owner.full_name_display}}") .created-by - a(href!="<%- url %>", title!="<%- owner.full_name_display %>") - span.created-title(translate="COMMON.CREATED_BY", translate-values!="{ 'fullDisplayName': '<%- owner.full_name_display %>'}") + a(href="{{url}}", title="{{owner.full_name_display}}") + span.created-title(translate="COMMON.CREATED_BY", translate-values="{ 'fullDisplayName': owner.full_name_display}") span.created-date - | <%- date %> + | {{date}} From 63a332fb880cb801829dd450a3b8892b97bc3788 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Wed, 11 Nov 2015 12:48:43 +0100 Subject: [PATCH 025/100] [i18n] Update locales --- app/locales/locale-ca.json | 2 +- app/locales/locale-de.json | 12 +-- app/locales/locale-es.json | 12 +-- app/locales/locale-fi.json | 2 +- app/locales/locale-fr.json | 2 +- app/locales/locale-it.json | 124 +++++++++++++------------- app/locales/locale-nl.json | 2 +- app/locales/locale-pl.json | 2 +- app/locales/locale-pt-br.json | 2 +- app/locales/locale-ru.json | 152 ++++++++++++++++---------------- app/locales/locale-zh-hant.json | 2 +- 11 files changed, 157 insertions(+), 157 deletions(-) diff --git a/app/locales/locale-ca.json b/app/locales/locale-ca.json index 823be5b0..488acfb1 100644 --- a/app/locales/locale-ca.json +++ b/app/locales/locale-ca.json @@ -681,7 +681,7 @@ }, "PROFILE_SIDEBAR": { "TITLE": "El teu perfil", - "DESCRIPTION": "La gent pot vore tot el que fas i en qué estàs treballant. Afegix una bio interessant per a donar una millor versió de la teua informació.", + "DESCRIPTION": "People can see everything you do and what you are working on. Add a nice bio to give an enhanced version of your information.", "ADD_INFO": "Edita la bio" }, "PROFILE_FAVS": { diff --git a/app/locales/locale-de.json b/app/locales/locale-de.json index 12aea437..f997a059 100644 --- a/app/locales/locale-de.json +++ b/app/locales/locale-de.json @@ -668,7 +668,7 @@ "ACTIVITY_TAB": "Aktivität", "ACTIVITY_TAB_TITLE": "Alle Aktivitäten dieses Benutzers anzeigen", "PROJECTS_TAB": "Projekte", - "PROJECTS_TAB_TITLE": "List of all projects in which the user is a member", + "PROJECTS_TAB_TITLE": "Liste alle Projekte auf, bei denen der Benutzer Mitglied ist", "LIKES_TAB": "Likes", "LIKES_TAB_TITLE": "Zeige alle Likes von diesem Benutzer", "VOTES_TAB": "Stimmen", @@ -952,7 +952,7 @@ "MOVE_US_TO_CURRENT_SPRINT": "Zum aktuellen Sprint wechseln", "SHOW_FILTERS": "Filter zeigen", "SHOW_TAGS": "Tags anzeigen", - "EMPTY": "The backlog is empty!", + "EMPTY": "Das Backlog ist leer!", "CREATE_NEW_US": "Eine neue User-Story anlegen", "CREATE_NEW_US_EMPTY_HELP": "Sie sollten eine User-Story anlegen", "EXCESS_OF_POINTS": "Punkte Überschuss", @@ -1012,7 +1012,7 @@ "LINK_TASKBOARD": "Sprint Taskboard", "TITLE_LINK_TASKBOARD": "Gehe zu Taskboard von \"{{name}}\"", "NUMBER_SPRINTS": "
Sprints", - "EMPTY": "There are no sprints yet", + "EMPTY": "Derzeit sind keine Sprints vorhanden", "WARNING_EMPTY_SPRINT": "Ziehe Stories aus deiner Auftragsliste her um einen neuen Sprint zu starten", "TITLE_ACTION_NEW_SPRINT": "Neuen Sprint hinzufügen", "TEXT_ACTION_NEW_SPRINT": "Du möchtest einen neuen Sprint in Deinem Projekt erstellen", @@ -1305,9 +1305,9 @@ "HINT1_TITLE": "Wussten Sie, dass Sie Projekte importieren und exportieren?", "HINT1_TEXT": "Dies erlaubt Ihnen, alle Ihre Daten zu extrahieren und sie von einer Taiga zur nächsten zu transportieren", "HINT2_TITLE": "Wussten Sie, dass Sie benutzerdefinierte Felder erstellen können?", - "HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow.", - "HINT3_TITLE": "Reorder your projects to feature those most relevant to you.", - "HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.", + "HINT2_TEXT": "Teams können nun benutzerdefinierte Felder anlegen, um Werte einzugeben, die für Ihren Workflow wichtig sind.", + "HINT3_TITLE": "Sortiere Deine Projekte, um Dir vor allem die anzuzeigen, die relevant für Dich sind.", + "HINT3_TEXT": "Die 10 Projekt sind in der Zugriffsleiste am oberen Bildschirmrand aufgelistet. ", "HINT4_TITLE": "Haben Sie vergessen, woran Sie arbeiten?", "HINT4_TEXT": "Machen Sie sich keine Sorgen, im Dashboard finden Sie Aufgaben, Tickets und User-Stories in der Reihenfolge in der Sie diese bearbeitet haben." }, diff --git a/app/locales/locale-es.json b/app/locales/locale-es.json index c8d5eb09..d7ec1eb2 100644 --- a/app/locales/locale-es.json +++ b/app/locales/locale-es.json @@ -668,7 +668,7 @@ "ACTIVITY_TAB": "Actividad", "ACTIVITY_TAB_TITLE": "Muestra toda la actividad de este usuario", "PROJECTS_TAB": "Proyectos", - "PROJECTS_TAB_TITLE": "List of all projects in which the user is a member", + "PROJECTS_TAB_TITLE": "Lista todo los proyectos en los que este usuario es miembro", "LIKES_TAB": "Likes", "LIKES_TAB_TITLE": "Lista todo lo que le gusta a este usuario", "VOTES_TAB": "Votos", @@ -952,7 +952,7 @@ "MOVE_US_TO_CURRENT_SPRINT": "Mover al Sprint en curso", "SHOW_FILTERS": "Mostrar filtros", "SHOW_TAGS": "Ver etiquetas", - "EMPTY": "The backlog is empty!", + "EMPTY": "¡El backlog está vacío!", "CREATE_NEW_US": "Crear una nueva historia", "CREATE_NEW_US_EMPTY_HELP": "Es posible que desees crear una nueva historia de usuario", "EXCESS_OF_POINTS": "Exceso de puntos", @@ -1012,7 +1012,7 @@ "LINK_TASKBOARD": "Panel de Tareas del Sprint", "TITLE_LINK_TASKBOARD": "Ir al panel de tareas de \"{{name}}\"", "NUMBER_SPRINTS": "
sprints", - "EMPTY": "There are no sprints yet", + "EMPTY": "Todavía no hay Sprints", "WARNING_EMPTY_SPRINT": "Arrastra aquí las historias desde tu backlog para comenzar un nuevo sprint", "TITLE_ACTION_NEW_SPRINT": "+ Nuevo sprint", "TEXT_ACTION_NEW_SPRINT": "Es posible que desees crear un nuevo sprint para tu proyecto", @@ -1305,9 +1305,9 @@ "HINT1_TITLE": "¿Sabes que puedes importar y exportar proyectos?", "HINT1_TEXT": "Esto permite extraer todos tus datos para moverlos de una instancia de Taiga a otra.\n", "HINT2_TITLE": "¿Sabías que puedes crear atributos personalizados?", - "HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow.", - "HINT3_TITLE": "Reorder your projects to feature those most relevant to you.", - "HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.", + "HINT2_TEXT": "Los equipos ahora pueden crear atributos personalizados como un medio flexible para introducir datos específicos útiles para su flujo de trabajo particular", + "HINT3_TITLE": "Reordenar tus proyectos para facilitar el acceso a los más relevantes para ti", + "HINT3_TEXT": "Los 10 primeros proyectos aparecerán en el listado del acceso directo de la barra superior.", "HINT4_TITLE": "Has olvidado en qué estabas trabajando?", "HINT4_TEXT": "No te preocupes, en el dashboard encontrarás las tareas, peticiones e historias de usuario abiertas en el orden en el que trabajste en ellas." }, diff --git a/app/locales/locale-fi.json b/app/locales/locale-fi.json index 4f31bebe..1a1e05aa 100644 --- a/app/locales/locale-fi.json +++ b/app/locales/locale-fi.json @@ -681,7 +681,7 @@ }, "PROFILE_SIDEBAR": { "TITLE": "Your profile", - "DESCRIPTION": "People can see everything you do and what are you working on. Add a nice bio to give an enhanced version of your information.", + "DESCRIPTION": "People can see everything you do and what you are working on. Add a nice bio to give an enhanced version of your information.", "ADD_INFO": "Edit bio" }, "PROFILE_FAVS": { diff --git a/app/locales/locale-fr.json b/app/locales/locale-fr.json index 8bd1aa87..5ba469ac 100644 --- a/app/locales/locale-fr.json +++ b/app/locales/locale-fr.json @@ -681,7 +681,7 @@ }, "PROFILE_SIDEBAR": { "TITLE": "Votre profil", - "DESCRIPTION": "Tout le monde peut voir ce que vous faites et ce sur quoi vous travaillez. Ajoutez une bio détaillée pour améliorer la vision perçue de votre profil.", + "DESCRIPTION": "People can see everything you do and what you are working on. Add a nice bio to give an enhanced version of your information.", "ADD_INFO": "Editer la biographie" }, "PROFILE_FAVS": { diff --git a/app/locales/locale-it.json b/app/locales/locale-it.json index 846cdf09..a69c905d 100644 --- a/app/locales/locale-it.json +++ b/app/locales/locale-it.json @@ -161,15 +161,15 @@ "UNWATCH": "Non osservare", "WATCHERS": "Osservatori", "BUTTON_TITLE": "Osserva/Non osservare questo elemento", - "COUNTER_TITLE": "{total, plural, one{one watcher} other{# watchers}}" + "COUNTER_TITLE": "{total, plural, one{un osservatore} other{# osservatori}}" }, "VOTE_BUTTON": { - "UPVOTE": "Upvote", - "UPVOTED": "Upvoted", - "DOWNVOTE": "Downvote", + "UPVOTE": "vota positivamente", + "UPVOTED": "votato positivamente", + "DOWNVOTE": "vota negativamente", "VOTERS": "Votanti", - "BUTTON_TITLE": "Upvote/Downvote this item", - "COUNTER_TITLE": "{total, plural, one{one vote} other{# votes}}" + "BUTTON_TITLE": "vota positivamente o negativamente questo elemento", + "COUNTER_TITLE": "{total, plural, one{un voto} other{# voti}}" }, "CUSTOM_ATTRIBUTES": { "CUSTOM_FIELDS": "Campi Personalizzati", @@ -328,7 +328,7 @@ "PLACEHOLDER_NEW_PASSWORD": "Nuova password", "PLACEHOLDER_RE_TYPE_NEW_PASSWORD": "Digita una nuova password", "ACTION_RESET_PASSWORD": "Reimposta la password", - "ERROR": "Our Oompa Loompas can't find your request to recover your password. Try to ask for it again.", + "ERROR": "I nostri Digital Champions non riescono a trovare la tua richiesta di recupero password. Prova a chiedergliela di nuovo.", "SUCCESS": "I nostri Digital Champions hanno salvato la tua nuova password. Che bravi!
Pova a fare login con questa." }, "INVITATION": { @@ -344,7 +344,7 @@ "PAGE_TITLE": "Home - Taiga", "PAGE_DESCRIPTION": "La home di Taiga con i tuoi principali progetti e tutte le storie utente, i compiti e problemi assegnati e osservati. ", "EMPTY_WORKING_ON": "Dà un po' l'idea di vuoto, no? Inizia a lavorare con Taiga e qui vedrai le storie, i compiti ed i problemi su cui stai lavorando.", - "EMPTY_WATCHING": "Follow User Stories, Tasks, Issues... that you want to know about :)", + "EMPTY_WATCHING": "Segui le storie utente, i compiti e i problemi... sui quali vuoi rimanere informato :)", "EMPTY_PROJECT_LIST": "Per ora non hai nessun progetto", "WORKING_ON_SECTION": "Sta lavorando su", "WATCHING_SECTION": "Osservando" @@ -436,8 +436,8 @@ "PROJECT_DETAILS": "Dettagli progetto", "PROJECT_NAME": "Nome progetto", "PROJECT_SLUG": "Progetto lumaca", - "NUMBER_SPRINTS": "Number of sprints (0 for an undetermined quantity)", - "NUMBER_US_POINTS": "Number of US points (0 for an undetermined quantity)", + "NUMBER_SPRINTS": "Numero di sprint (0 come quantità indeterminata)", + "NUMBER_US_POINTS": "Numero di punti delle storie utente (0 come quantità indeterminata)", "TAGS": "Tag", "DESCRIPTION": "Descrizione", "PUBLIC_PROJECT": "Progetto pubblico", @@ -515,9 +515,9 @@ "PAGE_TITLE": "Ruoli - {{projectName}}", "WARNING_NO_ROLE": "Attento, nessun ruolo, all'interno del tuo progetto, potrà stimare i punti valore per le storie utente", "HELP_ROLE_ENABLED": "Una volta abilitato, chi é associato a questo ruolo sará in grado di stimare il valore dei punti per le storie utente", - "DISABLE_COMPUTABLE_ALERT_TITLE": "Disable estimation for this role", - "DISABLE_COMPUTABLE_ALERT_SUBTITLE": "If you disable estimation permissions for role {{roleName}} all previous estimations made by this role will be removed", - "DISABLE_COMPUTABLE_ALERT_MESSAGE": "Are you sure you want to disable this role estimations?", + "DISABLE_COMPUTABLE_ALERT_TITLE": "Disabilita la stime per questo ruolo", + "DISABLE_COMPUTABLE_ALERT_SUBTITLE": "Se disabiliti i permessi di stime per {{roleName}} tutte le stime precedenti di questo ruolo saranno rimosse", + "DISABLE_COMPUTABLE_ALERT_MESSAGE": "sei sicuro di voler disabilitare la stime di questo ruolo?", "COUNT_MEMBERS": "{{ role.members_count }} membri con questo ruolo", "TITLE_DELETE_ROLE": "Elimina ruolo", "REPLACEMENT_ROLE": "Tutti gli utenti con questo ruolo saranno spostati a ", @@ -579,7 +579,7 @@ "CANCEL_TITLE": "Elimina la creazione", "SET_FIELD_NAME": "Imposta il nome del campo predefinito", "SET_FIELD_DESCRIPTION": "Imposta la descrizione del campo personalizzato ", - "FIELD_TYPE_DEFAULT": "-- select one --", + "FIELD_TYPE_DEFAULT": "-- selezionane uno --", "ACTION_UPDATE": "Aggiorna il campo personalizzato", "ACTION_CANCEL_EDITION": "Elimina versione" }, @@ -591,7 +591,7 @@ "STATUS_ACTIVE": "Attivo", "STATUS_PENDING": "In sospeso", "DELETE_MEMBER": "Elimina membro", - "RESEND": "Resend", + "RESEND": "Invia di nuovo", "SUCCESS_SEND_INVITATION": "Abbiamo mandato nuovamente l'invito a '{{email}}'.", "ERROR_SEND_INVITATION": "Non abbiamo mandato l'invito", "SUCCESS_DELETE": "Abbiamo eliminato {{message}}.", @@ -668,11 +668,11 @@ "ACTIVITY_TAB": "Attività", "ACTIVITY_TAB_TITLE": "Mostra tutte le attività dell'utente", "PROJECTS_TAB": "Progetti", - "PROJECTS_TAB_TITLE": "List of all projects in which the user is a member", - "LIKES_TAB": "Likes", - "LIKES_TAB_TITLE": "List all likes made by this user", + "PROJECTS_TAB_TITLE": "La lista di tutti i progetti di cui l'utente è membro", + "LIKES_TAB": "mi piace", + "LIKES_TAB_TITLE": "Lista di tutte le cose che son piaciute all'utente", "VOTES_TAB": "Voti", - "VOTES_TAB_TITLE": "List all votes made by this user", + "VOTES_TAB_TITLE": "Lista di tutti i voti fatti dall'utente", "WATCHED_TAB": "Osservato", "WATCHED_TAB_TITLE": "Mostra tutti gli elementi osservati dall'utente", "CONTACTS_TAB": "Contatti", @@ -682,7 +682,7 @@ "PROFILE_SIDEBAR": { "TITLE": "Il tuo profilo", "DESCRIPTION": "Le persone possono vedere tutto quello che fai e su cosa stai lavorando. Aggiungi una bella bio per migliorare la descrizione delle tue informazioni.", - "ADD_INFO": "Edit bio" + "ADD_INFO": "Modifica la tua bio" }, "PROFILE_FAVS": { "FILTER_INPUT_PLACEHOLDER": "Inserisci testo...", @@ -696,7 +696,7 @@ "FILTER_TYPE_TASK_TITLES": "Mostra solo attività", "FILTER_TYPE_ISSUES": "problemi", "FILTER_TYPE_ISSUES_TITLE": "Mostra solo i problemi", - "EMPTY_TITLE": "It looks like there's nothing to show here." + "EMPTY_TITLE": "Sembra che qui non ci sia nulla" } }, "PROJECT": { @@ -768,16 +768,16 @@ }, "LIKE_BUTTON": { "LIKE": "Mi piace", - "LIKED": "Liked", + "LIKED": "Piaciuto", "UNLIKE": "Non mi piace", "BUTTON_TITLE": "Vota a favore o a sfavore di questo progetto", - "COUNTER_TITLE": "{total, plural, one{one fan} other{# fans}}" + "COUNTER_TITLE": "{total, plural, one{un follower} other{# followers}}" }, "WATCH_BUTTON": { "BUTTON_TITLE": "Osserva questo progetto ed imposta la politica di notifica", "WATCH": "Osserva", "WATCHING": "In osservazione", - "COUNTER_TITLE": "{total, plural, one{one watcher} other{# watchers}}", + "COUNTER_TITLE": "{total, plural, one{un osservatore} other{# osservatori}} ", "OPTIONS": { "NOTIFY_ALL": "Ricevi tutte le notifiche", "NOTIFY_ALL_TITLE": "Ricevi tutte le notifiche per questo progetto", @@ -945,14 +945,14 @@ "PAGE_TITLE": "Backlog - {{projectName}}", "PAGE_DESCRIPTION": "Il pannello di backlog, con le storie degli utenti e gli sprint di progetto", "SECTION_NAME": "Backlog", - "CUSTOMIZE_GRAPH": "Customize your backlog graph", - "CUSTOMIZE_GRAPH_TEXT": "To have a nice graph that helps you follow the evolution of the project you have to set up the points and sprints through the", + "CUSTOMIZE_GRAPH": "Personalizza il grafico del tuo backlog", + "CUSTOMIZE_GRAPH_TEXT": "Per avere un grafico bello e utile che ti aiuti a seguire l'evoluzione del progetto devi impostare i punti e gli sprint come", "CUSTOMIZE_GRAPH_ADMIN": "Amministratore", - "CUSTOMIZE_GRAPH_TITLE": "Set up the points and sprints through the Admin", + "CUSTOMIZE_GRAPH_TITLE": "Imposta i punti e gli sprint come Amministratore", "MOVE_US_TO_CURRENT_SPRINT": "Spostati allo sprint attuale", "SHOW_FILTERS": "Mostra filtri", "SHOW_TAGS": "Mostra tag", - "EMPTY": "The backlog is empty!", + "EMPTY": "OMG..Il backlog é pieno!!", "CREATE_NEW_US": "Crea una nuova Storia Utente", "CREATE_NEW_US_EMPTY_HELP": "Potresti voler creare una nuova storia utente", "EXCESS_OF_POINTS": "Eccesso di punti", @@ -1012,10 +1012,10 @@ "LINK_TASKBOARD": "Pannello dei compiti dello sprint", "TITLE_LINK_TASKBOARD": "Vai al pannello dei compiti di \"{{name}}\"", "NUMBER_SPRINTS": "
sprints", - "EMPTY": "There are no sprints yet", - "WARNING_EMPTY_SPRINT": "Drop here Stories from your backlog to start a new sprint", - "TITLE_ACTION_NEW_SPRINT": "Add new sprint", - "TEXT_ACTION_NEW_SPRINT": "You may want to create a new sprint in your project", + "EMPTY": "Non ci sono ancora sprints disponibili", + "WARNING_EMPTY_SPRINT": "Metti qui le storie del tuo backlog che iniziare in nuovo sprint", + "TITLE_ACTION_NEW_SPRINT": "Aggiungi un nuovo sprint", + "TEXT_ACTION_NEW_SPRINT": "Potresti voler creare un nuovo sprint nel tuo progetto", "ACTION_SHOW_CLOSED_SPRINTS": "Mostra gli sprints terminati", "ACTION_HIDE_CLOSED_SPRINTS": "Nascondi lo sprint terminato" } @@ -1036,8 +1036,8 @@ "TITLE_ACTION_ADD_BULK": "Aggiungi qualche nuovo Compito nel carico", "TITLE_ACTION_ASSIGN": "Compito assegnato", "TITLE_ACTION_EDIT": "Modifica compito", - "PLACEHOLDER_CARD_TITLE": "This could be a task", - "PLACEHOLDER_CARD_TEXT": "Split Stories into tasks to track them separately", + "PLACEHOLDER_CARD_TITLE": "Questo potrebbe essere un compito", + "PLACEHOLDER_CARD_TEXT": "Dividi le storie in compiti per tenerne traccia separatamente", "TABLE": { "COLUMN": "Storia utente", "TITLE_ACTION_FOLD": "Ripiega la colonna", @@ -1189,8 +1189,8 @@ "HIDDEN_USER_STORIES": "Le storie utente in questo status sono nascoste by default", "ARCHIVED": "Hai archiviato", "UNDO_ARCHIVED": "Trascina e lascia di nuovo per annullare", - "PLACEHOLDER_CARD_TITLE": "These are your User Stories", - "PLACEHOLDER_CARD_TEXT": "Stories might also have subtasks to separate requirements" + "PLACEHOLDER_CARD_TITLE": "Queste sono le tue storie utente.", + "PLACEHOLDER_CARD_TEXT": "Le storie possono anche avere dei sotto-compiti che separano i requisiti" }, "SEARCH": { "PAGE_TITLE": "Cerca - {{projectName}}", @@ -1305,9 +1305,9 @@ "HINT1_TITLE": "Sai che puoi anche importare ed esportare progetti?", "HINT1_TEXT": "Questo ti permette di estrarre tutti i tuoi dati da un Taiga e muoverli dentro un altro.", "HINT2_TITLE": "Sai che puoi anche creare dei cambi personalizzati?", - "HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow.", - "HINT3_TITLE": "Reorder your projects to feature those most relevant to you.", - "HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.", + "HINT2_TEXT": "I team adesso possono creare dei campi personalizzati. Così hanno uno strumento flessibile per inserire quei dati specifici che sono utili al loro flusso di lavoro.", + "HINT3_TITLE": "Riordina i tuoi progetti e metti in evidenza quelli più rilevanti.", + "HINT3_TEXT": "I 10 progetti sono elencati nella barra ad accesso rapido su in alto.", "HINT4_TITLE": "Ti sei dimenticato su cosa stavi lavorando?", "HINT4_TEXT": "Non preoccuparti, sulla tua dashboard troverai i compiti aperti, i problemi e le storie utenti così da poterci lavorare" }, @@ -1343,7 +1343,7 @@ "NEW_USER": "{{username}} si é iscritto su Taiga" }, "LEGAL": { - "TERMS_OF_SERVICE_AND_PRIVACY_POLICY_AD": "By clicking \"Sign up\"', you agree to our
terms of service and privacy policy." + "TERMS_OF_SERVICE_AND_PRIVACY_POLICY_AD": "Cliccando \"Inscriviti\"', esprimi il tuo accordo con i nostri
termini di servizi e con la nostra privacy policy." }, "EXTERNAL_APP": { "PAGE_TITLE": "Un'applicazione esterna richiede l'autenticazione", @@ -1356,56 +1356,56 @@ "JOYRIDE": { "DASHBOARD": { "STEP1": { - "TITLE": "Your project", - "TEXT": "Welcome! Here you will find the projects you are involved on." + "TITLE": "Il tuo progetto", + "TEXT": "Benvenuto! Qui puoi trovare i progetti in cui sei coinvolto." }, "STEP2": { "TITLE": "Sta lavorando su", - "TEXT": "Here you will find the User Stories, Tasks and Issues in which you are working on." + "TEXT": "Qui puoi trovare le storie utente, i compiti e i problemi a cui stai lavorando." }, "STEP3": { "TITLE": "In osservazione", - "TEXT1": "And right here you will find the ones that you want to know about.", - "TEXT2": "You are already working with Taiga ;)" + "TEXT1": "E qui puoi trovare quelle che vuoi tenere d'occhio.", + "TEXT2": "Stai giù lavorando in Taiga ;) " }, "STEP4": { - "TITLE": "Let’s start", - "TEXT1": "You can start by creating your first Taiga project.", - "TEXT2": "Good luck!" + "TITLE": "Bene..cominciamo!!", + "TEXT1": "Il modo migliore per iniziare é creare subito il tuo primo progetto Taiga.", + "TEXT2": "Buona fortuna!" } }, "BACKLOG": { "STEP1": { - "TITLE": "Project summary", - "TEXT1": "Here you will see the state of your project.", - "TEXT2": "You can change every kind of project settings through the admin." + "TITLE": "Riassunto di progetto", + "TEXT1": "Qui puoi vedere lo stato del progetto.", + "TEXT2": "Puoi cambiare qualsiasi impostazione del tuo progetto attraverso l'Amministratore." }, "STEP2": { - "TITLE": "Product backlog", - "TEXT": "The backlog is the list of requirements (User Stories) for the project. Here is where you will plan your sprints." + "TITLE": "Backlog di produzione", + "TEXT": "Il Backlog è la lista dei requisiti (o storie utente) per il progetto. Qui è dove pianificherai i tuoi sprint. " }, "STEP3": { "TITLE": "Sprints", - "TEXT": "Sprints are short periods of time (usually 2 weeks) during which specific work has to be completed and delivered." + "TEXT": "Gli sprints durano solitamente poco tempo (circa 2 settimane) durante le quali deve essere completato e consegnato un lavoro specifico." }, "STEP4": { "TITLE": "Storie Utente", - "TEXT": "Those are the requirements at high level. You can add them to the backlog and drag them to the sprint in which it should be delivered." + "TEXT": "Questi sono i requisiti di alto livello. Li puoi aggiungere al backlog e spostare nello sprint dove devono essere consegnati." } }, "KANBAN": { "STEP1": { - "TITLE": "Customize your workflow", - "TEXT": "Set up the columns you need to map your workflow statuses through the admin." + "TITLE": "Personalizza il tuo flusso di lavoro", + "TEXT": "Imposta le colonne di cui hai bisogno per mappare lo stato dei tuoi flussi di lavoro come Amministratore. " }, "STEP2": { - "TITLE": "User Stories & Tasks", - "TEXT": "User Stories are the requirements at high level. You can drag them to different columns." + "TITLE": "Storie utente e compiti", + "TEXT": "Le storie utente sono i requisiti di alto livello. Puoi spostarle in differenti colonne." }, "STEP3": { - "TITLE": "Adding User Stories", - "TEXT1": "You may want to add a single User Story (add US icon) or a group of them (bulk icon)", - "TEXT2": "Good luck!" + "TITLE": "Aggiungi le storie utente", + "TEXT1": "Potresti voler aggiungere una solo storia utente (aggiungi l'icona storia utente) o più di una, in gruppo (icona bulk)", + "TEXT2": "Buona fortuna! " } } } diff --git a/app/locales/locale-nl.json b/app/locales/locale-nl.json index fa025617..ca0176f6 100644 --- a/app/locales/locale-nl.json +++ b/app/locales/locale-nl.json @@ -681,7 +681,7 @@ }, "PROFILE_SIDEBAR": { "TITLE": "Jouw profiel", - "DESCRIPTION": "Mensen kunnen alles zien wat je doet en waar je aan werkt. Voeg een mooie biografie toe voor een meer uitgebreide versie van jouw informatie.", + "DESCRIPTION": "People can see everything you do and what you are working on. Add a nice bio to give an enhanced version of your information.", "ADD_INFO": "Bio aanpassen" }, "PROFILE_FAVS": { diff --git a/app/locales/locale-pl.json b/app/locales/locale-pl.json index cce56670..f5e280a5 100644 --- a/app/locales/locale-pl.json +++ b/app/locales/locale-pl.json @@ -681,7 +681,7 @@ }, "PROFILE_SIDEBAR": { "TITLE": "Twój profil", - "DESCRIPTION": "Użytkownicy mogą zobaczyć wszystko co robisz i nad czym pracujesz. Dodaj jakieś ładne info o sobie, żeby dać im się poznać.", + "DESCRIPTION": "People can see everything you do and what you are working on. Add a nice bio to give an enhanced version of your information.", "ADD_INFO": "Edit bio" }, "PROFILE_FAVS": { diff --git a/app/locales/locale-pt-br.json b/app/locales/locale-pt-br.json index 37e3ed17..b65bc88f 100644 --- a/app/locales/locale-pt-br.json +++ b/app/locales/locale-pt-br.json @@ -681,7 +681,7 @@ }, "PROFILE_SIDEBAR": { "TITLE": "Seu perfil", - "DESCRIPTION": "Pessoas podem ver tudo o que você faz e seu desempenho. Adicione uma boa biografia para aprimorar sua informação.", + "DESCRIPTION": "People can see everything you do and what you are working on. Add a nice bio to give an enhanced version of your information.", "ADD_INFO": "Edit bio" }, "PROFILE_FAVS": { diff --git a/app/locales/locale-ru.json b/app/locales/locale-ru.json index a8420633..238e0ba0 100644 --- a/app/locales/locale-ru.json +++ b/app/locales/locale-ru.json @@ -159,7 +159,7 @@ "WATCH": "Отслеживать", "WATCHING": "Отслеживаемое", "UNWATCH": "Прекратить отслеживание", - "WATCHERS": "Watchers", + "WATCHERS": "Наблюдатели", "BUTTON_TITLE": "Начать/прекратить отслеживание", "COUNTER_TITLE": "{total, plural, one{один наблюдатель} other{# наблюдателя (-ей)}}" }, @@ -224,11 +224,11 @@ "DELETE_SPRINTS": "Удалить спринты" }, "USER_STORIES": { - "NAME": "Истории от Пользователей", - "VIEW_USER_STORIES": "Посмотреть истории от пользователей", - "ADD_USER_STORIES": "Добавить истории от пользователей", - "MODIFY_USER_STORIES": "Изменить истории от пользователей", - "DELETE_USER_STORIES": "Удалить истории от пользователей" + "NAME": "Пользовательские Истории", + "VIEW_USER_STORIES": "Просматривать пользовательские истории", + "ADD_USER_STORIES": "Добавлять пользовательские истории", + "MODIFY_USER_STORIES": "Изменять пользовательские истории", + "DELETE_USER_STORIES": "Удалять пользовательские истории" }, "TASKS": { "NAME": "Задачи", @@ -328,7 +328,7 @@ "PLACEHOLDER_NEW_PASSWORD": "Новый пароль", "PLACEHOLDER_RE_TYPE_NEW_PASSWORD": "Введите повторно новый пароль", "ACTION_RESET_PASSWORD": "Сбросить пароль", - "ERROR": "Our Oompa Loompas can't find your request to recover your password. Try to ask for it again.", + "ERROR": "У наших Умпа-Лумп не получается найти ваш запрос на восстановление пароля. Попробуйте получить его ещё раз.", "SUCCESS": "Наши Умпа Лумпы сохранили ваш новый пароль.
Попробуйте войти, используя его." }, "INVITATION": { @@ -336,15 +336,15 @@ "PAGE_DESCRIPTION": "Принять приглашение и присоединиться к Taiga — платформе для управления проектами стартапов, agile разработчиков и дизайнеров, которые хотят простой и красивый инструмент превращающий работу в удовольствие." }, "INVITATION_LOGIN_FORM": { - "NOT_FOUND": "Our Oompa Loompas can't find your invitation.", + "NOT_FOUND": "У наших Умпа-Лумп не получается найти ваше приглашение.", "SUCCESS": "Вы успешно добавлены к проекту. Добро пожаловать в {{project_name}}", "ERROR": "Умпа-Лумпы говорят, что вы не зарегистрированы или ввели неверный пароль." }, "HOME": { "PAGE_TITLE": "Домашняя страница - Taiga", - "PAGE_DESCRIPTION": "Главная страница Тайги, с вашими основными проектами, назначенными и отслеживаемыми задачами, запросами и пользовательскими историями", - "EMPTY_WORKING_ON": "It feels empty, doesn't it? Start working with Taiga and you'll see here the stories, tasks and issues you are workin on.", - "EMPTY_WATCHING": "Follow User Stories, Tasks, Issues... that you want to know about :)", + "PAGE_DESCRIPTION": "Главная страница Taiga с вашими основными проектами, назначенными и отслеживаемыми ПИ, задачами и запросами", + "EMPTY_WORKING_ON": "Пустовато, не правда ли? Начните работать в Taiga - и тут появятся ПИ, задачи и запросы, над которыми вы работаете.", + "EMPTY_WATCHING": "Следите за ПИ, задачами, запросами... о которых хотите знать :)", "EMPTY_PROJECT_LIST": "У Вас пока нет проектов", "WORKING_ON_SECTION": "Работает над", "WATCHING_SECTION": "Отслеживаемые" @@ -414,7 +414,7 @@ "ENABLE": "Включить", "DISABLE": "Выключить", "BACKLOG": "Список задач", - "BACKLOG_DESCRIPTION": "Управляйте историями от пользователей, чтобы организовывать вашу ближайшую и приоритетную работу", + "BACKLOG_DESCRIPTION": "Управляйте пользовательскими историями, чтобы поддерживать организованное видение важных и приоритетных задач.", "KANBAN": "Kanban", "KANBAN_DESCRIPTION": "Организуйте эффективную работу с проектом с помощью этой панели", "ISSUES": "Запросы", @@ -436,8 +436,8 @@ "PROJECT_DETAILS": "Детали проекта", "PROJECT_NAME": "Название проекта", "PROJECT_SLUG": "Ссылочное имя проекта", - "NUMBER_SPRINTS": "Количество спринтов (0 для неопределенного количества)", - "NUMBER_US_POINTS": "Number of US points (0 for an undetermined quantity)", + "NUMBER_SPRINTS": "Количество спринтов (0 - неопределенное количество)", + "NUMBER_US_POINTS": "Количество очков ПИ (0 - неопределенное количество)", "TAGS": "Тэги", "DESCRIPTION": "Описание", "PUBLIC_PROJECT": "Публичный проект", @@ -453,7 +453,7 @@ "REGENERATE_SUBTITLE": "Вы собираетесь изменить ссылку доступа к данным CSV. Прежний вариант ссылки перестанет работать. Вы уверены?" }, "CSV": { - "SECTION_TITLE_US": "Отчёты об историях от пользователей", + "SECTION_TITLE_US": "Отчёты по пользовательским историям", "SECTION_TITLE_TASK": "отчёты о задачах", "SECTION_TITLE_ISSUE": "отчёты о запросах", "DOWNLOAD": "Скачать CSV", @@ -465,8 +465,8 @@ "CUSTOM_FIELDS": { "TITLE": "Пользовательские поля", "SUBTITLE": "Укажите специальные поля для ваших пользовательских историй, задач и запросов", - "US_DESCRIPTION": "Специальные поля для историй от пользователей", - "US_ADD": "Добавить специальное поле для историй от пользователей", + "US_DESCRIPTION": "Специальные поля для пользовательских историй", + "US_ADD": "Добавить специальное поле для пользовательских историй", "TASK_DESCRIPTION": "Специальные поля задач", "TASK_ADD": "Добавить новые типы задач", "ISSUE_DESCRIPTION": "Специальные поля запросов", @@ -513,9 +513,9 @@ }, "ROLES": { "PAGE_TITLE": "Роли - {{projectName}}", - "WARNING_NO_ROLE": "Осторожнее: ни с какими ролями на вашем проекте участники не смогут оценить очки для историй от пользователей.", - "HELP_ROLE_ENABLED": "Когда включено, участники, назначенные на эту роль, смогут оценивать очки для Историй от Пользователей", - "DISABLE_COMPUTABLE_ALERT_TITLE": "Disable estimation for this role", + "WARNING_NO_ROLE": "Осторожнее: ни с какими ролями на вашем проекте участники не смогут оценить очки для пользовательских историй.", + "HELP_ROLE_ENABLED": "Когда включено, участники, назначенные на эту роль, смогут оценивать очки для пользовательских историй", + "DISABLE_COMPUTABLE_ALERT_TITLE": "Отключить оценку очков для этой роли", "DISABLE_COMPUTABLE_ALERT_SUBTITLE": "If you disable estimation permissions for role {{roleName}} all previous estimations made by this role will be removed", "DISABLE_COMPUTABLE_ALERT_MESSAGE": "Are you sure you want to disable this role estimations?", "COUNT_MEMBERS": "{{ role.members_count }} участников с этой ролью", @@ -545,19 +545,19 @@ "PAGE_TITLE": "Github - {{projectName}}" }, "WEBHOOKS": { - "PAGE_TITLE": "Web-зацепки - {{projectName}}", - "SECTION_NAME": "Web-зацепки", - "SUBTITLE": "Web-зацепки рассказывают внешним сервисам о событиях в Taiga, таких как комментарии, новые истории от пользователей и т.д.", - "ADD_NEW": "Добавить новую Web-зацепку", + "PAGE_TITLE": "Веб-хуки - {{projectName}}", + "SECTION_NAME": "Веб-хуки", + "SUBTITLE": "Веб-хуки рассказывают внешним сервисам о событиях в Taiga, таких как комментарии, новые пользовательские истории и т.д.", + "ADD_NEW": "Добавить новый веб-хук", "TYPE_NAME": "Укажите имя сервиса", "TYPE_PAYLOAD_URL": "Укажите нагрузочную ссылку сервиса", "TYPE_SERVICE_SECRET": "Введите секретный код сервиса", - "SAVE": "Сохранить Web-зацепку", - "CANCEL": "Отменить Web-зацепку", + "SAVE": "Сохранить веб-хук", + "CANCEL": "Отменить веб-хук", "SHOW_HISTORY": "(Показать историю)", - "TEST": "Протестировать Web-зацепку", - "EDIT": "Редактировать Web-зацепку", - "DELETE": "Удалить Web-зацепку", + "TEST": "Протестировать веб-хук", + "EDIT": "Редактировать веб-хук", + "DELETE": "Удалить веб-хук", "REQUEST": "Запрос", "RESEND_REQUEST": "Переслать запрос", "HEADERS": "Заголовки", @@ -568,7 +568,7 @@ "ACTION_HIDE_HISTORY_TITLE": "Скрыть детали истории", "ACTION_SHOW_HISTORY": "(Показать историю)", "ACTION_SHOW_HISTORY_TITLE": "Показать детали истории", - "WEBHOOK_NAME": "Web-зацепка '{{name}}'" + "WEBHOOK_NAME": "Веб-хук '{{name}}'" }, "CUSTOM_ATTRIBUTES": { "PAGE_TITLE": "{{sectionName}} - Специальные Атрибуты - {{projectName}}", @@ -579,19 +579,19 @@ "CANCEL_TITLE": "Отменить создание", "SET_FIELD_NAME": "Введите имя поля", "SET_FIELD_DESCRIPTION": "Назначьте описание специальному полю", - "FIELD_TYPE_DEFAULT": "-- select one --", + "FIELD_TYPE_DEFAULT": "-- выберите --", "ACTION_UPDATE": "Обновить поле", "ACTION_CANCEL_EDITION": "Отменить правку" }, "MEMBERSHIP": { "COLUMN_MEMBER": "Участник", - "COLUMN_ADMIN": "Админ", + "COLUMN_ADMIN": "Админка", "COLUMN_ROLE": "Роль", "COLUMN_STATUS": "Статус", "STATUS_ACTIVE": "Активный", "STATUS_PENDING": "В ожидании", "DELETE_MEMBER": "Удалить участника", - "RESEND": "Resend", + "RESEND": "Переотправить", "SUCCESS_SEND_INVITATION": "Мы отправили ещё одно приглашение на адрес '{{email}}'.", "ERROR_SEND_INVITATION": "Мы не выслали приглашение.", "SUCCESS_DELETE": "Мы удалили {{message}}.", @@ -620,7 +620,7 @@ "PLACEHOLDER_WRITE_NAME": "Укажите название для нового статуса" }, "MENU": { - "TITLE": "Админ", + "TITLE": "Админка", "PROJECT": "Проект", "ATTRIBUTES": "Атрибуты", "MEMBERS": "Участники", @@ -668,13 +668,13 @@ "ACTIVITY_TAB": "Действия", "ACTIVITY_TAB_TITLE": "Показать все действия пользователя", "PROJECTS_TAB": "Проекты", - "PROJECTS_TAB_TITLE": "List of all projects in which the user is a member", - "LIKES_TAB": "Likes", + "PROJECTS_TAB_TITLE": "Список всех проектов, в которых участвует пользователь", + "LIKES_TAB": "Лайки", "LIKES_TAB_TITLE": "List all likes made by this user", "VOTES_TAB": "Голоса", "VOTES_TAB_TITLE": "List all votes made by this user", "WATCHED_TAB": "Просмотренные", - "WATCHED_TAB_TITLE": "List all item watched by this user", + "WATCHED_TAB_TITLE": "Список всего, за чем наблюдает пользователь", "CONTACTS_TAB": "Контакты", "CONTACTS_TAB_TITLE": "List all contacts made by this user" } @@ -682,7 +682,7 @@ "PROFILE_SIDEBAR": { "TITLE": "Ваш профиль", "DESCRIPTION": "Люди могут видеть всё что Вы делаете и всё над чем Вы работаете. Вы также можете добавить краткую биографию.", - "ADD_INFO": "Edit bio" + "ADD_INFO": "Редактировать биографию" }, "PROFILE_FAVS": { "FILTER_INPUT_PLACEHOLDER": "Введите что-нибудь...", @@ -696,7 +696,7 @@ "FILTER_TYPE_TASK_TITLES": "Показывать только задачи", "FILTER_TYPE_ISSUES": "Запросы", "FILTER_TYPE_ISSUES_TITLE": "Показывать только запросы", - "EMPTY_TITLE": "It looks like there's nothing to show here." + "EMPTY_TITLE": "Похоже, здесь ничего нет." } }, "PROJECT": { @@ -720,7 +720,7 @@ "WIKI": "Wiki", "TEAM": "Команда", "MEETUP": "Созвониться", - "ADMIN": "Админ" + "ADMIN": "Админка" }, "NAVIGATION": { "SECTION_TITLE": "Ваши проекты", @@ -853,14 +853,14 @@ } }, "US": { - "PAGE_TITLE": "{{userStorySubject}} - История от Пользователя {{userStoryRef}} - {{projectName}}", + "PAGE_TITLE": "{{userStorySubject}} - Пользовательская История {{userStoryRef}} - {{projectName}}", "PAGE_DESCRIPTION": "Статус: {{userStoryStatus }}. Выполнено {{userStoryProgressPercentage}}% ({{userStoryClosedTasks}} из {{userStoryTotalTasks}} задач). Очки: {{userStoryPoints}}. Описание: {{userStoryDescription}}", "SECTION_NAME": "Детали пользовательских историй", "LINK_TASKBOARD": "Панель задач", "TITLE_LINK_TASKBOARD": "Перейти к панели задач", "TOTAL_POINTS": "общее число очков", "ADD": "+ Добавить Пользовательскую Историю", - "ADD_BULK": "Добавить несколько Историй от Пользователей пакетно", + "ADD_BULK": "Добавить Пользовательские Истории пакетно", "PROMOTED": "Эта ПИ была сформирована из запроса:", "TITLE_LINK_GO_TO_ISSUE": "Перейти к запросу", "EXTERNAL_REFERENCE": "Эта ПИ была создана из:", @@ -943,18 +943,18 @@ }, "BACKLOG": { "PAGE_TITLE": "Список задач - {{projectName}}", - "PAGE_DESCRIPTION": "Список задач с историями от пользователей и спринтами проекта {{projectName}}: {{projectDescription}}", + "PAGE_DESCRIPTION": "Список задач с пользовательскими историями и спринтами проекта {{projectName}}: {{projectDescription}}", "SECTION_NAME": "Список задач", "CUSTOMIZE_GRAPH": "Customize your backlog graph", "CUSTOMIZE_GRAPH_TEXT": "To have a nice graph that helps you follow the evolution of the project you have to set up the points and sprints through the", - "CUSTOMIZE_GRAPH_ADMIN": "Админ", - "CUSTOMIZE_GRAPH_TITLE": "Set up the points and sprints through the Admin", + "CUSTOMIZE_GRAPH_ADMIN": "Админка", + "CUSTOMIZE_GRAPH_TITLE": "Настройте очки и спринты в админке", "MOVE_US_TO_CURRENT_SPRINT": "Перейти к текущему спринту", "SHOW_FILTERS": "Показать фильтры", "SHOW_TAGS": "Показать теги", - "EMPTY": "The backlog is empty!", + "EMPTY": "Список задач пуст!", "CREATE_NEW_US": "Создать новую ПИ", - "CREATE_NEW_US_EMPTY_HELP": "Возможно будет лучше создать пользовательскую историю?", + "CREATE_NEW_US_EMPTY_HELP": "Вы можете создать пользовательскую историю", "EXCESS_OF_POINTS": "Избыток очков", "PENDING_POINTS": "Текущие очки", "CLOSED_POINTS": "закрыта", @@ -979,7 +979,7 @@ "HIDE": "Скрыть тэги" }, "TABLE": { - "COLUMN_US": "Истории от Пользователей", + "COLUMN_US": "Пользовательские Истории", "TITLE_COLUMN_POINTS": "Выберите вид для Роли" }, "SPRINT_SUMMARY": { @@ -1012,10 +1012,10 @@ "LINK_TASKBOARD": "Панель задач Спринта", "TITLE_LINK_TASKBOARD": "Перейти к Панели Задач \"{{name}}\"", "NUMBER_SPRINTS": "
спринты", - "EMPTY": "There are no sprints yet", - "WARNING_EMPTY_SPRINT": "Drop here Stories from your backlog to start a new sprint", + "EMPTY": "Спринтов пока что нет", + "WARNING_EMPTY_SPRINT": "Накидайте сюда ПИ из списка задач чтобы начать новый спринт", "TITLE_ACTION_NEW_SPRINT": "Добавить новый спринт", - "TEXT_ACTION_NEW_SPRINT": "You may want to create a new sprint in your project", + "TEXT_ACTION_NEW_SPRINT": "Вы можете создать новый спринт в проекте", "ACTION_SHOW_CLOSED_SPRINTS": "Показать закрытые спринты", "ACTION_HIDE_CLOSED_SPRINTS": "Спрятать закрытые спринты" } @@ -1037,7 +1037,7 @@ "TITLE_ACTION_ASSIGN": "Назначить задачу", "TITLE_ACTION_EDIT": "Редактировать задачу", "PLACEHOLDER_CARD_TITLE": "This could be a task", - "PLACEHOLDER_CARD_TEXT": "Split Stories into tasks to track them separately", + "PLACEHOLDER_CARD_TEXT": "Разделяйте ПИ в задачи чтобы отслеживать их по отдельности", "TABLE": { "COLUMN": "Пользовательская история", "TITLE_ACTION_FOLD": "Свернуть колонку", @@ -1176,7 +1176,7 @@ }, "KANBAN": { "PAGE_TITLE": "Kanban - {{projectName}}", - "PAGE_DESCRIPTION": "Панель kanban, с Историями от Пользователей для проекта {{projectName}}: {{projectDescription}}", + "PAGE_DESCRIPTION": "Панель kanban, с пользовательскими историями для проекта {{projectName}}: {{projectDescription}}", "SECTION_NAME": "Kanban", "TITLE_ACTION_FOLD": "Свернуть колонку", "TITLE_ACTION_UNFOLD": "Развернуть колонку", @@ -1186,16 +1186,16 @@ "TITLE_ACTION_ADD_BULK": "Добавить пакетно", "ACTION_SHOW_ARCHIVED": "Показать архивные", "ACTION_HIDE_ARCHIVED": "Спрятать архив", - "HIDDEN_USER_STORIES": "Истории от Пользователей в этом статусе скрыты по умолчанию", + "HIDDEN_USER_STORIES": "Пользовательские истории в этом статусе скрыты по умолчанию", "ARCHIVED": "Вы заархивировали", "UNDO_ARCHIVED": "Для отмены надо перетащить и сбросить ещё раз", - "PLACEHOLDER_CARD_TITLE": "These are your User Stories", - "PLACEHOLDER_CARD_TEXT": "Stories might also have subtasks to separate requirements" + "PLACEHOLDER_CARD_TITLE": "Это - ваши Пользовательские Истории.", + "PLACEHOLDER_CARD_TEXT": "У ПИ также могут быть подзадачи чтобы можно было разделять требования" }, "SEARCH": { "PAGE_TITLE": "Поиск - {{projectName}}", "PAGE_DESCRIPTION": "Ищите что угодно, пользовательские истории, задачи, запросы и вики-страницы, в проекте {{projectName}}: {{projectDescription}}", - "FILTER_USER_STORIES": "Истории от Пользователей", + "FILTER_USER_STORIES": "Пользовательские Истории", "FILTER_ISSUES": "Запросы", "FILTER_TASKS": "Задачи", "FILTER_WIKI": "Вики страницы", @@ -1305,9 +1305,9 @@ "HINT1_TITLE": "Вы знали что можно импортировать и экспортировать проекты?", "HINT1_TEXT": "Это позволяет вам собирать данные из одной Taiga и копировать в другую.", "HINT2_TITLE": "Вы знали что можно создавать собственные поля?", - "HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow.", - "HINT3_TITLE": "Reorder your projects to feature those most relevant to you.", - "HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.", + "HINT2_TEXT": "Теперь команды могут создавать специальные поля, чтобы гибко вводить данные, специфические для их рабочего процесса.", + "HINT3_TITLE": "Перестройте список своих проектов так, чтобы выделить самые важные для себя.", + "HINT3_TEXT": "Первые 10 проектов доступны из панели прямого доступа сверху.", "HINT4_TITLE": "Вы забыли над чем работали?", "HINT4_TEXT": "Не переживайте, на вашем рабочем столе вы найдёте ваши активные задачи, запросы и пользовательские истории в том порядке, в котором вы над ними работали." }, @@ -1316,7 +1316,7 @@ "US_CREATED": "{{username}} создал новую ПИ {{obj_name}} в {{project_name}}", "ISSUE_CREATED": "{{username}} создал новый запрос {{obj_name}} в {{project_name}}", "TASK_CREATED": "{{username}} создал новую задачу {{obj_name}} в {{project_name}}", - "TASK_CREATED_WITH_US": "{{username}} создал новую задачу {{obj_name}} в {{project_name}}, которая принадлежит Задаче от Пользователя {{us_name}}", + "TASK_CREATED_WITH_US": "{{username}} создал новую задачу {{obj_name}} в {{project_name}}, которая принадлежит ПИ {{us_name}}", "WIKI_CREATED": "{{username}} создал новую вики-страницу {{obj_name}} в {{project_name}}", "MILESTONE_CREATED": "{{username}} создал новый спринт {{obj_name}} в {{project_name}}", "NEW_PROJECT": "{{username}} создал проект {{project_name}}", @@ -1343,7 +1343,7 @@ "NEW_USER": "{{username}} присоединился к Taiga" }, "LEGAL": { - "TERMS_OF_SERVICE_AND_PRIVACY_POLICY_AD": "By clicking \"Sign up\"', you agree to our
terms of service and privacy policy." + "TERMS_OF_SERVICE_AND_PRIVACY_POLICY_AD": "Кликая \"Зарегистрироваться\"', вы соглашаетесь с нашими
условиями обслуживания и политикой обработки персональных данных." }, "EXTERNAL_APP": { "PAGE_TITLE": "Внешнее приложение требующие аутентификации", @@ -1357,11 +1357,11 @@ "DASHBOARD": { "STEP1": { "TITLE": "Ваш проект", - "TEXT": "Welcome! Here you will find the projects you are involved on." + "TEXT": "Добро пожаловать! Здесь вы найдете проекты, над которыми работаете." }, "STEP2": { "TITLE": "Работает над", - "TEXT": "Here you will find the User Stories, Tasks and Issues in which you are working on." + "TEXT": "Здесь вы найдете Пользовательские Истории, Задачи и Запросы, над которыми работаете." }, "STEP3": { "TITLE": "Отслеживаемое", @@ -1369,28 +1369,28 @@ "TEXT2": "You are already working with Taiga ;)" }, "STEP4": { - "TITLE": "Let’s start", - "TEXT1": "You can start by creating your first Taiga project.", + "TITLE": "Давайте начнём", + "TEXT1": "Вы можете начать, создав свой первый проект в Taiga.", "TEXT2": "Удачи!" } }, "BACKLOG": { "STEP1": { "TITLE": "Содержание проекта", - "TEXT1": "Here you will see the state of your project.", - "TEXT2": "You can change every kind of project settings through the admin." + "TEXT1": "Здесь вы будете видеть состояние проекта.", + "TEXT2": "Вы можете изменять все настройки проекта в админке." }, "STEP2": { - "TITLE": "Product backlog", - "TEXT": "The backlog is the list of requirements (User Stories) for the project. Here is where you will plan your sprints." + "TITLE": "Список задач проекта", + "TEXT": "Список задач - набор требований (Пользовательский Историй) к вашему проекту. Здесь вы можете планировать спринты." }, "STEP3": { "TITLE": "Спринты", - "TEXT": "Sprints are short periods of time (usually 2 weeks) during which specific work has to be completed and delivered." + "TEXT": "Спринты - это небольшие промежутки времени (обычно 2 недели), на протяжении которых конкретные задачи должны быть закончены и доставлены." }, "STEP4": { - "TITLE": "Истории от Пользователей", - "TEXT": "Those are the requirements at high level. You can add them to the backlog and drag them to the sprint in which it should be delivered." + "TITLE": "Пользовательские Истории", + "TEXT": "Это высокоуровневые требования. Вы можете добавить их в список задач и перетащить в спринт, в который они должны быть реализованы." } }, "KANBAN": { @@ -1399,12 +1399,12 @@ "TEXT": "Set up the columns you need to map your workflow statuses through the admin." }, "STEP2": { - "TITLE": "User Stories & Tasks", - "TEXT": "User Stories are the requirements at high level. You can drag them to different columns." + "TITLE": "Пользовательские Истории и Задачи", + "TEXT": "Пользовательские истории - это высокоуровневые требования. Вы можете перетаскивать их между колонками." }, "STEP3": { "TITLE": "Adding User Stories", - "TEXT1": "You may want to add a single User Story (add US icon) or a group of them (bulk icon)", + "TEXT1": "Вы можете добавить одну пользовательскую историю (кнопка \"добавить ПИ\") или сразу несколько (кнопка \"пакетное добавление\")", "TEXT2": "Удачи!" } } diff --git a/app/locales/locale-zh-hant.json b/app/locales/locale-zh-hant.json index 6e044acc..ce9639a9 100644 --- a/app/locales/locale-zh-hant.json +++ b/app/locales/locale-zh-hant.json @@ -681,7 +681,7 @@ }, "PROFILE_SIDEBAR": { "TITLE": "個人資訊", - "DESCRIPTION": "人們可以看到你做的成果以及其進度。加入一段描述介紹以強化你的資料。", + "DESCRIPTION": "People can see everything you do and what you are working on. Add a nice bio to give an enhanced version of your information.", "ADD_INFO": "Edit bio" }, "PROFILE_FAVS": { From 99a74cd8fdecd0e9c63ed2feb11fb34a211a82f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Wed, 11 Nov 2015 17:12:26 +0100 Subject: [PATCH 026/100] Sow placeholders affter the APi calls --- app/modules/home/projects/home-project-list.jade | 4 ++-- app/modules/home/working-on/working-on.jade | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/modules/home/projects/home-project-list.jade b/app/modules/home/projects/home-project-list.jade index 54040b22..789dca0d 100644 --- a/app/modules/home/projects/home-project-list.jade +++ b/app/modules/home/projects/home-project-list.jade @@ -1,4 +1,4 @@ -section.home-project-list(ng-show="vm.projects.size") +section.home-project-list(ng-if="vm.projects.size") ul li.home-project-list-single(tg-bind-scope, tg-repeat="project in vm.projects") a(href="#", tg-nav="project:project=project.get('slug')") @@ -17,7 +17,7 @@ section.home-project-list(ng-show="vm.projects.size") translate="PROJECT.NAVIGATION.SEE_MORE_PROJECTS" ) -section.projects-empty(ng-show="!vm.projects.size") +section.projects-empty(ng-if="vm.projects != undefined && vm.projects.size === 0") include ../../../svg/empty-project.svg p(translate="HOME.EMPTY_PROJECT_LIST") a.create-project-button.button-green(href="#", ng-click="vm.newProject()", diff --git a/app/modules/home/working-on/working-on.jade b/app/modules/home/working-on/working-on.jade index f12edae1..dc4a70ca 100644 --- a/app/modules/home/working-on/working-on.jade +++ b/app/modules/home/working-on/working-on.jade @@ -1,19 +1,19 @@ section.working-on-container .title-bar.working-on-title(translate="HOME.WORKING_ON_SECTION") - .working-on(ng-show="vm.assignedTo.size") + .working-on(ng-if="vm.assignedTo.size") .duty-single(tg-duty="duty", tg-repeat="duty in vm.assignedTo", ng-class="{blocked: duty.is_blocked}") - .working-on-empty(ng-show="!vm.assignedTo.size") + .working-on-empty(ng-if="vm.assignedTo != undefined && vm.assignedTo.size === 0") p(translate="HOME.EMPTY_WORKING_ON") include empty.jade section.watching-container .title-bar.watching-title(translate="HOME.WATCHING_SECTION") - .watching(ng-show="vm.watching.size") + .watching(ng-if="vm.watching.size") .duty-single(tg-duty="duty", tg-repeat="duty in vm.watching", ng-class="{blocked: duty.is_blocked}") - .watching-empty(ng-show="!vm.watching.size") + .watching-empty(ng-if="vm.watching != undefined && vm.watching.size === 0") p(translate="HOME.EMPTY_WATCHING") include empty.jade From b489767d847756d5601ceb031059208beacd08ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Fri, 6 Nov 2015 14:28:41 +0100 Subject: [PATCH 027/100] US 3463 - Implement heartbeat protocol for taiga-events --- app-loader/app-loader.coffee | 2 + app/coffee/modules/events.coffee | 76 ++++++++++++++++++++++++++++---- conf/conf.example.json | 2 + 3 files changed, 72 insertions(+), 8 deletions(-) diff --git a/app-loader/app-loader.coffee b/app-loader/app-loader.coffee index 47f6b4c4..06c24404 100644 --- a/app-loader/app-loader.coffee +++ b/app-loader/app-loader.coffee @@ -2,6 +2,8 @@ version = ___VERSION___ window.taigaConfig = { "api": "http://localhost:8000/api/v1/", "eventsUrl": null, + "eventsMaxMissedHeartbeats": 5, + "eventsHeartbeatIntervalTime": 60000, "debug": true, "defaultLanguage": "en", "themes": ["taiga", "material-design", "high-contrast"], diff --git a/app/coffee/modules/events.coffee b/app/coffee/modules/events.coffee index 64ac5a80..85dad88f 100644 --- a/app/coffee/modules/events.coffee +++ b/app/coffee/modules/events.coffee @@ -37,6 +37,9 @@ class EventsService @.error = false @.pendingMessages = [] + @.missedHeartbeats = 0 + @.heartbeatInterval = null + if @win.WebSocket is undefined @log.info "WebSockets not supported on your browser" @@ -70,10 +73,53 @@ class EventsService @.ws.removeEventListener("close", @.onClose) @.ws.removeEventListener("error", @.onError) @.ws.removeEventListener("message", @.onMessage) + @.stopHeartBeatMessages() @.ws.close() delete @.ws + ########################################### + # Heartbeat (Ping - Pong) + ########################################### + # See RFC https://tools.ietf.org/html/rfc6455#section-5.5.2 + # RFC https://tools.ietf.org/html/rfc6455#section-5.5.3 + startHeartBeatMessages: -> + return if @.heartbeatInterval + + maxMissedHeartbeats = @config.get("eventsMaxMissedHeartbeats", 5) + heartbeatIntervalTime = @config.get("eventsHeartbeatIntervalTime", 60000) + + @.missedHeartbeats = 0 + @.heartbeatInterval = setInterval(() => + try + if @.missedHeartbeats >= maxMissedHeartbeats + throw new Error("Too many missed heartbeats PINGs.") + + @.missedHeartbeats++ + @.sendMessage({cmd: "ping"}) + @log.debug("HeartBeat send PING") + catch e + @log.error("HeartBeat error: " + e.message) + @.stopHeartBeatMessages() + , heartbeatIntervalTime) + + @log.debug("HeartBeat enabled") + + stopHeartBeatMessages: -> + return if not @.heartbeatInterval + + clearInterval(@.heartbeatInterval) + @.heartbeatInterval = null + + @log.debug("HeartBeat disabled") + + processHeartBeatPongMessage: (data) -> + @.missedHeartbeats = 0 + @log.debug("HeartBeat recived PONG") + + ########################################### + # Messages + ########################################### serialize: (message) -> if _.isObject(message) return JSON.stringify(message) @@ -91,6 +137,19 @@ class EventsService for msg in messages @.ws.send(msg) + processMesage: (data) => + routingKey = data.routing_key + + if not @.subscriptions[routingKey]? + return + + subscription = @.subscriptions[routingKey] + subscription.scope.$apply -> + subscription.callback(data.data) + + ########################################### + # Subscribe and Unsubscribe + ########################################### subscribe: (scope, routingKey, callback) -> if @.error return @@ -124,8 +183,12 @@ class EventsService @.sendMessage(message) + ########################################### + # Event listeners + ########################################### onOpen: -> @.connected = true + @.startHeartBeatMessages() @log.debug("WebSocket connection opened") token = @auth.getToken() @@ -141,14 +204,10 @@ class EventsService @.log.debug "WebSocket message received: #{event.data}" data = JSON.parse(event.data) - routingKey = data.routing_key - - if not @.subscriptions[routingKey]? - return - - subscription = @.subscriptions[routingKey] - subscription.scope.$apply -> - subscription.callback(data.data) + if data.cmd = "pong" + @.processHeartBeatPongMessage(data) + else + @.processMessage(data) onError: (error) -> @log.error("WebSocket error: #{error}") @@ -157,6 +216,7 @@ class EventsService onClose: -> @log.debug("WebSocket closed.") @.connected = false + @.stopHeartBeatMessages() class EventsProvider diff --git a/conf/conf.example.json b/conf/conf.example.json index d039bb77..1779eec1 100644 --- a/conf/conf.example.json +++ b/conf/conf.example.json @@ -1,6 +1,8 @@ { "api": "http://localhost:8000/api/v1/", "eventsUrl": null, + "eventsMaxMissedHeartbeats": 5, + "eventsHeartbeatIntervalTime": 60000, "debug": true, "debugInfo": false, "defaultLanguage": "en", From 726a587281d7fecc6e90267729a8d64d0fa0b9c8 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Thu, 12 Nov 2015 12:10:41 +0100 Subject: [PATCH 028/100] fix method name 'processMessage' --- app/coffee/modules/events.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/coffee/modules/events.coffee b/app/coffee/modules/events.coffee index 85dad88f..81e70346 100644 --- a/app/coffee/modules/events.coffee +++ b/app/coffee/modules/events.coffee @@ -137,7 +137,7 @@ class EventsService for msg in messages @.ws.send(msg) - processMesage: (data) => + processMessage: (data) => routingKey = data.routing_key if not @.subscriptions[routingKey]? From 67476c3c04258e9423f8509e76a6b45b54912b3e Mon Sep 17 00:00:00 2001 From: Daniel Jonsson Date: Tue, 10 Nov 2015 14:42:54 +0100 Subject: [PATCH 029/100] e2e tests only work with Babel 5 (not 6) Source: https://groups.google.com/d/msg/taigaio/kp2cofaI_rI/6mVNTpOxBAAJ --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f8435a1b..850b347a 100644 --- a/README.md +++ b/README.md @@ -140,7 +140,7 @@ If you want to run e2e tests ``` npm install -g protractor npm install -g mocha -npm install -g babel +npm install -g babel@5 webdriver-manager update ``` From 7d1a8ecbff69379f3d0a4a4a88bf0251f560aac5 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Fri, 13 Nov 2015 12:38:26 +0100 Subject: [PATCH 030/100] fix pong handler --- app/coffee/modules/events.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/coffee/modules/events.coffee b/app/coffee/modules/events.coffee index 81e70346..bd45e419 100644 --- a/app/coffee/modules/events.coffee +++ b/app/coffee/modules/events.coffee @@ -204,7 +204,7 @@ class EventsService @.log.debug "WebSocket message received: #{event.data}" data = JSON.parse(event.data) - if data.cmd = "pong" + if data.cmd == "pong" @.processHeartBeatPongMessage(data) else @.processMessage(data) From 96ae211e9e20cbf3f376f205cc05c81fcb2cd98c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Fri, 13 Nov 2015 13:42:18 +0100 Subject: [PATCH 031/100] Add travis_retry command --- .travis.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 42615756..62f15439 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,16 +1,15 @@ sudo: false - +language: node_js +node_js: + - "4.1" before_install: - export CHROME_BIN=chromium-browser - export DISPLAY=:99.0 - sh -e /etc/init.d/xvfb start - - npm install -g bower - - npm install -g gulp + - travis_retry npm install -g bower + - travis_retry npm install -g gulp install: - - npm install - - bower install + - travis_retry npm install + - travis_retry bower install before_script: - gulp deploy -language: node_js -node_js: - - "4.1" From 24f880ae12030c51c952926514fa841d54f9367f Mon Sep 17 00:00:00 2001 From: Juanfran Date: Tue, 17 Nov 2015 08:34:02 +0100 Subject: [PATCH 032/100] add info about install jdk --- README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 850b347a..8478475a 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ If you **need help to setup Taiga**, want to **talk about some cool enhancemnt** If you **find a bug** in Taiga you can always report it: - in our [mailing list](http://groups.google.com/d/forum/taigaio). -- in [github issues](https://github.com/taigaio/taiga-front/issues). +- in [github issues](https://github.com/taigaio/taiga-front/issues). - send us a mail to support@taiga.io if is a bug related to tree.taiga.io. - send a mail to security@taiga.io if is a **security bug**. @@ -53,7 +53,7 @@ Please, before reporting a bug write down how can we reproduce it, your operatin #### Documentation improvements #### -We are gathering lots of information from our users to build and enhance our documentation. If you use the documentation to install or develop with Taiga and find any mistakes, omissions or confused sequences, it is enormously helpful to report it. Or better still, if you believe you can author additions, please make a pull-request to taiga project. +We are gathering lots of information from our users to build and enhance our documentation. If you use the documentation to install or develop with Taiga and find any mistakes, omissions or confused sequences, it is enormously helpful to report it. Or better still, if you believe you can author additions, please make a pull-request to taiga project. Currently, we have authored three main documentation hubs: @@ -69,14 +69,14 @@ We are ready now to accept your help translating Taiga. It's easy (and fun!) jus #### Code patches #### -Taiga will always be glad to receive code patches to update, fix or improve its code. +Taiga will always be glad to receive code patches to update, fix or improve its code. If you know how to improve our code base or you found a bug, a security vulnerability or a performance issue and you think you can solve it, we will be very happy to accept your pull-request. If your code requires considerable changes, we recommend you first talk to us directly. We will find the best way to help. #### UI enhancements #### -Taiga is made for developers and designers. We care enormously about UI because usability and design are both critical aspects of the Taiga experience. +Taiga is made for developers and designers. We care enormously about UI because usability and design are both critical aspects of the Taiga experience. There are two possible ways to contribute to our UI: - **Bugs**: If you find a bug regarding front-end, please report it as previously indicated in the Bug reports section or send a pull-request as indicated in the Code Patches section. @@ -145,6 +145,8 @@ npm install -g babel@5 webdriver-manager update ``` +To run a local Selenium Server, you will need to have the Java Development Kit (JDK) installed. + ## Tests ## #### Unit tests #### From 434e7b6d270258926a4a0e831d9e2f8923eda5eb Mon Sep 17 00:00:00 2001 From: Juanfran Date: Tue, 17 Nov 2015 14:41:35 +0100 Subject: [PATCH 033/100] upgrade pikaday --- bower.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bower.json b/bower.json index ff32a7df..6f177a36 100644 --- a/bower.json +++ b/bower.json @@ -71,7 +71,7 @@ "moment": "~2.10.6", "isMobile": "~0.3.1", "favico.js": "0.3.9", - "pikaday": "~1.3.3", + "pikaday": "~1.4.0", "malihu-custom-scrollbar-plugin": "~3.1.0", "raven-js": "~1.1.16", "l.js": "~0.1.0", From 41865cc6e1b8960a506411f541d39115a11de71d Mon Sep 17 00:00:00 2001 From: Juanfran Date: Tue, 17 Nov 2015 14:52:57 +0100 Subject: [PATCH 034/100] remove double decorator initialization --- app/coffee/app.coffee | 6 ------ 1 file changed, 6 deletions(-) diff --git a/app/coffee/app.coffee b/app/coffee/app.coffee index c94ff19a..c0118c9a 100644 --- a/app/coffee/app.coffee +++ b/app/coffee/app.coffee @@ -522,12 +522,6 @@ configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEven _.each decorators, (decorator) -> $provide.decorator decorator.provider, decorator.decorator - # decoratos - decorators = _.where(@.taigaContribPlugins, {"type": "decorator"}) - - _.each decorators, (decorator) -> - $provide.decorator decorator.provider, decorator.decorator - i18nInit = (lang, $translate) -> # i18n - moment.js moment.locale(lang) From 611913326ae38d3717f7f6aba1f8b77d3c64d911 Mon Sep 17 00:00:00 2001 From: Alexander Styre Date: Wed, 11 Nov 2015 13:28:32 +0100 Subject: [PATCH 035/100] Supporting translation for contrib plugins. --- app/coffee/app.coffee | 9 +++++---- app/locales/{ => taiga}/locale-ca.json | 0 app/locales/{ => taiga}/locale-de.json | 0 app/locales/{ => taiga}/locale-en.json | 0 app/locales/{ => taiga}/locale-es.json | 0 app/locales/{ => taiga}/locale-fi.json | 0 app/locales/{ => taiga}/locale-fr.json | 0 app/locales/{ => taiga}/locale-it.json | 0 app/locales/{ => taiga}/locale-nl.json | 0 app/locales/{ => taiga}/locale-pl.json | 0 app/locales/{ => taiga}/locale-pt-br.json | 0 app/locales/{ => taiga}/locale-ru.json | 0 app/locales/{ => taiga}/locale-zh-hant.json | 0 bower.json | 1 + gulpfile.js | 1 + 15 files changed, 7 insertions(+), 4 deletions(-) rename app/locales/{ => taiga}/locale-ca.json (100%) rename app/locales/{ => taiga}/locale-de.json (100%) rename app/locales/{ => taiga}/locale-en.json (100%) rename app/locales/{ => taiga}/locale-es.json (100%) rename app/locales/{ => taiga}/locale-fi.json (100%) rename app/locales/{ => taiga}/locale-fr.json (100%) rename app/locales/{ => taiga}/locale-it.json (100%) rename app/locales/{ => taiga}/locale-nl.json (100%) rename app/locales/{ => taiga}/locale-pl.json (100%) rename app/locales/{ => taiga}/locale-pt-br.json (100%) rename app/locales/{ => taiga}/locale-ru.json (100%) rename app/locales/{ => taiga}/locale-zh-hant.json (100%) diff --git a/app/coffee/app.coffee b/app/coffee/app.coffee index c0118c9a..c879766d 100644 --- a/app/coffee/app.coffee +++ b/app/coffee/app.coffee @@ -39,7 +39,7 @@ taiga.sessionId = taiga.generateUniqueSessionIdentifier() configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEventsProvider, - $compileProvider, $translateProvider, $animateProvider) -> + $compileProvider, $translateProvider, $translatePartialLoaderProvider, $animateProvider) -> $animateProvider.classNameFilter(/^(?:(?!ng-animate-disabled).)*$/) @@ -505,10 +505,10 @@ configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEven # i18n preferedLangCode = userInfo?.lang || window.taigaConfig.defaultLanguage || "en" + $translatePartialLoaderProvider.addPart('taiga') $translateProvider - .useStaticFilesLoader({ - prefix: "/locales/locale-", - suffix: ".json" + .useLoader('$translatePartialLoader', { + urlTemplate: '/locales/{part}/locale-{lang}.json' }) .useSanitizeValueStrategy('escapeParameters') .addInterpolation('$translateMessageFormatInterpolation') @@ -684,6 +684,7 @@ module.config([ "$tgEventsProvider", "$compileProvider", "$translateProvider", + "$translatePartialLoaderProvider", "$animateProvider", configure ]) diff --git a/app/locales/locale-ca.json b/app/locales/taiga/locale-ca.json similarity index 100% rename from app/locales/locale-ca.json rename to app/locales/taiga/locale-ca.json diff --git a/app/locales/locale-de.json b/app/locales/taiga/locale-de.json similarity index 100% rename from app/locales/locale-de.json rename to app/locales/taiga/locale-de.json diff --git a/app/locales/locale-en.json b/app/locales/taiga/locale-en.json similarity index 100% rename from app/locales/locale-en.json rename to app/locales/taiga/locale-en.json diff --git a/app/locales/locale-es.json b/app/locales/taiga/locale-es.json similarity index 100% rename from app/locales/locale-es.json rename to app/locales/taiga/locale-es.json diff --git a/app/locales/locale-fi.json b/app/locales/taiga/locale-fi.json similarity index 100% rename from app/locales/locale-fi.json rename to app/locales/taiga/locale-fi.json diff --git a/app/locales/locale-fr.json b/app/locales/taiga/locale-fr.json similarity index 100% rename from app/locales/locale-fr.json rename to app/locales/taiga/locale-fr.json diff --git a/app/locales/locale-it.json b/app/locales/taiga/locale-it.json similarity index 100% rename from app/locales/locale-it.json rename to app/locales/taiga/locale-it.json diff --git a/app/locales/locale-nl.json b/app/locales/taiga/locale-nl.json similarity index 100% rename from app/locales/locale-nl.json rename to app/locales/taiga/locale-nl.json diff --git a/app/locales/locale-pl.json b/app/locales/taiga/locale-pl.json similarity index 100% rename from app/locales/locale-pl.json rename to app/locales/taiga/locale-pl.json diff --git a/app/locales/locale-pt-br.json b/app/locales/taiga/locale-pt-br.json similarity index 100% rename from app/locales/locale-pt-br.json rename to app/locales/taiga/locale-pt-br.json diff --git a/app/locales/locale-ru.json b/app/locales/taiga/locale-ru.json similarity index 100% rename from app/locales/locale-ru.json rename to app/locales/taiga/locale-ru.json diff --git a/app/locales/locale-zh-hant.json b/app/locales/taiga/locale-zh-hant.json similarity index 100% rename from app/locales/locale-zh-hant.json rename to app/locales/taiga/locale-zh-hant.json diff --git a/bower.json b/bower.json index 6f177a36..18943722 100644 --- a/bower.json +++ b/bower.json @@ -76,6 +76,7 @@ "raven-js": "~1.1.16", "l.js": "~0.1.0", "angular-translate": "~2.8.1", + "angular-translate-loader-partial": "~2.8.1", "angular-translate-loader-static-files": "~2.8.1", "angular-translate-interpolation-messageformat": "~2.8.1", "ngInfiniteScroll": "1.2.1", diff --git a/gulpfile.js b/gulpfile.js index 066f2951..fda87eff 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -148,6 +148,7 @@ paths.libs = [ paths.vendor + "angular-animate/angular-animate.js", paths.vendor + "angular-aria/angular-aria.js", paths.vendor + "angular-translate/angular-translate.js", + paths.vendor + "angular-translate-loader-partial/angular-translate-loader-partial.js", paths.vendor + "angular-translate-loader-static-files/angular-translate-loader-static-files.js", paths.vendor + "angular-translate-interpolation-messageformat/angular-translate-interpolation-messageformat.js", paths.vendor + "moment/min/moment-with-locales.js", From b3e9ffffec5e3a01244b3cf00a778596bf0f2a02 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Thu, 19 Nov 2015 08:44:10 +0100 Subject: [PATCH 036/100] update transifex locales path --- .tx/config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.tx/config b/.tx/config index 38d247e7..f0f3b762 100644 --- a/.tx/config +++ b/.tx/config @@ -3,7 +3,7 @@ host = https://www.transifex.com lang_map = sr@latin:sr-latn, zh-Hans:zh-hans, zh-Hant:zh-hant, pt_BR:pt-br [taiga-front.locale-enjson] -file_filter = app/locales/locale-.json -source_file = app/locales/locale-en.json +file_filter = app/locales/taiga/locale-.json +source_file = app/locales/taiga/locale-en.json source_lang = en type = KEYVALUEJSON From f34d01f249d656022e429c7bea446d2680be6f37 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Thu, 19 Nov 2015 10:06:59 +0100 Subject: [PATCH 037/100] downgrade angular-mocks --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 61462503..8cf379ce 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "e2e": "node ./node_modules/babel/bin/babel-node.js --stage=1 ./run-e2e.js" }, "devDependencies": { - "angular-mocks": "^1.5.0-beta.0", + "angular-mocks": "^1.4.7", "babel": "^5.6.5", "bluebird": "^3.0.2", "chai": "^3.3.0", From d0d25dfd4c3b7cc6fcff6136bc0223dd1315de65 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Thu, 12 Nov 2015 10:57:08 +0100 Subject: [PATCH 038/100] save statics inside a non-cacheable folder --- CHANGELOG.md | 2 + app-loader/app-loader.coffee | 10 +-- app/coffee/app.coffee | 2 +- app/coffee/modules/admin/memberships.coffee | 2 +- app/coffee/modules/common/components.coffee | 4 +- app/coffee/modules/common/loading.coffee | 2 +- app/coffee/modules/issues/list.coffee | 2 +- app/coffee/modules/kanban/main.coffee | 2 +- app/coffee/modules/related-tasks.coffee | 2 +- app/coffee/modules/taskboard/main.coffee | 4 +- app/coffee/modules/wiki/main.coffee | 2 +- app/index.jade | 10 +-- app/modules/home/duties/duty.jade | 6 +- .../profile-contacts/profile-contacts.jade | 2 +- .../profile/profile-favs/items/ticket.jade | 2 +- .../profile/profile-favs/profile-favs.jade | 4 +- .../profile-projects/profile-projects.jade | 2 +- app/modules/profile/styles/profile-bar.scss | 2 +- app/modules/services/app-meta.service.coffee | 4 +- .../services/app-meta.service.spec.coffee | 11 ++- .../user-timeline-item.jade | 4 +- .../user-timeline/user-timeline.jade | 2 +- app/partials/admin/admin-project-export.jade | 2 +- app/partials/backlog/backlog.jade | 2 +- app/partials/error/error.jade | 2 +- app/partials/error/not-found.jade | 4 +- app/partials/error/permission-denied.jade | 2 +- app/partials/includes/components/beta.jade | 2 +- .../components/empty-search-results.jade | 2 +- .../includes/modules/issues-table.jade | 2 +- .../modules/lightbox-generic-loading.jade | 2 +- app/partials/includes/modules/sprints.jade | 2 +- app/partials/user/user-profile.jade | 2 +- app/themes/taiga/variables.scss | 4 +- gulpfile.js | 74 ++++++++++--------- karma.conf.js | 12 +-- 36 files changed, 102 insertions(+), 95 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 64311291..f244e0b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # Changelog # +## 1.10.0 ??? (unreleased) +- Statics folder hash ## 1.9.0 Abies Siberica (2015-11-XX) diff --git a/app-loader/app-loader.coffee b/app-loader/app-loader.coffee index 06c24404..e8801f63 100644 --- a/app-loader/app-loader.coffee +++ b/app-loader/app-loader.coffee @@ -1,4 +1,4 @@ -version = ___VERSION___ +window._version = "___VERSION___" window.taigaConfig = { "api": "http://localhost:8000/api/v1/", "eventsUrl": null, @@ -16,16 +16,16 @@ window.taigaConfig = { "contribPlugins": [] } -promise = $.getJSON "/js/conf.json" +promise = $.getJSON "/conf.json" promise.done (data) -> window.taigaConfig = _.extend({}, window.taigaConfig, data) promise.always -> if window.taigaConfig.contribPlugins.length > 0 - plugins = _.map(window.taigaConfig.contribPlugins, (plugin) -> "#{plugin}?v=#{version}") + plugins = _.map(window.taigaConfig.contribPlugins, (plugin) -> "#{plugin}") ljs.load plugins, -> - ljs.load "/js/app.js?v=#{version}", -> + ljs.load "/#{window._version}/js/app.js", -> angular.bootstrap(document, ['taiga']) else - ljs.load "/js/app.js?v=#{version}", -> + ljs.load "/#{window._version}/js/app.js", -> angular.bootstrap(document, ['taiga']) diff --git a/app/coffee/app.coffee b/app/coffee/app.coffee index c879766d..0bbf75d1 100644 --- a/app/coffee/app.coffee +++ b/app/coffee/app.coffee @@ -508,7 +508,7 @@ configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEven $translatePartialLoaderProvider.addPart('taiga') $translateProvider .useLoader('$translatePartialLoader', { - urlTemplate: '/locales/{part}/locale-{lang}.json' + urlTemplate: '/' + window._version + '/locales/{part}/locale-{lang}.json' }) .useSanitizeValueStrategy('escapeParameters') .addInterpolation('$translateMessageFormatInterpolation') diff --git a/app/coffee/modules/admin/memberships.coffee b/app/coffee/modules/admin/memberships.coffee index 9068b3b0..e87c5c4e 100644 --- a/app/coffee/modules/admin/memberships.coffee +++ b/app/coffee/modules/admin/memberships.coffee @@ -219,7 +219,7 @@ MembershipsRowAvatarDirective = ($log, $template, $translate) -> ctx = { full_name: if member.full_name then member.full_name else "" email: if member.user_email then member.user_email else member.email - imgurl: if member.photo then member.photo else "/images/unnamed.png" + imgurl: if member.photo then member.photo else "/" + window._version + "/images/unnamed.png" pending: if !member.is_user_active then pending else "" } diff --git a/app/coffee/modules/common/components.coffee b/app/coffee/modules/common/components.coffee index 6f41595a..23b6dab2 100644 --- a/app/coffee/modules/common/components.coffee +++ b/app/coffee/modules/common/components.coffee @@ -140,7 +140,7 @@ CreatedByDisplayDirective = ($template, $compile, $translate, $navUrls)-> if model? $scope.owner = model.owner_extra_info or { full_name_display: $translate.instant("COMMON.EXTERNAL_USER") - photo: "/images/user-noimage.png" + photo: "/" + window._version + "/images/user-noimage.png" } $scope.url = if $scope.owner?.is_active then $navUrls.resolve("user-profile", {username: $scope.owner.username}) else "" @@ -643,7 +643,7 @@ ListItemAssignedtoDirective = ($template) -> link = ($scope, $el, $attrs) -> bindOnce $scope, "usersById", (usersById) -> item = $scope.$eval($attrs.tgListitemAssignedto) - ctx = {name: "Unassigned", imgurl: "/images/unnamed.png"} + ctx = {name: "Unassigned", imgurl: "/" + window._version + "/images/unnamed.png"} member = usersById[item.assigned_to] if member diff --git a/app/coffee/modules/common/loading.coffee b/app/coffee/modules/common/loading.coffee index 54e4d3fb..33aa581b 100644 --- a/app/coffee/modules/common/loading.coffee +++ b/app/coffee/modules/common/loading.coffee @@ -22,7 +22,7 @@ module = angular.module("taigaCommon") TgLoadingService = ($compile) -> - spinner = "loading..." + spinner = "loading..." return () -> service = { diff --git a/app/coffee/modules/issues/list.coffee b/app/coffee/modules/issues/list.coffee index 1b90695e..51551823 100644 --- a/app/coffee/modules/issues/list.coffee +++ b/app/coffee/modules/issues/list.coffee @@ -780,7 +780,7 @@ IssueAssignedToInlineEditionDirective = ($repo, $rootscope, popoverService) -> link = ($scope, $el, $attrs) -> updateIssue = (issue) -> - ctx = {name: "Unassigned", imgurl: "/images/unnamed.png"} + ctx = {name: "Unassigned", imgurl: "/" + window._version + "/images/unnamed.png"} member = $scope.usersById[issue.assigned_to] if member ctx.imgurl = member.photo diff --git a/app/coffee/modules/kanban/main.coffee b/app/coffee/modules/kanban/main.coffee index b2f803ba..c38a5a48 100644 --- a/app/coffee/modules/kanban/main.coffee +++ b/app/coffee/modules/kanban/main.coffee @@ -547,7 +547,7 @@ KanbanUserDirective = ($log, $compile) -> render = (user) -> if user is undefined - ctx = {name: "Unassigned", imgurl: "/images/unnamed.png", clickable: clickable} + ctx = {name: "Unassigned", imgurl: "/" + window._version + "/images/unnamed.png", clickable: clickable} else ctx = {name: user.full_name_display, imgurl: user.photo, clickable: clickable} diff --git a/app/coffee/modules/related-tasks.coffee b/app/coffee/modules/related-tasks.coffee index ec0cbd8b..e1a991ce 100644 --- a/app/coffee/modules/related-tasks.coffee +++ b/app/coffee/modules/related-tasks.coffee @@ -248,7 +248,7 @@ RelatedTaskAssignedToInlineEditionDirective = ($repo, $rootscope, popoverService link = ($scope, $el, $attrs) -> updateRelatedTask = (task) -> - ctx = {name: "Unassigned", imgurl: "/images/unnamed.png"} + ctx = {name: "Unassigned", imgurl: "/" + window._version + "/images/unnamed.png"} member = $scope.usersById[task.assigned_to] if member ctx.imgurl = member.photo diff --git a/app/coffee/modules/taskboard/main.coffee b/app/coffee/modules/taskboard/main.coffee index 9e7f5f37..7d6e3900 100644 --- a/app/coffee/modules/taskboard/main.coffee +++ b/app/coffee/modules/taskboard/main.coffee @@ -185,7 +185,7 @@ class TaskboardController extends mixOf(taiga.Controller, taiga.PageMixin) @scope.usTasks[task.user_story][task.status].push(task) if tasks.length == 0 - + if @scope.userstories.length > 0 usId = @scope.userstories[0].id else @@ -442,7 +442,7 @@ TaskboardUserDirective = ($log) -> user = $scope.usersById[assigned_to] if user is undefined - _.assign($scope, {name: "Unassigned", imgurl: "/images/unnamed.png", clickable: clickable}) + _.assign($scope, {name: "Unassigned", imgurl: "/" + window._version + "/images/unnamed.png", clickable: clickable}) else _.assign($scope, {name: user.full_name_display, imgurl: user.photo, clickable: clickable}) diff --git a/app/coffee/modules/wiki/main.coffee b/app/coffee/modules/wiki/main.coffee index c108954a..4f4f4975 100644 --- a/app/coffee/modules/wiki/main.coffee +++ b/app/coffee/modules/wiki/main.coffee @@ -157,7 +157,7 @@ WikiSummaryDirective = ($log, $template, $compile, $translate) -> user = $scope.usersById[wiki.last_modifier] if user is undefined - user = {name: "unknown", imgUrl: "/images/user-noimage.png"} + user = {name: "unknown", imgUrl: "/" + window._version + "/images/user-noimage.png"} else user = {name: user.full_name_display, imgUrl: user.photo} diff --git a/app/index.jade b/app/index.jade index a9994cef..96aa95cd 100644 --- a/app/index.jade +++ b/app/index.jade @@ -10,8 +10,8 @@ html(lang="en") meta(name="description", content="Taiga is a project management platform for startups and agile developers & designers who want a simple, beautiful tool that makes work truly enjoyable.") meta(name="keywords", content="agile, scrum, taiga, management, project, developer, designer, user experience") //-meta(name="viewport", content="width=device-width, user-scalable=no") - link(rel="stylesheet", href="/styles/theme-taiga.css") - link(rel="icon", type="image/png", href="/images/favicon.png") + link(rel="stylesheet", href="/#{v}/styles/theme-taiga.css") + link(rel="icon", type="image/png", href="/#{v}/images/favicon.png") //- PRERENDER SERVICE: This is to know when the page is completely loaded. script(type='text/javascript'). @@ -39,6 +39,6 @@ html(lang="en") div(tg-joy-ride) - script(src="/js/libs.js?v=#{v}") - script(src="/js/templates.js?v=#{v}") - script(src="/js/app-loader.js?v=#{v}") + script(src="/#{v}/js/libs.js") + script(src="/#{v}/js/templates.js") + script(src="/#{v}/js/app-loader.js") diff --git a/app/modules/home/duties/duty.jade b/app/modules/home/duties/duty.jade index d3efacee..c922b6a6 100644 --- a/app/modules/home/duties/duty.jade +++ b/app/modules/home/duties/duty.jade @@ -1,7 +1,7 @@ a.list-itemtype-ticket( href="{{ ::vm.duty.get('url') }}" title="{{ ::duty.get('subject') }}" -) +) div.list-itemtype-avatar(ng-if="::vm.duty.get('assigned_to_extra_info')") img( ng-src="{{ ::vm.duty.get('assigned_to_extra_info').get('photo') }}" @@ -9,7 +9,7 @@ a.list-itemtype-ticket( ) div.list-itemtype-avatar(ng-if="::!vm.duty.get('assigned_to_extra_info')") img( - src="/images/unnamed.png" + src="/#{v}/images/unnamed.png" title="{{'ACTIVITY.VALUES.UNASSIGNED' | translate}}" ) div.list-itemtype-ticket-data @@ -17,7 +17,7 @@ a.list-itemtype-ticket( span.ticket-project {{ ::vm.duty.get('projectName')}} span.ticket-type {{ ::vm.getDutyType() }} span.ticket-status(ng-style="{'color': vm.duty.get('status_extra_info').get('color')}") {{ ::vm.duty.get('status_extra_info').get('name') }} - + h2 span.ticket-id(tg-bo-ref="duty.get('ref')") span.ticket-title {{ ::duty.get('subject') }} diff --git a/app/modules/profile/profile-contacts/profile-contacts.jade b/app/modules/profile/profile-contacts/profile-contacts.jade index 49a79f62..08ffe638 100644 --- a/app/modules/profile/profile-contacts/profile-contacts.jade +++ b/app/modules/profile/profile-contacts/profile-contacts.jade @@ -1,7 +1,7 @@ section.profile-contacts div(ng-if="vm.contacts === undefined") div.spin - img(src="/svg/spinner-circle.svg", alt="Loading...") + img(src="/#{v}/svg/spinner-circle.svg", alt="Loading...") div.empty-tab(ng-if="vm.contacts && !vm.contacts.size") include ../../../svg/hide.svg diff --git a/app/modules/profile/profile-favs/items/ticket.jade b/app/modules/profile/profile-favs/items/ticket.jade index f8051bc4..a55ec8d0 100644 --- a/app/modules/profile/profile-favs/items/ticket.jade +++ b/app/modules/profile/profile-favs/items/ticket.jade @@ -16,7 +16,7 @@ div.list-itemtype-ticket title="{{ 'COMMON.ASSIGNED_TO.NOT_ASSIGNED'|translate }}" ) img( - src="/images/unnamed.png", + src="/#{v}/images/unnamed.png", alt="{{ 'COMMON.ASSIGNED_TO.NOT_ASSIGNED'|translate }}" ) diff --git a/app/modules/profile/profile-favs/profile-favs.jade b/app/modules/profile/profile-favs/profile-favs.jade index 38d976e3..7ce66060 100644 --- a/app/modules/profile/profile-favs/profile-favs.jade +++ b/app/modules/profile/profile-favs/profile-favs.jade @@ -68,13 +68,13 @@ section.profile-favs div(ng-if="vm.isLoading") div.spin img( - src="/svg/spinner-circle.svg" + src="/#{v}/svg/spinner-circle.svg" alt="{{ 'COMMON.LOADING'|translate }}" ) .empty-search-results(ng-if="vm.hasNoResults && !vm.isLoading") img( - src="../../images/search-empty.png" + src="/#{v}/images/search-empty.png" alt="{{ 'USER.PROFILE_FAVS.EMPTY_TITLE' | translate }}" ) p.title {{ 'USER.PROFILE_FAVS.EMPTY_TITLE' | translate }} diff --git a/app/modules/profile/profile-projects/profile-projects.jade b/app/modules/profile/profile-projects/profile-projects.jade index c9d10a0f..3d4e8b2c 100644 --- a/app/modules/profile/profile-projects/profile-projects.jade +++ b/app/modules/profile/profile-projects/profile-projects.jade @@ -1,7 +1,7 @@ section.profile-projects div(ng-if="vm.projects === undefined") div.spin - img(src="/svg/spinner-circle.svg", alt="Loading...") + img(src="/#{v}/svg/spinner-circle.svg", alt="Loading...") .empty-tab(ng-if="vm.projects && !vm.projects.size") include ../../../svg/hide.svg diff --git a/app/modules/profile/styles/profile-bar.scss b/app/modules/profile/styles/profile-bar.scss index 6cb27072..265fafe9 100644 --- a/app/modules/profile/styles/profile-bar.scss +++ b/app/modules/profile/styles/profile-bar.scss @@ -149,7 +149,7 @@ .profile-quote { @extend %light; @extend %large; - background: url('/images/quote.png') no-repeat top left; + background: url('../images/quote.png') no-repeat top left; line-height: 1.4; padding: .5rem; } diff --git a/app/modules/services/app-meta.service.coffee b/app/modules/services/app-meta.service.coffee index 7c5ae20e..ef84f20d 100644 --- a/app/modules/services/app-meta.service.coffee +++ b/app/modules/services/app-meta.service.coffee @@ -68,14 +68,14 @@ class AppMetaService @._set("twitter:site", "@taigaio") @._set("twitter:title", title) @._set("twitter:description", truncate(description, 300)) - @._set("twitter:image", "#{window.location.origin}/images/logo-color.png") + @._set("twitter:image", "#{window.location.origin}/#{window._version}/images/logo-color.png") setOpenGraphMetas: (title, description) -> @._set("og:type", "object") @._set("og:site_name", "Taiga - Love your projects") @._set("og:title", title) @._set("og:description", truncate(description, 300)) - @._set("og:image", "#{window.location.origin}/images/logo-color.png") + @._set("og:image", "#{window.location.origin}/#{window._version}/images/logo-color.png") @._set("og:url", window.location.href) setAll: (title, description) -> diff --git a/app/modules/services/app-meta.service.spec.coffee b/app/modules/services/app-meta.service.spec.coffee index a8ae97ea..abbd046e 100644 --- a/app/modules/services/app-meta.service.spec.coffee +++ b/app/modules/services/app-meta.service.spec.coffee @@ -30,6 +30,9 @@ describe "AppMetaService", -> appMetaService = _tgAppMetaService_ $rootScope = _$rootScope_ + before -> + window._version = 1 + beforeEach -> module "taigaCommon" _inject() @@ -48,7 +51,7 @@ describe "AppMetaService", -> expect($("meta[name='twitter:site']")).to.have.attr("content", "@taigaio") expect($("meta[name='twitter:title']")).to.have.attr("content", data.title) expect($("meta[name='twitter:description']")).to.have.attr("content", data.description) - expect($("meta[name='twitter:image']")).to.have.attr("content", "#{window.location.origin}/images/logo-color.png") + expect($("meta[name='twitter:image']")).to.have.attr("content", "#{window.location.origin}/#{window._version}/images/logo-color.png") it "set meta for open graph", () -> appMetaService.setOpenGraphMetas(data.title, data.description) @@ -56,7 +59,7 @@ describe "AppMetaService", -> expect($("meta[property='og:site_name']")).to.have.attr("content", "Taiga - Love your projects") expect($("meta[property='og:title']")).to.have.attr("content", data.title) expect($("meta[property='og:description']")).to.have.attr("content", data.description) - expect($("meta[property='og:image']")).to.have.attr("content", "#{window.location.origin}/images/logo-color.png") + expect($("meta[property='og:image']")).to.have.attr("content", "#{window.location.origin}/#{window._version}/images/logo-color.png") expect($("meta[property='og:url']")).to.have.attr("content", window.location.href) it "set all meta", () -> @@ -67,12 +70,12 @@ describe "AppMetaService", -> expect($("meta[name='twitter:site']")).to.have.attr("content", "@taigaio") expect($("meta[name='twitter:title']")).to.have.attr("content", data.title) expect($("meta[name='twitter:description']")).to.have.attr("content", data.description) - expect($("meta[name='twitter:image']")).to.have.attr("content", "#{window.location.origin}/images/logo-color.png") + expect($("meta[name='twitter:image']")).to.have.attr("content", "#{window.location.origin}/#{window._version}/images/logo-color.png") expect($("meta[property='og:type']")).to.have.attr("content", "object") expect($("meta[property='og:site_name']")).to.have.attr("content", "Taiga - Love your projects") expect($("meta[property='og:title']")).to.have.attr("content", data.title) expect($("meta[property='og:description']")).to.have.attr("content", data.description) - expect($("meta[property='og:image']")).to.have.attr("content", "#{window.location.origin}/images/logo-color.png") + expect($("meta[property='og:image']")).to.have.attr("content", "#{window.location.origin}/#{window._version}/images/logo-color.png") expect($("meta[property='og:url']")).to.have.attr("content", window.location.href) it "set function to set the metas", () -> diff --git a/app/modules/user-timeline/user-timeline-item/user-timeline-item.jade b/app/modules/user-timeline/user-timeline-item/user-timeline-item.jade index e37c1dca..38a492ee 100644 --- a/app/modules/user-timeline/user-timeline-item/user-timeline-item.jade +++ b/app/modules/user-timeline/user-timeline-item/user-timeline-item.jade @@ -7,10 +7,10 @@ div.activity-item // profile image with url div.profile-contact-picture(ng-if="timeline.getIn(['data', 'user', 'is_profile_visible'])") a(tg-nav="user-profile:username=timeline.getIn(['data', 'user', 'username'])", title="{{::timeline.getIn(['data', 'user', 'name']) }}") - img(ng-src="{{::timeline.getIn(['data', 'user', 'photo']) || '/images/user-noimage.png'}}", alt="{{::timeline.getIn(['data', 'user', 'name'])}}") + img(ng-src="{{::timeline.getIn(['data', 'user', 'photo']) || '/#{v}/images/user-noimage.png'}}", alt="{{::timeline.getIn(['data', 'user', 'name'])}}") // profile image without url div.profile-contact-picture(ng-if="!timeline.getIn(['data', 'user', 'is_profile_visible'])") - img(ng-src="{{::timeline.getIn(['data', 'user', 'photo']) || '/images/user-noimage.png'}}", alt="{{::timeline.getIn(['data', 'user', 'name'])}}") + img(ng-src="{{::timeline.getIn(['data', 'user', 'photo']) || '/#{v}/images/user-noimage.png'}}", alt="{{::timeline.getIn(['data', 'user', 'name'])}}") p(tg-compile-html="timeline.get('title_html')") diff --git a/app/modules/user-timeline/user-timeline/user-timeline.jade b/app/modules/user-timeline/user-timeline/user-timeline.jade index c4ebca16..35c59719 100644 --- a/app/modules/user-timeline/user-timeline/user-timeline.jade +++ b/app/modules/user-timeline/user-timeline/user-timeline.jade @@ -1,7 +1,7 @@ section.profile-timeline div(ng-if="!vm.timelineList.size") div.spin - img(src="/svg/spinner-circle.svg", alt="Loading...") + img(src="/#{v}/svg/spinner-circle.svg", alt="Loading...") div(infinite-scroll="vm.loadTimeline()", infinite-scroll-distance="3", infinite-scroll-disabled="vm.scrollDisabled") div(tg-repeat="timeline in vm.timelineList", tg-user-timeline-item="timeline") diff --git a/app/partials/admin/admin-project-export.jade b/app/partials/admin/admin-project-export.jade index eb68dc5e..04fd1af4 100644 --- a/app/partials/admin/admin-project-export.jade +++ b/app/partials/admin/admin-project-export.jade @@ -21,7 +21,7 @@ div.wrapper(ng-controller="ProjectProfileController as ctrl", div.admin-project-export-result.hidden div.spin.hidden - img(src="/svg/spinner-circle.svg", alt="{{ 'COMMON.LOADING' | translate }}") + img(src="/#{v}/svg/spinner-circle.svg", alt="{{ 'COMMON.LOADING' | translate }}") h3.result-title p.result-message diff --git a/app/partials/backlog/backlog.jade b/app/partials/backlog/backlog.jade index 50bcb97f..b55788b4 100644 --- a/app/partials/backlog/backlog.jade +++ b/app/partials/backlog/backlog.jade @@ -55,7 +55,7 @@ div.wrapper(tg-backlog, ng-controller="BacklogController as ctrl", tg-backlog-empty-sortable ) img( - src="/images/backlog-empty.png" + src="/#{v}/images/backlog-empty.png" alt="{{'BACKLOG.EMPTY' | translate}}" ) p.title(translate="BACKLOG.EMPTY") diff --git a/app/partials/error/error.jade b/app/partials/error/error.jade index 39629937..0a875204 100644 --- a/app/partials/error/error.jade +++ b/app/partials/error/error.jade @@ -3,7 +3,7 @@ doctype html div.error-main div.error-container object.logo-svg(type="image/svg+xml", data="/svg/logo.svg") - img(src="/images/logo.png", alt="TAIGA") + img(src="/#{v}/images/logo.png", alt="TAIGA") h1.logo Taiga p.error-text(translate="ERROR.TEXT1") a(href="/", title="", translate="COMMON.GO_HOME") diff --git a/app/partials/error/not-found.jade b/app/partials/error/not-found.jade index 12172038..4470a474 100644 --- a/app/partials/error/not-found.jade +++ b/app/partials/error/not-found.jade @@ -2,8 +2,8 @@ doctype html div.error-main div.error-container - object.logo-svg(type="image/svg+xml", data="/svg/logo.svg") - img(src="/images/logo.png", alt="TAIGA") + object.logo-svg(type="image/svg+xml", data="/#{v}/svg/logo.svg") + img(src="/#{v}/images/logo.png", alt="TAIGA") h1.logo(translate="ERROR.NOT_FOUND") p.error-text(translate="ERROR.NOT_FOUND_TEXT") a(href="/", title="", translate="COMMON.GO_HOME") diff --git a/app/partials/error/permission-denied.jade b/app/partials/error/permission-denied.jade index 12869f63..fa1333fc 100644 --- a/app/partials/error/permission-denied.jade +++ b/app/partials/error/permission-denied.jade @@ -3,7 +3,7 @@ doctype html div.error-main div.error-container object.logo-svg(type="image/svg+xml", data="/svg/logo.svg") - img(src="/images/logo.png", alt="TAIGA") + img(src="/#{v}/images/logo.png", alt="TAIGA") h1.logo(translate="ERROR.PERMISSION_DENIED") p.error-text(translate="ERROR.PERMISSION_DENIED_TEXT") a(href="/", title="", translate="COMMON.GO_HOME") diff --git a/app/partials/includes/components/beta.jade b/app/partials/includes/components/beta.jade index a82f61ed..647d2108 100644 --- a/app/partials/includes/components/beta.jade +++ b/app/partials/includes/components/beta.jade @@ -1 +1 @@ -img.beta(src="/images/beta.png", title="{{'COMMON.BETA' | translate}}") +img.beta(src="/#{v}/images/beta.png", title="{{'COMMON.BETA' | translate}}") diff --git a/app/partials/includes/components/empty-search-results.jade b/app/partials/includes/components/empty-search-results.jade index be261c6c..f3248bd3 100644 --- a/app/partials/includes/components/empty-search-results.jade +++ b/app/partials/includes/components/empty-search-results.jade @@ -1,5 +1,5 @@ img( - src="../../images/search-empty.png" + src="/#{v}/images/search-empty.png" alt="{{ 'SEARCH.EMPTY_TITLE' | translate }}" ) p.title {{ 'SEARCH.EMPTY_TITLE' | translate }} diff --git a/app/partials/includes/modules/issues-table.jade b/app/partials/includes/modules/issues-table.jade index f696730d..ddf6ada0 100644 --- a/app/partials/includes/modules/issues-table.jade +++ b/app/partials/includes/modules/issues-table.jade @@ -53,7 +53,7 @@ section.issues-table.basic-table(ng-class="{empty: !issues.length}") section.empty-issues(ng-if="issues != undefined && issues.length == 0") img( - src="../../images/issues-empty.png", + src="/#{v}/images/issues-empty.png", alt="{{ISSUES.TABLE.EMPTY.TITLE | translate }}" ) p.title(translate="ISSUES.TABLE.EMPTY.TITLE") diff --git a/app/partials/includes/modules/lightbox-generic-loading.jade b/app/partials/includes/modules/lightbox-generic-loading.jade index 95d01cac..05c280d9 100644 --- a/app/partials/includes/modules/lightbox-generic-loading.jade +++ b/app/partials/includes/modules/lightbox-generic-loading.jade @@ -2,7 +2,7 @@ section div.spin.hidden - img(src="/svg/spinner-circle.svg", alt="{{'COMMON.LOADING' | translate}}") + img(src="/#{v}/svg/spinner-circle.svg", alt="{{'COMMON.LOADING' | translate}}") div.progress-bar-wrapper.hidden div.bar diff --git a/app/partials/includes/modules/sprints.jade b/app/partials/includes/modules/sprints.jade index d333e52d..2e1b163f 100644 --- a/app/partials/includes/modules/sprints.jade +++ b/app/partials/includes/modules/sprints.jade @@ -17,7 +17,7 @@ section.sprints div.sprints-empty(ng-if="totalMilestones === 0") img( - src="/images/sprint-empty.png" + src="/#{v}/images/sprint-empty.png" alt="{{'BACKLOG.SPRINTS.EMPTY' | translate}}" ) p.title(translate="BACKLOG.SPRINTS.EMPTY") diff --git a/app/partials/user/user-profile.jade b/app/partials/user/user-profile.jade index 4e60adf1..40f0abb8 100644 --- a/app/partials/user/user-profile.jade +++ b/app/partials/user/user-profile.jade @@ -19,7 +19,7 @@ div.wrapper(tg-user-profile, ng-controller="UserSettingsController as ctrl", img.avatar(ng-src="{{user.big_photo}}" alt="avatar") .overlay.hidden img.loading-spinner( - src="/svg/spinner-circle.svg", + src="/#{v}/svg/spinner-circle.svg", alt="{{'COMMON.LOADING' | translate}}" ) diff --git a/app/themes/taiga/variables.scss b/app/themes/taiga/variables.scss index 96d36e86..2eb4144b 100755 --- a/app/themes/taiga/variables.scss +++ b/app/themes/taiga/variables.scss @@ -63,11 +63,11 @@ $dropdown-color: rgba(darken($grayer, 20%), 1); // Background images %triangled-bg { - background: url('/images/bg.png') no-repeat center center; + background: url('../images/bg.png') no-repeat center center; background-size: cover; } %background-taiga { - background: url('/images/invitation_bg.jpg') no-repeat center center; + background: url('../images/invitation_bg.jpg') no-repeat center center; background-size: cover; } diff --git a/gulpfile.js b/gulpfile.js index fda87eff..5b81c483 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -37,9 +37,12 @@ if (argv.theme) { themes.set(argv.theme); } +var version = "v-" + Date.now(); + var paths = {}; paths.app = "app/"; paths.dist = "dist/"; +paths.distVersion = paths.dist + version + "/"; paths.tmp = "tmp/"; paths.extras = "extras/"; paths.vendor = "vendor/"; @@ -190,7 +193,7 @@ gulp.task("jade", function() { return gulp.src(paths.jade) .pipe(plumber()) .pipe(cached("jade")) - .pipe(jade({pretty: true, locals:{v:(new Date()).getTime()}})) + .pipe(jade({pretty: true, locals:{v:version}})) .pipe(gulp.dest(paths.tmp)); }); @@ -199,7 +202,7 @@ gulp.task("jade-inheritance", function() { .pipe(plumber()) .pipe(cached("jade")) .pipe(jadeInheritance({basedir: "./app/"})) - .pipe(jade({pretty: true, locals:{v:(new Date()).getTime()}})) + .pipe(jade({pretty: true, locals:{v: version}})) .pipe(gulp.dest(paths.tmp)); }); @@ -211,7 +214,7 @@ gulp.task("copy-index", function() { gulp.task("template-cache", function() { return gulp.src(paths.htmlPartials) .pipe(templateCache({standalone: true})) - .pipe(gulp.dest(paths.dist + "js/")); + .pipe(gulp.dest(paths.distVersion + "js/")); }); gulp.task("jade-deploy", function(cb) { @@ -316,7 +319,7 @@ gulp.task("main-css", function() { return gulp.src(_paths) .pipe(concat("theme-" + themes.current.name + ".css")) .pipe(gulpif(isDeploy, minifyCSS({noAdvanced: true}))) - .pipe(gulp.dest(paths.dist + "styles/")); + .pipe(gulp.dest(paths.distVersion + "styles/")); }); var compileThemes = function (cb) { @@ -365,19 +368,19 @@ gulp.task("styles-dependencies", function(cb) { */ gulp.task("conf", function() { return gulp.src(["conf/conf.example.json"]) - .pipe(gulp.dest(paths.dist + "js/")); + .pipe(gulp.dest(paths.dist)); }); gulp.task("app-loader", function() { return gulp.src("app-loader/app-loader.coffee") - .pipe(replace("___VERSION___", (new Date()).getTime())) + .pipe(replace("___VERSION___", version)) .pipe(coffee()) - .pipe(gulp.dest(paths.dist + "js/")); + .pipe(gulp.dest(paths.distVersion + "js/")); }); gulp.task("locales", function() { return gulp.src(paths.locales) - .pipe(gulp.dest(paths.dist + "locales")); + .pipe(gulp.dest(paths.distVersion + "locales")); }); gulp.task("coffee-lint", function () { @@ -412,14 +415,14 @@ gulp.task("coffee", function() { }) .pipe(concat("app.js")) .pipe(sourcemaps.write('./maps')) - .pipe(gulp.dest(paths.dist + "js/")); + .pipe(gulp.dest(paths.distVersion + "js/")); }); gulp.task("jslibs-watch", function() { return gulp.src(paths.libs) .pipe(plumber()) .pipe(concat("libs.js")) - .pipe(gulp.dest(paths.dist + "js/")); + .pipe(gulp.dest(paths.distVersion + "js/")); }); gulp.task("jslibs-deploy", function() { @@ -429,19 +432,17 @@ gulp.task("jslibs-deploy", function() { .pipe(concat("libs.js")) .pipe(uglify({mangle:false, preserveComments: false})) .pipe(sourcemaps.write("./maps")) - .pipe(gulp.dest(paths.dist + "js/")); + .pipe(gulp.dest(paths.distVersion + "js/")); }); gulp.task("app-watch", ["coffee-lint", "coffee", "conf", "locales", "app-loader"]); gulp.task("app-deploy", ["coffee", "conf", "locales", "app-loader"], function() { - return gulp.src(paths.dist) - .pipe(order(paths.coffee_order, {base: '.'})) + return gulp.src(paths.distVersion + "js/app.js") .pipe(sourcemaps.init()) - .pipe(concat("app.js")) .pipe(uglify({mangle:false, preserveComments: false})) .pipe(sourcemaps.write("./maps")) - .pipe(gulp.dest(paths.dist + "js/")); + .pipe(gulp.dest(paths.distVersion + "js/")); }); /* @@ -456,45 +457,45 @@ gulp.task("clear", ["clear-sass-cache"], function(done) { //SVG gulp.task("copy-svg", function() { return gulp.src(paths.app + "/svg/**/*") - .pipe(gulp.dest(paths.dist + "/svg/")); + .pipe(gulp.dest(paths.distVersion + "/svg/")); }); gulp.task("copy-theme-svg", function() { return gulp.src(themes.current.path + "/svg/**/*") - .pipe(gulp.dest(paths.dist + "/svg/" + themes.current.name)); + .pipe(gulp.dest(paths.distVersion + "/svg/" + themes.current.name)); }); gulp.task("copy-fonts", function() { return gulp.src(paths.app + "/fonts/*") - .pipe(gulp.dest(paths.dist + "/fonts/")); + .pipe(gulp.dest(paths.distVersion + "/fonts/")); }); gulp.task("copy-theme-fonts", function() { return gulp.src(themes.current.path + "/fonts/*") - .pipe(gulp.dest(paths.dist + "/fonts/" + themes.current.name)); + .pipe(gulp.dest(paths.distVersion + "/fonts/" + themes.current.name)); }); gulp.task("copy-images", function() { return gulp.src(paths.app + "/images/**/*") .pipe(gulpif(isDeploy, imagemin({progressive: true}))) - .pipe(gulp.dest(paths.dist + "/images/")); + .pipe(gulp.dest(paths.distVersion + "/images/")); }); gulp.task("copy-theme-images", function() { return gulp.src(themes.current.path + "/images/**/*") .pipe(gulpif(isDeploy, imagemin({progressive: true}))) - .pipe(gulp.dest(paths.dist + "/images/" + themes.current.name)); + .pipe(gulp.dest(paths.distVersion + "/images/" + themes.current.name)); }); gulp.task("copy-images-plugins", function() { return gulp.src(paths.app + "/plugins/**/images/*") .pipe(flatten()) - .pipe(gulp.dest(paths.dist + "/images/")); + .pipe(gulp.dest(paths.distVersion + "/images/")); }); gulp.task("copy-plugin-templates", function() { return gulp.src(paths.app + "/plugins/**/templates/**/*.html") - .pipe(gulp.dest(paths.dist + "/plugins/")); + .pipe(gulp.dest(paths.distVersion + "/plugins/")); }); gulp.task("copy-extras", function() { @@ -514,6 +515,10 @@ gulp.task("copy", [ "copy-extras" ]); +gulp.task("delete-old-version", function() { + del.sync(paths.dist + "v-*"); +}); + gulp.task("delete-tmp", function() { del.sync(paths.tmp); }); @@ -522,15 +527,16 @@ gulp.task("express", function() { var express = require("express"); var app = express(); - app.use("/js", express.static(__dirname + "/dist/js")); - app.use("/styles", express.static(__dirname + "/dist/styles")); - app.use("/images", express.static(__dirname + "/dist/images")); - app.use("/svg", express.static(__dirname + "/dist/svg")); - app.use("/partials", express.static(__dirname + "/dist/partials")); - app.use("/fonts", express.static(__dirname + "/dist/fonts")); - app.use("/plugins", express.static(__dirname + "/dist/plugins")); - app.use("/locales", express.static(__dirname + "/dist/locales")); - app.use("/maps", express.static(__dirname + "/dist/maps")); + app.use("/" + version + "/js", express.static(__dirname + "/dist/" + version + "/js")); + app.use("/" + version + "/styles", express.static(__dirname + "/dist/" + version + "/styles")); + app.use("/" + version + "/images", express.static(__dirname + "/dist/" + version + "/images")); + app.use("/" + version + "/svg", express.static(__dirname + "/dist/" + version + "/svg")); + app.use("/" + version + "/partials", express.static(__dirname + "/dist/" + version + "/partials")); + app.use("/" + version + "/fonts", express.static(__dirname + "/dist/" + version + "/fonts")); + app.use("/" + version + "/plugins", express.static(__dirname + "/dist/" + version + "/plugins")); + app.use("/" + version + "/locales", express.static(__dirname + "/dist/" + version + "/locales")); + app.use("/" + version + "/maps", express.static(__dirname + "/dist/" + version + "/maps")); + app.use("/conf.json", express.static(__dirname + "/dist/conf.json")); app.all("/*", function(req, res, next) { //Just send the index.html for other files to support HTML5Mode @@ -554,7 +560,7 @@ gulp.task("watch", function() { }); gulp.task("deploy", function(cb) { - runSequence("clear", "delete-tmp", [ + runSequence("clear", "delete-old-version", "delete-tmp", [ "copy", "jade-deploy", "app-deploy", @@ -564,7 +570,7 @@ gulp.task("deploy", function(cb) { }); //The default task (called when you run gulp from cli) gulp.task("default", function(cb) { - runSequence("delete-tmp", [ + runSequence("delete-old-version", "delete-tmp", [ "copy", "styles", "app-watch", diff --git a/karma.conf.js b/karma.conf.js index f60b812e..4e24c1ec 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -2,9 +2,6 @@ // Generated on Wed Apr 15 2015 09:44:14 GMT+0200 (CEST) // this is needed by theme.service.spec -var fs = require('fs'); -fs.writeFileSync('dist/styles/empty.css', ''); - module.exports = function(config) { var configuration = { @@ -20,7 +17,7 @@ module.exports = function(config) { // list of files / patterns to load in the browser files: [ 'karma.app.conf.js', - 'dist/js/libs.js', + 'dist/**/js/libs.js', 'node_modules/angular-mocks/angular-mocks.js', 'vendor/bluebird/js/browser/bluebird.js', 'node_modules/chai-jquery/chai-jquery.js', @@ -28,8 +25,8 @@ module.exports = function(config) { 'vendor/lodash/dist/lodash.js', 'vendor/underscore.string/lib/underscore.string.js', 'test-utils.js', - 'dist/js/app.js', - 'dist/js/templates.js', + 'dist/**/js/app.js', + 'dist/**/js/templates.js', 'app/**/*spec.coffee' ], @@ -96,8 +93,7 @@ module.exports = function(config) { proxies: { '/images/': 'http://localhost:9001/images/', '/base/dist/js/maps/': 'http://localhost:9001/js/maps/', - '/base/dist/js/maps/': 'http://localhost:9001/js/maps/', - '/styles/theme-testTheme.css': 'http://localhost:9001/styles/empty.css' + '/base/dist/js/maps/': 'http://localhost:9001/js/maps/' }, // Continuous Integration mode From 1c003b106e319052b2e9390d4f3580c2c9bafc8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Thu, 19 Nov 2015 12:46:40 +0100 Subject: [PATCH 039/100] Update CHANGELOG --- CHANGELOG.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f244e0b7..dd019d3a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,14 @@ # Changelog # + ## 1.10.0 ??? (unreleased) -- Statics folder hash +- [118n] Now taiga plugins can be translatable. + +### Misc +- Statics folder hash to prevent cache problems when a new version is released. +- Implement websockets heartbeat messages system for taiga-events. +- Lots of small and not so small bugfixes. + ## 1.9.0 Abies Siberica (2015-11-XX) From 805c688055d81c5fac5c7fb7ff3fcb6b022fca17 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Tue, 24 Nov 2015 09:08:09 +0100 Subject: [PATCH 040/100] fix error page logo path --- app/partials/error/error.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/partials/error/error.jade b/app/partials/error/error.jade index 0a875204..7e8fea99 100644 --- a/app/partials/error/error.jade +++ b/app/partials/error/error.jade @@ -2,7 +2,7 @@ doctype html div.error-main div.error-container - object.logo-svg(type="image/svg+xml", data="/svg/logo.svg") + object.logo-svg(type="image/svg+xml", data="/#{v}/svg/logo.svg") img(src="/#{v}/images/logo.png", alt="TAIGA") h1.logo Taiga p.error-text(translate="ERROR.TEXT1") From de6f60b52ee775451a2b5e520a9d4fd5c24270ec Mon Sep 17 00:00:00 2001 From: Juanfran Date: Wed, 25 Nov 2015 08:58:56 +0100 Subject: [PATCH 041/100] livereload --- gulpfile.js | 12 ++++++++++-- package.json | 2 ++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 5b81c483..dc315a28 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -25,6 +25,7 @@ var gulp = require("gulp"), order = require("gulp-order"), print = require('gulp-print'), del = require("del"), + livereload = require('gulp-livereload'), coffeelint = require('gulp-coffeelint'); var argv = require('minimist')(process.argv.slice(2)); @@ -319,7 +320,8 @@ gulp.task("main-css", function() { return gulp.src(_paths) .pipe(concat("theme-" + themes.current.name + ".css")) .pipe(gulpif(isDeploy, minifyCSS({noAdvanced: true}))) - .pipe(gulp.dest(paths.distVersion + "styles/")); + .pipe(gulp.dest(paths.distVersion + "styles/")) + .pipe(livereload()); }); var compileThemes = function (cb) { @@ -415,7 +417,8 @@ gulp.task("coffee", function() { }) .pipe(concat("app.js")) .pipe(sourcemaps.write('./maps')) - .pipe(gulp.dest(paths.distVersion + "js/")); + .pipe(gulp.dest(paths.distVersion + "js/")) + .pipe(livereload()); }); gulp.task("jslibs-watch", function() { @@ -537,6 +540,9 @@ gulp.task("express", function() { app.use("/" + version + "/locales", express.static(__dirname + "/dist/" + version + "/locales")); app.use("/" + version + "/maps", express.static(__dirname + "/dist/" + version + "/maps")); app.use("/conf.json", express.static(__dirname + "/dist/conf.json")); + app.use(require('connect-livereload')({ + port: 35729 + })); app.all("/*", function(req, res, next) { //Just send the index.html for other files to support HTML5Mode @@ -548,6 +554,8 @@ gulp.task("express", function() { //Rerun the task when a file changes gulp.task("watch", function() { + livereload.listen(); + gulp.watch(paths.jade, ["jade-watch"]); gulp.watch(paths.sass_watch, ["styles"]); gulp.watch(paths.styles_dependencies, ["styles-dependencies"]); diff --git a/package.json b/package.json index 8cf379ce..7915488d 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "chai-jquery": "^2.0.0", "cli-color": "^1.0.0", "coffee-script": "^1.9.1", + "connect-livereload": "^0.5.4", "del": "^2.0.2", "express": "^4.12.0", "glob": "^5.0.14", @@ -47,6 +48,7 @@ "gulp-insert": "^0.5.0", "gulp-jade": "^1.0.0", "gulp-jade-inheritance": "0.5.3", + "gulp-livereload": "^3.8.1", "gulp-minify-css": "^0.4.6", "gulp-order": "^1.1.1", "gulp-plumber": "^1.0.1", From 4831b9f5d7d26e486e10f34f31698153814e1872 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Thu, 26 Nov 2015 08:02:41 +0100 Subject: [PATCH 042/100] fix change theme --- app/modules/services/theme.service.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/modules/services/theme.service.coffee b/app/modules/services/theme.service.coffee index 205a396d..ae4c7b17 100644 --- a/app/modules/services/theme.service.coffee +++ b/app/modules/services/theme.service.coffee @@ -28,7 +28,7 @@ class ThemeService extends taiga.Service = -> stylesheetEl = $("") $("head").append(stylesheetEl) - stylesheetEl.attr("href", "/styles/theme-#{themeName}.css") + stylesheetEl.attr("href", "/#{window._version}/styles/theme-#{themeName}.css") angular.module("taigaCommon").service("tgThemeService", ThemeService) From 86a2d713b54317f7896125a9cb6b2039128c95fc Mon Sep 17 00:00:00 2001 From: Juanfran Date: Thu, 26 Nov 2015 08:12:57 +0100 Subject: [PATCH 043/100] add version testing in theme.service --- app/modules/services/theme.service.spec.coffee | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/modules/services/theme.service.spec.coffee b/app/modules/services/theme.service.spec.coffee index f2529504..868dc183 100644 --- a/app/modules/services/theme.service.spec.coffee +++ b/app/modules/services/theme.service.spec.coffee @@ -32,5 +32,6 @@ describe "ThemeService", -> _inject() it "use a test theme", () -> + window._version = '123' themeService.use(data.theme) - expect($("link[rel='stylesheet']")).to.have.attr("href", "/styles/theme-#{data.theme}.css") + expect($("link[rel='stylesheet']")).to.have.attr("href", "/123/styles/theme-#{data.theme}.css") From 4ca973056277879c4c5c6965dcc9afd08e771683 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Thu, 26 Nov 2015 08:34:57 +0100 Subject: [PATCH 044/100] fix issue #3514 - custom theme as default --- app/coffee/modules/auth.coffee | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/coffee/modules/auth.coffee b/app/coffee/modules/auth.coffee index 5bf83c00..d2d3639c 100644 --- a/app/coffee/modules/auth.coffee +++ b/app/coffee/modules/auth.coffee @@ -44,9 +44,9 @@ class AuthService extends taiga.Service @themeService) -> super() - @._currentTheme = @config.get("defaultTheme") || "taiga" # load on index.jade - userModel = @.getUser() + @._currentTheme = @._getUserTheme() + @.setUserdata(userModel) setUserdata: (userModel) -> @@ -57,7 +57,7 @@ class AuthService extends taiga.Service @.userData = null _getUserTheme: -> - return @rootscope.user?.theme || @config.get("defaultTheme") || "taiga" + return @rootscope.user?.theme || @config.get("defaultTheme") || "taiga" # load on index.jade _setTheme: -> newTheme = @._getUserTheme() @@ -84,6 +84,8 @@ class AuthService extends taiga.Service @._setTheme() return user + else + @._setTheme() return null From 2d68bb70a2584912d36e3126901dabeb86c958f0 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Thu, 26 Nov 2015 10:01:34 +0100 Subject: [PATCH 045/100] fix chinease translation --- app/locales/taiga/locale-zh-hant.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/locales/taiga/locale-zh-hant.json b/app/locales/taiga/locale-zh-hant.json index ce9639a9..97dd265f 100644 --- a/app/locales/taiga/locale-zh-hant.json +++ b/app/locales/taiga/locale-zh-hant.json @@ -901,7 +901,7 @@ "DELETED_ATTACHMENT": "已刪除附件", "UPDATED_ATTACHMENT": "更新附件 {{filename}}", "DELETED_CUSTOM_ATTRIBUTE": "刪除客製屬性", - "SIZE_CHANGE": "使 {size, plural, one{change} 其它{changes}}", + "SIZE_CHANGE": "使 {size, plural, one{更改} other{變化}}", "VALUES": { "YES": "yes", "NO": "no", @@ -1409,4 +1409,4 @@ } } } -} \ No newline at end of file +} From 2763a62f73135837cf5bcc5cdc9c008ac78032a3 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Thu, 26 Nov 2015 12:03:45 +0100 Subject: [PATCH 046/100] add jade to livereload --- gulpfile.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gulpfile.js b/gulpfile.js index dc315a28..4f71ee31 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -26,6 +26,7 @@ var gulp = require("gulp"), print = require('gulp-print'), del = require("del"), livereload = require('gulp-livereload'), + gulpFilter = require('gulp-filter'), coffeelint = require('gulp-coffeelint'); var argv = require('minimist')(process.argv.slice(2)); @@ -215,7 +216,8 @@ gulp.task("copy-index", function() { gulp.task("template-cache", function() { return gulp.src(paths.htmlPartials) .pipe(templateCache({standalone: true})) - .pipe(gulp.dest(paths.distVersion + "js/")); + .pipe(gulp.dest(paths.distVersion + "js/")) + .pipe(gulpif(!isDeploy, livereload())); }); gulp.task("jade-deploy", function(cb) { @@ -407,6 +409,8 @@ gulp.task("coffee-lint", function () { }); gulp.task("coffee", function() { + var filter = gulpFilter(['*', '!*.map']); + return gulp.src(paths.coffee) .pipe(order(paths.coffee_order, {base: '.'})) .pipe(sourcemaps.init()) @@ -418,6 +422,7 @@ gulp.task("coffee", function() { .pipe(concat("app.js")) .pipe(sourcemaps.write('./maps')) .pipe(gulp.dest(paths.distVersion + "js/")) + .pipe(filter) .pipe(livereload()); }); From 08c7f83df6944061ccc23b256f4c6f8b70b355c8 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Thu, 26 Nov 2015 12:34:09 +0100 Subject: [PATCH 047/100] remove duplicated line --- app/coffee/app.coffee | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/coffee/app.coffee b/app/coffee/app.coffee index 0bbf75d1..39ce4fd5 100644 --- a/app/coffee/app.coffee +++ b/app/coffee/app.coffee @@ -622,8 +622,6 @@ init = ($log, $rootscope, $auth, $events, $analytics, $translate, $location, $na pluginsWithModule = _.filter(@.taigaContribPlugins, (plugin) -> plugin.module) -pluginsWithModule = _.filter(@.taigaContribPlugins, (plugin) -> plugin.module) - modules = [ # Main Global Modules "taigaBase", From e07f5cef5fb33230eb13260df9be0dbd48bbbd05 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Thu, 26 Nov 2015 12:51:08 +0100 Subject: [PATCH 048/100] move plugins folder to root --- gulpfile.js | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 4f71ee31..e61692dc 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -495,15 +495,9 @@ gulp.task("copy-theme-images", function() { .pipe(gulp.dest(paths.distVersion + "/images/" + themes.current.name)); }); -gulp.task("copy-images-plugins", function() { - return gulp.src(paths.app + "/plugins/**/images/*") - .pipe(flatten()) - .pipe(gulp.dest(paths.distVersion + "/images/")); -}); - -gulp.task("copy-plugin-templates", function() { - return gulp.src(paths.app + "/plugins/**/templates/**/*.html") - .pipe(gulp.dest(paths.distVersion + "/plugins/")); +gulp.task("copy-plugins", function() { + return gulp.src(paths.app + "/plugins/**") + .pipe(gulp.dest(paths.dist + "/plugins/")); }); gulp.task("copy-extras", function() { @@ -516,8 +510,7 @@ gulp.task("copy", [ "copy-theme-fonts", "copy-images", "copy-theme-images", - "copy-images-plugins", - "copy-plugin-templates", + "copy-plugins", "copy-svg", "copy-theme-svg", "copy-extras" @@ -541,9 +534,9 @@ gulp.task("express", function() { app.use("/" + version + "/svg", express.static(__dirname + "/dist/" + version + "/svg")); app.use("/" + version + "/partials", express.static(__dirname + "/dist/" + version + "/partials")); app.use("/" + version + "/fonts", express.static(__dirname + "/dist/" + version + "/fonts")); - app.use("/" + version + "/plugins", express.static(__dirname + "/dist/" + version + "/plugins")); app.use("/" + version + "/locales", express.static(__dirname + "/dist/" + version + "/locales")); app.use("/" + version + "/maps", express.static(__dirname + "/dist/" + version + "/maps")); + app.use("/plugins", express.static(__dirname + "/dist/plugins")); app.use("/conf.json", express.static(__dirname + "/dist/conf.json")); app.use(require('connect-livereload')({ port: 35729 From aaf2a8ff0efcc94ad9810906ec2d4df5b318ef43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Thu, 26 Nov 2015 13:16:43 +0100 Subject: [PATCH 049/100] Add gulp-filter to package.json --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 7915488d..b58ec666 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,7 @@ "gulp-coffeelint": "^0.5.0", "gulp-concat": "^2.5.2", "gulp-csslint": "^0.2.0", + "gulp-filter": "^3.0.1", "gulp-flatten": "0.2.0", "gulp-if": "^2.0.0", "gulp-imagemin": "^2.2.1", From 550357469d137359c775046e223a3b468df12081 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Thu, 26 Nov 2015 14:38:25 +0100 Subject: [PATCH 050/100] fix scss-lint --- .../navigation-bar/navigation-bar.scss | 2 +- .../components/notification-message.scss | 2 +- app/styles/core/elements.scss | 2 +- app/styles/core/reset.scss | 8 +- app/styles/core/typography.scss | 108 +++++++++--------- app/styles/modules/common/nav.scss | 4 +- app/themes/high-contrast/custom.scss | 2 +- app/themes/material-design/custom.scss | 2 +- app/themes/taiga/custom.scss | 2 +- 9 files changed, 66 insertions(+), 66 deletions(-) diff --git a/app/modules/navigation-bar/navigation-bar.scss b/app/modules/navigation-bar/navigation-bar.scss index 920a1eea..469ecb8d 100644 --- a/app/modules/navigation-bar/navigation-bar.scss +++ b/app/modules/navigation-bar/navigation-bar.scss @@ -5,7 +5,7 @@ $dropdown-width: 350px; height: $navbar; justify-content: space-between; position: relative; - &:after { + &::after { background-size: 200%; bottom: 0; content: ''; diff --git a/app/styles/components/notification-message.scss b/app/styles/components/notification-message.scss index daf23d06..a0c93c13 100644 --- a/app/styles/components/notification-message.scss +++ b/app/styles/components/notification-message.scss @@ -1,6 +1,6 @@ .notification-message-success { background: rgba($primary-light, .95); - box-shadow: 0 25px 10px -15px rgba(0, 0, 0, .05); + box-shadow: 0 25px 10px -15px rgba($black, .05); opacity: 1; right: -370px; top: 2%; diff --git a/app/styles/core/elements.scss b/app/styles/core/elements.scss index 2d50b9f1..973d8346 100644 --- a/app/styles/core/elements.scss +++ b/app/styles/core/elements.scss @@ -11,7 +11,7 @@ blockquote { cite { @extend %small; display: block; - &:before { + &::before { content: '\2014 \0020'; } } diff --git a/app/styles/core/reset.scss b/app/styles/core/reset.scss index 99deddc2..1b431829 100644 --- a/app/styles/core/reset.scss +++ b/app/styles/core/reset.scss @@ -122,10 +122,10 @@ q { quotes: none; } -blockquote:before, -blockquote:after, -q:before, -q:after { +blockquote::before, +blockquote::after, +q::before, +q::after { content: ''; } diff --git a/app/styles/core/typography.scss b/app/styles/core/typography.scss index 0f450bb3..a46ed8a6 100755 --- a/app/styles/core/typography.scss +++ b/app/styles/core/typography.scss @@ -111,7 +111,7 @@ a:visited { } // Taiga Icons -[data-icon]:before { +[data-icon]::before { // scss-lint:disable ImportantRule content: attr(data-icon); @@ -126,8 +126,8 @@ a:visited { text-transform: none !important; } -[class^='icon-']:before, -[class*=' icon-']:before { +[class^='icon-']::before, +[class*=' icon-']::before { // scss-lint:disable ImportantRule font-family: 'taiga' !important; @@ -141,156 +141,156 @@ a:visited { text-transform: none !important; } -.icon-bug:before { +.icon-bug::before { content: 'a'; } -.icon-copy:before { +.icon-copy::before { content: 'b'; } -.icon-minimize:before { +.icon-minimize::before { content: 'c'; } -.icon-maximize:before { +.icon-maximize::before { content: 'd'; } -.icon-comment:before { +.icon-comment::before { content: 'e'; } -.icon-plus:before { +.icon-plus::before { content: 'f'; } -.icon-attachments:before { +.icon-attachments::before { content: 'g'; } -.icon-edit:before { +.icon-edit::before { content: 'h'; } -.icon-documents:before { +.icon-documents::before { content: 'i'; } -.icon-delete:before { +.icon-delete::before { content: 'j'; } -.icon-arrow-bottom:before { +.icon-arrow-bottom::before { content: 'k'; } -.icon-arrow-left:before { +.icon-arrow-left::before { content: 'l'; } -.icon-arrow-right:before { +.icon-arrow-right::before { content: 'm'; } -.icon-arrow-up:before { +.icon-arrow-up::before { content: 'n'; } -.icon-briefcase:before { +.icon-briefcase::before { content: 'o'; } -.icon-caret-down:before { +.icon-caret-down::before { content: 'p'; } -.icon-caret-up:before { +.icon-caret-up::before { content: 'q'; } -.icon-check-square:before { +.icon-check-square::before { content: 'r'; } -.icon-notification-error:before { +.icon-notification-error::before { content: 's'; } -.icon-settings:before { +.icon-settings::before { content: 't'; } -.icon-document:before { +.icon-document::before { content: 'u'; } -.icon-warning:before { +.icon-warning::before { content: 'v'; } -.icon-move:before { +.icon-move::before { content: 'w'; } -.icon-drag-v:before { +.icon-drag-v::before { content: 'x'; } -.icon-filter:before { +.icon-filter::before { content: 'y'; } -.icon-help:before { +.icon-help::before { content: 'z'; } -.icon-reload:before { +.icon-reload::before { content: 'A'; } -.icon-writer:before { +.icon-writer::before { content: 'B'; } -.icon-stats:before { +.icon-stats::before { content: 'C'; } -.icon-floppy:before { +.icon-floppy::before { content: 'D'; } -.icon-warning-alt:before { +.icon-warning-alt::before { content: 'E'; } -.icon-video:before { +.icon-video::before { content: 'F'; } -.icon-bulk:before { +.icon-bulk::before { content: 'G'; } -.icon-vunfold:before { +.icon-vunfold::before { content: 'H'; } -.icon-tasks:before { +.icon-tasks::before { content: 'I'; } -.icon-kanban:before { +.icon-kanban::before { content: 'J'; } -.icon-search:before { +.icon-search::before { content: 'K'; } -.icon-wiki:before { +.icon-wiki::before { content: 'L'; } -.icon-team:before { +.icon-team::before { content: 'M'; } -.icon-vfold:before { +.icon-vfold::before { content: 'N'; } -.icon-issues:before { +.icon-issues::before { content: 'O'; } -.icon-iocaine:before { +.icon-iocaine::before { content: 'P'; } -.icon-archive:before { +.icon-archive::before { content: 'Q'; } -.icon-capslock:before { +.icon-capslock::before { content: 'R'; } -.icon-upload:before { +.icon-upload::before { content: 'S'; } -.icon-github:before { +.icon-github::before { content: 'T'; } -.icon-timeline:before { +.icon-timeline::before { content: 'U'; } -.icon-scrum:before { +.icon-scrum::before { content: 'V'; } -.icon-project:before { +.icon-project::before { content: 'W'; } -.icon-heart:before { +.icon-heart::before { content: 'X'; } -.icon-eye:before { +.icon-eye::before { content: 'Y'; } diff --git a/app/styles/modules/common/nav.scss b/app/styles/modules/common/nav.scss index 82d6c1d6..6dca70cf 100644 --- a/app/styles/modules/common/nav.scss +++ b/app/styles/modules/common/nav.scss @@ -25,7 +25,7 @@ tg-project-menu { .helper { @extend %small; animation: slideLeft 200ms ease-in-out both; - background: linear-gradient(to right, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, .8) 100%); + background: linear-gradient(to right, rgba($black, 1) 0%, rgba($black, .8) 100%); color: $white; display: block; left: 50px; @@ -36,7 +36,7 @@ tg-project-menu { transition: all .2s; white-space: nowrap; z-index: 99; - &:after { + &::after { background: rgba($blackish, 1); content: ''; height: $label-arrow-wh; diff --git a/app/themes/high-contrast/custom.scss b/app/themes/high-contrast/custom.scss index 1bb79bd3..a133091b 100644 --- a/app/themes/high-contrast/custom.scss +++ b/app/themes/high-contrast/custom.scss @@ -137,7 +137,7 @@ cite { // Top navigation bar .navbar { background: $black; - &:after { + &::after { background: url('../images/menu-vert.png') repeat top left; } a { diff --git a/app/themes/material-design/custom.scss b/app/themes/material-design/custom.scss index 472ad2b4..e37abb23 100644 --- a/app/themes/material-design/custom.scss +++ b/app/themes/material-design/custom.scss @@ -125,7 +125,7 @@ cite { // Top navigation bar .navbar { background: rgba($red-amaranth, .6); - &:after { + &::after { background: url('../images/menu-vert.png') repeat top left; } } diff --git a/app/themes/taiga/custom.scss b/app/themes/taiga/custom.scss index 6bb7c4c8..08adf274 100644 --- a/app/themes/taiga/custom.scss +++ b/app/themes/taiga/custom.scss @@ -107,7 +107,7 @@ cite { // Top navigation bar .navbar { background: rgba($black, .5); - &:after { + &::after { background: url('../images/menu-vert.png') repeat top left; } } From ff17eed6398f7df1c24b2a8c24aec8e0dcc8023c Mon Sep 17 00:00:00 2001 From: Kris Pritchard Date: Sun, 29 Nov 2015 10:13:06 +1300 Subject: [PATCH 051/100] Fix typo link that causes 404 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8478475a..4c67fc00 100644 --- a/README.md +++ b/README.md @@ -122,7 +122,7 @@ Complete process for all OS at: http://sass-lang.com/install **Node + Bower + Gulp** -We recommend using [nvm](https://github.com/creationix/nvmv) to manage diferent node versions +We recommend using [nvm](https://github.com/creationix/nvm) to manage diferent node versions ``` npm install -g gulp npm install -g bower From 31c4b16f05b92e8cf7eb247bf76a53dd62b6557f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Tue, 17 Nov 2015 10:34:08 +0100 Subject: [PATCH 052/100] Convert al email inputs to type email --- app/partials/includes/modules/forgot-form.jade | 2 ++ app/partials/includes/modules/invitation-login-form.jade | 2 ++ app/partials/includes/modules/invitation-register-form.jade | 4 +++- app/partials/includes/modules/login-form.jade | 2 ++ app/partials/includes/modules/register-form.jade | 4 +++- app/partials/user/user-profile.jade | 4 +++- 6 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/partials/includes/modules/forgot-form.jade b/app/partials/includes/modules/forgot-form.jade index 6bd1e5cd..c218f382 100644 --- a/app/partials/includes/modules/forgot-form.jade +++ b/app/partials/includes/modules/forgot-form.jade @@ -8,6 +8,8 @@ div.forgot-form-container(tg-forgot-password) fieldset input( type="text" + autocorrect="off" + autocapitalize="none" name="username" ng-model="data.username" data-required="true" diff --git a/app/partials/includes/modules/invitation-login-form.jade b/app/partials/includes/modules/invitation-login-form.jade index 2d5e2a3f..816854c2 100644 --- a/app/partials/includes/modules/invitation-login-form.jade +++ b/app/partials/includes/modules/invitation-login-form.jade @@ -4,6 +4,8 @@ form.login-form fieldset input( type="text" + autocorrect="off" + autocapitalize="none" name="username" ng-model="dataLogin.username" data-required="true" diff --git a/app/partials/includes/modules/invitation-register-form.jade b/app/partials/includes/modules/invitation-register-form.jade index 911e62e0..b5921ffa 100644 --- a/app/partials/includes/modules/invitation-register-form.jade +++ b/app/partials/includes/modules/invitation-register-form.jade @@ -3,6 +3,8 @@ form.register-form fieldset input( type="text" + autocorrect="off" + autocapitalize="none" name="username" ng-model="dataRegister.username" data-required="true" @@ -23,7 +25,7 @@ form.register-form fieldset input( - type="text" + type="email" name="email" ng-model="dataRegister.email" data-required="true" diff --git a/app/partials/includes/modules/login-form.jade b/app/partials/includes/modules/login-form.jade index 0d0fb609..9089a651 100644 --- a/app/partials/includes/modules/login-form.jade +++ b/app/partials/includes/modules/login-form.jade @@ -3,6 +3,8 @@ div.login-form-container(tg-login) fieldset input( type="text" + autocorrect="off" + autocapitalize="none" name="username" data-required="true" placeholder="{{'LOGIN_COMMON.PLACEHOLDER_AUTH_NAME' | translate}}" diff --git a/app/partials/includes/modules/register-form.jade b/app/partials/includes/modules/register-form.jade index 621b26b5..4d9d8c56 100644 --- a/app/partials/includes/modules/register-form.jade +++ b/app/partials/includes/modules/register-form.jade @@ -4,6 +4,8 @@ div.register-form-container(tg-register) fieldset input( type="text" + autocorrect="off" + autocapitalize="none" name="username" ng-model="data.username" data-required="true" @@ -24,7 +26,7 @@ div.register-form-container(tg-register) fieldset input( - type="text" + type="email" name="email" ng-model="data.email" data-required="true" diff --git a/app/partials/user/user-profile.jade b/app/partials/user/user-profile.jade index 40f0abb8..7064ba34 100644 --- a/app/partials/user/user-profile.jade +++ b/app/partials/user/user-profile.jade @@ -43,6 +43,8 @@ div.wrapper(tg-user-profile, ng-controller="UserSettingsController as ctrl", label(for="username", translate="USER_PROFILE.FIELD.USERNAME") input( type="text" + autocorrect="off" + autocapitalize="none" name="username" id="username" ng-model="user.username" @@ -55,7 +57,7 @@ div.wrapper(tg-user-profile, ng-controller="UserSettingsController as ctrl", fieldset label(for="email", translate="USER_PROFILE.FIELD.EMAIL") input( - type="text" + type="email" name="email" id="email" ng-model="user.email" From 46eefb7b1868768e004921324c59cbcd879a2e9c Mon Sep 17 00:00:00 2001 From: Juanfran Date: Tue, 1 Dec 2015 08:29:10 +0100 Subject: [PATCH 053/100] add joyride translations --- app/locales/taiga/locale-en.json | 6 ++++ .../joy-ride/joy-ride.directive.coffee | 28 +++++++++---------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/app/locales/taiga/locale-en.json b/app/locales/taiga/locale-en.json index 297aac13..db29558c 100644 --- a/app/locales/taiga/locale-en.json +++ b/app/locales/taiga/locale-en.json @@ -1357,6 +1357,12 @@ "CANCEL": "Cancel" }, "JOYRIDE": { + "NAV": { + "NEXT": "Next", + "BACK": "Back", + "SKIP": "Skip", + "DONE": "Done" + }, "DASHBOARD": { "STEP1": { "TITLE": "Your project", diff --git a/app/modules/components/joy-ride/joy-ride.directive.coffee b/app/modules/components/joy-ride/joy-ride.directive.coffee index 8b482811..82269f5e 100644 --- a/app/modules/components/joy-ride/joy-ride.directive.coffee +++ b/app/modules/components/joy-ride/joy-ride.directive.coffee @@ -19,23 +19,11 @@ taiga = @.taiga -JoyRideDirective = ($rootScope, currentUserService, joyRideService, $location) -> +JoyRideDirective = ($rootScope, currentUserService, joyRideService, $location, $translate) -> link = (scope, el, attrs, ctrl) -> unsuscribe = null intro = introJs() - #Todo: translate - intro.setOptions({ - exitOnEsc: false, - exitOnOverlayClick: false, - showStepNumbers: false, - nextLabel: 'Next →', - prevLabel: '← Back', - skipLabel: 'Skip', - doneLabel: 'Done', - disableInteraction: true - }) - intro.oncomplete () -> $('html,body').scrollTop(0) @@ -46,6 +34,17 @@ JoyRideDirective = ($rootScope, currentUserService, joyRideService, $location) - if !config[next.joyride] return + intro.setOptions({ + exitOnEsc: false, + exitOnOverlayClick: false, + showStepNumbers: false, + nextLabel: $translate.instant('JOYRIDE.NAV.NEXT') + ' →', + prevLabel: '← ' + $translate.instant('JOYRIDE.NAV.BACK'), + skipLabel: $translate.instant('JOYRIDE.NAV.SKIP'), + doneLabel: $translate.instant('JOYRIDE.NAV.DONE'), + disableInteraction: true + }) + intro.setOption('steps', joyRideService.get(next.joyride)) intro.start() @@ -78,7 +77,8 @@ JoyRideDirective.$inject = [ "$rootScope", "tgCurrentUserService", "tgJoyRideService", - "$location" + "$location", + "$translate" ] angular.module("taigaComponents").directive("tgJoyRide", JoyRideDirective) From 24f05d13d14a1cca891512cbf56efaa7315abec7 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Tue, 1 Dec 2015 09:22:23 +0100 Subject: [PATCH 054/100] remove repeated api calls --- app/coffee/modules/issues/list.coffee | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/app/coffee/modules/issues/list.coffee b/app/coffee/modules/issues/list.coffee index 51551823..b140eacf 100644 --- a/app/coffee/modules/issues/list.coffee +++ b/app/coffee/modules/issues/list.coffee @@ -168,7 +168,7 @@ class IssuesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi for obj in value obj.selected = if isSelected(obj.type, obj.id) then true else undefined - loadFilters: -> + loadFilters: () -> urlfilters = @.getUrlFilters() if urlfilters.q @@ -561,8 +561,8 @@ IssuesFiltersDirective = ($q, $log, $location, $rs, $confirm, $loading, $templat html = $compile(html)($scope) $el.find(".filter-list").html(html) - selectQFilter = debounceLeading 100, (value) -> - return if value is undefined + selectQFilter = debounceLeading 100, (value, oldValue) -> + return if value is undefined or value == oldValue $ctrl.replaceFilter("page", null, true) @@ -575,7 +575,10 @@ IssuesFiltersDirective = ($q, $log, $location, $rs, $confirm, $loading, $templat reloadIssues() - $scope.$watch("filtersQ", selectQFilter) + unwatchIssues = $scope.$watch "issues", (newValue) -> + if !_.isUndefined(newValue) + $scope.$watch("filtersQ", selectQFilter) + unwatchIssues() # Dom Event Handlers $el.on "click", ".filters-cats > ul > li > a", (event) -> From e2c9f3c987a8cde4673cefee64627d5fc5c94c87 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Tue, 1 Dec 2015 09:58:39 +0100 Subject: [PATCH 055/100] fix checksley initialization in login --- app/coffee/modules/auth.coffee | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/coffee/modules/auth.coffee b/app/coffee/modules/auth.coffee index d2d3639c..bc2aaa03 100644 --- a/app/coffee/modules/auth.coffee +++ b/app/coffee/modules/auth.coffee @@ -221,6 +221,8 @@ module.directive("tgPublicRegisterMessage", ["$tgConfig", "$tgNavUrls", "$tgTemp LoginDirective = ($auth, $confirm, $location, $config, $routeParams, $navUrls, $events, $translate) -> link = ($scope, $el, $attrs) -> + form = new checksley.Form($el.find("form.login-form")) + onSuccess = (response) -> if $routeParams['next'] and $routeParams['next'] != $navUrls.resolve("login") nextUrl = decodeURIComponent($routeParams['next']) @@ -236,7 +238,6 @@ LoginDirective = ($auth, $confirm, $location, $config, $routeParams, $navUrls, $ submit = debounce 2000, (event) => event.preventDefault() - form = new checksley.Form($el.find("form.login-form")) if not form.validate() return From a3384e3db3ad93c7f1dad737cf0978638df1c7b7 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Wed, 2 Dec 2015 11:36:06 +0100 Subject: [PATCH 056/100] fix task-detail public e2e --- e2e/public/public.e2e.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/e2e/public/public.e2e.js b/e2e/public/public.e2e.js index aabe20d9..c3c5d16c 100644 --- a/e2e/public/public.e2e.js +++ b/e2e/public/public.e2e.js @@ -20,7 +20,7 @@ describe('Public', async function(){ await utils.notifications.success.close(); //We need this click on firefox, probably the mouse is in a previous input - $('body').click() + $('body').click(); return utils.common.logout(); }); @@ -82,8 +82,8 @@ describe('Public', async function(){ utils.common.takeScreenshot('public', 'issue-detail'); }); - it('task detail', function() { - browser.get(browser.params.glob.host + 'project/project-1/backlog'); + it('task detail', async function() { + browser.get(browser.params.glob.host + 'project/project-3/backlog'); utils.nav .init() From 364809242ed773212b65a9cc3f57346be3983648 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Wed, 2 Dec 2015 11:42:48 +0100 Subject: [PATCH 057/100] fix querySelector sendInvitation e2e --- e2e/full/admin/members.e2e.js | 2 +- e2e/helpers/admin-memberships.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/e2e/full/admin/members.e2e.js b/e2e/full/admin/members.e2e.js index 77618ee1..9a024a12 100644 --- a/e2e/full/admin/members.e2e.js +++ b/e2e/full/admin/members.e2e.js @@ -107,7 +107,7 @@ describe('admin - members', function() { it('resend invitation', async function() { let member = adminMembershipsHelper.getMembers().last(); - adminMembershipsHelper.sendInvitation(); + adminMembershipsHelper.sendInvitation(member); expect(utils.notifications.success.open()).to.be.eventually.true; diff --git a/e2e/helpers/admin-memberships.js b/e2e/helpers/admin-memberships.js index d4ecc384..5fbe7c34 100644 --- a/e2e/helpers/admin-memberships.js +++ b/e2e/helpers/admin-memberships.js @@ -62,5 +62,5 @@ helper.setRole = function(elm, index) { }; helper.sendInvitation = function(elm) { - $$('.pending').first().click(); + elm.$('.resend').click(); }; From 94a01758c00775adc934ae4a30a0a67d047e578c Mon Sep 17 00:00:00 2001 From: Juanfran Date: Wed, 2 Dec 2015 12:18:22 +0100 Subject: [PATCH 058/100] fix watcher keyboard navigation --- e2e/helpers/common-helper.js | 3 +++ e2e/helpers/detail-helper.js | 5 ++++- e2e/utils/detail.js | 15 +++++++++++++-- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/e2e/helpers/common-helper.js b/e2e/helpers/common-helper.js index fc1ee715..6bd7ee3e 100644 --- a/e2e/helpers/common-helper.js +++ b/e2e/helpers/common-helper.js @@ -12,6 +12,9 @@ helper.assignToLightbox = function() { waitClose: function() { return utils.lightbox.close(el); }, + close: function() { + el.$$('.icon-delete').first().click(); + }, selectFirst: function() { el.$$('div[data-user-id]').first().click(); }, diff --git a/e2e/helpers/detail-helper.js b/e2e/helpers/detail-helper.js index bc787d86..370d6804 100644 --- a/e2e/helpers/detail-helper.js +++ b/e2e/helpers/detail-helper.js @@ -412,6 +412,9 @@ helper.watchersLightbox = function() { waitClose: function() { return utils.lightbox.close(el); }, + close: function() { + el.$$('.icon-delete').first().click(); + }, selectFirst: async function() { el.$$('div[data-user-id]').first().click(); await browser.waitForAngular(); @@ -427,7 +430,7 @@ helper.watchersLightbox = function() { }, userList: function() { return el.$$('.user-list-single'); - } + } }; return obj; diff --git a/e2e/utils/detail.js b/e2e/utils/detail.js index eb65b555..a05f3d64 100644 --- a/e2e/utils/detail.js +++ b/e2e/utils/detail.js @@ -3,6 +3,7 @@ var detailHelper = require('../helpers').detail; var commonHelper = require('../helpers').common; var customFieldsHelper = require('../helpers/custom-fields-helper'); var commonUtil = require('./common'); +var notifications = require('./notifications'); var chai = require('chai'); var chaiAsPromised = require('chai-as-promised'); @@ -74,7 +75,7 @@ helper.assignedToTesting = function() { before(function () { let assignedTo = detailHelper.assignedTo(); return assignedTo.clear(); - }) + }); it('assign', async function() { let assignedTo = detailHelper.assignedTo(); @@ -124,6 +125,7 @@ helper.assignedToTesting = function() { assignToLightbox.selectFirst(); await assignToLightbox.waitClose(); + await notifications.success.close(); }); it('keyboard navigatin', async function() { @@ -147,6 +149,10 @@ helper.assignedToTesting = function() { let isSelected = await commonUtil.hasClass(selected, 'selected'); expect(isSelected).to.be.true; + + assignToLightbox.close(); + + await assignToLightbox.waitClose(); }); } @@ -259,7 +265,7 @@ helper.watchersTesting = function() { before(function () { let watchersHelper = detailHelper.watchers(); return watchersHelper.removeAllWatchers(); - }) + }); it('add watcher', async function() { let watchersHelper = detailHelper.watchers(); @@ -309,6 +315,7 @@ helper.watchersTesting = function() { await watchersLightboxHelper.selectFirst(); await watchersLightboxHelper.waitClose(); + await notifications.success.close(); }); it('keyboard navigatin', async function() { @@ -331,6 +338,10 @@ helper.watchersTesting = function() { let isSelected = await commonUtil.hasClass(selected, 'selected'); expect(isSelected).to.be.true; + + watchersLightboxHelper.close(); + + await watchersLightboxHelper.waitClose(); }); } From 44d3e7e4daf215fd61f989a842ada04254b58989 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Wed, 2 Dec 2015 14:25:38 +0100 Subject: [PATCH 059/100] fix related tasks e2e tests --- e2e/full/user-stories/user-story-detail.e2e.js | 6 ++++++ e2e/helpers/us-detail-helper.js | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/e2e/full/user-stories/user-story-detail.e2e.js b/e2e/full/user-stories/user-story-detail.e2e.js index 88849eac..2144b221 100644 --- a/e2e/full/user-stories/user-story-detail.e2e.js +++ b/e2e/full/user-stories/user-story-detail.e2e.js @@ -83,6 +83,8 @@ describe('User story detail', function(){ expect(utils.notifications.success.open()).to.be.eventually.true; + utils.notifications.success.close(); + let relatedTaskCount = usDetailHelper.relatedTasks().count(); expect(relatedTaskCount).to.be.eventually.equal(oldRelatedTaskCount + 1); @@ -92,6 +94,8 @@ describe('User story detail', function(){ usDetailHelper.editRelatedTasks(0, 'test2', 2, 2); expect(utils.notifications.success.open()).to.be.eventually.true; + + utils.notifications.success.close(); }); it('delete', async function() { @@ -101,6 +105,8 @@ describe('User story detail', function(){ expect(utils.notifications.success.open()).to.be.eventually.true; + utils.notifications.success.close(); + let relatedTaskCount = usDetailHelper.relatedTasks().count(); expect(relatedTaskCount).to.be.eventually.equal(oldRelatedTaskCount - 1); diff --git a/e2e/helpers/us-detail-helper.js b/e2e/helpers/us-detail-helper.js index 3a6bf3c4..946bb6ef 100644 --- a/e2e/helpers/us-detail-helper.js +++ b/e2e/helpers/us-detail-helper.js @@ -82,7 +82,11 @@ helper.editRelatedTasks = function(taskIndex, name, status, assigned_to) { helper.deleteRelatedTask = function(taskIndex, name, status, assigned_to) { let task = helper.relatedTasks().get(taskIndex); - task.$('.icon-delete').click(); + browser + .actions() + .mouseMove(task.$('.icon-delete')) + .click() + .perform(); utils.lightbox.confirm.ok(); }; From 315dff9421ebb4f5f6e7d84cca4a833216ded02e Mon Sep 17 00:00:00 2001 From: Juanfran Date: Thu, 3 Dec 2015 09:11:06 +0100 Subject: [PATCH 060/100] fix kanban wip redraw --- app/coffee/modules/kanban/main.coffee | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/coffee/modules/kanban/main.coffee b/app/coffee/modules/kanban/main.coffee index c38a5a48..99227d92 100644 --- a/app/coffee/modules/kanban/main.coffee +++ b/app/coffee/modules/kanban/main.coffee @@ -132,7 +132,7 @@ class KanbanController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi status__is_archived: false } - return @rs.userstories.listAll(@scope.projectId, params).then (userstories) => + promise = @rs.userstories.listAll(@scope.projectId, params).then (userstories) => @scope.userstories = userstories usByStatus = _.groupBy(userstories, "status") @@ -166,6 +166,10 @@ class KanbanController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi return userstories + promise.then( => @scope.$broadcast("redraw:wip")) + + return promise + loadUserStoriesForStatus: (ctx, statusId) -> params = { status: statusId } return @rs.userstories.listAll(@scope.projectId, params).then (userstories) => @@ -211,7 +215,7 @@ class KanbanController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi return promise.then (project) => @.fillUsersAndRoles(project.members, project.roles) @.initializeSubscription() - @.loadKanban().then( => @scope.$broadcast("redraw:wip")) + @.loadKanban() ## View Mode methods From cbe286b6dea2df2105ed1a0ad26878ca6cf327e3 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Mon, 30 Nov 2015 09:03:05 +0100 Subject: [PATCH 061/100] move tests to e2e/suties --- conf.e2e.js | 31 +++++++++---------- e2e/README.md | 10 ++---- .../admin/attributes/custom-fields.e2e.js | 0 .../admin/attributes/points.e2e.js | 0 .../admin/attributes/priorities.e2e.js | 0 .../admin/attributes/severities.e2e.js | 0 .../admin/attributes/status.e2e.js | 0 .../admin/attributes/types.e2e.js | 0 .../admin/integrations/bitbucket.e2e.js | 0 .../admin/integrations/github.e2e.js | 0 .../admin/integrations/gitlab.e2e.js | 0 .../admin/integrations/webhooks.e2e.js | 0 e2e/{full => suites}/admin/members.e2e.js | 0 e2e/{full => suites}/admin/permissions.e2e.js | 0 .../admin/project/create-delete.e2e.js | 0 .../admin/project/default-values.e2e.js | 0 .../admin/project/modules.e2e.js | 0 .../admin/project/project-detail.e2e.js | 0 .../admin/project/reports.e2e.js | 0 e2e/{ => suites}/auth/auth.e2e.js | 2 +- e2e/{full => suites}/backlog.e2e.js | 0 e2e/{full => suites}/home.e2e.js | 0 .../issues/issue-detail.e2e.js | 0 e2e/{full => suites}/issues/issues.e2e.js | 0 e2e/{full => suites}/kanban.e2e.js | 0 e2e/{full => suites}/project-home.e2e.js | 0 e2e/{ => suites}/public/public.e2e.js | 2 +- e2e/{full => suites}/search.e2e.js | 0 e2e/{full => suites}/tasks/task-detail.e2e.js | 0 e2e/{full => suites}/tasks/taskboard.e2e.js | 0 e2e/{full => suites}/team.e2e.js | 0 .../user-profile/change-password.e2e.js | 0 .../user-profile/edit-user-profile.e2e.js | 0 .../user-profile/email-notification.e2e.js | 0 .../user-profile/feedback.e2e.js | 0 .../user-profile/user-profile-activity.e2e.js | 0 .../user-profile/user-profile-contacts.e2e.js | 0 .../user-profile/user-profile-likes.e2e.js | 0 .../user-profile/user-profile-projects.e2e.js | 0 .../user-profile/user-profile-votes.e2e.js | 0 .../user-profile/user-profile-watched.e2e.js | 0 .../user-stories/user-story-detail.e2e.js | 0 e2e/{full => suites}/wiki.e2e.js | 0 43 files changed, 19 insertions(+), 26 deletions(-) rename e2e/{full => suites}/admin/attributes/custom-fields.e2e.js (100%) rename e2e/{full => suites}/admin/attributes/points.e2e.js (100%) rename e2e/{full => suites}/admin/attributes/priorities.e2e.js (100%) rename e2e/{full => suites}/admin/attributes/severities.e2e.js (100%) rename e2e/{full => suites}/admin/attributes/status.e2e.js (100%) rename e2e/{full => suites}/admin/attributes/types.e2e.js (100%) rename e2e/{full => suites}/admin/integrations/bitbucket.e2e.js (100%) rename e2e/{full => suites}/admin/integrations/github.e2e.js (100%) rename e2e/{full => suites}/admin/integrations/gitlab.e2e.js (100%) rename e2e/{full => suites}/admin/integrations/webhooks.e2e.js (100%) rename e2e/{full => suites}/admin/members.e2e.js (100%) rename e2e/{full => suites}/admin/permissions.e2e.js (100%) rename e2e/{full => suites}/admin/project/create-delete.e2e.js (100%) rename e2e/{full => suites}/admin/project/default-values.e2e.js (100%) rename e2e/{full => suites}/admin/project/modules.e2e.js (100%) rename e2e/{full => suites}/admin/project/project-detail.e2e.js (100%) rename e2e/{full => suites}/admin/project/reports.e2e.js (100%) rename e2e/{ => suites}/auth/auth.e2e.js (99%) rename e2e/{full => suites}/backlog.e2e.js (100%) rename e2e/{full => suites}/home.e2e.js (100%) rename e2e/{full => suites}/issues/issue-detail.e2e.js (100%) rename e2e/{full => suites}/issues/issues.e2e.js (100%) rename e2e/{full => suites}/kanban.e2e.js (100%) rename e2e/{full => suites}/project-home.e2e.js (100%) rename e2e/{ => suites}/public/public.e2e.js (98%) rename e2e/{full => suites}/search.e2e.js (100%) rename e2e/{full => suites}/tasks/task-detail.e2e.js (100%) rename e2e/{full => suites}/tasks/taskboard.e2e.js (100%) rename e2e/{full => suites}/team.e2e.js (100%) rename e2e/{full => suites}/user-profile/change-password.e2e.js (100%) rename e2e/{full => suites}/user-profile/edit-user-profile.e2e.js (100%) rename e2e/{full => suites}/user-profile/email-notification.e2e.js (100%) rename e2e/{full => suites}/user-profile/feedback.e2e.js (100%) rename e2e/{full => suites}/user-profile/user-profile-activity.e2e.js (100%) rename e2e/{full => suites}/user-profile/user-profile-contacts.e2e.js (100%) rename e2e/{full => suites}/user-profile/user-profile-likes.e2e.js (100%) rename e2e/{full => suites}/user-profile/user-profile-projects.e2e.js (100%) rename e2e/{full => suites}/user-profile/user-profile-votes.e2e.js (100%) rename e2e/{full => suites}/user-profile/user-profile-watched.e2e.js (100%) rename e2e/{full => suites}/user-stories/user-story-detail.e2e.js (100%) rename e2e/{full => suites}/wiki.e2e.js (100%) diff --git a/conf.e2e.js b/conf.e2e.js index b974004a..e0b11b37 100644 --- a/conf.e2e.js +++ b/conf.e2e.js @@ -27,20 +27,20 @@ exports.config = { // version: '11' // }, suites: { - auth: "e2e/auth/*.e2e.js", - public: "e2e/public/**/*.e2e.js", - wiki: "e2e/full/wiki.e2e.js", - admin: "e2e/full/admin/**/*.e2e.js", - issues: "e2e/full/issues/*.e2e.js", - tasks: "e2e/full/tasks/*.e2e.js", - userProfile: "e2e/full/user-profile/*.e2e.js", - userStories: "e2e/full/user-stories/*.e2e.js", - backlog: "e2e/full/backlog.e2e.js", - home: "e2e/full/home.e2e.js", - kanban: "e2e/full/kanban.e2e.js", - projectHome: "e2e/full/project-home.e2e.js", - search: "e2e/full/search.e2e.js", - team: "e2e/full/team.e2e.js" + auth: "e2e/suites/auth/*.e2e.js", + public: "e2e/suites/public/**/*.e2e.js", + wiki: "e2e/suites/wiki.e2e.js", + admin: "e2e/suites/admin/**/*.e2e.js", + issues: "e2e/suites/issues/*.e2e.js", + tasks: "e2e/suites/tasks/*.e2e.js", + userProfile: "e2e/suites/user-profile/*.e2e.js", + userStories: "e2e/suites/user-stories/*.e2e.js", + backlog: "e2e/suites/backlog.e2e.js", + home: "e2e/suites/home.e2e.js", + kanban: "e2e/suites/kanban.e2e.js", + projectHome: "e2e/suites/project-home.e2e.js", + search: "e2e/suites/search.e2e.js", + team: "e2e/suites/team.e2e.js" }, onPrepare: function() { // track mouse movements @@ -81,8 +81,7 @@ exports.config = { setTimeout(function() { dotEl.remove(); - }, 1000) - + }, 1000); } $document.on({ diff --git a/e2e/README.md b/e2e/README.md index 04372833..c39d4c9f 100644 --- a/e2e/README.md +++ b/e2e/README.md @@ -19,14 +19,8 @@ After taiga-back and taiga-front are running webdriver-manager start ``` -for auth test: +run test: ``` -protractor conf.e2e.js --suite=auth -``` - -For full tests - -``` -protractor conf.e2e.js --suite=full +protractor conf.e2e.js --suite=suiteName ``` diff --git a/e2e/full/admin/attributes/custom-fields.e2e.js b/e2e/suites/admin/attributes/custom-fields.e2e.js similarity index 100% rename from e2e/full/admin/attributes/custom-fields.e2e.js rename to e2e/suites/admin/attributes/custom-fields.e2e.js diff --git a/e2e/full/admin/attributes/points.e2e.js b/e2e/suites/admin/attributes/points.e2e.js similarity index 100% rename from e2e/full/admin/attributes/points.e2e.js rename to e2e/suites/admin/attributes/points.e2e.js diff --git a/e2e/full/admin/attributes/priorities.e2e.js b/e2e/suites/admin/attributes/priorities.e2e.js similarity index 100% rename from e2e/full/admin/attributes/priorities.e2e.js rename to e2e/suites/admin/attributes/priorities.e2e.js diff --git a/e2e/full/admin/attributes/severities.e2e.js b/e2e/suites/admin/attributes/severities.e2e.js similarity index 100% rename from e2e/full/admin/attributes/severities.e2e.js rename to e2e/suites/admin/attributes/severities.e2e.js diff --git a/e2e/full/admin/attributes/status.e2e.js b/e2e/suites/admin/attributes/status.e2e.js similarity index 100% rename from e2e/full/admin/attributes/status.e2e.js rename to e2e/suites/admin/attributes/status.e2e.js diff --git a/e2e/full/admin/attributes/types.e2e.js b/e2e/suites/admin/attributes/types.e2e.js similarity index 100% rename from e2e/full/admin/attributes/types.e2e.js rename to e2e/suites/admin/attributes/types.e2e.js diff --git a/e2e/full/admin/integrations/bitbucket.e2e.js b/e2e/suites/admin/integrations/bitbucket.e2e.js similarity index 100% rename from e2e/full/admin/integrations/bitbucket.e2e.js rename to e2e/suites/admin/integrations/bitbucket.e2e.js diff --git a/e2e/full/admin/integrations/github.e2e.js b/e2e/suites/admin/integrations/github.e2e.js similarity index 100% rename from e2e/full/admin/integrations/github.e2e.js rename to e2e/suites/admin/integrations/github.e2e.js diff --git a/e2e/full/admin/integrations/gitlab.e2e.js b/e2e/suites/admin/integrations/gitlab.e2e.js similarity index 100% rename from e2e/full/admin/integrations/gitlab.e2e.js rename to e2e/suites/admin/integrations/gitlab.e2e.js diff --git a/e2e/full/admin/integrations/webhooks.e2e.js b/e2e/suites/admin/integrations/webhooks.e2e.js similarity index 100% rename from e2e/full/admin/integrations/webhooks.e2e.js rename to e2e/suites/admin/integrations/webhooks.e2e.js diff --git a/e2e/full/admin/members.e2e.js b/e2e/suites/admin/members.e2e.js similarity index 100% rename from e2e/full/admin/members.e2e.js rename to e2e/suites/admin/members.e2e.js diff --git a/e2e/full/admin/permissions.e2e.js b/e2e/suites/admin/permissions.e2e.js similarity index 100% rename from e2e/full/admin/permissions.e2e.js rename to e2e/suites/admin/permissions.e2e.js diff --git a/e2e/full/admin/project/create-delete.e2e.js b/e2e/suites/admin/project/create-delete.e2e.js similarity index 100% rename from e2e/full/admin/project/create-delete.e2e.js rename to e2e/suites/admin/project/create-delete.e2e.js diff --git a/e2e/full/admin/project/default-values.e2e.js b/e2e/suites/admin/project/default-values.e2e.js similarity index 100% rename from e2e/full/admin/project/default-values.e2e.js rename to e2e/suites/admin/project/default-values.e2e.js diff --git a/e2e/full/admin/project/modules.e2e.js b/e2e/suites/admin/project/modules.e2e.js similarity index 100% rename from e2e/full/admin/project/modules.e2e.js rename to e2e/suites/admin/project/modules.e2e.js diff --git a/e2e/full/admin/project/project-detail.e2e.js b/e2e/suites/admin/project/project-detail.e2e.js similarity index 100% rename from e2e/full/admin/project/project-detail.e2e.js rename to e2e/suites/admin/project/project-detail.e2e.js diff --git a/e2e/full/admin/project/reports.e2e.js b/e2e/suites/admin/project/reports.e2e.js similarity index 100% rename from e2e/full/admin/project/reports.e2e.js rename to e2e/suites/admin/project/reports.e2e.js diff --git a/e2e/auth/auth.e2e.js b/e2e/suites/auth/auth.e2e.js similarity index 99% rename from e2e/auth/auth.e2e.js rename to e2e/suites/auth/auth.e2e.js index 6a77adad..f7b7b502 100644 --- a/e2e/auth/auth.e2e.js +++ b/e2e/suites/auth/auth.e2e.js @@ -1,4 +1,4 @@ -var utils = require('../utils'); +var utils = require('../../utils'); var chai = require('chai'); var chaiAsPromised = require('chai-as-promised'); diff --git a/e2e/full/backlog.e2e.js b/e2e/suites/backlog.e2e.js similarity index 100% rename from e2e/full/backlog.e2e.js rename to e2e/suites/backlog.e2e.js diff --git a/e2e/full/home.e2e.js b/e2e/suites/home.e2e.js similarity index 100% rename from e2e/full/home.e2e.js rename to e2e/suites/home.e2e.js diff --git a/e2e/full/issues/issue-detail.e2e.js b/e2e/suites/issues/issue-detail.e2e.js similarity index 100% rename from e2e/full/issues/issue-detail.e2e.js rename to e2e/suites/issues/issue-detail.e2e.js diff --git a/e2e/full/issues/issues.e2e.js b/e2e/suites/issues/issues.e2e.js similarity index 100% rename from e2e/full/issues/issues.e2e.js rename to e2e/suites/issues/issues.e2e.js diff --git a/e2e/full/kanban.e2e.js b/e2e/suites/kanban.e2e.js similarity index 100% rename from e2e/full/kanban.e2e.js rename to e2e/suites/kanban.e2e.js diff --git a/e2e/full/project-home.e2e.js b/e2e/suites/project-home.e2e.js similarity index 100% rename from e2e/full/project-home.e2e.js rename to e2e/suites/project-home.e2e.js diff --git a/e2e/public/public.e2e.js b/e2e/suites/public/public.e2e.js similarity index 98% rename from e2e/public/public.e2e.js rename to e2e/suites/public/public.e2e.js index c3c5d16c..bfe04d31 100644 --- a/e2e/public/public.e2e.js +++ b/e2e/suites/public/public.e2e.js @@ -1,4 +1,4 @@ -var utils = require('../utils'); +var utils = require('../../utils'); var chai = require('chai'); var chaiAsPromised = require('chai-as-promised'); diff --git a/e2e/full/search.e2e.js b/e2e/suites/search.e2e.js similarity index 100% rename from e2e/full/search.e2e.js rename to e2e/suites/search.e2e.js diff --git a/e2e/full/tasks/task-detail.e2e.js b/e2e/suites/tasks/task-detail.e2e.js similarity index 100% rename from e2e/full/tasks/task-detail.e2e.js rename to e2e/suites/tasks/task-detail.e2e.js diff --git a/e2e/full/tasks/taskboard.e2e.js b/e2e/suites/tasks/taskboard.e2e.js similarity index 100% rename from e2e/full/tasks/taskboard.e2e.js rename to e2e/suites/tasks/taskboard.e2e.js diff --git a/e2e/full/team.e2e.js b/e2e/suites/team.e2e.js similarity index 100% rename from e2e/full/team.e2e.js rename to e2e/suites/team.e2e.js diff --git a/e2e/full/user-profile/change-password.e2e.js b/e2e/suites/user-profile/change-password.e2e.js similarity index 100% rename from e2e/full/user-profile/change-password.e2e.js rename to e2e/suites/user-profile/change-password.e2e.js diff --git a/e2e/full/user-profile/edit-user-profile.e2e.js b/e2e/suites/user-profile/edit-user-profile.e2e.js similarity index 100% rename from e2e/full/user-profile/edit-user-profile.e2e.js rename to e2e/suites/user-profile/edit-user-profile.e2e.js diff --git a/e2e/full/user-profile/email-notification.e2e.js b/e2e/suites/user-profile/email-notification.e2e.js similarity index 100% rename from e2e/full/user-profile/email-notification.e2e.js rename to e2e/suites/user-profile/email-notification.e2e.js diff --git a/e2e/full/user-profile/feedback.e2e.js b/e2e/suites/user-profile/feedback.e2e.js similarity index 100% rename from e2e/full/user-profile/feedback.e2e.js rename to e2e/suites/user-profile/feedback.e2e.js diff --git a/e2e/full/user-profile/user-profile-activity.e2e.js b/e2e/suites/user-profile/user-profile-activity.e2e.js similarity index 100% rename from e2e/full/user-profile/user-profile-activity.e2e.js rename to e2e/suites/user-profile/user-profile-activity.e2e.js diff --git a/e2e/full/user-profile/user-profile-contacts.e2e.js b/e2e/suites/user-profile/user-profile-contacts.e2e.js similarity index 100% rename from e2e/full/user-profile/user-profile-contacts.e2e.js rename to e2e/suites/user-profile/user-profile-contacts.e2e.js diff --git a/e2e/full/user-profile/user-profile-likes.e2e.js b/e2e/suites/user-profile/user-profile-likes.e2e.js similarity index 100% rename from e2e/full/user-profile/user-profile-likes.e2e.js rename to e2e/suites/user-profile/user-profile-likes.e2e.js diff --git a/e2e/full/user-profile/user-profile-projects.e2e.js b/e2e/suites/user-profile/user-profile-projects.e2e.js similarity index 100% rename from e2e/full/user-profile/user-profile-projects.e2e.js rename to e2e/suites/user-profile/user-profile-projects.e2e.js diff --git a/e2e/full/user-profile/user-profile-votes.e2e.js b/e2e/suites/user-profile/user-profile-votes.e2e.js similarity index 100% rename from e2e/full/user-profile/user-profile-votes.e2e.js rename to e2e/suites/user-profile/user-profile-votes.e2e.js diff --git a/e2e/full/user-profile/user-profile-watched.e2e.js b/e2e/suites/user-profile/user-profile-watched.e2e.js similarity index 100% rename from e2e/full/user-profile/user-profile-watched.e2e.js rename to e2e/suites/user-profile/user-profile-watched.e2e.js diff --git a/e2e/full/user-stories/user-story-detail.e2e.js b/e2e/suites/user-stories/user-story-detail.e2e.js similarity index 100% rename from e2e/full/user-stories/user-story-detail.e2e.js rename to e2e/suites/user-stories/user-story-detail.e2e.js diff --git a/e2e/full/wiki.e2e.js b/e2e/suites/wiki.e2e.js similarity index 100% rename from e2e/full/wiki.e2e.js rename to e2e/suites/wiki.e2e.js From d3b7d736d1227c9d95e3b59c6d01d77e7339aae6 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Mon, 30 Nov 2015 09:53:24 +0100 Subject: [PATCH 062/100] move utils.details to shared --- e2e/{utils => shared}/detail.js | 28 +++++++++---------- e2e/suites/issues/issue-detail.e2e.js | 25 +++++++++-------- e2e/suites/tasks/task-detail.e2e.js | 23 +++++++-------- .../user-stories/user-story-detail.e2e.js | 23 +++++++-------- e2e/suites/wiki.e2e.js | 3 +- e2e/utils/index.js | 1 - 6 files changed, 53 insertions(+), 50 deletions(-) rename e2e/{utils => shared}/detail.js (95%) diff --git a/e2e/utils/detail.js b/e2e/shared/detail.js similarity index 95% rename from e2e/utils/detail.js rename to e2e/shared/detail.js index a05f3d64..1bfeece9 100644 --- a/e2e/utils/detail.js +++ b/e2e/shared/detail.js @@ -2,8 +2,8 @@ var path = require('path'); var detailHelper = require('../helpers').detail; var commonHelper = require('../helpers').common; var customFieldsHelper = require('../helpers/custom-fields-helper'); -var commonUtil = require('./common'); -var notifications = require('./notifications'); +var commonUtil = require('../utils/common'); +var notifications = require('../utils/notifications'); var chai = require('chai'); var chaiAsPromised = require('chai-as-promised'); @@ -11,9 +11,9 @@ var chaiAsPromised = require('chai-as-promised'); chai.use(chaiAsPromised); var expect = chai.expect; -var helper = module.exports; +var shared = module.exports; -helper.titleTesting = async function() { +shared.titleTesting = async function() { let titleHelper = detailHelper.title(); let title = await titleHelper.getTitle(); let date = Date.now(); @@ -22,7 +22,7 @@ helper.titleTesting = async function() { expect(newTitle).to.be.not.equal(title); } -helper.tagsTesting = async function() { +shared.tagsTesting = async function() { let tagsHelper = detailHelper.tags(); let tagsText = await tagsHelper.getTagsText(); await tagsHelper.clearTags(); @@ -35,7 +35,7 @@ helper.tagsTesting = async function() { expect(newtagsText).to.be.not.eql(tagsText); } -helper.descriptionTesting = async function() { +shared.descriptionTesting = async function() { let descriptionHelper = detailHelper.description(); let description = await descriptionHelper.getInnerHtml(); let date = Date.now(); @@ -46,7 +46,7 @@ helper.descriptionTesting = async function() { expect(newDescription).to.be.not.equal(description); } -helper.statusTesting = async function() { +shared.statusTesting = async function() { let statusHelper = detailHelper.statusSelector(); // Current status @@ -71,7 +71,7 @@ helper.statusTesting = async function() { expect(newGenericStatus).to.be.not.equal(genericStatus); } -helper.assignedToTesting = function() { +shared.assignedToTesting = function() { before(function () { let assignedTo = detailHelper.assignedTo(); return assignedTo.clear(); @@ -156,7 +156,7 @@ helper.assignedToTesting = function() { }); } -helper.historyTesting = async function() { +shared.historyTesting = async function() { let historyHelper = detailHelper.history(); //Adding a comment @@ -188,7 +188,7 @@ helper.historyTesting = async function() { expect(activitiesCounter).to.be.least(newCommentsCounter); } -helper.blockTesting = async function() { +shared.blockTesting = async function() { let blockHelper = detailHelper.block(); let blockLightboxHelper = detailHelper.blockLightbox(); @@ -208,7 +208,7 @@ helper.blockTesting = async function() { expect($('.block-description').isDisplayed()).to.be.eventually.false; } -helper.attachmentTesting = async function() { +shared.attachmentTesting = async function() { let attachmentHelper = detailHelper.attachment(); let date = Date.now(); @@ -256,12 +256,12 @@ helper.attachmentTesting = async function() { expect(newAttachmentsLength).to.be.equal(attachmentsLength - 1); } -helper.deleteTesting = async function() { +shared.deleteTesting = async function() { let deleteHelper = detailHelper.delete(); await deleteHelper.delete(); } -helper.watchersTesting = function() { +shared.watchersTesting = function() { before(function () { let watchersHelper = detailHelper.watchers(); return watchersHelper.removeAllWatchers(); @@ -345,7 +345,7 @@ helper.watchersTesting = function() { }); } -helper.customFields = function(typeIndex) { +shared.customFields = function(typeIndex) { before(async function() { let url = await browser.getCurrentUrl(); diff --git a/e2e/suites/issues/issue-detail.e2e.js b/e2e/suites/issues/issue-detail.e2e.js index 5419b19f..28467ab7 100644 --- a/e2e/suites/issues/issue-detail.e2e.js +++ b/e2e/suites/issues/issue-detail.e2e.js @@ -1,4 +1,5 @@ var utils = require('../../utils'); +var sharedDetail = require('../../shared/detail'); var chai = require('chai'); var chaiAsPromised = require('chai-as-promised'); @@ -6,7 +7,7 @@ var chaiAsPromised = require('chai-as-promised'); chai.use(chaiAsPromised); var expect = chai.expect; -describe('Issue detail', async function(){ +describe.only('Issue detail', async function(){ let issueUrl = ''; before(async function(){ @@ -24,32 +25,32 @@ describe('Issue detail', async function(){ await utils.common.takeScreenshot("issues", "detail"); }); - it('title edition', utils.detail.titleTesting); + it('title edition', sharedDetail.titleTesting); - it('tags edition', utils.detail.tagsTesting); + it('tags edition', sharedDetail.tagsTesting); - it('description edition', utils.detail.descriptionTesting); + it('description edition', sharedDetail.descriptionTesting); - it('status edition', utils.detail.statusTesting); + it('status edition', sharedDetail.statusTesting); - describe('assigned to edition', utils.detail.assignedToTesting); + describe('assigned to edition', sharedDetail.assignedToTesting); - describe('watchers edition', utils.detail.watchersTesting); + describe('watchers edition', sharedDetail.watchersTesting); - it('history', utils.detail.historyTesting); + it('history', sharedDetail.historyTesting); - it('block', utils.detail.blockTesting); + it('block', sharedDetail.blockTesting); - it('attachments', utils.detail.attachmentTesting); + it('attachments', sharedDetail.attachmentTesting); - describe('custom-fields', utils.detail.customFields.bind(this, 2)); + describe('custom-fields', sharedDetail.customFields.bind(this, 2)); it('screenshot', async function() { await utils.common.takeScreenshot("issues", "detail updated"); }); describe('delete & redirect', function() { - it('delete', utils.detail.deleteTesting); + it('delete', sharedDetail.deleteTesting); it('redirected', async function (){ let url = await browser.getCurrentUrl(); diff --git a/e2e/suites/tasks/task-detail.e2e.js b/e2e/suites/tasks/task-detail.e2e.js index 8739b1bd..f5907c96 100644 --- a/e2e/suites/tasks/task-detail.e2e.js +++ b/e2e/suites/tasks/task-detail.e2e.js @@ -1,4 +1,5 @@ var utils = require('../../utils'); +var sharedDetail = require('../../shared/detail'); var taskDetailHelper = require('../../helpers').taskDetail; var chai = require('chai'); @@ -26,17 +27,17 @@ describe('Task detail', function(){ await utils.common.takeScreenshot("tasks", "detail"); }); - it('title edition', utils.detail.titleTesting); + it('title edition', sharedDetail.titleTesting); - it('tags edition', utils.detail.tagsTesting); + it('tags edition', sharedDetail.tagsTesting); - it('description edition', utils.detail.descriptionTesting); + it('description edition', sharedDetail.descriptionTesting); - it('status edition', utils.detail.statusTesting); + it('status edition', sharedDetail.statusTesting); - describe('assigned to edition', utils.detail.assignedToTesting); + describe('assigned to edition', sharedDetail.assignedToTesting); - describe('watchers edition', utils.detail.watchersTesting); + describe('watchers edition', sharedDetail.watchersTesting); it('iocaine edition', async function() { // Toggle iocaine status @@ -52,20 +53,20 @@ describe('Task detail', function(){ expect(newIsIocaine).to.be.equal(isIocaine); }); - it('history', utils.detail.historyTesting); + it('history', sharedDetail.historyTesting); - it('block', utils.detail.blockTesting); + it('block', sharedDetail.blockTesting); - it('attachments', utils.detail.attachmentTesting); + it('attachments', sharedDetail.attachmentTesting); - describe('custom-fields', utils.detail.customFields.bind(this, 1)); + describe('custom-fields', sharedDetail.customFields.bind(this, 1)); it('screenshot', async function() { await utils.common.takeScreenshot("tasks", "detail updated"); }); describe('delete & redirect', function() { - it('delete', utils.detail.deleteTesting); + it('delete', sharedDetail.deleteTesting); it('redirected', async function (){ let url = await browser.getCurrentUrl(); diff --git a/e2e/suites/user-stories/user-story-detail.e2e.js b/e2e/suites/user-stories/user-story-detail.e2e.js index 2144b221..911f0013 100644 --- a/e2e/suites/user-stories/user-story-detail.e2e.js +++ b/e2e/suites/user-stories/user-story-detail.e2e.js @@ -1,4 +1,5 @@ var utils = require('../../utils'); +var sharedDetail = require('../../shared/detail'); var usDetailHelper = require('../../helpers').usDetail; var chai = require('chai'); @@ -25,15 +26,15 @@ describe('User story detail', function(){ await utils.common.takeScreenshot("user-stories", "detail"); }); - it('title edition', utils.detail.titleTesting); + it('title edition', sharedDetail.titleTesting); - it('tags edition', utils.detail.tagsTesting); + it('tags edition', sharedDetail.tagsTesting); - it('description edition', utils.detail.descriptionTesting); + it('description edition', sharedDetail.descriptionTesting); - it('status edition', utils.detail.statusTesting); + it('status edition', sharedDetail.statusTesting); - describe('assigned to edition', utils.detail.assignedToTesting); + describe('assigned to edition', sharedDetail.assignedToTesting); it('team requirement edition', async function() { let requirementHelper = usDetailHelper.teamRequirement(); @@ -65,15 +66,15 @@ describe('User story detail', function(){ expect(isRequired).to.be.equal(newIsRequired); }); - describe('watchers edition', utils.detail.watchersTesting); + describe('watchers edition', sharedDetail.watchersTesting); - it('history', utils.detail.historyTesting); + it('history', sharedDetail.historyTesting); - it('block', utils.detail.blockTesting); + it('block', sharedDetail.blockTesting); - it('attachments', utils.detail.attachmentTesting); + it('attachments', sharedDetail.attachmentTesting); - describe('custom-fields', utils.detail.customFields.bind(this, 0)); + describe('custom-fields', sharedDetail.customFields.bind(this, 0)); describe('related tasks', function() { it('create', async function() { @@ -118,7 +119,7 @@ describe('User story detail', function(){ }); describe('delete & redirect', function() { - it('delete', utils.detail.deleteTesting); + it('delete', sharedDetail.deleteTesting); it('redirected', async function (){ let url = await browser.getCurrentUrl(); diff --git a/e2e/suites/wiki.e2e.js b/e2e/suites/wiki.e2e.js index 86dbfe6c..d3610580 100644 --- a/e2e/suites/wiki.e2e.js +++ b/e2e/suites/wiki.e2e.js @@ -1,4 +1,5 @@ var utils = require('../utils'); +var sharedDetail = require('../shared/detail'); var wikiHelper = require('../helpers').wiki; var chai = require('chai'); @@ -71,7 +72,7 @@ describe('wiki', function() { await utils.common.takeScreenshot("wiki", "home-edition"); }); - it('attachments', utils.detail.attachmentTesting); + it('attachments', sharedDetail.attachmentTesting); it('delete', async function() { await wikiHelper.editor().delete(); diff --git a/e2e/utils/index.js b/e2e/utils/index.js index 34d7ac6a..677b2422 100644 --- a/e2e/utils/index.js +++ b/e2e/utils/index.js @@ -2,5 +2,4 @@ module.exports.common = require("./common"); module.exports.notifications = require("./notifications"); module.exports.lightbox = require("./lightbox"); module.exports.popover = require("./popover"); -module.exports.detail = require("./detail"); module.exports.nav = require("./nav"); From 9af7733fd96257eb853d4cd12fedf7e3e28eab39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Thu, 3 Dec 2015 16:14:51 +0100 Subject: [PATCH 063/100] Monospace --- app/styles/shame/shame.scss | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/styles/shame/shame.scss b/app/styles/shame/shame.scss index 9342e459..152b9fa4 100644 --- a/app/styles/shame/shame.scss +++ b/app/styles/shame/shame.scss @@ -6,3 +6,11 @@ _:-ms-fullscreen, min-height: auto; } } + + +// External lybrary makes weird things. Please destroy +.markItUpEditor { + @extend %small; + line-height: 1.5; + font-family: monospace; +} From 774956bcbe94a811c9534b2d2682764c6b258a9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Thu, 3 Dec 2015 16:21:55 +0100 Subject: [PATCH 064/100] Added opacity on sortable in backlog page --- app/styles/modules/backlog/backlog-table.scss | 1 + app/styles/modules/backlog/sprints.scss | 1 + 2 files changed, 2 insertions(+) diff --git a/app/styles/modules/backlog/backlog-table.scss b/app/styles/modules/backlog/backlog-table.scss index a902d070..bf8346f4 100644 --- a/app/styles/modules/backlog/backlog-table.scss +++ b/app/styles/modules/backlog/backlog-table.scss @@ -156,6 +156,7 @@ &.ui-sortable-helper { background: lighten($primary, 60%); box-shadow: 1px 1px 10px rgba($black, .1); + opacity: .9; transition: background .2s ease-in; } .points { diff --git a/app/styles/modules/backlog/sprints.scss b/app/styles/modules/backlog/sprints.scss index c022fa62..40e4a071 100644 --- a/app/styles/modules/backlog/sprints.scss +++ b/app/styles/modules/backlog/sprints.scss @@ -178,6 +178,7 @@ &.ui-sortable-helper { background: lighten($primary, 60%); box-shadow: 1px 1px 10px rgba($black, .1); + opacity: .9; transition: background .2s ease-in; } From 2969a79146dd8c13bef0cd66226ee6a0059e46ba Mon Sep 17 00:00:00 2001 From: Juanfran Date: Fri, 4 Dec 2015 13:55:14 +0100 Subject: [PATCH 065/100] restore backlogs filters --- app/coffee/modules/backlog/main.coffee | 38 ++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/app/coffee/modules/backlog/main.coffee b/app/coffee/modules/backlog/main.coffee index 47ec3d73..587b1ee9 100644 --- a/app/coffee/modules/backlog/main.coffee +++ b/app/coffee/modules/backlog/main.coffee @@ -200,22 +200,46 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.F @rootscope.$broadcast("sprints:loaded", sprints) return sprints - resetFilters: -> - selectedTags = _.filter(@scope.filters.tags, "selected") - selectedStatuses = _.filter(@scope.filters.status, "selected") + restoreFilters: -> + selectedTags = @scope.oldSelectedTags + selectedStatuses = @scope.oldSelectedStatuses - @scope.filtersQ = "" + return if !selectedStatuses and !selectedStatuses + + @scope.filtersQ = @scope.filtersQOld + + @.replaceFilter("q", @scope.filtersQ) _.each [selectedTags, selectedStatuses], (filterGrp) => _.each filterGrp, (item) => filters = @scope.filters[item.type] - filter = _.find(filters, {id: taiga.toString(item.id)}) + filter = _.find(filters, {id: item.id}) + filter.selected = true + + @.selectFilter(item.type, item.id) + + @.loadUserstories() + + resetFilters: -> + selectedTags = _.filter(@scope.filters.tags, "selected") + selectedStatuses = _.filter(@scope.filters.status, "selected") + + @scope.oldSelectedTags = selectedTags + @scope.oldSelectedStatuses = selectedStatuses + + @scope.filtersQOld = @scope.filtersQ + @scope.filtersQ = "" + @.replaceFilter("q", null) + + _.each [selectedTags, selectedStatuses], (filterGrp) => + _.each filterGrp, (item) => + filters = @scope.filters[item.type] + filter = _.find(filters, {id: item.id}) filter.selected = false @.unselectFilter(item.type, item.id) @.loadUserstories() - @rootscope.$broadcast("filters:update") loadUserstories: -> @scope.httpParams = @.getUrlFilters() @@ -732,6 +756,8 @@ BacklogDirective = ($repo, $rootscope, $translate) -> if !sidebar.hasClass("active") $ctrl.resetFilters() + else + $ctrl.restoreFilters() $ctrl.toggleActiveFilters() From 8dd7d118fa4182ad2dcfab8ce960f61e112a2678 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Fri, 27 Nov 2015 13:35:09 +0100 Subject: [PATCH 066/100] Task #3538: Remove tribe_git from the history --- app/coffee/modules/common/history.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/coffee/modules/common/history.coffee b/app/coffee/modules/common/history.coffee index c28f6d96..8f437373 100644 --- a/app/coffee/modules/common/history.coffee +++ b/app/coffee/modules/common/history.coffee @@ -28,7 +28,7 @@ module = angular.module("taigaCommon") IGNORED_FIELDS = { "userstories.userstory": [ - "watchers", "kanban_order", "backlog_order", "sprint_order", "finish_date" + "watchers", "kanban_order", "backlog_order", "sprint_order", "finish_date", "tribe_gig" ], "tasks.task": [ "watchers", "us_order", "taskboard_order" From c6ef0b16a3648e649986fb36ec5e654742d4c083 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Wed, 9 Dec 2015 14:21:43 +0100 Subject: [PATCH 067/100] Update CHANGELOG --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dd019d3a..46fc9699 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # Changelog # -## 1.10.0 ??? (unreleased) +## 1.9.1 Taiga Tribe (unreleased) - [118n] Now taiga plugins can be translatable. ### Misc From 4a3d4532c27bbbf6f6bd88a7b59db04b0045cd00 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Thu, 10 Dec 2015 12:13:48 +0100 Subject: [PATCH 068/100] fix issue #3631 - toggle backlog filter text --- app/coffee/modules/backlog/main.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/coffee/modules/backlog/main.coffee b/app/coffee/modules/backlog/main.coffee index 587b1ee9..ca5ea073 100644 --- a/app/coffee/modules/backlog/main.coffee +++ b/app/coffee/modules/backlog/main.coffee @@ -752,7 +752,7 @@ BacklogDirective = ($repo, $rootscope, $translate) -> hideText = $translate.instant("BACKLOG.FILTERS.HIDE") showText = $translate.instant("BACKLOG.FILTERS.SHOW") - toggleText(target.find(".text"), [hideText, showText]) + toggleText(target, [hideText, showText]) if !sidebar.hasClass("active") $ctrl.resetFilters() From 519197c037a0954f1414992d81eb55735459259f Mon Sep 17 00:00:00 2001 From: Juanfran Date: Thu, 10 Dec 2015 12:46:54 +0100 Subject: [PATCH 069/100] fix issue #3636 --- app/modules/projects/project/project.controller.coffee | 4 ++-- app/modules/services/app-meta.service.coffee | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/modules/projects/project/project.controller.coffee b/app/modules/projects/project/project.controller.coffee index 0582d5f3..9c8cc6c5 100644 --- a/app/modules/projects/project/project.controller.coffee +++ b/app/modules/projects/project/project.controller.coffee @@ -36,9 +36,9 @@ class ProjectController @appMetaService.setfn @._setMeta.bind(this) _setMeta: (project)-> - metas = {} + return null if !@.project - return metas if !@.project + metas = {} ctx = {projectName: @.project.get("name")} diff --git a/app/modules/services/app-meta.service.coffee b/app/modules/services/app-meta.service.coffee index ef84f20d..a8b2151b 100644 --- a/app/modules/services/app-meta.service.coffee +++ b/app/modules/services/app-meta.service.coffee @@ -97,7 +97,8 @@ class AppMetaService @._listener() if @.listener @._listener = @rootScope.$watchCollection fn, (metas) => - @.setAll(metas.title, metas.description) - + if metas + @.setAll(metas.title, metas.description) + @._listener() angular.module("taigaCommon").service("tgAppMetaService", AppMetaService) From d2d429e211f2bdbba6508dd1c3600ba6e6335e24 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Fri, 27 Nov 2015 14:50:36 +0100 Subject: [PATCH 070/100] New plugin system --- CHANGELOG.md | 3 ++- app-loader/app-loader.coffee | 25 +++++++++++++++++-- .../modules/plugins.coffee} | 0 app/modules/services/theme.service.coffee | 2 +- app/plugins/.gitignore | 3 --- gulpfile.js | 15 ++--------- 6 files changed, 28 insertions(+), 20 deletions(-) rename app/{plugins/main.coffee => coffee/modules/plugins.coffee} (100%) delete mode 100644 app/plugins/.gitignore diff --git a/CHANGELOG.md b/CHANGELOG.md index 46fc9699..ba4bc13f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## 1.9.1 Taiga Tribe (unreleased) - [118n] Now taiga plugins can be translatable. +- New Taiga plugins system. ### Misc - Statics folder hash to prevent cache problems when a new version is released. @@ -10,7 +11,7 @@ - Lots of small and not so small bugfixes. -## 1.9.0 Abies Siberica (2015-11-XX) +## 1.9.0 Abies Siberica (2015-11-02) ### Features - Ability to create single-line or multi-line custom fields. (thanks to [@artlepool](https://github.com/artlepool)). diff --git a/app-loader/app-loader.coffee b/app-loader/app-loader.coffee index e8801f63..9ddbf62b 100644 --- a/app-loader/app-loader.coffee +++ b/app-loader/app-loader.coffee @@ -16,14 +16,35 @@ window.taigaConfig = { "contribPlugins": [] } +loadStylesheet = (path) -> + $('head').append('') + +loadPlugin = (pluginPath) -> + return new Promise (resolve, reject) -> + $.getJSON(pluginPath).then (plugin) -> + if plugin.css + loadStylesheet(plugin.css) + + #dont' wait for css + if plugin.js + ljs.load(plugin.js, resolve) + else + resolve() + +loadPlugins = (plugins) -> + promises = [] + _.map plugins, (pluginPath) -> + promises.push(loadPlugin(pluginPath)) + + return Promise.all(promises) + promise = $.getJSON "/conf.json" promise.done (data) -> window.taigaConfig = _.extend({}, window.taigaConfig, data) promise.always -> if window.taigaConfig.contribPlugins.length > 0 - plugins = _.map(window.taigaConfig.contribPlugins, (plugin) -> "#{plugin}") - ljs.load plugins, -> + loadPlugins(window.taigaConfig.contribPlugins).then () -> ljs.load "/#{window._version}/js/app.js", -> angular.bootstrap(document, ['taiga']) else diff --git a/app/plugins/main.coffee b/app/coffee/modules/plugins.coffee similarity index 100% rename from app/plugins/main.coffee rename to app/coffee/modules/plugins.coffee diff --git a/app/modules/services/theme.service.coffee b/app/modules/services/theme.service.coffee index ae4c7b17..6a15a58f 100644 --- a/app/modules/services/theme.service.coffee +++ b/app/modules/services/theme.service.coffee @@ -22,7 +22,7 @@ taiga = @.taiga class ThemeService extends taiga.Service = -> use: (themeName) -> - stylesheetEl = $("link[rel='stylesheet']") + stylesheetEl = $("link[rel='stylesheet']:first") if stylesheetEl.length == 0 stylesheetEl = $("") diff --git a/app/plugins/.gitignore b/app/plugins/.gitignore deleted file mode 100644 index 61d16771..00000000 --- a/app/plugins/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -* -!.gitignore -!main.coffee diff --git a/gulpfile.js b/gulpfile.js index e61692dc..bb1848e8 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -56,7 +56,6 @@ paths.jade = [ paths.htmlPartials = [ paths.tmp + "partials/**/*.html", paths.tmp + "modules/**/*.html", - paths.tmp + "plugins/**/*.html", "!" + paths.tmp + "partials/includes/**/*.html", "!" + paths.tmp + "/modules/**/includes/**/*.html" ]; @@ -86,8 +85,7 @@ paths.styles_dependencies = [ paths.css = [ paths.tmp + "styles/**/*.css", - paths.tmp + "modules/**/*.css", - paths.tmp + "plugins/**/*.css" + paths.tmp + "modules/**/*.css" ]; paths.css_order = [ @@ -103,7 +101,6 @@ paths.css_order = [ paths.tmp + "styles/modules/**/*.css", paths.tmp + "modules/**/*.css", paths.tmp + "styles/shame/*.css", - paths.tmp + "plugins/**/*.css", paths.tmp + "themes/**/*.css" ]; @@ -135,9 +132,7 @@ paths.coffee_order = [ paths.app + "coffee/modules/user-settings/*.coffee", paths.app + "coffee/modules/integrations/*.coffee", paths.app + "modules/**/*.module.coffee", - paths.app + "modules/**/*.coffee", - paths.app + "plugins/*.coffee", - paths.app + "plugins/**/*.coffee" + paths.app + "modules/**/*.coffee" ]; paths.libs = [ @@ -495,11 +490,6 @@ gulp.task("copy-theme-images", function() { .pipe(gulp.dest(paths.distVersion + "/images/" + themes.current.name)); }); -gulp.task("copy-plugins", function() { - return gulp.src(paths.app + "/plugins/**") - .pipe(gulp.dest(paths.dist + "/plugins/")); -}); - gulp.task("copy-extras", function() { return gulp.src(paths.extras + "/*") .pipe(gulp.dest(paths.dist + "/")); @@ -510,7 +500,6 @@ gulp.task("copy", [ "copy-theme-fonts", "copy-images", "copy-theme-images", - "copy-plugins", "copy-svg", "copy-theme-svg", "copy-extras" From fcd0151c238de6c686fbe77a04578921982cea8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Thu, 10 Dec 2015 14:13:19 +0100 Subject: [PATCH 071/100] Update package version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b58ec666..7d326400 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "TaigaIO", - "version": "0.0.1", + "version": "1.9.1", "description": "Taiga project management system (frontend)", "main": "index.js", "keywords": [ From 8f1bada82ed4ecb9d6aaf0bafc649b3b0b209f0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Thu, 10 Dec 2015 14:13:45 +0100 Subject: [PATCH 072/100] Update bower version --- bower.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bower.json b/bower.json index 18943722..55f63b40 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "taiga-layout", - "version": "0.1.0", + "version": "1.9.1", "homepage": "https://github.com/taiga.io/taiga-layout", "authors": [ { From ae1db2c835adef3f4c47129bd60539d8b77897a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Thu, 10 Dec 2015 15:20:32 +0100 Subject: [PATCH 073/100] Remove moustache :{ --- .../auth/change-password-from-recovery.jade | 2 +- app/partials/auth/forgot-password.jade | 2 +- app/partials/auth/login.jade | 2 +- app/partials/auth/register.jade | 2 +- app/partials/user/cancel-account.jade | 2 +- app/partials/user/change-email.jade | 2 +- app/styles/layout/auth.scss | 36 ------------------- app/svg/logo-moustache.svg | 15 -------- 8 files changed, 6 insertions(+), 57 deletions(-) delete mode 100644 app/svg/logo-moustache.svg diff --git a/app/partials/auth/change-password-from-recovery.jade b/app/partials/auth/change-password-from-recovery.jade index cb1cd82c..3f1da59f 100644 --- a/app/partials/auth/change-password-from-recovery.jade +++ b/app/partials/auth/change-password-from-recovery.jade @@ -4,7 +4,7 @@ div.wrapper div.auth div.auth-container div.logo-svg - include ../../svg/logo-moustache.svg + include ../../svg/logo-color.svg h1.logo Taiga include ../includes/modules/change-password-from-recovery-form diff --git a/app/partials/auth/forgot-password.jade b/app/partials/auth/forgot-password.jade index 34a16248..ceca6a3e 100644 --- a/app/partials/auth/forgot-password.jade +++ b/app/partials/auth/forgot-password.jade @@ -5,7 +5,7 @@ div.wrapper div.auth div.auth-container div.logo-svg - include ../../svg/logo-moustache.svg + include ../../svg/logo-color.svg h1.logo Taiga include ../includes/modules/forgot-form diff --git a/app/partials/auth/login.jade b/app/partials/auth/login.jade index 073ceed5..b5182527 100644 --- a/app/partials/auth/login.jade +++ b/app/partials/auth/login.jade @@ -7,7 +7,7 @@ div.wrapper div.auth div.auth-container div.logo-svg - include ../../svg/logo-moustache.svg + include ../../svg/logo-color.svg h1.logo Taiga h2.tagline(translate="COMMON.TAG_LINE_2") diff --git a/app/partials/auth/register.jade b/app/partials/auth/register.jade index 1bf2e176..9700012d 100644 --- a/app/partials/auth/register.jade +++ b/app/partials/auth/register.jade @@ -4,7 +4,7 @@ div.wrapper div.auth div.auth-container div.logo-svg - include ../../svg/logo-moustache.svg + include ../../svg/logo-color.svg h1.logo Taiga include ../includes/modules/register-form diff --git a/app/partials/user/cancel-account.jade b/app/partials/user/cancel-account.jade index 32df3953..632759d1 100644 --- a/app/partials/user/cancel-account.jade +++ b/app/partials/user/cancel-account.jade @@ -4,7 +4,7 @@ div.wrapper.cancel-account div.auth div.auth-container div.logo-svg - include ../../svg/logo-moustache.svg + include ../../svg/logo-color.svg h1.logo Taiga h2.tagline(translate="COMMON.TAG_LINE") diff --git a/app/partials/user/change-email.jade b/app/partials/user/change-email.jade index f464d4a7..a2b9b529 100644 --- a/app/partials/user/change-email.jade +++ b/app/partials/user/change-email.jade @@ -4,7 +4,7 @@ div.wrapper div.auth div.auth-container div.logo-svg - include ../../svg/logo-moustache.svg + include ../../svg/logo-color.svg h1.logo Taiga include ../includes/modules/change-email-form diff --git a/app/styles/layout/auth.scss b/app/styles/layout/auth.scss index 393e1eb6..786af6ac 100644 --- a/app/styles/layout/auth.scss +++ b/app/styles/layout/auth.scss @@ -59,39 +59,3 @@ } } } - -.moustache { - animation-duration: 5s; - animation-iteration-count: infinite; - animation-name: moustache; - animation-timing-function: ease-in-out; - fill: rgba($primary, .9); - stroke: $primary-light; - stroke-width: 1px; - transform-origin: 50% 50%; - transition: .3s; - &:hover { - fill: rgba($primary-light, .9); - transition: .3s; - } -} -@keyframes moustache { - 0% { - transform: rotate(0); - } - 10% { - transform: rotate(-10deg); - } - 30% { - transform: rotate(0); - } - 70% { - transform: rotate(0); - } - 80% { - transform: rotate(10deg); - } - 90% { - transform: rotate(0); - } -} diff --git a/app/svg/logo-moustache.svg b/app/svg/logo-moustache.svg deleted file mode 100644 index 67505793..00000000 --- a/app/svg/logo-moustache.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - From cc8000e4cda97749b82e60a21c9d2f5eb9701800 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Fri, 11 Dec 2015 08:25:13 +0100 Subject: [PATCH 074/100] Login from anywhere in the top bar --- app/locales/taiga/locale-en.json | 2 +- app/modules/navigation-bar/navigation-bar.jade | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/app/locales/taiga/locale-en.json b/app/locales/taiga/locale-en.json index db29558c..a8faaa78 100644 --- a/app/locales/taiga/locale-en.json +++ b/app/locales/taiga/locale-en.json @@ -276,7 +276,7 @@ "LINK_FORGOT_PASSWORD": "Forgot it?", "TITLE_LINK_FORGOT_PASSWORD": "Did you forgot your password?", "ACTION_ENTER": "Enter", - "ACTION_SIGN_IN": "Sign in", + "ACTION_SIGN_IN": "Login", "PLACEHOLDER_AUTH_PASSWORD": "Password (case sensitive)" }, "LOGIN_FORM": { diff --git a/app/modules/navigation-bar/navigation-bar.jade b/app/modules/navigation-bar/navigation-bar.jade index f8202abf..54aa167e 100644 --- a/app/modules/navigation-bar/navigation-bar.jade +++ b/app/modules/navigation-bar/navigation-bar.jade @@ -7,17 +7,24 @@ nav.navbar(ng-if="vm.isEnabledHeader") include ../../svg/logo.svg - //a( - // href="#", - // title="{{'PROJECT.NAVIGATION.DISCOVER_TITLE' | translate}}", - // translate="PROJECT.NAVIGATION.DISCOVER") - a( href="https://taiga.io/support/", target="_blank", title="{{'PROJECT.NAVIGATION.HELP_TITLE' | translate}}", translate="PROJECT.NAVIGATION.HELP") + div.nav-right(ng-if="!vm.isAuthenticated") + a.login( + tg-nav="login", + href="#", + title="{{ 'LOGIN_COMMON.ACTION_SIGN_IN' | translate }}" + ) {{ 'LOGIN_COMMON.ACTION_SIGN_IN' | translate }} + a.register( + tg-nav="register", + href="#", + title="{{ 'REGISTER_FORM.ACTION_SIGN_UP' | translate }}" + ) {{ 'REGISTER_FORM.ACTION_SIGN_UP' | translate }} + div.nav-right(ng-if="vm.isAuthenticated") a(tg-nav="home", ng-class="{active: vm.active}", From f0e08d2eed536c0d8fbf789dd09d6bb6244125c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Fri, 11 Dec 2015 08:29:21 +0100 Subject: [PATCH 075/100] Fix typo --- app/locales/taiga/locale-en.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/locales/taiga/locale-en.json b/app/locales/taiga/locale-en.json index a8faaa78..f3152a2b 100644 --- a/app/locales/taiga/locale-en.json +++ b/app/locales/taiga/locale-en.json @@ -274,7 +274,7 @@ "HEADER": "I already have a Taiga login", "PLACEHOLDER_AUTH_NAME": "Username or email (case sensitive)", "LINK_FORGOT_PASSWORD": "Forgot it?", - "TITLE_LINK_FORGOT_PASSWORD": "Did you forgot your password?", + "TITLE_LINK_FORGOT_PASSWORD": "Did you forget your password?", "ACTION_ENTER": "Enter", "ACTION_SIGN_IN": "Login", "PLACEHOLDER_AUTH_PASSWORD": "Password (case sensitive)" @@ -1311,7 +1311,7 @@ "HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow.", "HINT3_TITLE": "Reorder your projects to feature those most relevant to you.", "HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.", - "HINT4_TITLE": "Did you forgot what were you working on?", + "HINT4_TITLE": "Did you forget what were you working on?", "HINT4_TEXT": "Don't worry, on your dashboard you'll find your open tasks, issues, and user stories in the order you worked on them." }, "TIMELINE": { From d99a64b35ad1a30fa34f0ff915c15a599c3f4ed8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Fri, 11 Dec 2015 08:40:09 +0100 Subject: [PATCH 076/100] Edit button text --- app/locales/taiga/locale-en.json | 2 +- app/modules/home/projects/home-project-list.jade | 4 ++-- .../dropdown-project-list/dropdown-project-list.jade | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/locales/taiga/locale-en.json b/app/locales/taiga/locale-en.json index f3152a2b..f446c6c9 100644 --- a/app/locales/taiga/locale-en.json +++ b/app/locales/taiga/locale-en.json @@ -727,7 +727,7 @@ "PLACEHOLDER_SEARCH": "Search in...", "ACTION_CREATE_PROJECT": "Create project", "ACTION_IMPORT_PROJECT": "Import project", - "SEE_MORE_PROJECTS": "See more projects", + "MANAGE_PROJECTS": "Manage projects", "TITLE_CREATE_PROJECT": "Create project", "TITLE_IMPORT_PROJECT": "Import project", "TITLE_PRVIOUS_PROJECT": "Show previous projects", diff --git a/app/modules/home/projects/home-project-list.jade b/app/modules/home/projects/home-project-list.jade index 789dca0d..0841af36 100644 --- a/app/modules/home/projects/home-project-list.jade +++ b/app/modules/home/projects/home-project-list.jade @@ -13,8 +13,8 @@ section.home-project-list(ng-if="vm.projects.size") href="#", ng-show="vm.projects.size", tg-nav="projects", - title="{{'PROJECT.NAVIGATION.SEE_MORE_PROJECTS' | translate}}", - translate="PROJECT.NAVIGATION.SEE_MORE_PROJECTS" + title="{{'PROJECT.NAVIGATION.MANAGE_PROJECTS' | translate}}", + translate="PROJECT.NAVIGATION.MANAGE_PROJECTS" ) section.projects-empty(ng-if="vm.projects != undefined && vm.projects.size === 0") diff --git a/app/modules/navigation-bar/dropdown-project-list/dropdown-project-list.jade b/app/modules/navigation-bar/dropdown-project-list/dropdown-project-list.jade index 234a4ba2..13b7097a 100644 --- a/app/modules/navigation-bar/dropdown-project-list/dropdown-project-list.jade +++ b/app/modules/navigation-bar/dropdown-project-list/dropdown-project-list.jade @@ -9,8 +9,8 @@ div.navbar-dropdown.dropdown-project-list a.see-more-projects-btn.button-gray( href="#", tg-nav="projects", - title="{{'PROJECT.NAVIGATION.SEE_MORE_PROJECTS' | translate}}", - translate="PROJECT.NAVIGATION.SEE_MORE_PROJECTS") + title="{{'PROJECT.NAVIGATION.MANAGE_PROJECTS' | translate}}", + translate="PROJECT.NAVIGATION.MANAGE_PROJECTS") div.create-options a.create-project-btn.button-green( From aff00383cf73706748554b03f5fb32affc3da373 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Fri, 11 Dec 2015 09:12:16 +0100 Subject: [PATCH 077/100] Long names in wiki brokes UI --- app/partials/wiki/wiki.jade | 5 +++-- app/styles/components/wysiwyg.scss | 6 +++++- app/styles/layout/wiki-edit.scss | 7 ------- app/styles/layout/wiki.scss | 4 ++++ 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/app/partials/wiki/wiki.jade b/app/partials/wiki/wiki.jade index def34e10..ec699d01 100644 --- a/app/partials/wiki/wiki.jade +++ b/app/partials/wiki/wiki.jade @@ -6,13 +6,14 @@ div.wrapper(ng-controller="WikiDetailController as ctrl", sidebar.menu-secondary.extrabar(tg-check-permission="view_wiki_links") section.wiki-nav(tg-wiki-nav, ng-model="wikiLinks") section.main.wiki - .header + header h1 span(tg-bo-bind="project.name") span.green(translate="PROJECT.SECTION.WIKI") - span.wiki-title(ng-bind='wikiTitle') + div.summary.wiki-summary(tg-wiki-summary, ng-model="wiki", ng-if="wiki.id") + h2.wiki-title(ng-bind='wikiTitle') section.wiki-content(tg-editable-wiki-content, ng-model="wiki") tg-attachments(ng-model="wiki", type="wiki_page", ng-if="wiki.id") diff --git a/app/styles/components/wysiwyg.scss b/app/styles/components/wysiwyg.scss index c742fbf3..56c46839 100644 --- a/app/styles/components/wysiwyg.scss +++ b/app/styles/components/wysiwyg.scss @@ -1,5 +1,6 @@ .wysiwyg { line-height: 1.4rem; + margin-bottom: 2rem; overflow: auto; padding: 1rem; h1 { @@ -46,7 +47,6 @@ } } p { - line-height: 1.4rem; margin-bottom: 1rem; } .codehilite { @@ -98,4 +98,8 @@ img { max-width: 100%; } + textarea { + background: $white; + max-height: none; + } } diff --git a/app/styles/layout/wiki-edit.scss b/app/styles/layout/wiki-edit.scss index f1ee14a4..1fe76b62 100644 --- a/app/styles/layout/wiki-edit.scss +++ b/app/styles/layout/wiki-edit.scss @@ -1,10 +1,3 @@ -.wysiwyg { - margin-bottom: 2rem; - textarea { - background: $white; - max-height: none; - } -} .save-wiki { float: right; } diff --git a/app/styles/layout/wiki.scss b/app/styles/layout/wiki.scss index 62fb3b23..1285b1d9 100644 --- a/app/styles/layout/wiki.scss +++ b/app/styles/layout/wiki.scss @@ -1,4 +1,8 @@ .wiki { + .wiki-title { + @extend %light; + @extend %larger; + } .remove { @extend %small; color: $gray-light; From 83a377c3a369731a9cb15beb80b61ba1de6dc2cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Fri, 11 Dec 2015 09:56:14 +0100 Subject: [PATCH 078/100] Hide history and comments if user has no permissions --- app/partials/common/history/history-base.jade | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/partials/common/history/history-base.jade b/app/partials/common/history/history-base.jade index 4ca4a9af..0cb8289a 100644 --- a/app/partials/common/history/history-base.jade +++ b/app/partials/common/history/history-base.jade @@ -1,4 +1,4 @@ -section.history +section.history(tg-check-permission!="modify_<%- type %>") ul.history-tabs li a(href="#", class="active", data-section-class="history-comments") @@ -10,7 +10,7 @@ section.history span.tab-title(translate="ACTIVITY.TITLE") section.history-comments .comments-list - div(tg-check-permission!="modify_<%- type %>", tg-toggle-comment, class="add-comment") + div(tg-toggle-comment, class="add-comment") textarea(ng-attr-placeholder="{{'COMMENTS.TYPE_NEW_COMMENT' | translate}}", ng-model!="<%- ngmodel %>.comment", tg-markitup="tg-markitup") <% if (mode !== "edit") { %> a(class="help-markdown", href="https://taiga.io/support/taiga-markdown-syntax/", target="_blank", title="{{'COMMON.WYSIWYG.MARKDOWN_HELP' | translate}}") From 31224ecbd51c88242911184e42eeb5039f2f24cb Mon Sep 17 00:00:00 2001 From: Juanfran Date: Fri, 11 Dec 2015 13:24:16 +0100 Subject: [PATCH 079/100] lazy pagination --- .../projects-resource.service.coffee | 6 ++- .../resources/users-resource.service.coffee | 46 +++++++++++++------ 2 files changed, 37 insertions(+), 15 deletions(-) diff --git a/app/modules/resources/projects-resource.service.coffee b/app/modules/resources/projects-resource.service.coffee index a561d575..a2d124b0 100644 --- a/app/modules/resources/projects-resource.service.coffee +++ b/app/modules/resources/projects-resource.service.coffee @@ -66,7 +66,11 @@ Resource = (urlsService, http, paginateResponseService) -> url = urlsService.resolve("timeline-project") url = "#{url}/#{projectId}" - return http.get(url, params).then (result) -> + return http.get(url, params, { + headers: { + 'x-lazy-pagination': true + } + }).then (result) -> result = Immutable.fromJS(result) return paginateResponseService(result) diff --git a/app/modules/resources/users-resource.service.coffee b/app/modules/resources/users-resource.service.coffee index 6d04bfa1..19b40da8 100644 --- a/app/modules/resources/users-resource.service.coffee +++ b/app/modules/resources/users-resource.service.coffee @@ -71,10 +71,13 @@ Resource = (urlsService, http, paginateResponseService) -> params.type = type if type? params.q = q if q? - return http.get(url, params) - .then (result) -> - result = Immutable.fromJS(result) - return paginateResponseService(result) + return http.get(url, params, { + headers: { + 'x-lazy-pagination': true + } + }).then (result) -> + result = Immutable.fromJS(result) + return paginateResponseService(result) service.getVoted = (userId, page, type, q) -> url = urlsService.resolve("user-voted", userId) @@ -84,10 +87,13 @@ Resource = (urlsService, http, paginateResponseService) -> params.type = type if type? params.q = q if q? - return http.get(url, params) - .then (result) -> - result = Immutable.fromJS(result) - return paginateResponseService(result) + return http.get(url, params, { + headers: { + 'x-lazy-pagination': true + } + }).then (result) -> + result = Immutable.fromJS(result) + return paginateResponseService(result) service.getWatched = (userId, page, type, q) -> url = urlsService.resolve("user-watched", userId) @@ -97,10 +103,13 @@ Resource = (urlsService, http, paginateResponseService) -> params.type = type if type? params.q = q if q? - return http.get(url, params) - .then (result) -> - result = Immutable.fromJS(result) - return paginateResponseService(result) + return http.get(url, params, { + headers: { + 'x-lazy-pagination': true + } + }).then (result) -> + result = Immutable.fromJS(result) + return paginateResponseService(result) service.getProfileTimeline = (userId, page) -> params = { @@ -110,7 +119,11 @@ Resource = (urlsService, http, paginateResponseService) -> url = urlsService.resolve("timeline-profile") url = "#{url}/#{userId}" - return http.get(url, params).then (result) -> + return http.get(url, params, { + headers: { + 'x-lazy-pagination': true + } + }).then (result) -> result = Immutable.fromJS(result) return paginateResponseService(result) @@ -122,7 +135,12 @@ Resource = (urlsService, http, paginateResponseService) -> url = urlsService.resolve("timeline-user") url = "#{url}/#{userId}" - return http.get(url, params).then (result) -> + + return http.get(url, params, { + headers: { + 'x-lazy-pagination': true + } + }).then (result) -> result = Immutable.fromJS(result) return paginateResponseService(result) From 26006f294087456993fd0a1de4d18d7a80f2fa04 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Fri, 11 Dec 2015 10:03:42 +0100 Subject: [PATCH 080/100] cancelable search --- app/coffee/app.coffee | 2 +- app/coffee/modules/base/http.coffee | 2 -- app/coffee/modules/common/wisiwyg.coffee | 8 +++++- app/coffee/modules/resources/search.coffee | 29 +++++++++++++++++----- app/coffee/modules/search.coffee | 14 ++++------- 5 files changed, 36 insertions(+), 19 deletions(-) diff --git a/app/coffee/app.coffee b/app/coffee/app.coffee index 39ce4fd5..60e3ad73 100644 --- a/app/coffee/app.coffee +++ b/app/coffee/app.coffee @@ -419,7 +419,7 @@ configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEven # Add next param when user try to access to a secction need auth permissions. authHttpIntercept = ($q, $location, $navUrls, $lightboxService) -> httpResponseError = (response) -> - if response.status == 0 || response.status == -1 + if response.status == 0 || (response.status == -1 && !response.config.cancelable) $lightboxService.closeAll() $location.path($navUrls.resolve("error")) $location.replace() diff --git a/app/coffee/modules/base/http.coffee b/app/coffee/modules/base/http.coffee index e6c9dc03..619f4a19 100644 --- a/app/coffee/modules/base/http.coffee +++ b/app/coffee/modules/base/http.coffee @@ -45,8 +45,6 @@ class HttpService extends taiga.Service request: (options) -> options.headers = _.merge({}, options.headers or {}, @.headers()) - if _.isPlainObject(options.data) - options.data = JSON.stringify(options.data) return @http(options) diff --git a/app/coffee/modules/common/wisiwyg.coffee b/app/coffee/modules/common/wisiwyg.coffee index d3b82c55..98ce7ea4 100644 --- a/app/coffee/modules/common/wisiwyg.coffee +++ b/app/coffee/modules/common/wisiwyg.coffee @@ -69,6 +69,8 @@ MarkitupDirective = ($rootscope, $rs, $selectedText, $template, $compile, $trans $scope.$on "markdown-editor:submit", -> closePreviewMode() + cancelablePromise = null + preview = -> markdownDomNode = element.parents(".markdown") markItUpDomNode = element.parents(".markItUp") @@ -370,7 +372,11 @@ MarkitupDirective = ($rootscope, $rs, $selectedText, $template, $compile, $trans return true return false - $rs.search.do($scope.projectId, term).then (res) => + cancelablePromise.abort() if cancelablePromise + + cancelablePromise = $rs.search.do($scope.projectId, term) + + cancelablePromise.then (res) => # ignore wikipages if they're the only results. can't exclude them in search if res.count < 1 or res.count == res.wikipages.length callback([]) diff --git a/app/coffee/modules/resources/search.coffee b/app/coffee/modules/resources/search.coffee index a452b4ae..48639e25 100644 --- a/app/coffee/modules/resources/search.coffee +++ b/app/coffee/modules/resources/search.coffee @@ -22,22 +22,39 @@ taiga = @.taiga -resourceProvider = ($repo, $urls, $http) -> +resourceProvider = ($repo, $urls, $http, $q) -> service = {} service.do = (projectId, term) -> + deferredAbort = $q.defer() + url = $urls.resolve("search") params = { - project: projectId - text: term, - get_all: false + url: url, + method: "GET", + timeout: deferredAbort.promise, + cancelable: true, + params: { + project: projectId + text: term, + get_all: false, + } } - return $http.get(url, params).then (data) -> + request = $http.request(params).then (data) -> return data.data + request.abort = () -> + deferredAbort.resolve() + + request.finally = () -> + request.abort = angular.noop + deferredAbort = request = null + + return request + return (instance) -> instance.search = service module = angular.module("taigaResources") -module.factory("$tgSearchResourcesProvider", ["$tgRepo", "$tgUrls", "$tgHttp", resourceProvider]) +module.factory("$tgSearchResourcesProvider", ["$tgRepo", "$tgUrls", "$tgHttp", "$q", resourceProvider]) diff --git a/app/coffee/modules/search.coffee b/app/coffee/modules/search.coffee index 57066946..7f20fc3a 100644 --- a/app/coffee/modules/search.coffee +++ b/app/coffee/modules/search.coffee @@ -95,19 +95,15 @@ class SearchController extends mixOf(taiga.Controller, taiga.PageMixin) @scope.loading = true @._loadSearchData(term).then (data) => - if data - @scope.searchResults = data - @scope.loading = false + @scope.searchResults = data + @scope.loading = false _loadSearchData: (term = "") -> - @.deferredAbort.resolve() if @.deferredAbort + @._promise.abort() if @._promise - @.deferredAbort = @q.defer() + @._promise = @rs.search.do(@scope.projectId, term) - @rs.search.do(@scope.projectId, term).then (data) => - @.deferredAbort.resolve(data) - - return @.deferredAbort.promise + return @._promise loadInitialData: -> return @.loadProject().then (project) => From e4daf98069ada06e046ffa0ddf97cdd7f9990c6a Mon Sep 17 00:00:00 2001 From: Juanfran Date: Fri, 11 Dec 2015 14:54:56 +0100 Subject: [PATCH 081/100] add only_relevant to timeline --- app/modules/resources/projects-resource.service.coffee | 3 ++- app/modules/resources/users-resource.service.coffee | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/modules/resources/projects-resource.service.coffee b/app/modules/resources/projects-resource.service.coffee index a2d124b0..3d7ae7a6 100644 --- a/app/modules/resources/projects-resource.service.coffee +++ b/app/modules/resources/projects-resource.service.coffee @@ -60,7 +60,8 @@ Resource = (urlsService, http, paginateResponseService) -> service.getTimeline = (projectId, page) -> params = { - page: page + page: page, + only_relevant: true } url = urlsService.resolve("timeline-project") diff --git a/app/modules/resources/users-resource.service.coffee b/app/modules/resources/users-resource.service.coffee index 19b40da8..09818777 100644 --- a/app/modules/resources/users-resource.service.coffee +++ b/app/modules/resources/users-resource.service.coffee @@ -71,6 +71,8 @@ Resource = (urlsService, http, paginateResponseService) -> params.type = type if type? params.q = q if q? + params.only_relevant = true + return http.get(url, params, { headers: { 'x-lazy-pagination': true @@ -129,7 +131,8 @@ Resource = (urlsService, http, paginateResponseService) -> service.getUserTimeline = (userId, page) -> params = { - page: page + page: page, + only_relevant: true } url = urlsService.resolve("timeline-user") From 53d5f3d1c034ed237f8bd28b4bc6073741f45998 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Wed, 16 Dec 2015 08:16:22 +0100 Subject: [PATCH 082/100] fix focus on open lightbox --- app/coffee/modules/common/lightboxes.coffee | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/coffee/modules/common/lightboxes.coffee b/app/coffee/modules/common/lightboxes.coffee index 4cb8b372..74b65d3e 100644 --- a/app/coffee/modules/common/lightboxes.coffee +++ b/app/coffee/modules/common/lightboxes.coffee @@ -44,9 +44,8 @@ class LightboxService extends taiga.Service @animationFrame.add -> $el.addClass("open") - - @animationFrame.add -> - $el.find('input,textarea').first().focus() + $el.one "transitionend", => + $el.find('input,textarea').first().focus() @animationFrame.add => lightboxContent.show() From e4288e7c6032fd2afcb18cf3585577897c588a84 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Thu, 17 Dec 2015 08:37:32 +0100 Subject: [PATCH 083/100] timeline load twice - fixed --- app/coffee/app.coffee | 2 ++ app/modules/profile/profile-favs/profile-favs.jade | 1 - app/modules/user-timeline/user-timeline/user-timeline.jade | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/coffee/app.coffee b/app/coffee/app.coffee index 60e3ad73..d37ec0c8 100644 --- a/app/coffee/app.coffee +++ b/app/coffee/app.coffee @@ -622,6 +622,8 @@ init = ($log, $rootscope, $auth, $events, $analytics, $translate, $location, $na pluginsWithModule = _.filter(@.taigaContribPlugins, (plugin) -> plugin.module) +angular.module('infinite-scroll').value('THROTTLE_MILLISECONDS', 500) + modules = [ # Main Global Modules "taigaBase", diff --git a/app/modules/profile/profile-favs/profile-favs.jade b/app/modules/profile/profile-favs/profile-favs.jade index 7ce66060..3b1ece60 100644 --- a/app/modules/profile/profile-favs/profile-favs.jade +++ b/app/modules/profile/profile-favs/profile-favs.jade @@ -53,7 +53,6 @@ section.profile-favs div( infinite-scroll="vm.loadItems()" - infinite-scroll-distance="2" infinite-scroll-disabled="vm.scrollDisabled" ) div( diff --git a/app/modules/user-timeline/user-timeline/user-timeline.jade b/app/modules/user-timeline/user-timeline/user-timeline.jade index 35c59719..b227d860 100644 --- a/app/modules/user-timeline/user-timeline/user-timeline.jade +++ b/app/modules/user-timeline/user-timeline/user-timeline.jade @@ -3,5 +3,5 @@ section.profile-timeline div.spin img(src="/#{v}/svg/spinner-circle.svg", alt="Loading...") - div(infinite-scroll="vm.loadTimeline()", infinite-scroll-distance="3", infinite-scroll-disabled="vm.scrollDisabled") + div(infinite-scroll="vm.loadTimeline()", infinite-scroll-disabled="vm.scrollDisabled") div(tg-repeat="timeline in vm.timelineList", tg-user-timeline-item="timeline") From d1af25a59684b03f90b41c23b9f6747704f0d040 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Mon, 21 Dec 2015 12:34:08 +0100 Subject: [PATCH 084/100] Use the new system for decorator plugins --- app-loader/app-loader.coffee | 7 +++++++ app/coffee/app.coffee | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app-loader/app-loader.coffee b/app-loader/app-loader.coffee index 9ddbf62b..4cd95415 100644 --- a/app-loader/app-loader.coffee +++ b/app-loader/app-loader.coffee @@ -15,6 +15,13 @@ window.taigaConfig = { "maxUploadFileSize": null, "contribPlugins": [] } +window._decorators= [] + +window.addDecorator = (provider, decorator) -> + window._decorators.push({provider: provider, decorator: decorator}) + +window.getDecorators = -> + return window._decorators loadStylesheet = (path) -> $('head').append('') diff --git a/app/coffee/app.coffee b/app/coffee/app.coffee index d37ec0c8..f4d3ec84 100644 --- a/app/coffee/app.coffee +++ b/app/coffee/app.coffee @@ -516,12 +516,13 @@ configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEven $translateProvider.fallbackLanguage(preferedLangCode) - # decoratos - decorators = _.where(@.taigaContribPlugins, {"type": "decorator"}) + # decoratos plugins + decorators = window.getDecorators() _.each decorators, (decorator) -> $provide.decorator decorator.provider, decorator.decorator + i18nInit = (lang, $translate) -> # i18n - moment.js moment.locale(lang) From f6cf6d227c2f45511e1530dafba55f3b1bc6355b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Mon, 21 Dec 2015 19:49:11 +0100 Subject: [PATCH 085/100] Improve the new plugin system --- app-loader/app-loader.coffee | 8 +++++++- app/coffee/app.coffee | 2 +- app/coffee/modules/base/contrib.coffee | 8 +++----- app/partials/contrib/main.jade | 2 +- .../includes/modules/admin/admin-submenu-contrib.jade | 6 +++++- app/partials/includes/modules/login-form.jade | 2 +- 6 files changed, 18 insertions(+), 10 deletions(-) diff --git a/app-loader/app-loader.coffee b/app-loader/app-loader.coffee index 4cd95415..c290a533 100644 --- a/app-loader/app-loader.coffee +++ b/app-loader/app-loader.coffee @@ -1,4 +1,5 @@ window._version = "___VERSION___" + window.taigaConfig = { "api": "http://localhost:8000/api/v1/", "eventsUrl": null, @@ -15,7 +16,10 @@ window.taigaConfig = { "maxUploadFileSize": null, "contribPlugins": [] } -window._decorators= [] + +window.taigaContribPlugins = [] + +window._decorators = [] window.addDecorator = (provider, decorator) -> window._decorators.push({provider: provider, decorator: decorator}) @@ -29,6 +33,8 @@ loadStylesheet = (path) -> loadPlugin = (pluginPath) -> return new Promise (resolve, reject) -> $.getJSON(pluginPath).then (plugin) -> + window.taigaContribPlugins.push(plugin) + if plugin.css loadStylesheet(plugin.css) diff --git a/app/coffee/app.coffee b/app/coffee/app.coffee index f4d3ec84..79bb03b5 100644 --- a/app/coffee/app.coffee +++ b/app/coffee/app.coffee @@ -20,7 +20,7 @@ ### @taiga = taiga = {} -@.taigaContribPlugins = @.taigaContribPlugins or [] +@.taigaContribPlugins = @.taigaContribPlugins or window.taigaContribPlugins or [] # Generic function for generate hash from a arbitrary length # collection of parameters. diff --git a/app/coffee/modules/base/contrib.coffee b/app/coffee/modules/base/contrib.coffee index 9f39cef4..bb0a15a4 100644 --- a/app/coffee/modules/base/contrib.coffee +++ b/app/coffee/modules/base/contrib.coffee @@ -19,7 +19,8 @@ # File: modules/base/contrib.coffee ### -taigaContribPlugins = @.taigaContribPlugins = @.taigaContribPlugins or [] +module = angular.module("taigaBase") + class ContribController extends taiga.Controller @.$inject = [ @@ -32,9 +33,7 @@ class ContribController extends taiga.Controller ] constructor: (@rootScope, @scope, @params, @repo, @rs, @confirm) -> - @scope.adminPlugins = _.where(@rootScope.contribPlugins, {"type": "admin"}) - @scope.currentPlugin = _.first(_.where(@scope.adminPlugins, {"slug": @params.plugin})) - @scope.pluginTemplate = "contrib/#{@scope.currentPlugin.slug}" + @scope.currentPlugin = _.first(_.where(@rootScope.adminPlugins, {"slug": @params.plugin})) @scope.projectSlug = @params.pslug promise = @.loadInitialData() @@ -53,5 +52,4 @@ class ContribController extends taiga.Controller loadInitialData: -> return @.loadProject() -module = angular.module("taigaBase") module.controller("ContribController", ContribController) diff --git a/app/partials/contrib/main.jade b/app/partials/contrib/main.jade index e2b191b1..5ed1fd83 100644 --- a/app/partials/contrib/main.jade +++ b/app/partials/contrib/main.jade @@ -9,4 +9,4 @@ div.wrapper.roles(ng-init="section='admin'", ng-controller="ContribController as sidebar.menu-tertiary.sidebar include ../includes/modules/admin/admin-submenu-contrib - section.main.admin-common.admin-contrib(ng-include="pluginTemplate") + section.main.admin-common.admin-contrib(ng-include="currentPlugin.template") diff --git a/app/partials/includes/modules/admin/admin-submenu-contrib.jade b/app/partials/includes/modules/admin/admin-submenu-contrib.jade index 6d072e95..3f5e903d 100644 --- a/app/partials/includes/modules/admin/admin-submenu-contrib.jade +++ b/app/partials/includes/modules/admin/admin-submenu-contrib.jade @@ -2,5 +2,9 @@ section.admin-submenu nav ul li#adminmenu-contrib(ng-repeat="plugin in adminPlugins") - a(href="", tg-nav="project-admin-contrib:project=projectSlug,plugin=plugin.slug" ng-class="{active: plugin.slug == currentPlugin.slug}") + a( + href="" + tg-nav="project-admin-contrib:project=projectSlug,plugin=plugin.slug" + ng-class="{active: plugin.slug == currentPlugin.slug}" + ) span.title {{ plugin.name }} diff --git a/app/partials/includes/modules/login-form.jade b/app/partials/includes/modules/login-form.jade index 9089a651..87615f94 100644 --- a/app/partials/includes/modules/login-form.jade +++ b/app/partials/includes/modules/login-form.jade @@ -3,7 +3,7 @@ div.login-form-container(tg-login) fieldset input( type="text" - autocorrect="off" + autocorrect="off" autocapitalize="none" name="username" data-required="true" From af8cbae24045227d0101245fe75a1c6b54c96c70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Tue, 22 Dec 2015 15:17:25 +0100 Subject: [PATCH 086/100] Improve burndown button interaction --- app/styles/components/summary.scss | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/styles/components/summary.scss b/app/styles/components/summary.scss index 25f26f33..cd25dc2f 100644 --- a/app/styles/components/summary.scss +++ b/app/styles/components/summary.scss @@ -44,6 +44,9 @@ $summary-background: $grayer; fill: $primary-light; transition: fill .2s; } + svg { + fill: $primary; + } } &.active { .white-line, @@ -53,9 +56,14 @@ $summary-background: $grayer; .graph { fill: $primary; } + svg { + fill: $primary; + } } svg { + fill: $black; height: 100%; + transition: all .2s; width: 100%; } .graph, From d64dc874a547fa975929d9bbfcacf8b878c810b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Tue, 22 Dec 2015 15:45:00 +0100 Subject: [PATCH 087/100] Add blocked warning in the working on area --- app/modules/home/duties/duty.jade | 8 +++++++- app/modules/home/duties/duty.scss | 8 ++++---- app/modules/home/working-on/working-on.jade | 8 +++++--- app/styles/components/list-items.scss | 4 ++++ 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/app/modules/home/duties/duty.jade b/app/modules/home/duties/duty.jade index c922b6a6..81fe9b35 100644 --- a/app/modules/home/duties/duty.jade +++ b/app/modules/home/duties/duty.jade @@ -1,6 +1,7 @@ a.list-itemtype-ticket( href="{{ ::vm.duty.get('url') }}" title="{{ ::duty.get('subject') }}" + ng-class="{'blocked': vm.duty.get('is_blocked')}" ) div.list-itemtype-avatar(ng-if="::vm.duty.get('assigned_to_extra_info')") img( @@ -20,4 +21,9 @@ a.list-itemtype-ticket( h2 span.ticket-id(tg-bo-ref="duty.get('ref')") - span.ticket-title {{ ::duty.get('subject') }} + span.ticket-title + span.ticket-blocked( + ng-if="::vm.duty.get('is_blocked')" + title="{{::vm.duty.get('blocked_note')}}" + ) Blocked {{ COMMON.BLOCKED | translate }} + {{ ::duty.get('subject') }} diff --git a/app/modules/home/duties/duty.scss b/app/modules/home/duties/duty.scss index b8ca2f03..8cca9219 100644 --- a/app/modules/home/duties/duty.scss +++ b/app/modules/home/duties/duty.scss @@ -12,15 +12,15 @@ &:last-child { border: 0; } - &.blocked { - background: rgba($red-light, .2); - color: $red; - } >a { align-items: center; border-bottom: 0; display: flex; flex-direction: row; + &.blocked { + background: rgba($red-light, .2); + color: $red; + } } } .see-more { diff --git a/app/modules/home/working-on/working-on.jade b/app/modules/home/working-on/working-on.jade index dc4a70ca..13acd194 100644 --- a/app/modules/home/working-on/working-on.jade +++ b/app/modules/home/working-on/working-on.jade @@ -2,8 +2,10 @@ section.working-on-container .title-bar.working-on-title(translate="HOME.WORKING_ON_SECTION") .working-on(ng-if="vm.assignedTo.size") - .duty-single(tg-duty="duty", tg-repeat="duty in vm.assignedTo", ng-class="{blocked: duty.is_blocked}") - + .duty-single( + tg-duty="duty" + tg-repeat="duty in vm.assignedTo" + ) .working-on-empty(ng-if="vm.assignedTo != undefined && vm.assignedTo.size === 0") p(translate="HOME.EMPTY_WORKING_ON") include empty.jade @@ -12,7 +14,7 @@ section.watching-container .title-bar.watching-title(translate="HOME.WATCHING_SECTION") .watching(ng-if="vm.watching.size") - .duty-single(tg-duty="duty", tg-repeat="duty in vm.watching", ng-class="{blocked: duty.is_blocked}") + .duty-single(tg-duty="duty", tg-repeat="duty in vm.watching", ng-class="{'blocked': duty.is_blocked}") .watching-empty(ng-if="vm.watching != undefined && vm.watching.size === 0") p(translate="HOME.EMPTY_WATCHING") diff --git a/app/styles/components/list-items.scss b/app/styles/components/list-items.scss index ee3d198f..b042c028 100644 --- a/app/styles/components/list-items.scss +++ b/app/styles/components/list-items.scss @@ -82,6 +82,10 @@ color: $gray-light; margin-right: .3rem; } + .ticket-blocked { + color: $red; + margin-left: .3rem; + } } From a6245324131d8c797430351dc8dd204349bc911f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Tue, 22 Dec 2015 15:59:43 +0100 Subject: [PATCH 088/100] Do no ellipsis Stories on backlog --- app/styles/modules/backlog/backlog-table.scss | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/app/styles/modules/backlog/backlog-table.scss b/app/styles/modules/backlog/backlog-table.scss index bf8346f4..9b84249f 100644 --- a/app/styles/modules/backlog/backlog-table.scss +++ b/app/styles/modules/backlog/backlog-table.scss @@ -46,7 +46,7 @@ width: 100%; } .status { - flex-basis: 150px; + flex-basis: 100px; flex-grow: 0; flex-shrink: 0; } @@ -190,10 +190,9 @@ @extend %light; display: inline-block; flex: 1; - max-width: 90%; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; + } + span { + line-height: 1.5; } } .tags-block { From 07f2c1f7bb79b20df036157acbb54d9061742da2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Wed, 23 Dec 2015 08:44:59 +0100 Subject: [PATCH 089/100] Fix code typo --- app/modules/home/duties/duty.jade | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/modules/home/duties/duty.jade b/app/modules/home/duties/duty.jade index 81fe9b35..ee04e0b8 100644 --- a/app/modules/home/duties/duty.jade +++ b/app/modules/home/duties/duty.jade @@ -25,5 +25,5 @@ a.list-itemtype-ticket( span.ticket-blocked( ng-if="::vm.duty.get('is_blocked')" title="{{::vm.duty.get('blocked_note')}}" - ) Blocked {{ COMMON.BLOCKED | translate }} - {{ ::duty.get('subject') }} + ) {{ 'COMMON.BLOCKED' | translate }} + span {{ ::duty.get('subject') }} From 58d4e20334718a8ed427dd4d6393a208b5e0b29d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Wed, 23 Dec 2015 09:59:13 +0100 Subject: [PATCH 090/100] Add ellipsis for long names in project columns --- app/styles/modules/kanban/kanban-table.scss | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/styles/modules/kanban/kanban-table.scss b/app/styles/modules/kanban/kanban-table.scss index 2b7737d3..544e08f1 100644 --- a/app/styles/modules/kanban/kanban-table.scss +++ b/app/styles/modules/kanban/kanban-table.scss @@ -81,6 +81,9 @@ $column-margin: 0 10px 0 0; &:last-child { margin-right: 0; } + span { + @include ellipsis(65%); + } .icon { @extend %medium; color: $gray-light; From 332346c565a830383a2548b7e2dd996f3fd39896 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Wed, 23 Dec 2015 10:18:41 +0100 Subject: [PATCH 091/100] Improve issues table on MDPI --- app/styles/dependencies/responsive.scss | 2 +- app/styles/modules/issues/issues-table.scss | 7 ------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/app/styles/dependencies/responsive.scss b/app/styles/dependencies/responsive.scss index e426b4e6..d3ecb5e0 100644 --- a/app/styles/dependencies/responsive.scss +++ b/app/styles/dependencies/responsive.scss @@ -7,7 +7,7 @@ @media (min-width: 1200px) { @content ; } } @else if $point == laptop { - @media (max-width: 1200px) { @content ; } + @media (max-width: 1280px) { @content ; } } @else if $point == tablet { @media (max-width: 767px) { @content ; } diff --git a/app/styles/modules/issues/issues-table.scss b/app/styles/modules/issues/issues-table.scss index 3b4f8a26..d9468859 100644 --- a/app/styles/modules/issues/issues-table.scss +++ b/app/styles/modules/issues/issues-table.scss @@ -140,13 +140,6 @@ display: none; } } - .level-field, - .created-field, - .assigned-field { - @include breakpoint(tablet) { - display: none; - } - } } .empty-issues { From 2319ba1766f2c5e6273ac7db395eac5c1ff3dde7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Mon, 4 Jan 2016 09:02:46 +0100 Subject: [PATCH 092/100] Update license message --- app/coffee/app.coffee | 6 +++--- app/coffee/classes.coffee | 6 +++--- app/coffee/modules/admin.coffee | 6 +++--- app/coffee/modules/admin/lightboxes.coffee | 6 +++--- app/coffee/modules/admin/memberships.coffee | 6 +++--- app/coffee/modules/admin/nav.coffee | 6 +++--- app/coffee/modules/admin/project-profile.coffee | 6 +++--- app/coffee/modules/admin/project-values.coffee | 6 +++--- app/coffee/modules/admin/roles.coffee | 6 +++--- app/coffee/modules/admin/third-parties.coffee | 6 +++--- app/coffee/modules/auth.coffee | 6 +++--- app/coffee/modules/backlog.coffee | 6 +++--- app/coffee/modules/backlog/filters.coffee | 6 +++--- app/coffee/modules/backlog/lightboxes.coffee | 6 +++--- app/coffee/modules/backlog/main.coffee | 6 +++--- app/coffee/modules/backlog/sortable.coffee | 6 +++--- app/coffee/modules/backlog/sprints.coffee | 6 +++--- app/coffee/modules/base.coffee | 6 +++--- app/coffee/modules/base/bind.coffee | 6 +++--- app/coffee/modules/base/conf.coffee | 6 +++--- app/coffee/modules/base/contrib.coffee | 6 +++--- app/coffee/modules/base/filters.coffee | 6 +++--- app/coffee/modules/base/http.coffee | 6 +++--- app/coffee/modules/base/location.coffee | 6 +++--- app/coffee/modules/base/model.coffee | 6 +++--- app/coffee/modules/base/navurls.coffee | 6 +++--- app/coffee/modules/base/repository.coffee | 6 +++--- app/coffee/modules/base/storage.coffee | 6 +++--- app/coffee/modules/base/urls.coffee | 6 +++--- app/coffee/modules/common.coffee | 6 +++--- app/coffee/modules/common/analytics.coffee | 6 +++--- app/coffee/modules/common/attachments.coffee | 6 +++--- app/coffee/modules/common/bind-scope.coffee | 2 +- .../modules/common/compile-html.directive.coffee | 2 +- app/coffee/modules/common/components.coffee | 6 +++--- app/coffee/modules/common/confirm.coffee | 6 +++--- app/coffee/modules/common/custom-field-values.coffee | 6 +++--- app/coffee/modules/common/estimation.coffee | 6 +++--- app/coffee/modules/common/filters.coffee | 6 +++--- app/coffee/modules/common/history.coffee | 6 +++--- app/coffee/modules/common/importer.coffee | 6 +++--- app/coffee/modules/common/lightboxes.coffee | 6 +++--- app/coffee/modules/common/loader.coffee | 10 +++++----- app/coffee/modules/common/loading.coffee | 6 +++--- app/coffee/modules/common/popovers.coffee | 6 +++--- app/coffee/modules/common/raven-logger.coffee | 6 +++--- app/coffee/modules/common/tags.coffee | 6 +++--- app/coffee/modules/common/wisiwyg.coffee | 6 +++--- app/coffee/modules/controllerMixins.coffee | 6 +++--- app/coffee/modules/events.coffee | 6 +++--- app/coffee/modules/feedback.coffee | 6 +++--- app/coffee/modules/integrations.coffee | 6 +++--- app/coffee/modules/issues.coffee | 6 +++--- app/coffee/modules/issues/detail.coffee | 6 +++--- app/coffee/modules/issues/lightboxes.coffee | 6 +++--- app/coffee/modules/issues/list.coffee | 6 +++--- app/coffee/modules/kanban.coffee | 6 +++--- app/coffee/modules/kanban/main.coffee | 6 +++--- app/coffee/modules/kanban/sortable.coffee | 6 +++--- app/coffee/modules/plugins.coffee | 6 +++--- app/coffee/modules/projects.coffee | 6 +++--- app/coffee/modules/projects/lightboxes.coffee | 6 +++--- app/coffee/modules/related-tasks.coffee | 6 +++--- app/coffee/modules/resources.coffee | 6 +++--- app/coffee/modules/resources/attachments.coffee | 6 +++--- .../modules/resources/custom-attributes-values.coffee | 6 +++--- app/coffee/modules/resources/custom-attributes.coffee | 6 +++--- app/coffee/modules/resources/history.coffee | 6 +++--- app/coffee/modules/resources/invitations.coffee | 6 +++--- app/coffee/modules/resources/issues.coffee | 6 +++--- app/coffee/modules/resources/kanban.coffee | 6 +++--- app/coffee/modules/resources/locales.coffee | 6 +++--- app/coffee/modules/resources/mdrender.coffee | 6 +++--- app/coffee/modules/resources/memberships.coffee | 6 +++--- app/coffee/modules/resources/modules.coffee | 2 +- app/coffee/modules/resources/notify-policies.coffee | 6 +++--- app/coffee/modules/resources/projects.coffee | 6 +++--- app/coffee/modules/resources/roles.coffee | 6 +++--- app/coffee/modules/resources/search.coffee | 6 +++--- app/coffee/modules/resources/sprints.coffee | 6 +++--- app/coffee/modules/resources/tasks.coffee | 6 +++--- app/coffee/modules/resources/user-settings.coffee | 6 +++--- app/coffee/modules/resources/users.coffee | 6 +++--- app/coffee/modules/resources/userstories.coffee | 6 +++--- app/coffee/modules/resources/webhooklogs.coffee | 2 +- app/coffee/modules/resources/webhooks.coffee | 2 +- app/coffee/modules/resources/wiki.coffee | 6 +++--- app/coffee/modules/search.coffee | 6 +++--- app/coffee/modules/taskboard.coffee | 6 +++--- app/coffee/modules/taskboard/charts.coffee | 6 +++--- app/coffee/modules/taskboard/lightboxes.coffee | 6 +++--- app/coffee/modules/taskboard/main.coffee | 6 +++--- app/coffee/modules/taskboard/sortable.coffee | 6 +++--- app/coffee/modules/tasks.coffee | 6 +++--- app/coffee/modules/tasks/detail.coffee | 6 +++--- app/coffee/modules/team.coffee | 6 +++--- app/coffee/modules/team/main.coffee | 6 +++--- app/coffee/modules/user-settings.coffee | 6 +++--- .../modules/user-settings/change-password.coffee | 6 +++--- app/coffee/modules/user-settings/lightboxes.coffee | 6 +++--- app/coffee/modules/user-settings/main.coffee | 6 +++--- app/coffee/modules/user-settings/nav.coffee | 6 +++--- app/coffee/modules/user-settings/notifications.coffee | 6 +++--- app/coffee/modules/userstories.coffee | 6 +++--- app/coffee/modules/userstories/detail.coffee | 6 +++--- app/coffee/modules/wiki.coffee | 6 +++--- app/coffee/modules/wiki/main.coffee | 6 +++--- app/coffee/modules/wiki/nav.coffee | 6 +++--- app/coffee/utils.coffee | 6 +++--- app/modules/components/components.module.coffee | 2 +- .../components/joy-ride/joy-ride.directive.coffee | 2 +- .../components/joy-ride/joy-ride.service.coffee | 2 +- .../components/joy-ride/joy-ride.service.spec.coffee | 2 +- .../project-menu/project-menu.controller.coffee | 2 +- .../project-menu/project-menu.controller.spec.coffee | 2 +- .../project-menu/project-menu.directive.coffee | 2 +- ...-service-and-privacy-policy-notice.directive.coffee | 6 +++--- .../vote-button/vote-button.controller.coffee | 2 +- .../vote-button/vote-button.controller.spec.coffee | 2 +- .../vote-button/vote-button.directive.coffee | 2 +- .../watch-button/watch-button.controller.coffee | 2 +- .../watch-button/watch-button.controller.spec.coffee | 2 +- .../watch-button/watch-button.directive.coffee | 2 +- .../external-apps/external-app.controller.coffee | 2 +- .../external-apps/external-app.controller.spec.coffee | 2 +- app/modules/external-apps/external-app.service.coffee | 2 +- .../external-apps/external-app.service.spec.coffee | 2 +- app/modules/external-apps/external-apps.module.coffee | 2 +- app/modules/feedback/feedback.service.coffee | 2 +- app/modules/feedback/feedback.service.spec.coffee | 2 +- app/modules/home/duties/duty.directive.coffee | 2 +- app/modules/home/duties/duty.directive.spec.coffee | 2 +- app/modules/home/home.module.coffee | 2 +- app/modules/home/home.service.coffee | 2 +- app/modules/home/home.service.spec.coffee | 2 +- .../projects/home-project-list-directive.spec.coffee | 2 +- .../home/projects/home-project-list.directive.coffee | 2 +- .../home/working-on/working-on.controller.coffee | 2 +- .../home/working-on/working-on.controller.spec.coffee | 2 +- .../home/working-on/working-on.directive.coffee | 2 +- .../dropdown-project-list.directive.coffee | 2 +- .../dropdown-project-list.directive.spec.coffee | 2 +- .../dropdown-user/dropdown-user.directive.coffee | 2 +- .../dropdown-user/dropdown-user.directive.spec.coffee | 2 +- .../navigation-bar/navigation-bar.directive.coffee | 2 +- .../navigation-bar.directive.spec.coffee | 2 +- .../navigation-bar/navigation-bar.module.coffee | 2 +- .../navigation-bar/navigation-bar.service.coffee | 2 +- .../profile/profile-bar/profile-bar.controller.coffee | 2 +- .../profile-bar/profile-bar.controller.spec.coffee | 2 +- .../profile/profile-bar/profile-bar.directive.coffee | 2 +- .../profile-contacts.controller.coffee | 2 +- .../profile-contacts.controller.spec.coffee | 2 +- .../profile-contacts/profile-contacts.directive.coffee | 2 +- .../profile/profile-favs/items/items.directive.coffee | 2 +- .../profile-favs/profile-favs.controller.coffee | 2 +- .../profile-favs/profile-favs.controller.spec.coffee | 2 +- .../profile/profile-favs/profile-favs.directive.coffee | 2 +- .../profile-hints/profile-hints.controller.coffee | 2 +- .../profile-hints/profile-hints.controller.spec.coffee | 2 +- .../profile-hints/profile-hints.directive.coffee | 2 +- .../profile-projects.controller.coffee | 2 +- .../profile-projects.controller.spec.coffee | 2 +- .../profile-projects/profile-projects.directive.coffee | 2 +- .../profile/profile-tab/profile-tab.directive.coffee | 2 +- .../profile-tabs/profile-tabs.controller.coffee | 2 +- .../profile-tabs/profile-tabs.controller.spec.coffee | 2 +- .../profile/profile-tabs/profile-tabs.directive.coffee | 2 +- app/modules/profile/profile.controller.coffee | 2 +- app/modules/profile/profile.controller.spec.coffee | 2 +- app/modules/profile/profile.module.coffee | 2 +- .../like-project-button.controller.coffee | 2 +- .../like-project-button.controller.spec.coffee | 2 +- .../like-project-button.directive.coffee | 2 +- .../like-project-button.service.coffee | 2 +- .../like-project-button.service.spec.coffee | 2 +- .../projects/components/sort-projects.directive.coffee | 2 +- .../watch-project-button.controller.coffee | 2 +- .../watch-project-button.controller.spec.coffee | 2 +- .../watch-project-button.directive.coffee | 2 +- .../watch-project-button.service.coffee | 2 +- .../watch-project-button.service.spec.coffee | 2 +- .../listing/projects-listing.controller.coffee | 2 +- .../listing/projects-listing.controller.spec.coffee | 2 +- app/modules/projects/project/project.controller.coffee | 2 +- .../projects/project/project.controller.spec.coffee | 2 +- app/modules/projects/projects.module.coffee | 2 +- app/modules/projects/projects.service.coffee | 2 +- app/modules/projects/projects.service.spec.coffee | 2 +- .../resources/external-apps-resource.service.coffee | 2 +- app/modules/resources/issues-resource.service.coffee | 2 +- app/modules/resources/projects-resource.service.coffee | 2 +- app/modules/resources/resources.coffee | 2 +- app/modules/resources/resources.module.coffee | 2 +- app/modules/resources/tasks-resource.service.coffee | 2 +- app/modules/resources/user-resource.service.coffee | 2 +- app/modules/resources/users-resource.service.coffee | 2 +- .../resources/userstories-resource.service.coffee | 2 +- app/modules/services/app-meta.service.coffee | 2 +- app/modules/services/app-meta.service.spec.coffee | 2 +- app/modules/services/check-permissions.service.coffee | 2 +- .../services/check-permissions.service.spec.coffee | 2 +- app/modules/services/current-user.service.coffee | 2 +- app/modules/services/current-user.service.spec.coffee | 2 +- app/modules/services/lightbox-factory.service.coffee | 2 +- .../services/lightbox-factory.service.spec.coffee | 2 +- app/modules/services/paginate-response.service.coffee | 2 +- .../services/paginate-response.service.spec.coffee | 2 +- app/modules/services/project.service.coffee | 2 +- app/modules/services/project.service.spec.coffee | 2 +- app/modules/services/scope-event.service.coffee | 2 +- app/modules/services/scope-event.service.spec.coffee | 2 +- app/modules/services/theme.service.coffee | 2 +- app/modules/services/theme.service.spec.coffee | 2 +- app/modules/services/user.service.coffee | 2 +- app/modules/services/user.service.spec.coffee | 2 +- app/modules/services/xhrError.service.coffee | 2 +- app/modules/services/xhrError.service.spec.coffee | 2 +- .../user-timeline-attachment.directive.coffee | 2 +- .../user-timeline-attachment.directive.spec.coffee | 2 +- .../user-timeline-item-title.service.coffee | 2 +- .../user-timeline-item-title.service.spec.coffee | 2 +- .../user-timeline-item-type.service.coffee | 2 +- .../user-timeline-item-type.service.spec.coffee | 2 +- .../user-timeline-item.directive.coffee | 2 +- .../user-timeline-pagination-sequence.service.coffee | 2 +- ...er-timeline-pagination-sequence.service.spec.coffee | 2 +- app/modules/user-timeline/user-timeline.module.coffee | 2 +- .../user-timeline/user-timeline.controller.coffee | 6 +++--- .../user-timeline/user-timeline.controller.spec.coffee | 2 +- .../user-timeline/user-timeline.directive.coffee | 2 +- .../user-timeline/user-timeline.service.coffee | 2 +- .../user-timeline/user-timeline.service.spec.coffee | 2 +- scripts/add_licanse_to_coffee_files.py | 2 +- 234 files changed, 448 insertions(+), 448 deletions(-) diff --git a/app/coffee/app.coffee b/app/coffee/app.coffee index 79bb03b5..4a8796b1 100644 --- a/app/coffee/app.coffee +++ b/app/coffee/app.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/classes.coffee b/app/coffee/classes.coffee index e1d8b9de..a0d26f67 100644 --- a/app/coffee/classes.coffee +++ b/app/coffee/classes.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/admin.coffee b/app/coffee/modules/admin.coffee index e556fcca..3a2322b5 100644 --- a/app/coffee/modules/admin.coffee +++ b/app/coffee/modules/admin.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/admin/lightboxes.coffee b/app/coffee/modules/admin/lightboxes.coffee index 68fd0705..f130eb40 100644 --- a/app/coffee/modules/admin/lightboxes.coffee +++ b/app/coffee/modules/admin/lightboxes.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/admin/memberships.coffee b/app/coffee/modules/admin/memberships.coffee index e87c5c4e..03025f81 100644 --- a/app/coffee/modules/admin/memberships.coffee +++ b/app/coffee/modules/admin/memberships.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/admin/nav.coffee b/app/coffee/modules/admin/nav.coffee index 52dd7920..75fd57e0 100644 --- a/app/coffee/modules/admin/nav.coffee +++ b/app/coffee/modules/admin/nav.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/admin/project-profile.coffee b/app/coffee/modules/admin/project-profile.coffee index c6721f2b..c12da801 100644 --- a/app/coffee/modules/admin/project-profile.coffee +++ b/app/coffee/modules/admin/project-profile.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/admin/project-values.coffee b/app/coffee/modules/admin/project-values.coffee index 6b95c319..f0f947f0 100644 --- a/app/coffee/modules/admin/project-values.coffee +++ b/app/coffee/modules/admin/project-values.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/admin/roles.coffee b/app/coffee/modules/admin/roles.coffee index 78b325c5..3f67247b 100644 --- a/app/coffee/modules/admin/roles.coffee +++ b/app/coffee/modules/admin/roles.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/admin/third-parties.coffee b/app/coffee/modules/admin/third-parties.coffee index 8e7e1daf..a5de9dc6 100644 --- a/app/coffee/modules/admin/third-parties.coffee +++ b/app/coffee/modules/admin/third-parties.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/auth.coffee b/app/coffee/modules/auth.coffee index bc2aaa03..6a6ccc04 100644 --- a/app/coffee/modules/auth.coffee +++ b/app/coffee/modules/auth.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/backlog.coffee b/app/coffee/modules/backlog.coffee index 218f58aa..33eff5a6 100644 --- a/app/coffee/modules/backlog.coffee +++ b/app/coffee/modules/backlog.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/backlog/filters.coffee b/app/coffee/modules/backlog/filters.coffee index 24f353c4..21af3bef 100644 --- a/app/coffee/modules/backlog/filters.coffee +++ b/app/coffee/modules/backlog/filters.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/backlog/lightboxes.coffee b/app/coffee/modules/backlog/lightboxes.coffee index 7de5eaed..ca4e0156 100644 --- a/app/coffee/modules/backlog/lightboxes.coffee +++ b/app/coffee/modules/backlog/lightboxes.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/backlog/main.coffee b/app/coffee/modules/backlog/main.coffee index ca5ea073..6b072eb0 100644 --- a/app/coffee/modules/backlog/main.coffee +++ b/app/coffee/modules/backlog/main.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/backlog/sortable.coffee b/app/coffee/modules/backlog/sortable.coffee index af75929f..a7148f8f 100644 --- a/app/coffee/modules/backlog/sortable.coffee +++ b/app/coffee/modules/backlog/sortable.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/backlog/sprints.coffee b/app/coffee/modules/backlog/sprints.coffee index 12162fcc..19211c25 100644 --- a/app/coffee/modules/backlog/sprints.coffee +++ b/app/coffee/modules/backlog/sprints.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/base.coffee b/app/coffee/modules/base.coffee index f916a2b2..c07d6714 100644 --- a/app/coffee/modules/base.coffee +++ b/app/coffee/modules/base.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/base/bind.coffee b/app/coffee/modules/base/bind.coffee index a54cfb58..7b8c6aac 100644 --- a/app/coffee/modules/base/bind.coffee +++ b/app/coffee/modules/base/bind.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/base/conf.coffee b/app/coffee/modules/base/conf.coffee index f5bfa967..e72a3351 100644 --- a/app/coffee/modules/base/conf.coffee +++ b/app/coffee/modules/base/conf.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/base/contrib.coffee b/app/coffee/modules/base/contrib.coffee index bb0a15a4..71293d2f 100644 --- a/app/coffee/modules/base/contrib.coffee +++ b/app/coffee/modules/base/contrib.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/base/filters.coffee b/app/coffee/modules/base/filters.coffee index 3a094814..0cffc3b7 100644 --- a/app/coffee/modules/base/filters.coffee +++ b/app/coffee/modules/base/filters.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/base/http.coffee b/app/coffee/modules/base/http.coffee index 619f4a19..0ccf80ac 100644 --- a/app/coffee/modules/base/http.coffee +++ b/app/coffee/modules/base/http.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/base/location.coffee b/app/coffee/modules/base/location.coffee index 9ac46e6b..21d844ca 100644 --- a/app/coffee/modules/base/location.coffee +++ b/app/coffee/modules/base/location.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/base/model.coffee b/app/coffee/modules/base/model.coffee index b4787dea..01743de0 100644 --- a/app/coffee/modules/base/model.coffee +++ b/app/coffee/modules/base/model.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/base/navurls.coffee b/app/coffee/modules/base/navurls.coffee index d95d52a5..fd357df8 100644 --- a/app/coffee/modules/base/navurls.coffee +++ b/app/coffee/modules/base/navurls.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/base/repository.coffee b/app/coffee/modules/base/repository.coffee index 7707dfc1..0156dd15 100644 --- a/app/coffee/modules/base/repository.coffee +++ b/app/coffee/modules/base/repository.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/base/storage.coffee b/app/coffee/modules/base/storage.coffee index c3cfb968..e3e5fc2e 100644 --- a/app/coffee/modules/base/storage.coffee +++ b/app/coffee/modules/base/storage.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/base/urls.coffee b/app/coffee/modules/base/urls.coffee index e7843959..33977970 100644 --- a/app/coffee/modules/base/urls.coffee +++ b/app/coffee/modules/base/urls.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/common.coffee b/app/coffee/modules/common.coffee index 268242d3..03fc5687 100644 --- a/app/coffee/modules/common.coffee +++ b/app/coffee/modules/common.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/common/analytics.coffee b/app/coffee/modules/common/analytics.coffee index ffad1347..237e2619 100644 --- a/app/coffee/modules/common/analytics.coffee +++ b/app/coffee/modules/common/analytics.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/common/attachments.coffee b/app/coffee/modules/common/attachments.coffee index f06f19cf..c6ba068f 100644 --- a/app/coffee/modules/common/attachments.coffee +++ b/app/coffee/modules/common/attachments.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/common/bind-scope.coffee b/app/coffee/modules/common/bind-scope.coffee index afe6c636..29f7b4af 100644 --- a/app/coffee/modules/common/bind-scope.coffee +++ b/app/coffee/modules/common/bind-scope.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/common/compile-html.directive.coffee b/app/coffee/modules/common/compile-html.directive.coffee index df6bfcbd..13f66e35 100644 --- a/app/coffee/modules/common/compile-html.directive.coffee +++ b/app/coffee/modules/common/compile-html.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/common/components.coffee b/app/coffee/modules/common/components.coffee index 23b6dab2..0a32e803 100644 --- a/app/coffee/modules/common/components.coffee +++ b/app/coffee/modules/common/components.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/common/confirm.coffee b/app/coffee/modules/common/confirm.coffee index 0f2b41fc..a688bc3c 100644 --- a/app/coffee/modules/common/confirm.coffee +++ b/app/coffee/modules/common/confirm.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/common/custom-field-values.coffee b/app/coffee/modules/common/custom-field-values.coffee index 65ec5438..5e3c6383 100644 --- a/app/coffee/modules/common/custom-field-values.coffee +++ b/app/coffee/modules/common/custom-field-values.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/common/estimation.coffee b/app/coffee/modules/common/estimation.coffee index 1b0fc1fd..1a58ce8d 100644 --- a/app/coffee/modules/common/estimation.coffee +++ b/app/coffee/modules/common/estimation.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/common/filters.coffee b/app/coffee/modules/common/filters.coffee index 71f4fae6..140d859e 100644 --- a/app/coffee/modules/common/filters.coffee +++ b/app/coffee/modules/common/filters.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/common/history.coffee b/app/coffee/modules/common/history.coffee index 8f437373..12b623aa 100644 --- a/app/coffee/modules/common/history.coffee +++ b/app/coffee/modules/common/history.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/common/importer.coffee b/app/coffee/modules/common/importer.coffee index fbe18f4e..65803eb9 100644 --- a/app/coffee/modules/common/importer.coffee +++ b/app/coffee/modules/common/importer.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/common/lightboxes.coffee b/app/coffee/modules/common/lightboxes.coffee index 74b65d3e..13cb9d9a 100644 --- a/app/coffee/modules/common/lightboxes.coffee +++ b/app/coffee/modules/common/lightboxes.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/common/loader.coffee b/app/coffee/modules/common/loader.coffee index f8f16707..bcd2a3e4 100644 --- a/app/coffee/modules/common/loader.coffee +++ b/app/coffee/modules/common/loader.coffee @@ -1,9 +1,9 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino -# Copyright (C) 2014-2015 Juan Francisco Alcántara -# Copyright (C) 2014-2015 Alejandro Alonso +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino +# Copyright (C) 2014-2016 Juan Francisco Alcántara +# Copyright (C) 2014-2016 Alejandro Alonso # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/common/loading.coffee b/app/coffee/modules/common/loading.coffee index 33aa581b..e8a5af2f 100644 --- a/app/coffee/modules/common/loading.coffee +++ b/app/coffee/modules/common/loading.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/common/popovers.coffee b/app/coffee/modules/common/popovers.coffee index 19d0abb6..91db16d4 100644 --- a/app/coffee/modules/common/popovers.coffee +++ b/app/coffee/modules/common/popovers.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/common/raven-logger.coffee b/app/coffee/modules/common/raven-logger.coffee index 217f2bf3..9b316e86 100644 --- a/app/coffee/modules/common/raven-logger.coffee +++ b/app/coffee/modules/common/raven-logger.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/common/tags.coffee b/app/coffee/modules/common/tags.coffee index f2856ce1..2d3e4c19 100644 --- a/app/coffee/modules/common/tags.coffee +++ b/app/coffee/modules/common/tags.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/common/wisiwyg.coffee b/app/coffee/modules/common/wisiwyg.coffee index 98ce7ea4..e5b73d05 100644 --- a/app/coffee/modules/common/wisiwyg.coffee +++ b/app/coffee/modules/common/wisiwyg.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/controllerMixins.coffee b/app/coffee/modules/controllerMixins.coffee index 708e8e7f..0dd5b474 100644 --- a/app/coffee/modules/controllerMixins.coffee +++ b/app/coffee/modules/controllerMixins.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/events.coffee b/app/coffee/modules/events.coffee index bd45e419..82043d22 100644 --- a/app/coffee/modules/events.coffee +++ b/app/coffee/modules/events.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/feedback.coffee b/app/coffee/modules/feedback.coffee index d645cb9d..dda743e4 100644 --- a/app/coffee/modules/feedback.coffee +++ b/app/coffee/modules/feedback.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/integrations.coffee b/app/coffee/modules/integrations.coffee index 5390e236..0fde7411 100644 --- a/app/coffee/modules/integrations.coffee +++ b/app/coffee/modules/integrations.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/issues.coffee b/app/coffee/modules/issues.coffee index 82d8031f..43543202 100644 --- a/app/coffee/modules/issues.coffee +++ b/app/coffee/modules/issues.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/issues/detail.coffee b/app/coffee/modules/issues/detail.coffee index dffcb92b..329e5244 100644 --- a/app/coffee/modules/issues/detail.coffee +++ b/app/coffee/modules/issues/detail.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/issues/lightboxes.coffee b/app/coffee/modules/issues/lightboxes.coffee index c8db0cdf..63db96aa 100644 --- a/app/coffee/modules/issues/lightboxes.coffee +++ b/app/coffee/modules/issues/lightboxes.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/issues/list.coffee b/app/coffee/modules/issues/list.coffee index b140eacf..594d73f4 100644 --- a/app/coffee/modules/issues/list.coffee +++ b/app/coffee/modules/issues/list.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/kanban.coffee b/app/coffee/modules/kanban.coffee index f4986966..398b348c 100644 --- a/app/coffee/modules/kanban.coffee +++ b/app/coffee/modules/kanban.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/kanban/main.coffee b/app/coffee/modules/kanban/main.coffee index 99227d92..4ab4a6b3 100644 --- a/app/coffee/modules/kanban/main.coffee +++ b/app/coffee/modules/kanban/main.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/kanban/sortable.coffee b/app/coffee/modules/kanban/sortable.coffee index 58d5f678..009e54d6 100644 --- a/app/coffee/modules/kanban/sortable.coffee +++ b/app/coffee/modules/kanban/sortable.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/plugins.coffee b/app/coffee/modules/plugins.coffee index 29bd595b..a58aaf2f 100644 --- a/app/coffee/modules/plugins.coffee +++ b/app/coffee/modules/plugins.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/projects.coffee b/app/coffee/modules/projects.coffee index 7fccd406..91a14717 100644 --- a/app/coffee/modules/projects.coffee +++ b/app/coffee/modules/projects.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/projects/lightboxes.coffee b/app/coffee/modules/projects/lightboxes.coffee index fe1b42ce..55daf92b 100644 --- a/app/coffee/modules/projects/lightboxes.coffee +++ b/app/coffee/modules/projects/lightboxes.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/related-tasks.coffee b/app/coffee/modules/related-tasks.coffee index e1a991ce..684df1ec 100644 --- a/app/coffee/modules/related-tasks.coffee +++ b/app/coffee/modules/related-tasks.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/resources.coffee b/app/coffee/modules/resources.coffee index f5453640..b6fcb827 100644 --- a/app/coffee/modules/resources.coffee +++ b/app/coffee/modules/resources.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/resources/attachments.coffee b/app/coffee/modules/resources/attachments.coffee index 910145c2..1ed950cb 100644 --- a/app/coffee/modules/resources/attachments.coffee +++ b/app/coffee/modules/resources/attachments.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/resources/custom-attributes-values.coffee b/app/coffee/modules/resources/custom-attributes-values.coffee index 1b2c4fd7..b3169967 100644 --- a/app/coffee/modules/resources/custom-attributes-values.coffee +++ b/app/coffee/modules/resources/custom-attributes-values.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/resources/custom-attributes.coffee b/app/coffee/modules/resources/custom-attributes.coffee index d5734e26..0d4e934e 100644 --- a/app/coffee/modules/resources/custom-attributes.coffee +++ b/app/coffee/modules/resources/custom-attributes.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/resources/history.coffee b/app/coffee/modules/resources/history.coffee index e40ee9f8..fd45579a 100644 --- a/app/coffee/modules/resources/history.coffee +++ b/app/coffee/modules/resources/history.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/resources/invitations.coffee b/app/coffee/modules/resources/invitations.coffee index b4a5d2c5..49455cf5 100644 --- a/app/coffee/modules/resources/invitations.coffee +++ b/app/coffee/modules/resources/invitations.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/resources/issues.coffee b/app/coffee/modules/resources/issues.coffee index 521c8685..ebf2dbdb 100644 --- a/app/coffee/modules/resources/issues.coffee +++ b/app/coffee/modules/resources/issues.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/resources/kanban.coffee b/app/coffee/modules/resources/kanban.coffee index e71c4cee..bdddce74 100644 --- a/app/coffee/modules/resources/kanban.coffee +++ b/app/coffee/modules/resources/kanban.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/resources/locales.coffee b/app/coffee/modules/resources/locales.coffee index 2c2fd170..479b7655 100644 --- a/app/coffee/modules/resources/locales.coffee +++ b/app/coffee/modules/resources/locales.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2015 Andrey Antukh -# Copyright (C) 2015 Jesús Espino Garcia -# Copyright (C) 2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/resources/mdrender.coffee b/app/coffee/modules/resources/mdrender.coffee index 8a8d58ae..2a40dfc2 100644 --- a/app/coffee/modules/resources/mdrender.coffee +++ b/app/coffee/modules/resources/mdrender.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/resources/memberships.coffee b/app/coffee/modules/resources/memberships.coffee index 50c0f0cf..3de38612 100644 --- a/app/coffee/modules/resources/memberships.coffee +++ b/app/coffee/modules/resources/memberships.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/resources/modules.coffee b/app/coffee/modules/resources/modules.coffee index b0e7ef45..b1f342f7 100644 --- a/app/coffee/modules/resources/modules.coffee +++ b/app/coffee/modules/resources/modules.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/resources/notify-policies.coffee b/app/coffee/modules/resources/notify-policies.coffee index 60b4b6aa..03144893 100644 --- a/app/coffee/modules/resources/notify-policies.coffee +++ b/app/coffee/modules/resources/notify-policies.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/resources/projects.coffee b/app/coffee/modules/resources/projects.coffee index 9747d2e1..8cc3fabd 100644 --- a/app/coffee/modules/resources/projects.coffee +++ b/app/coffee/modules/resources/projects.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/resources/roles.coffee b/app/coffee/modules/resources/roles.coffee index 591f8681..e6d79b8d 100644 --- a/app/coffee/modules/resources/roles.coffee +++ b/app/coffee/modules/resources/roles.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/resources/search.coffee b/app/coffee/modules/resources/search.coffee index 48639e25..ed571e32 100644 --- a/app/coffee/modules/resources/search.coffee +++ b/app/coffee/modules/resources/search.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/resources/sprints.coffee b/app/coffee/modules/resources/sprints.coffee index e8535b5b..45cff81e 100644 --- a/app/coffee/modules/resources/sprints.coffee +++ b/app/coffee/modules/resources/sprints.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/resources/tasks.coffee b/app/coffee/modules/resources/tasks.coffee index 5eaa1abf..64a73b27 100644 --- a/app/coffee/modules/resources/tasks.coffee +++ b/app/coffee/modules/resources/tasks.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/resources/user-settings.coffee b/app/coffee/modules/resources/user-settings.coffee index ca3d365e..80595b00 100644 --- a/app/coffee/modules/resources/user-settings.coffee +++ b/app/coffee/modules/resources/user-settings.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/resources/users.coffee b/app/coffee/modules/resources/users.coffee index 53285191..15a5aedb 100644 --- a/app/coffee/modules/resources/users.coffee +++ b/app/coffee/modules/resources/users.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/resources/userstories.coffee b/app/coffee/modules/resources/userstories.coffee index 0ac89b38..5d624a04 100644 --- a/app/coffee/modules/resources/userstories.coffee +++ b/app/coffee/modules/resources/userstories.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/resources/webhooklogs.coffee b/app/coffee/modules/resources/webhooklogs.coffee index a7db8514..d33cfecc 100644 --- a/app/coffee/modules/resources/webhooklogs.coffee +++ b/app/coffee/modules/resources/webhooklogs.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/resources/webhooks.coffee b/app/coffee/modules/resources/webhooks.coffee index d24ca488..2f51e540 100644 --- a/app/coffee/modules/resources/webhooks.coffee +++ b/app/coffee/modules/resources/webhooks.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/resources/wiki.coffee b/app/coffee/modules/resources/wiki.coffee index c3f2c733..8e450745 100644 --- a/app/coffee/modules/resources/wiki.coffee +++ b/app/coffee/modules/resources/wiki.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/search.coffee b/app/coffee/modules/search.coffee index 7f20fc3a..022563b4 100644 --- a/app/coffee/modules/search.coffee +++ b/app/coffee/modules/search.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/taskboard.coffee b/app/coffee/modules/taskboard.coffee index 3b5d85f1..0e136de5 100644 --- a/app/coffee/modules/taskboard.coffee +++ b/app/coffee/modules/taskboard.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/taskboard/charts.coffee b/app/coffee/modules/taskboard/charts.coffee index a552ead5..517dfc8a 100644 --- a/app/coffee/modules/taskboard/charts.coffee +++ b/app/coffee/modules/taskboard/charts.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/taskboard/lightboxes.coffee b/app/coffee/modules/taskboard/lightboxes.coffee index a2ce0de1..e850a3d4 100644 --- a/app/coffee/modules/taskboard/lightboxes.coffee +++ b/app/coffee/modules/taskboard/lightboxes.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/taskboard/main.coffee b/app/coffee/modules/taskboard/main.coffee index 7d6e3900..f3491c66 100644 --- a/app/coffee/modules/taskboard/main.coffee +++ b/app/coffee/modules/taskboard/main.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/taskboard/sortable.coffee b/app/coffee/modules/taskboard/sortable.coffee index 50337c05..aa4c6ca0 100644 --- a/app/coffee/modules/taskboard/sortable.coffee +++ b/app/coffee/modules/taskboard/sortable.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/tasks.coffee b/app/coffee/modules/tasks.coffee index 1dfe6770..1b267470 100644 --- a/app/coffee/modules/tasks.coffee +++ b/app/coffee/modules/tasks.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/tasks/detail.coffee b/app/coffee/modules/tasks/detail.coffee index d1adbf0c..9a2ebc74 100644 --- a/app/coffee/modules/tasks/detail.coffee +++ b/app/coffee/modules/tasks/detail.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/team.coffee b/app/coffee/modules/team.coffee index 7f39aa58..f67c6b08 100644 --- a/app/coffee/modules/team.coffee +++ b/app/coffee/modules/team.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/team/main.coffee b/app/coffee/modules/team/main.coffee index 229f652c..e134a7e4 100644 --- a/app/coffee/modules/team/main.coffee +++ b/app/coffee/modules/team/main.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/user-settings.coffee b/app/coffee/modules/user-settings.coffee index c40a8825..a7cc586c 100644 --- a/app/coffee/modules/user-settings.coffee +++ b/app/coffee/modules/user-settings.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/user-settings/change-password.coffee b/app/coffee/modules/user-settings/change-password.coffee index ebd9ce5f..e86966b8 100644 --- a/app/coffee/modules/user-settings/change-password.coffee +++ b/app/coffee/modules/user-settings/change-password.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/user-settings/lightboxes.coffee b/app/coffee/modules/user-settings/lightboxes.coffee index c3dd5375..1332baf0 100644 --- a/app/coffee/modules/user-settings/lightboxes.coffee +++ b/app/coffee/modules/user-settings/lightboxes.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/user-settings/main.coffee b/app/coffee/modules/user-settings/main.coffee index 297431e4..24424112 100644 --- a/app/coffee/modules/user-settings/main.coffee +++ b/app/coffee/modules/user-settings/main.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/user-settings/nav.coffee b/app/coffee/modules/user-settings/nav.coffee index c235961d..1f820827 100644 --- a/app/coffee/modules/user-settings/nav.coffee +++ b/app/coffee/modules/user-settings/nav.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/user-settings/notifications.coffee b/app/coffee/modules/user-settings/notifications.coffee index df74e003..09ba4152 100644 --- a/app/coffee/modules/user-settings/notifications.coffee +++ b/app/coffee/modules/user-settings/notifications.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/userstories.coffee b/app/coffee/modules/userstories.coffee index 711afcfc..e0ae0878 100644 --- a/app/coffee/modules/userstories.coffee +++ b/app/coffee/modules/userstories.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/userstories/detail.coffee b/app/coffee/modules/userstories/detail.coffee index 3af67d91..ec638afe 100644 --- a/app/coffee/modules/userstories/detail.coffee +++ b/app/coffee/modules/userstories/detail.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/wiki.coffee b/app/coffee/modules/wiki.coffee index 76c0c615..196c99bb 100644 --- a/app/coffee/modules/wiki.coffee +++ b/app/coffee/modules/wiki.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/wiki/main.coffee b/app/coffee/modules/wiki/main.coffee index 4f4f4975..434d9ea2 100644 --- a/app/coffee/modules/wiki/main.coffee +++ b/app/coffee/modules/wiki/main.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/modules/wiki/nav.coffee b/app/coffee/modules/wiki/nav.coffee index ef7901a0..ead6f803 100644 --- a/app/coffee/modules/wiki/nav.coffee +++ b/app/coffee/modules/wiki/nav.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/coffee/utils.coffee b/app/coffee/utils.coffee index f0706a86..11abb7fd 100644 --- a/app/coffee/utils.coffee +++ b/app/coffee/utils.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/components/components.module.coffee b/app/modules/components/components.module.coffee index a714b61f..468886b6 100644 --- a/app/modules/components/components.module.coffee +++ b/app/modules/components/components.module.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/components/joy-ride/joy-ride.directive.coffee b/app/modules/components/joy-ride/joy-ride.directive.coffee index 82269f5e..1f2a79a8 100644 --- a/app/modules/components/joy-ride/joy-ride.directive.coffee +++ b/app/modules/components/joy-ride/joy-ride.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/components/joy-ride/joy-ride.service.coffee b/app/modules/components/joy-ride/joy-ride.service.coffee index 46fb5627..396ec30d 100644 --- a/app/modules/components/joy-ride/joy-ride.service.coffee +++ b/app/modules/components/joy-ride/joy-ride.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/components/joy-ride/joy-ride.service.spec.coffee b/app/modules/components/joy-ride/joy-ride.service.spec.coffee index 48e1abbe..06e944de 100644 --- a/app/modules/components/joy-ride/joy-ride.service.spec.coffee +++ b/app/modules/components/joy-ride/joy-ride.service.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/components/project-menu/project-menu.controller.coffee b/app/modules/components/project-menu/project-menu.controller.coffee index be5f9d00..fdd381a2 100644 --- a/app/modules/components/project-menu/project-menu.controller.coffee +++ b/app/modules/components/project-menu/project-menu.controller.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/components/project-menu/project-menu.controller.spec.coffee b/app/modules/components/project-menu/project-menu.controller.spec.coffee index bb717b78..2e3e1829 100644 --- a/app/modules/components/project-menu/project-menu.controller.spec.coffee +++ b/app/modules/components/project-menu/project-menu.controller.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/components/project-menu/project-menu.directive.coffee b/app/modules/components/project-menu/project-menu.directive.coffee index 369bb546..67ff2fd4 100644 --- a/app/modules/components/project-menu/project-menu.directive.coffee +++ b/app/modules/components/project-menu/project-menu.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/components/terms-of-service-and-privacy-policy-notice/terms-of-service-and-privacy-policy-notice.directive.coffee b/app/modules/components/terms-of-service-and-privacy-policy-notice/terms-of-service-and-privacy-policy-notice.directive.coffee index 1489390a..e10e47ea 100644 --- a/app/modules/components/terms-of-service-and-privacy-policy-notice/terms-of-service-and-privacy-policy-notice.directive.coffee +++ b/app/modules/components/terms-of-service-and-privacy-policy-notice/terms-of-service-and-privacy-policy-notice.directive.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/components/vote-button/vote-button.controller.coffee b/app/modules/components/vote-button/vote-button.controller.coffee index 9016b674..64c4de24 100644 --- a/app/modules/components/vote-button/vote-button.controller.coffee +++ b/app/modules/components/vote-button/vote-button.controller.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/components/vote-button/vote-button.controller.spec.coffee b/app/modules/components/vote-button/vote-button.controller.spec.coffee index 34276b7a..241210e0 100644 --- a/app/modules/components/vote-button/vote-button.controller.spec.coffee +++ b/app/modules/components/vote-button/vote-button.controller.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/components/vote-button/vote-button.directive.coffee b/app/modules/components/vote-button/vote-button.directive.coffee index 60db1a18..970661c2 100644 --- a/app/modules/components/vote-button/vote-button.directive.coffee +++ b/app/modules/components/vote-button/vote-button.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/components/watch-button/watch-button.controller.coffee b/app/modules/components/watch-button/watch-button.controller.coffee index 5a59621d..39b16f57 100644 --- a/app/modules/components/watch-button/watch-button.controller.coffee +++ b/app/modules/components/watch-button/watch-button.controller.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/components/watch-button/watch-button.controller.spec.coffee b/app/modules/components/watch-button/watch-button.controller.spec.coffee index b2523f5a..db06465b 100644 --- a/app/modules/components/watch-button/watch-button.controller.spec.coffee +++ b/app/modules/components/watch-button/watch-button.controller.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/components/watch-button/watch-button.directive.coffee b/app/modules/components/watch-button/watch-button.directive.coffee index 2aad52b5..12a9ac7b 100644 --- a/app/modules/components/watch-button/watch-button.directive.coffee +++ b/app/modules/components/watch-button/watch-button.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/external-apps/external-app.controller.coffee b/app/modules/external-apps/external-app.controller.coffee index df0f0af7..0e726a87 100644 --- a/app/modules/external-apps/external-app.controller.coffee +++ b/app/modules/external-apps/external-app.controller.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/external-apps/external-app.controller.spec.coffee b/app/modules/external-apps/external-app.controller.spec.coffee index 4d74e74e..f6db0c86 100644 --- a/app/modules/external-apps/external-app.controller.spec.coffee +++ b/app/modules/external-apps/external-app.controller.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/external-apps/external-app.service.coffee b/app/modules/external-apps/external-app.service.coffee index f9aca954..679ddc75 100644 --- a/app/modules/external-apps/external-app.service.coffee +++ b/app/modules/external-apps/external-app.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/external-apps/external-app.service.spec.coffee b/app/modules/external-apps/external-app.service.spec.coffee index 79dd8e98..0adf305e 100644 --- a/app/modules/external-apps/external-app.service.spec.coffee +++ b/app/modules/external-apps/external-app.service.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/external-apps/external-apps.module.coffee b/app/modules/external-apps/external-apps.module.coffee index 97e0f201..a24bf0ce 100644 --- a/app/modules/external-apps/external-apps.module.coffee +++ b/app/modules/external-apps/external-apps.module.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/feedback/feedback.service.coffee b/app/modules/feedback/feedback.service.coffee index fe3293d5..b32a2a0e 100644 --- a/app/modules/feedback/feedback.service.coffee +++ b/app/modules/feedback/feedback.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/feedback/feedback.service.spec.coffee b/app/modules/feedback/feedback.service.spec.coffee index 1c6927e6..488bdf7b 100644 --- a/app/modules/feedback/feedback.service.spec.coffee +++ b/app/modules/feedback/feedback.service.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/home/duties/duty.directive.coffee b/app/modules/home/duties/duty.directive.coffee index 6482d460..5ffbf653 100644 --- a/app/modules/home/duties/duty.directive.coffee +++ b/app/modules/home/duties/duty.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/home/duties/duty.directive.spec.coffee b/app/modules/home/duties/duty.directive.spec.coffee index bf631820..ff797881 100644 --- a/app/modules/home/duties/duty.directive.spec.coffee +++ b/app/modules/home/duties/duty.directive.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/home/home.module.coffee b/app/modules/home/home.module.coffee index 6893154e..a5152998 100644 --- a/app/modules/home/home.module.coffee +++ b/app/modules/home/home.module.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/home/home.service.coffee b/app/modules/home/home.service.coffee index 46cc0ea5..31b55ce0 100644 --- a/app/modules/home/home.service.coffee +++ b/app/modules/home/home.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/home/home.service.spec.coffee b/app/modules/home/home.service.spec.coffee index 791a82be..de5782d5 100644 --- a/app/modules/home/home.service.spec.coffee +++ b/app/modules/home/home.service.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/home/projects/home-project-list-directive.spec.coffee b/app/modules/home/projects/home-project-list-directive.spec.coffee index a6f8bd5d..d19de5ee 100644 --- a/app/modules/home/projects/home-project-list-directive.spec.coffee +++ b/app/modules/home/projects/home-project-list-directive.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/home/projects/home-project-list.directive.coffee b/app/modules/home/projects/home-project-list.directive.coffee index be30e9a8..d59a28e3 100644 --- a/app/modules/home/projects/home-project-list.directive.coffee +++ b/app/modules/home/projects/home-project-list.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/home/working-on/working-on.controller.coffee b/app/modules/home/working-on/working-on.controller.coffee index 7f7dd05b..dba27fc7 100644 --- a/app/modules/home/working-on/working-on.controller.coffee +++ b/app/modules/home/working-on/working-on.controller.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/home/working-on/working-on.controller.spec.coffee b/app/modules/home/working-on/working-on.controller.spec.coffee index ed9f02d7..39d4c1e5 100644 --- a/app/modules/home/working-on/working-on.controller.spec.coffee +++ b/app/modules/home/working-on/working-on.controller.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/home/working-on/working-on.directive.coffee b/app/modules/home/working-on/working-on.directive.coffee index 10ec4899..909f0669 100644 --- a/app/modules/home/working-on/working-on.directive.coffee +++ b/app/modules/home/working-on/working-on.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/navigation-bar/dropdown-project-list/dropdown-project-list.directive.coffee b/app/modules/navigation-bar/dropdown-project-list/dropdown-project-list.directive.coffee index d90d3f36..5d6cc400 100644 --- a/app/modules/navigation-bar/dropdown-project-list/dropdown-project-list.directive.coffee +++ b/app/modules/navigation-bar/dropdown-project-list/dropdown-project-list.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/navigation-bar/dropdown-project-list/dropdown-project-list.directive.spec.coffee b/app/modules/navigation-bar/dropdown-project-list/dropdown-project-list.directive.spec.coffee index 263b7f58..56bf5b94 100644 --- a/app/modules/navigation-bar/dropdown-project-list/dropdown-project-list.directive.spec.coffee +++ b/app/modules/navigation-bar/dropdown-project-list/dropdown-project-list.directive.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/navigation-bar/dropdown-user/dropdown-user.directive.coffee b/app/modules/navigation-bar/dropdown-user/dropdown-user.directive.coffee index 3c6f9385..aeac042e 100644 --- a/app/modules/navigation-bar/dropdown-user/dropdown-user.directive.coffee +++ b/app/modules/navigation-bar/dropdown-user/dropdown-user.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/navigation-bar/dropdown-user/dropdown-user.directive.spec.coffee b/app/modules/navigation-bar/dropdown-user/dropdown-user.directive.spec.coffee index 62ce337f..d85e69fd 100644 --- a/app/modules/navigation-bar/dropdown-user/dropdown-user.directive.spec.coffee +++ b/app/modules/navigation-bar/dropdown-user/dropdown-user.directive.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/navigation-bar/navigation-bar.directive.coffee b/app/modules/navigation-bar/navigation-bar.directive.coffee index 8404cc91..67d4589d 100644 --- a/app/modules/navigation-bar/navigation-bar.directive.coffee +++ b/app/modules/navigation-bar/navigation-bar.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/navigation-bar/navigation-bar.directive.spec.coffee b/app/modules/navigation-bar/navigation-bar.directive.spec.coffee index 9195b70a..7c3251bc 100644 --- a/app/modules/navigation-bar/navigation-bar.directive.spec.coffee +++ b/app/modules/navigation-bar/navigation-bar.directive.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/navigation-bar/navigation-bar.module.coffee b/app/modules/navigation-bar/navigation-bar.module.coffee index b1acfa2d..94481f23 100644 --- a/app/modules/navigation-bar/navigation-bar.module.coffee +++ b/app/modules/navigation-bar/navigation-bar.module.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/navigation-bar/navigation-bar.service.coffee b/app/modules/navigation-bar/navigation-bar.service.coffee index dafdfaa0..c043fa4f 100644 --- a/app/modules/navigation-bar/navigation-bar.service.coffee +++ b/app/modules/navigation-bar/navigation-bar.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/profile/profile-bar/profile-bar.controller.coffee b/app/modules/profile/profile-bar/profile-bar.controller.coffee index 3c59817e..f317b71f 100644 --- a/app/modules/profile/profile-bar/profile-bar.controller.coffee +++ b/app/modules/profile/profile-bar/profile-bar.controller.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/profile/profile-bar/profile-bar.controller.spec.coffee b/app/modules/profile/profile-bar/profile-bar.controller.spec.coffee index ca0c33c1..66c83ac5 100644 --- a/app/modules/profile/profile-bar/profile-bar.controller.spec.coffee +++ b/app/modules/profile/profile-bar/profile-bar.controller.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/profile/profile-bar/profile-bar.directive.coffee b/app/modules/profile/profile-bar/profile-bar.directive.coffee index cc3ff48c..8e9a2a51 100644 --- a/app/modules/profile/profile-bar/profile-bar.directive.coffee +++ b/app/modules/profile/profile-bar/profile-bar.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/profile/profile-contacts/profile-contacts.controller.coffee b/app/modules/profile/profile-contacts/profile-contacts.controller.coffee index f675e5f7..81fa0e45 100644 --- a/app/modules/profile/profile-contacts/profile-contacts.controller.coffee +++ b/app/modules/profile/profile-contacts/profile-contacts.controller.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/profile/profile-contacts/profile-contacts.controller.spec.coffee b/app/modules/profile/profile-contacts/profile-contacts.controller.spec.coffee index 0c060e78..2c265083 100644 --- a/app/modules/profile/profile-contacts/profile-contacts.controller.spec.coffee +++ b/app/modules/profile/profile-contacts/profile-contacts.controller.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/profile/profile-contacts/profile-contacts.directive.coffee b/app/modules/profile/profile-contacts/profile-contacts.directive.coffee index 252a9e75..3fca94c3 100644 --- a/app/modules/profile/profile-contacts/profile-contacts.directive.coffee +++ b/app/modules/profile/profile-contacts/profile-contacts.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/profile/profile-favs/items/items.directive.coffee b/app/modules/profile/profile-favs/items/items.directive.coffee index 626ab237..8d1a437a 100644 --- a/app/modules/profile/profile-favs/items/items.directive.coffee +++ b/app/modules/profile/profile-favs/items/items.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/profile/profile-favs/profile-favs.controller.coffee b/app/modules/profile/profile-favs/profile-favs.controller.coffee index 2fe034f2..2022ee4a 100644 --- a/app/modules/profile/profile-favs/profile-favs.controller.coffee +++ b/app/modules/profile/profile-favs/profile-favs.controller.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/profile/profile-favs/profile-favs.controller.spec.coffee b/app/modules/profile/profile-favs/profile-favs.controller.spec.coffee index 70ac3409..89ccd289 100644 --- a/app/modules/profile/profile-favs/profile-favs.controller.spec.coffee +++ b/app/modules/profile/profile-favs/profile-favs.controller.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/profile/profile-favs/profile-favs.directive.coffee b/app/modules/profile/profile-favs/profile-favs.directive.coffee index a7e07e45..267236a0 100644 --- a/app/modules/profile/profile-favs/profile-favs.directive.coffee +++ b/app/modules/profile/profile-favs/profile-favs.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/profile/profile-hints/profile-hints.controller.coffee b/app/modules/profile/profile-hints/profile-hints.controller.coffee index 95261959..69992e28 100644 --- a/app/modules/profile/profile-hints/profile-hints.controller.coffee +++ b/app/modules/profile/profile-hints/profile-hints.controller.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/profile/profile-hints/profile-hints.controller.spec.coffee b/app/modules/profile/profile-hints/profile-hints.controller.spec.coffee index bc192e7d..c91eea4d 100644 --- a/app/modules/profile/profile-hints/profile-hints.controller.spec.coffee +++ b/app/modules/profile/profile-hints/profile-hints.controller.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/profile/profile-hints/profile-hints.directive.coffee b/app/modules/profile/profile-hints/profile-hints.directive.coffee index 5b1f77ec..4383b501 100644 --- a/app/modules/profile/profile-hints/profile-hints.directive.coffee +++ b/app/modules/profile/profile-hints/profile-hints.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/profile/profile-projects/profile-projects.controller.coffee b/app/modules/profile/profile-projects/profile-projects.controller.coffee index 26f2caa4..bd43164d 100644 --- a/app/modules/profile/profile-projects/profile-projects.controller.coffee +++ b/app/modules/profile/profile-projects/profile-projects.controller.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/profile/profile-projects/profile-projects.controller.spec.coffee b/app/modules/profile/profile-projects/profile-projects.controller.spec.coffee index 9f8f0ee3..604c67b9 100644 --- a/app/modules/profile/profile-projects/profile-projects.controller.spec.coffee +++ b/app/modules/profile/profile-projects/profile-projects.controller.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/profile/profile-projects/profile-projects.directive.coffee b/app/modules/profile/profile-projects/profile-projects.directive.coffee index 848d655a..2236e563 100644 --- a/app/modules/profile/profile-projects/profile-projects.directive.coffee +++ b/app/modules/profile/profile-projects/profile-projects.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/profile/profile-tab/profile-tab.directive.coffee b/app/modules/profile/profile-tab/profile-tab.directive.coffee index 070613d1..308a97ba 100644 --- a/app/modules/profile/profile-tab/profile-tab.directive.coffee +++ b/app/modules/profile/profile-tab/profile-tab.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/profile/profile-tabs/profile-tabs.controller.coffee b/app/modules/profile/profile-tabs/profile-tabs.controller.coffee index 1908f035..3c32a897 100644 --- a/app/modules/profile/profile-tabs/profile-tabs.controller.coffee +++ b/app/modules/profile/profile-tabs/profile-tabs.controller.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/profile/profile-tabs/profile-tabs.controller.spec.coffee b/app/modules/profile/profile-tabs/profile-tabs.controller.spec.coffee index ff241a4a..f8b1382f 100644 --- a/app/modules/profile/profile-tabs/profile-tabs.controller.spec.coffee +++ b/app/modules/profile/profile-tabs/profile-tabs.controller.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/profile/profile-tabs/profile-tabs.directive.coffee b/app/modules/profile/profile-tabs/profile-tabs.directive.coffee index 6fe64f37..2ccc23d5 100644 --- a/app/modules/profile/profile-tabs/profile-tabs.directive.coffee +++ b/app/modules/profile/profile-tabs/profile-tabs.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/profile/profile.controller.coffee b/app/modules/profile/profile.controller.coffee index b27049f6..d275db72 100644 --- a/app/modules/profile/profile.controller.coffee +++ b/app/modules/profile/profile.controller.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/profile/profile.controller.spec.coffee b/app/modules/profile/profile.controller.spec.coffee index b75bac6a..df37298b 100644 --- a/app/modules/profile/profile.controller.spec.coffee +++ b/app/modules/profile/profile.controller.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/profile/profile.module.coffee b/app/modules/profile/profile.module.coffee index a37ea14d..4654dbc1 100644 --- a/app/modules/profile/profile.module.coffee +++ b/app/modules/profile/profile.module.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/projects/components/like-project-button/like-project-button.controller.coffee b/app/modules/projects/components/like-project-button/like-project-button.controller.coffee index e40bbd48..0322e17d 100644 --- a/app/modules/projects/components/like-project-button/like-project-button.controller.coffee +++ b/app/modules/projects/components/like-project-button/like-project-button.controller.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/projects/components/like-project-button/like-project-button.controller.spec.coffee b/app/modules/projects/components/like-project-button/like-project-button.controller.spec.coffee index b611a767..4669fd9b 100644 --- a/app/modules/projects/components/like-project-button/like-project-button.controller.spec.coffee +++ b/app/modules/projects/components/like-project-button/like-project-button.controller.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/projects/components/like-project-button/like-project-button.directive.coffee b/app/modules/projects/components/like-project-button/like-project-button.directive.coffee index 205d6f26..7b9c1d60 100644 --- a/app/modules/projects/components/like-project-button/like-project-button.directive.coffee +++ b/app/modules/projects/components/like-project-button/like-project-button.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/projects/components/like-project-button/like-project-button.service.coffee b/app/modules/projects/components/like-project-button/like-project-button.service.coffee index a2747231..d8e5a7fa 100644 --- a/app/modules/projects/components/like-project-button/like-project-button.service.coffee +++ b/app/modules/projects/components/like-project-button/like-project-button.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/projects/components/like-project-button/like-project-button.service.spec.coffee b/app/modules/projects/components/like-project-button/like-project-button.service.spec.coffee index 2c07b487..cfb3285b 100644 --- a/app/modules/projects/components/like-project-button/like-project-button.service.spec.coffee +++ b/app/modules/projects/components/like-project-button/like-project-button.service.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/projects/components/sort-projects.directive.coffee b/app/modules/projects/components/sort-projects.directive.coffee index 2c4cd753..cb3cdfbd 100644 --- a/app/modules/projects/components/sort-projects.directive.coffee +++ b/app/modules/projects/components/sort-projects.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/projects/components/watch-project-button/watch-project-button.controller.coffee b/app/modules/projects/components/watch-project-button/watch-project-button.controller.coffee index d4c5ce85..e24316a4 100644 --- a/app/modules/projects/components/watch-project-button/watch-project-button.controller.coffee +++ b/app/modules/projects/components/watch-project-button/watch-project-button.controller.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/projects/components/watch-project-button/watch-project-button.controller.spec.coffee b/app/modules/projects/components/watch-project-button/watch-project-button.controller.spec.coffee index cbbceab2..c58e4d0e 100644 --- a/app/modules/projects/components/watch-project-button/watch-project-button.controller.spec.coffee +++ b/app/modules/projects/components/watch-project-button/watch-project-button.controller.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/projects/components/watch-project-button/watch-project-button.directive.coffee b/app/modules/projects/components/watch-project-button/watch-project-button.directive.coffee index 479e6bf4..048554cb 100644 --- a/app/modules/projects/components/watch-project-button/watch-project-button.directive.coffee +++ b/app/modules/projects/components/watch-project-button/watch-project-button.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/projects/components/watch-project-button/watch-project-button.service.coffee b/app/modules/projects/components/watch-project-button/watch-project-button.service.coffee index ac50e13f..52f4ec22 100644 --- a/app/modules/projects/components/watch-project-button/watch-project-button.service.coffee +++ b/app/modules/projects/components/watch-project-button/watch-project-button.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/projects/components/watch-project-button/watch-project-button.service.spec.coffee b/app/modules/projects/components/watch-project-button/watch-project-button.service.spec.coffee index 86c5a065..a782887d 100644 --- a/app/modules/projects/components/watch-project-button/watch-project-button.service.spec.coffee +++ b/app/modules/projects/components/watch-project-button/watch-project-button.service.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/projects/listing/projects-listing.controller.coffee b/app/modules/projects/listing/projects-listing.controller.coffee index 3f8fb291..d7a60304 100644 --- a/app/modules/projects/listing/projects-listing.controller.coffee +++ b/app/modules/projects/listing/projects-listing.controller.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/projects/listing/projects-listing.controller.spec.coffee b/app/modules/projects/listing/projects-listing.controller.spec.coffee index 49fbd9eb..fe3d2b2b 100644 --- a/app/modules/projects/listing/projects-listing.controller.spec.coffee +++ b/app/modules/projects/listing/projects-listing.controller.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/projects/project/project.controller.coffee b/app/modules/projects/project/project.controller.coffee index 9c8cc6c5..418afda7 100644 --- a/app/modules/projects/project/project.controller.coffee +++ b/app/modules/projects/project/project.controller.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/projects/project/project.controller.spec.coffee b/app/modules/projects/project/project.controller.spec.coffee index c215916a..dfcf812b 100644 --- a/app/modules/projects/project/project.controller.spec.coffee +++ b/app/modules/projects/project/project.controller.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/projects/projects.module.coffee b/app/modules/projects/projects.module.coffee index 1197dad8..ab40dd05 100644 --- a/app/modules/projects/projects.module.coffee +++ b/app/modules/projects/projects.module.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/projects/projects.service.coffee b/app/modules/projects/projects.service.coffee index 5ad7c827..a7c2ab65 100644 --- a/app/modules/projects/projects.service.coffee +++ b/app/modules/projects/projects.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/projects/projects.service.spec.coffee b/app/modules/projects/projects.service.spec.coffee index 8e686d68..046d1d23 100644 --- a/app/modules/projects/projects.service.spec.coffee +++ b/app/modules/projects/projects.service.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/resources/external-apps-resource.service.coffee b/app/modules/resources/external-apps-resource.service.coffee index 4c6f7430..7dd02d27 100644 --- a/app/modules/resources/external-apps-resource.service.coffee +++ b/app/modules/resources/external-apps-resource.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/resources/issues-resource.service.coffee b/app/modules/resources/issues-resource.service.coffee index 7d4e6a26..2af88e73 100644 --- a/app/modules/resources/issues-resource.service.coffee +++ b/app/modules/resources/issues-resource.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/resources/projects-resource.service.coffee b/app/modules/resources/projects-resource.service.coffee index 3d7ae7a6..35de7d51 100644 --- a/app/modules/resources/projects-resource.service.coffee +++ b/app/modules/resources/projects-resource.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/resources/resources.coffee b/app/modules/resources/resources.coffee index b2a0051b..5669d85e 100644 --- a/app/modules/resources/resources.coffee +++ b/app/modules/resources/resources.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/resources/resources.module.coffee b/app/modules/resources/resources.module.coffee index bafccdd5..de2f52b5 100644 --- a/app/modules/resources/resources.module.coffee +++ b/app/modules/resources/resources.module.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/resources/tasks-resource.service.coffee b/app/modules/resources/tasks-resource.service.coffee index c1cb225d..1d056635 100644 --- a/app/modules/resources/tasks-resource.service.coffee +++ b/app/modules/resources/tasks-resource.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/resources/user-resource.service.coffee b/app/modules/resources/user-resource.service.coffee index 063ba18d..3967c6d6 100644 --- a/app/modules/resources/user-resource.service.coffee +++ b/app/modules/resources/user-resource.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/resources/users-resource.service.coffee b/app/modules/resources/users-resource.service.coffee index 09818777..1183fb09 100644 --- a/app/modules/resources/users-resource.service.coffee +++ b/app/modules/resources/users-resource.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/resources/userstories-resource.service.coffee b/app/modules/resources/userstories-resource.service.coffee index 22f68cae..ce2b7cd4 100644 --- a/app/modules/resources/userstories-resource.service.coffee +++ b/app/modules/resources/userstories-resource.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/services/app-meta.service.coffee b/app/modules/services/app-meta.service.coffee index a8b2151b..d0a4febf 100644 --- a/app/modules/services/app-meta.service.coffee +++ b/app/modules/services/app-meta.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/services/app-meta.service.spec.coffee b/app/modules/services/app-meta.service.spec.coffee index abbd046e..e1272dab 100644 --- a/app/modules/services/app-meta.service.spec.coffee +++ b/app/modules/services/app-meta.service.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/services/check-permissions.service.coffee b/app/modules/services/check-permissions.service.coffee index c96fd0cc..5cac0802 100644 --- a/app/modules/services/check-permissions.service.coffee +++ b/app/modules/services/check-permissions.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/services/check-permissions.service.spec.coffee b/app/modules/services/check-permissions.service.spec.coffee index 160e8e8c..48f727b6 100644 --- a/app/modules/services/check-permissions.service.spec.coffee +++ b/app/modules/services/check-permissions.service.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/services/current-user.service.coffee b/app/modules/services/current-user.service.coffee index dbd2ee90..568c53f3 100644 --- a/app/modules/services/current-user.service.coffee +++ b/app/modules/services/current-user.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/services/current-user.service.spec.coffee b/app/modules/services/current-user.service.spec.coffee index 8ebf1b9b..a3fe43b7 100644 --- a/app/modules/services/current-user.service.spec.coffee +++ b/app/modules/services/current-user.service.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/services/lightbox-factory.service.coffee b/app/modules/services/lightbox-factory.service.coffee index f71b4ff3..33b92464 100644 --- a/app/modules/services/lightbox-factory.service.coffee +++ b/app/modules/services/lightbox-factory.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/services/lightbox-factory.service.spec.coffee b/app/modules/services/lightbox-factory.service.spec.coffee index 8762f390..96628e51 100644 --- a/app/modules/services/lightbox-factory.service.spec.coffee +++ b/app/modules/services/lightbox-factory.service.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/services/paginate-response.service.coffee b/app/modules/services/paginate-response.service.coffee index c27fc738..dce8b495 100644 --- a/app/modules/services/paginate-response.service.coffee +++ b/app/modules/services/paginate-response.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/services/paginate-response.service.spec.coffee b/app/modules/services/paginate-response.service.spec.coffee index a4d89fcd..e69e6906 100644 --- a/app/modules/services/paginate-response.service.spec.coffee +++ b/app/modules/services/paginate-response.service.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/services/project.service.coffee b/app/modules/services/project.service.coffee index 3294db67..1f576dc5 100644 --- a/app/modules/services/project.service.coffee +++ b/app/modules/services/project.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/services/project.service.spec.coffee b/app/modules/services/project.service.spec.coffee index 715f8032..18f91fa7 100644 --- a/app/modules/services/project.service.spec.coffee +++ b/app/modules/services/project.service.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/services/scope-event.service.coffee b/app/modules/services/scope-event.service.coffee index f49e9f5d..a3ba71ff 100644 --- a/app/modules/services/scope-event.service.coffee +++ b/app/modules/services/scope-event.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/services/scope-event.service.spec.coffee b/app/modules/services/scope-event.service.spec.coffee index 338fdd27..aced4eb3 100644 --- a/app/modules/services/scope-event.service.spec.coffee +++ b/app/modules/services/scope-event.service.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/services/theme.service.coffee b/app/modules/services/theme.service.coffee index 6a15a58f..d3b096e5 100644 --- a/app/modules/services/theme.service.coffee +++ b/app/modules/services/theme.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/services/theme.service.spec.coffee b/app/modules/services/theme.service.spec.coffee index 868dc183..4a7c3450 100644 --- a/app/modules/services/theme.service.spec.coffee +++ b/app/modules/services/theme.service.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/services/user.service.coffee b/app/modules/services/user.service.coffee index d9bdfbb4..b986c1f4 100644 --- a/app/modules/services/user.service.coffee +++ b/app/modules/services/user.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/services/user.service.spec.coffee b/app/modules/services/user.service.spec.coffee index 04629504..f721d19b 100644 --- a/app/modules/services/user.service.spec.coffee +++ b/app/modules/services/user.service.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/services/xhrError.service.coffee b/app/modules/services/xhrError.service.coffee index 86bbd3b7..9015e858 100644 --- a/app/modules/services/xhrError.service.coffee +++ b/app/modules/services/xhrError.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/services/xhrError.service.spec.coffee b/app/modules/services/xhrError.service.spec.coffee index af393641..f69ef84a 100644 --- a/app/modules/services/xhrError.service.spec.coffee +++ b/app/modules/services/xhrError.service.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/user-timeline/user-timeline-attachment/user-timeline-attachment.directive.coffee b/app/modules/user-timeline/user-timeline-attachment/user-timeline-attachment.directive.coffee index ad26327a..ced341ac 100644 --- a/app/modules/user-timeline/user-timeline-attachment/user-timeline-attachment.directive.coffee +++ b/app/modules/user-timeline/user-timeline-attachment/user-timeline-attachment.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/user-timeline/user-timeline-attachment/user-timeline-attachment.directive.spec.coffee b/app/modules/user-timeline/user-timeline-attachment/user-timeline-attachment.directive.spec.coffee index 31d6171e..e9c1d39b 100644 --- a/app/modules/user-timeline/user-timeline-attachment/user-timeline-attachment.directive.spec.coffee +++ b/app/modules/user-timeline/user-timeline-attachment/user-timeline-attachment.directive.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/user-timeline/user-timeline-item/user-timeline-item-title.service.coffee b/app/modules/user-timeline/user-timeline-item/user-timeline-item-title.service.coffee index 772d05e3..406b57eb 100644 --- a/app/modules/user-timeline/user-timeline-item/user-timeline-item-title.service.coffee +++ b/app/modules/user-timeline/user-timeline-item/user-timeline-item-title.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/user-timeline/user-timeline-item/user-timeline-item-title.service.spec.coffee b/app/modules/user-timeline/user-timeline-item/user-timeline-item-title.service.spec.coffee index 5855c0fc..64f306f4 100644 --- a/app/modules/user-timeline/user-timeline-item/user-timeline-item-title.service.spec.coffee +++ b/app/modules/user-timeline/user-timeline-item/user-timeline-item-title.service.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/user-timeline/user-timeline-item/user-timeline-item-type.service.coffee b/app/modules/user-timeline/user-timeline-item/user-timeline-item-type.service.coffee index 68b330cb..e5c36811 100644 --- a/app/modules/user-timeline/user-timeline-item/user-timeline-item-type.service.coffee +++ b/app/modules/user-timeline/user-timeline-item/user-timeline-item-type.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/user-timeline/user-timeline-item/user-timeline-item-type.service.spec.coffee b/app/modules/user-timeline/user-timeline-item/user-timeline-item-type.service.spec.coffee index 7ed49f79..9ac0339e 100644 --- a/app/modules/user-timeline/user-timeline-item/user-timeline-item-type.service.spec.coffee +++ b/app/modules/user-timeline/user-timeline-item/user-timeline-item-type.service.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/user-timeline/user-timeline-item/user-timeline-item.directive.coffee b/app/modules/user-timeline/user-timeline-item/user-timeline-item.directive.coffee index d0a18e2c..9fff02c3 100644 --- a/app/modules/user-timeline/user-timeline-item/user-timeline-item.directive.coffee +++ b/app/modules/user-timeline/user-timeline-item/user-timeline-item.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/user-timeline/user-timeline-pagination-sequence/user-timeline-pagination-sequence.service.coffee b/app/modules/user-timeline/user-timeline-pagination-sequence/user-timeline-pagination-sequence.service.coffee index 5a6b314b..616caf7e 100644 --- a/app/modules/user-timeline/user-timeline-pagination-sequence/user-timeline-pagination-sequence.service.coffee +++ b/app/modules/user-timeline/user-timeline-pagination-sequence/user-timeline-pagination-sequence.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/user-timeline/user-timeline-pagination-sequence/user-timeline-pagination-sequence.service.spec.coffee b/app/modules/user-timeline/user-timeline-pagination-sequence/user-timeline-pagination-sequence.service.spec.coffee index f1cf0207..3ee1bf8d 100644 --- a/app/modules/user-timeline/user-timeline-pagination-sequence/user-timeline-pagination-sequence.service.spec.coffee +++ b/app/modules/user-timeline/user-timeline-pagination-sequence/user-timeline-pagination-sequence.service.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/user-timeline/user-timeline.module.coffee b/app/modules/user-timeline/user-timeline.module.coffee index c5eef5c7..3bdab1fe 100644 --- a/app/modules/user-timeline/user-timeline.module.coffee +++ b/app/modules/user-timeline/user-timeline.module.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/user-timeline/user-timeline/user-timeline.controller.coffee b/app/modules/user-timeline/user-timeline/user-timeline.controller.coffee index 5cb5c7e5..4641a76d 100644 --- a/app/modules/user-timeline/user-timeline/user-timeline.controller.coffee +++ b/app/modules/user-timeline/user-timeline/user-timeline.controller.coffee @@ -1,7 +1,7 @@ ### -# Copyright (C) 2014-2015 Andrey Antukh -# Copyright (C) 2014-2015 Jesús Espino Garcia -# Copyright (C) 2014-2015 David Barragán Merino +# Copyright (C) 2014-2016 Andrey Antukh +# Copyright (C) 2014-2016 Jesús Espino Garcia +# Copyright (C) 2014-2016 David Barragán Merino # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/user-timeline/user-timeline/user-timeline.controller.spec.coffee b/app/modules/user-timeline/user-timeline/user-timeline.controller.spec.coffee index 2f78a968..e66cf9b3 100644 --- a/app/modules/user-timeline/user-timeline/user-timeline.controller.spec.coffee +++ b/app/modules/user-timeline/user-timeline/user-timeline.controller.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/user-timeline/user-timeline/user-timeline.directive.coffee b/app/modules/user-timeline/user-timeline/user-timeline.directive.coffee index 8973e43f..fda9bb7b 100644 --- a/app/modules/user-timeline/user-timeline/user-timeline.directive.coffee +++ b/app/modules/user-timeline/user-timeline/user-timeline.directive.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/user-timeline/user-timeline/user-timeline.service.coffee b/app/modules/user-timeline/user-timeline/user-timeline.service.coffee index 74d24ad1..42a72a06 100644 --- a/app/modules/user-timeline/user-timeline/user-timeline.service.coffee +++ b/app/modules/user-timeline/user-timeline/user-timeline.service.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/app/modules/user-timeline/user-timeline/user-timeline.service.spec.coffee b/app/modules/user-timeline/user-timeline/user-timeline.service.spec.coffee index 00000c1e..7e2b131d 100644 --- a/app/modules/user-timeline/user-timeline/user-timeline.service.spec.coffee +++ b/app/modules/user-timeline/user-timeline/user-timeline.service.spec.coffee @@ -1,5 +1,5 @@ ### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as diff --git a/scripts/add_licanse_to_coffee_files.py b/scripts/add_licanse_to_coffee_files.py index 9d456e30..4c8c2a55 100644 --- a/scripts/add_licanse_to_coffee_files.py +++ b/scripts/add_licanse_to_coffee_files.py @@ -1,7 +1,7 @@ import os, sys LICENSE = """### -# Copyright (C) 2014-2015 Taiga Agile LLC +# Copyright (C) 2014-2016 Taiga Agile LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as From 2a6a1dfd860bbfa5e29d458fd56e3c8ea0ee9d47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Mon, 4 Jan 2016 17:56:27 +0100 Subject: [PATCH 093/100] Make neightbor section compatible with the new API spec --- app/coffee/modules/issues/detail.coffee | 4 ++-- app/coffee/modules/tasks/detail.coffee | 4 ++-- app/coffee/modules/userstories/detail.coffee | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/coffee/modules/issues/detail.coffee b/app/coffee/modules/issues/detail.coffee index 329e5244..22bcbe9e 100644 --- a/app/coffee/modules/issues/detail.coffee +++ b/app/coffee/modules/issues/detail.coffee @@ -127,14 +127,14 @@ class IssueDetailController extends mixOf(taiga.Controller, taiga.PageMixin) @scope.issueId = issue.id @scope.commentModel = issue - if @scope.issue.neighbors.previous.ref? + if @scope.issue.neighbors.previous?.ref? ctx = { project: @scope.project.slug ref: @scope.issue.neighbors.previous.ref } @scope.previousUrl = @navUrls.resolve("project-issues-detail", ctx) - if @scope.issue.neighbors.next.ref? + if @scope.issue.neighbors.next?.ref? ctx = { project: @scope.project.slug ref: @scope.issue.neighbors.next.ref diff --git a/app/coffee/modules/tasks/detail.coffee b/app/coffee/modules/tasks/detail.coffee index 9a2ebc74..96bb59d7 100644 --- a/app/coffee/modules/tasks/detail.coffee +++ b/app/coffee/modules/tasks/detail.coffee @@ -115,14 +115,14 @@ class TaskDetailController extends mixOf(taiga.Controller, taiga.PageMixin) @scope.taskId = task.id @scope.commentModel = task - if @scope.task.neighbors.previous.ref? + if @scope.task.neighbors.previous?.ref? ctx = { project: @scope.project.slug ref: @scope.task.neighbors.previous.ref } @scope.previousUrl = @navUrls.resolve("project-tasks-detail", ctx) - if @scope.task.neighbors.next.ref? + if @scope.task.neighbors.next?.ref? ctx = { project: @scope.project.slug ref: @scope.task.neighbors.next.ref diff --git a/app/coffee/modules/userstories/detail.coffee b/app/coffee/modules/userstories/detail.coffee index ec638afe..fb25ed57 100644 --- a/app/coffee/modules/userstories/detail.coffee +++ b/app/coffee/modules/userstories/detail.coffee @@ -152,14 +152,14 @@ class UserStoryDetailController extends mixOf(taiga.Controller, taiga.PageMixin) @scope.usId = us.id @scope.commentModel = us - if @scope.us.neighbors.previous.ref? + if @scope.us.neighbors.previous?.ref? ctx = { project: @scope.project.slug ref: @scope.us.neighbors.previous.ref } @scope.previousUrl = @navUrls.resolve("project-userstories-detail", ctx) - if @scope.us.neighbors.next.ref? + if @scope.us.neighbors.next?.ref? ctx = { project: @scope.project.slug ref: @scope.us.neighbors.next.ref From afbf2a202bc498530879ba4abdde88d4f5903827 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Tue, 22 Dec 2015 11:08:16 +0100 Subject: [PATCH 094/100] Update Open Sans font --- app/fonts/OpenSans-Bold.ttf | Bin 0 -> 224592 bytes app/fonts/OpenSans-Light.eot | Bin 33610 -> 0 bytes app/fonts/OpenSans-Light.svg | 581 ---------- app/fonts/OpenSans-Light.ttf | Bin 33412 -> 222412 bytes app/fonts/OpenSans-Light.woff | 811 ------------- app/fonts/OpenSans-Regular.ttf | Bin 0 -> 217360 bytes app/fonts/OpenSans-Semibold.ttf | Bin 0 -> 221328 bytes app/fonts/opensans-regular.eot | Bin 19836 -> 0 bytes app/fonts/opensans-regular.svg | 1831 ------------------------------ app/fonts/opensans-regular.ttf | Bin 38232 -> 0 bytes app/fonts/opensans-regular.woff | Bin 22660 -> 0 bytes app/fonts/opensans-semibold.eot | Bin 20028 -> 0 bytes app/fonts/opensans-semibold.svg | 1830 ----------------------------- app/fonts/opensans-semibold.ttf | Bin 39476 -> 0 bytes app/fonts/opensans-semibold.woff | Bin 22908 -> 0 bytes app/styles/core/typography.scss | 9 +- 16 files changed, 5 insertions(+), 5057 deletions(-) create mode 100644 app/fonts/OpenSans-Bold.ttf delete mode 100644 app/fonts/OpenSans-Light.eot delete mode 100644 app/fonts/OpenSans-Light.svg delete mode 100644 app/fonts/OpenSans-Light.woff create mode 100644 app/fonts/OpenSans-Regular.ttf create mode 100644 app/fonts/OpenSans-Semibold.ttf delete mode 100644 app/fonts/opensans-regular.eot delete mode 100644 app/fonts/opensans-regular.svg delete mode 100644 app/fonts/opensans-regular.ttf delete mode 100644 app/fonts/opensans-regular.woff delete mode 100644 app/fonts/opensans-semibold.eot delete mode 100644 app/fonts/opensans-semibold.svg delete mode 100644 app/fonts/opensans-semibold.ttf delete mode 100644 app/fonts/opensans-semibold.woff diff --git a/app/fonts/OpenSans-Bold.ttf b/app/fonts/OpenSans-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..fd79d43bea0293ac1b20e8aca1142627983d2c07 GIT binary patch literal 224592 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 zighPJighPJighPJighPJighPJighPJighPJighPJighPJighPJighPJighPJighPJ zighPJighPJighPJighPJighPJighPJighPJighPJighPJighPJighPJighPJighPJ zighPJighPJighPJighPJighPJighPJighPJighPJighPJighPJighPJighPJighPJ zighPJighPJighPJighPJighPJighPJighPJighPJ!r&GLw=lTrH$n8e;uZ$CFt~-m zEevj9a0`Q57~I0(76!L4xP`$j3~pg?3xk_}ZRB+cgIgHf!r&GLw=lSc!7U7KVQ>qB zTNvEJ;1&kAFt~-mEevj9a0`Q57~I0(76!L4xP`$j3~pg?3xiu2+``}%2DdP{g~2Th zZeegM1-DXgD+RYwa4QA3QgAB;w^DE`1-DXgD+RYwa4QA3QgAB;w^DE`1-DXgD+RYw za4QA3QgAB;w^DE`1-DXgD+RYwa4QA3QgAB;w^DE`1-DXgD+RYwa4QA3QgAB;w^DE` z1-DXgD+RYwa4QA3QgAB;w^DE`1-DXgD+RYwa9gQ6Arj>d9_0=m)e{3Gs_RgR>N-@S zx(=17o){oeU5!dqSECZu)u=@E!~luvi2)MT69XiwCk9AVPYjT#o){oeU9n13SF94% z6{|#b#VS!o>@64e!}MD@e~iRy^~64es}B&usziRv0w zqPm8asIFlps%uz@>Kay}x`vggu3;srYgmcu8djpZhLxzE7$8wSF+ievVt_>T!~luv z+E${vww0)^Z6&H}TZ!t40TR^{10<^JT!}Jci85n}>WKjo)s?SA^~3;)>WKjo)e{3G zswW0WR8I_$sGb-gQ9Ut0qIzP0MD@e~iRy^~64es}B&us?iR#)}qPljLsIHwQs%vM7 z>e^YNx^|YRuAL>SYiEh-+F7Eyc9y8Foh7PkXNl_CS)#gjmZ+|sC8}#@iR#)}Vz3{B z{TS@WU_S=?G1!m6ehl_wupfi{80^PjKL-0T*pI<}4EAHNAA|iE?8jg~2KzDCkHLNn z_G7RggZ&un$6!AO`!U#$!F~+(W3V5C{TS@WU_S=?G1!m6ehl_wupfi{80^PjKL-0T z*pI<}4EAHNAA|iE?8jg~2KzDCkHLNn_G7RggZ&un$6!AO`!U#$!F~+(W3V5C{TS@W zU_S=?G1!m6ehl_wupfi{80^PjKL-0T*pI<}4EAHNAA|iE?8jg~2K#Z?kHdZ(_T#W0 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%0A2b`mB`7{4A^Ev#g8HvLZgqTKFvM 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 literal 0 HcmV?d00001 diff --git a/app/fonts/OpenSans-Light.eot b/app/fonts/OpenSans-Light.eot deleted file mode 100644 index 725db50b78876bcff3eb0b042450b9dabc7cf0b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33610 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 - - - -Created by FontForge 20110222 at Thu May 12 12:49:24 2011 - By www-data -Digitized data copyright (c) 2010-2011, Google Corporation. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/fonts/OpenSans-Light.ttf b/app/fonts/OpenSans-Light.ttf index 3d29b04b2282b362650648ab5e1293d73895c852..0d381897da20345fa63112f19042561f44ee3aa0 100644 GIT binary patch literal 222412 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 z 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 diff --git a/app/fonts/OpenSans-Light.woff b/app/fonts/OpenSans-Light.woff deleted file mode 100644 index d50b69a1..00000000 --- a/app/fonts/OpenSans-Light.woff +++ /dev/null @@ -1,811 +0,0 @@ - - - - - - - - - - - - open-sans/OpenSans-Light.woff at gh-pages · FontFaceKit/open-sans - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Skip to content -

- - - - - - - - - - - - -
-
-
- -
-
-
- - -
    - -
  • -
    - -
    - - - - Watch - - - - -
    - -
    -
    -
    -
  • - -
  • - -
    - -
    - - -
    -
    - - -
    - -
  • - -
  • - - - Fork - - - - -
  • - -
- -

- - /open-sans - - - - - -

-
-
- -
-
-
- - - -
- -
-

HTTPS clone URL

-
- - - - -
-
- - -
-

SSH clone URL

-
- - - - -
-
- - -
-

Subversion checkout URL

-
- - - - -
-
- - - -
You can clone with -
,
, or
. - - - -
- - - - - - - Download ZIP - -
-
- -
- - - - - - - -
- -
- - - branch: - gh-pages - - - -
- -
- - - - -
- - -
- - -
-
- - Martin Domke - - -
- - - -
- -
-
-
- -
- Raw - History -
- - - -
- -
- -
- 62.844 kB -
-
- -
-
- View Raw -
-
- -
- -Jump to Line - - -
- -
- -
-
- - -
- -
- -
- - -
-
-
- -
-
-
-
-
- -
- - - - - - -
- - - Something went wrong with that request. Please try again. -
- - - - - - - - - diff --git a/app/fonts/OpenSans-Regular.ttf b/app/fonts/OpenSans-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..db433349b7047f72f40072630c1bc110620bf09e GIT binary patch literal 217360 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

`;<(N8qIS%#|DOGrly3PFI_6to!nns|x@ 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�hRYz;s{5b%mo|a0xB2qMu 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ë<6}cP%7#h%1Ks?6u6KSkC2`Q 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 literal 0 HcmV?d00001 diff --git a/app/fonts/opensans-regular.eot b/app/fonts/opensans-regular.eot deleted file mode 100644 index 6bbc3cf58cb011a6b4bf3cb1612ce212608f7274..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19836 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/fonts/opensans-regular.ttf b/app/fonts/opensans-regular.ttf deleted file mode 100644 index c537f8382a42986cc5e0d5a06b1460df4f0a5e25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38232 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 diff --git a/app/fonts/opensans-regular.woff b/app/fonts/opensans-regular.woff deleted file mode 100644 index e231183dce4c7b452afc9e7799586fd285e146f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22660 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 diff --git a/app/fonts/opensans-semibold.eot b/app/fonts/opensans-semibold.eot deleted file mode 100644 index d8375dd0ab130207f023358d62ef6ff357108b7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20028 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/fonts/opensans-semibold.ttf b/app/fonts/opensans-semibold.ttf deleted file mode 100644 index b3290843a7a3e621867b169c8487de9a8c7a8054..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39476 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 diff --git a/app/fonts/opensans-semibold.woff b/app/fonts/opensans-semibold.woff deleted file mode 100644 index 28d6adee03b8d2301e06680fce413eb94887b57e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22908 zcmZse1B@55003wR007_v002TD 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 Date: Tue, 5 Jan 2016 08:13:37 +0100 Subject: [PATCH 095/100] [i18n] Update locales --- app/locales/taiga/locale-es.json | 4 ++-- app/locales/taiga/locale-fr.json | 12 ++++++------ app/locales/taiga/locale-pt-br.json | 4 ++-- app/locales/taiga/locale-zh-hant.json | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/app/locales/taiga/locale-es.json b/app/locales/taiga/locale-es.json index d7ec1eb2..d49dd3a7 100644 --- a/app/locales/taiga/locale-es.json +++ b/app/locales/taiga/locale-es.json @@ -1,6 +1,6 @@ { "COMMON": { - "YES": "Si", + "YES": "Sí", "NO": "No", "LOADING": "Cargando...", "LOADING_PROJECT": "Cargando proyecto...", @@ -1308,7 +1308,7 @@ "HINT2_TEXT": "Los equipos ahora pueden crear atributos personalizados como un medio flexible para introducir datos específicos útiles para su flujo de trabajo particular", "HINT3_TITLE": "Reordenar tus proyectos para facilitar el acceso a los más relevantes para ti", "HINT3_TEXT": "Los 10 primeros proyectos aparecerán en el listado del acceso directo de la barra superior.", - "HINT4_TITLE": "Has olvidado en qué estabas trabajando?", + "HINT4_TITLE": "¿Has olvidado en qué estabas trabajando?", "HINT4_TEXT": "No te preocupes, en el dashboard encontrarás las tareas, peticiones e historias de usuario abiertas en el orden en el que trabajste en ellas." }, "TIMELINE": { diff --git a/app/locales/taiga/locale-fr.json b/app/locales/taiga/locale-fr.json index 5ba469ac..b1d82c74 100644 --- a/app/locales/taiga/locale-fr.json +++ b/app/locales/taiga/locale-fr.json @@ -6,7 +6,7 @@ "LOADING_PROJECT": "Chargement du projet...", "DATE": "DD MMM YYYY", "DATETIME": "DD MMM YYYY HH:mm", - "SAVE": "Enregistré", + "SAVE": "Enregistrer", "CANCEL": "Annuler", "ACCEPT": "Accepter", "DELETE": "Supprimer", @@ -17,7 +17,7 @@ "DRAG": "Faire glisser", "TAG_LINE": "Votre outil de gestion de projet agile, libre et open source", "TAG_LINE_2": "AIMEZ VOTRE PROJET", - "BLOCK": "Bloc", + "BLOCK": "Bloquer", "UNBLOCK": "Débloquer", "BLOCKED": "Bloqué", "CREATED_BY": "Créé par {{fullDisplayName}}", @@ -668,7 +668,7 @@ "ACTIVITY_TAB": "Activité", "ACTIVITY_TAB_TITLE": "Voir toutes les activités de cet utilisateur", "PROJECTS_TAB": "Projets", - "PROJECTS_TAB_TITLE": "List of all projects in which the user is a member", + "PROJECTS_TAB_TITLE": "Liste de tous les projets pour lesquels l'utilisateur est membre.", "LIKES_TAB": "Aime", "LIKES_TAB_TITLE": "Lister tous les 'aime' fait par cet utilisateur", "VOTES_TAB": "Votes", @@ -681,7 +681,7 @@ }, "PROFILE_SIDEBAR": { "TITLE": "Votre profil", - "DESCRIPTION": "People can see everything you do and what you are working on. Add a nice bio to give an enhanced version of your information.", + "DESCRIPTION": "Tout le monde peut voir ce que vous fêtes et ce sur quoi vous travaillez. Ajoutez votre bio pour donner une version améliorée de vos informations.", "ADD_INFO": "Editer la biographie" }, "PROFILE_FAVS": { @@ -952,7 +952,7 @@ "MOVE_US_TO_CURRENT_SPRINT": "Déplacer vers le Sprint Courant", "SHOW_FILTERS": "Afficher les filtres", "SHOW_TAGS": "Afficher les mots-clés", - "EMPTY": "The backlog is empty!", + "EMPTY": "Le carnet de suivi est vide !", "CREATE_NEW_US": "Créer un nouveau récit utilisateur", "CREATE_NEW_US_EMPTY_HELP": "Vous pouvez envisager de créer un nouveau récit utilisateur", "EXCESS_OF_POINTS": "Excès de points", @@ -1305,7 +1305,7 @@ "HINT1_TITLE": "Savez-vous que vous pouvez importer et exporter les projets?", "HINT1_TEXT": "Cela vous permet d'extraire toutes vos données d'un Taiga et de le déplacer vers un autre", "HINT2_TITLE": "Savez-vous que vous pouvez créer des champs personnalisés ?", - "HINT2_TEXT": "Teams can now create custom fields as a flexible means to enter specific data useful for their particular workflow.", + "HINT2_TEXT": "Les équipes peuvent désormais créer des champs personnalisés comme un moyen flexible d'entrer des données spécifiques utiles pour leur flux de travail particulier.", "HINT3_TITLE": "Reorder your projects to feature those most relevant to you.", "HINT3_TEXT": "The 10 projects are listed in the direct access bar at the top.", "HINT4_TITLE": "Avez-vous oublié ce sur quoi vous travailliez ?", diff --git a/app/locales/taiga/locale-pt-br.json b/app/locales/taiga/locale-pt-br.json index b65bc88f..bb208d14 100644 --- a/app/locales/taiga/locale-pt-br.json +++ b/app/locales/taiga/locale-pt-br.json @@ -4,8 +4,8 @@ "NO": "Não", "LOADING": "Carregando...", "LOADING_PROJECT": "Carregando o projeto...", - "DATE": "DD MMM AAAA", - "DATETIME": "DD MMM AAAA HH:mm", + "DATE": "DD MMM YYYY", + "DATETIME": "DD MMM YYYY HH:mm", "SAVE": "Salvar", "CANCEL": "Cancelar", "ACCEPT": "Aceitar", diff --git a/app/locales/taiga/locale-zh-hant.json b/app/locales/taiga/locale-zh-hant.json index 97dd265f..f668a33f 100644 --- a/app/locales/taiga/locale-zh-hant.json +++ b/app/locales/taiga/locale-zh-hant.json @@ -1409,4 +1409,4 @@ } } } -} +} \ No newline at end of file From c1e5eb285b73e93635cf84d242c3696e5e30e785 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Fri, 13 Nov 2015 13:34:01 +0100 Subject: [PATCH 096/100] US #3440 - Send notifications (live announcement) to the user through taiga-events --- CHANGELOG.md | 1 + app/coffee/modules/events.coffee | 32 ++++++-- app/images/notification-decoration.png | Bin 0 -> 14313 bytes app/index.jade | 1 + .../live-announcement.directive.coffee | 54 +++++++++++++ .../live-announcement/live-announcement.jade | 12 +++ .../live-announcement/live-announcement.scss | 72 ++++++++++++++++++ .../live-announcement.service.coffee | 31 ++++++++ app/modules/projects/project/project.jade | 2 +- app/themes/taiga/variables.scss | 4 + 10 files changed, 202 insertions(+), 7 deletions(-) create mode 100644 app/images/notification-decoration.png create mode 100644 app/modules/components/live-announcement/live-announcement.directive.coffee create mode 100644 app/modules/components/live-announcement/live-announcement.jade create mode 100644 app/modules/components/live-announcement/live-announcement.scss create mode 100644 app/modules/components/live-announcement/live-announcement.service.coffee diff --git a/CHANGELOG.md b/CHANGELOG.md index ba4bc13f..8c46e982 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ ## 1.9.1 Taiga Tribe (unreleased) - [118n] Now taiga plugins can be translatable. - New Taiga plugins system. +- Now superadmins can send notifications (live announcement) to the user (through taiga-events). ### Misc - Statics folder hash to prevent cache problems when a new version is released. diff --git a/app/coffee/modules/events.coffee b/app/coffee/modules/events.coffee index 82043d22..f7acf0bc 100644 --- a/app/coffee/modules/events.coffee +++ b/app/coffee/modules/events.coffee @@ -27,7 +27,7 @@ module = angular.module("taigaEvents", []) class EventsService - constructor: (@win, @log, @config, @auth) -> + constructor: (@win, @log, @config, @auth, @liveAnnouncementService, @rootScope) -> bindMethods(@) initialize: (sessionId) -> @@ -78,6 +78,11 @@ class EventsService delete @.ws + notifications: -> + @.subscribe null, 'notifications', (data) => + @liveAnnouncementService.show(data.title, data.desc) + @rootScope.$digest() + ########################################### # Heartbeat (Ping - Pong) ########################################### @@ -144,7 +149,12 @@ class EventsService return subscription = @.subscriptions[routingKey] - subscription.scope.$apply -> + + if subscription.scope + subscription.scope.$apply -> + subscription.callback(data.data) + + else subscription.callback(data.data) ########################################### @@ -168,7 +178,8 @@ class EventsService @.subscriptions[routingKey] = subscription @.sendMessage(message) - scope.$on("$destroy", => @.unsubscribe(routingKey)) + + scope.$on("$destroy", => @.unsubscribe(routingKey)) if scope unsubscribe: (routingKey) -> if @.error @@ -189,6 +200,7 @@ class EventsService onOpen: -> @.connected = true @.startHeartBeatMessages() + @.notifications() @log.debug("WebSocket connection opened") token = @auth.getToken() @@ -204,6 +216,7 @@ class EventsService @.log.debug "WebSocket message received: #{event.data}" data = JSON.parse(event.data) + if data.cmd == "pong" @.processHeartBeatPongMessage(data) else @@ -223,11 +236,18 @@ class EventsProvider setSessionId: (sessionId) -> @.sessionId = sessionId - $get: ($win, $log, $conf, $auth) -> - service = new EventsService($win, $log, $conf, $auth) + $get: ($win, $log, $conf, $auth, liveAnnouncementService, $rootScope) -> + service = new EventsService($win, $log, $conf, $auth, liveAnnouncementService, $rootScope) service.initialize(@.sessionId) return service - @.prototype.$get.$inject = ["$window", "$log", "$tgConfig", "$tgAuth"] + @.prototype.$get.$inject = [ + "$window", + "$log", + "$tgConfig", + "$tgAuth", + "tgLiveAnnouncementService", + "$rootScope" + ] module.provider("$tgEvents", EventsProvider) diff --git a/app/images/notification-decoration.png b/app/images/notification-decoration.png new file mode 100644 index 0000000000000000000000000000000000000000..2147968c637938ff4e5f650dcddbd226c64e4880 GIT binary patch literal 14313 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 Q1^@s+ML|=(PS!H~e;Cz3f&c&j literal 0 HcmV?d00001 diff --git a/app/index.jade b/app/index.jade index 96aa95cd..b53656f9 100644 --- a/app/index.jade +++ b/app/index.jade @@ -38,6 +38,7 @@ html(lang="en") include partials/includes/components/notification-message div(tg-joy-ride) + div(tg-live-announcement) script(src="/#{v}/js/libs.js") script(src="/#{v}/js/templates.js") diff --git a/app/modules/components/live-announcement/live-announcement.directive.coffee b/app/modules/components/live-announcement/live-announcement.directive.coffee new file mode 100644 index 00000000..97f037d8 --- /dev/null +++ b/app/modules/components/live-announcement/live-announcement.directive.coffee @@ -0,0 +1,54 @@ +### +# Copyright (C) 2014-2015 Andrey Antukh +# Copyright (C) 2014-2015 Jesús Espino Garcia +# Copyright (C) 2014-2015 David Barragán Merino +# +# 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 . +# +# File: live-announcement.directive.coffee +### + + +LiveAnnouncementDirective = (liveAnnouncementService) -> + link = (scope, el, attrs) -> + + return { + restrict: "AE", + scope: {}, + controllerAs: 'vm', + controller: () -> + this.close = () -> + liveAnnouncementService.open = false + + Object.defineProperties(this, { + open: { + get: () -> return liveAnnouncementService.open + }, + title: { + get: () -> return liveAnnouncementService.title + }, + desc: { + get: () -> return liveAnnouncementService.desc + } + }) + link: link, + templateUrl: "components/live-announcement/live-announcement.html" + } + +LiveAnnouncementDirective.$inject = [ + "tgLiveAnnouncementService" +] + +angular.module("taigaComponents") + .directive("tgLiveAnnouncement", LiveAnnouncementDirective) diff --git a/app/modules/components/live-announcement/live-announcement.jade b/app/modules/components/live-announcement/live-announcement.jade new file mode 100644 index 00000000..25df0db7 --- /dev/null +++ b/app/modules/components/live-announcement/live-announcement.jade @@ -0,0 +1,12 @@ +.live-announcement(ng-class="{visible: vm.open}") + .live-announcement-inner + img.anouncement-decoration(src="/#{v}/images/notification-decoration.png", alt="Loading...") + .text + h2.title {{vm.title}} + p.warning(ng-bind-html="vm.desc") + a.close( + ng-click="vm.close()" + href="" + title="{{ COMMON.CLOSE | translate }}" + ) + include ../../../svg/remove.svg diff --git a/app/modules/components/live-announcement/live-announcement.scss b/app/modules/components/live-announcement/live-announcement.scss new file mode 100644 index 00000000..d30cdd00 --- /dev/null +++ b/app/modules/components/live-announcement/live-announcement.scss @@ -0,0 +1,72 @@ +.live-announcement { + $animation-steps-duration: .5s; + align-content: center; + background: $tribe-primary; + display: flex; + height: 0; + justify-content: center; + overflow: hidden; + pointer-events: none; + position: fixed; + top: 0; + transition: width $animation-steps-duration, height $animation-steps-duration; + transition-delay: $animation-steps-duration; + width: 0; + z-index: 99; + .live-announcement-inner { + opacity: 0; + transition: opacity $animation-steps-duration; + width: 100%; + } + &.visible { + height: 146px; + pointer-events: auto; + transition-delay: 0s; + width: 100%; + .live-announcement-inner { + opacity: 1; + transition: opacity $animation-steps-duration $animation-steps-duration; + } + } +} + +.live-announcement-inner { + display: flex; + max-width: 1200px; + .announcement-decoration { + align-self: flex-end; + margin-right: 1rem; + } + .text { + padding: 1.25rem 3rem 1.25rem 2rem; + position: relative; + width: 100%; + } + .title { + @extend %bold; + @extend %larger; + color: $tribe-secondary; + margin-bottom: .5rem; + } + .warning { + color: $tribe-secondary; + a { + @extend %bold; + color: $tribe-secondary; + } + } + .close { + height: 2.5rem; + position: absolute; + right: 0; + top: 1rem; + width: 2.5rem; + svg { + fill: lighten($tribe-secondary, 15%); + transition: fill .2s; + &:hover { + fill: $tribe-secondary; + } + } + } +} diff --git a/app/modules/components/live-announcement/live-announcement.service.coffee b/app/modules/components/live-announcement/live-announcement.service.coffee new file mode 100644 index 00000000..a8c8168b --- /dev/null +++ b/app/modules/components/live-announcement/live-announcement.service.coffee @@ -0,0 +1,31 @@ +### +# Copyright (C) 2014-2015 Taiga Agile LLC +# +# 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 . +# +# File: notification.service.coffee +### + +class LiveAnnouncementService extends taiga.Service + constructor: () -> + @.open = false + @.title = "" + @.desc = "" + + show: (title, desc) -> + @.open = true + @.title = title + @.desc = desc + +angular.module("taigaComponents").service("tgLiveAnnouncementService", LiveAnnouncementService) diff --git a/app/modules/projects/project/project.jade b/app/modules/projects/project/project.jade index 9f48bf12..8977c920 100644 --- a/app/modules/projects/project/project.jade +++ b/app/modules/projects/project/project.jade @@ -1,6 +1,6 @@ div.wrapper tg-project-menu - div.centered.single-project + div.single-project.centered section.single-project-intro div.intro-options h1 diff --git a/app/themes/taiga/variables.scss b/app/themes/taiga/variables.scss index 2eb4144b..12202bf2 100755 --- a/app/themes/taiga/variables.scss +++ b/app/themes/taiga/variables.scss @@ -31,6 +31,10 @@ $red-amaranth: #e43050; $purple-eggplant: #810061; $yellow-pear: #bbe831; +$tribe-primary: #98e0eb; +$tribe-secondary: #107a8a; + + $top-icon-color: #11241f; $dropdown-color: rgba(darken($grayer, 20%), 1); From 7130737f3415315416906df9f82ef7993af448e0 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Tue, 5 Jan 2016 07:56:01 +0100 Subject: [PATCH 097/100] Fixing events for anonymous users --- app/coffee/app.coffee | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/coffee/app.coffee b/app/coffee/app.coffee index 4a8796b1..5c4521e3 100644 --- a/app/coffee/app.coffee +++ b/app/coffee/app.coffee @@ -573,9 +573,10 @@ init = ($log, $rootscope, $auth, $events, $analytics, $translate, $location, $na Promise.setScheduler (cb) -> $rootscope.$evalAsync(cb) + $events.setupConnection() + # Load user if $auth.isAuthenticated() - $events.setupConnection() user = $auth.getUser() # Analytics From ff010fe92d30638084918a02f80f6413a28a9d59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Tue, 5 Jan 2016 08:36:20 +0100 Subject: [PATCH 098/100] Update CHANGELOG --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c46e982..5622dc42 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # Changelog # -## 1.9.1 Taiga Tribe (unreleased) +## 1.9.1 Taiga Tribe (2016-01-05) - [118n] Now taiga plugins can be translatable. - New Taiga plugins system. - Now superadmins can send notifications (live announcement) to the user (through taiga-events). From d64414caa0ef266386327c8a56d9aeeb7b5d84f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Tue, 5 Jan 2016 08:37:58 +0100 Subject: [PATCH 099/100] Update CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5622dc42..903aba99 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## 1.9.1 Taiga Tribe (2016-01-05) + - [118n] Now taiga plugins can be translatable. - New Taiga plugins system. - Now superadmins can send notifications (live announcement) to the user (through taiga-events). From fd844f67df5e03b587e408327d540f30d31a6480 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Tue, 5 Jan 2016 09:50:08 +0100 Subject: [PATCH 100/100] Issue 3610: Team requirement mislabeled --- app/coffee/modules/backlog/main.coffee | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/app/coffee/modules/backlog/main.coffee b/app/coffee/modules/backlog/main.coffee index 6b072eb0..4fb67e09 100644 --- a/app/coffee/modules/backlog/main.coffee +++ b/app/coffee/modules/backlog/main.coffee @@ -1038,12 +1038,6 @@ BurndownBacklogGraphDirective = ($translate) -> lines: fillColor : "rgba(102,153,51,0.3)" }) - team_increment_line = _.map(dataToDraw.milestones, (ml) -> -ml["team-increment"]) - data.push({ - data: _.zip(milestonesRange, team_increment_line) - lines: - fillColor : "rgba(153,51,51,0.3)" - }) client_increment_line = _.map dataToDraw.milestones, (ml) -> -ml["team-increment"] - ml["client-increment"] data.push({ @@ -1051,7 +1045,12 @@ BurndownBacklogGraphDirective = ($translate) -> lines: fillColor : "rgba(255,51,51,0.3)" }) - + team_increment_line = _.map(dataToDraw.milestones, (ml) -> -ml["team-increment"]) + data.push({ + data: _.zip(milestonesRange, team_increment_line) + lines: + fillColor : "rgba(153,51,51,0.3)" + }) colors = [ "rgba(0,0,0,1)" "rgba(120,120,120,0.2)" @@ -1107,10 +1106,10 @@ BurndownBacklogGraphDirective = ($translate) -> return $translate.instant("BACKLOG.CHART.REAL", ctx) else if flotItem.seriesIndex == 3 ctx = {sprintName: dataToDraw.milestones[xval].name, value: Math.abs(yval)} - return $translate.instant("BACKLOG.CHART.INCREMENT_TEAM", ctx) + return $translate.instant("BACKLOG.CHART.INCREMENT_CLIENT", ctx) else ctx = {sprintName: dataToDraw.milestones[xval].name, value: Math.abs(yval)} - return $translate.instant("BACKLOG.CHART.INCREMENT_CLIENT", ctx) + return $translate.instant("BACKLOG.CHART.INCREMENT_TEAM", ctx) } }