config of logged routes

This commit is contained in:
tykayn 2019-07-04 14:07:49 +02:00
parent 8e3ba4ed5f
commit 97717179cf
6 changed files with 391 additions and 391 deletions

0
LICENSE Normal file → Executable file
View File

View File

@ -88,7 +88,7 @@
{% else %} {% else %}
btn-default btn-default
{% endif %}" href="{{ path('import') }}" {% endif %}" href="{{ path('import') }}"
> >
<i class="fa fa-arrow-circle-o-up"></i> <i class="fa fa-arrow-circle-o-up"></i>
Import Import
</a> </a>
@ -100,7 +100,7 @@
{% else %} {% else %}
btn-default btn-default
{% endif %}" href="{{ path('previsionnel') }}" {% endif %}" href="{{ path('previsionnel') }}"
> >
<i class="fa fa-arrow-circle-o-up"></i> <i class="fa fa-arrow-circle-o-up"></i>
Prévisionnel Prévisionnel
</a> </a>

View File

@ -1,62 +1,61 @@
fos_user_profile: fos_user_profile:
resource: "@FOSUserBundle/Resources/config/routing/profile.xml" resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
prefix: /profile prefix: /profile
fos_user_register: fos_user_register:
resource: "@FOSUserBundle/Resources/config/routing/registration.xml" resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
prefix: /register prefix: /register
fos_user_resetting: fos_user_resetting:
resource: "@FOSUserBundle/Resources/config/routing/resetting.xml" resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
prefix: /resetting prefix: /resetting
fos_user_change_password: fos_user_change_password:
resource: "@FOSUserBundle/Resources/config/routing/change_password.xml" resource: "@FOSUserBundle/Resources/config/routing/change_password.xml"
prefix: /profile prefix: /profile
app: app:
resource: '@AppBundle/Controller/' resource: '@AppBundle/Controller/'
type: annotation type: annotation
## app specific stuff ## app specific stuff
app_festival: app_festival:
resource: "@AppBundle/Controller/FestivalController.php" resource: "@AppBundle/Controller/FestivalController.php"
type: annotation type: annotation
# legal info pages # legal info pages
app_legal: app_legal:
resource: "@AppBundle/Controller/LegalController.php" resource: "@AppBundle/Controller/LegalController.php"
type: annotation type: annotation
app_product_category: app_product_category:
resource: "@AppBundle/Controller/ProductCategoryController.php" resource: "@AppBundle/Controller/ProductCategoryController.php"
type: annotation type: annotation
app_product: app_product:
resource: "@AppBundle/Controller/ProductController.php" resource: "@AppBundle/Controller/ProductController.php"
type: annotation type: annotation
app_sell_record: app_sell_record:
resource: "@AppBundle/Controller/SellRecordController.php" resource: "@AppBundle/Controller/SellRecordController.php"
type: annotation type: annotation
# async calls
get_my_products: get_my_products:
path: /get-my-products path: /logged/get-my-products
defaults: { _controller: AppBundle:Default:getMyProducts } defaults: { _controller: AppBundle:Default:getMyProducts }
get_my_expenses: get_my_expenses:
path: /get-my-expenses path: /logged/get-my-expenses
defaults: { _controller: AppBundle:Default:getMyExpenses } defaults: { _controller: AppBundle:Default:getMyExpenses }
save_my_expenses: save_my_expenses:
path: /save-my-expenses path: /logged/save-my-expenses
defaults: { _controller: AppBundle:Default:saveMyExpenses } defaults: { _controller: AppBundle:Default:saveMyExpenses }
add_selling: add_selling:
path: /add-selling path: /logged/add-selling
defaults: { _controller: AppBundle:Default:addSelling } defaults: { _controller: AppBundle:Default:addSelling }
fos_user: fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.xml" resource: "@FOSUserBundle/Resources/config/routing/all.xml"
# emails # emails
tktest_mail: tktest_mail:
path: /admin/test-email path: /admin/test-email
defaults: { _controller: AppBundle:Default:email } defaults: { _controller: AppBundle:Default:email }

View File

@ -34,6 +34,7 @@ security:
access_control: access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/dashboard$, role: IS_AUTHENTICATED_REMEMBERED } - { path: ^/dashboard$, role: IS_AUTHENTICATED_REMEMBERED }
- { path: ^/logged$, role: IS_AUTHENTICATED_REMEMBERED }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN } - { path: ^/admin/, role: ROLE_ADMIN }

View File

@ -16,375 +16,375 @@ console.log('hello console for main.js');
var stuff = ['initialstuff']; var stuff = ['initialstuff'];
angular angular
.module('caisse', []) .module('caisse', [])
.controller('CaisseCtrl', ['$scope', '$http', '$timeout', function ($scope, $http, $timeout) { .controller('CaisseCtrl', ['$scope', '$http', '$timeout', function ($scope, $http, $timeout) {
$scope.productsFromDB = []; // loaded products $scope.productsFromDB = []; // loaded products
$scope.categories = []; // product categories $scope.categories = []; // product categories
$scope.sellingComment = "un gens"; // comment about the client or the current selling $scope.sellingComment = "un gens"; // comment about the client or the current selling
$scope.initLoadDone = false; // becames true after first init of product loading $scope.initLoadDone = false; // becames true after first init of product loading
$scope.recentSellings = []; $scope.recentSellings = [];
$scope.lesParams = {}; $scope.lesParams = {};
$scope.countProductsSoldForActiveFestival = {}; $scope.countProductsSoldForActiveFestival = {};
$scope.paidAmount = 0; $scope.paidAmount = 0;
$scope.expressSelling = true; $scope.expressSelling = true;
$scope.pausedSelling = []; $scope.pausedSelling = [];
$scope.show_config = { $scope.show_config = {
stock_count: false, stock_count: false,
sold: true, sold : true,
}; };
$scope.activeItemsSold = []; // list of products ID to sell $scope.activeItemsSold = []; // list of products ID to sell
$scope.activeSelling = []; // list of products to sell $scope.activeSelling = []; // list of products to sell
$scope.activeFestival = { // an event where selling take place $scope.activeFestival = { // an event where selling take place
id: null, id : null,
name: "le festival", name : "le festival",
dateCreation: new Date(), dateCreation : new Date(),
chiffreAffaire: 0, chiffreAffaire: 0,
clientsCount: 0, clientsCount : 0,
commentaire: "" commentaire : ""
}; };
/** /**
* get the sum of products prices * get the sum of products prices
* @param list * @param list
* @returns {number} * @returns {number}
*/ */
$scope.sumOfList = function (list) { $scope.sumOfList = function (list) {
let counter = 0; let counter = 0;
for (let i = 0; i < list.length; i++) { for (let i = 0; i < list.length; i++) {
counter += list[i].price; counter += list[i].price;
} }
return counter; return counter;
}; };
/** /**
* sum of current selling list prices * sum of current selling list prices
* @returns {number} * @returns {number}
* @constructor * @constructor
*/ */
$scope.CurrentSellingTotal = function () { $scope.CurrentSellingTotal = function () {
return $scope.sumOfList($scope.activeSelling); return $scope.sumOfList($scope.activeSelling);
}; };
$scope.regenActiveSellingIds = function () { $scope.regenActiveSellingIds = function () {
$scope.activeItemsSold = []; $scope.activeItemsSold = [];
$scope.paidAmount = 0; $scope.paidAmount = 0;
for (let obj in $scope.activeSelling) { for (let obj in $scope.activeSelling) {
$scope.activeItemsSold.push(obj.id); $scope.activeItemsSold.push(obj.id);
} }
$scope.paidAmount += $scope.sumOfList($scope.activeSelling); $scope.paidAmount += $scope.sumOfList($scope.activeSelling);
}; };
$scope.stuff = stuff; $scope.stuff = stuff;
$scope.setActiveSelling = function (selling) { $scope.setActiveSelling = function (selling) {
$scope.activeSelling = selling; $scope.activeSelling = selling;
}; };
$scope.pauseSelling = function (selling) { $scope.pauseSelling = function (selling) {
$scope.pausedSelling.push(selling); $scope.pausedSelling.push(selling);
}; };
/** /**
* add to current sell list * add to current sell list
* @param product * @param product
*/ */
$scope.addProduct = function (product) { $scope.addProduct = function (product) {
product.stockCount--; product.stockCount--;
$scope.activeSelling.push(product); $scope.activeSelling.push(product);
$scope.activeItemsSold.push(product.id); $scope.activeItemsSold.push(product.id);
$scope.regenActiveSellingIds(); $scope.regenActiveSellingIds();
}; };
/** /**
* remove from current sell list * remove from current sell list
* @param product * @param product
*/ */
$scope.removeProduct = function (product, index) { $scope.removeProduct = function (product, index) {
product.stockCount++; product.stockCount++;
$scope.activeSelling.splice($index, 1); $scope.activeSelling.splice($index, 1);
$scope.regenActiveSellingIds() $scope.regenActiveSellingIds()
}; };
$scope.pauseSelling = function () { $scope.pauseSelling = function () {
$scope.pausedSelling.push(angular.copy($scope.activeSelling)); $scope.pausedSelling.push(angular.copy($scope.activeSelling));
$scope.activeSelling = []; $scope.activeSelling = [];
}; };
$scope.setBackPausedSelling = function (sellingList, index) { $scope.setBackPausedSelling = function (sellingList, index) {
$scope.activeSelling = angular.copy(sellingList); $scope.activeSelling = angular.copy(sellingList);
$scope.pausedSelling.splice(index, 1); $scope.pausedSelling.splice(index, 1);
}; };
$scope.clearSellingComment = function () { $scope.clearSellingComment = function () {
$scope.sellingComment = ''; $scope.sellingComment = '';
document.querySelector('#sellingCommentInput').focus(); document.querySelector('#sellingCommentInput').focus();
}; };
$scope.clearCurrentSelling = function () { $scope.clearCurrentSelling = function () {
$scope.paidAmount = 0; $scope.paidAmount = 0;
// $scope.sellingComment = ""; // $scope.sellingComment = "";
$scope.activeSelling = []; $scope.activeSelling = [];
}; };
// http related calls // http related calls
$scope.fetchProductsFromDB = function () { $scope.fetchProductsFromDB = function () {
console.log('fetch products...'); console.log('fetch products...');
$http.get('get-my-products').then((rep) => { $http.get('logged/get-my-products').then((rep) => {
console.log('ok', rep); console.log('ok', rep);
customCategories = []; customCategories = [];
for (let c of rep.data.categories) { for (let c of rep.data.categories) {
c.hidden = false; c.hidden = false;
customCategories.push(c); customCategories.push(c);
} }
console.log('customCategories', customCategories); console.log('customCategories', customCategories);
$scope.categories = customCategories; $scope.categories = customCategories;
$scope.productsFromDB = customCategories; $scope.productsFromDB = customCategories;
// $scope.recentSellings = rep.data.history; // $scope.recentSellings = rep.data.history;
// festoche // festoche
$scope.activeFestival.id = rep.data.lastFestival.id; $scope.activeFestival.id = rep.data.lastFestival.id;
$scope.activeFestival.name = rep.data.lastFestival.name; $scope.activeFestival.name = rep.data.lastFestival.name;
$scope.activeFestival.dateCreation = rep.data.lastFestival.dateCreation; $scope.activeFestival.dateCreation = rep.data.lastFestival.dateCreation;
$scope.activeFestival.commentaire = rep.data.lastFestival.commentaire; $scope.activeFestival.commentaire = rep.data.lastFestival.commentaire;
$scope.activeFestival.chiffreAffaire = rep.data.lastFestival.chiffreAffaire; $scope.activeFestival.chiffreAffaire = rep.data.lastFestival.chiffreAffaire;
$scope.activeFestival.fondDeCaisseAvant = rep.data.lastFestival.fondDeCaisseAvant; $scope.activeFestival.fondDeCaisseAvant = rep.data.lastFestival.fondDeCaisseAvant;
$scope.activeFestival.fondDeCaisseApres = rep.data.lastFestival.fondDeCaisseApres; $scope.activeFestival.fondDeCaisseApres = rep.data.lastFestival.fondDeCaisseApres;
$scope.activeFestival.clientsCount = rep.data.lastFestival.clientsCount; $scope.activeFestival.clientsCount = rep.data.lastFestival.clientsCount;
// stat count for items // stat count for items
$scope.countProductsSoldForActiveFestival = rep.data.lastFestival.sold; $scope.countProductsSoldForActiveFestival = rep.data.lastFestival.sold;
console.log(' $scope.countProductsSoldForActiveFestival', $scope.countProductsSoldForActiveFestival); console.log(' $scope.countProductsSoldForActiveFestival', $scope.countProductsSoldForActiveFestival);
//done //done
$scope.initLoadDone = true; $scope.initLoadDone = true;
}, (err) => { }, (err) => {
console.log(err); console.log(err);
$scope.initLoadDone = true; $scope.initLoadDone = true;
}); });
}; };
/** /**
* sell one product, assuming the client has the right amount of money * sell one product, assuming the client has the right amount of money
* @param product * @param product
*/ */
$scope.expressSell = function (product) { $scope.expressSell = function (product) {
$scope.addProduct(product); $scope.addProduct(product);
$scope.sendForm(); $scope.sendForm();
}; };
$scope.recentId = 0; $scope.recentId = 0;
$scope.logger = function (stuff) { $scope.logger = function (stuff) {
console.log('logger', stuff); console.log('logger', stuff);
}; };
$scope.sendForm = function () { $scope.sendForm = function () {
console.log('$scope.sellingComment', this.sellingComment); console.log('$scope.sellingComment', this.sellingComment);
let lesParams = { let lesParams = {
paidByClient: this.paidAmount, paidByClient : this.paidAmount,
sellingComment: this.sellingComment, sellingComment: this.sellingComment,
activeSelling: this.activeSelling, activeSelling : this.activeSelling,
activeFestival: this.activeFestival activeFestival: this.activeFestival
}; };
$scope.recentSellings.push({ $scope.recentSellings.push({
id: this.recentId++, id : this.recentId++,
amount: this.CurrentSellingTotal(), amount : this.CurrentSellingTotal(),
paidAmount: this.paidAmount, paidAmount: this.paidAmount,
products: products :
angular angular
.copy(this.activeSelling) .copy(this.activeSelling)
}); });
console.log('$scope.recentSellings', this.recentSellings); console.log('$scope.recentSellings', this.recentSellings);
$scope.lesParams = lesParams; $scope.lesParams = lesParams;
$http({ $http({
method: 'POST', method : 'POST',
url: 'add-selling', url : 'add-selling',
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
}, },
data: lesParams // pass in data as strings data : lesParams // pass in data as strings
}).then(function (rep) { }).then(function (rep) {
$scope.clearCurrentSelling(); $scope.clearCurrentSelling();
// if successful, bind success message to message // if successful, bind success message to message
$scope.successMessage = rep.data.message; $scope.successMessage = rep.data.message;
$scope.activeFestival.chiffreAffaire = rep.data.newChiffreAffaire; $scope.activeFestival.chiffreAffaire = rep.data.newChiffreAffaire;
$scope.activeFestival.clientsCount = rep.data.clientsCount; $scope.activeFestival.clientsCount = rep.data.clientsCount;
$scope.countProductsSoldForActiveFestival = rep.data.activeFestival.sold; $scope.countProductsSoldForActiveFestival = rep.data.activeFestival.sold;
$scope.showTemporaryMessage(); $scope.showTemporaryMessage();
console.log(rep); console.log(rep);
if (!rep.success) { if (!rep.success) {
// if not successful, bind errors to error variables // if not successful, bind errors to error variables
$scope.errors = rep.errors; $scope.errors = rep.errors;
} }
}, function (rep) { }, function (rep) {
console.log('nope! ', rep.data); console.log('nope! ', rep.data);
}) })
; ;
}; };
$scope.sellingOk = false; $scope.sellingOk = false;
$scope.tempMessage = {}; $scope.tempMessage = {};
$scope.showTemporaryMessage = function () { $scope.showTemporaryMessage = function () {
if ($scope.sellingOk) { if ($scope.sellingOk) {
return; return;
} }
$scope.sellingOk = true; $scope.sellingOk = true;
$timeout.cancel($scope.tempMessage); $timeout.cancel($scope.tempMessage);
$scope.tempMessage = $timeout(function () { $scope.tempMessage = $timeout(function () {
$scope.sellingOk = false; $scope.sellingOk = false;
}, 2000) }, 2000)
}; };
$scope.init = (function () { $scope.init = (function () {
$scope.fetchProductsFromDB(); $scope.fetchProductsFromDB();
})(); })();
}]) }])
.controller('previsionnelCtrl', ['$scope', '$http', '$timeout', function ($scope, $http, $timeout) { .controller('previsionnelCtrl', ['$scope', '$http', '$timeout', function ($scope, $http, $timeout) {
$scope.config = { $scope.config = {
initialLoadingDone: false, initialLoadingDone : false,
loading: false, loading : false,
lines: 24, lines : 24,
debounceTime: 300, // miliseconds to wait before updating model and saving changes debounceTime : 300, // miliseconds to wait before updating model and saving changes
/** /**
* expenses kind of the user * expenses kind of the user
*/ */
disponibility: 5000, disponibility : 5000,
averageMonthlyEarnings: 600, averageMonthlyEarnings: 600,
warningThershold: 2000, warningThershold : 2000,
showDelays: false, showDelays : false,
showRepeats: false, showRepeats : false,
monthsBeforeNoMoney: null, monthsBeforeNoMoney : null,
}; };
let exampleExpenses = [ let exampleExpenses = [
{name: "appart", amount: 800, delay: 0, repeat: $scope.config.lines, enabled: true}, {name: "appart", amount: 800, delay: 0, repeat: $scope.config.lines, enabled: true},
{name: "assurance voiture", amount: 50, delay: 0, repeat: $scope.config.lines, enabled: true}, {name: "assurance voiture", amount: 50, delay: 0, repeat: $scope.config.lines, enabled: true},
{name: "internet", amount: 20, delay: 0, repeat: $scope.config.lines, enabled: true}, {name: "internet", amount: 20, delay: 0, repeat: $scope.config.lines, enabled: true},
{name: "elec", amount: 100, delay: 0, repeat: $scope.config.lines, enabled: true}, {name: "elec", amount: 100, delay: 0, repeat: $scope.config.lines, enabled: true},
{name: "chat", amount: 20, delay: 0, repeat: $scope.config.lines, enabled: true}, {name: "chat", amount: 20, delay: 0, repeat: $scope.config.lines, enabled: true},
{name: "transports", amount: 70, delay: 0, repeat: $scope.config.lines, enabled: false}, {name: "transports", amount: 70, delay: 0, repeat: $scope.config.lines, enabled: false},
]; ];
// $scope.expenses=[]; // $scope.expenses=[];
$scope.expenses = exampleExpenses; $scope.expenses = exampleExpenses;
/** /**
* sum of all monthly expenses, ignoring delay * sum of all monthly expenses, ignoring delay
* @returns {number} * @returns {number}
*/ */
$scope.sumMonthlyExpenses = () => { $scope.sumMonthlyExpenses = () => {
let sum = 0; let sum = 0;
$scope.expenses.forEach((elem) => { $scope.expenses.forEach((elem) => {
if (elem.enabled) { if (elem.enabled) {
sum += elem.amount; sum += elem.amount;
} }
}) })
return sum; return sum;
}; };
$scope.previsionTable = []; $scope.previsionTable = [];
$scope.calculatePrevisionTable = () => { $scope.calculatePrevisionTable = () => {
let turns = $scope.config.lines; let turns = $scope.config.lines;
let monthly = $scope.sumMonthlyExpenses(); let monthly = $scope.sumMonthlyExpenses();
let available = $scope.config.disponibility; let available = $scope.config.disponibility;
let previsionTable = []; let previsionTable = [];
let changedNoMoneyConfig = false; let changedNoMoneyConfig = false;
$scope.config.monthsBeforeNoMoney = null; $scope.config.monthsBeforeNoMoney = null;
for (let i = 0; i <= turns; i++) { for (let i = 0; i <= turns; i++) {
// TODO take in account delays in expenses // TODO take in account delays in expenses
available = available - monthly + $scope.config.averageMonthlyEarnings; available = available - monthly + $scope.config.averageMonthlyEarnings;
let newLine = { let newLine = {
expense: monthly, expense : monthly,
available: available, available: available,
}; };
if (available <= 0 && !changedNoMoneyConfig) { if (available <= 0 && !changedNoMoneyConfig) {
$scope.config.monthsBeforeNoMoney = i; $scope.config.monthsBeforeNoMoney = i;
changedNoMoneyConfig = true; changedNoMoneyConfig = true;
} }
previsionTable.push(newLine); previsionTable.push(newLine);
} }
$scope.previsionTable = previsionTable; $scope.previsionTable = previsionTable;
$scope.makeGraphPointsOfPrevisionTable(previsionTable); $scope.makeGraphPointsOfPrevisionTable(previsionTable);
return previsionTable; return previsionTable;
}; };
$scope.graphPointsPrevision = []; $scope.graphPointsPrevision = [];
$scope.makeGraphPointsOfPrevisionTable = (previsionTable) => { $scope.makeGraphPointsOfPrevisionTable = (previsionTable) => {
console.log("previsionTable", previsionTable); console.log("previsionTable", previsionTable);
$scope.graphPointsPrevision = []; $scope.graphPointsPrevision = [];
for (let i = 0; i < previsionTable.length; i++) { for (let i = 0; i < previsionTable.length; i++) {
$scope.graphPointsPrevision.push({ $scope.graphPointsPrevision.push({
label: previsionTable[i].available + " euros restants dans " + i + " mois", label: previsionTable[i].available + " euros restants dans " + i + " mois",
y: previsionTable[i].available, y : previsionTable[i].available,
x: i, x : i,
}) })
} }
} }
$scope.updateconf = (rep) => { $scope.updateconf = (rep) => {
// update view calculs // update view calculs
$scope.calculatePrevisionTable(); $scope.calculatePrevisionTable();
$scope.updateCanevas() $scope.updateCanevas()
// flags // flags
$scope.config.loading = false; $scope.config.loading = false;
$scope.config.initialLoadingDone = true; $scope.config.initialLoadingDone = true;
$scope.config.disponibility = rep.data.disponibility; $scope.config.disponibility = rep.data.disponibility;
$scope.config.averageMonthlyEarnings = rep.data.averageMonthlyEarnings; $scope.config.averageMonthlyEarnings = rep.data.averageMonthlyEarnings;
// default data when user has nothing saved // default data when user has nothing saved
console.log('rep.data.expenses.length', rep.data.expenses.length) console.log('rep.data.expenses.length', rep.data.expenses.length)
if (!rep.data.expenses.length) { if (!rep.data.expenses.length) {
$scope.expenses = exampleExpenses; $scope.expenses = exampleExpenses;
} else { } else {
$scope.expenses = rep.data.expenses; $scope.expenses = rep.data.expenses;
} }
}; };
// http related calls // http related calls
$scope.fetchExpenses = () => { $scope.fetchExpenses = () => {
console.log('fetch expenses...'); console.log('fetch expenses...');
$scope.config.loading = true; $scope.config.loading = true;
$http.get('get-my-expenses').then((rep) => { $http.get('get-my-expenses').then((rep) => {
console.log('get-my-expenses', rep.data.expenses); console.log('get-my-expenses', rep.data.expenses);
$scope.updateconf(rep) $scope.updateconf(rep)
}, },
$scope.manageError) $scope.manageError)
}; };
// save TODO // save TODO
$scope.save = () => { $scope.save = () => {
if ($scope.config.loading) { if ($scope.config.loading) {
console.log('already saving'); console.log('already saving');
return; return;
} }
console.log('update expenses...'); console.log('update expenses...');
$scope.config.loading = true; $scope.config.loading = true;
$http.post('save-my-expenses', { $http.post('save-my-expenses', {
expenses: $scope.expenses, expenses: $scope.expenses,
config: $scope.config config : $scope.config
}) })
.then((rep) => { .then((rep) => {
console.log('save-my-expenses', rep); console.log('save-my-expenses', rep);
$scope.updateconf(rep) $scope.updateconf(rep)
}, },
$scope.manageError) $scope.manageError)
}; };
$scope.addExpense = () => { $scope.addExpense = () => {
$scope.expenses.push({ $scope.expenses.push({
name: "", name : "",
repeat: 0, repeat: 0,
delay: 0, delay : 0,
amount: 0, amount: 0,
}) })
}; };
$scope.init = () => { $scope.init = () => {
$scope.fetchExpenses(); $scope.fetchExpenses();
}; };
$scope.manageError = (error) => { $scope.manageError = (error) => {
console.error(error); console.error(error);
$scope.config.loading = false; $scope.config.loading = false;
} }
$scope.updateCanevas = () => { $scope.updateCanevas = () => {
var dataPoints = $scope.graphPointsPrevision; var dataPoints = $scope.graphPointsPrevision;
var chartContainer = new CanvasJS.Chart("simulationPrevision", { var chartContainer = new CanvasJS.Chart("simulationPrevision", {
title: { title: {
text: "Euros disponibles dans le temps" text: "Euros disponibles dans le temps"
}, },
// animationEnabled: true, // animationEnabled: true,
data: [ data : [
{ {
// Change type to "doughnut", "line", "splineArea", etc. // Change type to "doughnut", "line", "splineArea", etc.
type: "splineArea", type : "splineArea",
dataPoints: dataPoints dataPoints: dataPoints
} }
] ]
}); });
chartContainer.render(); chartContainer.render();
} }
$scope.init(); $scope.init();
}]); }]);

0
web/config.php Normal file → Executable file
View File