From 035edd39c422c9434147a1b0ac457cb9383c9b5b Mon Sep 17 00:00:00 2001
From: Jean-Philippe Lang <jp_lang@yahoo.fr>
Date: Fri, 14 Aug 2015 08:20:32 +0000
Subject: Import issues from CSV file (#950).

git-svn-id: http://svn.redmine.org/redmine/trunk@14493 e93f8b46-1217-0410-a6f0-8f06a7374b81
---
 config/locales/en.yml | 19 +++++++++++++++++++
 config/locales/fr.yml | 19 +++++++++++++++++++
 config/routes.rb      |  7 +++++++
 3 files changed, 45 insertions(+)

(limited to 'config')

diff --git a/config/locales/en.yml b/config/locales/en.yml
index 039df462f..56f9caceb 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -182,6 +182,8 @@ en:
   notice_account_deleted: "Your account has been permanently deleted."
   notice_user_successful_create: "User %{id} created."
   notice_new_password_must_be_different: The new password must be different from the current password
+  notice_import_finished: "All %{count} items have been imported."
+  notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported."
 
   error_can_t_load_default_data: "Default configuration could not be loaded: %{value}"
   error_scm_not_found: "The entry or revision was not found in the repository."
@@ -205,6 +207,9 @@ en:
   error_session_expired: "Your session has expired. Please login again."
   warning_attachments_not_saved: "%{count} file(s) could not be saved."
   error_password_expired: "Your password has expired or the administrator requires you to change it."
+  error_invalid_file_encoding: "The file is not a valid %{encoding} encoded file"
+  error_invalid_csv_file_or_settings: "The file is not a CSV file or does not match the settings below"
+  error_can_not_read_import_file: "An error occurred while reading the file to import"
 
   mail_subject_lost_password: "Your %{value} password"
   mail_body_lost_password: 'To change your password, click on the following link:'
@@ -484,6 +489,7 @@ en:
   permission_export_wiki_pages: Export wiki pages
   permission_manage_subtasks: Manage subtasks
   permission_manage_related_issues: Manage related issues
+  permission_import_issues: Import issues
 
   project_module_issue_tracking: Issue tracking
   project_module_time_tracking: Time tracking
@@ -952,6 +958,18 @@ en:
   label_member_management: Member management
   label_member_management_all_roles: All roles
   label_member_management_selected_roles_only: Only these roles
+  label_import_issues: Import issues
+  label_select_file_to_import: Select the file to import
+  label_fields_separator: Field separator
+  label_fields_wrapper: Field wrapper
+  label_encoding: Encoding
+  label_coma_char: Coma
+  label_semi_colon_char: Semi colon
+  label_quote_char: Quote
+  label_double_quote_char: Double quote
+  label_fields_mapping: Fields mapping
+  label_file_content_preview: File content preview
+  label_create_missing_values: Create missing values
 
   button_login: Login
   button_submit: Submit
@@ -1005,6 +1023,7 @@ en:
   button_delete_my_account: Delete my account
   button_close: Close
   button_reopen: Reopen
+  button_import: Import
 
   status_active: active
   status_registered: registered
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index 3432514be..be08413b7 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -202,6 +202,8 @@ fr:
   notice_account_deleted: "Votre compte a été définitivement supprimé."
   notice_user_successful_create: "Utilisateur %{id} créé."
   notice_new_password_must_be_different: Votre nouveau mot de passe doit être différent de votre mot de passe actuel
+  notice_import_finished: "Les %{count} éléments ont été importé(s)."
+  notice_import_finished_with_errors: "%{count} élément(s) sur %{total} n'ont pas pu être importé(s)."
 
   error_can_t_load_default_data: "Une erreur s'est produite lors du chargement du paramétrage : %{value}"
   error_scm_not_found: "L'entrée et/ou la révision demandée n'existe pas dans le dépôt."
@@ -225,6 +227,9 @@ fr:
   error_session_expired: "Votre session a expiré. Veuillez vous reconnecter."
   warning_attachments_not_saved: "%{count} fichier(s) n'ont pas pu être sauvegardés."
   error_password_expired: "Votre mot de passe a expiré ou nécessite d'être changé."
+  error_invalid_file_encoding: "Le fichier n'est pas un fichier %{encoding} valide"
+  error_invalid_csv_file_or_settings: "Le fichier n'est pas un fichier CSV ou n'est pas conforme aux paramètres sélectionnés"
+  error_can_not_read_import_file: "Une erreur est survenue lors de la lecture du fichier à importer"
 
   mail_subject_lost_password: "Votre mot de passe %{value}"
   mail_body_lost_password: 'Pour changer votre mot de passe, cliquez sur le lien suivant :'
@@ -504,6 +509,7 @@ fr:
   permission_export_wiki_pages: Exporter les pages
   permission_manage_subtasks: Gérer les sous-tâches
   permission_manage_related_issues: Gérer les demandes associées
+  permission_import_issues: Importer des demandes
 
   project_module_issue_tracking: Suivi des demandes
   project_module_time_tracking: Suivi du temps passé
@@ -970,6 +976,18 @@ fr:
   label_member_management: Gestion des membres
   label_member_management_all_roles: Tous les rôles
   label_member_management_selected_roles_only: Ces rôles uniquement
+  label_import_issues: Importer des demandes
+  label_select_file_to_import: Sélectionner le fichier à importer
+  label_fields_separator: Séparateur de champs
+  label_fields_wrapper: Délimiteur de texte
+  label_encoding: Encodage
+  label_coma_char: Virgule
+  label_semi_colon_char: Point virgule
+  label_quote_char: Apostrophe
+  label_double_quote_char: Double apostrophe
+  label_fields_mapping: Correspondance des champs
+  label_file_content_preview: Aperçu du contenu du fichier
+  label_create_missing_values: Créer les valeurs manquantes
 
   button_login: Connexion
   button_submit: Soumettre
@@ -1023,6 +1041,7 @@ fr:
   button_delete_my_account: Supprimer mon compte
   button_close: Fermer
   button_reopen: Réouvrir
+  button_import: Importer
 
   status_active: actif
   status_registered: enregistré
diff --git a/config/routes.rb b/config/routes.rb
index 1fc5bebb3..532546fda 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -61,6 +61,13 @@ Rails.application.routes.draw do
   get 'projects/:id/issues/report', :to => 'reports#issue_report', :as => 'project_issues_report'
   get 'projects/:id/issues/report/:detail', :to => 'reports#issue_report_details', :as => 'project_issues_report_details'
 
+  get   '/issues/imports/new', :to => 'imports#new', :as => 'new_issues_import'
+  post  '/imports', :to => 'imports#create', :as => 'imports'
+  get   '/imports/:id', :to => 'imports#show', :as => 'import'
+  match '/imports/:id/settings', :to => 'imports#settings', :via => [:get, :post], :as => 'import_settings'
+  match '/imports/:id/mapping', :to => 'imports#mapping', :via => [:get, :post], :as => 'import_mapping'
+  match '/imports/:id/run', :to => 'imports#run', :via => [:get, :post], :as => 'import_run'
+
   match 'my/account', :controller => 'my', :action => 'account', :via => [:get, :post]
   match 'my/account/destroy', :controller => 'my', :action => 'destroy', :via => [:get, :post]
   match 'my/page', :controller => 'my', :action => 'page', :via => :get
-- 
cgit v1.2.3