Renaming.
This commit is contained in:
parent
ce3181537d
commit
c986cf5186
@ -41,9 +41,9 @@ var accountantApp = angular.module("accountantApp", [
|
||||
};
|
||||
});
|
||||
|
||||
$routeProvider.when('/account/:accountId/entries', {
|
||||
templateUrl: 'static/templates/entries.html',
|
||||
controller: 'EntryController'
|
||||
$routeProvider.when('/account/:accountId/operations', {
|
||||
templateUrl: 'static/templates/operations.html',
|
||||
controller: 'OperationController'
|
||||
}).when('/account/:accountId/scheduler', {
|
||||
templateUrl: 'static/templates/scheduler.html',
|
||||
controller: 'SchedulerController'
|
||||
|
@ -16,7 +16,7 @@
|
||||
*/
|
||||
accountantApp
|
||||
|
||||
.factory("Entries", [ "$resource", function($resource) {
|
||||
.factory("Operation", [ "$resource", function($resource) {
|
||||
return $resource(
|
||||
"/api/entries/:id", {
|
||||
id: "@id"
|
||||
@ -171,7 +171,7 @@ accountantApp
|
||||
"SoldChartController", [
|
||||
"$rootScope", "$scope", "$http", "$routeParams",
|
||||
function($rootScope, $scope, $http, $routeParams) {
|
||||
// Configure chart for entries.
|
||||
// Configure chart for operations.
|
||||
$scope.config = {
|
||||
options: {
|
||||
chart: {
|
||||
@ -271,10 +271,10 @@ accountantApp
|
||||
}).success(function(data) {
|
||||
$scope.config.series[0].data = [];
|
||||
|
||||
angular.forEach(data, function(entry) {
|
||||
angular.forEach(data, function(operation) {
|
||||
$scope.config.series[0].data.push([
|
||||
moment.utc(entry.operation_date).valueOf(),
|
||||
entry.open, entry.high, entry.low, entry.close
|
||||
moment.utc(operation.operation_date).valueOf(),
|
||||
operation.open, operation.high, operation.low, operation.close
|
||||
]);
|
||||
});
|
||||
|
||||
@ -287,13 +287,13 @@ accountantApp
|
||||
});
|
||||
};
|
||||
|
||||
// Reload solds when an entry is saved.
|
||||
$rootScope.$on("entrySavedEvent", function(e, entry) {
|
||||
// Reload solds when an operation is saved.
|
||||
$rootScope.$on("operationSavedEvent", function(e, operation) {
|
||||
$scope.loadSolds();
|
||||
});
|
||||
|
||||
// Reload solds when an entry is deleted.
|
||||
$rootScope.$on("entryDeletedEvent", function(e, entry) {
|
||||
// Reload solds when an operation is deleted.
|
||||
$rootScope.$on("operationDeletedEvent", function(e, operation) {
|
||||
$scope.loadSolds();
|
||||
});
|
||||
|
||||
@ -307,113 +307,122 @@ accountantApp
|
||||
}])
|
||||
|
||||
.controller(
|
||||
"EntryController", [
|
||||
"$scope", "$http", "$rootScope", "$filter", "$routeParams", "notificationService", "Entries",
|
||||
function($scope, $http, $rootScope, $filter, $routeParams, notificationService, Entries) {
|
||||
// Entry store and selection
|
||||
$scope.entries = [];
|
||||
"OperationController", [
|
||||
"$scope", "$http", "$rootScope", "$filter", "$routeParams", "notificationService", "Operation",
|
||||
function($scope, $http, $rootScope, $filter, $routeParams, notificationService, Operation) {
|
||||
// Operation store.
|
||||
$scope.operations = [];
|
||||
|
||||
// Function to reset the new entry.
|
||||
$scope.addEntry = function() {
|
||||
entry = new Entries();
|
||||
entry.account_id = $routeParams.accountId;
|
||||
$scope.entries.splice(0, 0, entry);
|
||||
};
|
||||
|
||||
// Function to load entries from server for a specific account and month.
|
||||
$scope.loadEntries = function(begin, end) {
|
||||
// Clean up selected entry.
|
||||
$scope.selectedItem = null;
|
||||
$scope.savedItem = null;
|
||||
|
||||
$scope.entries = Entries.query({
|
||||
account: $routeParams.accountId,
|
||||
begin: begin.format('YYYY-MM-DD'),
|
||||
end: end.format('YYYY-MM-DD')
|
||||
}, function(data) {
|
||||
$scope.$emit("entriesLoadedEvent", {entries: data});
|
||||
});
|
||||
};
|
||||
|
||||
// Cancel current editing entry or clears field if a new one.
|
||||
$scope.cancelEditEntry = function(entry, rowform, $index) {
|
||||
if(!entry.id) {
|
||||
$scope.entries.splice($index, 1);
|
||||
} else {
|
||||
rowform.$cancel();
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
* Toggle pointed indicator for an entry.
|
||||
*/
|
||||
$scope.togglePointedEntry = function(entry, rowform) {
|
||||
entry.pointed = !entry.pointed;
|
||||
|
||||
// Save entry if not editing it.
|
||||
if(!rowform.$visible) {
|
||||
$scope.saveEntry(entry);
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
* Toggle cancel indicator for an entry.
|
||||
*/
|
||||
$scope.toggleCanceledEntry = function(entry) {
|
||||
entry.canceled = !entry.canceled;
|
||||
|
||||
$scope.saveEntry(entry);
|
||||
};
|
||||
|
||||
/*
|
||||
* Save an entry and emit entrySavedEvent.
|
||||
*/
|
||||
$scope.saveEntry = function($data, $index) {
|
||||
// Check if $data is already a resource.
|
||||
var entry;
|
||||
|
||||
if($data.$save) {
|
||||
entry = $data;
|
||||
} else {
|
||||
entry = $scope.entries[$index];
|
||||
entry = angular.merge(entry, $data);
|
||||
}
|
||||
|
||||
entry.confirmed = true;
|
||||
|
||||
return entry.$save().then(function(data) {
|
||||
notificationService.success("Entry #" + data.id + " saved.");
|
||||
$scope.$emit("entrySavedEvent", data);
|
||||
|
||||
return data;
|
||||
});
|
||||
};
|
||||
|
||||
/*
|
||||
* Delete an entry and emit entryDeletedEvent.
|
||||
*/
|
||||
$scope.deleteEntry = function(entry, $index) {
|
||||
var id = entry.id;
|
||||
|
||||
bootbox.confirm(
|
||||
"Voulez-vous supprimer l'entrée \"" + entry.label + "\" ?",
|
||||
function(result) {
|
||||
if(result) {
|
||||
entry.$delete().then(function() {
|
||||
notificationService.success("Entry #" + id + " deleted.");
|
||||
|
||||
// Remove entry from array.
|
||||
$scope.entries.splice($index, 1);
|
||||
|
||||
$scope.$emit("entryDeletedEvent", entry);
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
// Reload entries on range selection.
|
||||
$rootScope.$on("rangeSelectedEvent", function(e, args) {
|
||||
$scope.loadEntries(args.begin, args.end);
|
||||
/*
|
||||
* Add a new operation.
|
||||
*/
|
||||
$scope.addOperation = function() {
|
||||
var operation = new Operation({
|
||||
account_id: $routeParams.accountId
|
||||
});
|
||||
|
||||
$scope.operations.splice(0, 0, operation);
|
||||
};
|
||||
|
||||
/*
|
||||
* Load operations.
|
||||
*/
|
||||
$scope.load = function(begin, end) {
|
||||
$scope.operations = Operation.query({
|
||||
account: $routeParams.accountId,
|
||||
begin: begin.format('YYYY-MM-DD'),
|
||||
end: end.format('YYYY-MM-DD')
|
||||
});
|
||||
};
|
||||
|
||||
/*
|
||||
* Cancel edition.
|
||||
*/
|
||||
$scope.cancelEdit = function(operation, rowform, $index) {
|
||||
if(!operation.id) {
|
||||
$scope.operations.splice($index, 1);
|
||||
} else {
|
||||
rowform.$cancel();
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
* Toggle pointed indicator for an operation.
|
||||
*/
|
||||
$scope.togglePointed = function(operation, rowform) {
|
||||
operation.pointed = !operation.pointed;
|
||||
|
||||
// Save operation if not editing it.
|
||||
if(!rowform.$visible) {
|
||||
$scope.save(operation);
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
* Toggle cancel indicator for an operation.
|
||||
*/
|
||||
$scope.toggleCanceled = function(operation) {
|
||||
operation.canceled = !operation.canceled;
|
||||
|
||||
$scope.save(operation);
|
||||
};
|
||||
|
||||
/*
|
||||
* Save an operation and emit operationSavedEvent.
|
||||
*/
|
||||
$scope.save = function($data, $index) {
|
||||
// Check if $data is already a resource.
|
||||
var operation;
|
||||
|
||||
if($data.$save) {
|
||||
operation = $data;
|
||||
} else {
|
||||
operation = $scope.operations[$index];
|
||||
operation = angular.merge(operation, $data);
|
||||
}
|
||||
|
||||
operation.confirmed = true;
|
||||
|
||||
return operation.$save().then(function(data) {
|
||||
notificationService.success("Operation #" + data.id + " saved.");
|
||||
$scope.$emit("operationSavedEvent", data);
|
||||
});
|
||||
};
|
||||
|
||||
/*
|
||||
* Delete an operation and emit operationDeletedEvent.
|
||||
*/
|
||||
$scope.delete = function(operation, $index) {
|
||||
var id = operation.id;
|
||||
|
||||
bootbox.confirm(
|
||||
"Voulez-vous supprimer l'opération \"" + operation.label + "\" ?",
|
||||
function(result) {
|
||||
if(result) {
|
||||
operation.$delete().then(function() {
|
||||
notificationService.success("Operation #" + id + " deleted.");
|
||||
|
||||
// Remove operation from array.
|
||||
$scope.operation.splice($index, 1);
|
||||
|
||||
$scope.$emit("operationDeletedEvent", operation);
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
/*
|
||||
* Save account in scope to colorize with authorized overdraft.
|
||||
*/
|
||||
$rootScope.$on("accountLoadedEvent", function(e, account) {
|
||||
$scope.account = account;
|
||||
});
|
||||
|
||||
/*
|
||||
* Reload operations on rangeSelectedEvent.
|
||||
*/
|
||||
$rootScope.$on("rangeSelectedEvent", function(e, args) {
|
||||
$scope.load(args.begin, args.end);
|
||||
});
|
||||
}]);
|
||||
|
@ -15,7 +15,6 @@
|
||||
along with Accountant. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<!-- vim: set tw=80 ts=2 sw=2 sts=2: -->
|
||||
<!-- Row with entry table -->
|
||||
<div class="row">
|
||||
<table class="table table-striped table-condensed table-hover">
|
||||
<!-- Head of the table containing column headers and size -->
|
||||
@ -29,7 +28,6 @@
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<!-- Body of the table containing the entries -->
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="5">
|
||||
@ -46,7 +44,7 @@
|
||||
e-placeholder="Nom du compte"
|
||||
e-style="width: 100%"
|
||||
e-name="name" e-form="rowform" e-required>
|
||||
<a href="account/{{ account.id }}/entries">{{ account.name }}</a>
|
||||
<a href="account/{{ account.id }}/operations">{{ account.name }}</a>
|
||||
</span>
|
||||
</td>
|
||||
|
||||
|
@ -48,101 +48,101 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
<button class="btn btn-success" ng-click="addEntry()">
|
||||
<button class="btn btn-success" ng-click="add()">
|
||||
Ajouter
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="{{ entry.id }}" class="form-inline"
|
||||
ng-class="{stroke: entry.canceled, italic: !entry.confirmed, warning: entry.sold < 0, danger: entry.sold < account.authorized_overdraft}"
|
||||
ng-repeat="entry in entries">
|
||||
<tr id="{{ operation.id }}" class="form-inline"
|
||||
ng-class="{stroke: operation.canceled, italic: !operation.confirmed, warning: operation.sold < 0, danger: operation.sold < account.authorized_overdraft}"
|
||||
ng-repeat="operation in operations">
|
||||
<td>
|
||||
<span editable-text="entry.operation_date"
|
||||
<span editable-text="operation.operation_date"
|
||||
e-data-date-format="yyyy-MM-dd" e-bs-datepicker
|
||||
e-class="input-sm" e-style="width: 100%"
|
||||
e-name="operation_date" e-form="rowform" e-required>
|
||||
<small>{{ entry.operation_date | date:"yyyy-MM-dd" }}</small>
|
||||
<small>{{ operation.operation_date | date:"yyyy-MM-dd" }}</small>
|
||||
</span>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<span editable-text="entry.label"
|
||||
<span editable-text="operation.label"
|
||||
e-style="width: 100%"
|
||||
e-placeholder="Libellé de l'opération"
|
||||
e-class="input-sm" e-style="width: 100%"
|
||||
e-name="label" e-form="rowform" e-required>
|
||||
<small>{{ entry.label }}</small>
|
||||
<small>{{ operation.label }}</small>
|
||||
</span>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<span editable-number="entry.value"
|
||||
<span editable-number="operation.value"
|
||||
e-class="input-sm" e-style="width: 100%"
|
||||
e-name="value" e-form="rowform" e-required>
|
||||
<small>{{ entry.value }}</small>
|
||||
<small>{{ operation.value }}</small>
|
||||
</span>
|
||||
</td>
|
||||
|
||||
<td ng-class="{'text-warning': entry.sold < 0, 'text-danger': entry.sold < account.authorized_overdraft}">
|
||||
<small>{{ entry.sold }}</small>
|
||||
<td ng-class="{'text-warning': operation.sold < 0, 'text-danger': operation.sold < account.authorized_overdraft}">
|
||||
<small>{{ operation.sold }}</small>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<span editable-text="entry.category"
|
||||
<span editable-text="operation.category"
|
||||
e-placeholder="Catégorie"
|
||||
e-class="input-sm" e-style="width: 100%"
|
||||
e-name="category" e-form="rowform" e-required>
|
||||
<small>{{ entry.category }}</small>
|
||||
<small>{{ operation.category }}</small>
|
||||
</span>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<form editable-form name="rowform"
|
||||
onbeforesave="saveEntry($data, $index)"
|
||||
shown="!entry.id">
|
||||
onbeforesave="save($data, $index)"
|
||||
shown="!operation.id">
|
||||
<div class="btn-group btn-group-xs">
|
||||
<!-- Save current entry, for editing and non-confirmed non-canceled entries -->
|
||||
<!-- Save current operation, for editing and non-confirmed non-canceled operation. -->
|
||||
<button type="submit" class="btn btn-success"
|
||||
ng-if="!entry.canceled && (!entry.confirmed || rowform.$visible)"
|
||||
ng-if="!operation.canceled && (!operation.confirmed || rowform.$visible)"
|
||||
title="Save">
|
||||
<span class="fa fa-floppy-o"></span>
|
||||
</button>
|
||||
|
||||
<!-- Edit entry, for non-canceled and non-editing entries-->
|
||||
<!-- Edit operation, for non-canceled and non-editing operation -->
|
||||
<button type="button" class="btn btn-default"
|
||||
ng-if="!entry.canceled && !rowform.$visible"
|
||||
ng-if="!operation.canceled && !rowform.$visible"
|
||||
ng-click="rowform.$show()" title="edit">
|
||||
<span class="fa fa-pencil-square-o"></span>
|
||||
</button>
|
||||
|
||||
<!-- Cancel edition, for editing entries. -->
|
||||
<!-- Cancel edition, for editing operation. -->
|
||||
<button type="button" class="btn btn-default"
|
||||
ng-if="rowform.$visible"
|
||||
ng-click="cancelEditEntry(entry, rowform)">
|
||||
ng-click="cancelEdit(operation, rowform)">
|
||||
<span class="fa fa-times"></span>
|
||||
</button>
|
||||
|
||||
<!-- Toggle pointed entry, for non-canceled entries. -->
|
||||
<!-- Toggle pointed operation, for non-canceled operations. -->
|
||||
<button type="button" class="btn btn-default"
|
||||
ng-if="!entry.canceled"
|
||||
ng-click="togglePointedEntry(entry, rowform)"
|
||||
ng-class="{active: entry.pointed}" title="point">
|
||||
<span ng-class="{'fa fa-check-square-o': entry.pointed, 'fa fa-square-o': !entry.pointed}"></span>
|
||||
ng-if="!operation.canceled"
|
||||
ng-click="togglePointed(operation, rowform)"
|
||||
ng-class="{active: operation.pointed}" title="point">
|
||||
<span ng-class="{'fa fa-check-square-o': operation.pointed, 'fa fa-square-o': !operation.pointed}"></span>
|
||||
</button>
|
||||
|
||||
<!-- Toggle canceled entry, for non-editing entries. -->
|
||||
<!-- Toggle canceled operation, for non-editing operations. -->
|
||||
<button type="button" class="btn btn-default"
|
||||
ng-click="toggleCanceledEntry(entry)"
|
||||
ng-if="entry.scheduled_operation_id && !rowform.$visible"
|
||||
ng-class="{active: entry.canceled}" title="cancel">
|
||||
ng-click="toggleCanceled(operation)"
|
||||
ng-if="operation.scheduled_operation_id && !rowform.$visible"
|
||||
ng-class="{active: operation.canceled}" title="cancel">
|
||||
<span class="fa fa-remove"></span>
|
||||
</button>
|
||||
|
||||
<!-- Delete entry, with confirm. -->
|
||||
<!-- Delete operation, with confirm. -->
|
||||
<button type="button" class="btn btn-default"
|
||||
ng-if="entry.id && !entry.scheduled_operation_id"
|
||||
ng-click="deleteEntry(entry, $index)">
|
||||
ng-if="operation.id && !operation.scheduled_operation_id"
|
||||
ng-click="delete(operation, $index)">
|
||||
<span class="fa fa-trash-o"></span>
|
||||
</button>
|
||||
</div>
|
@ -131,7 +131,7 @@
|
||||
|
||||
<!-- Remove operation. -->
|
||||
<button type="button" class="btn btn-default"
|
||||
ng-if="!operation.id"
|
||||
ng-if="operation.id"
|
||||
ng-click="delete(operation, $index)"
|
||||
title="remove">
|
||||
<span class="fa fa-trash"></span>
|
||||
|
Loading…
Reference in New Issue
Block a user