diff --git a/app/frontend/src/javascript/controllers/admin/invoices.js b/app/frontend/src/javascript/controllers/admin/invoices.js
index cae4d2613..842476650 100644
--- a/app/frontend/src/javascript/controllers/admin/invoices.js
+++ b/app/frontend/src/javascript/controllers/admin/invoices.js
@@ -58,7 +58,7 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I
prefix: settings.invoice_prefix,
nextId: 40,
date: moment().format('DDMMYYYY'),
- templateUrl: 'editPrefix.html'
+ templateUrl: '../../../../templates/admin/invoices/settings/editPrefix.html'
};
// Invoices parameters
@@ -67,22 +67,22 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I
reference: {
model: '',
help: null,
- templateUrl: 'editReference.html'
+ templateUrl: '../../../../templates/admin/invoices/settings/editReference.html'
},
code: {
model: '',
active: true,
- templateUrl: 'editCode.html'
+ templateUrl: '../../../../templates/admin/invoices/settings/editCode.html'
},
number: {
model: '',
help: null,
- templateUrl: 'editNumber.html'
+ templateUrl: '../../../../templates/admin/invoices/settings/editNumber.html'
},
VAT: {
rate: 19.6,
active: false,
- templateUrl: 'editVAT.html'
+ templateUrl: '../../../../templates/admin/invoices/settings/editVAT.html'
},
text: {
content: ''
@@ -646,7 +646,7 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I
// otherwise, open a modal to ask for the stripe keys
const modalInstance = $uibModal.open({
- templateUrl: 'stripeKeys.html',
+ templateUrl: '../../../../templates/admin/invoices/settings/stripeKeys.html',
controller: 'StripeKeysModalController',
resolve: {
stripeKeys: ['Setting', function (Setting) { return Setting.query({ names: "['stripe_public_key', 'stripe_secret_key']" }).$promise; }]
diff --git a/app/frontend/src/javascript/controllers/calendar.js b/app/frontend/src/javascript/controllers/calendar.js
index 5aee10919..26cd7666c 100644
--- a/app/frontend/src/javascript/controllers/calendar.js
+++ b/app/frontend/src/javascript/controllers/calendar.js
@@ -106,7 +106,7 @@ Application.Controllers.controller('CalendarController', ['$scope', '$state', '$
$scope.openFilterAside = () =>
$aside.open({
- templateUrl: 'filterAside.html',
+ templateUrl: '../../../templates/calendar/filterAside.html',
placement: 'right',
size: 'md',
backdrop: false,
diff --git a/app/frontend/src/javascript/directives/settings/select-multiple-setting.js b/app/frontend/src/javascript/directives/settings/select-multiple-setting.js
index 279cec9e9..743fba8a4 100644
--- a/app/frontend/src/javascript/directives/settings/select-multiple-setting.js
+++ b/app/frontend/src/javascript/directives/settings/select-multiple-setting.js
@@ -44,7 +44,7 @@ Application.Directives.directive('selectMultipleSetting', ['Setting', 'growl', '
*/
$scope.addItem = function () {
$uibModal.open({
- templateUrl: 'newSelectOption.html',
+ templateUrl: '../../../../templates/admin/settings/newSelectOption.html',
resolve: {
titleNew: function () { return $scope.titleNew; },
descriptionNew: function () { return $scope.descriptionNew; }
diff --git a/app/frontend/src/javascript/lib/devise-modal.js b/app/frontend/src/javascript/lib/devise-modal.js
index 200b659a6..6c5dd3244 100644
--- a/app/frontend/src/javascript/lib/devise-modal.js
+++ b/app/frontend/src/javascript/lib/devise-modal.js
@@ -28,7 +28,7 @@
}
if (!promise) {
promise = $uibModal.open({
- templateUrl: 'deviseModal.html',
+ templateUrl: '../../../templates/shared/deviseModal.html',
controller: function ($scope, $uibModalInstance) {
const user = $scope.user = {};
$scope.login = function () {
diff --git a/app/frontend/templates/admin/invoices/payment.html b/app/frontend/templates/admin/invoices/payment.html
index 019845fc0..037b2a310 100644
--- a/app/frontend/templates/admin/invoices/payment.html
+++ b/app/frontend/templates/admin/invoices/payment.html
@@ -61,54 +61,3 @@
-
-
diff --git a/app/frontend/templates/admin/invoices/settings.html b/app/frontend/templates/admin/invoices/settings.html
index 84910a372..247e97d72 100644
--- a/app/frontend/templates/admin/invoices/settings.html
+++ b/app/frontend/templates/admin/invoices/settings.html
@@ -94,43 +94,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/frontend/templates/admin/invoices/settings/editCode.html b/app/frontend/templates/admin/invoices/settings/editCode.html
new file mode 100644
index 000000000..3ac4e5d2e
--- /dev/null
+++ b/app/frontend/templates/admin/invoices/settings/editCode.html
@@ -0,0 +1,27 @@
+
diff --git a/app/frontend/templates/admin/invoices/settings/editNumber.html b/app/frontend/templates/admin/invoices/settings/editNumber.html
new file mode 100644
index 000000000..c37d107f3
--- /dev/null
+++ b/app/frontend/templates/admin/invoices/settings/editNumber.html
@@ -0,0 +1,31 @@
+
+
+
+
+
{{ 'app.admin.invoices.elements' }}
+
+ - {{ 'app.admin.invoices.year' | translate }}
+ - {{ 'app.admin.invoices.month' | translate }}
+ - {{ 'app.admin.invoices.day' | translate }}
+ - {{ 'app.admin.invoices.order_num' | translate }}
+
+
+
+
+
{{ 'app.admin.invoices.model' }}
+
+
+
+
{{ 'app.admin.invoices.documentation' }}
+
+
+
+
+
+
+
diff --git a/app/frontend/templates/admin/invoices/settings/editPrefix.html b/app/frontend/templates/admin/invoices/settings/editPrefix.html
new file mode 100644
index 000000000..7c59f081c
--- /dev/null
+++ b/app/frontend/templates/admin/invoices/settings/editPrefix.html
@@ -0,0 +1,20 @@
+
+
+
+
+ {{ 'app.admin.invoices.prefix_info' }}
+
+
+
+
+
+
+
+
+
+
diff --git a/app/frontend/templates/admin/invoices/settings/editReference.html b/app/frontend/templates/admin/invoices/settings/editReference.html
new file mode 100644
index 000000000..3cb09f768
--- /dev/null
+++ b/app/frontend/templates/admin/invoices/settings/editReference.html
@@ -0,0 +1,34 @@
+
+
+
+
+
Éléments
+
+ - {{ 'app.admin.invoices.year' | translate }}
+ - {{ 'app.admin.invoices.month' | translate }}
+ - {{ 'app.admin.invoices.day' | translate }}
+ - {{ 'app.admin.invoices.num_of_invoice' | translate }}
+ - {{ 'app.admin.invoices.online_sales' | translate }}
+ <%# - {{ 'app.admin.invoices.wallet' | translate }}
%>
+ - {{ 'app.admin.invoices.refund' | translate }}
+
+
+
+
+
{{ 'app.admin.invoices.model' }}
+
+
+
+
{{ 'app.admin.invoices.documentation' }}
+
+
+
+
+
+
+
diff --git a/app/frontend/templates/admin/invoices/settings/editVAT.html b/app/frontend/templates/admin/invoices/settings/editVAT.html
new file mode 100644
index 000000000..8ffd8ce9a
--- /dev/null
+++ b/app/frontend/templates/admin/invoices/settings/editVAT.html
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
{{ 'app.admin.invoices.VAT_history' }}
+
+
+
+
+
diff --git a/app/frontend/templates/admin/invoices/settings/stripeKeys.html b/app/frontend/templates/admin/invoices/settings/stripeKeys.html
new file mode 100644
index 000000000..a468239f9
--- /dev/null
+++ b/app/frontend/templates/admin/invoices/settings/stripeKeys.html
@@ -0,0 +1,48 @@
+
diff --git a/app/frontend/templates/admin/settings/newSelectOption.html b/app/frontend/templates/admin/settings/newSelectOption.html
new file mode 100644
index 000000000..5be384d90
--- /dev/null
+++ b/app/frontend/templates/admin/settings/newSelectOption.html
@@ -0,0 +1,15 @@
+
diff --git a/app/frontend/templates/admin/settings/select-multiple.html b/app/frontend/templates/admin/settings/select-multiple.html
index 09cd1dad3..be53200c8 100644
--- a/app/frontend/templates/admin/settings/select-multiple.html
+++ b/app/frontend/templates/admin/settings/select-multiple.html
@@ -15,21 +15,3 @@
-
-
diff --git a/app/frontend/templates/calendar/calendar.html b/app/frontend/templates/calendar/calendar.html
index 58cb59fb3..1df54dab3 100644
--- a/app/frontend/templates/calendar/calendar.html
+++ b/app/frontend/templates/calendar/calendar.html
@@ -47,16 +47,3 @@
-
-
-
diff --git a/app/frontend/templates/calendar/filterAside.html b/app/frontend/templates/calendar/filterAside.html
new file mode 100644
index 000000000..27e3d9fbb
--- /dev/null
+++ b/app/frontend/templates/calendar/filterAside.html
@@ -0,0 +1,9 @@
+
diff --git a/config/webpack/environment.js b/config/webpack/environment.js
index 765cd21dc..3c0c2e419 100644
--- a/config/webpack/environment.js
+++ b/config/webpack/environment.js
@@ -1,5 +1,6 @@
const { environment } = require('@rails/webpacker');
const htmlErb = require('./loaders/html_erb');
+const js = require('./loaders/js');
const jsErb = require('./loaders/js_erb');
const sass = require('./loaders/sass');
const sassErb = require('./loaders/sass_erb');
@@ -21,6 +22,7 @@ environment.plugins.prepend('Provide', new webpack.ProvidePlugin({
environment.loaders.prepend('js-erb', jsErb);
environment.loaders.prepend('html-erb', htmlErb);
environment.loaders.prepend('sass-erb', sassErb);
+environment.loaders.prepend('js', js);
environment.loaders.append('html', html);
environment.loaders.append('sass', sass);
diff --git a/config/webpack/loaders/html.js b/config/webpack/loaders/html.js
index 412b95147..cd3506af1 100644
--- a/config/webpack/loaders/html.js
+++ b/config/webpack/loaders/html.js
@@ -1,4 +1,18 @@
+const path = require('path');
+
module.exports = {
test: /\.html$/i,
- loader: 'html-loader'
+ exclude: /node_modules/,
+ use: [
+ {
+ loader: 'ngtemplate-loader',
+ options: {
+ relativeTo: path.join(__dirname, '../../../app/frontend/templates'),
+ requireAngular: true
+ }
+ },
+ {
+ loader: 'html-loader'
+ }
+ ]
};
diff --git a/config/webpack/loaders/html_erb.js b/config/webpack/loaders/html_erb.js
index a2d552295..52a15df75 100644
--- a/config/webpack/loaders/html_erb.js
+++ b/config/webpack/loaders/html_erb.js
@@ -1,7 +1,21 @@
+const path = require('path');
+
module.exports = {
test: /\.html\.erb$/,
- loader: [
- 'html-loader',
- 'rails-erb-loader'
+ exclude: /node_modules/,
+ use: [
+ {
+ loader: 'ngtemplate-loader',
+ options: {
+ relativeTo: path.join(__dirname, '../../../app/frontend/templates'),
+ requireAngular: true
+ }
+ },
+ {
+ loader: 'html-loader'
+ },
+ {
+ loader: 'rails-erb-loader'
+ }
]
};
diff --git a/config/webpack/loaders/js.js b/config/webpack/loaders/js.js
new file mode 100644
index 000000000..85ec79153
--- /dev/null
+++ b/config/webpack/loaders/js.js
@@ -0,0 +1,12 @@
+module.exports = {
+ test: /\.js$/,
+ exclude: /node_modules/,
+ use: [
+ {
+ loader: 'auto-ngtemplate-loader',
+ options: {
+ pathResolver: (p) => p.replace(/src\/javascript\/.*$/, 'templates')
+ }
+ }
+ ]
+};
diff --git a/config/webpack/loaders/js_erb.js b/config/webpack/loaders/js_erb.js
index d98216819..41586e03f 100644
--- a/config/webpack/loaders/js_erb.js
+++ b/config/webpack/loaders/js_erb.js
@@ -2,10 +2,18 @@ module.exports = {
test: /\.js\.erb$/,
enforce: 'pre',
exclude: /node_modules/,
- use: [{
- loader: 'rails-erb-loader',
- options: {
- runner: (/^win/.test(process.platform) ? 'ruby ' : '') + 'bin/rails runner'
+ use: [
+ {
+ loader: 'auto-ngtemplate-loader',
+ options: {
+ pathResolver: (p) => p.replace(/src\/javascript\/.*$/, 'templates')
+ }
+ },
+ {
+ loader: 'rails-erb-loader',
+ options: {
+ runner: (/^win/.test(process.platform) ? 'ruby ' : '') + 'bin/rails runner'
+ }
}
- }]
+ ]
};
diff --git a/package.json b/package.json
index 5d1f38ffb..a4a62fad3 100644
--- a/package.json
+++ b/package.json
@@ -17,6 +17,7 @@
},
"license": "AGPL-3.0-only",
"devDependencies": {
+ "auto-ngtemplate-loader": "^3.1.0",
"eslint": "~6.8.0",
"eslint-config-standard": "~14.1.1",
"eslint-plugin-import": "~2.20.1",
@@ -25,6 +26,7 @@
"eslint-plugin-promise": "~4.2.1",
"eslint-plugin-standard": "~4.0.1",
"html-loader": "^1.3.0",
+ "ngtemplate-loader": "^2.1.0",
"rails-erb-loader": "^5.5.2",
"resolve-url-loader": "^3.1.1",
"webpack": "^4.44.1",
diff --git a/yarn.lock b/yarn.lock
index 1b306b788..57b5a95b4 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1615,6 +1615,17 @@ atob@^2.1.2:
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
+auto-ngtemplate-loader@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/auto-ngtemplate-loader/-/auto-ngtemplate-loader-3.1.0.tgz#2b71b8943c976d64e08a2ca84ca85beb2579e6d2"
+ integrity sha512-HUvEuVZ45EW74ejU2H4zgSRxKdpGgtOIt619g9gwZGHlaRLsCwA50HiH0JcC968j6mbBmijV5fZgLSLlItaltA==
+ dependencies:
+ html-loader "~1.3.0"
+ loader-utils "~2.0.0"
+ lodash "~4.17.20"
+ ngtemplate-loader "~2.1.0"
+ var-validator "0.0.3"
+
autoprefixer@^9.6.1:
version "9.8.6"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f"
@@ -4235,6 +4246,16 @@ html-loader@^1.3.0:
loader-utils "^2.0.0"
schema-utils "^2.7.0"
+html-loader@~1.3.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/html-loader/-/html-loader-1.3.1.tgz#16ae142e23daa4f0d67a2ac2fccaa087be5d64e2"
+ integrity sha512-zL+z9mIhcXEXuHqzriTwZR4ZslZHi5IFNhjyJHyhJlhEgR8VtLTPbqeR5TdbNtHtb88zbVmlNB8ia2vr/GTrbA==
+ dependencies:
+ html-minifier-terser "^5.1.1"
+ htmlparser2 "^4.1.0"
+ loader-utils "^2.0.0"
+ schema-utils "^2.7.1"
+
html-minifier-terser@^5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054"
@@ -4913,16 +4934,16 @@ jsbn@~0.1.0:
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
+jsesc@^0.5.0, jsesc@~0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
+ integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
+
jsesc@^2.5.1:
version "2.5.2"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
-jsesc@~0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
- integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
-
json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
@@ -5079,7 +5100,7 @@ loader-utils@1.2.3:
emojis-list "^2.0.0"
json5 "^1.0.1"
-loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0:
+loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
@@ -5088,7 +5109,7 @@ loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0:
emojis-list "^3.0.0"
json5 "^1.0.1"
-loader-utils@^2.0.0:
+loader-utils@^2.0.0, loader-utils@~2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0"
integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==
@@ -5165,7 +5186,7 @@ lodash.uniq@^4.5.0:
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
-lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.19, lodash@^4.17.5, lodash@~4.17.10:
+lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.19, lodash@^4.17.5, lodash@~4.17.10, lodash@~4.17.20:
version "4.17.20"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
@@ -5632,6 +5653,14 @@ ngUpload@0.5:
resolved "https://registry.yarnpkg.com/ngUpload/-/ngUpload-0.5.21.tgz#86285977db61f03e4080951e4712fa3b1921978c"
integrity sha512-QHfUOR/ASzDqXvPArEMJJBUHn72wY2jbxKGdlQvQJJCtxqnVjRFg0X5hXR40uoC1meaVzCnnSGDJwlY6JWjvmQ==
+ngtemplate-loader@^2.1.0, ngtemplate-loader@~2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/ngtemplate-loader/-/ngtemplate-loader-2.1.0.tgz#fb71c614c509b114b3bb28a828cb608757531e96"
+ integrity sha512-8t1a2YOb1vk1A4C74o1ru+T7UeyKDdABWXtGDkjBupmOaV/RPCXjLLF4UZMI45Lfpebkr2p4NlVSROXRshkIhg==
+ dependencies:
+ jsesc "^0.5.0"
+ loader-utils "^1.0.2"
+
nice-try@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
@@ -8712,6 +8741,11 @@ validate-npm-package-license@^3.0.1:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"
+var-validator@0.0.3:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/var-validator/-/var-validator-0.0.3.tgz#8c20155a350373233a542d3e5aed046c90891d70"
+ integrity sha1-jCAVWjUDcyM6VC0+Wu0EbJCJHXA=
+
vary@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"