r2987 - in branches/ng-jtimer/src/main: java/org/chorem/jtimer/storage java/org/chorem/jtimer/web webapp/js webapp/partials
Author: obruce Date: 2014-05-26 11:26:00 +0200 (Mon, 26 May 2014) New Revision: 2987 Url: http://forge.chorem.org/projects/jtimer/repository/revisions/2987 Log: controller: correction update Modified: branches/ng-jtimer/src/main/java/org/chorem/jtimer/storage/Storage.java branches/ng-jtimer/src/main/java/org/chorem/jtimer/web/TasksResource.java branches/ng-jtimer/src/main/java/org/chorem/jtimer/web/TimeResource.java branches/ng-jtimer/src/main/webapp/js/controllers.js branches/ng-jtimer/src/main/webapp/partials/tasks.html branches/ng-jtimer/src/main/webapp/partials/timeModal.html Modified: branches/ng-jtimer/src/main/java/org/chorem/jtimer/storage/Storage.java =================================================================== --- branches/ng-jtimer/src/main/java/org/chorem/jtimer/storage/Storage.java 2014-05-22 08:10:28 UTC (rev 2986) +++ branches/ng-jtimer/src/main/java/org/chorem/jtimer/storage/Storage.java 2014-05-26 09:26:00 UTC (rev 2987) @@ -483,6 +483,7 @@ * @param timeId */ public void deleteTimeWithId(String timeId) { + PreparedStatement statement = null; try { statement = connection.prepareStatement("DELETE FROM " + Modified: branches/ng-jtimer/src/main/java/org/chorem/jtimer/web/TasksResource.java =================================================================== --- branches/ng-jtimer/src/main/java/org/chorem/jtimer/web/TasksResource.java 2014-05-22 08:10:28 UTC (rev 2986) +++ branches/ng-jtimer/src/main/java/org/chorem/jtimer/web/TasksResource.java 2014-05-26 09:26:00 UTC (rev 2987) @@ -4,8 +4,6 @@ import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Date; -import java.util.logging.Level; -import java.util.logging.Logger; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; @@ -37,7 +35,6 @@ private static final Log log = LogFactory.getLog(TasksResource.class); protected Storage storage; - private final static Logger LOGGER = Logger.getLogger(TasksResource.class.getName()); private GsonBuilder builder; /** @@ -119,7 +116,9 @@ Gson gson = builder.create(); String repr1 = representation.getText(); TimerTask t = gson.fromJson(repr1, TimerTask.class); - LOGGER.log(Level.INFO, "repr1"); + if (log.isInfoEnabled()) { + log.info("La task suivante est cree : " + t.toString()); + } storage.addTask(t); } @@ -135,6 +134,10 @@ String repr1 = representation.getText(); TimerTask t = gson.fromJson(repr1, TimerTask.class); + if (log.isInfoEnabled()) { + log.info("La task suivante est en cours de maj : " + t.toString()); + } + storage.modifyTask(t); } Modified: branches/ng-jtimer/src/main/java/org/chorem/jtimer/web/TimeResource.java =================================================================== --- branches/ng-jtimer/src/main/java/org/chorem/jtimer/web/TimeResource.java 2014-05-22 08:10:28 UTC (rev 2986) +++ branches/ng-jtimer/src/main/java/org/chorem/jtimer/web/TimeResource.java 2014-05-26 09:26:00 UTC (rev 2987) @@ -73,7 +73,7 @@ * @return la representation de la liste */ @Get("json") - public Representation getTask() { + public Representation getTime() { Long date = (long) 0; try{ @@ -98,7 +98,7 @@ * */ @Delete - public void deleteTask() { + public void deleteTime() { String timeId = (String)getRequest().getAttributes().get("taskId"); storage.deleteTimeWithId(timeId); } @@ -108,7 +108,7 @@ * suite d'une requête de type POST */ @Post("json") - public void createTask(Representation representation) throws IOException { + public void createTime(Representation representation) throws IOException { String timeId = (String)getRequest().getAttributes().get("taskId"); long number = storage.getTaskNumber(timeId); @@ -119,10 +119,7 @@ TimerTime t = gson.fromJson(repr1, TimerTime.class); if (log.isInfoEnabled()) { - log.info(repr1); - log.info(t); - log.info(t.getModificationDate().getTime()); - log.info(number); + log.info("La periode suivante est cree : " + t.toString()); } storage.addTaskTime(t, number); Modified: branches/ng-jtimer/src/main/webapp/js/controllers.js =================================================================== --- branches/ng-jtimer/src/main/webapp/js/controllers.js 2014-05-22 08:10:28 UTC (rev 2986) +++ branches/ng-jtimer/src/main/webapp/js/controllers.js 2014-05-26 09:26:00 UTC (rev 2987) @@ -8,10 +8,15 @@ //{tdListData} toutes les donnees non envoyees $scope.todo = $localStorage.getTodo("todo"); - // {Date} last update to server + // {Timestamp} last update to server $scope.taskAccess = $scope.todo.lastTaskAccess; $scope.timeAccess = $scope.todo.lastTimeAccess; + //interval de conec + var interval = 20000; //TODO: obruce 05-05-14 decider d'un intervalle interessant + // {Timestamp} periode de delais = 3 periode + var delayAccess = 30000; + // {TreeNode} l'arbre regenere automatiquement lorsque les donnees changent $scope.tree; // {Array of Function} les listeners qui surveille l'ajout de nouveau temps, et qui les ajoutes dans l'arbre @@ -148,14 +153,19 @@ save(); } + save(); } }); console.log("Je suis dans le get tasks"); //On change la date de dernier acces - $scope.taskAccess = new Date().getTime(); + $scope.taskAccess = Date.now(); $scope.todo.lastTaskAccess= $scope.taskAccess; + + $scope.timeAccess = Date.now(); + $scope.todo.lastTimeAccess= $scope.timeAccess; + save(); }); }; @@ -168,24 +178,22 @@ */ var updateTasksFromServ = function(){ - serverTaskAccess.query({date : $scope.taskAccess}, function (response) { + serverTaskAccess.query({date : ($scope.taskAccess-delayAccess)}, function (response) { - console.log("Chercher modif du serveur des taches"); - angular.forEach(response, function (item) { + console.log("Changement d'une tâche"); console.log(item); - if(item.taskId in $scope.data.tasks){ - //On cherche le node et on le met à jour - $scope.tree.getNode(item.taskId).task.name = item.name; + //On cherche le node et on le met à jour + $scope.tree.getNode(item.taskId).task.name = item.name; - save(); + save(); - //On change la date de dernier acces - $scope.taskAccess = Date.now(); - $scope.todo.lastTaskAccess= $scope.taskAccess; - save(); + //On change la date de dernier acces + $scope.taskAccess = Date.now(); + $scope.todo.lastTaskAccess= $scope.taskAccess; + save(); }else{ @@ -207,7 +215,7 @@ //On ajoute le node à l'arbre if ($scope.tree) { - $scope.tree.getNode(item.taskId).addChild($scope.createTreeNode(newTask)); + // $scope.tree.getNode(item.taskId).addChild($scope.createTreeNode(newTask)); } //Les temps sont recuperes du serveur @@ -225,15 +233,20 @@ * */ var updateTimesFromServer = function(){ - console.log("Chercher modif temps du serveur"); - serverTimeAccess.query({date : $scope.timeAccess}, function (response) { + serverTimeAccess.query({date : $scope.timeAccess-delayAccess}, function (response) { + angular.forEach(response, function (item) { + //le temps n'existe pas + console.log("Changement d'une periode"); + console.log(item); - if(!(existInObject($scope.data.times,item.timeId,task.taskId)) ){ + var editedTime = getObjectInArrayWithId($scope.data.times[item.taskId],item.timeId); - console.log(item); + if(editedTime == undefined){ + + console.log("le temps n'existe pas"); if(!$scope.data.times[item.taskId]){$scope.data.times[item.taskId] = []} taskTime = new TaskTime($scope.data.tasks[item.taskId], item.timeId, item.creationDate, item.time); @@ -242,6 +255,7 @@ save(); }else{ + console.log("Temps existe donc remplacé"); //Le temps existe var editedTime = getObjectInArrayWithId($scope.data.times[item.taskId],item.timeId); editedTime.time = item.time; @@ -287,27 +301,26 @@ $scope.data.times[task.taskId].push(taskTime); save(); } - - }); - //On change la date de dernier acces $scope.timeAccess = new Date().getTime(); $scope.todo.lastTimeAccess= $scope.timeAccess; save(); - - }); - - - } + /** + * Methode qui retourne l'existence d'un element dans un array + */ var existInObject = function(object, item, pos){ return (object[pos]) && (item in object[pos]); }; - var pushChangesToServ= function(){ + /** + * Methode qui pousse la todolist vers le serveur pour ssauvegarde les changements + * Sauve les changements dans le localStorage + */ + var pushTodoListToServ= function(){ //On supprime de la base les taches sotckees pour suppression angular.forEach($scope.todo.stockedDeletedTasks, function(task){ @@ -323,6 +336,9 @@ //On ajoute au serveur les taches stockees pour l'ajout angular.forEach($scope.todo.stockedNewTasks, function(task){ + //On change la date au dernier acces + task['modificationDate']=$scope.taskAccess; + serverTaskAccess.create(angular.toJson(task), function(){ console.log("persist task success" + task); @@ -335,7 +351,7 @@ //On ajoute au serveur les taches stockees pour l'ajout angular.forEach($scope.todo.stockedEditedTasks, function(task){ //On change la date au dernier acces - task.modificationDate = $scope.serverTaskAccess; + task["modificationDate"]=$scope.taskAccess; serverTaskAccess.update(angular.toJson(task), function(){ @@ -351,7 +367,7 @@ angular.forEach($scope.todo.stockedNewTimes, function(times,task){ angular.forEach(times, function(time){ //On change la date au dernier acces - time.modificationDate = $scope.serverTaskAccess; + time["modificationDate"]=$scope.timeAccess; serverTimeAccess.create({taskId: task} , angular.toJson(time), function(){ @@ -368,6 +384,9 @@ //On update les temps sur le serveur angular.forEach($scope.todo.stockedEditedTimes, function(times,task){ angular.forEach(times, function(time){ + + time["modificationDate"]=$scope.timeAccess; + serverTimeAccess.update({taskId: task}, angular.toJson(time), function(){ console.log("update time success" + task); @@ -382,9 +401,9 @@ //On supprime de la base les taches sotckees pour suppression angular.forEach($scope.todo.stockedDeletedTimes, function(times,task){ angular.forEach(times, function(time){ - serverTimeAccess.delete({taskId: task}, angular.toJson(time), + serverTimeAccess.delete({taskId: time}, function(){ - console.log("update time success" + task); + console.log("delete time success" + task); $scope.todo.stockedDeletedTimes[task].shift(); }, function(){ @@ -393,7 +412,6 @@ }); }); - save(); } @@ -424,14 +442,13 @@ */ var timer = function() { $interval(function() { - //A changer - //initControllerWithServ(); - pushChangesToServ(); + + pushTodoListToServ(); updateTasksFromServ(); updateTimesFromServer(); - //updateTimesFromServer(); - }, 30000); //TODO: obruce 05-05-14 for now 30s but for real put at least 2h: 200000000 + + }, interval); }; timer(); @@ -661,7 +678,7 @@ $scope.saveTask = function(node) { node.edit = null; - //node.task.modificationDate = $scope.taskAccess; + $scope.todo.stockedEditedTasks.push(node.task); save(); }; @@ -817,7 +834,7 @@ $scope.todo.stockedDeletedTimes[id].push($scope.data.times[id][item.index].timeId); $scope.data.times[id].splice(item.index,1); - + console.log( $scope.data.times[id]); save(); } @@ -832,7 +849,7 @@ //Si en ligne on envoie les donnees if ( $scope.online) { - pushChangesToServ(); + pushTodoListToServ(); updateTasksFromServ(); } @@ -848,6 +865,11 @@ } + + + + + /** * Controller de pour la modal d'inactivite. * Modified: branches/ng-jtimer/src/main/webapp/partials/tasks.html =================================================================== --- branches/ng-jtimer/src/main/webapp/partials/tasks.html 2014-05-22 08:10:28 UTC (rev 2986) +++ branches/ng-jtimer/src/main/webapp/partials/tasks.html 2014-05-26 09:26:00 UTC (rev 2987) @@ -5,7 +5,9 @@ <form ng-submit="addTask()"> <input class='search-query form-group form-group form-control input-sm' ng-model="name" placeholder="New Task"> </form> + </span> + <!--Header partie droite --> <span class="right"> <a class="glyphicon glyphicon-plus-sign" ng-click="showMenu = !showMenu"> @@ -21,12 +23,16 @@ <i class="glyphicon glyphicon-cloud" ng-class="{online: online, offline: !online}"></i> </span> </div> + +<!-- Websocket information --> <div id="alerts"> <div class="alert alert-warning" ng-if="!webSocketClientOnline"> <span class="icon-warning-sign"></span> Impossible de contacter le client local pour la gestion de l'inactivité. <a href="#" target="_blank">Télécharger le client local</a>. </div> </div> + +<!-- Footer --> <div id="footer"> <span class="left">{{currentDate()}}</span> <span class="center"><i class="fa fa-html5"></i> <a href="#">WebTimer</a></span> @@ -34,6 +40,8 @@ <span class="right">Dernière mise à jour: {{getLastMajDate()}}</span> </div> + +<!-- Div interne--> <div> <div class='table'> <div class='tr'> @@ -83,8 +91,6 @@ <i class="glyphicon glyphicon-pencil" ></i> </a> - - </span> </div> Modified: branches/ng-jtimer/src/main/webapp/partials/timeModal.html =================================================================== --- branches/ng-jtimer/src/main/webapp/partials/timeModal.html 2014-05-22 08:10:28 UTC (rev 2986) +++ branches/ng-jtimer/src/main/webapp/partials/timeModal.html 2014-05-26 09:26:00 UTC (rev 2987) @@ -42,7 +42,7 @@ <datepicker ng-model="dateobj.date" ng-change="changeDayDate()" min-date="minDate" max-date="dateMaxPicker" show-weeks="true" class="well well-sm"></datepicker> </div> - <div ng-controller="radioTimeCtrl"> + <div class = "timepick" ng-controller="radioTimeCtrl"> <div> <div class="btn-group"> <label class="btn btn-primary" ng-model="radioModel" ng-change="changeFonc()" btn-radio="'Left'">Début de période </label>
participants (1)
-
obruce@users.chorem.org