mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2025-01-17 06:52:27 +01:00
refactoring i18n keys - admin
This commit is contained in:
parent
88c48e4e69
commit
a7b423b151
@ -228,26 +228,26 @@ Application.Controllers.controller('AdminEventsController', ['$scope', '$state',
|
||||
*/
|
||||
$scope.removeElement = function (model, index) {
|
||||
if ((model === 'category') && (getModel(model)[1].length === 1)) {
|
||||
growl.error(_t('at_least_one_category_is_required') + ' ' + _t('unable_to_delete_the_last_one'));
|
||||
growl.error(_t('app.admin.events.at_least_one_category_is_required') + ' ' + _t('app.admin.events.unable_to_delete_the_last_one'));
|
||||
return false;
|
||||
}
|
||||
if (getModel(model)[1][index].related_to > 0) {
|
||||
growl.error(_t('unable_to_delete_ELEMENT_already_in_use_NUMBER_times', { ELEMENT: model, NUMBER: getModel(model)[1][index].related_to }));
|
||||
growl.error(_t('app.admin.events.unable_to_delete_ELEMENT_already_in_use_NUMBER_times', { ELEMENT: model, NUMBER: getModel(model)[1][index].related_to }));
|
||||
return false;
|
||||
}
|
||||
return dialogs.confirm({
|
||||
resolve: {
|
||||
object () {
|
||||
return {
|
||||
title: _t('confirmation_required'),
|
||||
msg: _t('do_you_really_want_to_delete_this_ELEMENT', { ELEMENT: model })
|
||||
title: _t('app.admin.events.confirmation_required'),
|
||||
msg: _t('app.admin.events.do_you_really_want_to_delete_this_ELEMENT', { ELEMENT: model })
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
, function () { // delete confirmed
|
||||
getModel(model)[0].delete(getModel(model)[1][index], null, function () { getModel(model)[1].splice(index, 1); }
|
||||
, function () { growl.error(_t('unable_to_delete_an_error_occured')); });
|
||||
, function () { growl.error(_t('app.admin.events.unable_to_delete_an_error_occured')); });
|
||||
});
|
||||
};
|
||||
|
||||
@ -292,10 +292,10 @@ Application.Controllers.controller('AdminEventsController', ['$scope', '$state',
|
||||
// save the price category to the API
|
||||
PriceCategory.save(p_cat, function (cat) {
|
||||
$scope.priceCategories.push(cat);
|
||||
return growl.success(_t('price_category_successfully_created'));
|
||||
return growl.success(_t('app.admin.events.price_category_successfully_created'));
|
||||
}
|
||||
, function (err) {
|
||||
growl.error(_t('unable_to_add_the_price_category_check_name_already_used'));
|
||||
growl.error(_t('app.admin.events.unable_to_add_the_price_category_check_name_already_used'));
|
||||
return console.error(err);
|
||||
});
|
||||
});
|
||||
@ -308,7 +308,7 @@ Application.Controllers.controller('AdminEventsController', ['$scope', '$state',
|
||||
*/
|
||||
$scope.editPriceCategory = function (id, index) {
|
||||
if ($scope.priceCategories[index].id !== id) {
|
||||
return growl.error(_t('unexpected_error_occurred_please_refresh'));
|
||||
return growl.error(_t('app.admin.events.unexpected_error_occurred_please_refresh'));
|
||||
} else {
|
||||
return $uibModal.open({
|
||||
templateUrl: '<%= asset_path "admin/events/price_form.html" %>',
|
||||
@ -320,10 +320,10 @@ Application.Controllers.controller('AdminEventsController', ['$scope', '$state',
|
||||
// update the price category to the API
|
||||
PriceCategory.update({ id }, { price_category: p_cat }, function (cat) {
|
||||
$scope.priceCategories[index] = cat;
|
||||
return growl.success(_t('price_category_successfully_updated'));
|
||||
return growl.success(_t('app.admin.events.price_category_successfully_updated'));
|
||||
}
|
||||
, function (err) {
|
||||
growl.error(_t('unable_to_update_the_price_category'));
|
||||
growl.error(_t('app.admin.events.unable_to_update_the_price_category'));
|
||||
return console.error(err);
|
||||
});
|
||||
});
|
||||
@ -337,17 +337,17 @@ Application.Controllers.controller('AdminEventsController', ['$scope', '$state',
|
||||
*/
|
||||
$scope.removePriceCategory = function (id, index) {
|
||||
if ($scope.priceCategories[index].id !== id) {
|
||||
return growl.error(_t('unexpected_error_occurred_please_refresh'));
|
||||
return growl.error(_t('app.admin.events.unexpected_error_occurred_please_refresh'));
|
||||
} else if ($scope.priceCategories[index].events > 0) {
|
||||
return growl.error(_t('unable_to_delete_this_price_category_because_it_is_already_used'));
|
||||
return growl.error(_t('app.admin.events.unable_to_delete_this_price_category_because_it_is_already_used'));
|
||||
} else {
|
||||
return dialogs.confirm(
|
||||
{
|
||||
resolve: {
|
||||
object () {
|
||||
return {
|
||||
title: _t('confirmation_required'),
|
||||
msg: _t('do_you_really_want_to_delete_this_price_category')
|
||||
title: _t('app.admin.events.confirmation_required'),
|
||||
msg: _t('app.admin.events.do_you_really_want_to_delete_this_price_category')
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -356,10 +356,10 @@ Application.Controllers.controller('AdminEventsController', ['$scope', '$state',
|
||||
PriceCategory.remove(
|
||||
{ id },
|
||||
function () { // successfully deleted
|
||||
growl.success(_t('price_category_successfully_deleted'));
|
||||
growl.success(_t('app.admin.events.price_category_successfully_deleted'));
|
||||
$scope.priceCategories.splice(index, 1);
|
||||
},
|
||||
function () { growl.error(_t('price_category_deletion_failed')); }
|
||||
function () { growl.error(_t('app.admin.events.price_category_deletion_failed')); }
|
||||
);
|
||||
}
|
||||
);
|
||||
@ -483,11 +483,11 @@ Application.Controllers.controller('NewEventController', ['$scope', '$state', 'C
|
||||
|
||||
// Possible types of recurrences for an event
|
||||
$scope.recurrenceTypes = [
|
||||
{ label: _t('none'), value: 'none' },
|
||||
{ label: _t('every_days'), value: 'day' },
|
||||
{ label: _t('every_week'), value: 'week' },
|
||||
{ label: _t('every_month'), value: 'month' },
|
||||
{ label: _t('every_year'), value: 'year' }
|
||||
{ label: _t('app.admin.events_new.none'), value: 'none' },
|
||||
{ label: _t('app.admin.events_new.every_days'), value: 'day' },
|
||||
{ label: _t('app.admin.events_new.every_week'), value: 'week' },
|
||||
{ label: _t('app.admin.events_new.every_month'), value: 'month' },
|
||||
{ label: _t('app.admin.events_new.every_year'), value: 'year' }
|
||||
];
|
||||
|
||||
// Using the EventsController
|
||||
|
@ -25,10 +25,10 @@ Application.Controllers.controller('GraphsController', ['$scope', '$state', '$ro
|
||||
const CHART_HEIGHT = 500;
|
||||
|
||||
// Label of the charts' horizontal axes
|
||||
const X_AXIS_LABEL = _t('date');
|
||||
const X_AXIS_LABEL = _t('app.admin.stats_graphs.date');
|
||||
|
||||
// Label of the charts' vertical axes
|
||||
const Y_AXIS_LABEL = _t('number');
|
||||
const Y_AXIS_LABEL = _t('app.admin.stats_graphs.number');
|
||||
|
||||
// Colors for the line charts. Each new line uses the next color in this array
|
||||
const CHART_COLORS = ['#b35a94', '#1c5794', '#00b49e', '#6fac48', '#ebcf4a', '#fd7e33', '#ca3436', '#a26e3a'];
|
||||
@ -193,9 +193,9 @@ Application.Controllers.controller('GraphsController', ['$scope', '$state', '$ro
|
||||
}
|
||||
} else if ($scope.display.interval === 'week') {
|
||||
if ((typeof x === 'number') || d instanceof Date) {
|
||||
return d3.time.format(_t('week_short') + ' %U')(moment(d).toDate());
|
||||
return d3.time.format(_t('app.admin.stats_graphs.week_short') + ' %U')(moment(d).toDate());
|
||||
} else if (typeof d === 'number') {
|
||||
return _t('week_of_START_to_END', { START: moment(d).format('L'), END: moment(d).add(6, 'days').format('L') });
|
||||
return _t('app.admin.stats_graphs.week_of_START_to_END', { START: moment(d).format('L'), END: moment(d).add(6, 'days').format('L') });
|
||||
} else { // typeof d == 'string'
|
||||
return d;
|
||||
}
|
||||
@ -653,7 +653,7 @@ Application.Controllers.controller('GraphsController', ['$scope', '$state', '$ro
|
||||
|
||||
// common for each charts
|
||||
chart.margin({ left: 100, right: 100 });
|
||||
chart.noData(_t('no_data_for_this_period'));
|
||||
chart.noData(_t('app.admin.stats_graphs.no_data_for_this_period'));
|
||||
chart.height(CHART_HEIGHT);
|
||||
|
||||
// add new chart to the page
|
||||
|
@ -37,12 +37,12 @@ Application.Controllers.controller('OpenAPIClientsController', ['$scope', 'clien
|
||||
if (client.id != null) {
|
||||
OpenAPIClient.update({ id: client.id }, { open_api_client: client }, function (clientResp) {
|
||||
client = clientResp;
|
||||
return growl.success(_t('client_successfully_updated'));
|
||||
return growl.success(_t('app.admin.open_api_clients.client_successfully_updated'));
|
||||
});
|
||||
} else {
|
||||
OpenAPIClient.save({ open_api_client: client }, function (client) {
|
||||
$scope.clients.push(client);
|
||||
return growl.success(_t('client_successfully_created'));
|
||||
return growl.success(_t('app.admin.open_api_clients.client_successfully_created'));
|
||||
});
|
||||
}
|
||||
|
||||
@ -61,8 +61,8 @@ Application.Controllers.controller('OpenAPIClientsController', ['$scope', 'clien
|
||||
resolve: {
|
||||
object () {
|
||||
return {
|
||||
title: _t('confirmation_required'),
|
||||
msg: _t('do_you_really_want_to_delete_this_open_api_client')
|
||||
title: _t('app.admin.open_api_clients.confirmation_required'),
|
||||
msg: _t('app.admin.open_api_clients.do_you_really_want_to_delete_this_open_api_client')
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -70,7 +70,7 @@ Application.Controllers.controller('OpenAPIClientsController', ['$scope', 'clien
|
||||
, () =>
|
||||
OpenAPIClient.delete({ id: $scope.clients[index].id }, function () {
|
||||
$scope.clients.splice(index, 1);
|
||||
return growl.success(_t('client_successfully_deleted'));
|
||||
return growl.success(_t('app.admin.open_api_clients.client_successfully_deleted'));
|
||||
})
|
||||
);
|
||||
|
||||
@ -79,8 +79,8 @@ Application.Controllers.controller('OpenAPIClientsController', ['$scope', 'clien
|
||||
resolve: {
|
||||
object () {
|
||||
return {
|
||||
title: _t('confirmation_required'),
|
||||
msg: _t('do_you_really_want_to_revoke_this_open_api_access')
|
||||
title: _t('app.admin.open_api_clients.confirmation_required'),
|
||||
msg: _t('app.admin.open_api_clients.do_you_really_want_to_revoke_this_open_api_access')
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -88,7 +88,7 @@ Application.Controllers.controller('OpenAPIClientsController', ['$scope', 'clien
|
||||
, () =>
|
||||
OpenAPIClient.resetToken({ id: client.id }, {}, function (clientResp) {
|
||||
client.token = clientResp.token;
|
||||
return growl.success(_t('access_successfully_revoked'));
|
||||
return growl.success(_t('app.admin.open_api_clients.access_successfully_revoked'));
|
||||
})
|
||||
);
|
||||
}
|
||||
|
@ -166,7 +166,7 @@ Application.Controllers.controller('SettingsController', ['$scope', '$filter', '
|
||||
Setting.update(
|
||||
{ name: setting.name },
|
||||
{ value },
|
||||
function () { growl.success(_t('settings.customization_of_SETTING_successfully_saved', { SETTING: _t(`settings.${setting.name}`) })); },
|
||||
function () { growl.success(_t('app.admin.settings.customization_of_SETTING_successfully_saved', { SETTING: _t(`settings.${setting.name}`) })); },
|
||||
function (error) { console.log(error); }
|
||||
);
|
||||
};
|
||||
@ -191,7 +191,7 @@ Application.Controllers.controller('SettingsController', ['$scope', '$filter', '
|
||||
// reset history
|
||||
$scope.privacyDraftsHistory = [];
|
||||
data.setting.history.forEach(function (draft) {
|
||||
$scope.privacyDraftsHistory.push({ id: draft.id, name: _t('settings.privacy.draft_from_USER_DATE', { USER: draft.user.name, DATE: draft.created_at }), content: draft.value });
|
||||
$scope.privacyDraftsHistory.push({ id: draft.id, name: _t('app.admin.settings.privacy.draft_from_USER_DATE', { USER: draft.user.name, DATE: draft.created_at }), content: draft.value });
|
||||
});
|
||||
if (type === 'privacy_draft') {
|
||||
const orderedHistory = $filter('orderBy')(data.setting.history, 'created_at');
|
||||
@ -219,7 +219,7 @@ Application.Controllers.controller('SettingsController', ['$scope', '$filter', '
|
||||
angular.forEach(v, function(err) { growl.error(err); })
|
||||
});
|
||||
} else {
|
||||
growl.success(_t('settings.file_successfully_updated'));
|
||||
growl.success(_t('app.admin.settings.file_successfully_updated'));
|
||||
if (content.custom_asset.name === 'cgu-file') {
|
||||
$scope.cguFile = content.custom_asset;
|
||||
$scope.methods.cgu = 'put';
|
||||
@ -316,7 +316,7 @@ Application.Controllers.controller('SettingsController', ['$scope', '$filter', '
|
||||
}
|
||||
|
||||
privacyDraftsPromise.setting.history.forEach(function (draft) {
|
||||
$scope.privacyDraftsHistory.push({ id: draft.id, name: _t('settings.privacy.draft_from_USER_DATE', { USER: draft.user.name, DATE: moment(draft.created_at).format('L LT') }), content: draft.value });
|
||||
$scope.privacyDraftsHistory.push({ id: draft.id, name: _t('app.admin.settings.privacy.draft_from_USER_DATE', { USER: draft.user.name, DATE: moment(draft.created_at).format('L LT') }), content: draft.value });
|
||||
});
|
||||
};
|
||||
|
||||
@ -347,7 +347,7 @@ Application.Controllers.controller('SavePolicyController', ['$scope', '$uibModal
|
||||
*/
|
||||
$scope.publish = function () {
|
||||
saveCb({ name: 'privacy_body', value: privacyPolicy.bodyTemp });
|
||||
growl.info(_t('settings.privacy.users_notified'));
|
||||
growl.info(_t('app.admin.settings.privacy.users_notified'));
|
||||
$uibModalInstance.close('privacy_body');
|
||||
};
|
||||
/**
|
||||
|
@ -130,6 +130,13 @@ Application.Controllers.controller('StatisticsController', ['$scope', '$state',
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Return a localized name for the given field
|
||||
*/
|
||||
$scope.customFieldName = function (field) {
|
||||
return _t(`app.admin.statistics.${field}`);
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback to open the datepicker (interval start)
|
||||
* @param $event {Object} jQuery event object
|
||||
@ -215,10 +222,10 @@ Application.Controllers.controller('StatisticsController', ['$scope', '$state',
|
||||
*/
|
||||
$scope.formatSex = function (sex) {
|
||||
if (sex === 'male') {
|
||||
return _t('man');
|
||||
return _t('app.admin.statistics.man');
|
||||
}
|
||||
if (sex === 'female') {
|
||||
return _t('woman');
|
||||
return _t('app.admin.statistics.woman');
|
||||
}
|
||||
};
|
||||
|
||||
@ -397,7 +404,7 @@ Application.Controllers.controller('StatisticsController', ['$scope', '$state',
|
||||
};
|
||||
|
||||
/**
|
||||
* Run the elasticSearch query to retreive the /stats/type aggregations
|
||||
* Run the elasticSearch query to retrieve the /stats/type aggregations
|
||||
* @param index {String} elasticSearch document type (account|event|machine|project|subscription|training)
|
||||
* @param type {String} statistics type (month|year|booking|hour|user|project)
|
||||
* @param custom {{key:{string}, value:{string}}|null} custom filter property or null to disable this filter
|
||||
@ -552,17 +559,17 @@ Application.Controllers.controller('StatisticsController', ['$scope', '$state',
|
||||
};
|
||||
|
||||
/**
|
||||
* Fullfil the list of available options in the custom filter panel. The list will be based on common
|
||||
* Fulfill the list of available options in the custom filter panel. The list will be based on common
|
||||
* properties and on index-specific properties (additional_fields)
|
||||
*/
|
||||
var buildCustomFiltersList = function () {
|
||||
$scope.filters = [
|
||||
{ key: 'date', label: _t('date'), values: ['input_date'] },
|
||||
{ key: 'userId', label: _t('user_id'), values: ['input_number'] },
|
||||
{ key: 'gender', label: _t('gender'), values: [{ key: 'male', label: _t('man') }, { key: 'female', label: _t('woman') }] },
|
||||
{ key: 'age', label: _t('age'), values: ['input_number'] },
|
||||
{ key: 'subType', label: _t('type'), values: $scope.type.active.subtypes },
|
||||
{ key: 'ca', label: _t('revenue'), values: ['input_number'] }
|
||||
{ key: 'date', label: _t('app.admin.statistics.date'), values: ['input_date'] },
|
||||
{ key: 'userId', label: _t('app.admin.statistics.user_id'), values: ['input_number'] },
|
||||
{ key: 'gender', label: _t('app.admin.statistics.gender'), values: [{ key: 'male', label: _t('app.admin.statistics.man') }, { key: 'female', label: _t('app.admin.statistics.woman') }] },
|
||||
{ key: 'age', label: _t('app.admin.statistics.age'), values: ['input_number'] },
|
||||
{ key: 'subType', label: _t('app.admin.statistics.type'), values: $scope.type.active.subtypes },
|
||||
{ key: 'ca', label: _t('app.admin.statistics.revenue'), values: ['input_number'] }
|
||||
];
|
||||
|
||||
if (!$scope.type.active.simple) {
|
||||
@ -709,7 +716,7 @@ Application.Controllers.controller('ExportStatisticsController', [ '$scope', '$u
|
||||
|
||||
Export.status(statusQry).then(function (res) {
|
||||
if (!res.data.exists) {
|
||||
return growl.success(_t('export_is_running_you_ll_be_notified_when_its_ready'));
|
||||
return growl.success(_t('app.admin.statistics.export_is_running_you_ll_be_notified_when_its_ready'));
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -187,8 +187,8 @@ Application.Controllers.controller('ShowEventController', ['$scope', '$state', '
|
||||
resolve: {
|
||||
object () {
|
||||
return {
|
||||
title: _t('confirmation_required'),
|
||||
msg: _t('do_you_really_want_to_delete_this_event')
|
||||
title: _t('app.public.events_show.confirmation_required'),
|
||||
msg: _t('app.public.events_show.do_you_really_want_to_delete_this_event')
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -196,10 +196,10 @@ Application.Controllers.controller('ShowEventController', ['$scope', '$state', '
|
||||
// the admin has confirmed, delete
|
||||
event.$delete(function () {
|
||||
$state.go('app.public.events_list');
|
||||
return growl.info(_t('event_successfully_deleted'));
|
||||
return growl.info(_t('app.public.events_show.event_successfully_deleted'));
|
||||
}, function (error) {
|
||||
console.error(error);
|
||||
growl.error(_t('unable_to_delete_the_event_because_some_users_alredy_booked_it'));
|
||||
growl.error(_t('app.public.events_show.unable_to_delete_the_event_because_some_users_alredy_booked_it'));
|
||||
});
|
||||
}
|
||||
);
|
||||
@ -288,7 +288,7 @@ Application.Controllers.controller('ShowEventController', ['$scope', '$state', '
|
||||
const amountToPay = helpers.getAmountToPay($scope.reserve.amountTotal, wallet.amount);
|
||||
if (($scope.currentUser.role !== 'admin') && (amountToPay > 0)) {
|
||||
if ($rootScope.fablabWithoutOnlinePayment) {
|
||||
growl.error(_t('online_payment_disabled'));
|
||||
growl.error(_t('app.public.events_show.online_payment_disabled'));
|
||||
} else {
|
||||
return payByStripe(reservation);
|
||||
}
|
||||
@ -300,7 +300,7 @@ Application.Controllers.controller('ShowEventController', ['$scope', '$state', '
|
||||
});
|
||||
} else {
|
||||
// otherwise we alert, this error musn't occur when the current user is not admin
|
||||
return growl.error(_t('please_select_a_member_first'));
|
||||
return growl.error(_t('app.public.events_show.please_select_a_member_first'));
|
||||
}
|
||||
};
|
||||
|
||||
@ -359,8 +359,8 @@ Application.Controllers.controller('ShowEventController', ['$scope', '$state', '
|
||||
resolve: {
|
||||
object: function() {
|
||||
return {
|
||||
title: _t('cancel_the_reservation'),
|
||||
msg: _t('do_you_really_want_to_cancel_this_reservation_this_apply_to_all_booked_tickets')
|
||||
title: _t('app.public.events_show.cancel_the_reservation'),
|
||||
msg: _t('app.public.events_show.do_you_really_want_to_cancel_this_reservation_this_apply_to_all_booked_tickets')
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -369,12 +369,12 @@ Application.Controllers.controller('ShowEventController', ['$scope', '$state', '
|
||||
id: reservation.slots[0].id
|
||||
}, function() { // successfully canceled
|
||||
let index;
|
||||
growl.success(_t('reservation_was_successfully_cancelled'));
|
||||
growl.success(_t('app.public.events_show.reservation_was_successfully_cancelled'));
|
||||
index = $scope.reservations.indexOf(reservation);
|
||||
$scope.event.nb_free_places = $scope.event.nb_free_places + reservation.total_booked_seats;
|
||||
$scope.reservations[index].slots[0].canceled_at = new Date();
|
||||
}, function(error) {
|
||||
growl.warning(_t('cancellation_failed'));
|
||||
growl.warning(_t('app.public.events_show.cancellation_failed'));
|
||||
});
|
||||
});
|
||||
};
|
||||
@ -750,12 +750,12 @@ Application.Controllers.controller('ShowEventController', ['$scope', '$state', '
|
||||
|
||||
// Button label
|
||||
if ($scope.amount > 0) {
|
||||
$scope.validButtonName = _t('confirm_payment_of_html', { ROLE: $scope.currentUser.role, AMOUNT: $filter('currency')($scope.amount) });
|
||||
$scope.validButtonName = _t('app.public.events_show.confirm_payment_of_html', { ROLE: $scope.currentUser.role, AMOUNT: $filter('currency')($scope.amount) });
|
||||
} else {
|
||||
if ((price.price > 0) && ($scope.walletAmount === 0)) {
|
||||
$scope.validButtonName = _t('confirm_payment_of_html', { ROLE: $scope.currentUser.role, AMOUNT: $filter('currency')(price.price) });
|
||||
$scope.validButtonName = _t('app.public.events_show.confirm_payment_of_html', { ROLE: $scope.currentUser.role, AMOUNT: $filter('currency')(price.price) });
|
||||
} else {
|
||||
$scope.validButtonName = _t('confirm');
|
||||
$scope.validButtonName = _t('app.shared.buttons.confirm');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -146,7 +146,7 @@ const _reserveMachine = function (machine, e) {
|
||||
let text = '';
|
||||
angular.forEach($scope.machine.trainings, function (training) {
|
||||
if (text.length > 0) {
|
||||
text += _this._t('machines_list._or_the_');
|
||||
text += _this._t('app.public.machines_list._or_the_');
|
||||
}
|
||||
return text += training.name.substr(0, 1).toLowerCase() + training.name.substr(1);
|
||||
});
|
||||
@ -281,14 +281,14 @@ Application.Controllers.controller('ShowMachineController', ['$scope', '$state',
|
||||
$scope.delete = function (machine) {
|
||||
// check the permissions
|
||||
if ($scope.currentUser.role !== 'admin') {
|
||||
console.error(_t('unauthorized_operation'));
|
||||
console.error(_t('app.public.machines_show.unauthorized_operation'));
|
||||
} else {
|
||||
dialogs.confirm({
|
||||
resolve: {
|
||||
object () {
|
||||
return {
|
||||
title: _t('confirmation_required'),
|
||||
msg: _t('do_you_really_want_to_delete_this_machine')
|
||||
title: _t('app.public.machines_show.confirmation_required'),
|
||||
msg: _t('app.public.machines_show.do_you_really_want_to_delete_this_machine')
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -297,7 +297,7 @@ Application.Controllers.controller('ShowMachineController', ['$scope', '$state',
|
||||
// delete the machine then redirect to the machines listing
|
||||
machine.$delete(
|
||||
function () { $state.go('app.public.machines_list'); },
|
||||
function (error) { growl.warning(_t('the_machine_cant_be_deleted_because_it_is_already_reserved_by_some_users')); console.error(error); }
|
||||
function (error) { growl.warning(_t('app.public.machines_show.the_machine_cant_be_deleted_because_it_is_already_reserved_by_some_users')); console.error(error); }
|
||||
);
|
||||
});
|
||||
}
|
||||
@ -402,16 +402,16 @@ Application.Controllers.controller('ReserveMachineController', ['$scope', '$stat
|
||||
$scope.machineExplicationsAlert = settingsPromise.machine_explications_alert;
|
||||
|
||||
/**
|
||||
* Change the last selected slot's appearence to looks like 'added to cart'
|
||||
* Change the last selected slot's appearance to looks like 'added to cart'
|
||||
*/
|
||||
$scope.markSlotAsAdded = function () {
|
||||
$scope.selectedEvent.backgroundColor = FREE_SLOT_BORDER_COLOR;
|
||||
$scope.selectedEvent.title = _t('i_reserve');
|
||||
$scope.selectedEvent.title = _t('app.logged.machines_reserve.i_reserve');
|
||||
return updateCalendar();
|
||||
};
|
||||
|
||||
/**
|
||||
* Change the last selected slot's appearence to looks like 'never added to cart'
|
||||
* Change the last selected slot's appearance to looks like 'never added to cart'
|
||||
*/
|
||||
$scope.markSlotAsRemoved = function (slot) {
|
||||
slot.backgroundColor = 'white';
|
||||
@ -431,16 +431,16 @@ Application.Controllers.controller('ReserveMachineController', ['$scope', '$stat
|
||||
$scope.slotCancelled = function () { $scope.markSlotAsRemoved($scope.selectedEvent); };
|
||||
|
||||
/**
|
||||
* Change the last selected slot's appearence to looks like 'currently looking for a new destination to exchange'
|
||||
* Change the last selected slot's appearance to looks like 'currently looking for a new destination to exchange'
|
||||
*/
|
||||
$scope.markSlotAsModifying = function () {
|
||||
$scope.selectedEvent.backgroundColor = '#eee';
|
||||
$scope.selectedEvent.title = _t('i_change');
|
||||
$scope.selectedEvent.title = _t('app.logged.machines_reserve.i_change');
|
||||
return updateCalendar();
|
||||
};
|
||||
|
||||
/**
|
||||
* Change the last selected slot's appearence to looks like 'the slot being exchanged will take this place'
|
||||
* Change the last selected slot's appearance to looks like 'the slot being exchanged will take this place'
|
||||
*/
|
||||
$scope.changeModifyMachineSlot = function () {
|
||||
if ($scope.events.placable) {
|
||||
@ -449,7 +449,7 @@ Application.Controllers.controller('ReserveMachineController', ['$scope', '$stat
|
||||
}
|
||||
if (!$scope.events.placable || ($scope.events.placable._id !== $scope.selectedEvent._id)) {
|
||||
$scope.selectedEvent.backgroundColor = '#bbb';
|
||||
$scope.selectedEvent.title = _t('i_shift');
|
||||
$scope.selectedEvent.title = _t('app.logged.machines_reserve.i_shift');
|
||||
}
|
||||
return updateCalendar();
|
||||
};
|
||||
@ -458,7 +458,7 @@ Application.Controllers.controller('ReserveMachineController', ['$scope', '$stat
|
||||
* When modifying an already booked reservation, callback when the modification was successfully done.
|
||||
*/
|
||||
$scope.modifyMachineSlot = function () {
|
||||
$scope.events.placable.title = $scope.currentUser.role !== 'admin' ? _t('i_ve_reserved') : _t('not_available');
|
||||
$scope.events.placable.title = $scope.currentUser.role !== 'admin' ? _t('app.logged.machines_reserve.i_ve_reserved') : _t('app.logged.machines_reserve.not_available');
|
||||
$scope.events.placable.backgroundColor = 'white';
|
||||
$scope.events.placable.borderColor = $scope.events.modifiable.borderColor;
|
||||
$scope.events.placable.id = $scope.events.modifiable.id;
|
||||
@ -476,14 +476,14 @@ Application.Controllers.controller('ReserveMachineController', ['$scope', '$stat
|
||||
};
|
||||
|
||||
/**
|
||||
* Cancel the current booking modification, reseting the whole process
|
||||
* Cancel the current booking modification, resetting the whole process
|
||||
*/
|
||||
$scope.cancelModifyMachineSlot = function () {
|
||||
if ($scope.events.placable) {
|
||||
$scope.events.placable.backgroundColor = 'white';
|
||||
$scope.events.placable.title = '';
|
||||
}
|
||||
$scope.events.modifiable.title = $scope.currentUser.role !== 'admin' ? _t('i_ve_reserved') : _t('not_available');
|
||||
$scope.events.modifiable.title = $scope.currentUser.role !== 'admin' ? _t('app.logged.machines_reserve.i_ve_reserved') : _t('app.logged.machines_reserve.not_available');
|
||||
$scope.events.modifiable.backgroundColor = 'white';
|
||||
|
||||
return updateCalendar();
|
||||
@ -500,7 +500,7 @@ Application.Controllers.controller('ReserveMachineController', ['$scope', '$stat
|
||||
};
|
||||
|
||||
/**
|
||||
* Changes the user current view from the plan subsription screen to the machine reservation agenda
|
||||
* Changes the user current view from the plan subscription screen to the machine reservation agenda
|
||||
* @param e {Object} see https://docs.angularjs.org/guide/expression#-event-
|
||||
*/
|
||||
$scope.doNotSubscribePlan = function (e) {
|
||||
@ -539,11 +539,11 @@ Application.Controllers.controller('ReserveMachineController', ['$scope', '$stat
|
||||
machineSlot.is_reserved = true;
|
||||
machineSlot.can_modify = true;
|
||||
if ($scope.currentUser.role !== 'admin') {
|
||||
machineSlot.title = _t('i_ve_reserved');
|
||||
machineSlot.title = _t('app.logged.machines_reserve.i_ve_reserved');
|
||||
machineSlot.borderColor = BOOKED_SLOT_BORDER_COLOR;
|
||||
updateMachineSlot(machineSlot, reservation, $scope.currentUser);
|
||||
} else {
|
||||
machineSlot.title = _t('not_available');
|
||||
machineSlot.title = _t('app.logged.machines_reserve.not_available');
|
||||
machineSlot.borderColor = UNAVAILABLE_SLOT_BORDER_COLOR;
|
||||
updateMachineSlot(machineSlot, reservation, $scope.ctrl.member);
|
||||
}
|
||||
@ -595,7 +595,7 @@ Application.Controllers.controller('ReserveMachineController', ['$scope', '$stat
|
||||
};
|
||||
|
||||
/**
|
||||
* Triggered when fullCalendar tries to graphicaly render an event block.
|
||||
* Triggered when fullCalendar tries to graphically render an event block.
|
||||
* Append the event tag into the block, just after the event title.
|
||||
* @see http://fullcalendar.io/docs/event_rendering/eventRender/
|
||||
*/
|
||||
|
@ -333,7 +333,7 @@ Application.Controllers.controller('ReserveSpaceController', ['$scope', '$stateP
|
||||
*/
|
||||
$scope.markSlotAsModifying = function () {
|
||||
$scope.selectedEvent.backgroundColor = '#eee';
|
||||
$scope.selectedEvent.title = _t('space_reserve.i_change');
|
||||
$scope.selectedEvent.title = _t('app.logged.space_reserve.i_change');
|
||||
return updateCalendar();
|
||||
};
|
||||
|
||||
@ -347,7 +347,7 @@ Application.Controllers.controller('ReserveSpaceController', ['$scope', '$stateP
|
||||
}
|
||||
if (!$scope.events.placable || ($scope.events.placable._id !== $scope.selectedEvent._id)) {
|
||||
$scope.selectedEvent.backgroundColor = '#bbb';
|
||||
$scope.selectedEvent.title = _t('space_reserve.i_shift');
|
||||
$scope.selectedEvent.title = _t('app.logged.space_reserve.i_shift');
|
||||
}
|
||||
return updateCalendar();
|
||||
};
|
||||
@ -356,7 +356,7 @@ Application.Controllers.controller('ReserveSpaceController', ['$scope', '$stateP
|
||||
* When modifying an already booked reservation, callback when the modification was successfully done.
|
||||
*/
|
||||
$scope.modifyTrainingSlot = function () {
|
||||
$scope.events.placable.title = _t('space_reserve.i_ve_reserved');
|
||||
$scope.events.placable.title = _t('app.logged.space_reserve.i_ve_reserved');
|
||||
$scope.events.placable.backgroundColor = 'white';
|
||||
$scope.events.placable.borderColor = $scope.events.modifiable.borderColor;
|
||||
$scope.events.placable.id = $scope.events.modifiable.id;
|
||||
@ -382,7 +382,7 @@ Application.Controllers.controller('ReserveSpaceController', ['$scope', '$stateP
|
||||
$scope.events.placable.backgroundColor = 'white';
|
||||
$scope.events.placable.title = '';
|
||||
}
|
||||
$scope.events.modifiable.title = _t('space_reserve.i_ve_reserved');
|
||||
$scope.events.modifiable.title = _t('app.logged.space_reserve.i_ve_reserved');
|
||||
$scope.events.modifiable.backgroundColor = 'white';
|
||||
|
||||
return updateCalendar();
|
||||
@ -451,7 +451,7 @@ Application.Controllers.controller('ReserveSpaceController', ['$scope', '$stateP
|
||||
angular.forEach($scope.events.paid, function (spaceSlot, key) {
|
||||
spaceSlot.is_reserved = true;
|
||||
spaceSlot.can_modify = true;
|
||||
spaceSlot.title = _t('space_reserve.i_ve_reserved');
|
||||
spaceSlot.title = _t('app.logged.space_reserve.i_ve_reserved');
|
||||
spaceSlot.backgroundColor = 'white';
|
||||
spaceSlot.borderColor = RESERVED_SLOT_BORDER_COLOR;
|
||||
return updateSpaceSlotId(spaceSlot, reservation);
|
||||
|
@ -7,7 +7,7 @@
|
||||
</div>
|
||||
<div class="col-xs-10 col-sm-10 col-md-8 b-l">
|
||||
<section class="heading-title">
|
||||
<h1 translate>{{ 'manage_abuses.abuses_list' }}</h1>
|
||||
<h1 translate>{{ 'app.admin.manage_abuses.abuses_list' }}</h1>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
@ -15,27 +15,27 @@
|
||||
|
||||
<section class="m-lg">
|
||||
<div class="row m-b-md">
|
||||
<span ng-show="abuses.length === 0" translate>{{ 'manage_abuses.no_reports' }}</span>
|
||||
<span ng-show="abuses.length === 0" translate>{{ 'app.admin.manage_abuses.no_reports' }}</span>
|
||||
<ul ng-show="abuses.length > 0">
|
||||
<li class="abuse" ng-repeat="abuse in abuses">
|
||||
<div class="signaled">
|
||||
<a ui-sref="app.public.projects_show({id:abuse.signaled.slug})">{{abuse.signaled.name}}</a>,
|
||||
<span translate>{{ 'manage_abuses.published_by' }}</span>
|
||||
<span translate>{{ 'app.admin.manage_abuses.published_by' }}</span>
|
||||
<a ui-sref="app.admin.members_edit({id:abuse.signaled.author.id})">{{abuse.signaled.author.full_name}}</a>,
|
||||
<span translate>{{ 'manage_abuses.at_date' }}</span>
|
||||
<span translate>{{ 'app.admin.manage_abuses.at_date' }}</span>
|
||||
<span>{{abuse.signaled.published_at | amDateFormat:'L' }}</span>
|
||||
<button class="btn btn-success" ng-click="confirmProcess(abuse.id)">
|
||||
<i class="fa fa-check"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div class="report">
|
||||
<span translate>{{ 'manage_abuses.at_date' }}</span>
|
||||
<span translate>{{ 'app.admin.manage_abuses.at_date' }}</span>
|
||||
<span>{{abuse.created_at | amDateFormat:'L' }}</span>,
|
||||
<a href="mailto:{{abuse.email}}">{{abuse.first_name}} {{abuse.last_name}}</a>
|
||||
<span translate>{{ 'manage_abuses.has_reported' }}</span>
|
||||
<span translate>{{ 'app.admin.manage_abuses.has_reported' }}</span>
|
||||
<cite>{{ abuse.message }}</cite>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
@ -21,6 +21,6 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-info" ng-click="ok()" translate>{{ 'delete' }}</button>
|
||||
<button class="btn btn-default" ng-click="cancel()" translate>{{ 'cancel' }}</button>
|
||||
<button class="btn btn-info" ng-click="ok()" translate>{{ 'app.shared.buttons.delete' }}</button>
|
||||
<button class="btn btn-default" ng-click="cancel()" translate>{{ 'app.shared.buttons.cancel' }}</button>
|
||||
</div>
|
||||
|
@ -1,11 +1,11 @@
|
||||
<div class="m-t">
|
||||
<h3 translate>{{ 'categories' }}</h3>
|
||||
<p translate>{{ 'at_least_one_category_is_required' }}</p>
|
||||
<button type="button" class="btn btn-warning m-b m-t" ng-click="addElement('category')" translate>{{ 'add_a_category' }}</button>
|
||||
<h3 translate>{{ 'app.admin.events.categories' }}</h3>
|
||||
<p translate>{{ 'app.admin.events.at_least_one_category_is_required' }}</p>
|
||||
<button type="button" class="btn btn-warning m-b m-t" ng-click="addElement('category')" translate>{{ 'app.admin.events.add_a_category' }}</button>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:80%" translate>{{ 'name' }}</th>
|
||||
<th style="width:80%" translate>{{ 'app.admin.events.name' }}</th>
|
||||
<th style="width:20%"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -28,7 +28,7 @@
|
||||
</form>
|
||||
<div class="buttons" ng-show="!rowform.$visible">
|
||||
<button class="btn btn-default" ng-click="rowform.$show()">
|
||||
<i class="fa fa-edit"></i> <span class="hidden-xs hidden-sm" translate>{{ 'edit' }}</span>
|
||||
<i class="fa fa-edit"></i> <span class="hidden-xs hidden-sm" translate>{{ 'app.shared.buttons.edit' }}</span>
|
||||
</button>
|
||||
<button class="btn btn-danger" ng-click="removeElement('category', $index)">
|
||||
<i class="fa fa-trash-o"></i>
|
||||
@ -39,12 +39,12 @@
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3 translate>{{ 'themes' }}</h3>
|
||||
<button type="button" class="btn btn-warning m-b m-t" ng-click="addElement('theme')" translate>{{ 'add_a_theme' }}</button>
|
||||
<h3 translate>{{ 'app.admin.events.themes' }}</h3>
|
||||
<button type="button" class="btn btn-warning m-b m-t" ng-click="addElement('theme')" translate>{{ 'app.admin.events.add_a_theme' }}</button>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:80%" translate>{{ 'name' }}</th>
|
||||
<th style="width:80%" translate>{{ 'app.admin.events.name' }}</th>
|
||||
<th style="width:20%"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -67,7 +67,7 @@
|
||||
</form>
|
||||
<div class="buttons" ng-show="!rowform.$visible">
|
||||
<button class="btn btn-default" ng-click="rowform.$show()">
|
||||
<i class="fa fa-edit"></i> <span class="hidden-xs hidden-sm" translate>{{ 'edit' }}</span>
|
||||
<i class="fa fa-edit"></i> <span class="hidden-xs hidden-sm" translate>{{ 'app.shared.buttons.edit' }}</span>
|
||||
</button>
|
||||
<button class="btn btn-danger" ng-click="removeElement('theme', $index)">
|
||||
<i class="fa fa-trash-o"></i>
|
||||
@ -78,12 +78,12 @@
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3 translate>{{ 'age_ranges' }}</h3>
|
||||
<button type="button" class="btn btn-warning m-b m-t" ng-click="addElement('age_range')" translate>{{ 'add_a_range' }}</button>
|
||||
<h3 translate>{{ 'app.admin.events.age_ranges' }}</h3>
|
||||
<button type="button" class="btn btn-warning m-b m-t" ng-click="addElement('age_range')" translate>{{ 'app.admin.events.add_a_range' }}</button>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:80%" translate>{{ 'name' }}</th>
|
||||
<th style="width:80%" translate>{{ 'app.admin.events.name' }}</th>
|
||||
<th style="width:20%"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -106,7 +106,7 @@
|
||||
</form>
|
||||
<div class="buttons" ng-show="!rowform.$visible">
|
||||
<button class="btn btn-default" ng-click="rowform.$show()">
|
||||
<i class="fa fa-edit"></i> <span class="hidden-xs hidden-sm" translate>{{ 'edit' }}</span>
|
||||
<i class="fa fa-edit"></i> <span class="hidden-xs hidden-sm" translate>{{ 'app.shared.buttons.edit' }}</span>
|
||||
</button>
|
||||
<button class="btn btn-danger" ng-click="removeElement('age_range', $index)">
|
||||
<i class="fa fa-trash-o"></i>
|
||||
@ -117,4 +117,4 @@
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
@ -7,13 +7,13 @@
|
||||
</div>
|
||||
<div class="col-xs-10 col-sm-10 col-md-8 b-l b-r-md">
|
||||
<section class="heading-title">
|
||||
<h1 translate>{{ 'fablab_events' }}</h1>
|
||||
<h1 translate>{{ 'app.admin.events.fablab_events' }}</h1>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12 col-sm-12 col-md-3 b-t hide-b-md" ng-if="isAuthorized(['admin'])">
|
||||
<section class="heading-actions wrapper">
|
||||
<a class="btn btn-lg btn-warning bg-white b-2x rounded m-t-sm upper text-sm" ui-sref="app.admin.events_new" role="button" translate>{{ 'add_an_event' }}</a>
|
||||
<a class="btn btn-lg btn-warning bg-white b-2x rounded m-t-sm upper text-sm" ui-sref="app.admin.events_new" role="button" translate>{{ 'app.admin.events.add_an_event' }}</a>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
@ -22,16 +22,16 @@
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<uib-tabset justified="true">
|
||||
<uib-tab heading="{{ 'events_monitoring' | translate }}">
|
||||
<ng-include src="'<%= asset_path 'admin/events/monitoring.html' %>'"></ng-include>
|
||||
<uib-tab heading="{{ 'app.admin.events.events_monitoring' | translate }}">
|
||||
<ng-include src="'<%= asset_path "admin/events/monitoring.html" %>'"></ng-include>
|
||||
</uib-tab>
|
||||
|
||||
<uib-tab heading="{{ 'manage_filters' | translate }}">
|
||||
<ng-include src="'<%= asset_path 'admin/events/filters.html' %>'"></ng-include>
|
||||
<uib-tab heading="{{ 'app.admin.events.manage_filters' | translate }}">
|
||||
<ng-include src="'<%= asset_path "admin/events/filters.html" %>'"></ng-include>
|
||||
</uib-tab>
|
||||
|
||||
<uib-tab heading="{{ 'manage_prices_categories' | translate }}">
|
||||
<ng-include src="'<%= asset_path 'admin/events/prices.html' %>'"></ng-include>
|
||||
<uib-tab heading="{{ 'app.admin.events.manage_prices_categories' | translate }}">
|
||||
<ng-include src="'<%= asset_path "admin/events/prices.html" %>'"></ng-include>
|
||||
</uib-tab>
|
||||
</uib-tabset>
|
||||
</div>
|
||||
|
@ -1,18 +1,18 @@
|
||||
<div class="col-md-6 m-b m-t">
|
||||
<select ng-model="eventsScope.selected" class="form-control" ng-change="changeScope()">
|
||||
<option value="" translate>{{ 'all_events' }}</option>
|
||||
<option value="passed" translate>{{ 'passed_events' }}</option>
|
||||
<option value="future" translate>{{ 'events_to_come' }}</option>
|
||||
<option value="future_asc" translate>{{ 'events_to_come_asc' }}</option>
|
||||
<option value="" translate>{{ 'app.admin.events.all_events' }}</option>
|
||||
<option value="passed" translate>{{ 'app.admin.events.passed_events' }}</option>
|
||||
<option value="future" translate>{{ 'app.admin.events.events_to_come' }}</option>
|
||||
<option value="future_asc" translate>{{ 'app.admin.events.events_to_come_asc' }}</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:30%" translate>{{ 'title' }}</th>
|
||||
<th style="width:30%" translate>{{ 'dates' }}</th>
|
||||
<th style="width:10%" translate>{{ 'booking' }}</th>
|
||||
<th style="width:30%" translate>{{ 'app.admin.events.title' }}</th>
|
||||
<th style="width:30%" translate>{{ 'app.admin.events.dates' }}</th>
|
||||
<th style="width:10%" translate>{{ 'app.admin.events.booking' }}</th>
|
||||
<th style="width:30%"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -27,22 +27,22 @@
|
||||
|
||||
<!--One day event-->
|
||||
<span ng-if="(event.start_date | amDateFormat:'LL')==(event.end_date | amDateFormat:'LL')">
|
||||
{{ 'on_DATE' | translate:{DATE:(event.start_date | amDateFormat:'LL')} }}
|
||||
{{ 'app.admin.events.on_DATE' | translate:{DATE:(event.start_date | amDateFormat:'LL')} }}
|
||||
<span ng-if="event.all_day == 'false'">
|
||||
{{ 'from_TIME' | translate:{TIME:(event.start_date | amDateFormat:'LT')} }}
|
||||
<span class="text-sm font-thin" translate>{{ 'to_time' }}</span>
|
||||
{{ 'app.admin.events.from_TIME' | translate:{TIME:(event.start_date | amDateFormat:'LT')} }}
|
||||
<span class="text-sm font-thin" translate>{{ 'app.admin.events.to_time' }}</span>
|
||||
{{event.end_date | amDateFormat:'LT'}}
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<!--Multiple days event-->
|
||||
<span ng-if="(event.start_date | amDateFormat:'LL')!=(event.end_date | amDateFormat:'LL')">
|
||||
{{'from_DATE' | translate:{DATE:(event.start_date | amDateFormat:'LL')} }}
|
||||
{{'to_date' | translate}} {{event.end_date | amDateFormat:'LL'}}
|
||||
{{'app.admin.events.from_DATE' | translate:{DATE:(event.start_date | amDateFormat:'LL')} }}
|
||||
{{'app.admin.events.to_date' | translate}} {{event.end_date | amDateFormat:'LL'}}
|
||||
<br ng-if="event.all_day == 'false'"/>
|
||||
<span ng-if="event.all_day == 'false'">
|
||||
{{ 'from_TIME' | translate:{TIME:(event.start_date | amDateFormat:'LT')} }}
|
||||
<span class="text-sm font-thin" translate>{{ 'to_time' }}</span>
|
||||
{{ 'app.admin.events.from_TIME' | translate:{TIME:(event.start_date | amDateFormat:'LT')} }}
|
||||
<span class="text-sm font-thin" translate>{{ 'app.admin.events.to_time' }}</span>
|
||||
{{event.end_date | amDateFormat:'LT'}}
|
||||
</span>
|
||||
</span>
|
||||
@ -50,17 +50,17 @@
|
||||
|
||||
<td style="vertical-align:middle">
|
||||
<span class="ng-binding" ng-if="event.nb_total_places > 0">{{ event.nb_total_places - event.nb_free_places }} / {{ event.nb_total_places }}</span>
|
||||
<span class="badge font-sbold cancelled" ng-if="event.nb_total_places == -1" translate>{{ 'cancelled' }}</span>
|
||||
<span class="badge font-sbold" ng-if="!event.nb_total_places" translate>{{ 'free_entry' }}</span>
|
||||
<span class="badge font-sbold cancelled" ng-if="event.nb_total_places == -1" translate>{{ 'app.admin.events.cancelled' }}</span>
|
||||
<span class="badge font-sbold" ng-if="!event.nb_total_places" translate>{{ 'app.admin.events.free_entry' }}</span>
|
||||
</td>
|
||||
|
||||
<td style="vertical-align:middle">
|
||||
<div class="buttons">
|
||||
<a class="btn btn-default" ui-sref="app.admin.event_reservations({id: event.id})">
|
||||
<i class="fa fa-bookmark"></i> {{ 'view_reservations' | translate }}
|
||||
<i class="fa fa-bookmark"></i> {{ 'app.admin.events.view_reservations' | translate }}
|
||||
</a>
|
||||
<a class="btn btn-default" ui-sref="app.admin.events_edit({id: event.id})">
|
||||
<i class="fa fa-edit"></i> {{ 'edit' | translate }}
|
||||
<i class="fa fa-edit"></i> {{ 'app.shared.buttons.edit' | translate }}
|
||||
</a>
|
||||
</div>
|
||||
</td>
|
||||
@ -70,6 +70,6 @@
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12 text-center">
|
||||
<a class="btn btn-warning" ng-click="loadMoreEvents()" ng-if="paginateActive" translate>{{ 'load_the_next_events' }}</a>
|
||||
<a class="btn btn-warning" ng-click="loadMoreEvents()" ng-if="paginateActive" translate>{{ 'app.admin.events.load_the_next_events' }}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<div class="modal-header">
|
||||
<img ng-src="{{logoBlack.custom_asset_file_attributes.attachment_url}}" alt="{{logo.custom_asset_file_attributes.attachment}}" class="modal-logo"/>
|
||||
<h1 translate>{{ 'price_category' }}</h1>
|
||||
<h1 translate>{{ 'app.admin.events.price_category' }}</h1>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form role="form" name="priceCategoryForm" class="form-horizontal" novalidate autocomplete="off" ng-keydown="priceCategoryForm.$valid && $event.which == 13 && ok()">
|
||||
@ -12,10 +12,10 @@
|
||||
name="name"
|
||||
ng-model="category.name"
|
||||
class="form-control"
|
||||
placeholder="{{ 'category_name' | translate }}"
|
||||
placeholder="{{ 'app.admin.events.category_name' | translate }}"
|
||||
required />
|
||||
</div>
|
||||
<span class="help-block" ng-show="priceCategoryForm.name.$dirty && priceCategoryForm.name.$error.required" translate>{{ 'category_name_is_required' }}</span>
|
||||
<span class="help-block" ng-show="priceCategoryForm.name.$dirty && priceCategoryForm.name.$error.required" translate>{{ 'app.admin.events.category_name_is_required' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -25,16 +25,16 @@
|
||||
rows="10"
|
||||
class="form-control"
|
||||
id="conditions"
|
||||
placeholder="{{ 'enter_here_the_conditions_under_which_this_price_is_applicable' | translate }}"
|
||||
placeholder="{{ 'app.admin.events.enter_here_the_conditions_under_which_this_price_is_applicable' | translate }}"
|
||||
name="conditions"
|
||||
required>
|
||||
</textarea>
|
||||
<span class="help-block" ng-show="priceCategoryForm.conditions.$dirty && priceCategoryForm.conditions.$error.required" translate>{{ 'conditions_are_required' }}</span>
|
||||
<span class="help-block" ng-show="priceCategoryForm.conditions.$dirty && priceCategoryForm.conditions.$error.required" translate>{{ 'app.admin.events.conditions_are_required' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-info" ng-click="ok()" ng-disabled="priceCategoryForm.$invalid" translate>{{ 'confirm' }}</button>
|
||||
<button class="btn btn-default" ng-click="cancel()" translate>{{ 'cancel' }}</button>
|
||||
<button class="btn btn-info" ng-click="ok()" ng-disabled="priceCategoryForm.$invalid" translate>{{ 'app.shared.buttons.confirm' }}</button>
|
||||
<button class="btn btn-default" ng-click="cancel()" translate>{{ 'app.shared.buttons.cancel' }}</button>
|
||||
</div>
|
||||
|
@ -1,12 +1,12 @@
|
||||
<div class="m-t">
|
||||
<h3 translate>{{ 'prices_categories' }}</h3>
|
||||
<h3 translate>{{ 'app.admin.events.prices_categories' }}</h3>
|
||||
|
||||
<button type="button" class="btn btn-warning m-b m-t" ng-click="newPriceCategory()" translate>{{ 'add_a_price_category' }}</button>
|
||||
<button type="button" class="btn btn-warning m-b m-t" ng-click="newPriceCategory()" translate>{{ 'app.admin.events.add_a_price_category' }}</button>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:40%" translate>{{ 'name' }}</th>
|
||||
<th style="width:40%" translate>{{ 'usages_count' }}</th>
|
||||
<th style="width:40%" translate>{{ 'app.admin.events.name' }}</th>
|
||||
<th style="width:40%" translate>{{ 'app.admin.events.usages_count' }}</th>
|
||||
<th style="width:20%"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -17,7 +17,7 @@
|
||||
<td>
|
||||
<div class="buttons">
|
||||
<button class="btn btn-default" ng-click="editPriceCategory(category.id, $index)">
|
||||
<i class="fa fa-edit"></i> <span class="hidden-xs hidden-sm" translate>{{ 'edit' }}</span>
|
||||
<i class="fa fa-edit"></i> <span class="hidden-xs hidden-sm" translate>{{ 'app.shared.buttons.edit' }}</span>
|
||||
</button>
|
||||
<button class="btn btn-danger" ng-click="removePriceCategory(category.id, $index)">
|
||||
<i class="fa fa-trash-o"></i>
|
||||
@ -28,4 +28,4 @@
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
@ -7,7 +7,7 @@
|
||||
</div>
|
||||
<div class="col-xs-10 col-sm-10 col-md-8 b-l">
|
||||
<section class="heading-title">
|
||||
<h1>{{ 'the_reservations' | translate }} {{event.title}}</h1>
|
||||
<h1>{{ 'app.admin.event_reservations.the_reservations' | translate }} {{event.title}}</h1>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
@ -20,9 +20,9 @@
|
||||
<table class="table" ng-if="reservations.length > 0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:25%" translate>{{ 'user' }}</th>
|
||||
<th style="width:25%" translate>{{ 'payment_date' }}</th>
|
||||
<th style="width:25%" translate>{{ 'reserved_tickets' }}</th>
|
||||
<th style="width:25%" translate>{{ 'app.admin.event_reservations.user' }}</th>
|
||||
<th style="width:25%" translate>{{ 'app.admin.event_reservations.payment_date' }}</th>
|
||||
<th style="width:25%" translate>{{ 'app.admin.event_reservations.reserved_tickets' }}</th>
|
||||
<th style="width:25%"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -33,23 +33,23 @@
|
||||
</td>
|
||||
<td>{{ reservation.created_at | amDateFormat:'LL LTS' }}</td>
|
||||
<td>
|
||||
<span ng-if="reservation.nb_reserve_places > 0">{{ 'full_price_' | translate }} {{reservation.nb_reserve_places}}<br/></span>
|
||||
<span ng-if="reservation.nb_reserve_places > 0">{{ 'app.admin.event_reservations.full_price_' | translate }} {{reservation.nb_reserve_places}}<br/></span>
|
||||
<span ng-repeat="ticket in reservation.tickets">{{ticket.event_price_category.price_category.name}} : {{ticket.booked}}</span>
|
||||
<div ng-show="isCancelled(reservation)" class="canceled-marker" translate>{{ 'canceled' }}</div>
|
||||
<div ng-show="isCancelled(reservation)" class="canceled-marker" translate>{{ 'app.admin.event_reservations.canceled' }}</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="buttons">
|
||||
<button class="btn btn-default" ui-sref="app.public.events_show({id: event.id})">
|
||||
<i class="fa fa-tag"></i> {{ 'show_the_event' | translate }}
|
||||
<i class="fa fa-tag"></i> {{ 'app.admin.event_reservations.show_the_event' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p ng-if="reservations.length == 0" translate>{{ 'no_reservations_for_now' }}</p>
|
||||
<p ng-if="reservations.length == 0" translate>{{ 'app.admin.event_reservations.no_reservations_for_now' }}</p>
|
||||
|
||||
<button type="button" class="btn btn-warning m-t m-b" ui-sref="app.admin.events" translate>{{ 'back_to_monitoring' }}</button>
|
||||
<button type="button" class="btn btn-warning m-t m-b" ui-sref="app.admin.events" translate>{{ 'app.admin.event_reservations.back_to_monitoring' }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
@ -7,7 +7,7 @@
|
||||
</div>
|
||||
<div class="col-xs-10 col-sm-10 col-md-7 b-l b-r-md">
|
||||
<section class="heading-title">
|
||||
<h1 translate>{{ 'open_api_clients' }}</h1>
|
||||
<h1 translate>{{ 'app.admin.open_api_clients.open_api_clients' }}</h1>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
<section class="heading-actions wrapper">
|
||||
<a href="<%= apipie_apipie_path({version: 'v1'}) %>" target="_blank" class="btn btn-info b-2x rounded m-t-sm">
|
||||
<i class="fa fa-book" aria-hidden="true"></i>
|
||||
<span translate>{{ 'api_documentation' }}</span>
|
||||
<span translate>{{ 'app.admin.open_api_clients.api_documentation' }}</span>
|
||||
<span class="exponent"><i class="fa fa-external-link" aria-hidden="true"></i></span>
|
||||
</a>
|
||||
</section>
|
||||
@ -28,27 +28,27 @@
|
||||
<div class="col-md-12">
|
||||
<div class="col-md-12">
|
||||
|
||||
<button type="button" class="btn btn-warning m-t m-b" ng-click="toggleForm()" ng-show="!clientFormVisible" translate>{{ 'add_new_client' | translate }}</button>
|
||||
<button type="button" class="btn btn-warning m-t m-b" ng-click="toggleForm()" ng-show="!clientFormVisible" translate>{{ 'app.admin.open_api_clients.add_new_client' | translate }}</button>
|
||||
|
||||
<form role="form" id="clientForm" ng-show="clientFormVisible" name="clientForm" class="form-inline m-b m-t" novalidate>
|
||||
<div class="form-group" ng-class="{'has-error': clientForm['client[name]'].$dirty && clientForm['client[name]'].$invalid}">
|
||||
<input class="form-control" type="text" name="client[name]" ng-model="client.name" value="" placeholder="{{ 'client_name' | translate }}" required>
|
||||
<input class="form-control" type="text" name="client[name]" ng-model="client.name" value="" placeholder="{{ 'app.admin.open_api_clients.client_name' | translate }}" required>
|
||||
</div>
|
||||
|
||||
<button class="btn btn-default" ng-click="toggleForm()" name="button">{{ 'cancel' | translate }}</button>
|
||||
<input type="submit" class="btn btn-warning" ng-disabled="!client.name || client.name.length == 0" ng-click="saveClient(client)" value="{{ 'save' | translate }}">
|
||||
<button class="btn btn-default" ng-click="toggleForm()" name="button">{{ 'app.shared.buttons.cancel' | translate }}</button>
|
||||
<input type="submit" class="btn btn-warning" ng-disabled="!client.name || client.name.length == 0" ng-click="saveClient(client)" value="{{ 'app.shared.buttons.save' | translate }}">
|
||||
</form>
|
||||
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:20%"><a href="" ng-click="setOrder('name')">{{ 'name' | translate }} <i class="fa fa-arrows-v" ng-class="{'fa fa-sort-alpha-asc': order == 'name', 'fa fa-sort-alpha-desc': order == '-name', 'fa fa-arrows-v': order }"></i></a></th>
|
||||
<th style="width:20%"><a href="" ng-click="setOrder('name')">{{ 'app.admin.open_api_clients.name' | translate }} <i class="fa fa-arrows-v" ng-class="{'fa fa-sort-alpha-asc': order == 'name', 'fa fa-sort-alpha-desc': order == '-name', 'fa fa-arrows-v': order }"></i></a></th>
|
||||
|
||||
<th style="width:15%"><a href="" ng-click="setOrder('calls_count')">{{ 'calls_count' | translate }} <i class="fa fa-arrows-v" ng-class="{'fa fa-sort-numeric-asc': order == 'calls_count', 'fa fa-sort-numeric-desc': order == '-calls_count', 'fa fa-arrows-v': order }"></i></a></th>
|
||||
<th style="width:15%"><a href="" ng-click="setOrder('calls_count')">{{ 'app.admin.open_api_clients.calls_count' | translate }} <i class="fa fa-arrows-v" ng-class="{'fa fa-sort-numeric-asc': order == 'calls_count', 'fa fa-sort-numeric-desc': order == '-calls_count', 'fa fa-arrows-v': order }"></i></a></th>
|
||||
|
||||
<th style="width:20%"><a href="">{{ 'token' | translate }}</a></th>
|
||||
<th style="width:20%"><a href="">{{ 'app.admin.open_api_clients.token' | translate }}</a></th>
|
||||
|
||||
<th style="width:20%"><a href="" ng-click="setOrder('created_at')">{{ 'created_at' | translate }} <i class="fa fa-arrows-v" ng-class="{'fa fa-sort-numeric-asc': order == 'created_at', 'fa fa-sort-numeric-desc': order == '-created_at', 'fa fa-arrows-v': order }"></i></a></th>
|
||||
<th style="width:20%"><a href="" ng-click="setOrder('created_at')">{{ 'app.admin.open_api_clients.created_at' | translate }} <i class="fa fa-arrows-v" ng-class="{'fa fa-sort-numeric-asc': order == 'created_at', 'fa fa-sort-numeric-desc': order == '-created_at', 'fa fa-arrows-v': order }"></i></a></th>
|
||||
|
||||
<th style="width:25%"></th>
|
||||
</tr>
|
||||
@ -62,11 +62,11 @@
|
||||
<td>
|
||||
<div class="buttons">
|
||||
<button class="btn btn-default" ng-click="editClient(client)">
|
||||
<i class="fa fa-pencil"></i> {{ 'edit' | translate }}
|
||||
<i class="fa fa-pencil"></i> {{ 'app.shared.buttons.edit' | translate }}
|
||||
</button>
|
||||
|
||||
<button class="btn btn-default" ng-click="resetToken(client)">
|
||||
<i class="fa fa-times"></i> {{ 'reset_token' | translate }}
|
||||
<i class="fa fa-times"></i> {{ 'app.admin.open_api_clients.reset_token' | translate }}
|
||||
</button>
|
||||
|
||||
<button class="btn btn-danger" ng-click="deleteClient($index)" ng-show="client.calls_count == 0">
|
||||
|
@ -128,7 +128,7 @@
|
||||
<i class="glyphicon glyphicon-file fileinput-exists"></i> <span class="fileinput-filename">{{file.attachment || plan.plan_file_attributes.attachment_identifier}}</span>
|
||||
</div>
|
||||
<span class="input-group-addon btn btn-default btn-file"><span class="fileinput-new" translate>{{ 'app.shared.plan.attach_an_information_sheet' }}</span>
|
||||
<span class="fileinput-exists" translate>{{ 'change' }}</span><input type="file"
|
||||
<span class="fileinput-exists" translate>{{ 'app.shared.buttons.change' }}</span><input type="file"
|
||||
name="plan[plan_file_attributes][attachment]"
|
||||
accept="image/*, application/pdf"></span>
|
||||
<a class="input-group-addon btn btn-danger fileinput-exists" data-dismiss="fileinput" ng-click="deleteFile(file || plan.plan_file_attributes)"><i class="fa fa-trash-o"></i></a>
|
||||
|
@ -7,12 +7,12 @@
|
||||
</div>
|
||||
<div class="col-xs-10 col-sm-10 col-md-8 b-l">
|
||||
<section class="heading-title">
|
||||
<h1 translate>{{ 'project_elements.projects_elements_management' }}</h1>
|
||||
<h1 translate>{{ 'app.admin.project_elements.projects_elements_management' }}</h1>
|
||||
</section>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-12 col-md-3 b-t hide-b-md">
|
||||
<section class="heading-actions wrapper">
|
||||
<a class="btn btn-ng btn-warning b-2x rounded m-t-sm upper text-sm" ui-sref="app.admin.manage_abuses" role="button" translate>{{ 'project_elements.manage_abuses' }}</a>
|
||||
<a class="btn btn-ng btn-warning b-2x rounded m-t-sm upper text-sm" ui-sref="app.admin.manage_abuses" role="button" translate>{{ 'app.admin.project_elements.manage_abuses' }}</a>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
@ -24,17 +24,17 @@
|
||||
|
||||
<div class="col-md-12">
|
||||
<uib-tabset justified="true">
|
||||
<uib-tab heading="{{ 'materials' | translate }}">
|
||||
<ng-include src="'<%= asset_path 'admin/project_elements/materials.html' %>'"></ng-include>
|
||||
<uib-tab heading="{{ 'app.admin.project_elements.materials' | translate }}">
|
||||
<ng-include src="'<%= asset_path "admin/project_elements/materials.html" %>'"></ng-include>
|
||||
</uib-tab>
|
||||
<uib-tab heading="{{ 'themes' | translate }}">
|
||||
<ng-include src="'<%= asset_path 'admin/project_elements/themes.html' %>'"></ng-include>
|
||||
<uib-tab heading="{{ 'app.admin.project_elements.themes' | translate }}">
|
||||
<ng-include src="'<%= asset_path "admin/project_elements/themes.html" %>'"></ng-include>
|
||||
</uib-tab>
|
||||
<uib-tab heading="{{ 'project_elements.licences' | translate }}">
|
||||
<ng-include src="'<%= asset_path 'admin/project_elements/licences.html' %>'"></ng-include>
|
||||
<uib-tab heading="{{ 'app.admin.project_elements.licences' | translate }}">
|
||||
<ng-include src="'<%= asset_path "admin/project_elements/licences.html" %>'"></ng-include>
|
||||
</uib-tab>
|
||||
</uib-tabset>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
@ -1,10 +1,10 @@
|
||||
<button type="button" class="btn btn-warning m-t m-b" ng-click="addLicence()" translate>{{ 'project_elements.add_a_new_licence' }}</button>
|
||||
<button type="button" class="btn btn-warning m-t m-b" ng-click="addLicence()" translate>{{ 'app.admin.project_elements.add_a_new_licence' }}</button>
|
||||
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:30%" translate>{{ 'name' }}</th>
|
||||
<th style="width:50%" class="hidden-xs" translate>{{ 'description' }}</th>
|
||||
<th style="width:30%" translate>{{ 'app.admin.project_elements.name' }}</th>
|
||||
<th style="width:50%" class="hidden-xs" translate>{{ 'app.admin.project_elements.description' }}</th>
|
||||
<th style="width:20%"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -32,7 +32,7 @@
|
||||
</form>
|
||||
<div class="buttons" ng-show="!rowform.$visible">
|
||||
<button class="btn btn-default" ng-click="rowform.$show()">
|
||||
<i class="fa fa-edit"></i> <span class="hidden-xs hidden-sm" translate>{{ 'edit' }}</span>
|
||||
<i class="fa fa-edit"></i> <span class="hidden-xs hidden-sm" translate>{{ 'app.shared.buttons.edit' }}</span>
|
||||
</button>
|
||||
<button class="btn btn-danger" ng-click="removeLicence($index)">
|
||||
<i class="fa fa-trash-o"></i>
|
||||
@ -41,4 +41,4 @@
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</table>
|
||||
|
@ -1,9 +1,9 @@
|
||||
<button type="button" class="btn btn-warning m-b m-t" ng-click="addComponent()" translate>{{ 'project_elements.add_a_material' }}</button>
|
||||
<button type="button" class="btn btn-warning m-b m-t" ng-click="addComponent()" translate>{{ 'app.admin.project_elements.add_a_material' }}</button>
|
||||
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:80%" translate>{{ 'name' }}</th>
|
||||
<th style="width:80%" translate>{{ 'app.admin.project_elements.name' }}</th>
|
||||
<th style="width:20%"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -26,7 +26,7 @@
|
||||
</form>
|
||||
<div class="buttons" ng-show="!rowform.$visible">
|
||||
<button class="btn btn-default" ng-click="rowform.$show()">
|
||||
<i class="fa fa-edit"></i> <span class="hidden-xs hidden-sm" translate>{{ 'edit' }}</span>
|
||||
<i class="fa fa-edit"></i> <span class="hidden-xs hidden-sm" translate>{{ 'app.shared.buttons.edit' }}</span>
|
||||
</button>
|
||||
<button class="btn btn-danger" ng-click="removeComponent($index)">
|
||||
<i class="fa fa-trash-o"></i>
|
||||
@ -35,4 +35,4 @@
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</table>
|
||||
|
@ -1,9 +1,9 @@
|
||||
<button type="button" class="btn btn-warning m-t m-b" ng-click="addTheme()" translate>{{ 'project_elements.add_a_new_theme' }}</button>
|
||||
<button type="button" class="btn btn-warning m-t m-b" ng-click="addTheme()" translate>{{ 'app.admin.project_elements.add_a_new_theme' }}</button>
|
||||
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:80%" translate>{{ 'name' }}</th>
|
||||
<th style="width:80%" translate>{{ 'app.admin.project_elements.name' }}</th>
|
||||
<th style="width:20%"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -26,7 +26,7 @@
|
||||
</form>
|
||||
<div class="buttons" ng-show="!rowform.$visible">
|
||||
<button class="btn btn-default" ng-click="rowform.$show()">
|
||||
<i class="fa fa-edit"></i> <span class="hidden-xs hidden-sm" translate>{{ 'edit' }}</span>
|
||||
<i class="fa fa-edit"></i> <span class="hidden-xs hidden-sm" translate>{{ 'app.shared.buttons.edit' }}</span>
|
||||
</button>
|
||||
<button class="btn btn-danger" ng-click="removeTheme($index)">
|
||||
<i class="fa fa-trash-o"></i>
|
||||
@ -35,4 +35,4 @@
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</table>
|
||||
|
@ -3,34 +3,34 @@
|
||||
|
||||
<div class="row m-t-lg m-b-lg">
|
||||
<div class="col-sm-offset-4 col-sm-4">
|
||||
<h1 ng-model="aboutTitleSetting.value" medium-editor options='{"placeholder": "{{ "settings.title_of_the_about_page" | translate }}", "disableToolbar": true, "disableReturn": false}' class="text-u-c"></h1>
|
||||
<span class="help-block text-info text-xs"><i class="fa fa-lightbulb-o"></i> {{ 'settings.shift_enter_to_force_carriage_return' | translate }}</span>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(aboutTitleSetting)" translate>{{ 'save' }}</button>
|
||||
<h1 ng-model="aboutTitleSetting.value" medium-editor options='{"placeholder": "{{ "app.admin.settings.title_of_the_about_page" | translate }}", "disableToolbar": true, "disableReturn": false}' class="text-u-c"></h1>
|
||||
<span class="help-block text-info text-xs"><i class="fa fa-lightbulb-o"></i> {{ 'app.admin.settings.shift_enter_to_force_carriage_return' | translate }}</span>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(aboutTitleSetting)" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-4 col-md-offset-1">
|
||||
<div class="text-justify" ng-model="aboutBodySetting.value" medium-editor options='{"placeholder": "{{ "settings.input_the_main_content" | translate }}",
|
||||
<div class="text-justify" ng-model="aboutBodySetting.value" medium-editor options='{"placeholder": "{{ "app.admin.settings.input_the_main_content" | translate }}",
|
||||
"buttons": ["bold", "italic", "anchor", "header1", "header2" ]
|
||||
}'>
|
||||
|
||||
</div>
|
||||
<span class="help-block text-info text-xs"><i class="fa fa-lightbulb-o"></i> {{ 'settings.drag_and_drop_to_insert_images' | translate }}</span>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(aboutBodySetting)" translate>{{ 'save' }}</button>
|
||||
<span class="help-block text-info text-xs"><i class="fa fa-lightbulb-o"></i> {{ 'app.admin.settings.drag_and_drop_to_insert_images' | translate }}</span>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(aboutBodySetting)" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</div>
|
||||
<div class="col-md-4 col-md-offset-2">
|
||||
<div ng-model="aboutContactsSetting.value" medium-editor options='{"placeholder": "{{ "settings.input_the_fablab_contacts" | translate }}",
|
||||
<div ng-model="aboutContactsSetting.value" medium-editor options='{"placeholder": "{{ "app.admin.settings.input_the_fablab_contacts" | translate }}",
|
||||
"buttons": ["bold", "italic", "anchor", "header1", "header2" ]
|
||||
}'>
|
||||
|
||||
</div>
|
||||
<span class="help-block text-info text-xs"><i class="fa fa-lightbulb-o"></i> {{ 'settings.shift_enter_to_force_carriage_return' | translate }}</span>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(aboutContactsSetting)" translate>{{ 'save' }}</button>
|
||||
<span class="help-block text-info text-xs"><i class="fa fa-lightbulb-o"></i> {{ 'app.admin.settings.shift_enter_to_force_carriage_return' | translate }}</span>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(aboutContactsSetting)" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,42 +1,42 @@
|
||||
<div class="panel panel-default m-t-md">
|
||||
<div class="panel-heading">
|
||||
<span class="font-sbold" translate>{{ 'settings.title' }}</span>
|
||||
<span class="font-sbold" translate>{{ 'app.admin.settings.title' }}</span>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="row m-t-lg">
|
||||
<div class="col-md-4">
|
||||
<form role="form" novalidate>
|
||||
<label for="fablabName" class="control-label m-r" translate>{{ 'settings.fablab_title' }}</label>
|
||||
<label for="fablabName" class="control-label m-r" translate>{{ 'app.admin.settings.fablab_title' }}</label>
|
||||
<div class="form-group">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon"><i class="fa fa-font"></i></div>
|
||||
<input type="text" id="fablabName" ng-model="fablabName.value" class="form-control" placeholder="{{ 'settings.fablab_name' | translate }}"/>
|
||||
<input type="text" id="fablabName" ng-model="fablabName.value" class="form-control" placeholder="{{ 'app.admin.settings.fablab_name' | translate }}"/>
|
||||
</div>
|
||||
</div>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(fablabName)" translate>{{ 'save' }}</button>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(fablabName)" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4 col-md-offset-1">
|
||||
<form role="form" novalidate>
|
||||
<h4 class="control-label m-r" translate>{{ 'settings.title_concordance' }}</h4>
|
||||
<h4 class="control-label m-r" translate>{{ 'app.admin.settings.title_concordance' }}</h4>
|
||||
<div class="form-group">
|
||||
<label for="nameGenreMale">
|
||||
<input type="radio" name="nameGenre" id="nameGenreMale" ng-model="nameGenre.value" ng-value="'male'" />
|
||||
{{ 'settings.male' | translate }} <span style="font-weight: normal">{{ 'settings.eg' | translate }} <cite>{{ 'settings.about' | translate }} <strong translate>{{ 'settings.male_preposition' }}</strong> {{fablabName.value}}</cite></span>
|
||||
{{ 'app.admin.settings.male' | translate }} <span style="font-weight: normal">{{ 'app.admin.settings.eg' | translate }} <cite>{{ 'app.admin.settings.about' | translate }} <strong translate>{{ 'app.admin.settings.male_preposition' }}</strong> {{fablabName.value}}</cite></span>
|
||||
</label>
|
||||
<br/>
|
||||
<label for="nameGenreFemale">
|
||||
<input type="radio" name="nameGenre" id="nameGenreFemale" ng-model="nameGenre.value" ng-value="'female'" />
|
||||
{{ 'settings.female' | translate }} <span style="font-weight: normal">{{ 'settings.eg' | translate }} <cite>{{ 'settings.about' | translate }} <strong translate>{{ 'settings.female_preposition' }}</strong> {{fablabName.value}}</cite></span>
|
||||
{{ 'app.admin.settings.female' | translate }} <span style="font-weight: normal">{{ 'app.admin.settings.eg' | translate }} <cite>{{ 'app.admin.settings.about' | translate }} <strong translate>{{ 'app.admin.settings.female_preposition' }}</strong> {{fablabName.value}}</cite></span>
|
||||
</label>
|
||||
<br/>
|
||||
<label for="nameGenreNeutral">
|
||||
<input type="radio" name="nameGenre" id="nameGenreNeutral" ng-model="nameGenre.value" ng-value="'neutral'" />
|
||||
{{ 'settings.neutral' | translate }} <span style="font-weight: normal">{{ 'settings.eg' | translate }} <cite>{{ 'settings.about' | translate }} <strong translate>{{ 'settings.neutral_preposition' }}</strong> {{fablabName.value}}</cite></span>
|
||||
{{ 'app.admin.settings.neutral' | translate }} <span style="font-weight: normal">{{ 'app.admin.settings.eg' | translate }} <cite>{{ 'app.admin.settings.about' | translate }} <strong translate>{{ 'app.admin.settings.neutral_preposition' }}</strong> {{fablabName.value}}</cite></span>
|
||||
</label>
|
||||
</div>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(nameGenre)" translate>{{ 'save' }}</button>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(nameGenre)" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@ -45,62 +45,62 @@
|
||||
|
||||
<div class="panel panel-default m-t-lg">
|
||||
<div class="panel-heading">
|
||||
<span class="font-sbold" translate>{{ 'settings.customize_information_messages' }}</span>
|
||||
<span class="font-sbold" translate>{{ 'app.admin.settings.customize_information_messages' }}</span>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<h4 translate>{{ 'settings.message_of_the_machine_booking_page' }}</h4>
|
||||
<h4 translate>{{ 'app.admin.settings.message_of_the_machine_booking_page' }}</h4>
|
||||
<div ng-model="machineExplicationsAlert.value" medium-editor options='{"placeholder": "{{ "settings.type_the_message_content" | translate }}",
|
||||
"buttons": ["bold", "italic", "unorderedlist", "header2" ]
|
||||
}'>
|
||||
|
||||
</div>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(machineExplicationsAlert)" translate>{{ 'save' }}</button>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(machineExplicationsAlert)" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<h4 translate>{{ 'settings.warning_message_of_the_training_booking_page'}}</h4>
|
||||
<h4 translate>{{ 'app.admin.settings.warning_message_of_the_training_booking_page'}}</h4>
|
||||
<div ng-model="trainingExplicationsAlert.value" medium-editor options='{"placeholder": "{{ "settings.type_the_message_content" | translate }}",
|
||||
"buttons": ["bold", "italic", "unorderedlist", "header2" ]
|
||||
}'>
|
||||
|
||||
</div>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(trainingExplicationsAlert)" translate>{{ 'save' }}</button>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(trainingExplicationsAlert)" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<h4 translate>{{ 'settings.information_message_of_the_training_reservation_page'}}</h4>
|
||||
<h4 translate>{{ 'app.admin.settings.information_message_of_the_training_reservation_page'}}</h4>
|
||||
<div ng-model="trainingInformationMessage.value" medium-editor options='{"placeholder": "{{ "settings.type_the_message_content" | translate }}",
|
||||
"buttons": ["bold", "italic", "unorderedlist", "header2" ]
|
||||
}'>
|
||||
|
||||
</div>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(trainingInformationMessage)" translate>{{ 'save' }}</button>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(trainingInformationMessage)" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<h4 translate>{{ 'settings.message_of_the_subscriptions_page' }}</h4>
|
||||
<h4 translate>{{ 'app.admin.settings.message_of_the_subscriptions_page' }}</h4>
|
||||
<div ng-model="subscriptionExplicationsAlert.value" medium-editor options='{"placeholder": "{{ "settings.type_the_message_content" | translate }}",
|
||||
"buttons": ["bold", "italic", "unorderedlist", "header2" ]
|
||||
}'>
|
||||
</div>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(subscriptionExplicationsAlert)" translate>{{ 'save' }}</button>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(subscriptionExplicationsAlert)" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<h4 translate>{{ 'settings.message_of_the_events_page' }}</h4>
|
||||
<h4 translate>{{ 'app.admin.settings.message_of_the_events_page' }}</h4>
|
||||
<div ng-model="eventExplicationsAlert.value" medium-editor options='{"placeholder": "{{ "settings.type_the_message_content" | translate }}",
|
||||
"buttons": ["bold", "italic", "unorderedlist", "header2" ]
|
||||
}'>
|
||||
</div>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(eventExplicationsAlert)" translate>{{ 'save' }}</button>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(eventExplicationsAlert)" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</div>
|
||||
<div class="col-md-3" ng-hide="fablabWithoutSpaces">
|
||||
<h4 translate>{{ 'settings.message_of_the_spaces_page' }}</h4>
|
||||
<h4 translate>{{ 'app.admin.settings.message_of_the_spaces_page' }}</h4>
|
||||
<div ng-model="spaceExplicationsAlert.value" medium-editor options='{"placeholder": "{{ "settings.type_the_message_content" | translate }}",
|
||||
"buttons": ["bold", "italic", "unorderedlist", "header2" ]
|
||||
}'>
|
||||
</div>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(spaceExplicationsAlert)" translate>{{ 'save' }}</button>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(spaceExplicationsAlert)" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -108,17 +108,17 @@
|
||||
|
||||
<div class="panel panel-default m-t-lg">
|
||||
<div class="panel-heading">
|
||||
<span class="font-sbold" translate>{{ 'settings.legal_documents'}}</span>
|
||||
<span class="font-sbold" translate>{{ 'app.admin.settings.legal_documents'}}</span>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="alert alert-warning m-t" translate>
|
||||
{{ 'settings.if_these_documents_are_not_filled_no_consent_about_them_will_be_asked_to_the_user' }}
|
||||
{{ 'app.admin.settings.if_these_documents_are_not_filled_no_consent_about_them_will_be_asked_to_the_user' }}
|
||||
</div>
|
||||
<div class="row">
|
||||
<form class="col-md-6" method="post" action="{{actionUrl.cgv}}" novalidate name="cgvForm" ng-upload="submited(content)" ng-submit="addLoader('cgv')" upload-options-enable-rails-csrf="true" unsaved-warning-form>
|
||||
<input type="hidden" name="custom_asset[name]" value="cgv-file">
|
||||
<input name="_method" type="hidden" ng-value="methods.cgv">
|
||||
<label for="tnc_file" class="control-label m-r" translate>{{ 'settings.general_terms_and_conditions' }}</label>
|
||||
<label for="tnc_file" class="control-label m-r" translate>{{ 'app.admin.settings.general_terms_and_conditions' }}</label>
|
||||
<div class="form-group">
|
||||
<div class="fileinput input-group" data-provides="fileinput" ng-class="fileinputClass(cgvFile.custom_asset_file_attributes.attachment)">
|
||||
<div class="form-control" data-trigger="fileinput">
|
||||
@ -135,14 +135,14 @@
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<button name="button" type="submit" ng-class="{'btn-loading':loader.cgv}" ng-disabled="cgvForm.$invalid" class="btn btn-warning" translate>{{ 'save' }}</button>
|
||||
<button name="button" type="submit" ng-class="{'btn-loading':loader.cgv}" ng-disabled="cgvForm.$invalid" class="btn btn-warning" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="row m-t-xl">
|
||||
<form class="col-md-6" method="post" action="{{actionUrl.cgu}}" novalidate name="cguForm" ng-upload="submited(content)" ng-submit="addLoader('cgu')" upload-options-enable-rails-csrf="true" unsaved-warning-form>
|
||||
<input type="hidden" name="custom_asset[name]" value="cgu-file">
|
||||
<input name="_method" type="hidden" ng-value="methods.cgu">
|
||||
<label for="tos_file" class="control-label m-r" translate>{{ 'settings.terms_of_service' }}</label>
|
||||
<label for="tos_file" class="control-label m-r" translate>{{ 'app.admin.settings.terms_of_service' }}</label>
|
||||
<div class="form-group">
|
||||
<div class="fileinput input-group" data-provides="fileinput" ng-class="fileinputClass(cguFile.custom_asset_file_attributes.attachment)">
|
||||
<div class="form-control" data-trigger="fileinput">
|
||||
@ -159,7 +159,7 @@
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<button name="button" type="submit" ng-class="{'btn-loading':loader.cgu}" ng-disabled="cguForm.$invalid" class="btn btn-warning" translate>{{ 'save' }}</button>
|
||||
<button name="button" type="submit" ng-class="{'btn-loading':loader.cgu}" ng-disabled="cguForm.$invalid" class="btn btn-warning" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@ -167,21 +167,21 @@
|
||||
|
||||
<div class="panel panel-default m-t-lg">
|
||||
<div class="panel-heading">
|
||||
<span class="font-sbold" translate>{{ 'settings.customize_the_graphics' }}</span>
|
||||
<span class="font-sbold" translate>{{ 'app.admin.settings.customize_the_graphics' }}</span>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="alert alert-warning m-t">
|
||||
<span translate>{{ 'settings.for_an_optimal_rendering_the_logo_image_must_be_at_the_PNG_format_with_a_transparent_background_and_with_an_aspect_ratio_3.5_times_wider_than_the_height' }}</span><br/>
|
||||
<span translate>{{ 'settings.concerning_the_favicon_it_must_be_at_ICO_format_with_a_size_of_16x16_pixels' }}</span><br/>
|
||||
<span translate>{{ 'app.admin.settings.for_an_optimal_rendering_the_logo_image_must_be_at_the_PNG_format_with_a_transparent_background_and_with_an_aspect_ratio_3.5_times_wider_than_the_height' }}</span><br/>
|
||||
<span translate>{{ 'app.admin.settings.concerning_the_favicon_it_must_be_at_ICO_format_with_a_size_of_16x16_pixels' }}</span><br/>
|
||||
<br/>
|
||||
<span translate>{{ 'settings.remember_to_refresh_the_page_for_the_changes_to_take_effect' }}</span>
|
||||
<span translate>{{ 'app.admin.settings.remember_to_refresh_the_page_for_the_changes_to_take_effect' }}</span>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<form class="custom-logo-container" method="post" action="{{actionUrl.logo}}" novalidate name="logoForm" ng-upload="submited(content)" upload-options-enable-rails-csrf="true" unsaved-warning-form>
|
||||
<input type="hidden" name="custom_asset[name]" value="logo-file">
|
||||
<input name="_method" type="hidden" ng-value="methods.logo">
|
||||
<h3 class="m-l" translate>{{ 'settings.logo_white_background' }}</h3>
|
||||
<h3 class="m-l" translate>{{ 'app.admin.settings.logo_white_background' }}</h3>
|
||||
<div class="custom-logo" style="background-image: url({{customLogo}});">
|
||||
<img src="data:image/png;base64," data-src="holder.js/100%x100%/text:/font:FontAwesome/icon-xs" bs-holder ng-show="!customLogo" class="img-responsive">
|
||||
<img base-sixty-four-image="customLogo" ng-show="customLogo && customLogo.base64">
|
||||
@ -189,7 +189,7 @@
|
||||
<div class="tools-box">
|
||||
<div class="btn-group">
|
||||
<div class="btn btn-default btn-file">
|
||||
<i class="fa fa-edit"></i> {{ 'settings.change_the_logo' | translate }}
|
||||
<i class="fa fa-edit"></i> {{ 'app.admin.settings.change_the_logo' | translate }}
|
||||
<input type="file"
|
||||
accept="image/png,image/x-png"
|
||||
name="custom_asset[custom_asset_file_attributes][attachment]"
|
||||
@ -200,14 +200,14 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<button name="button" type="submit" class="btn btn-warning m-t m-l" ng-disabled="logoForm.$invalid" translate>{{ 'save' }}</button>
|
||||
<button name="button" type="submit" class="btn btn-warning m-t m-l" ng-disabled="logoForm.$invalid" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<form class="custom-logo-container" method="post" action="{{actionUrl.logoBlack}}" novalidate name="logoBlackForm" ng-upload="submited(content)" upload-options-enable-rails-csrf="true" unsaved-warning-form>
|
||||
<input type="hidden" name="custom_asset[name]" value="logo-black-file">
|
||||
<input name="_method" type="hidden" ng-value="methods.logoBlack">
|
||||
<h3 class="m-l" translate>{{ 'settings.logo_black_background' }}</h3>
|
||||
<h3 class="m-l" translate>{{ 'app.admin.settings.logo_black_background' }}</h3>
|
||||
<div class="custom-logo bg-dark" style="background-image: url({{customLogoBlack}});">
|
||||
<img src="data:image/png;base64," data-src="holder.js/100%x100%/text:/font:FontAwesome/icon-black-xs" bs-holder ng-show="!customLogoBlack" class="img-responsive">
|
||||
<img base-sixty-four-image="customLogoBlack" ng-show="customLogoBlack && customLogoBlack.base64">
|
||||
@ -215,7 +215,7 @@
|
||||
<div class="tools-box">
|
||||
<div class="btn-group">
|
||||
<div class="btn btn-default btn-file">
|
||||
<i class="fa fa-edit"></i> {{ 'settings.change_the_logo' | translate }}
|
||||
<i class="fa fa-edit"></i> {{ 'app.admin.settings.change_the_logo' | translate }}
|
||||
<input type="file"
|
||||
accept="image/png,image/x-png"
|
||||
name="custom_asset[custom_asset_file_attributes][attachment]"
|
||||
@ -226,14 +226,14 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<button name="button" type="submit" class="btn btn-warning m-t m-l" ng-disabled="logoBlackForm.$invalid" translate>{{ 'save' }}</button>
|
||||
<button name="button" type="submit" class="btn btn-warning m-t m-l" ng-disabled="logoBlackForm.$invalid" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<form class="custom-favicon-container" method="post" action="{{actionUrl.favicon}}" novalidate name="faviconForm" ng-upload="submited(content)" upload-options-enable-rails-csrf="true" unsaved-warning-form>
|
||||
<input type="hidden" name="custom_asset[name]" value="favicon-file">
|
||||
<input name="_method" type="hidden" ng-value="methods.favicon">
|
||||
<h3 class="m-l" translate>{{ 'settings.favicon' }}</h3>
|
||||
<h3 class="m-l" translate>{{ 'app.admin.settings.favicon' }}</h3>
|
||||
<div class="custom-favicon" style="background-image: url({{customFavicon}});">
|
||||
<img src="data:image/png;base64," data-src="holder.js/32x32/text:/font:FontAwesome/icon-xs" bs-holder ng-show="!customFavicon" class="img-responsive">
|
||||
<img base-sixty-four-image="customFavicon" ng-show="customFavicon && customFavicon.base64">
|
||||
@ -241,7 +241,7 @@
|
||||
<div class="tools-box">
|
||||
<div class="btn-group">
|
||||
<div class="btn btn-default btn-file">
|
||||
<i class="fa fa-edit"></i> {{ 'settings.change_the_favicon' | translate }}
|
||||
<i class="fa fa-edit"></i> {{ 'app.admin.settings.change_the_favicon' | translate }}
|
||||
<input type="file"
|
||||
accept="image/png,image/x-png,image/x-icon,image/ico,image/vnd.microsoft.icon"
|
||||
name="custom_asset[custom_asset_file_attributes][attachment]"
|
||||
@ -252,40 +252,40 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<button name="button" type="submit" class="btn btn-warning m-t m-l" ng-disabled="faviconForm.$invalid" translate>{{ 'save' }}</button>
|
||||
<button name="button" type="submit" class="btn btn-warning m-t m-l" ng-disabled="faviconForm.$invalid" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-t m-l-xs">
|
||||
<div class="col-md-4">
|
||||
<h4 translate>{{ 'settings.main_colour' }}</h4>
|
||||
<h4 translate>{{ 'app.admin.settings.main_colour' }}</h4>
|
||||
<form role="form" class="form-inline" name="mainColorForm" novalidate>
|
||||
<div class="form-group">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">
|
||||
<i class="fa fa-paint-brush"></i>
|
||||
</div>
|
||||
<input type="text" minicolors ng-model="mainColorSetting.value" class="form-control" placeholder="{{ 'settings.primary' | translate}}"/>
|
||||
<input type="text" minicolors ng-model="mainColorSetting.value" class="form-control" placeholder="{{ 'app.admin.settings.primary' | translate}}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button name="button" class="btn btn-warning" ng-click="save(mainColorSetting)" translate>{{ 'save' }}</button>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(mainColorSetting)" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<h4 translate>{{ 'settings.secondary_colour' }}</h4>
|
||||
<h4 translate>{{ 'app.admin.settings.secondary_colour' }}</h4>
|
||||
<form role="form" class="form-inline" name="secondColorForm" novalidate>
|
||||
<div class="form-group">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">
|
||||
<i class="fa fa-paint-brush"></i>
|
||||
</div>
|
||||
<input type="text" minicolors ng-model="secondColorSetting.value" class="form-control" placeholder="{{ 'settings.secondary' | translate}}"/>
|
||||
<input type="text" minicolors ng-model="secondColorSetting.value" class="form-control" placeholder="{{ 'app.admin.settings.secondary' | translate}}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button name="button" class="btn btn-warning" ng-click="save(secondColorSetting)" translate>{{ 'save' }}</button>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(secondColorSetting)" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@ -295,7 +295,7 @@
|
||||
<form class="custom-profile-image-container" method="post" action="{{actionUrl.profileImage}}" novalidate name="profileImageForm" ng-upload="submited(content)" upload-options-enable-rails-csrf="true" unsaved-warning-form>
|
||||
<input type="hidden" name="custom_asset[name]" value="profile-image-file">
|
||||
<input name="_method" type="hidden" ng-value="methods.profileImage">
|
||||
<h3 class="m-l" translate>{{ 'settings.background_picture_of_the_profile_banner' }}</h3>
|
||||
<h3 class="m-l" translate>{{ 'app.admin.settings.background_picture_of_the_profile_banner' }}</h3>
|
||||
<div class="custom-profile-image" style="background-image: url({{profileImage}});">
|
||||
<img src="data:image/png;base64," data-src="holder.js/100%x100%/text:/font:FontAwesome/icon-xs" bs-holder ng-show="!profileImage" class="img-responsive">
|
||||
<img base-sixty-four-image="profileImage" ng-show="profileImage && profileImage.base64">
|
||||
@ -303,7 +303,7 @@
|
||||
<div class="tools-box">
|
||||
<div class="btn-group">
|
||||
<div class="btn btn-default btn-file">
|
||||
<i class="fa fa-edit"></i> {{ 'settings.change_the_profile_banner' | translate }}
|
||||
<i class="fa fa-edit"></i> {{ 'app.admin.settings.change_the_profile_banner' | translate }}
|
||||
<input type="file"
|
||||
accept="image/png,image/x-png"
|
||||
name="custom_asset[custom_asset_file_attributes][attachment]"
|
||||
@ -314,7 +314,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<button name="button" type="submit" class="btn btn-warning m-t m-l" ng-disabled="profileImageForm.$invalid" translate>{{ 'save' }}</button>
|
||||
<button name="button" type="submit" class="btn btn-warning m-t m-l" ng-disabled="profileImageForm.$invalid" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@ -323,23 +323,23 @@
|
||||
|
||||
<div class="panel panel-default m-t-lg">
|
||||
<div class="panel-heading">
|
||||
<span class="font-sbold" translate>{{ 'settings.elements_ordering' }}</span>
|
||||
<span class="font-sbold" translate>{{ 'app.admin.settings.elements_ordering' }}</span>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<h3 class="m-l" translate>{{ 'settings.machines_order' }}</h3>
|
||||
<h3 class="m-l" translate>{{ 'app.admin.settings.machines_order' }}</h3>
|
||||
<div class="form-group m-l">
|
||||
<label for="machinesSortBy" class="control-label m-r" translate>{{ 'settings.display_machines_sorted_by' }}</label>
|
||||
<label for="machinesSortBy" class="control-label m-r" translate>{{ 'app.admin.settings.display_machines_sorted_by' }}</label>
|
||||
<select id="machinesSortBy"
|
||||
class="form-control"
|
||||
ng-model="machinesSortBy.value">
|
||||
<option value="default" translate>{{ 'settings.sort_by.default' }}</option>
|
||||
<option value="name" translate>{{ 'settings.sort_by.name' }}</option>
|
||||
<option value="created_at" translate>{{ 'settings.sort_by.created_at' }}</option>
|
||||
<option value="updated_at" translate>{{ 'settings.sort_by.updated_at' }}</option>
|
||||
<option value="default" translate>{{ 'app.admin.settings.sort_by.default' }}</option>
|
||||
<option value="name" translate>{{ 'app.admin.settings.sort_by.name' }}</option>
|
||||
<option value="created_at" translate>{{ 'app.admin.settings.sort_by.created_at' }}</option>
|
||||
<option value="updated_at" translate>{{ 'app.admin.settings.sort_by.updated_at' }}</option>
|
||||
</select>
|
||||
<button name="button" class="btn btn-warning m-t" ng-click="save(machinesSortBy)" translate>{{ 'save' }}</button>
|
||||
<button name="button" class="btn btn-warning m-t" ng-click="save(machinesSortBy)" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
</div>
|
||||
|
@ -2,28 +2,28 @@
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h4 translate>{{ 'settings.news_of_the_home_page' }}</h4>
|
||||
<div ng-model="homeBlogpostSetting.value" class="well" medium-editor options='{"placeholder": "{{ "settings.type_your_news_here" | translate }}",
|
||||
<h4 translate>{{ 'app.admin.settings.news_of_the_home_page' }}</h4>
|
||||
<div ng-model="homeBlogpostSetting.value" class="well" medium-editor options='{"placeholder": "{{ "app.admin.settings.type_your_news_here" | translate }}",
|
||||
"buttons": ["bold", "italic", "anchor", "header1", "header2" ]}'></div>
|
||||
<span class="help-block text-info text-xs"><i class="fa fa-lightbulb-o"></i> {{ 'settings.leave_it_empty_to_not_bring_up_any_news_on_the_home_page' | translate }}</span>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(homeBlogpostSetting)" translate>{{ 'save' }}</button>
|
||||
<span class="help-block text-info text-xs"><i class="fa fa-lightbulb-o"></i> {{ 'app.admin.settings.leave_it_empty_to_not_bring_up_any_news_on_the_home_page' | translate }}</span>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(homeBlogpostSetting)" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h4 translate>{{ 'settings.twitter_stream' }}</h4>
|
||||
<h4 translate>{{ 'app.admin.settings.twitter_stream' }}</h4>
|
||||
<form role="form" class="form-inline" name="twitterForm" novalidate>
|
||||
<div class="form-group">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">
|
||||
<i class="fa fa-twitter"></i>
|
||||
</div>
|
||||
<input type="text" ng-model="twitterSetting.value" class="form-control" placeholder="{{ 'settings.name_of_the_twitter_account' | translate }}"/>
|
||||
<input type="text" ng-model="twitterSetting.value" class="form-control" placeholder="{{ 'app.admin.settings.name_of_the_twitter_account' | translate }}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button name="button" class="btn btn-warning" ng-click="save(twitterSetting)" translate>{{ 'save' }}</button>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(twitterSetting)" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -7,7 +7,7 @@
|
||||
</div>
|
||||
<div class="col-xs-10 col-sm-10 col-md-8 b-l">
|
||||
<section class="heading-title">
|
||||
<h1 translate>{{ 'settings.customize_the_application' }}</h1>
|
||||
<h1 translate>{{ 'app.admin.settings.customize_the_application' }}</h1>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
@ -20,24 +20,24 @@
|
||||
<div class="col-md-12">
|
||||
<uib-tabset justified="true">
|
||||
|
||||
<uib-tab heading="{{ 'settings.general' | translate }}">
|
||||
<ng-include src="'<%= asset_path 'admin/settings/general.html' %>'"></ng-include>
|
||||
<uib-tab heading="{{ 'app.admin.settings.general' | translate }}">
|
||||
<ng-include src="'<%= asset_path "admin/settings/general.html" %>'"></ng-include>
|
||||
</uib-tab>
|
||||
|
||||
<uib-tab heading="{{ 'settings.home_page' | translate }}">
|
||||
<ng-include src="'<%= asset_path 'admin/settings/home_page.html' %>'"></ng-include>
|
||||
<uib-tab heading="{{ 'app.admin.settings.home_page' | translate }}">
|
||||
<ng-include src="'<%= asset_path "admin/settings/home_page.html" %>'"></ng-include>
|
||||
</uib-tab>
|
||||
|
||||
<uib-tab heading="{{ 'settings.about' | translate }}">
|
||||
<ng-include src="'<%= asset_path 'admin/settings/about.html' %>'"></ng-include>
|
||||
<uib-tab heading="{{ 'app.admin.settings.about' | translate }}">
|
||||
<ng-include src="'<%= asset_path "admin/settings/about.html" %>'"></ng-include>
|
||||
</uib-tab>
|
||||
|
||||
<uib-tab heading="{{ 'settings.privacy.title' | translate }}">
|
||||
<ng-include src="'<%= asset_path 'admin/settings/privacy.html' %>'"></ng-include>
|
||||
<uib-tab heading="{{ 'app.admin.settings.privacy.title' | translate }}">
|
||||
<ng-include src="'<%= asset_path "admin/settings/privacy.html" %>'"></ng-include>
|
||||
</uib-tab>
|
||||
|
||||
<uib-tab heading="{{ 'settings.reservations' | translate }}">
|
||||
<ng-include src="'<%= asset_path 'admin/settings/reservations.html' %>'"></ng-include>
|
||||
<uib-tab heading="{{ 'app.admin.settings.reservations' | translate }}">
|
||||
<ng-include src="'<%= asset_path "admin/settings/reservations.html" %>'"></ng-include>
|
||||
</uib-tab>
|
||||
</uib-tabset>
|
||||
</div>
|
||||
|
@ -4,24 +4,24 @@
|
||||
<div class="row">
|
||||
<div class="col-md-4 col-md-offset-1">
|
||||
<select class="form-control m-b" ng-options="d.id as d.name for d in privacyDraftsHistory" ng-model="privacyPolicy.version" ng-change="handlePolicyRevisionChange()">
|
||||
<option value="" translate>{{ 'settings.privacy.current_policy' }}</option>
|
||||
<option value="" translate>{{ 'app.admin.settings.privacy.current_policy' }}</option>
|
||||
</select>
|
||||
<div class="text-justify" ng-model="privacyPolicy.bodyTemp" medium-editor options='{"placeholder": "{{ "settings.input_the_main_content" | translate }}",
|
||||
<div class="text-justify" ng-model="privacyPolicy.bodyTemp" medium-editor options='{"placeholder": "{{ "app.admin.settings.input_the_main_content" | translate }}",
|
||||
"buttons": ["bold", "italic", "anchor", "header1", "header2" ]
|
||||
}'>
|
||||
|
||||
</div>
|
||||
<span class="help-block text-info text-xs"><i class="fa fa-lightbulb-o"></i> {{ 'settings.drag_and_drop_to_insert_images' | translate }}</span>
|
||||
<button name="button" class="btn btn-warning" ng-click="savePrivacyPolicy()" translate>{{ 'save' }}</button>
|
||||
<span class="help-block text-info text-xs"><i class="fa fa-lightbulb-o"></i> {{ 'app.admin.settings.drag_and_drop_to_insert_images' | translate }}</span>
|
||||
<button name="button" class="btn btn-warning" ng-click="savePrivacyPolicy()" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</div>
|
||||
<div class="col-md-4 col-md-offset-2">
|
||||
<div ng-model="privacyDpoSetting.value" medium-editor options='{"placeholder": "{{ "settings.privacy.input_the_dpo" | translate }}",
|
||||
<div ng-model="privacyDpoSetting.value" medium-editor options='{"placeholder": "{{ "app.admin.settings.privacy.input_the_dpo" | translate }}",
|
||||
"buttons": ["bold", "italic", "anchor", "header1", "header2" ]
|
||||
}'>
|
||||
|
||||
</div>
|
||||
<span class="help-block text-info text-xs"><i class="fa fa-lightbulb-o"></i> {{ 'settings.shift_enter_to_force_carriage_return' | translate }}</span>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(privacyDpoSetting)" translate>{{ 'save' }}</button>
|
||||
<span class="help-block text-info text-xs"><i class="fa fa-lightbulb-o"></i> {{ 'app.admin.settings.shift_enter_to_force_carriage_return' | translate }}</span>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(privacyDpoSetting)" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
@ -1,30 +1,30 @@
|
||||
<div class="panel panel-default m-t-lg">
|
||||
<div class="panel-heading">
|
||||
<span class="font-sbold" translate>{{ 'settings.reservations_parameters' }}</span>
|
||||
<span class="font-sbold" translate>{{ 'app.admin.settings.reservations_parameters' }}</span>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div>
|
||||
<div class="row">
|
||||
<h3 class="m-l" translate>{{ 'settings.confine_the_booking_agenda' }}</h3>
|
||||
<h3 class="m-l" translate>{{ 'app.admin.settings.confine_the_booking_agenda' }}</h3>
|
||||
<div class="col-md-2">
|
||||
<h4 translate>{{ 'settings.opening_time' }}</h4>
|
||||
<h4 translate>{{ 'app.admin.settings.opening_time' }}</h4>
|
||||
<uib-timepicker ng-model="windowStart.value" hour-step="timepicker.hstep" minute-step="timepicker.mstep" show-meridian="false"></uib-timepicker>
|
||||
</div>
|
||||
<div class="col-md-4 m-t">
|
||||
<button name="button" class="btn btn-warning m-l" ng-click="save(windowStart)" translate>{{ 'save' }}</button>
|
||||
<button name="button" class="btn btn-warning m-l" ng-click="save(windowStart)" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<h4 translate>{{ 'settings.closing_time' }}</h4>
|
||||
<h4 translate>{{ 'app.admin.settings.closing_time' }}</h4>
|
||||
<uib-timepicker ng-model="windowEnd.value" hour-step="timepicker.hstep" minute-step="timepicker.mstep" show-meridian="false"></uib-timepicker>
|
||||
</div>
|
||||
<div class="col-md-4 m-t">
|
||||
<button name="button" class="btn btn-warning m-l" ng-click="save(windowEnd)" translate>{{ 'save' }}</button>
|
||||
<button name="button" class="btn btn-warning m-l" ng-click="save(windowEnd)" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<h3 class="m-l m-t-lg" translate>{{ 'settings.max_visibility' }}</h3>
|
||||
<h3 class="m-l m-t-lg" translate>{{ 'app.admin.settings.max_visibility' }}</h3>
|
||||
<form class="col-md-4" name="visibilityYearlyForm">
|
||||
<label for="yearlySubscribers" class="control-label m-r" translate>{{ 'settings.visibility_for_yearly_members' }}</label>
|
||||
<label for="yearlySubscribers" class="control-label m-r" translate>{{ 'app.admin.settings.visibility_for_yearly_members' }}</label>
|
||||
<div class="form-group">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">
|
||||
@ -33,10 +33,10 @@
|
||||
<input type="number" class="form-control" id="yearlySubscribers" ng-model="visibilityYearly.value" min="1" required>
|
||||
</div>
|
||||
</div>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(visibilityYearly)" ng-disabled="visibilityYearlyForm.$invalid" translate>{{ 'save' }}</button>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(visibilityYearly)" ng-disabled="visibilityYearlyForm.$invalid" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</form>
|
||||
<form class="col-md-4 col-md-offset-2" name="visibilityOthersForm">
|
||||
<label for="others" class="control-label m-r" translate>{{ 'settings.visibility_for_other_members' }}</label>
|
||||
<label for="others" class="control-label m-r" translate>{{ 'app.admin.settings.visibility_for_other_members' }}</label>
|
||||
<div class="form-group">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">
|
||||
@ -45,27 +45,27 @@
|
||||
<input type="number" class="form-control" id="others" ng-model="visibilityOthers.value" min="1" required>
|
||||
</div>
|
||||
</div>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(visibilityOthers)" ng-disabled="visibilityOthersForm.$invalid" translate>{{ 'save' }}</button>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(visibilityOthers)" ng-disabled="visibilityOthersForm.$invalid" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="row">
|
||||
<h3 class="m-l m-t-lg" translate>{{ 'settings.ability_for_the_users_to_move_their_reservations' }}</h3>
|
||||
<h3 class="m-l m-t-lg" translate>{{ 'app.admin.settings.ability_for_the_users_to_move_their_reservations' }}</h3>
|
||||
<div class="form-group m-l">
|
||||
<label for="enableMove" class="control-label m-r" translate>{{ 'settings.reservations_shifting' }}</label>
|
||||
<label for="enableMove" class="control-label m-r" translate>{{ 'app.admin.settings.reservations_shifting' }}</label>
|
||||
<input bs-switch
|
||||
ng-model="enableMove.value"
|
||||
id="enableMove"
|
||||
type="checkbox"
|
||||
class="form-control"
|
||||
switch-on-text="{{ 'settings.enabled' | translate }}"
|
||||
switch-off-text="{{ 'settings.disabled' | translate }}"
|
||||
switch-on-text="{{ 'app.admin.settings.enabled' | translate }}"
|
||||
switch-off-text="{{ 'app.admin.settings.disabled' | translate }}"
|
||||
switch-animate="true"/>
|
||||
<button name="button" class="btn btn-warning m-l" ng-click="save(enableMove)" translate>{{ 'save' }}</button>
|
||||
<button name="button" class="btn btn-warning m-l" ng-click="save(enableMove)" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" ng-show="enableMove.value">
|
||||
<form class="col-md-4" name="moveDelayForm">
|
||||
<label for="moveDelay" class="control-label m-r" translate>{{ 'settings.prior_period_hours' }}</label>
|
||||
<label for="moveDelay" class="control-label m-r" translate>{{ 'app.admin.settings.prior_period_hours' }}</label>
|
||||
<div class="form-group">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">
|
||||
@ -74,27 +74,27 @@
|
||||
<input type="number" class="form-control" id="moveDelay" ng-model="moveDelay.value" min="0" ng-required="enableMove.value">
|
||||
</div>
|
||||
</div>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(moveDelay)" ng-disabled="moveDelayForm.$invalid" translate>{{ 'save' }}</button>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(moveDelay)" ng-disabled="moveDelayForm.$invalid" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="row">
|
||||
<h3 class="m-l m-t-lg" translate>{{ 'settings.ability_for_the_users_to_cancel_their_reservations' }}</h3>
|
||||
<h3 class="m-l m-t-lg" translate>{{ 'app.admin.settings.ability_for_the_users_to_cancel_their_reservations' }}</h3>
|
||||
<div class="form-group m-l">
|
||||
<label for="enableCancel" class="control-label m-r" translate>{{ 'settings.reservations_cancelling' }}</label>
|
||||
<label for="enableCancel" class="control-label m-r" translate>{{ 'app.admin.settings.reservations_cancelling' }}</label>
|
||||
<input bs-switch
|
||||
ng-model="enableCancel.value"
|
||||
id="enableCancel"
|
||||
type="checkbox"
|
||||
class="form-control"
|
||||
switch-on-text="{{ 'settings.enabled' | translate }}"
|
||||
switch-off-text="{{ 'settings.disabled' | translate }}"
|
||||
switch-on-text="{{ 'app.admin.settings.enabled' | translate }}"
|
||||
switch-off-text="{{ 'app.admin.settings.disabled' | translate }}"
|
||||
switch-animate="true"/>
|
||||
<button name="button" class="btn btn-warning m-l" ng-click="save(enableCancel)" translate>{{ 'save' }}</button>
|
||||
<button name="button" class="btn btn-warning m-l" ng-click="save(enableCancel)" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" ng-show="enableCancel.value">
|
||||
<form class="col-md-4" name="cancelDelayForm">
|
||||
<label for="cancelDelay" class="control-label m-r" translate>{{ 'settings.prior_period_hours' }}</label>
|
||||
<label for="cancelDelay" class="control-label m-r" translate>{{ 'app.admin.settings.prior_period_hours' }}</label>
|
||||
<div class="form-group">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">
|
||||
@ -103,7 +103,7 @@
|
||||
<input type="number" class="form-control" id="cancelDelay" ng-model="cancelDelay.value" min="0" ng-required="enableCancel.value">
|
||||
</div>
|
||||
</div>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(cancelDelay)" ng-disabled="cancelDelayForm.$invalid" translate>{{ 'save' }}</button>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(cancelDelay)" ng-disabled="cancelDelayForm.$invalid" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@ -112,27 +112,27 @@
|
||||
|
||||
<div class="panel panel-default m-t-lg">
|
||||
<div class="panel-heading">
|
||||
<span class="font-sbold" translate>{{ 'settings.reservations_reminders' }}</span>
|
||||
<span class="font-sbold" translate>{{ 'app.admin.settings.reservations_reminders' }}</span>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<h3 class="m-l" translate>{{ 'settings.notification_sending_before_the_reservation_occurs' }}</h3>
|
||||
<h3 class="m-l" translate>{{ 'app.admin.settings.notification_sending_before_the_reservation_occurs' }}</h3>
|
||||
<div class="form-group m-l">
|
||||
<label for="enableReminder" class="control-label m-r" translate>{{ 'settings.reservations_reminders' }}</label>
|
||||
<label for="enableReminder" class="control-label m-r" translate>{{ 'app.admin.settings.reservations_reminders' }}</label>
|
||||
<input bs-switch
|
||||
ng-model="enableReminder.value"
|
||||
id="enableReminder"
|
||||
type="checkbox"
|
||||
class="form-control"
|
||||
switch-on-text="{{ 'settings.enabled' | translate }}"
|
||||
switch-off-text="{{ 'settings.disabled' | translate }}"
|
||||
switch-on-text="{{ 'app.admin.settings.enabled' | translate }}"
|
||||
switch-off-text="{{ 'app.admin.settings.disabled' | translate }}"
|
||||
switch-animate="true"/>
|
||||
<button name="button" class="btn btn-warning m-l" ng-click="save(enableReminder)" translate>{{ 'save' }}</button>
|
||||
<button name="button" class="btn btn-warning m-l" ng-click="save(enableReminder)" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" ng-show="enableReminder.value">
|
||||
<form class="col-md-4" name="reminderDelayForm">
|
||||
<label for="reminderDelay" class="control-label m-r" translate>{{ 'settings.prior_period_hours' }}</label>
|
||||
<label for="reminderDelay" class="control-label m-r" translate>{{ 'app.admin.settings.prior_period_hours' }}</label>
|
||||
<div class="form-group">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">
|
||||
@ -141,10 +141,10 @@
|
||||
<input type="number" class="form-control" id="reminderDelay" ng-model="reminderDelay.value" min="0">
|
||||
</div>
|
||||
<span class="help-block text-info text-xs">
|
||||
<i class="fa fa-lightbulb-o"></i> {{ 'settings.default_value_is_24_hours' | translate }}
|
||||
<i class="fa fa-lightbulb-o"></i> {{ 'app.admin.settings.default_value_is_24_hours' | translate }}
|
||||
</span>
|
||||
</div>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(reminderDelay)" ng-disabled="reminderDelayForm.$invalid" translate>{{ 'save' }}</button>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(reminderDelay)" ng-disabled="reminderDelayForm.$invalid" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@ -153,22 +153,22 @@
|
||||
|
||||
<div class="panel panel-default m-t-lg">
|
||||
<div class="panel-heading">
|
||||
<span class="font-sbold" translate>{{ 'settings.confidentiality' }}</span>
|
||||
<span class="font-sbold" translate>{{ 'app.admin.settings.confidentiality' }}</span>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<h3 class="m-l" translate>{{ 'settings.display_machine_reservation_user_name' }}</h3>
|
||||
<h3 class="m-l" translate>{{ 'app.admin.settings.display_machine_reservation_user_name' }}</h3>
|
||||
<div class="form-group m-l">
|
||||
<label for="displayNameEnable" class="control-label m-r" translate>{{ 'settings.display_name' }}</label>
|
||||
<label for="displayNameEnable" class="control-label m-r" translate>{{ 'app.admin.settings.display_name' }}</label>
|
||||
<input bs-switch
|
||||
ng-model="displayNameEnable.value"
|
||||
id="displayNameEnable"
|
||||
type="checkbox"
|
||||
class="form-control"
|
||||
switch-on-text="{{ 'settings.enabled' | translate }}"
|
||||
switch-off-text="{{ 'settings.disabled' | translate }}"
|
||||
switch-on-text="{{ 'app.admin.settings.enabled' | translate }}"
|
||||
switch-off-text="{{ 'app.admin.settings.disabled' | translate }}"
|
||||
switch-animate="true"/>
|
||||
<button name="button" class="btn btn-warning m-l" ng-click="save(displayNameEnable)" translate>{{ 'save' }}</button>
|
||||
<button name="button" class="btn btn-warning m-l" ng-click="save(displayNameEnable)" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,12 +1,12 @@
|
||||
<div class="modal-header">
|
||||
<h3 class="text-center red" translate>{{ 'settings.privacy.save_or_publish' }}</h3>
|
||||
<h3 class="text-center red" translate>{{ 'app.admin.settings.privacy.save_or_publish' }}</h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p translate>{{ 'settings.privacy.save_or_publish_body' }}</p>
|
||||
<p translate>{{ 'settings.privacy.publish_will_notify' }}</p>
|
||||
<p translate>{{ 'app.admin.settings.privacy.save_or_publish_body' }}</p>
|
||||
<p translate>{{ 'app.admin.settings.privacy.publish_will_notify' }}</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-info" ng-click="save()" translate>{{ 'save' }}</button>
|
||||
<button class="btn btn-warning" ng-click="publish()" translate>{{ 'settings.privacy.publish' }}</button>
|
||||
<button class="btn btn-default" ng-click="cancel()" translate>{{ 'cancel' }}</button>
|
||||
<button class="btn btn-info" ng-click="save()" translate>{{ 'app.shared.buttons.save' }}</button>
|
||||
<button class="btn btn-warning" ng-click="publish()" translate>{{ 'app.admin.settings.privacy.publish' }}</button>
|
||||
<button class="btn btn-default" ng-click="cancel()" translate>{{ 'app.shared.buttons.cancel' }}</button>
|
||||
</div>
|
||||
|
@ -7,12 +7,12 @@
|
||||
</div>
|
||||
<div class="col-xs-8 col-sm-10 col-md-8 b-l">
|
||||
<section class="heading-title">
|
||||
<h1 translate>{{ 'statistics' }}</h1>
|
||||
<h1 translate>{{ 'app.admin.stats_graphs.statistics' }}</h1>
|
||||
</section>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-12 col-md-3 b-t hide-b-md">
|
||||
<section class="heading-actions wrapper">
|
||||
<a class="btn btn-lg btn-warning bg-white b-2x rounded m-t-sm upper text-sm" ui-sref="app.admin.statistics" role="button"><i class="fa fa-table"></i> {{ 'data' | translate }}</a>
|
||||
<a class="btn btn-lg btn-warning bg-white b-2x rounded m-t-sm upper text-sm" ui-sref="app.admin.statistics" role="button"><i class="fa fa-table"></i> {{ 'app.admin.stats_graphs.data' | translate }}</a>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
@ -26,9 +26,9 @@
|
||||
<form id="filters_form" name="filters_form" class="form-inline m-t-md m-b-lg" novalidate="novalidate">
|
||||
|
||||
<div class="btn-group m-r-md">
|
||||
<a role="button" ng-model="display.interval" uib-btn-radio="'day'" class="btn btn-default" translate>{{ 'day' }}</a>
|
||||
<a role="button" ng-model="display.interval" uib-btn-radio="'week'" class="btn btn-default" translate>{{ 'week' }}</a>
|
||||
<a role="button" ng-model="display.interval" uib-btn-radio="'month'" class="btn btn-default" translate>{{ 'month' }}</a>
|
||||
<a role="button" ng-model="display.interval" uib-btn-radio="'day'" class="btn btn-default" translate>{{ 'app.admin.stats_graphs.day' }}</a>
|
||||
<a role="button" ng-model="display.interval" uib-btn-radio="'week'" class="btn btn-default" translate>{{ 'app.admin.stats_graphs.week' }}</a>
|
||||
<a role="button" ng-model="display.interval" uib-btn-radio="'month'" class="btn btn-default" translate>{{ 'app.admin.stats_graphs.month' }}</a>
|
||||
</div>
|
||||
|
||||
<div class="form-group pull-right datepicker-container">
|
||||
@ -36,9 +36,9 @@
|
||||
<i class="fa fa-calendar"></i>
|
||||
<i class="fa fa-arrows-h"></i>
|
||||
<i class="fa fa-calendar"></i>
|
||||
<span translate>{{ 'from_date' }}</span>
|
||||
<span translate>{{ 'app.admin.stats_graphs.from_date' }}</span>
|
||||
<b class="text-info" id="datepicker-from-info">{{datePickerStart.selected | amDateFormat:'L'}}</b>
|
||||
<span translate>{{ 'to_date' }}</span>
|
||||
<span translate>{{ 'app.admin.stats_graphs.to_date' }}</span>
|
||||
<b class="text-info" id="datepicker-to-info">{{datePickerEnd.selected | amDateFormat:'L'}}</b>
|
||||
<i class="fa fa-caret-down" ng-show="!datePicker.show"></i>
|
||||
<i class="fa fa-caret-up" ng-show="datePicker.show"></i>
|
||||
@ -46,7 +46,7 @@
|
||||
<div class="datepicker-dropdown" ng-show="datePicker.show">
|
||||
<ul class="list-unstyled">
|
||||
<li class="row">
|
||||
<span class="col-md-4" translate>{{ 'start' }}</span>
|
||||
<span class="col-md-4" translate>{{ 'app.admin.stats_graphs.start' }}</span>
|
||||
<div class="input-group black col-md-7 m-r" id="date_pick_start">
|
||||
<input type="text"
|
||||
class="form-control"
|
||||
@ -58,7 +58,7 @@
|
||||
max-date="datePickerStart.maxDate"
|
||||
datepicker-options="datePickerStart.options"
|
||||
show-button-bar="false"
|
||||
placeholder="{{ 'start' | translate }}"
|
||||
placeholder="{{ 'app.admin.stats_graphs.start' | translate }}"
|
||||
ng-click="toggleStartDatePicker($event)"
|
||||
required="required"/>
|
||||
<span class="input-group-btn">
|
||||
@ -69,7 +69,7 @@
|
||||
</div>
|
||||
</li>
|
||||
<li class="row">
|
||||
<span class="col-md-4" translate>{{ 'end' }}</span>
|
||||
<span class="col-md-4" translate>{{ 'app.admin.stats_graphs.end' }}</span>
|
||||
<div class="input-group black col-md-7 m-r" id="date_pick_end">
|
||||
<input type="text"
|
||||
class="form-control"
|
||||
@ -81,7 +81,7 @@
|
||||
max-date="datePickerEnd.maxDate"
|
||||
datepicker-options="datePickerEnd.options"
|
||||
show-button-bar="false"
|
||||
placeholder="{{ 'end' | translate }}"
|
||||
placeholder="{{ 'app.admin.stats_graphs.end' | translate }}"
|
||||
ng-click="toggleEndDatePicker($event)"
|
||||
required="required"/>
|
||||
<span class="input-group-btn">
|
||||
@ -93,7 +93,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<button class="btn btn-default text-primary pull-right" ng-click="validateDateChange()">
|
||||
<i class="fa fa-check green"></i> <span class="hidden-xs" translate>{{ 'apply' }}</span>
|
||||
<i class="fa fa-check green"></i> <span class="hidden-xs" translate>{{ 'app.shared.buttons.apply' }}</span>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
@ -110,21 +110,21 @@
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon"><i class="fa fa-filter"></i></span>
|
||||
<select class="form-control" ng-model="ranking.groupCriterion">
|
||||
<option value="subType" translate>{{ 'type' }}</option>
|
||||
<option value="subType" translate>{{ 'app.admin.stats_graphs.type' }}</option>
|
||||
<option value="{{field.key}}" ng-repeat="field in stat.additional_fields">{{field.label}}</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="input-group pull-right">
|
||||
<span class="input-group-addon"><i class="fa fa-sort-amount-desc "></i></span>
|
||||
<select class="form-control" ng-model="ranking.sortCriterion">
|
||||
<option value="ca" ng-if="stat.ca" translate>{{ 'revenue' }}</option>
|
||||
<option value="ca" ng-if="stat.ca" translate>{{ 'app.admin.stats_graphs.revenue' }}</option>
|
||||
<option value="{{t.key}}" ng-repeat="t in stat.types">{{t.label}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<h3>{{ 'top_list_of' | translate}} {{stat.label}}</h3>
|
||||
<h3>{{ 'app.admin.stats_graphs.top_list_of' | translate}} {{stat.label}}</h3>
|
||||
<div id="chart-{{stat.es_type_key}}">
|
||||
<svg style="height: 500px;width:100%"></svg>
|
||||
</div>
|
||||
@ -144,4 +144,4 @@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
@ -7,14 +7,14 @@
|
||||
</div>
|
||||
<div class="col-xs-8 col-sm-11 col-md-8 b-l">
|
||||
<section class="heading-title">
|
||||
<h1 translate>{{ 'statistics' }}</h1>
|
||||
<h1 translate>{{ 'app.admin.statistics.statistics' }}</h1>
|
||||
</section>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-12 col-md-3 b-t hide-b-md">
|
||||
<section class="heading-actions wrapper">
|
||||
<a class="btn btn-lg btn-default rounded m-t-sm text-sm" ng-click="exportToExcel()"><i class="fa fa-file-excel-o"></i></a>
|
||||
<iframe name="export-frame" height="0" width="0" class="none" id="stats-export-frame"></iframe>
|
||||
<a class="btn btn-lg btn-warning bg-white b-2x rounded m-t-sm upper text-sm" ui-sref="app.admin.stats_graphs" role="button"><i class="fa fa-line-chart"></i> {{ 'evolution' | translate }}</a>
|
||||
<a class="btn btn-lg btn-warning bg-white b-2x rounded m-t-sm upper text-sm" ui-sref="app.admin.stats_graphs" role="button"><i class="fa fa-line-chart"></i> {{ 'app.admin.statistics.evolution' | translate }}</a>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
@ -34,27 +34,27 @@
|
||||
<span ng-show="agePicker.start || agePicker.end">
|
||||
<i class="fa fa-arrows-h"></i>
|
||||
<i class="fa fa-birthday-cake"></i>
|
||||
<span translate>{{ 'from_age' }}</span>
|
||||
<span translate>{{ 'app.admin.statistics.from_age' }}</span>
|
||||
<b class="text-info" id="agepicker-from-info">{{agePicker.start}}</b>
|
||||
<span translate>{{ 'to_age' }}</span>
|
||||
<span translate>{{ 'app.admin.statistics.to_age' }}</span>
|
||||
<b class="text-info" id="agepicker-to-info">{{agePicker.end}}</b>
|
||||
<span translate>{{ '_years_old' }}</span>
|
||||
<span translate>{{ 'app.admin.statistics._years_old' }}</span>
|
||||
</span>
|
||||
<span class="text-gray" ng-show="!agePicker.start && !agePicker.end" translate>
|
||||
{{ 'age_filter' }}
|
||||
{{ 'app.admin.statistics.age_filter' }}
|
||||
</span>
|
||||
<i class="fa fa-caret-down" ng-show="!agePicker.show"></i>
|
||||
<i class="fa fa-caret-up" ng-show="agePicker.show"></i>
|
||||
</button>
|
||||
<div class="datepicker-dropdown" ng-show="agePicker.show">
|
||||
<ul class="list-unstyled">
|
||||
<li><span translate>{{ 'start' }}</span>
|
||||
<li><span translate>{{ 'app.admin.statistics.start' }}</span>
|
||||
<div class="input-group black">
|
||||
<span class="input-group-addon"><i class="fa fa-birthday-cake"></i></span>
|
||||
<input type="number" class="form-control" ng-model="agePicker.start" name="ageStart" required="required"/>
|
||||
</div>
|
||||
</li>
|
||||
<li><span translate>{{ 'end' }}</span>
|
||||
<li><span translate>{{ 'app.admin.statistics.end' }}</span>
|
||||
<div class="input-group black">
|
||||
<span class="input-group-addon"><i class="fa fa-birthday-cake"></i></span>
|
||||
<input type="number" class="form-control" ng-model="agePicker.end" name="ageEnd" required="required"/>
|
||||
@ -72,9 +72,9 @@
|
||||
<div id="customFilterPane" class="form-group datepicker-container m-l-md" style="z-index:101;">
|
||||
<button id="customFilterExpand" class="btn btn-default customMenuButton" type="button" ng-click="customFilter.show = !customFilter.show">
|
||||
<i class="fa fa-filter"></i>
|
||||
<span ng-show="!customFilter.criterion.key" class="text-gray" translate>{{ 'custom_filter' }}</span>
|
||||
<span ng-show="!customFilter.criterion.key" class="text-gray" translate>{{ 'app.admin.statistics.custom_filter' }}</span>
|
||||
<span ng-show="customFilter.criterion.key">{{customFilter.criterion.label}} :</span>
|
||||
<span ng-show="customFilter.exclude" translate>{{ 'NO_' }}</span>
|
||||
<span ng-show="customFilter.exclude" translate>{{ 'app.admin.statistics.NO_' }}</span>
|
||||
<ng-switch on="getCustomValueInputType(customFilter.criterion)">
|
||||
<span ng-switch-when="input_date">{{formatDate(customFilter.value)}}</span>
|
||||
<span ng-switch-when="input_select">{{customFilter.value.label}}</span>
|
||||
@ -85,7 +85,7 @@
|
||||
</button>
|
||||
<div id="custom-filter-dropdown" class="datepicker-dropdown" ng-show="customFilter.show">
|
||||
<ul class="list-unstyled">
|
||||
<li><span translate>{{ 'criterion' }}</span>
|
||||
<li><span translate>{{ 'app.admin.statistics.criterion' }}</span>
|
||||
<div class="input-group black customMenuInput">
|
||||
<span class="input-group-addon"><i class="fa fa-filter"></i></span>
|
||||
<select ng-model="customFilter.criterion"
|
||||
@ -98,7 +98,7 @@
|
||||
</select>
|
||||
</div>
|
||||
</li>
|
||||
<li><span translate>{{ 'value' }}</span>
|
||||
<li><span translate>{{ 'app.admin.statistics.value' }}</span>
|
||||
<div class="input-group black customMenuInput">
|
||||
<span class="input-group-addon"><i class="fa fa-asterisk"></i></span>
|
||||
<ng-switch on="getCustomValueInputType(customFilter.criterion)">
|
||||
@ -145,7 +145,7 @@
|
||||
<li>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" ng-model="customFilter.exclude"> {{ 'exclude' | translate }}
|
||||
<input type="checkbox" ng-model="customFilter.exclude"> {{ 'app.admin.statistics.exclude' | translate }}
|
||||
</label>
|
||||
</div>
|
||||
</li>
|
||||
@ -155,7 +155,7 @@
|
||||
|
||||
<div class="input-group m-l-md">
|
||||
<button class="btn btn-default text-primary pull-right" ng-click="validateFilterChange()">
|
||||
<i class="fa fa-check green"></i> <span class="hidden-xs">{{ 'apply' | translate }}</span>
|
||||
<i class="fa fa-check green"></i> <span class="hidden-xs">{{ 'app.shared.buttons.apply' | translate }}</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@ -164,9 +164,9 @@
|
||||
<i class="fa fa-calendar"></i>
|
||||
<i class="fa fa-arrows-h"></i>
|
||||
<i class="fa fa-calendar"></i>
|
||||
<span translate>{{ 'from_date' }}</span>
|
||||
<span translate>{{ 'app.admin.statistics.from_date' }}</span>
|
||||
<b class="text-info" id="datepicker-from-info">{{datePickerStart.selected | amDateFormat:'L'}}</b>
|
||||
<span translate>{{ 'to_date' }}</span>
|
||||
<span translate>{{ 'app.admin.statistics.to_date' }}</span>
|
||||
<b class="text-info" id="datepicker-to-info">{{datePickerEnd.selected | amDateFormat:'L'}}</b>
|
||||
<i class="fa fa-caret-down" ng-show="!datePicker.show"></i>
|
||||
<i class="fa fa-caret-up" ng-show="datePicker.show"></i>
|
||||
@ -174,7 +174,7 @@
|
||||
<div class="datepicker-dropdown" ng-show="datePicker.show">
|
||||
<ul class="list-unstyled p-xs">
|
||||
<li class="row">
|
||||
<span class="col-md-4" translate>{{ 'start' }}</span>
|
||||
<span class="col-md-4" translate>{{ 'app.admin.statistics.start' }}</span>
|
||||
<div class="input-group black col-md-7 m-r" id="date_pick_start">
|
||||
<input type="text"
|
||||
class="form-control"
|
||||
@ -186,7 +186,7 @@
|
||||
max-date="datePickerStart.maxDate"
|
||||
datepicker-options="datePickerStart.options"
|
||||
show-button-bar="false"
|
||||
placeholder="{{ 'start' | translate }}"
|
||||
placeholder="{{ 'app.admin.statistics.start' | translate }}"
|
||||
ng-click="toggleStartDatePicker($event)"
|
||||
required="required"/>
|
||||
<span class="input-group-btn">
|
||||
@ -197,7 +197,7 @@
|
||||
</div>
|
||||
</li>
|
||||
<li class="row">
|
||||
<span class="col-md-4" translate>{{ 'end' }}</span>
|
||||
<span class="col-md-4" translate>{{ 'app.admin.statistics.end' }}</span>
|
||||
<div class="input-group black col-md-7 m-r" id="date_pick_end">
|
||||
<input type="text"
|
||||
class="form-control"
|
||||
@ -209,7 +209,7 @@
|
||||
max-date="datePickerEnd.maxDate"
|
||||
datepicker-options="datePickerEnd.options"
|
||||
show-button-bar="false"
|
||||
placeholder="{{ 'end' | translate }}"
|
||||
placeholder="{{ 'app.admin.statistics.end' | translate }}"
|
||||
ng-click="toggleEndDatePicker($event)"
|
||||
required="required"/>
|
||||
<span class="input-group-btn">
|
||||
@ -221,7 +221,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<button class="btn btn-default text-primary pull-right" ng-click="validateDateChange()">
|
||||
<i class="fa fa-check green"></i> <span class="hidden-xs" translate>{{ 'apply' }}</span>
|
||||
<i class="fa fa-check green"></i> <span class="hidden-xs" translate>{{ 'app.shared.buttons.apply' }}</span>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
@ -231,25 +231,25 @@
|
||||
|
||||
<div id="totaux">
|
||||
<ul>
|
||||
<li>{{ 'entries' | translate }} {{totalHits}}</li>
|
||||
<li ng-show="selectedIndex.ca">{{ 'revenue_' | translate }} {{sumCA | currency}}</li>
|
||||
<li>{{ 'average_age' | translate }} {{averageAge}} {{ 'years_old' | translate }}</li>
|
||||
<li ng-if="!type.active.simple">{{ 'total' | translate }} {{type.active.label}} : {{sumStat}}</li>
|
||||
<li ng-repeat="custom in type.active.custom_aggregations">{{ custom.field | translate }} {{customAggs[custom.field]}}</li>
|
||||
<li>{{ 'app.admin.statistics.entries' | translate }} {{totalHits}}</li>
|
||||
<li ng-show="selectedIndex.ca">{{ 'app.admin.statistics.revenue_' | translate }} {{sumCA | currency}}</li>
|
||||
<li>{{ 'app.admin.statistics.average_age' | translate }} {{averageAge}} {{ 'app.admin.statistics.years_old' | translate }}</li>
|
||||
<li ng-if="!type.active.simple">{{ 'app.admin.statistics.total' | translate }} {{type.active.label}} : {{sumStat}}</li>
|
||||
<li ng-repeat="custom in type.active.custom_aggregations">{{ customFieldName(custom.field) }} {{customAggs[custom.field]}}</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th translate>{{ 'date' }}</th>
|
||||
<th translate>{{ 'user' }}</th>
|
||||
<th translate>{{ 'gender' }}</th>
|
||||
<th translate>{{ 'age' }}</th>
|
||||
<th translate>{{ 'type' }}</th>
|
||||
<th translate>{{ 'app.admin.statistics.date' }}</th>
|
||||
<th translate>{{ 'app.admin.statistics.user' }}</th>
|
||||
<th translate>{{ 'app.admin.statistics.gender' }}</th>
|
||||
<th translate>{{ 'app.admin.statistics.age' }}</th>
|
||||
<th translate>{{ 'app.admin.statistics.type' }}</th>
|
||||
<th ng-if="!type.active.simple">{{type.active.label}}</th>
|
||||
<th ng-repeat="field in selectedIndex.additional_fields">{{field.label}}</th>
|
||||
<th ng-if="selectedIndex.ca">{{ 'revenue' | translate }}
|
||||
<th ng-if="selectedIndex.ca">{{ 'app.admin.statistics.revenue' | translate }}
|
||||
<span class="small" ng-click="toggleSorting('ca')">
|
||||
<ng-switch on="sorting.ca">
|
||||
<i class="fa fa-sort-numeric-desc" ng-switch-when="desc"></i>
|
||||
@ -265,12 +265,12 @@
|
||||
<td>{{formatDate(datum._source.date)}}</td>
|
||||
<td>
|
||||
<a ng-show="datum._source.userId" ui-sref="app.admin.members_edit({id:datum._source.userId})">{{getUserNameFromId(datum._source.userId)}}</a>
|
||||
<span class="text-gray text-italic" ng-hide="datum._source.userId" translate>{{ 'deleted_user' }}</span>
|
||||
<span class="text-gray text-italic" ng-hide="datum._source.userId" translate>{{ 'app.admin.statistics.deleted_user' }}</span>
|
||||
</td>
|
||||
<td>{{formatSex(datum._source.gender)}}</td>
|
||||
<td>
|
||||
<span ng-if="datum._source.age">{{datum._source.age}} {{ 'years_old' | translate }}</span>
|
||||
<span ng-if="!datum._source.age" translate>{{ 'unknown' }}</span>
|
||||
<span ng-if="datum._source.age">{{datum._source.age}} {{ 'app.admin.statistics.years_old' | translate }}</span>
|
||||
<span ng-if="!datum._source.age" translate>{{ 'app.admin.statistics.unknown' }}</span>
|
||||
</td>
|
||||
<td>{{formatSubtype(datum._source.subType)}}</td>
|
||||
<td ng-if="!type.active.simple">{{datum._source.stat}}</td>
|
||||
@ -283,12 +283,12 @@
|
||||
<span ng-switch-default>{{datum._source[field.key]}}</span>
|
||||
</ng-switch>
|
||||
</td>
|
||||
<td ng-if="selectedIndex.ca"><span ng-if="datum._source.ca !== null">{{datum._source.ca | currency}}</span><span ng-if="datum._source.ca === null" translate>{{ 'unknown' }}</span></td>
|
||||
<td ng-if="selectedIndex.ca"><span ng-if="datum._source.ca !== null">{{datum._source.ca | currency}}</span><span ng-if="datum._source.ca === null" translate>{{ 'app.admin.statistics.unknown' }}</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="text-center">
|
||||
<button class="btn btn-warning" ng-click="showMoreResults()" ng-hide="data && data.length >= totalHits"><i class="fa fa-search-plus" aria-hidden="true"></i> {{ 'display_more_results' | translate }}</button>
|
||||
<button class="btn btn-warning" ng-click="showMoreResults()" ng-hide="data && data.length >= totalHits"><i class="fa fa-search-plus" aria-hidden="true"></i> {{ 'app.admin.statistics.display_more_results' | translate }}</button>
|
||||
</div>
|
||||
</uib-tab>
|
||||
</uib-tabset>
|
||||
|
@ -10,16 +10,16 @@
|
||||
<input name="_method" type="hidden" ng-value="method">
|
||||
|
||||
<div class="form-group" ng-class="{'has-error': eventForm['event[title]'].$dirty && eventForm['event[title]'].$invalid}">
|
||||
<label for="event_title" class="col-sm-3 control-label">{{ 'title' | translate }} *</label>
|
||||
<label for="event_title" class="col-sm-3 control-label">{{ 'app.shared.event.title' | translate }} *</label>
|
||||
<div class="col-sm-9">
|
||||
<input ng-model="event.title" type="text" name="event[title]" class="form-control" id="event_title" placeholder="" required>
|
||||
<span class="help-block" ng-show="eventForm['event[title]'].$dirty && eventForm['event[title]'].$error.required" translate>{{ 'title_is_required' }}</span>
|
||||
<span class="help-block" ng-show="eventForm['event[title]'].$dirty && eventForm['event[title]'].$error.required" translate>{{ 'app.shared.event.title_is_required' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="event_image" class="col-sm-3 control-label" translate>{{ 'matching_visual' }}</label>
|
||||
<label for="event_image" class="col-sm-3 control-label" translate>{{ 'app.shared.event.matching_visual' }}</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="fileinput" data-provides="fileinput" ng-class="fileinputClass(event.event_image)">
|
||||
<div class="fileinput-new thumbnail" style="width: 334px; height: 250px;">
|
||||
@ -29,7 +29,7 @@
|
||||
<img ng-src="{{ event.event_image }}" alt="" />
|
||||
</div>
|
||||
<div>
|
||||
<span class="btn btn-default btn-file"><span class="fileinput-new">{{ 'choose_a_picture' | translate }} <i class="fa fa-upload fa-fw"></i></span><span class="fileinput-exists" translate>{{ 'change' }}</span>
|
||||
<span class="btn btn-default btn-file"><span class="fileinput-new">{{ 'app.shared.event.choose_a_picture' | translate }} <i class="fa fa-upload fa-fw"></i></span><span class="fileinput-exists" translate>{{ 'app.shared.buttons.change' }}</span>
|
||||
<input type="file" name="event[event_image_attributes][attachment]"></span>
|
||||
<a class="btn btn-danger fileinput-exists" data-dismiss="fileinput"><i class="fa fa-trash-o"></i></a>
|
||||
</div>
|
||||
@ -38,7 +38,7 @@
|
||||
</div>
|
||||
|
||||
<div class="form-group" ng-class="{'has-error': eventForm['event[description]'].$dirty && eventForm['event[description]'].$invalid}">
|
||||
<label for="description" class="col-sm-3 control-label">{{ 'description' | translate }} *</label>
|
||||
<label for="description" class="col-sm-3 control-label">{{ 'app.shared.event.description' | translate }} *</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="hidden"
|
||||
name="event[description]"
|
||||
@ -50,12 +50,12 @@
|
||||
name="event[description]"
|
||||
required>
|
||||
</summernote>
|
||||
<span class="help-block" ng-show="eventForm['event[description]'].$dirty && eventForm['event[description]'].$error.required" translate>{{ 'description_is_required' }}</span>
|
||||
<span class="help-block" ng-show="eventForm['event[description]'].$dirty && eventForm['event[description]'].$error.required" translate>{{ 'app.shared.event.description_is_required' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label" translate>{{ 'attachments' }}</label>
|
||||
<label class="col-sm-3 control-label" translate>{{ 'app.shared.event.attachments' }}</label>
|
||||
<div class="col-sm-9">
|
||||
<div ng-repeat="file in event.event_files_attributes" ng-show="!file._destroy">
|
||||
<input type="hidden" name="event[event_files_attributes][][id]" ng-value="file.id" />
|
||||
@ -65,13 +65,13 @@
|
||||
<div class="form-control" data-trigger="fileinput">
|
||||
<i class="glyphicon glyphicon-file fileinput-exists"></i> <span class="fileinput-filename">{{file.attachment}}</span>
|
||||
</div>
|
||||
<span class="input-group-addon btn btn-default btn-file"><span class="fileinput-new" translate>{{ 'browse' }}</span>
|
||||
<span class="fileinput-exists" translate>{{ 'change' }}</span><input type="file" name="event[event_files_attributes][][attachment]"></span>
|
||||
<span class="input-group-addon btn btn-default btn-file"><span class="fileinput-new" translate>{{ 'app.shared.buttons.browse' }}</span>
|
||||
<span class="fileinput-exists" translate>{{ 'app.shared.buttons.change' }}</span><input type="file" name="event[event_files_attributes][][attachment]"></span>
|
||||
<a class="input-group-addon btn btn-danger fileinput-exists" data-dismiss="fileinput" ng-click="deleteFile(file)"><i class="fa fa-trash-o"></i></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<a class="btn btn-default" ng-click="addFile()" role="button">{{ 'add_a_new_file' | translate }} <i class="fa fa-file-o fa-fw"></i></a>
|
||||
<a class="btn btn-default" ng-click="addFile()" role="button">{{ 'app.shared.event.add_a_new_file' | translate }} <i class="fa fa-file-o fa-fw"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -92,7 +92,7 @@
|
||||
|
||||
<div class="widget panel b-a m m-t-lg">
|
||||
<div class="panel-heading b-b small">
|
||||
<h3 translate>{{ 'event_type' }} *</h3>
|
||||
<h3 translate>{{ 'app.shared.event.event_type' }} *</h3>
|
||||
</div>
|
||||
<div class="widget-content no-bg wrapper">
|
||||
<ui-select ng-model="event.category_id" name="event[category_id][]">
|
||||
@ -109,7 +109,7 @@
|
||||
|
||||
<div class="widget panel b-a m m-t-lg" ng-show="themes.length > 0">
|
||||
<div class="panel-heading b-b small">
|
||||
<h3 translate>{{ 'event_theme' }}</h3>
|
||||
<h3 translate>{{ 'app.shared.event.event_theme' }}</h3>
|
||||
</div>
|
||||
<div class="widget-content no-bg wrapper">
|
||||
<input type="hidden" name="event[event_theme_ids][]" value="" />
|
||||
@ -127,7 +127,7 @@
|
||||
|
||||
<div class="widget panel b-a m m-t-lg" ng-show="ageRanges.length > 0">
|
||||
<div class="panel-heading b-b small">
|
||||
<h3 translate>{{ 'age_range' }}</h3>
|
||||
<h3 translate>{{ 'app.shared.event.age_range' }}</h3>
|
||||
</div>
|
||||
<div class="widget-content no-bg wrapper">
|
||||
<ui-select ng-model="event.age_range_id" name="event[age_range_id][]">
|
||||
@ -143,23 +143,23 @@
|
||||
</div>
|
||||
<div class="widget panel b-a m m-t-lg">
|
||||
<div class="panel-heading b-b small">
|
||||
<h3 translate>{{ 'dates_and_opening_hours' }}</h3>
|
||||
<h3 translate>{{ 'app.shared.event.dates_and_opening_hours' }}</h3>
|
||||
</div>
|
||||
<div class="widget-content no-bg wrapper">
|
||||
<div class="m-b">
|
||||
<label class="v-bottom" translate>{{ 'all_day' }}</label>
|
||||
<label class="v-bottom" translate>{{ 'app.shared.event.all_day' }}</label>
|
||||
<div class="inline v-top">
|
||||
<label class="checkbox-inline">
|
||||
<input type="radio" name="event[all_day]" ng-model="event.all_day" value="true" required/> {{ 'yes' | translate }}
|
||||
<input type="radio" name="event[all_day]" ng-model="event.all_day" value="true" required/> {{ 'app.shared.buttons.yes' | translate }}
|
||||
</label>
|
||||
<label class="checkbox-inline">
|
||||
<input type="radio" name="event[all_day]" ng-model="event.all_day" value="false"/> {{ 'no' | translate }}
|
||||
<input type="radio" name="event[all_day]" ng-model="event.all_day" value="false"/> {{ 'app.shared.buttons.no' | translate }}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" name="event[availability_id]" ng-value="event.availability_id" ng-if="event.availability_id">
|
||||
<div class="m-b">
|
||||
<label translate>{{ 'start_date' }}</label>
|
||||
<label translate>{{ 'app.shared.event.start_date' }}</label>
|
||||
<div class="input-group">
|
||||
<input type="hidden" name="event[start_date]" ng-value="event.start_date">
|
||||
<input type="text"
|
||||
@ -176,7 +176,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="m-b">
|
||||
<label translate>{{ 'end_date' }}</label>
|
||||
<label translate>{{ 'app.shared.event.end_date' }}</label>
|
||||
<div class="input-group">
|
||||
<input type="hidden" name="event[end_date]" ng-value="event.end_date">
|
||||
<input type="text"
|
||||
@ -194,14 +194,14 @@
|
||||
</div>
|
||||
<div class="m-b row" ng-if="event.all_day =='false'">
|
||||
<div class="col-xs-6">
|
||||
<label translate>{{ 'start_time' }}</label>
|
||||
<label translate>{{ 'app.shared.event.start_time' }}</label>
|
||||
<div>
|
||||
<input type="hidden" name="event[start_time]" ng-value="event.start_time">
|
||||
<uib-timepicker ng-model="event.start_time" mousewheel="false" hour-step="1" minute-step="1" show-meridian="ismeridian"></uib-timepicker>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<label translate>{{ 'end_time' }}</label>
|
||||
<label translate>{{ 'app.shared.event.end_time' }}</label>
|
||||
<div>
|
||||
<input type="hidden" name="event[end_time]" ng-value="event.end_time">
|
||||
<uib-timepicker ng-model="event.end_time" mousewheel="false" hour-step="1" minute-step="1" show-meridian="ismeridian"></uib-timepicker>
|
||||
@ -210,12 +210,12 @@
|
||||
</div>
|
||||
|
||||
<div ng-if="method == 'post'" class="m-b">
|
||||
<label translate>{{ 'recurrence' }}</label>
|
||||
<label translate>{{ 'app.shared.event.recurrence' }}</label>
|
||||
<select ng-model="event.recurrence" class="form-control" name="event[recurrence]">
|
||||
<option value="{{t.value}}" ng-repeat="t in recurrenceTypes">{{t.label}}</option>
|
||||
</select>
|
||||
<div ng-if="event.recurrence != 'none'">
|
||||
{{ '_and_ends_on' | translate }}
|
||||
{{ 'app.shared.event._and_ends_on' | translate }}
|
||||
<div class="input-group">
|
||||
<input type="hidden" name="event[recurrence_end_at]" ng-value="event.recurrence_end_at">
|
||||
<input type="text"
|
||||
@ -236,17 +236,17 @@
|
||||
|
||||
<div class="widget panel b-a m m-t-lg">
|
||||
<div class="panel-heading b-b small">
|
||||
<h3 translate>{{ 'prices_and_availabilities' }}</h3>
|
||||
<h3 translate>{{ 'app.shared.event.prices_and_availabilities' }}</h3>
|
||||
</div>
|
||||
<div class="widget-content no-bg wrapper">
|
||||
<div class="form-group">
|
||||
<label for="event_amount" class="col-sm-5 control-label" translate>{{ 'standard_rate' }}</label>
|
||||
<label for="event_amount" class="col-sm-5 control-label" translate>{{ 'app.shared.event.standard_rate' }}</label>
|
||||
<div class="col-sm-5">
|
||||
<div class="input-group">
|
||||
<input ng-model="event.amount" type="number" name="event[amount]" class="form-control" id="event_amount" required>
|
||||
<div class="input-group-addon">{{currencySymbol}}</div>
|
||||
</div>
|
||||
<span class="help-block" translate>{{ '0_equal_free' }}</span>
|
||||
<span class="help-block" translate>{{ 'app.shared.event.0_equal_free' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" ng-repeat="price in event.prices" ng-show="!price._destroy">
|
||||
@ -278,7 +278,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="event_nb_total_places" class="col-sm-5 control-label" translate>{{ 'tickets_available' }}</label>
|
||||
<label for="event_nb_total_places" class="col-sm-5 control-label" translate>{{ 'app.shared.event.tickets_available' }}</label>
|
||||
<div class="col-sm-6">
|
||||
<div class="input-group">
|
||||
<input ng-model="event.nb_total_places" type="number" name="event[nb_total_places]" class="form-control" id="event_nb_total_places">
|
||||
|
@ -9,7 +9,7 @@
|
||||
</div>
|
||||
<div class="col-xs-10 col-sm-10 col-md-8 b-l ">
|
||||
<section class="heading-title">
|
||||
<h1 translate>{{ 'edit_the_event' }}</h1>
|
||||
<h1 translate>{{ 'app.admin.events_edit.edit_the_event' }}</h1>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
@ -18,7 +18,7 @@
|
||||
|
||||
<form role="form" name="eventForm" class="form-horizontal" novalidate action="{{ actionUrl }}" ng-upload="submited(content)" upload-options-enable-rails-csrf="true">
|
||||
|
||||
<ng-include src="'<%= asset_path 'events/_form.html' %>'"></ng-include>
|
||||
<ng-include src="'<%= asset_path "events/_form.html" %>'"></ng-include>
|
||||
|
||||
</form>
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
<div class="modal-header">
|
||||
<img ng-src="{{logoBlack.custom_asset_file_attributes.attachment_url}}" alt="{{logo.custom_asset_file_attributes.attachment}}" class="modal-logo"/>
|
||||
<h1 translate>{{ 'change_the_reservation' }}</h1>
|
||||
<h1 translate>{{ 'app.public.events_show.change_the_reservation' }}</h1>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p translate>{{ 'you_can_shift_this_reservation_on_the_following_slots' }}</p>
|
||||
<p translate>{{ 'app.public.events_show.you_can_shift_this_reservation_on_the_following_slots' }}</p>
|
||||
<select ng-model="reservation.reservable_id" class="form-control">
|
||||
<option value="{{e.id}}" ng-repeat="e in event.recurrence_events" ng-if="e.nb_free_places >= reservation.total_booked_seats">{{e.start_date | amDateFormat:'L'}}</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-info" ng-click="ok()" ng-disabled="attempting" translate>{{ 'confirm' }}</button>
|
||||
<button class="btn btn-default" ng-click="cancel()" translate>{{ 'cancel' }}</button>
|
||||
<button class="btn btn-info" ng-click="ok()" ng-disabled="attempting" translate>{{ 'app.shared.buttons.confirm' }}</button>
|
||||
<button class="btn btn-default" ng-click="cancel()" translate>{{ 'app.shared.buttons.cancel' }}</button>
|
||||
</div>
|
||||
|
@ -9,7 +9,7 @@
|
||||
</div>
|
||||
<div class="col-xs-10 col-sm-10 col-md-8 b-l ">
|
||||
<section class="heading-title">
|
||||
<h1 translate>{{ 'add_an_event' }}</h1>
|
||||
<h1 translate>{{ 'app.admin.events_new.add_an_event' }}</h1>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
@ -18,7 +18,7 @@
|
||||
|
||||
<form role="form" name="eventForm" class="form-horizontal" novalidate action="{{ actionUrl }}" ng-upload="submited(content)" upload-options-enable-rails-csrf="true">
|
||||
|
||||
<ng-include src="'<%= asset_path 'events/_form.html' %>'"></ng-include>
|
||||
<ng-include src="'<%= asset_path "events/_form.html" %>'"></ng-include>
|
||||
|
||||
</form>
|
||||
|
||||
|
@ -17,7 +17,7 @@
|
||||
<div class="col-xs-12 col-sm-12 col-md-3 b-t hide-b-md" ng-if="isAuthorized('admin')">
|
||||
<section class="heading-actions wrapper">
|
||||
|
||||
<a ui-sref="app.admin.events_edit({id: event.id})" ng-if="isAuthorized('admin')" class="btn btn-lg btn-warning bg-white b-2x rounded m-t-xs text-u-c text-sm"><i class="fa fa-edit"></i> {{ 'edit' | translate }}</a>
|
||||
<a ui-sref="app.admin.events_edit({id: event.id})" ng-if="isAuthorized('admin')" class="btn btn-lg btn-warning bg-white b-2x rounded m-t-xs text-u-c text-sm"><i class="fa fa-edit"></i> {{ 'app.shared.buttons.edit' | translate }}</a>
|
||||
<a ng-click="deleteEvent(event)" ng-if="isAuthorized('admin')" class="btn btn-lg btn-danger b-2x rounded no-b m-t-xs"><i class="fa fa-trash-o"></i></a>
|
||||
|
||||
</section>
|
||||
@ -35,14 +35,14 @@
|
||||
<img ng-src="{{event.event_image}}" alt="{{event.title}}" class="img-responsive">
|
||||
</div>
|
||||
|
||||
<h3 translate>{{ 'event_description' }}</h3>
|
||||
<h3 translate>{{ 'app.public.events_show.event_description' }}</h3>
|
||||
<p ng-bind-html="event.description | toTrusted"></p>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="text-center" id="social-share">
|
||||
<a ng-href="{{shareOnFacebook()}}" target="_blank" class="btn btn-facebook btn-lg m-t"><i class="fa fa-facebook m-r"></i> {{ 'share_on_facebook' | translate }}</a>
|
||||
<a ng-href="{{shareOnTwitter()}}" target="_blank" class="btn btn-twitter btn-lg m-t"><i class="fa fa-twitter m-r"></i> {{ 'share_on_twitter' | translate }}</a>
|
||||
<a ng-href="{{shareOnFacebook()}}" target="_blank" class="btn btn-facebook btn-lg m-t"><i class="fa fa-facebook m-r"></i> {{ 'app.public.events_show.share_on_facebook' | translate }}</a>
|
||||
<a ng-href="{{shareOnTwitter()}}" target="_blank" class="btn btn-twitter btn-lg m-t"><i class="fa fa-twitter m-r"></i> {{ 'app.public.events_show.share_on_twitter' | translate }}</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@ -52,7 +52,7 @@
|
||||
<section class="widget panel b-a m" ng-if="event.event_files_attributes">
|
||||
<div class="panel-heading b-b">
|
||||
<span class="badge bg-warning pull-right">{{event.event_files_attributes.length}}</span>
|
||||
<h3 translate>{{ 'downloadable_documents' }}</h3>
|
||||
<h3 translate>{{ 'app.public.events_show.downloadable_documents' }}</h3>
|
||||
</div>
|
||||
|
||||
<ul class="widget-content list-group list-group-lg no-bg auto">
|
||||
@ -68,7 +68,7 @@
|
||||
|
||||
<section class="widget panel b-a m m-t-lg">
|
||||
<div class="panel-heading b-b small">
|
||||
<h3 translate>{{ 'information_and_booking' }}</h3>
|
||||
<h3 translate>{{ 'app.public.events_show.information_and_booking' }}</h3>
|
||||
</div>
|
||||
|
||||
<div class="panel-content wrapper">
|
||||
@ -79,15 +79,15 @@
|
||||
<dt ng-if="event.age_range"><i class="fa fa-users" aria-hidden="true"></i> {{event.age_range.name}}</dt>
|
||||
</dl>
|
||||
<dl class="text-sm">
|
||||
<dt><i class="fa fa-calendar" aria-hidden="true"></i> {{ 'dates' | translate }}</dt>
|
||||
<dd>{{ 'beginning' | translate }} <span class="text-u-l">{{event.start_date | amDateFormat:'L'}}</span><br>{{ 'ending' | translate }} <span class="text-u-l">{{event.end_date | amDateFormat:'L'}}</span></dd>
|
||||
<dt><i class="fa fa-clock-o"></i> {{ 'opening_hours' | translate }}</dt>
|
||||
<dd ng-if="event.all_day == 'true'"><span translate>{{ 'all_day' }}</span></dd>
|
||||
<dd ng-if="event.all_day == 'false'">{{ 'from_time' | translate }} <span class="text-u-l">{{event.start_date | amDateFormat:'LT'}}</span> {{ 'to_time' | translate }} <span class="text-u-l">{{event.end_date | amDateFormat:'LT'}}</span></dd>
|
||||
<dt><i class="fa fa-calendar" aria-hidden="true"></i> {{ 'app.public.events_show.dates' | translate }}</dt>
|
||||
<dd>{{ 'app.public.events_show.beginning' | translate }} <span class="text-u-l">{{event.start_date | amDateFormat:'L'}}</span><br>{{ 'app.public.events_show.ending' | translate }} <span class="text-u-l">{{event.end_date | amDateFormat:'L'}}</span></dd>
|
||||
<dt><i class="fa fa-clock-o"></i> {{ 'app.public.events_show.opening_hours' | translate }}</dt>
|
||||
<dd ng-if="event.all_day == 'true'"><span translate>{{ 'app.public.events_show.all_day' }}</span></dd>
|
||||
<dd ng-if="event.all_day == 'false'">{{ 'app.public.events_show.from_time' | translate }} <span class="text-u-l">{{event.start_date | amDateFormat:'LT'}}</span> {{ 'app.public.events_show.to_time' | translate }} <span class="text-u-l">{{event.end_date | amDateFormat:'LT'}}</span></dd>
|
||||
</dl>
|
||||
|
||||
<div class="text-sm" ng-if="event.amount">
|
||||
<div>{{ 'full_price_' | translate }} <span>{{ event.amount | currency}}</span></div>
|
||||
<div>{{ 'app.public.events_show.full_price_' | translate }} <span>{{ event.amount | currency}}</span></div>
|
||||
<div ng-repeat="price in event.prices" class="description-hover">
|
||||
<span uib-popover="{{getPriceCategoryConditions(price.category.id)}}" popover-trigger="mouseenter">
|
||||
{{price.category.name}} :
|
||||
@ -97,12 +97,12 @@
|
||||
</div>
|
||||
|
||||
<div class="text-sm m-b" ng-if="event.nb_total_places">
|
||||
<div ng-if="event.nb_free_places > 0">{{ 'tickets_still_availables' | translate }} <span class="font-sbold">{{event.nb_free_places}}</span></div>
|
||||
<div ng-if="event.nb_total_places > 0 && event.nb_free_places <= 0"><span class="badge font-sbold" translate>{{ 'sold_out' }}</span></div>
|
||||
<div ng-if="event.nb_total_places == -1"><span class="badge font-sbold" translate>{{ 'cancelled' }}</span></div>
|
||||
<div ng-if="event.nb_free_places > 0">{{ 'app.public.events_show.tickets_still_availables' | translate }} <span class="font-sbold">{{event.nb_free_places}}</span></div>
|
||||
<div ng-if="event.nb_total_places > 0 && event.nb_free_places <= 0"><span class="badge font-sbold" translate>{{ 'app.public.events_show.sold_out' }}</span></div>
|
||||
<div ng-if="event.nb_total_places == -1"><span class="badge font-sbold" translate>{{ 'app.public.events_show.cancelled' }}</span></div>
|
||||
</div>
|
||||
<div class="text-sm m-b" ng-if="!event.nb_total_places">
|
||||
<div><span class="badge font-sbold" translate>{{ 'free_entry' }}</span></div>
|
||||
<div><span class="badge font-sbold" translate>{{ 'app.public.events_show.free_entry' }}</span></div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -112,22 +112,22 @@
|
||||
<div class="panel panel-default bg-light m-n text-sm">
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<label class="col-sm-6 control-label">{{ 'full_price_' | translate }} <span class="text-blue">{{event.amount | currency}}</span></label>
|
||||
<label class="col-sm-6 control-label">{{ 'app.public.events_show.full_price_' | translate }} <span class="text-blue">{{event.amount | currency}}</span></label>
|
||||
<div class="col-sm-6">
|
||||
<select ng-model="reserve.nbReservePlaces" ng-change="changeNbPlaces()" ng-options="i for i in reserve.nbPlaces.normal">
|
||||
</select> {{ 'ticket' | translate:{NUMBER:reserve.nbReservePlaces} }}
|
||||
</select> {{ 'app.public.events_show.ticket' | translate:{NUMBER:reserve.nbReservePlaces} }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" ng-repeat="price in event.prices">
|
||||
<label class="col-sm-6 control-label">{{price.category.name}} : <span class="text-blue">{{price.amount | currency}}</span></label>
|
||||
<div class="col-sm-6">
|
||||
<select ng-model="reserve.tickets[price.id]" ng-change="changeNbPlaces()" ng-options="i for i in reserve.nbPlaces[price.id]">
|
||||
</select> {{ 'ticket' | translate:{NUMBER:reserve.tickets[price.id]} }}
|
||||
</select> {{ 'app.public.events_show.ticket' | translate:{NUMBER:reserve.tickets[price.id]} }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-show="currentUser.role == 'admin'" class="m-t">
|
||||
<label for="offerSlot" class="control-label m-r" translate>{{ 'make_a_gift_of_this_reservation' }}</label>
|
||||
<label for="offerSlot" class="control-label m-r" translate>{{ 'app.public.events_show.make_a_gift_of_this_reservation' }}</label>
|
||||
<input bs-switch
|
||||
ng-model="event.offered"
|
||||
id="offerSlot"
|
||||
@ -145,49 +145,49 @@
|
||||
</div>
|
||||
|
||||
<div class="clear">
|
||||
<a class="pull-right m-t-xs text-u-l ng-scope" href="#" ng-click="cancelReserve($event)" ng-show="reserve.toReserve" translate>{{ 'cancel' }}</a>
|
||||
<a class="pull-right m-t-xs text-u-l ng-scope" href="#" ng-click="cancelReserve($event)" ng-show="reserve.toReserve" translate>{{ 'app.shared.buttons.cancel' }}</a>
|
||||
</div>
|
||||
|
||||
<div ng-if="reserveSuccess" class="alert alert-success">{{ 'thank_you_your_payment_has_been_successfully_registered' | translate }}<br>
|
||||
{{ 'you_can_find_your_reservation_s_details_on_your_' | translate }} <a ui-sref="app.logged.dashboard.invoices" translate>{{ 'dashboard' }}</a>
|
||||
<div ng-if="reserveSuccess" class="alert alert-success">{{ 'app.public.events_show.thank_you_your_payment_has_been_successfully_registered' | translate }}<br>
|
||||
{{ 'app.public.events_show.you_can_find_your_reservation_s_details_on_your_' | translate }} <a ui-sref="app.logged.dashboard.invoices" translate>{{ 'app.public.events_show.dashboard' }}</a>
|
||||
</div>
|
||||
<div class="m-t-sm" ng-if="reservations && !reserve.toReserve" ng-repeat="reservation in reservations">
|
||||
<div ng-hide="isCancelled(reservation)" class="well well-warning">
|
||||
<div class="font-sbold text-u-c text-sm">{{ 'you_booked_DATE' | translate:{DATE:(reservation.created_at | amDateFormat:'L LT')} }}</div>
|
||||
<div class="font-sbold text-sm" ng-if="reservation.nb_reserve_places > 0">{{ 'full_price_' | translate }} {{reservation.nb_reserve_places}} {{ 'ticket' | translate:{NUMBER:reservation.nb_reserve_places} }}</div>
|
||||
<div class="font-sbold text-u-c text-sm">{{ 'app.public.events_show.you_booked_DATE' | translate:{DATE:(reservation.created_at | amDateFormat:'L LT')} }}</div>
|
||||
<div class="font-sbold text-sm" ng-if="reservation.nb_reserve_places > 0">{{ 'app.public.events_show.full_price_' | translate }} {{reservation.nb_reserve_places}} {{ 'app.public.events_show.ticket' | translate:{NUMBER:reservation.nb_reserve_places} }}</div>
|
||||
<div class="font-sbold text-sm" ng-repeat="ticket in reservation.tickets">
|
||||
{{ticket.event_price_category.price_category.name}} : {{ticket.booked}} {{ 'ticket' | translate:{NUMBER:ticket.booked} }}
|
||||
{{ticket.event_price_category.price_category.name}} : {{ticket.booked}} {{ 'app.public.events_show.ticket' | translate:{NUMBER:ticket.booked} }}
|
||||
</div>
|
||||
<div class="clear" ng-if="event.recurrence_events.length > 0 && reservationCanModify(reservation)">
|
||||
<a class="pull-right m-t-xs text-u-l pointer" ng-click="modifyReservation(reservation, $event)" translate>{{ 'change' }}</a>
|
||||
<a class="pull-right m-t-xs text-u-l pointer" ng-click="modifyReservation(reservation, $event)" translate>{{ 'app.shared.buttons.change' }}</a>
|
||||
</div>
|
||||
<div class="clear" ng-if="reservationCanCancel(reservation)">
|
||||
<a class="pull-right m-t-xs text-u-l pointer" ng-click="cancelReservation(reservation, $event)" translate>{{ 'cancel' }}</a>
|
||||
<a class="pull-right m-t-xs text-u-l pointer" ng-click="cancelReservation(reservation, $event)" translate>{{ 'app.shared.buttons.cancel' }}</a>
|
||||
</div>
|
||||
</div>
|
||||
<div ng-show="isCancelled(reservation)" class="well well-disabled">
|
||||
<div class="text-italic text-sm">{{ 'canceled_reservation_SEATS' | translate:{SEATS:reservation.total_booked_seats} }}</div>
|
||||
<div class="text-italic text-sm">{{ 'app.public.events_show.canceled_reservation_SEATS' | translate:{SEATS:reservation.total_booked_seats} }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div ng-show="now.isSameOrAfter(event.end_date)" class="alert alert-info">
|
||||
<span translate>{{ 'event_is_over' }}</span>
|
||||
<span ng-show="reservations.length > 0" translate>{{ 'thanks_for_coming' }}</span>
|
||||
<a ui-sref="app.public.events_list" translate>{{ 'view_event_list' }}</a>
|
||||
<span translate>{{ 'app.public.events_show.event_is_over' }}</span>
|
||||
<span ng-show="reservations.length > 0" translate>{{ 'app.public.events_show.thanks_for_coming' }}</span>
|
||||
<a ui-sref="app.public.events_list" translate>{{ 'app.public.events_show.view_event_list' }}</a>
|
||||
</div>
|
||||
<button class="btn btn-warning-full rounded btn-block text-sm" ng-click="reserveEvent()" ng-show="event.nb_free_places > 0 && !reserve.toReserve && now.isBefore(event.end_date)">{{ 'book' | translate }}</button>
|
||||
<button class="btn btn-warning-full rounded btn-block text-sm" ng-click="reserveEvent()" ng-show="event.nb_free_places > 0 && !reserve.toReserve && now.isBefore(event.end_date)">{{ 'app.public.events_show.book' | translate }}</button>
|
||||
|
||||
<coupon show="reserve.totalSeats > 0 && ctrl.member" coupon="coupon.applied" total="reserve.totalNoCoupon" user-id="{{ctrl.member.id}}"></coupon>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel-footer no-padder ng-scope" ng-if="event.amount">
|
||||
<button class="btn btn-valid btn-info btn-block p-l btn-lg text-u-c r-b text-base" ng-click="payEvent()" ng-if="reserve.totalSeats > 0">{{ 'confirm_and_pay' | translate }} {{reserve.amountTotal | currency}}</button>
|
||||
<button class="btn btn-valid btn-info btn-block p-l btn-lg text-u-c r-b text-base" ng-click="payEvent()" ng-if="reserve.totalSeats > 0">{{ 'app.public.events_show.confirm_and_pay' | translate }} {{reserve.amountTotal | currency}}</button>
|
||||
</div>
|
||||
|
||||
<div class="panel-footer no-padder ng-scope" ng-if="event.amount == 0">
|
||||
<button class="btn btn-valid btn-info btn-block p-l btn-lg text-u-c r-b text-base" ng-click="validReserveEvent()" ng-if="reserve.totalSeats > 0" ng-disabled="attempting">{{ 'confirm' | translate }}</button>
|
||||
<button class="btn btn-valid btn-info btn-block p-l btn-lg text-u-c r-b text-base" ng-click="validReserveEvent()" ng-if="reserve.totalSeats > 0" ng-disabled="attempting">{{ 'app.shared.buttons.confirm' | translate }}</button>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
@ -15,21 +15,21 @@
|
||||
<uib-alert ng-repeat="alert in alerts" type="{{alert.type}}" close="closeAlert($index)">{{alert.msg}}</uib-alert>
|
||||
|
||||
<div class="form-group m-b-lg" ng-class="{'has-error': machineForm['machine[name]'].$dirty && machineForm['machine[name]'].$invalid}">
|
||||
<label for="name" class="col-sm-2 control-label">{{ 'machine_form.name' | translate }} *</label>
|
||||
<label for="name" class="col-sm-2 control-label">{{ 'app.shared.machine.name' | translate }} *</label>
|
||||
<div class="col-sm-4">
|
||||
<input ng-model="machine.name"
|
||||
type="text"
|
||||
name="machine[name]"
|
||||
class="form-control"
|
||||
id="machine_name"
|
||||
placeholder="{{'machine_form.name' | translate}}"
|
||||
placeholder="{{'app.shared.machine.name' | translate}}"
|
||||
required>
|
||||
<span class="help-block" ng-show="machineForm['machine[name]'].$dirty && machineForm['machine[name]'].$error.required" translate>{{ 'machine_form.name_is_required' }}</span>
|
||||
<span class="help-block" ng-show="machineForm['machine[name]'].$dirty && machineForm['machine[name]'].$error.required" translate>{{ 'app.shared.machine.name_is_required' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group m-b-lg">
|
||||
<label for="machine_image" class="col-sm-2 control-label">{{ 'machine_form.illustration' | translate }} *</label>
|
||||
<label for="machine_image" class="col-sm-2 control-label">{{ 'app.shared.machine.illustration' | translate }} *</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="fileinput" data-provides="fileinput" ng-class="fileinputClass(machine.machine_image)">
|
||||
<div class="fileinput-new thumbnail" style="width: 334px; height: 250px;">
|
||||
@ -40,8 +40,8 @@
|
||||
</div>
|
||||
<div>
|
||||
<span class="btn btn-default btn-file">
|
||||
<span class="fileinput-new">{{ 'machine_form.add_an_illustration' | translate }} <i class="fa fa-upload fa-fw"></i></span>
|
||||
<span class="fileinput-exists" translate>{{ 'change' }}</span>
|
||||
<span class="fileinput-new">{{ 'app.shared.machine.add_an_illustration' | translate }} <i class="fa fa-upload fa-fw"></i></span>
|
||||
<span class="fileinput-exists" translate>{{ 'app.shared.buttons.change' }}</span>
|
||||
<input type="file"
|
||||
ng-model="machine.machine_image"
|
||||
name="machine[machine_image_attributes][attachment]"
|
||||
@ -49,15 +49,14 @@
|
||||
required
|
||||
bs-jasny-fileinput>
|
||||
</span>
|
||||
<a href="#" class="btn btn-danger fileinput-exists" data-dismiss="fileinput" translate>{{ 'delete' }}</a>
|
||||
<a href="#" class="btn btn-danger fileinput-exists" data-dismiss="fileinput" translate>{{ 'app.shared.buttons.delete' }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group m-b-xl" ng-class="{'has-error': machineForm['machine[description]'].$dirty && machineForm['machine[description]'].$invalid}">
|
||||
<label for="description" class="col-sm-2 control-label">{{ 'machine_form.description' | translate }} *</label>
|
||||
<label for="description" class="col-sm-2 control-label">{{ 'app.shared.machine.description' | translate }} *</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="hidden"
|
||||
name="machine[description]"
|
||||
@ -69,12 +68,12 @@
|
||||
name="machine[description]"
|
||||
required>
|
||||
</summernote>
|
||||
<span class="help-block" ng-show="machineForm['machine[description]'].$dirty && machineForm['machine[description]'].$error.required" translate>{{ 'machine_form.description_is_required' }}</span>
|
||||
<span class="help-block" ng-show="machineForm['machine[description]'].$dirty && machineForm['machine[description]'].$error.required" translate>{{ 'app.shared.machine.description_is_required' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group m-b-xl" ng-class="{'has-error': machineForm['machine[spec]'].$dirty && machineForm['machine[spec]'].$invalid}">
|
||||
<label for="spec" class="col-sm-2 control-label">{{ 'machine_form.technical_specifications' | translate }} *</label>
|
||||
<label for="spec" class="col-sm-2 control-label">{{ 'app.shared.machine.technical_specifications' | translate }} *</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="hidden"
|
||||
name="machine[spec]"
|
||||
@ -86,12 +85,12 @@
|
||||
name="machine[spec]"
|
||||
required>
|
||||
</summernote>
|
||||
<span class="help-block" ng-show="machineForm['machine[spec]'].$dirty && machineForm['machine[spec]'].$error.required" translate>{{ 'machine_form.technical_specifications_are_required' }}</span>
|
||||
<span class="help-block" ng-show="machineForm['machine[spec]'].$dirty && machineForm['machine[spec]'].$error.required" translate>{{ 'app.shared.machine.technical_specifications_are_required' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group m-b-xl">
|
||||
<label class="col-sm-2 control-label" translate>{{ 'machine_form.attached_files_pdf' }}</label>
|
||||
<label class="col-sm-2 control-label" translate>{{ 'app.shared.machine.attached_files_pdf' }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div ng-repeat="file in machine.machine_files_attributes" ng-show="!file._destroy">
|
||||
<input type="hidden" ng-model="file.id" name="machine[machine_files_attributes][][id]" ng-value="file.id" />
|
||||
@ -101,19 +100,19 @@
|
||||
<div class="form-control" data-trigger="fileinput">
|
||||
<i class="glyphicon glyphicon-file fileinput-exists"></i> <span class="fileinput-filename">{{file.attachment}}</span>
|
||||
</div>
|
||||
<span class="input-group-addon btn btn-default btn-file"><span class="fileinput-new" translate>{{ 'machine_form.attach_a_file' }}</span>
|
||||
<span class="fileinput-exists" translate>{{ 'change' }}</span><input type="file" name="machine[machine_files_attributes][][attachment]" accept=".pdf"></span>
|
||||
<span class="input-group-addon btn btn-default btn-file"><span class="fileinput-new" translate>{{ 'app.shared.machine.attach_a_file' }}</span>
|
||||
<span class="fileinput-exists" translate>{{ 'app.shared.buttons.change' }}</span><input type="file" name="machine[machine_files_attributes][][attachment]" accept=".pdf"></span>
|
||||
<a class="input-group-addon btn btn-danger fileinput-exists" data-dismiss="fileinput" ng-click="deleteFile(file)"><i class="fa fa-trash-o"></i></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<a class="btn btn-default" ng-click="addFile()" role="button"> {{ 'machine_form.add_an_attachment' | translate }} <i class="fa fa-file-o fa-fw"></i></a>
|
||||
<a class="btn btn-default" ng-click="addFile()" role="button"> {{ 'app.shared.machine.add_an_attachment' | translate }} <i class="fa fa-file-o fa-fw"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="machine[disabled]" class="control-label col-sm-2" translate>
|
||||
{{ 'machine_form.disable_machine' }}
|
||||
{{ 'app.shared.machine.disable_machine' }}
|
||||
</label>
|
||||
<div class="col-sm-10">
|
||||
<input bs-switch
|
||||
@ -121,8 +120,8 @@
|
||||
name="machine[disabled]"
|
||||
type="checkbox"
|
||||
class="form-control"
|
||||
switch-on-text="{{ 'yes' | translate }}"
|
||||
switch-off-text="{{ 'no' | translate }}"
|
||||
switch-on-text="{{ 'app.shared.buttons.yes' | translate }}"
|
||||
switch-off-text="{{ 'app.shared.buttons.no' | translate }}"
|
||||
switch-animate="true"/>
|
||||
<input type="hidden" name="machine[disabled]" value="{{machine.disabled}}">
|
||||
</div>
|
||||
@ -132,7 +131,7 @@
|
||||
|
||||
<div class="panel-footer no-padder">
|
||||
<input type="submit"
|
||||
value="{{ 'machine_form.validate_your_machine' | translate }}"
|
||||
value="{{ 'app.shared.machine.validate_your_machine' | translate }}"
|
||||
class="r-b btn-valid btn btn-warning btn-block p-lg btn-lg text-u-c"
|
||||
ng-disabled="machineForm.$invalid"/>
|
||||
</div>
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
<div class="col-xs-12 col-sm-12 col-md-3 b-t hide-b-md">
|
||||
<section class="heading-actions wrapper">
|
||||
<div class="btn btn-lg btn-block btn-default rounded m-t-xs" ng-click="cancel()" translate>{{ 'cancel' }}</div>
|
||||
<div class="btn btn-lg btn-block btn-default rounded m-t-xs" ng-click="cancel()" translate>{{ 'app.shared.buttons.cancel' }}</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
@ -24,7 +24,7 @@
|
||||
|
||||
<div class="row no-gutter">
|
||||
<div class="col-sm-12 col-md-12 col-lg-9 b-r-lg nopadding">
|
||||
<ng-include src="'<%= asset_path 'machines/_form.html' %>'"></ng-include>
|
||||
<ng-include src="'<%= asset_path "machines/_form.html" %>'"></ng-include>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -7,7 +7,7 @@
|
||||
</div>
|
||||
<div class="col-md-8 b-l b-r">
|
||||
<section class="heading-title">
|
||||
<h1 translate>{{ 'declare_a_new_machine' }}</h1>
|
||||
<h1 translate>{{ 'app.admin.machines_new.declare_a_new_machine' }}</h1>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
@ -22,14 +22,10 @@
|
||||
<div class="col-md-9 b-r nopadding">
|
||||
|
||||
<div class="m-lg alert alert-warning" role="alert">
|
||||
{{ 'watch_out_when_creating_a_new_machine_its_prices_are_initialized_at_0_for_all_subscriptions' | translate}}
|
||||
{{ 'consider_changing_them_before_creating_any_reservation_slot' | translate }}
|
||||
{{ 'app.admin.machines_new.watch_out_when_creating_a_new_machine_its_prices_are_initialized_at_0_for_all_subscriptions' | translate}}
|
||||
{{ 'app.admin.machines_new.consider_changing_them_before_creating_any_reservation_slot' | translate }}
|
||||
</div>
|
||||
|
||||
<ng-include src="'<%= asset_path 'machines/_form.html' %>'"></ng-include>
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
<!-- <button class="btn">TEST</button> -->
|
||||
<ng-include src="'<%= asset_path "machines/_form.html" %>'"></ng-include>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -10,9 +10,9 @@
|
||||
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p class="text-center font-sbold" translate translate-values="{MACHINE:machine.name, TRAINING: humanizeTrainings()}">{{ 'to_book_the_MACHINE_you_must_have_completed_the_TRAINING' }}</p>
|
||||
<p class="text-center"><button ng-click="ok()" class="btn btn-warning-full rounded width-70" translate>{{ 'register_for_the_training' }}</button></p>
|
||||
<p class="text-center font-sbold" translate translate-values="{MACHINE:machine.name, TRAINING: humanizeTrainings()}">{{ 'app.shared.request_training_modal.to_book_the_MACHINE_you_must_have_completed_the_TRAINING' }}</p>
|
||||
<p class="text-center"><button ng-click="ok()" class="btn btn-warning-full rounded width-70" translate>{{ 'app.shared.request_training_modal.register_for_the_training' }}</button></p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<p class="text-center">{{ 'i_dont_want_to_register_now' | translate }} <br> <a class="text-u-l" href="#" ng-click="cancel($event)" translate>{{ 'close' }}</a></p>
|
||||
<p class="text-center">{{ 'app.shared.request_training_modal.i_dont_want_to_register_now' | translate }} <br> <a class="text-u-l" href="#" ng-click="cancel($event)" translate>{{ 'app.shared.buttons.close' }}</a></p>
|
||||
</div>
|
||||
|
@ -9,7 +9,7 @@
|
||||
</div>
|
||||
<div class="col-xs-10 col-sm-10 col-md-8 b-l">
|
||||
<section class="heading-title">
|
||||
<h1>{{ 'machine_planning' | translate }} : {{machine.name}}</h1>
|
||||
<h1>{{ 'app.logged.machines_reserve.machine_planning' | translate }} : {{machine.name}}</h1>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
@ -19,7 +19,7 @@
|
||||
<div class="row no-gutter machine-reserve">
|
||||
<div class="col-sm-12 col-md-12 col-lg-9">
|
||||
<div ui-calendar="calendarConfig" ng-model="eventSources" calendar="calendar" class="wrapper-lg" ng-show="!plansAreShown"></div>
|
||||
<ng-include ng-if="!fablabWithoutPlans" src="'<%= asset_path 'plans/_plan.html' %>'"></ng-include>
|
||||
<ng-include ng-if="!fablabWithoutPlans" src="'<%= asset_path "plans/_plan.html" %>'"></ng-include>
|
||||
</div>
|
||||
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
<div class="modal-header">
|
||||
<h1 translate>{{ 'machine_reservation' }}</h1>
|
||||
<h1 translate>{{ 'app.shared.training_reservation_modal.machine_reservation' }}</h1>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p translate> {{ 'you_must_wait_for_your_training_is_being_validated_by_the_fablab_team_to_book_this_machine' }}</p>
|
||||
<p>{{ 'your_training_will_occur_' | translate }} <span class="sbold">{{machine.current_user_training_reservation.slots[0].start_at | amDateFormat: 'LL'}} : {{machine.current_user_training_reservation.slots[0].start_at | amDateFormat:'LT'}} - {{machine.current_user_training_reservation.slots[0].end_at | amDateFormat:'LT'}}</span></p>
|
||||
<p translate> {{ 'app.shared.training_reservation_modal.you_must_wait_for_your_training_is_being_validated_by_the_fablab_team_to_book_this_machine' }}</p>
|
||||
<p>{{ 'app.shared.training_reservation_modal.your_training_will_occur_' | translate }} <span class="sbold">{{machine.current_user_training_reservation.slots[0].start_at | amDateFormat: 'LL'}} : {{machine.current_user_training_reservation.slots[0].start_at | amDateFormat:'LT'}} - {{machine.current_user_training_reservation.slots[0].end_at | amDateFormat:'LT'}}</span></p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-warning" ng-click="cancel()" translate>{{ 'close' }}</button>
|
||||
<button class="btn btn-warning" ng-click="cancel()" translate>{{ 'app.shared.buttons.close' }}</button>
|
||||
</div>
|
||||
|
@ -1,56 +1,56 @@
|
||||
<div class="widget panel b-a m m-t-lg" ng-if="user && !events.modifiable && !events.moved">
|
||||
<div class="panel-heading b-b small">
|
||||
<h3 translate>{{ 'cart.summary' }}</h3>
|
||||
<h3 translate>{{ 'app.shared.cart.summary' }}</h3>
|
||||
</div>
|
||||
|
||||
<div class="widget-content no-bg auto wrapper" ng-show="events.reserved.length == 0 && (!events.paid || events.paid.length == 0)">
|
||||
<p class="font-felt fleche-left text-lg"><%= image_tag('fleche-left.png', class: 'fleche-left visible-lg') %>
|
||||
{{ 'cart.select_one_or_more_slots_in_the_calendar' | translate:{SINGLE:limitToOneSlot} }}</p>
|
||||
{{ 'app.shared.cart.select_one_or_more_slots_in_the_calendar' | translate:{SINGLE:limitToOneSlot} }}</p>
|
||||
</div>
|
||||
|
||||
<div class="widget-content no-bg auto wrapper" ng-if="events.reserved.length > 0">
|
||||
|
||||
<div class="font-sbold m-b-sm " translate>{{ 'cart.you_ve_just_selected_the_slot' }}</div>
|
||||
<div class="font-sbold m-b-sm " translate>{{ 'app.shared.cart.you_ve_just_selected_the_slot' }}</div>
|
||||
|
||||
<div class="panel panel-default bg-light" ng-repeat="slot in events.reserved">
|
||||
<div class="panel-body">
|
||||
<div class="font-sbold text-u-c">{{ 'cart.datetime_to_time' | translate:{START_DATETIME:(slot.start | amDateFormat:'LLLL'), END_TIME:(slot.end | amDateFormat:'LT') } }}</div>
|
||||
<div class="text-base">{{ 'cart.cost_of_TYPE' | translate:{TYPE:reservableType} }} <span ng-class="{'text-blue': !slot.promo, 'red': slot.promo}">{{slot.price | currency}}</span></div>
|
||||
<div class="font-sbold text-u-c">{{ 'app.shared.cart.datetime_to_time' | translate:{START_DATETIME:(slot.start | amDateFormat:'LLLL'), END_TIME:(slot.end | amDateFormat:'LT') } }}</div>
|
||||
<div class="text-base">{{ 'app.shared.cart.cost_of_TYPE' | translate:{TYPE:reservableType} }} <span ng-class="{'text-blue': !slot.promo, 'red': slot.promo}">{{slot.price | currency}}</span></div>
|
||||
<div ng-show="isAdmin()" class="m-t">
|
||||
<label for="offerSlot" class="control-label m-r" translate>{{ 'cart.offer_this_slot' }}</label>
|
||||
<label for="offerSlot" class="control-label m-r" translate>{{ 'app.shared.cart.offer_this_slot' }}</label>
|
||||
<input bs-switch
|
||||
ng-model="slot.offered"
|
||||
id="offerSlot"
|
||||
type="checkbox"
|
||||
class="form-control"
|
||||
switch-on-text="{{ 'yes' | translate}}"
|
||||
switch-off-text="{{ 'no' | translate}}"
|
||||
switch-on-text="{{ 'app.shared.buttons.yes' | translate}}"
|
||||
switch-off-text="{{ 'app.shared.buttons.no' | translate}}"
|
||||
switch-animate="true"
|
||||
switch-readonly="{{slot.isValid}}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<button class="btn btn-valid btn-warning btn-block text-u-c r-b" ng-click="validateSlot(slot)" ng-if="!slot.isValid" translate>{{ 'cart.confirm_this_slot' }}</button>
|
||||
<button class="btn btn-valid btn-warning btn-block text-u-c r-b" ng-click="validateSlot(slot)" ng-if="!slot.isValid" translate>{{ 'app.shared.cart.confirm_this_slot' }}</button>
|
||||
</div>
|
||||
|
||||
<div class="clear"><a class="pull-right m-b-sm text-u-l ng-scope m-r-sm pointer" ng-click="removeSlot(slot, $index, $event)" ng-if="slot.isValid" translate>{{ 'cart.remove_this_slot' }}</a></div>
|
||||
<div class="clear"><a class="pull-right m-b-sm text-u-l ng-scope m-r-sm pointer" ng-click="removeSlot(slot, $index, $event)" ng-if="slot.isValid" translate>{{ 'app.shared.cart.remove_this_slot' }}</a></div>
|
||||
</div>
|
||||
|
||||
<coupon show="isSlotsValid() && (!modePlans || selectedPlan)" coupon="coupon.applied" total="totalNoCoupon" user-id="{{user.id}}"></coupon>
|
||||
|
||||
<div ng-hide="fablabWithoutPlans">
|
||||
<div ng-if="isSlotsValid() && !user.subscribed_plan" ng-show="!modePlans">
|
||||
<p class="font-sbold text-base l-h-2x" translate>{{ 'cart.to_benefit_from_attractive_prices' }}</p>
|
||||
<div><button class="btn btn-warning-full rounded btn-block text-xs" ng-click="showPlans()" translate>{{ 'cart.view_our_subscriptions' }}</button></div>
|
||||
<p class="font-bold text-base text-u-c text-center m-b-xs" translate>{{ 'cart.or' }}</p>
|
||||
<p class="font-sbold text-base l-h-2x" translate>{{ 'app.shared.cart.to_benefit_from_attractive_prices' }}</p>
|
||||
<div><button class="btn btn-warning-full rounded btn-block text-xs" ng-click="showPlans()" translate>{{ 'app.shared.cart.view_our_subscriptions' }}</button></div>
|
||||
<p class="font-bold text-base text-u-c text-center m-b-xs" translate>{{ 'app.shared.cart.or' }}</p>
|
||||
</div>
|
||||
|
||||
<div ng-if="selectedPlan">
|
||||
<div class="m-t-md m-b-sm text-base">{{ 'cart.you_ve_just_selected_a_' | translate }} <br> <span class="font-sbold" translate>{{ 'cart._subscription' }}</span> :</div>
|
||||
<div class="m-t-md m-b-sm text-base">{{ 'app.shared.cart.you_ve_just_selected_a_' | translate }} <br> <span class="font-sbold" translate>{{ 'app.shared.cart._subscription' }}</span> :</div>
|
||||
<div class="panel panel-default bg-light m-n">
|
||||
<div class="panel-body m-b-md">
|
||||
<div class="font-sbold text-u-c">{{selectedPlan | humanReadablePlanName }}</div>
|
||||
<div class="text-base">{{ 'cart.cost_of_the_subscription' | translate }} <span class="text-blue">{{selectedPlan.amount | currency}}</span></div>
|
||||
<div class="text-base">{{ 'app.shared.cart.cost_of_the_subscription' | translate }} <span class="text-blue">{{selectedPlan.amount | currency}}</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -59,29 +59,29 @@
|
||||
</div>
|
||||
|
||||
<div class="panel-footer no-padder" ng-if="events.reserved.length > 0">
|
||||
<button class="btn btn-valid btn-info btn-block p-l btn-lg text-u-c r-b text-base" ng-click="payCart()" ng-if="isSlotsValid() && (!modePlans || selectedPlan)">{{ 'cart.confirm_and_pay' | translate }} {{amountTotal | currency}}</button>
|
||||
<button class="btn btn-valid btn-info btn-block p-l btn-lg text-u-c r-b text-base" ng-click="payCart()" ng-if="isSlotsValid() && (!modePlans || selectedPlan)">{{ 'app.shared.cart.confirm_and_pay' | translate }} {{amountTotal | currency}}</button>
|
||||
</div>
|
||||
|
||||
<div class="widget-content no-bg auto wrapper" ng-show="events.paid && events.paid.length > 0">
|
||||
{{ 'cart.you_have_settled_the_following_TYPE' | translate:{TYPE:reservableType} }} <strong>{{reservableName}}</strong>:
|
||||
{{ 'app.shared.cart.you_have_settled_the_following_TYPE' | translate:{TYPE:reservableType} }} <strong>{{reservableName}}</strong>:
|
||||
|
||||
<div class="well well-warning m-t-sm" ng-repeat="paidSlot in events.paid">
|
||||
<i class="font-sbold text-u-c">{{ 'cart.datetime_to_time' | translate:{START_DATETIME:(paidSlot.start | amDateFormat:'LLLL'), END_TIME:(paidSlot.end | amDateFormat:'LT') } }}</i>
|
||||
<div class="font-sbold">{{ 'cart.cost_of_TYPE' | translate:{TYPE:reservableType} }} {{paidSlot.price | currency}}</div>
|
||||
<i class="font-sbold text-u-c">{{ 'app.shared.cart.datetime_to_time' | translate:{START_DATETIME:(paidSlot.start | amDateFormat:'LLLL'), END_TIME:(paidSlot.end | amDateFormat:'LT') } }}</i>
|
||||
<div class="font-sbold">{{ 'app.shared.cart.cost_of_TYPE' | translate:{TYPE:reservableType} }} {{paidSlot.price | currency}}</div>
|
||||
</div>
|
||||
|
||||
<div ng-if="selectedPlan">
|
||||
<div class="m-t-md m-b-sm text-base">{{ 'cart.you_have_settled_a_' | translate }} <br> <span class="font-sbold" translate>{{ 'cart._subscription' }}</span> :</div>
|
||||
<div class="m-t-md m-b-sm text-base">{{ 'app.shared.cart.you_have_settled_a_' | translate }} <br> <span class="font-sbold" translate>{{ 'app.shared.cart._subscription' }}</span> :</div>
|
||||
<div class="well well-warning m-t-sm">
|
||||
<i class="font-sbold text-u-c">{{selectedPlan | humanReadablePlanName }}</i>
|
||||
<div class="font-sbold">{{ 'cart.cost_of_the_subscription' | translate }} {{selectedPlan.amount | currency}}</div>
|
||||
<div class="font-sbold">{{ 'app.shared.cart.cost_of_the_subscription' | translate }} {{selectedPlan.amount | currency}}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="m-t-md font-sbold">{{ 'cart.total_' | translate }} {{amountPaid | currency}}</div>
|
||||
<div class="m-t-md font-sbold">{{ 'app.shared.cart.total_' | translate }} {{amountPaid | currency}}</div>
|
||||
|
||||
<div class="alert alert-success" ng-if="user.subscribed_plan">{{ 'cart.thank_you_your_payment_has_been_successfully_registered' | translate }}<br>
|
||||
{{ 'cart.your_invoice_will_be_available_soon_from_your_' | translate }} <a ui-sref="app.logged.dashboard.invoices" translate>{{ 'cart.dashboard' }}</a>
|
||||
<div class="alert alert-success" ng-if="user.subscribed_plan">{{ 'app.shared.cart.thank_you_your_payment_has_been_successfully_registered' | translate }}<br>
|
||||
{{ 'app.shared.cart.your_invoice_will_be_available_soon_from_your_' | translate }} <a ui-sref="app.logged.dashboard.invoices" translate>{{ 'app.shared.cart.dashboard' }}</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@ -90,48 +90,48 @@
|
||||
|
||||
<div class="widget panel b-a m m-t-lg" ng-if="events.modifiable || events.moved">
|
||||
<div class="panel-heading b-b small">
|
||||
<h3 translate>{{ 'cart.summary' }}</h3>
|
||||
<h3 translate>{{ 'app.shared.cart.summary' }}</h3>
|
||||
</div>
|
||||
<div class="widget-content no-bg auto wrapper" ng-if="events.modifiable">
|
||||
<div class="font-sbold m-b-sm " translate>{{ 'cart.i_want_to_change_the_following_reservation' }}</div>
|
||||
<div class="font-sbold m-b-sm " translate>{{ 'app.shared.cart.i_want_to_change_the_following_reservation' }}</div>
|
||||
|
||||
<div class="panel panel-warning bg-yellow">
|
||||
<div class="panel-body">
|
||||
<div class="font-sbold text-u-c">{{ 'cart.datetime_to_time' | translate:{START_DATETIME:(events.modifiable.start | amDateFormat:'LLLL'), END_TIME:(events.modifiable.end | amDateFormat:'LT') } }}</div>
|
||||
<div class="font-sbold text-u-c">{{ 'app.shared.cart.datetime_to_time' | translate:{START_DATETIME:(events.modifiable.start | amDateFormat:'LLLL'), END_TIME:(events.modifiable.end | amDateFormat:'LT') } }}</div>
|
||||
</div>
|
||||
<div class="clear"><a class="pull-right m-b-sm text-u-l ng-scope m-r-sm" href="#" ng-click="cancelModifySlot($event)" translate>{{ 'cart.cancel_my_modification' }}</a></div>
|
||||
<div class="clear"><a class="pull-right m-b-sm text-u-l ng-scope m-r-sm" href="#" ng-click="cancelModifySlot($event)" translate>{{ 'app.shared.cart.cancel_my_modification' }}</a></div>
|
||||
</div>
|
||||
|
||||
<div class="widget-content no-bg">
|
||||
<p class="font-felt fleche-left text-lg"><%= image_tag('fleche-left.png', class: 'fleche-left visible-lg') %>
|
||||
{{ 'cart.select_a_new_slot_in_the_calendar' | translate }}</p>
|
||||
{{ 'app.shared.cart.select_a_new_slot_in_the_calendar' | translate }}</p>
|
||||
</div>
|
||||
|
||||
<div class="panel panel-info bg-info text-white" ng-if="events.placable">
|
||||
<div class="panel-body">
|
||||
<div class="font-sbold text-u-c">{{ 'cart.datetime_to_time' | translate:{START_DATETIME:(events.placable.start | amDateFormat:'LLLL'), END_TIME:(events.placable.end | amDateFormat:'LT') } }}</div>
|
||||
<div class="font-sbold text-u-c">{{ 'app.shared.cart.datetime_to_time' | translate:{START_DATETIME:(events.placable.start | amDateFormat:'LLLL'), END_TIME:(events.placable.end | amDateFormat:'LT') } }}</div>
|
||||
</div>
|
||||
<div class="clear"><a class="pull-right m-b-sm text-u-l ng-scope m-r-sm" href="#" ng-click="removeSlotToPlace($event)" translate>{{ 'cart.cancel_my_selection' }}</a></div>
|
||||
<div class="clear"><a class="pull-right m-b-sm text-u-l ng-scope m-r-sm" href="#" ng-click="removeSlotToPlace($event)" translate>{{ 'app.shared.cart.cancel_my_selection' }}</a></div>
|
||||
</div>
|
||||
|
||||
<div ng-if="events.placable && (events.modifiable.tags.length > 0 || events.placable.tags.length > 0)" ng-class="{'panel panel-danger bg-red': tagMissmatch()}">
|
||||
<div class="panel-body">
|
||||
<div id="fromTags">
|
||||
{{ 'cart.tags_of_the_original_slot' | translate }}<br/>
|
||||
{{ 'app.shared.cart.tags_of_the_original_slot' | translate }}<br/>
|
||||
<span ng-repeat="tag in events.modifiable.tags">
|
||||
<span class='label label-success text-white' title="{{tag.name}}">{{tag.name}}</span>
|
||||
</span>
|
||||
<span ng-show="events.modifiable.tags.length == 0">
|
||||
<span class='label label-warning text-white' title="{{ 'cart.none' | translate }}" translate>{{ 'cart.none' }}</span>
|
||||
<span class='label label-warning text-white' title="{{ 'app.shared.cart.none' | translate }}" translate>{{ 'app.shared.cart.none' }}</span>
|
||||
</span>
|
||||
</div><br/>
|
||||
<div id="toTags">
|
||||
{{ 'cart.tags_of_the_destination_slot' | translate }}<br/>
|
||||
{{ 'app.shared.cart.tags_of_the_destination_slot' | translate }}<br/>
|
||||
<span ng-repeat="tag in events.placable.tags">
|
||||
<span class='label label-success text-white' title="{{tag.name}}">{{tag.name}}</span>
|
||||
</span>
|
||||
<span ng-show="events.placable.tags.length == 0">
|
||||
<span class='label label-warning text-white' title="{{ 'cart.none' | translate }}" translate>{{ 'cart.none' }}</span>
|
||||
<span class='label label-warning text-white' title="{{ 'app.shared.cart.none' | translate }}" translate>{{ 'app.shared.cart.none' }}</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
@ -142,24 +142,24 @@
|
||||
<div class="panel-footer no-padder" ng-if="events.modifiable && events.placable">
|
||||
<button class="btn btn-invalid btn-default btn-block p-l btn-lg text-u-c r-n text-base" ng-click="cancelModifySlot()" translate>{{ 'cancel' }}</button>
|
||||
<div>
|
||||
<button class="btn btn-valid btn-info btn-block p-l btn-lg text-u-c r-b text-base" ng-click="modifySlot()" translate>{{ 'cart.confirm_my_modification' }}</button>
|
||||
<button class="btn btn-valid btn-info btn-block p-l btn-lg text-u-c r-b text-base" ng-click="modifySlot()" translate>{{ 'app.shared.cart.confirm_my_modification' }}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="widget-content no-bg auto wrapper" ng-show="events.moved">
|
||||
<div class="font-sbold m-b-sm " translate>{{ 'cart.your_booking_slot_was_successfully_moved_from_' }}</div>
|
||||
<div class="font-sbold m-b-sm " translate>{{ 'app.shared.cart.your_booking_slot_was_successfully_moved_from_' }}</div>
|
||||
|
||||
<div class="panel panel-default bg-light">
|
||||
<div class="panel-body">
|
||||
<div class="font-sbold text-u-c">{{ 'cart.datetime_to_time' | translate:{START_DATETIME:(events.moved.oldSlot.start | amDateFormat:'LLLL'), END_TIME:(events.moved.oldSlot.end | amDateFormat:'LT') } }}</div>
|
||||
<div class="font-sbold text-u-c">{{ 'app.shared.cart.datetime_to_time' | translate:{START_DATETIME:(events.moved.oldSlot.start | amDateFormat:'LLLL'), END_TIME:(events.moved.oldSlot.end | amDateFormat:'LT') } }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="text-center font-bold m-b-sm text-u-c" translate>{{ 'cart.to_date' }}</p>
|
||||
<p class="text-center font-bold m-b-sm text-u-c" translate>{{ 'app.shared.cart.to_date' }}</p>
|
||||
|
||||
<div class="panel panel-success bg-success bg-light">
|
||||
<div class="panel-body">
|
||||
<div class="font-sbold text-u-c">{{ 'cart.datetime_to_time' | translate:{START_DATETIME:(events.moved.newSlot.start | amDateFormat:'LLLL'), END_TIME:(events.moved.newSlot.end | amDateFormat:'LT') } }}</div>
|
||||
<div class="font-sbold text-u-c">{{ 'app.shared.cart.datetime_to_time' | translate:{START_DATETIME:(events.moved.newSlot.start | amDateFormat:'LLLL'), END_TIME:(events.moved.newSlot.end | amDateFormat:'LT') } }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -9,12 +9,12 @@
|
||||
<!-- Disconnected user menu for small devices -->
|
||||
<li class="hidden-sm hidden-md hidden-lg" ng-if-start="!isAuthenticated()">
|
||||
<a class="auto pointer" ng-click="signup($event)">
|
||||
<i class="fa fa-rocket"></i> <span translate>{{ 'sign_up' }}</span>
|
||||
<i class="fa fa-rocket"></i> <span translate>{{ 'app.public.common.sign_up' }}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="hidden-sm hidden-md hidden-lg" ng-if-end>
|
||||
<a class="auto pointer" ng-click="login($event)">
|
||||
<i class="fa fa-sign-in"></i> <span translate>{{ 'sign_in' }}</span>
|
||||
<i class="fa fa-sign-in"></i> <span translate>{{ 'app.public.common.sign_in' }}</span>
|
||||
</a>
|
||||
</li>
|
||||
<!-- Connected user menu for small devices -->
|
||||
@ -23,42 +23,42 @@
|
||||
<i>
|
||||
<i class="fa fa-bell fa-2x black"></i> <span class="menu-badge badge" ng-class="{'bg-red': notifications.length > 0}">{{notifications.length}}</span>
|
||||
</i>
|
||||
<span translate>{{ 'notifications' }}</span>
|
||||
<span translate>{{ 'app.public.common.notifications' }}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="hidden-sm hidden-md hidden-lg">
|
||||
<a class="pointer" ng-click="logout($event)">
|
||||
<i class="fa fa-power-off"></i> <span translate>{{ 'sign_out' }}</span>
|
||||
<i class="fa fa-power-off"></i> <span translate>{{ 'app.public.common.sign_out' }}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="hidden-sm hidden-md hidden-lg" >
|
||||
<a ui-sref="app.logged.dashboard.profile">
|
||||
<i class="fa fa-user"></i> <span translate>{{ 'my_profile' }}</span>
|
||||
<i class="fa fa-user"></i> <span translate>{{ 'app.public.common.my_profile' }}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="hidden-sm hidden-md hidden-lg" >
|
||||
<a ui-sref="app.logged.dashboard.settings">
|
||||
<i class="fa fa-user"></i> <span translate>{{ 'my_settings' }}</span>
|
||||
<i class="fa fa-user"></i> <span translate>{{ 'app.public.common.my_settings' }}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="hidden-sm hidden-md hidden-lg">
|
||||
<a ui-sref="app.logged.dashboard.projects">
|
||||
<i class="fa fa-puzzle-piece"></i> <span translate>{{ 'my_projects' }}</span>
|
||||
<i class="fa fa-puzzle-piece"></i> <span translate>{{ 'app.public.common.my_projects' }}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="hidden-sm hidden-md hidden-lg">
|
||||
<a ui-sref="app.logged.dashboard.trainings">
|
||||
<i class="fa fa-graduation-cap"></i> <span translate>{{ 'my_trainings' }}</span>
|
||||
<i class="fa fa-graduation-cap"></i> <span translate>{{ 'app.public.common.my_trainings' }}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="hidden-sm hidden-md hidden-lg">
|
||||
<a ui-sref="app.logged.dashboard.events">
|
||||
<i class="fa fa-calendar-o"></i> <span translate>{{ 'my_events' }}</span>
|
||||
<i class="fa fa-calendar-o"></i> <span translate>{{ 'app.public.common.my_events' }}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="hidden-sm hidden-md hidden-lg" ng-hide="fablabWithoutInvoices" ng-if-end>
|
||||
<a ui-sref="app.logged.dashboard.invoices">
|
||||
<i class="fa fa-file-pdf-o"></i> <span translate>{{ 'my_invoices' }}</span>
|
||||
<i class="fa fa-file-pdf-o"></i> <span translate>{{ 'app.public.common.my_invoices' }}</span>
|
||||
</a>
|
||||
</li>
|
||||
<!-- Common menu entries -->
|
||||
@ -72,7 +72,7 @@
|
||||
|
||||
<!-- Admin entries -->
|
||||
<div class="line-s bg-red-dark dk " ng-if="isAuthorized('admin')"></div>
|
||||
<div class="text-xs font-bold text-bordeau hidden-nav-xs padder m-t-lg m-b-sm" ng-if="isAuthorized('admin')" translate>{{ 'admin' }}</div>
|
||||
<div class="text-xs font-bold text-bordeau hidden-nav-xs padder m-t-lg m-b-sm" ng-if="isAuthorized('admin')" translate>{{ 'app.public.common.admin' }}</div>
|
||||
<ul class="nav" ng-if="isAuthorized('admin')">
|
||||
<li class="" ng-repeat="navLink in adminNavLinks">
|
||||
<a ng-click="toggleNavSize($event)" ga ui-sref="{{navLink.state}}" ui-sref-active="active" class="auto" data-toggle="class:nav-off-screen" data-target="#nav">
|
||||
@ -88,7 +88,7 @@
|
||||
|
||||
<footer class="footer hidden-xs no-padder text-center-nav-xs">
|
||||
<a data-link="#nav" data-toggle="class:nav-xs" class="btn btn-theme btn-block no-b btn-icon icon-muted btn-inactive no-radius wrapper" ng-click="toggleNavSize($event)">
|
||||
<i class="fa fa-long-arrow-left text"></i> <span class="text text-sm" translate>{{ 'reduce_panel' }}</span>
|
||||
<i class="fa fa-long-arrow-left text"></i> <span class="text text-sm" translate>{{ 'app.public.common.reduce_panel' }}</span>
|
||||
<i class="fa fa-long-arrow-right text-active"></i>
|
||||
</a>
|
||||
</footer>
|
||||
|
@ -1,21 +1,21 @@
|
||||
<uib-alert ng-repeat="alert in alerts" type="{{alert.type}}" close="closeAlert($index)">{{alert.msg}}</uib-alert>
|
||||
|
||||
<div class="form-group m-b-lg" ng-class="{'has-error': spaceForm['space[name]'].$dirty && spaceForm['space[name]'].$invalid}">
|
||||
<label for="space_name" class="col-sm-2 control-label">{{ 'space.name' | translate }} *</label>
|
||||
<label for="space_name" class="col-sm-2 control-label">{{ 'app.shared.space.name' | translate }} *</label>
|
||||
<div class="col-sm-4">
|
||||
<input ng-model="space.name"
|
||||
type="text"
|
||||
name="space[name]"
|
||||
class="form-control"
|
||||
id="space_name"
|
||||
placeholder="{{'space.name' | translate}}"
|
||||
placeholder="{{'app.shared.space.name' | translate}}"
|
||||
required>
|
||||
<span class="help-block" ng-show="spaceForm['space[name]'].$dirty && spaceForm['space[name]'].$error.required" translate>{{ 'space.name_is_required' }}</span>
|
||||
<span class="help-block" ng-show="spaceForm['space[name]'].$dirty && spaceForm['space[name]'].$error.required" translate>{{ 'app.shared.space.name_is_required' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group m-b-lg">
|
||||
<label for="space_image" class="col-sm-2 control-label">{{ 'space.illustration' | translate }} *</label>
|
||||
<label for="space_image" class="col-sm-2 control-label">{{ 'app.shared.space.illustration' | translate }} *</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="fileinput" data-provides="fileinput" ng-class="fileinputClass(space.space_image)">
|
||||
<div class="fileinput-new thumbnail" style="width: 334px; height: 250px;">
|
||||
@ -26,8 +26,8 @@
|
||||
</div>
|
||||
<div>
|
||||
<span class="btn btn-default btn-file">
|
||||
<span class="fileinput-new">{{ 'space.add_an_illustration' | translate }} <i class="fa fa-upload fa-fw"></i></span>
|
||||
<span class="fileinput-exists" translate>{{ 'change' }}</span>
|
||||
<span class="fileinput-new">{{ 'app.shared.space.add_an_illustration' | translate }} <i class="fa fa-upload fa-fw"></i></span>
|
||||
<span class="fileinput-exists" translate>{{ 'app.shared.buttons.change' }}</span>
|
||||
<input type="file"
|
||||
id="space_image"
|
||||
ng-model="space.space_image"
|
||||
@ -36,7 +36,7 @@
|
||||
required
|
||||
bs-jasny-fileinput>
|
||||
</span>
|
||||
<a href="#" class="btn btn-danger fileinput-exists" data-dismiss="fileinput" translate>{{ 'delete' }}</a>
|
||||
<a href="#" class="btn btn-danger fileinput-exists" data-dismiss="fileinput" translate>{{ 'app.shared.buttons.delete' }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -44,7 +44,7 @@
|
||||
|
||||
|
||||
<div class="form-group m-b-xl" ng-class="{'has-error': spaceForm['space[default_places]'].$dirty && spaceForm['space[default_places]'].$invalid}">
|
||||
<label for="default_places" class="col-sm-2 control-label">{{ 'space.default_places' | translate }} *</label>
|
||||
<label for="default_places" class="col-sm-2 control-label">{{ 'app.shared.space.default_places' | translate }} *</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="number"
|
||||
name="space[default_places]"
|
||||
@ -52,13 +52,13 @@
|
||||
id="default_places"
|
||||
class="form-control"
|
||||
required>
|
||||
<span class="help-block" ng-show="spaceForm['space[default_places]'].$dirty && spaceForm['space[default_places]'].$error.required" translate>{{ 'space.default_places_is_required' }}</span>
|
||||
<span class="help-block" ng-show="spaceForm['space[default_places]'].$dirty && spaceForm['space[default_places]'].$error.required" translate>{{ 'app.shared.space.default_places_is_required' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group m-b-xl">
|
||||
<label for="space_description" class="col-sm-2 control-label" translate>{{ 'space.description' }}</label>
|
||||
<label for="space_description" class="col-sm-2 control-label" translate>{{ 'app.shared.space.description' }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="hidden"
|
||||
name="space[description]"
|
||||
@ -73,7 +73,7 @@
|
||||
</div>
|
||||
|
||||
<div class="form-group m-b-xl">
|
||||
<label for="space_characteristics" class="col-sm-2 control-label" translate>{{ 'space.characteristics' }}</label>
|
||||
<label for="space_characteristics" class="col-sm-2 control-label" translate>{{ 'app.shared.space.characteristics' }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="hidden"
|
||||
name="space[characteristics]"
|
||||
@ -88,7 +88,7 @@
|
||||
</div>
|
||||
|
||||
<div class="form-group m-b-xl">
|
||||
<label class="col-sm-2 control-label" translate>{{ 'space.attached_files_pdf' }}</label>
|
||||
<label class="col-sm-2 control-label" translate>{{ 'app.shared.space.attached_files_pdf' }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div ng-repeat="file in space.space_files_attributes" ng-show="!file._destroy">
|
||||
<input type="hidden" ng-model="file.id" name="space[space_files_attributes][][id]" ng-value="file.id" />
|
||||
@ -98,20 +98,20 @@
|
||||
<div class="form-control" data-trigger="fileinput">
|
||||
<i class="glyphicon glyphicon-file fileinput-exists"></i> <span class="fileinput-filename">{{file.attachment}}</span>
|
||||
</div>
|
||||
<span class="input-group-addon btn btn-default btn-file"><span class="fileinput-new" translate>{{ 'space.attach_a_file' }}</span>
|
||||
<span class="fileinput-exists" translate>{{ 'change' }}</span><input type="file" name="space[space_files_attributes][][attachment]" accept=".pdf"></span>
|
||||
<span class="input-group-addon btn btn-default btn-file"><span class="fileinput-new" translate>{{ 'app.shared.space.attach_a_file' }}</span>
|
||||
<span class="fileinput-exists" translate>{{ 'app.shared.buttons.change' }}</span><input type="file" name="space[space_files_attributes][][attachment]" accept=".pdf"></span>
|
||||
<a class="input-group-addon btn btn-danger fileinput-exists" data-dismiss="fileinput" ng-click="deleteFile(file)"><i class="fa fa-trash-o"></i></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<a class="btn btn-default" ng-click="addFile()" role="button"> {{ 'space.add_an_attachment' | translate }} <i class="fa fa-file-o fa-fw"></i></a>
|
||||
<a class="btn btn-default" ng-click="addFile()" role="button"> {{ 'app.shared.space.add_an_attachment' | translate }} <i class="fa fa-file-o fa-fw"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="space[disabled]" class="control-label col-sm-2" translate>
|
||||
{{ 'space.disable_space' }}
|
||||
{{ 'app.shared.space.disable_space' }}
|
||||
</label>
|
||||
<div class="col-sm-10">
|
||||
<input bs-switch
|
||||
@ -120,8 +120,8 @@
|
||||
id="space[disabled]"
|
||||
type="checkbox"
|
||||
class="form-control"
|
||||
switch-on-text="{{ 'yes' | translate }}"
|
||||
switch-off-text="{{ 'no' | translate }}"
|
||||
switch-on-text="{{ 'app.shared.buttons.yes' | translate }}"
|
||||
switch-off-text="{{ 'app.shared.buttons.no' | translate }}"
|
||||
switch-animate="true"/>
|
||||
<input type="hidden" name="space[disabled]" value="{{space.disabled}}">
|
||||
</div>
|
||||
|
@ -7,7 +7,7 @@
|
||||
</div>
|
||||
<div class="col-md-8 b-l b-r">
|
||||
<section class="heading-title">
|
||||
<h1 translate translate-values="{NAME: space.name}">{{ 'space_edit.edit_the_space_NAME' }}</h1>
|
||||
<h1 translate translate-values="{NAME: space.name}">{{ 'app.admin.space_edit.edit_the_space_NAME' }}</h1>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
@ -33,12 +33,12 @@
|
||||
|
||||
<section class="panel panel-default bg-light m-lg">
|
||||
<div class="panel-body m-r">
|
||||
<ng-include src="'<%= asset_path 'spaces/_form.html' %>'"></ng-include>
|
||||
<ng-include src="'<%= asset_path "spaces/_form.html" %>'"></ng-include>
|
||||
</div>
|
||||
|
||||
<div class="panel-footer no-padder">
|
||||
<input type="submit"
|
||||
value="{{ 'space_edit.validate_the_changes' | translate }}"
|
||||
value="{{ 'app.admin.space_edit.validate_the_changes' | translate }}"
|
||||
class="r-b btn-valid btn btn-warning btn-block p-lg btn-lg text-u-c"
|
||||
ng-disabled="spaceForm.$invalid"/>
|
||||
</div>
|
||||
|
@ -7,7 +7,7 @@
|
||||
</div>
|
||||
<div class="col-md-8 b-l b-r">
|
||||
<section class="heading-title">
|
||||
<h1 translate>{{ 'space_new.add_a_new_space' }}</h1>
|
||||
<h1 translate>{{ 'app.admin.space_new.add_a_new_space' }}</h1>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
@ -22,8 +22,8 @@
|
||||
<div class="col-md-9 b-r nopadding">
|
||||
|
||||
<div class="m-lg alert alert-warning" role="alert">
|
||||
{{ 'space_new.watch_out_when_creating_a_new_space_its_prices_are_initialized_at_0_for_all_subscriptions' | translate}}
|
||||
{{ 'space_new.consider_changing_its_prices_before_creating_any_reservation_slot' | translate }}
|
||||
{{ 'app.admin.space_new.watch_out_when_creating_a_new_space_its_prices_are_initialized_at_0_for_all_subscriptions' | translate}}
|
||||
{{ 'app.admin.space_new.consider_changing_its_prices_before_creating_any_reservation_slot' | translate }}
|
||||
</div>
|
||||
|
||||
<form role="form"
|
||||
@ -44,7 +44,7 @@
|
||||
|
||||
<div class="panel-footer no-padder">
|
||||
<input type="submit"
|
||||
value="{{ 'space_new.add_this_space' | translate }}"
|
||||
value="{{ 'app.admin.space_new.add_this_space' | translate }}"
|
||||
class="r-b btn-valid btn btn-warning btn-block p-lg btn-lg text-u-c"
|
||||
ng-disabled="spaceForm.$invalid"/>
|
||||
</div>
|
||||
|
@ -7,7 +7,7 @@
|
||||
</div>
|
||||
<div class="col-xs-10 col-sm-10 col-md-8 b-l b-r-md">
|
||||
<section class="heading-title">
|
||||
<h1 translate translate-values="{NAME:space.name}">{{ 'space_reserve.planning_of_space_NAME' }}</h1>
|
||||
<h1 translate translate-values="{NAME:space.name}">{{ 'app.logged.space_reserve.planning_of_space_NAME' }}</h1>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
@ -17,7 +17,7 @@
|
||||
<div class="row no-gutter training-reserve">
|
||||
<div class="col-sm-12 col-md-12 col-lg-9">
|
||||
<div ui-calendar="calendarConfig" ng-model="eventSources" calendar="calendar" class="wrapper-lg" ng-show="!plansAreShown"></div>
|
||||
<ng-include ng-if="!fablabWithoutPlans" src="'<%= asset_path 'plans/_plan.html' %>'"></ng-include>
|
||||
<ng-include ng-if="!fablabWithoutPlans" src="'<%= asset_path "plans/_plan.html" %>'"></ng-include>
|
||||
</div>
|
||||
|
||||
|
||||
|
@ -110,13 +110,16 @@ fr:
|
||||
|
||||
project_elements:
|
||||
# gestion des éléments constituant les projets
|
||||
project_elements:
|
||||
projects_elements_management: "Gestion des éléments projets"
|
||||
add_a_material: "Ajouter un matériau"
|
||||
add_a_new_theme: "Ajouter une nouvelle thématique"
|
||||
licences: "Licences"
|
||||
add_a_new_licence: "Ajouter une nouvelle licence"
|
||||
manage_abuses: "Gérer les signalements"
|
||||
name: "Nom"
|
||||
projects_elements_management: "Gestion des éléments projets"
|
||||
materials: "Matériaux"
|
||||
add_a_material: "Ajouter un matériau"
|
||||
themes: "Thématiques"
|
||||
add_a_new_theme: "Ajouter une nouvelle thématique"
|
||||
licences: "Licences"
|
||||
description: "Description"
|
||||
add_a_new_licence: "Ajouter une nouvelle licence"
|
||||
manage_abuses: "Gérer les signalements"
|
||||
|
||||
trainings:
|
||||
# suivre et surveiller les formations
|
||||
@ -162,6 +165,7 @@ fr:
|
||||
events_monitoring: "Suivi des évènements"
|
||||
manage_filters: "Gérer les filtres"
|
||||
fablab_events: "Les évènements du Fab Lab"
|
||||
add_an_event: "Ajouter un évènement"
|
||||
all_events: "Tous les évènements"
|
||||
passed_events: "Les évènements déjà passés"
|
||||
events_to_come: "Les évènements à venir"
|
||||
@ -169,14 +173,21 @@ fr:
|
||||
on_DATE: "le {DATE}"
|
||||
from_DATE: "du {DATE}"
|
||||
from_TIME: "de {TIME}"
|
||||
to_date: "au" # context: date. eg: "from 01/01 to 01/05"
|
||||
to_time: "à" # context: time. eg. "from 18:00 to 21:00"
|
||||
title: "Titre"
|
||||
dates: "Dates"
|
||||
booking: "Réservations"
|
||||
sold_out: "Complet"
|
||||
cancelled: "Annulé"
|
||||
free_entry: "Entrée libre"
|
||||
free_admission: "Entrée gratuite"
|
||||
view_reservations: "Consulter les réservations"
|
||||
load_the_next_events: "Charger les évènements suivants ..."
|
||||
categories: "Catégories"
|
||||
add_a_category: "Ajouter une catégorie"
|
||||
name: "Nom"
|
||||
themes: "Thématiques"
|
||||
add_a_theme: "Ajouter une thématique"
|
||||
age_ranges: "Tranches d'âge"
|
||||
add_a_range: "Ajouter une tranche"
|
||||
@ -206,6 +217,7 @@ fr:
|
||||
|
||||
events_new:
|
||||
# ajouter un nouvel évènement
|
||||
add_an_event: "Ajouter un évènement"
|
||||
none: "Aucune"
|
||||
every_days: "Tous les jours"
|
||||
every_week: "Chaque semaine"
|
||||
@ -219,7 +231,9 @@ fr:
|
||||
event_reservations:
|
||||
# liste des réservations sur un évènement
|
||||
the_reservations: "Les réservations :"
|
||||
user: "Utilisateur"
|
||||
payment_date: "Date de paiement"
|
||||
full_price_: "Plein tarif :"
|
||||
reserved_tickets: "Places réservées"
|
||||
show_the_event: "Afficher l'évènement"
|
||||
no_reservations_for_now: "Aucune réservation pour le moment."
|
||||
@ -747,6 +761,7 @@ fr:
|
||||
|
||||
statistics:
|
||||
# tableau de statistiques
|
||||
statistics: "Statistiques"
|
||||
evolution: "évolution"
|
||||
age_filter: "Filtre d'âge"
|
||||
from_age: "De" # context: age. eg: from 8 to 40 years old
|
||||
@ -759,6 +774,8 @@ fr:
|
||||
criterion: "Critère :"
|
||||
value: "Valeur :"
|
||||
exclude: "Exclure"
|
||||
from_date: "Du" # context: date. eg: "from 01/01 to 01/05"
|
||||
to_date: "au" # context: date. eg: "from 01/01 to 01/05"
|
||||
entries: "Entrées :"
|
||||
revenue_: "Chiffre d'affaires :"
|
||||
average_age: "Âge moyen :"
|
||||
@ -766,8 +783,11 @@ fr:
|
||||
total: "Total"
|
||||
available_hours: "Heures disponibles à la réservation :"
|
||||
available_tickets: "Places disponibles à la reservation :"
|
||||
date: "Date"
|
||||
user: "Utilisateur"
|
||||
gender: "Genre"
|
||||
age: "Âge"
|
||||
type: "Type"
|
||||
revenue: "Chiffre d'affaires"
|
||||
unknown: "Inconnu"
|
||||
user_id: "ID Utilisateur"
|
||||
@ -777,155 +797,166 @@ fr:
|
||||
export_the_current_search_results: "Exporter les résultats de la recherche courante"
|
||||
export: "Exporter"
|
||||
deleted_user: "Utilisateur supprimé"
|
||||
man: "Homme"
|
||||
woman: "Femme"
|
||||
export_is_running_you_ll_be_notified_when_its_ready: "L'export est en cours. Vous serez notifié lorsqu'il sera prêt."
|
||||
|
||||
stats_graphs:
|
||||
# graphiques de statistiques
|
||||
statistics: "Statistiques"
|
||||
data: "Données"
|
||||
day: "Jour"
|
||||
week: "Semaine"
|
||||
from_date: "Du" # context: date. eg: "from 01/01 to 01/05"
|
||||
to_date: "au" # context: date. eg: "from 01/01 to 01/05"
|
||||
month: "Mois"
|
||||
start: "Début :"
|
||||
end: "Fin :"
|
||||
type: "Type"
|
||||
revenue: "Chiffre d'affaires"
|
||||
top_list_of: "Palmarès des"
|
||||
number: "Nombre"
|
||||
week_short: "Sem."
|
||||
week_of_START_to_END: "Semaine du {START} au {END}"
|
||||
no_data_for_this_period: "Pas de données pour cette période"
|
||||
date: "Date"
|
||||
|
||||
settings:
|
||||
# paramètres globaux de l'application et personnalisation
|
||||
settings:
|
||||
title: "Titre"
|
||||
customize_the_application: "Personnalisation de l'application"
|
||||
general: "Général"
|
||||
fablab_title: "Titre du FabLab"
|
||||
fablab_name: "Nom du FabLab"
|
||||
title_concordance: "Accord du titre"
|
||||
male: "Masculin."
|
||||
female: "Féminin."
|
||||
neutral: "Neutre."
|
||||
eg: "ex :"
|
||||
about: "A propos"
|
||||
male_preposition: "du"
|
||||
female_preposition: "de la"
|
||||
neutral_preposition: ""
|
||||
customize_information_messages: "Personnaliser les messages d'informations"
|
||||
message_of_the_machine_booking_page: "Message sur la page de réservation d'une machine :"
|
||||
type_the_message_content: "Saisir le contenu du message"
|
||||
warning_message_of_the_training_booking_page: "Message d'avertissement sur la page de réservation d'une formation :"
|
||||
information_message_of_the_training_reservation_page: "Message d'information sur la page de réservation d'une formation :"
|
||||
message_of_the_subscriptions_page: "Message sur la page des abonnements :"
|
||||
message_of_the_events_page: "Message sur la page des évènements :"
|
||||
message_of_the_spaces_page: "Message sur la page des espaces :"
|
||||
legal_documents: "Documents légaux"
|
||||
if_these_documents_are_not_filled_no_consent_about_them_will_be_asked_to_the_user: "Si ces documents ne sont pas renseignés, aucun consentement à leur sujet ne sera demandé à l'utilisateur."
|
||||
general_terms_and_conditions: "Conditions générales de vente (CGV)"
|
||||
terms_of_service: "Conditions générales d'utilisation (CGU)"
|
||||
customize_the_graphics: "Personnaliser la charte graphique"
|
||||
for_an_optimal_rendering_the_logo_image_must_be_at_the_PNG_format_with_a_transparent_background_and_with_an_aspect_ratio_3.5_times_wider_than_the_height: "Pour un rendu optimal, l'image du logo doit être au format PNG avec un fond transparent et d'un aspect environ 3,5 fois plus long que haut."
|
||||
concerning_the_favicon_it_must_be_at_ICO_format_with_a_size_of_16x16_pixels: "La favicon devrait quant à elle être au format ICO et d'une taille de 16x16 pixels."
|
||||
remember_to_refresh_the_page_for_the_changes_to_take_effect: "Pensez à rafraîchir la page pour que les modifications prennent effet."
|
||||
logo_white_background: "Logo (fond blanc)"
|
||||
change_the_logo: "Changer le logo"
|
||||
logo_black_background: "Logo (font noir)"
|
||||
favicon: "Favicon"
|
||||
change_the_favicon: "Changer la favicon"
|
||||
main_colour: "Couleur principale :"
|
||||
primary: "Primaire"
|
||||
secondary_colour: "Couleur secondaire :"
|
||||
secondary: "Secondaire"
|
||||
background_picture_of_the_profile_banner: "Image de fond du bandeau de profil"
|
||||
change_the_profile_banner: "Changer le bandeau de profil"
|
||||
home_page: "Page d'accueil"
|
||||
news_of_the_home_page: "Brève de la page d'accueil :"
|
||||
type_your_news_here: "Saisir votre brève ici"
|
||||
leave_it_empty_to_not_bring_up_any_news_on_the_home_page: "Laisser vide pour ne pas faire apparaître de brève sur la page d'accueil"
|
||||
twitter_stream: "Flux Twitter :"
|
||||
name_of_the_twitter_account: "Nom du compte Twitter"
|
||||
title_of_the_about_page: "Titre page A propos"
|
||||
shift_enter_to_force_carriage_return: "MAJ. + ENTRÉE pour forcer le retour à la ligne"
|
||||
input_the_main_content: "Saisir le contenu principal"
|
||||
drag_and_drop_to_insert_images: "Faites un glisser-déposer pour insérer des images"
|
||||
input_the_fablab_contacts: "Saisir les Contacts du FabLab"
|
||||
reservations: "Réservations"
|
||||
reservations_parameters: "Paramètres des réservations"
|
||||
confine_the_booking_agenda: "Borner l'agenda de réservation"
|
||||
opening_time: "Heure d'ouverture"
|
||||
closing_time: "Heure de fermeture"
|
||||
max_visibility: "Visibilité maximum (en mois)"
|
||||
visibility_for_yearly_members: "Pour les abonnements en cours d'au moins 1 an"
|
||||
visibility_for_other_members: "Pour tous les autres membres"
|
||||
ability_for_the_users_to_move_their_reservations: "Possibilité pour l'utilisateur de déplacer ses réservations"
|
||||
reservations_shifting: "Déplacement des réservations"
|
||||
prior_period_hours: "Délai préalable (en heures)"
|
||||
enabled: "Activé"
|
||||
disabled: "Désactivé"
|
||||
ability_for_the_users_to_cancel_their_reservations: "Possibilité pour l'utilisateur d'annuler ses réservations"
|
||||
reservations_cancelling: "Annulation des réservations"
|
||||
reservations_reminders: "Rappel des réservations"
|
||||
notification_sending_before_the_reservation_occurs: "Envoi de notification avant l'avènement de la réservation"
|
||||
customization_of_SETTING_successfully_saved: "La personnalisation de {SETTING} a bien été enregistrée."
|
||||
file_successfully_updated: "Le fichier a bien été mis à jour."
|
||||
name_genre: "l'accord du nom"
|
||||
machine_explications_alert: "l'explication sur la page de réservation d'une machine"
|
||||
training_explications_alert: "l'explication sur la page de réservation d'une formation"
|
||||
training_information_message: "l'information sur la page de réservation d'une formation"
|
||||
subscription_explications_alert: "l'explication sur la page de souscription à un abonnement"
|
||||
event_explications_alert: "l'explication sur la page de réservation d'un évènement"
|
||||
space_explications_alert: "l'explication sur la page de réservation d'un espace"
|
||||
main_color: "la couleur principale"
|
||||
secondary_color: "la couleur secondaire"
|
||||
home_blogpost: "la brève de la page d'accueil"
|
||||
twitter_name: "nom du flux Twitter"
|
||||
about_title: "titre de la page \"À propos\""
|
||||
about_body: "corps de la page \"À propos\""
|
||||
about_contacts: "contacts sur la page \"À propos\""
|
||||
privacy_draft: "brouillon de la politique de confidentialité"
|
||||
privacy_body: "la politique de confidentialité"
|
||||
privacy_dpo: "l'adresse du délégué à la protection des données"
|
||||
booking_window_start: "l'heure d'ouverture"
|
||||
booking_window_end: "l'heure de fermeture"
|
||||
booking_move_enable: "l'activation du déplacement de réservation"
|
||||
booking_move_delay: "délai préventif de déplacement"
|
||||
booking_cancel_enable: "l'activation de l'annulation de réservation"
|
||||
booking_cancel_delay: "délai préventif d'annulation"
|
||||
reminder_enable: "l'activation du rappel de réservation"
|
||||
reminder_delay: "délai avant envoi de la notification de rappel"
|
||||
default_value_is_24_hours: "Si aucune valeur n'est renseignée : 24 heures."
|
||||
visibility_yearly: "la visibilité maximum pour les abonnées annuels"
|
||||
visibility_others: "la visibilité maximum pour les autres membres"
|
||||
confidentiality: "Confidentialité"
|
||||
display_machine_reservation_user_name: "Afficher le nom de l'utilisateur ayant réservé une machine"
|
||||
display_name: "Afficher le nom"
|
||||
display_name_enable: "l'affichage du nom"
|
||||
machines_sort_by: "l'odre d'affichage des machines"
|
||||
elements_ordering: "Ordre d'affichage des éléments"
|
||||
machines_order: "Ordre des machines"
|
||||
display_machines_sorted_by: "Afficher les machines triées par"
|
||||
sort_by:
|
||||
default: "Défaut"
|
||||
name: "Nom"
|
||||
created_at: "Date de création"
|
||||
updated_at: "Date de mise à jour"
|
||||
privacy:
|
||||
title: "Politique de confidentialité"
|
||||
input_the_dpo: "Saisir le contact du Délégué à la protection des données"
|
||||
current_policy: "Politique courante"
|
||||
draft_from_USER_DATE: "Brouillon, enregistré par {USER}, le {DATE}"
|
||||
save_or_publish: "Enregistrer ou publier ?"
|
||||
save_or_publish_body: "Voulez-vous publier une nouvelle version de la politique de confidentialité ou bien l'enregistrer comme brouillon ?"
|
||||
publish_will_notify: "Publier une nouvelle version enverra une notification à l'ensemble des utilisateurs."
|
||||
publish: "Publier"
|
||||
users_notified: "Les utilisateurs de la plateforme seront notifiés de la mise à jour."
|
||||
title: "Titre"
|
||||
customize_the_application: "Personnalisation de l'application"
|
||||
general: "Général"
|
||||
fablab_title: "Titre du FabLab"
|
||||
fablab_name: "Nom du FabLab"
|
||||
title_concordance: "Accord du titre"
|
||||
male: "Masculin."
|
||||
female: "Féminin."
|
||||
neutral: "Neutre."
|
||||
eg: "ex :"
|
||||
about: "A propos"
|
||||
male_preposition: "du"
|
||||
female_preposition: "de la"
|
||||
neutral_preposition: ""
|
||||
customize_information_messages: "Personnaliser les messages d'informations"
|
||||
message_of_the_machine_booking_page: "Message sur la page de réservation d'une machine :"
|
||||
type_the_message_content: "Saisir le contenu du message"
|
||||
warning_message_of_the_training_booking_page: "Message d'avertissement sur la page de réservation d'une formation :"
|
||||
information_message_of_the_training_reservation_page: "Message d'information sur la page de réservation d'une formation :"
|
||||
message_of_the_subscriptions_page: "Message sur la page des abonnements :"
|
||||
message_of_the_events_page: "Message sur la page des évènements :"
|
||||
message_of_the_spaces_page: "Message sur la page des espaces :"
|
||||
legal_documents: "Documents légaux"
|
||||
if_these_documents_are_not_filled_no_consent_about_them_will_be_asked_to_the_user: "Si ces documents ne sont pas renseignés, aucun consentement à leur sujet ne sera demandé à l'utilisateur."
|
||||
general_terms_and_conditions: "Conditions générales de vente (CGV)"
|
||||
terms_of_service: "Conditions générales d'utilisation (CGU)"
|
||||
customize_the_graphics: "Personnaliser la charte graphique"
|
||||
for_an_optimal_rendering_the_logo_image_must_be_at_the_PNG_format_with_a_transparent_background_and_with_an_aspect_ratio_3.5_times_wider_than_the_height: "Pour un rendu optimal, l'image du logo doit être au format PNG avec un fond transparent et d'un aspect environ 3,5 fois plus long que haut."
|
||||
concerning_the_favicon_it_must_be_at_ICO_format_with_a_size_of_16x16_pixels: "La favicon devrait quant à elle être au format ICO et d'une taille de 16x16 pixels."
|
||||
remember_to_refresh_the_page_for_the_changes_to_take_effect: "Pensez à rafraîchir la page pour que les modifications prennent effet."
|
||||
logo_white_background: "Logo (fond blanc)"
|
||||
change_the_logo: "Changer le logo"
|
||||
logo_black_background: "Logo (font noir)"
|
||||
favicon: "Favicon"
|
||||
change_the_favicon: "Changer la favicon"
|
||||
main_colour: "Couleur principale :"
|
||||
primary: "Primaire"
|
||||
secondary_colour: "Couleur secondaire :"
|
||||
secondary: "Secondaire"
|
||||
background_picture_of_the_profile_banner: "Image de fond du bandeau de profil"
|
||||
change_the_profile_banner: "Changer le bandeau de profil"
|
||||
home_page: "Page d'accueil"
|
||||
news_of_the_home_page: "Brève de la page d'accueil :"
|
||||
type_your_news_here: "Saisir votre brève ici"
|
||||
leave_it_empty_to_not_bring_up_any_news_on_the_home_page: "Laisser vide pour ne pas faire apparaître de brève sur la page d'accueil"
|
||||
twitter_stream: "Flux Twitter :"
|
||||
name_of_the_twitter_account: "Nom du compte Twitter"
|
||||
title_of_the_about_page: "Titre page A propos"
|
||||
shift_enter_to_force_carriage_return: "MAJ. + ENTRÉE pour forcer le retour à la ligne"
|
||||
input_the_main_content: "Saisir le contenu principal"
|
||||
drag_and_drop_to_insert_images: "Faites un glisser-déposer pour insérer des images"
|
||||
input_the_fablab_contacts: "Saisir les Contacts du FabLab"
|
||||
reservations: "Réservations"
|
||||
reservations_parameters: "Paramètres des réservations"
|
||||
confine_the_booking_agenda: "Borner l'agenda de réservation"
|
||||
opening_time: "Heure d'ouverture"
|
||||
closing_time: "Heure de fermeture"
|
||||
max_visibility: "Visibilité maximum (en mois)"
|
||||
visibility_for_yearly_members: "Pour les abonnements en cours d'au moins 1 an"
|
||||
visibility_for_other_members: "Pour tous les autres membres"
|
||||
ability_for_the_users_to_move_their_reservations: "Possibilité pour l'utilisateur de déplacer ses réservations"
|
||||
reservations_shifting: "Déplacement des réservations"
|
||||
prior_period_hours: "Délai préalable (en heures)"
|
||||
enabled: "Activé"
|
||||
disabled: "Désactivé"
|
||||
ability_for_the_users_to_cancel_their_reservations: "Possibilité pour l'utilisateur d'annuler ses réservations"
|
||||
reservations_cancelling: "Annulation des réservations"
|
||||
reservations_reminders: "Rappel des réservations"
|
||||
notification_sending_before_the_reservation_occurs: "Envoi de notification avant l'avènement de la réservation"
|
||||
customization_of_SETTING_successfully_saved: "La personnalisation de {SETTING} a bien été enregistrée."
|
||||
file_successfully_updated: "Le fichier a bien été mis à jour."
|
||||
name_genre: "l'accord du nom"
|
||||
machine_explications_alert: "l'explication sur la page de réservation d'une machine"
|
||||
training_explications_alert: "l'explication sur la page de réservation d'une formation"
|
||||
training_information_message: "l'information sur la page de réservation d'une formation"
|
||||
subscription_explications_alert: "l'explication sur la page de souscription à un abonnement"
|
||||
event_explications_alert: "l'explication sur la page de réservation d'un évènement"
|
||||
space_explications_alert: "l'explication sur la page de réservation d'un espace"
|
||||
main_color: "la couleur principale"
|
||||
secondary_color: "la couleur secondaire"
|
||||
home_blogpost: "la brève de la page d'accueil"
|
||||
twitter_name: "nom du flux Twitter"
|
||||
about_title: "titre de la page \"À propos\""
|
||||
about_body: "corps de la page \"À propos\""
|
||||
about_contacts: "contacts sur la page \"À propos\""
|
||||
privacy_draft: "brouillon de la politique de confidentialité"
|
||||
privacy_body: "la politique de confidentialité"
|
||||
privacy_dpo: "l'adresse du délégué à la protection des données"
|
||||
booking_window_start: "l'heure d'ouverture"
|
||||
booking_window_end: "l'heure de fermeture"
|
||||
booking_move_enable: "l'activation du déplacement de réservation"
|
||||
booking_move_delay: "délai préventif de déplacement"
|
||||
booking_cancel_enable: "l'activation de l'annulation de réservation"
|
||||
booking_cancel_delay: "délai préventif d'annulation"
|
||||
reminder_enable: "l'activation du rappel de réservation"
|
||||
reminder_delay: "délai avant envoi de la notification de rappel"
|
||||
default_value_is_24_hours: "Si aucune valeur n'est renseignée : 24 heures."
|
||||
visibility_yearly: "la visibilité maximum pour les abonnées annuels"
|
||||
visibility_others: "la visibilité maximum pour les autres membres"
|
||||
confidentiality: "Confidentialité"
|
||||
display_machine_reservation_user_name: "Afficher le nom de l'utilisateur ayant réservé une machine"
|
||||
display_name: "Afficher le nom"
|
||||
display_name_enable: "l'affichage du nom"
|
||||
machines_sort_by: "l'odre d'affichage des machines"
|
||||
elements_ordering: "Ordre d'affichage des éléments"
|
||||
machines_order: "Ordre des machines"
|
||||
display_machines_sorted_by: "Afficher les machines triées par"
|
||||
sort_by:
|
||||
default: "Défaut"
|
||||
name: "Nom"
|
||||
created_at: "Date de création"
|
||||
updated_at: "Date de mise à jour"
|
||||
privacy:
|
||||
title: "Politique de confidentialité"
|
||||
input_the_dpo: "Saisir le contact du Délégué à la protection des données"
|
||||
current_policy: "Politique courante"
|
||||
draft_from_USER_DATE: "Brouillon, enregistré par {USER}, le {DATE}"
|
||||
save_or_publish: "Enregistrer ou publier ?"
|
||||
save_or_publish_body: "Voulez-vous publier une nouvelle version de la politique de confidentialité ou bien l'enregistrer comme brouillon ?"
|
||||
publish_will_notify: "Publier une nouvelle version enverra une notification à l'ensemble des utilisateurs."
|
||||
publish: "Publier"
|
||||
users_notified: "Les utilisateurs de la plateforme seront notifiés de la mise à jour."
|
||||
|
||||
open_api_clients:
|
||||
add_new_client: "Créer un compte client"
|
||||
api_documentation: "Documentation de l'API"
|
||||
open_api_clients: "Clients OpenAPI"
|
||||
name: "Nom"
|
||||
calls_count: "Nombre d'appels"
|
||||
token: "Jeton"
|
||||
created_at: "Date de création"
|
||||
reset_token: "Révoquer l'accès"
|
||||
client_name: "Nom du client"
|
||||
confirmation_required: "Confirmation requise"
|
||||
do_you_really_want_to_delete_this_open_api_client: "Voulez vous vraiment supprimer ce compte client OpenAPI ?"
|
||||
do_you_really_want_to_revoke_this_open_api_access: "Voulez vous vraiment revoquer l'accès de ce compte OpenAPI ? Une confirmation aura pour effet la génération d'un nouveau token."
|
||||
client_successfully_created: "Le compte client a bien été créé."
|
||||
@ -935,27 +966,24 @@ fr:
|
||||
|
||||
space_new:
|
||||
# créer un nouvel espace
|
||||
space_new:
|
||||
add_a_new_space: "Ajouter un nouvel espace"
|
||||
watch_out_when_creating_a_new_space_its_prices_are_initialized_at_0_for_all_subscriptions: "Attention, lors de la création d'un espace, ses tarifs de réservation sont initialisés à zero pour tous les abonnements."
|
||||
consider_changing_its_prices_before_creating_any_reservation_slot: "Pensez à modifier ces prix avant de créer des créneaux pour cet espace."
|
||||
add_this_space: "Ajouter cet espace"
|
||||
add_a_new_space: "Ajouter un nouvel espace"
|
||||
watch_out_when_creating_a_new_space_its_prices_are_initialized_at_0_for_all_subscriptions: "Attention, lors de la création d'un espace, ses tarifs de réservation sont initialisés à zero pour tous les abonnements."
|
||||
consider_changing_its_prices_before_creating_any_reservation_slot: "Pensez à modifier ces prix avant de créer des créneaux pour cet espace."
|
||||
add_this_space: "Ajouter cet espace"
|
||||
|
||||
space_edit:
|
||||
# modifier un espace existant
|
||||
space_edit:
|
||||
edit_the_space_NAME: "Modifier l'espace : {NAME}"
|
||||
validate_the_changes: "Valider les modifications"
|
||||
edit_the_space_NAME: "Modifier l'espace : {NAME}"
|
||||
validate_the_changes: "Valider les modifications"
|
||||
|
||||
manage_abuses:
|
||||
# traiter et supprimer les rapports d'abus
|
||||
manage_abuses:
|
||||
abuses_list: "Liste des signalements"
|
||||
no_reports: "Aucun signalement pour le moment"
|
||||
published_by: "publié par"
|
||||
at_date: "le"
|
||||
has_reported: "a effectué le signalement suivant:"
|
||||
confirmation_required: "Confirmez le traitement du signalement"
|
||||
report_will_be_destroyed: "Une fois le signalement traité, le rapport sera supprimé. Cette action est irréversible, continuer ?"
|
||||
report_removed: "Le rapport a bien été supprimé"
|
||||
failed_to_remove: "Une erreur est survenue, impossible de supprimer le rapport"
|
||||
abuses_list: "Liste des signalements"
|
||||
no_reports: "Aucun signalement pour le moment"
|
||||
published_by: "publié par"
|
||||
at_date: "le"
|
||||
has_reported: "a effectué le signalement suivant:"
|
||||
confirmation_required: "Confirmez le traitement du signalement"
|
||||
report_will_be_destroyed: "Une fois le signalement traité, le rapport sera supprimé. Cette action est irréversible, continuer ?"
|
||||
report_removed: "Le rapport a bien été supprimé"
|
||||
failed_to_remove: "Une erreur est survenue, impossible de supprimer le rapport"
|
||||
|
@ -161,11 +161,10 @@ fr:
|
||||
|
||||
space_reserve:
|
||||
# réserver un espace
|
||||
space_reserve:
|
||||
planning_of_space_NAME: "Planning de l'espace {NAME}"
|
||||
i_ve_reserved: "J'ai réservé"
|
||||
i_shift: "Je déplace"
|
||||
i_change: "Je change"
|
||||
planning_of_space_NAME: "Planning de l'espace {NAME}"
|
||||
i_ve_reserved: "J'ai réservé"
|
||||
i_shift: "Je déplace"
|
||||
i_change: "Je change"
|
||||
|
||||
notifications:
|
||||
notifications_center: "Centre de notifications"
|
||||
|
@ -217,6 +217,7 @@ fr:
|
||||
files_to_download: "Fichiers à télécharger"
|
||||
projects_using_the_machine: "Projets utilisant la machine"
|
||||
_or_the_: " ou la "
|
||||
confirmation_required: "Confirmation requise"
|
||||
do_you_really_want_to_delete_this_machine: "Êtes-vous sur de vouloir supprimer cette machine ?"
|
||||
unauthorized_operation: "Opération non autorisée"
|
||||
the_machine_cant_be_deleted_because_it_is_already_reserved_by_some_users: "La machine ne peut pas être supprimée car elle a déjà été réservée par des utilisateurs."
|
||||
@ -282,19 +283,30 @@ fr:
|
||||
event_description: "Description de l'évènement"
|
||||
downloadable_documents: "Documents à télécharger"
|
||||
information_and_booking: "Informations et réservation"
|
||||
dates: "Dates"
|
||||
beginning: "Début :"
|
||||
ending: "Fin :"
|
||||
opening_hours: "Horaires :"
|
||||
all_day: "Toute la journée"
|
||||
from_time: "De" # context: time. eg. "from 18:00 to 21:00"
|
||||
to_time: "à" # context: time. eg. "from 18:00 to 21:00"
|
||||
full_price_: "Plein tarif :"
|
||||
tickets_still_availables: "Places encore disponibles :"
|
||||
sold_out: "Événement complet"
|
||||
free_entry: "Accès libre"
|
||||
cancelled: "Annulé"
|
||||
ticket: "{NUMBER, plural, =0{place} one{place} other{places}}"
|
||||
make_a_gift_of_this_reservation: "Offrir cette réservation"
|
||||
thank_you_your_payment_has_been_successfully_registered: "Merci. Votre paiement a bien été pris en compte !"
|
||||
you_can_find_your_reservation_s_details_on_your_: "Vous pouvez retrouver le détail de votre réservation sur votre"
|
||||
dashboard: "tableau de bord"
|
||||
you_booked_DATE: "Vous avez réservé ({DATE}) :"
|
||||
canceled_reservation_SEATS: "Réservation annulée ({SEATS} places)"
|
||||
book: "Réserver"
|
||||
confirm_and_pay: "Valider et payer"
|
||||
confirm_payment_of_html: "{ROLE, select, admin{Encaisser} other{Payer}} : {AMOUNT}" # (contexte : valider un paiement de 20,00 €)
|
||||
online_payment_disabled: "Le payment par carte bancaire n'est pas disponible. Merci de contacter directement l'accueil du Fablab."
|
||||
please_select_a_member_first: "Veuillez tout d'abord sélectionner un membre"
|
||||
change_the_reservation: "Modifier la réservation"
|
||||
you_can_shift_this_reservation_on_the_following_slots: "Vous pouvez déplacer cette réservation sur les créneaux suivants :"
|
||||
confirmation_required: "Confirmation requise"
|
||||
@ -303,10 +315,13 @@ fr:
|
||||
unable_to_delete_the_event_because_some_users_alredy_booked_it: "Impossible de supprimer l'évènement, il est peut-être déjà réservé par certains utilisateurs."
|
||||
cancel_the_reservation: "Annuler la réservation"
|
||||
do_you_really_want_to_cancel_this_reservation_this_apply_to_all_booked_tickets: "Êtes vous sur de vouloir annuler cette réservation? Ceci s'applique à TOUTES les places réservées."
|
||||
reservation_was_successfully_cancelled: "La réservation a bien été annulée."
|
||||
cancellation_failed: "L'annulation a échoué."
|
||||
event_is_over: "L'évènement est terminé."
|
||||
thanks_for_coming: "Merci d'avoir participé !"
|
||||
view_event_list: "Voir les évènements à venir"
|
||||
share_on_facebook: "Partager sur Facebook"
|
||||
share_on_twitter: "Partager sur Twitter"
|
||||
|
||||
calendar:
|
||||
# calendrier publique
|
||||
|
@ -27,23 +27,14 @@ fr:
|
||||
email_address: "Adresse de courriel"
|
||||
pseudonym: "Pseudonyme"
|
||||
all_day: "Toute la journée"
|
||||
reservation_was_successfully_cancelled: "La réservation a bien été annulée."
|
||||
title: "Titre"
|
||||
total_: "TOTAL :"
|
||||
dates: "Dates"
|
||||
thank_you_your_payment_has_been_successfully_registered: "Merci. Votre paiement a bien été pris en compte !"
|
||||
name: "Nom"
|
||||
step_N: "Étape {INDEX}"
|
||||
themes: "Thématiques"
|
||||
online_payment: "Paiement en ligne"
|
||||
type: "Type"
|
||||
partner: "Partenaire"
|
||||
standard: "Standard"
|
||||
year: "Année"
|
||||
month: "Mois"
|
||||
from_date: "Du" # context: date. eg: "from 01/01 to 01/05"
|
||||
from_time: "De" # context: time. eg. "from 18:00 to 21:00"
|
||||
to_time: "à" # context: time. eg. "from 18:00 to 21:00"
|
||||
or: "ou"
|
||||
and: "et"
|
||||
change_my_data: "Modifier mes données"
|
||||
@ -54,15 +45,10 @@ fr:
|
||||
_for_your_changes_to_take_effect: "pour que les modifications soient prises en compte."
|
||||
illustration: "Visuel"
|
||||
add_an_illustration: "Ajouter un visuel"
|
||||
description_is_required: "La description est requise."
|
||||
name_is_required: "Le nom est requis."
|
||||
all_themes: "Toutes les thématiques"
|
||||
filter: 'Filtre'
|
||||
export_is_running_you_ll_be_notified_when_its_ready: "L'export est en cours. Vous serez notifié lorsqu'il sera prêt."
|
||||
share_on_facebook: "Partager sur Facebook"
|
||||
share_on_twitter: "Partager sur Twitter"
|
||||
payment_card_error: "Un problème est survenu avec votre carte bancaire :"
|
||||
online_payment_disabled: "Le payment par carte bancaire n'est pas disponible. Merci de contacter directement l'accueil du Fablab."
|
||||
unexpected_error_occurred: "Une erreur inattendue est survenue"
|
||||
|
||||
messages:
|
||||
@ -131,20 +117,19 @@ fr:
|
||||
|
||||
machine:
|
||||
# formulaire d'édition d'une machine
|
||||
machine_form:
|
||||
name: "Nom"
|
||||
name_is_required: "Le nom est requis."
|
||||
illustration: "Visuel"
|
||||
add_an_illustration: "Ajouter un visuel"
|
||||
description: "Description"
|
||||
description_is_required: "La description est requise."
|
||||
technical_specifications: "Caractéristiques techniques"
|
||||
technical_specifications_are_required: "Les caractéristiques techniques sont requises."
|
||||
attached_files_pdf: "Pièces jointes (pdf)"
|
||||
attach_a_file: "Joindre un fichier"
|
||||
add_an_attachment: "Ajouter une pièce jointe"
|
||||
disable_machine: "Désactiver la machine"
|
||||
validate_your_machine: "Valider votre machine"
|
||||
name: "Nom"
|
||||
name_is_required: "Le nom est requis."
|
||||
illustration: "Visuel"
|
||||
add_an_illustration: "Ajouter un visuel"
|
||||
description: "Description"
|
||||
description_is_required: "La description est requise."
|
||||
technical_specifications: "Caractéristiques techniques"
|
||||
technical_specifications_are_required: "Les caractéristiques techniques sont requises."
|
||||
attached_files_pdf: "Pièces jointes (pdf)"
|
||||
attach_a_file: "Joindre un fichier"
|
||||
add_an_attachment: "Ajouter une pièce jointe"
|
||||
disable_machine: "Désactiver la machine"
|
||||
validate_your_machine: "Valider votre machine"
|
||||
|
||||
plan_subscribe:
|
||||
# cadre de souscription à un abonnement
|
||||
@ -170,9 +155,12 @@ fr:
|
||||
|
||||
event:
|
||||
# formulaire d'édition d'un événement
|
||||
title: "Titre"
|
||||
title_is_required: "Le titre est requis."
|
||||
matching_visual: "Visuel associé"
|
||||
choose_a_picture: "Choisir une image"
|
||||
description: "Description"
|
||||
description_is_required: "La description est requise."
|
||||
attachments: "Pièces jointes"
|
||||
add_a_new_file: "Ajouter un nouveau fichier"
|
||||
event_type: "Type d'évènement"
|
||||
@ -404,62 +392,60 @@ fr:
|
||||
|
||||
space:
|
||||
# formulaire de création/modification d'un espace
|
||||
space:
|
||||
name: "Nom"
|
||||
name_is_required: "Le nom est requis."
|
||||
illustration: "Visuel"
|
||||
add_an_illustration: "Ajouter un visuel"
|
||||
description: "Description"
|
||||
description_is_required: "La description est requise."
|
||||
characteristics: "Caractéristiques"
|
||||
characteristics_are_required: "Les caractéristiques sont requises."
|
||||
attached_files_pdf: "Pièces jointes (pdf)"
|
||||
attach_a_file: "Joindre un fichier"
|
||||
add_an_attachment: "Ajouter une pièce jointe"
|
||||
default_places: "Maximum de places par défaut"
|
||||
default_places_is_required: "Le nombre de places maximum par défaut est requis."
|
||||
disable_space: "Désactiver l'espace"
|
||||
name: "Nom"
|
||||
name_is_required: "Le nom est requis."
|
||||
illustration: "Visuel"
|
||||
add_an_illustration: "Ajouter un visuel"
|
||||
description: "Description"
|
||||
description_is_required: "La description est requise."
|
||||
characteristics: "Caractéristiques"
|
||||
characteristics_are_required: "Les caractéristiques sont requises."
|
||||
attached_files_pdf: "Pièces jointes (pdf)"
|
||||
attach_a_file: "Joindre un fichier"
|
||||
add_an_attachment: "Ajouter une pièce jointe"
|
||||
default_places: "Maximum de places par défaut"
|
||||
default_places_is_required: "Le nombre de places maximum par défaut est requis."
|
||||
disable_space: "Désactiver l'espace"
|
||||
|
||||
cart:
|
||||
# module de panier d'achat de réservations
|
||||
cart:
|
||||
summary: "Résumé"
|
||||
select_one_or_more_slots_in_the_calendar: "Sélectionnez un {SINGLE, select, true{créneau} other{ou plusieurs créneaux}} dans le calendrier"
|
||||
you_ve_just_selected_the_slot: "Vous venez de sélectionner le créneau :"
|
||||
datetime_to_time: "{START_DATETIME} à {END_TIME}" # eg: Thursday, September 4 1986 8:30 PM to 10:00 PM
|
||||
cost_of_TYPE: "Coût de {TYPE, select, Machine{l'heure machine} Training{la formation} other{l'élément}}"
|
||||
offer_this_slot: "Offrir ce créneau"
|
||||
confirm_this_slot: "Valider ce créneau"
|
||||
remove_this_slot: "Supprimer ce créneau"
|
||||
to_benefit_from_attractive_prices: "Pour bénéficier de prix avantageux"
|
||||
view_our_subscriptions: "Consultez nos abonnements"
|
||||
or: "ou"
|
||||
you_ve_just_selected_a_: "Vous venez de sélectionner un"
|
||||
_subscription: "abonnement"
|
||||
cost_of_the_subscription: "Coût de l'abonnement"
|
||||
confirm_and_pay: "Valider et payer"
|
||||
you_have_settled_the_following_TYPE: "Vous avez réglé {TYPE, select, Machine{les créneaux machines suivants} Training{la formation suivante} other{les éléments suivants}} :"
|
||||
you_have_settled_a_: "Vous avez réglé un"
|
||||
total_: "TOTAL :"
|
||||
thank_you_your_payment_has_been_successfully_registered: "Merci. Votre paiement a bien été pris en compte !"
|
||||
your_invoice_will_be_available_soon_from_your_: "Votre facture sera bientôt disponible depuis votre"
|
||||
dashboard: "Tableau de bord"
|
||||
i_want_to_change_the_following_reservation: "Je souhaite modifier ma réservation suivante :"
|
||||
cancel_my_modification: "Annuler ma modification"
|
||||
select_a_new_slot_in_the_calendar: "Sélectionnez un nouveau créneau dans le calendrier"
|
||||
cancel_my_selection: "Annuler ma sélection"
|
||||
tags_of_the_original_slot: "Étiquettes du créneau d'origine :"
|
||||
tags_of_the_destination_slot: "Étiquettes du créneau de destination :"
|
||||
confirm_my_modification: "Valider ma modification"
|
||||
your_booking_slot_was_successfully_moved_from_: "Votre créneau de réservation a bien été déplacé du"
|
||||
to_date: "au" # context: date. eg: "from 01/01 to 01/05"
|
||||
please_select_a_member_first: "Veuillez tout d'abord sélectionner un membre"
|
||||
unable_to_change_the_reservation: "Impossible de modifier la réservation"
|
||||
confirmation_required: "Confirmation requise"
|
||||
do_you_really_want_to_cancel_this_reservation: "Êtes-vous sur de vouloir annuler cette réservation ?"
|
||||
reservation_was_cancelled_successfully: "La réservation a bien été annulée."
|
||||
cancellation_failed: "L'annulation a échouée."
|
||||
confirm_payment_of_html: "{ROLE, select, admin{Paiement sur place} other{Payer}} : {AMOUNT}" # (contexte : valider mon paiement de 20,00 €)
|
||||
a_problem_occurred_during_the_payment_process_please_try_again_later: "Il y a eu un problème lors de la procédure de paiement. Veuillez réessayer plus tard."
|
||||
none: "Aucune"
|
||||
online_payment_disabled: "Le payment par carte bancaire n'est pas disponible. Merci de contacter directement l'accueil du Fablab."
|
||||
summary: "Résumé"
|
||||
select_one_or_more_slots_in_the_calendar: "Sélectionnez un {SINGLE, select, true{créneau} other{ou plusieurs créneaux}} dans le calendrier"
|
||||
you_ve_just_selected_the_slot: "Vous venez de sélectionner le créneau :"
|
||||
datetime_to_time: "{START_DATETIME} à {END_TIME}" # eg: Thursday, September 4 1986 8:30 PM to 10:00 PM
|
||||
cost_of_TYPE: "Coût de {TYPE, select, Machine{l'heure machine} Training{la formation} other{l'élément}}"
|
||||
offer_this_slot: "Offrir ce créneau"
|
||||
confirm_this_slot: "Valider ce créneau"
|
||||
remove_this_slot: "Supprimer ce créneau"
|
||||
to_benefit_from_attractive_prices: "Pour bénéficier de prix avantageux"
|
||||
view_our_subscriptions: "Consultez nos abonnements"
|
||||
or: "ou"
|
||||
you_ve_just_selected_a_: "Vous venez de sélectionner un"
|
||||
_subscription: "abonnement"
|
||||
cost_of_the_subscription: "Coût de l'abonnement"
|
||||
confirm_and_pay: "Valider et payer"
|
||||
you_have_settled_the_following_TYPE: "Vous avez réglé {TYPE, select, Machine{les créneaux machines suivants} Training{la formation suivante} other{les éléments suivants}} :"
|
||||
you_have_settled_a_: "Vous avez réglé un"
|
||||
total_: "TOTAL :"
|
||||
thank_you_your_payment_has_been_successfully_registered: "Merci. Votre paiement a bien été pris en compte !"
|
||||
your_invoice_will_be_available_soon_from_your_: "Votre facture sera bientôt disponible depuis votre"
|
||||
dashboard: "Tableau de bord"
|
||||
i_want_to_change_the_following_reservation: "Je souhaite modifier ma réservation suivante :"
|
||||
cancel_my_modification: "Annuler ma modification"
|
||||
select_a_new_slot_in_the_calendar: "Sélectionnez un nouveau créneau dans le calendrier"
|
||||
cancel_my_selection: "Annuler ma sélection"
|
||||
tags_of_the_original_slot: "Étiquettes du créneau d'origine :"
|
||||
tags_of_the_destination_slot: "Étiquettes du créneau de destination :"
|
||||
confirm_my_modification: "Valider ma modification"
|
||||
your_booking_slot_was_successfully_moved_from_: "Votre créneau de réservation a bien été déplacé du"
|
||||
to_date: "au" # context: date. eg: "from 01/01 to 01/05"
|
||||
please_select_a_member_first: "Veuillez tout d'abord sélectionner un membre"
|
||||
unable_to_change_the_reservation: "Impossible de modifier la réservation"
|
||||
confirmation_required: "Confirmation requise"
|
||||
do_you_really_want_to_cancel_this_reservation: "Êtes-vous sur de vouloir annuler cette réservation ?"
|
||||
reservation_was_cancelled_successfully: "La réservation a bien été annulée."
|
||||
cancellation_failed: "L'annulation a échouée."
|
||||
confirm_payment_of_html: "{ROLE, select, admin{Paiement sur place} other{Payer}} : {AMOUNT}" # (contexte : valider mon paiement de 20,00 €)
|
||||
a_problem_occurred_during_the_payment_process_please_try_again_later: "Il y a eu un problème lors de la procédure de paiement. Veuillez réessayer plus tard."
|
||||
none: "Aucune"
|
||||
online_payment_disabled: "Le payment par carte bancaire n'est pas disponible. Merci de contacter directement l'accueil du Fablab."
|
||||
|
Loading…
x
Reference in New Issue
Block a user