1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2025-02-19 13:54:25 +01:00

delete & sync ical sources

This commit is contained in:
Sylvain 2019-12-02 12:19:30 +01:00
parent 36eba99808
commit 55d2c88134
6 changed files with 45 additions and 3 deletions

View File

@ -813,8 +813,35 @@ Application.Controllers.controller('AdminICalendarController', ['$scope', 'iCale
* @param calendar
*/
$scope.delete = function (calendar) {
const idx = $scope.calendars.indexOf(calendar);
$scope.calendars.splice(idx, 1);
ICalendar.delete(
{ id: calendar.id },
function () {
// success
const idx = $scope.calendars.indexOf(calendar);
$scope.calendars.splice(idx, 1);
}, function (error) {
// failed
growl.error(_t('icalendar.delete_failed'));
console.error(error);
});
}
/**
* Asynchronously re-fetches the events from the given calendar
* @param calendar
*/
$scope.sync = function (calendar) {
ICalendar.sync(
{ id: calendar.id },
function () {
// success
growl.info(_t('icalendar.refresh'));
}, function (error) {
// failed
growl.error(_t('icalendar.sync_failed'));
console.error(error);
}
)
}
}
]);

View File

@ -6,6 +6,11 @@ Application.Services.factory('ICalendar', ['$resource', function ($resource) {
events: {
method: 'GET',
url: '/api/i_calendar/events'
},
sync: {
method: 'POST',
url: '/api/i_calendar/:id/sync',
params: { id: '@id' }
}
}
);

View File

@ -33,7 +33,7 @@
<th style="width: 35%;" translate>{{ 'icalendar.name' }}</th>
<th style="width: 35%;" translate>{{ 'icalendar.url' }}</th>
<th translate>{{ 'icalendar.display' }}</th>
<th></th>
<th style="width: 10%;"></th>
</tr>
</thead>
<tbody>
@ -42,6 +42,7 @@
<td class="calendar-url"><a href="{{calendar.url}}" target="_blank">{{calendar.url}}</a></td>
<td class="calendar-legend-block text-left"><span class="calendar-legend" ng-style="calendarStyle(calendar)" translate> {{ calendar.textHidden ? '' : 'icalendar.example' }}</span>
<td class="calendar-actions">
<button class="btn btn-info" ng-click="sync(calendar)"><i class="fa fa-refresh"></i></button>
<button class="btn btn-danger" ng-click="delete(calendar)"><i class="fa fa-trash"></i></button>
</td>
</tr>

View File

@ -43,6 +43,11 @@ class API::ICalendarController < API::ApiController
end
end
def sync
puts '[TODO] run worker'
render json: { processing: true }, status: :created
end
private
def set_i_cal

View File

@ -103,6 +103,9 @@ fr:
hidden: "Caché"
shown: "Affiché"
create_error: "Impossible de créer l'import iCalendar. Veuillez réessayer ultérieurement"
delete_failed: "Impossible de supprimer l'import iCalendar. Veuillez réessayer ultérieurement"
refresh: "Mise à jour en cours..."
sync_failed: "Impossible de synchroniser l'URL. Veuillez réessayer ultérieurement"
project_elements:
# gestion des éléments constituant les projets

View File

@ -114,6 +114,7 @@ Rails.application.routes.draw do
resources :i_calendar, only: %i[index create destroy] do
get 'events', on: :collection
post 'sync', on: :member
end
# for admin