From 97d93cd6226ff9ddfbc4e124c7c43144c5a7c080 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 27 Nov 2019 17:39:19 +0100 Subject: [PATCH] added a name to imported calendar --- .../controllers/admin/calendar.js.erb | 23 +++++++++++++------ app/assets/stylesheets/modules/icalendar.scss | 9 ++++++++ .../templates/admin/calendar/icalendar.html | 12 ++++++++-- app/controllers/api/i_calendar_controller.rb | 2 +- .../api/i_calendar/_i_calendar.json.jbuilder | 2 +- config/locales/app.admin.fr.yml | 2 ++ .../20191127153729_create_i_calendars.rb | 1 + db/schema.rb | 1 + 8 files changed, 41 insertions(+), 11 deletions(-) diff --git a/app/assets/javascripts/controllers/admin/calendar.js.erb b/app/assets/javascripts/controllers/admin/calendar.js.erb index e41157041..85d95c1db 100644 --- a/app/assets/javascripts/controllers/admin/calendar.js.erb +++ b/app/assets/javascripts/controllers/admin/calendar.js.erb @@ -762,8 +762,8 @@ Application.Controllers.controller('DeleteRecurrentAvailabilityController', ['$s * Controller used in the iCalendar (ICS) imports management page */ -Application.Controllers.controller('AdminICalendarController', ['$scope', 'iCalendars', - function ($scope, iCalendars) { +Application.Controllers.controller('AdminICalendarController', ['$scope', 'iCalendars', 'ICalendar', 'growl', '_t', + function ($scope, iCalendars, ICalendar, growl, _t) { // list of ICS sources $scope.calendars = iCalendars; @@ -772,6 +772,7 @@ Application.Controllers.controller('AdminICalendarController', ['$scope', 'iCale color: undefined, textColor: undefined, url: undefined, + name: undefined, textHidden: false }; @@ -779,11 +780,19 @@ Application.Controllers.controller('AdminICalendarController', ['$scope', 'iCale * Save the new iCalendar in database */ $scope.save = function () { - $scope.calendars.push(Object.assign({}, $scope.newCalendar)); - $scope.newCalendar.url = undefined; - $scope.newCalendar.color = null; - $scope.newCalendar.textColor = null; - $scope.newCalendar.textHidden = false; + ICalendar.save({}, { i_calendar: $scope.newCalendar }, function (data) { + // success + $scope.calendars.push(data); + $scope.newCalendar.url = undefined; + $scope.newCalendar.name = undefined; + $scope.newCalendar.color = null; + $scope.newCalendar.textColor = null; + $scope.newCalendar.textHidden = false; + }, function (error) { + // failed + growl.error(_t('icalendar.create_error')); + console.error(error); + }) } /** diff --git a/app/assets/stylesheets/modules/icalendar.scss b/app/assets/stylesheets/modules/icalendar.scss index a36dafa74..7c852fcd6 100644 --- a/app/assets/stylesheets/modules/icalendar.scss +++ b/app/assets/stylesheets/modules/icalendar.scss @@ -8,3 +8,12 @@ margin-top: 1em; } } + +.calendar-name { + font-weight: 600; + font-style: italic; +} + +.calendar-url { + overflow: hidden; +} diff --git a/app/assets/templates/admin/calendar/icalendar.html b/app/assets/templates/admin/calendar/icalendar.html index 70faf8f5f..fec55b748 100644 --- a/app/assets/templates/admin/calendar/icalendar.html +++ b/app/assets/templates/admin/calendar/icalendar.html @@ -30,14 +30,16 @@ - + + - + +
{{ 'icalendar.url' }}{{ 'icalendar.name' }}{{ 'icalendar.url' }} {{ 'icalendar.display' }}
{{calendar.url}}{{calendar.name}}{{calendar.url}} {{ calendar.textHidden ? '' : 'icalendar.example' }} @@ -47,6 +49,12 @@

{{ 'icalendar.new_import' }}

+
+
+ +
+ +
diff --git a/app/controllers/api/i_calendar_controller.rb b/app/controllers/api/i_calendar_controller.rb index f004a13ab..857ae30d1 100644 --- a/app/controllers/api/i_calendar_controller.rb +++ b/app/controllers/api/i_calendar_controller.rb @@ -50,6 +50,6 @@ class API::ICalendarController < API::ApiController end def i_calendar_params - params.require(:i_calendar).permit(:url, :color, :text_color, :text_hidden) + params.require(:i_calendar).permit(:name, :url, :color, :text_color, :text_hidden) end end diff --git a/app/views/api/i_calendar/_i_calendar.json.jbuilder b/app/views/api/i_calendar/_i_calendar.json.jbuilder index 23b68df1d..dfa627cd3 100644 --- a/app/views/api/i_calendar/_i_calendar.json.jbuilder +++ b/app/views/api/i_calendar/_i_calendar.json.jbuilder @@ -1,3 +1,3 @@ # frozen_string_literal: true -json.extract! i_cal, :id, :url, :color, :text_color, :text_hidden +json.extract! i_cal, :id, :name, :url, :color, :text_color, :text_hidden diff --git a/config/locales/app.admin.fr.yml b/config/locales/app.admin.fr.yml index 576cada15..85e75a36a 100644 --- a/config/locales/app.admin.fr.yml +++ b/config/locales/app.admin.fr.yml @@ -96,11 +96,13 @@ fr: color: "Couleur" text_color: "Couleur du texte" url: "URL" + name: "Nom" example: "Exemple" display: "Affichage" hide_text: "Cacher le texte" hidden: "Caché" shown: "Affiché" + create_error: "Impossible de créer l'import iCalendar. Veuillez réessayer ultérieurement" project_elements: # gestion des éléments constituant les projets diff --git a/db/migrate/20191127153729_create_i_calendars.rb b/db/migrate/20191127153729_create_i_calendars.rb index 289e93b94..b9b558a0f 100644 --- a/db/migrate/20191127153729_create_i_calendars.rb +++ b/db/migrate/20191127153729_create_i_calendars.rb @@ -6,6 +6,7 @@ class CreateICalendars < ActiveRecord::Migration def change create_table :i_calendars do |t| t.string :url + t.string :name t.string :color t.string :text_color t.boolean :text_hidden diff --git a/db/schema.rb b/db/schema.rb index bd9579e7f..30b47937e 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -253,6 +253,7 @@ ActiveRecord::Schema.define(version: 20191127153729) do create_table "i_calendars", force: :cascade do |t| t.string "url" + t.string "name" t.string "color" t.string "text_color" t.boolean "text_hidden"