r3019 - in branches/ng-jtimer/src/main: java/org/chorem/jtimer/storage java/org/chorem/jtimer/utils java/org/chorem/jtimer/web resources webapp/css webapp/js webapp/partials
Author: obruce Date: 2014-07-22 15:18:31 +0200 (Tue, 22 Jul 2014) New Revision: 3019 Url: http://forge.chorem.org/projects/jtimer/repository/revisions/3019 Log: Correction pour le rapport, changement dans le timeModal Modified: branches/ng-jtimer/src/main/java/org/chorem/jtimer/storage/Storage.java branches/ng-jtimer/src/main/java/org/chorem/jtimer/utils/ReportTask.java branches/ng-jtimer/src/main/java/org/chorem/jtimer/web/ReportResource.java branches/ng-jtimer/src/main/resources/jtimer-default.properties branches/ng-jtimer/src/main/webapp/css/app.css branches/ng-jtimer/src/main/webapp/js/controllers.js branches/ng-jtimer/src/main/webapp/partials/timesModal.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-07-18 15:38:00 UTC (rev 3018) +++ branches/ng-jtimer/src/main/java/org/chorem/jtimer/storage/Storage.java 2014-07-22 13:18:31 UTC (rev 3019) @@ -1,6 +1,5 @@ package org.chorem.jtimer.storage; -import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.jtimer.config.JtimerConfig; @@ -21,7 +20,6 @@ import java.util.Date; import java.util.HashMap; import java.util.HashSet; -import java.util.Iterator; import java.util.List; import java.util.Set; @@ -202,10 +200,14 @@ /* Insert */ + /** + * Methode qui permet d'ajouter une tache a la base + * @param task the task to be added + */ public void addTask(TimerTask task) { PreparedStatement statement = null; - PreparedStatement statement2 = null; - PreparedStatement statement3 = null; + PreparedStatement statement2; + try { statement = connection.prepareStatement(config.getStorageQueryInsertTask()); statement.setString(1, task.getName()); @@ -221,13 +223,16 @@ String[] array; //On recupere le path du parent - if(StringUtils.isNotBlank(task.getParent())) { + if(!task.getParent().equals("")) { statement2 = connection.prepareStatement(config.getStorageQuerySelectPath()); - statement2.setString(1, task.getTaskId()); + //On insere l'identifiant du parent + statement2.setString(1, task.getParent()); ResultSet rs = statement2.executeQuery(); + try { + rs.first(); String[] parentArray = (String[]) rs.getObject("path"); array = Arrays.copyOf(parentArray, parentArray.length + 1); array[parentArray.length] = task.getTaskId(); @@ -239,7 +244,6 @@ array = new String[]{task.getTaskId()}; } - updateTaskPath(task.getTaskId(), array); @@ -425,7 +429,6 @@ closeStatement(statement2); } - log.warn(tasks); return tasks; } @@ -557,13 +560,17 @@ ResultSet rs = statement.executeQuery(); while(rs.next()){ - ReportTask task = new ReportTask(rs.getString("name"), - rs.getString("taskId"), - rs.getString("parent"), - rs.getLong("totalduration")); + String name = rs.getString("name"); + String taskId = rs.getString("taskId"); + String parent=rs.getString("parent"); + long totalDuration = rs.getLong("totalduration"); - parentSet.add(rs.getString("parent")); + ReportTask task = new ReportTask(name,taskId,parent,totalDuration); + if(!parent.equals("")) { + parentSet.add(rs.getString("parent")); + } + //Arraylist of reportask for the map Set tmp = new HashSet(); if(map.containsKey(rs.getString("parent"))){ @@ -575,24 +582,40 @@ map.put(rs.getString("parent"), tmp); } - // parent tasks - statement2 = connection.prepareStatement(config.getStorageQuerySelectParentTask()); - statement2.setObject(1, parentSet.toArray(new String[parentSet.size()])); + //Tant que tous les parents n'ont pas ete recupere on boucle + while(!parentSet.isEmpty()) { + //On va chercher les taches parent + statement2 = connection.prepareStatement(config.getStorageQuerySelectParentTask()); + statement2.setObject(1, parentSet.toArray(new String[parentSet.size()])); - rs = statement2.executeQuery(); - while(rs.next()){ + //On vide le parentSet avant de verifier si les taches parentes ont des parents + parentSet.clear(); - ReportTask task = new ReportTask(rs.getString("name"), - rs.getString("taskId"), - rs.getString("parent"), - (long) 0); + //On execute la requete + rs = statement2.executeQuery(); - Set tmp = new HashSet(); - if(map.containsKey(rs.getString("parent") )){ - tmp = (HashSet) map.get(rs.getString("parent")); + while (rs.next()) { + + String name = rs.getString("name"); + String taskId = rs.getString("taskId"); + String parent=rs.getString("parent"); + long totalDuration = (long) 0; + + ReportTask task = new ReportTask(name,taskId,parent,totalDuration); + + //On ajoute le parent de la tache au set + if(!parent.equals("")) { + parentSet.add(rs.getString("parent")); + } + + Set tmp = new HashSet(); + if (map.containsKey(rs.getString("parent"))) { + tmp = (HashSet) map.get(rs.getString("parent")); + } + tmp.add(task); + map.put(rs.getString("parent"), tmp); + } - tmp.add(task); - map.put(rs.getString("parent"), tmp); } }catch(SQLException ex) { @@ -606,7 +629,6 @@ } - //TODO /** * Methode qui retourne les taches minutees entre deux bornes par semaine * @param startDate borne inferieur @@ -615,13 +637,15 @@ */ public HashMap<Integer,HashMap<String, Set<ReportTask>>> getReportByWeek(Long startDate, Long endDate){ + //Le resultat sous forme string parent, array de reportTask HashMap<Integer,HashMap<String, Set<ReportTask>>> res = new HashMap<>(); + HashMap<Integer, Set<String>> parentWeekHash = new HashMap<>(); - PreparedStatement statement = null; PreparedStatement statement2 = null; try{ + //Les taches minutees sur les differentes semaines statement = connection.prepareStatement(config.getStorageQuerySelectReportWeekTimedTasks()); statement.setLong(1, startDate); @@ -632,53 +656,90 @@ while(rs.next()) { int week = rs.getInt("week"); + //Si la week n'est pas présent if(res.get(week)==null) { res.put(week, new HashMap<String, Set<ReportTask>>()); } - ReportTask task = new ReportTask(rs.getString("name"), - rs.getString("taskId"), - rs.getString("parent"), - rs.getLong("totalduration")); + String name = rs.getString("name"); + String taskId = rs.getString("taskId"); + String parent=rs.getString("parent"); + long totalDuration = rs.getLong("totalduration"); - Set tmp = new HashSet(); - if (res.get(week).containsKey(rs.getString("parent"))) { - tmp = (Set)res.get(week).get(rs.getString("parent")); + ReportTask task = new ReportTask(name,taskId,parent,totalDuration); + + //On ajoute les elements au set du resultat + Set tmp; + if(res.containsKey(week) && res.get(week).containsKey(parent)){ + tmp = (Set)res.get(week).get(parent); + }else{ + tmp=new HashSet<>(); } tmp.add(task); - res.get(week).put(rs.getString("parent"), tmp); + //On ajoute le resultat: week, set de reportTask + res.get(week).put(parent, tmp); + //On ajoute le parent pour le week au set de parent + Set tmp2; + if (parentWeekHash.containsKey(week)) { + tmp2 = (Set)parentWeekHash.get(week); + }else{ + tmp2=new HashSet<>(); + } + tmp2.add(parent); + + parentWeekHash.put(week,tmp2); + } + Set<Integer> keySet = parentWeekHash.keySet(); // not timed tasks - statement2 = connection.prepareStatement(config.getStorageQuerySelectReportRootTask()); - Set notTimedArray = new HashSet(); + for(Integer key : keySet){ - rs = statement2.executeQuery(); + //Tant que tous les parents n'ont pas ete recupere on boucle + while(!parentWeekHash.get(key).isEmpty()) { + //On va chercher les taches parent + statement2 = connection.prepareStatement(config.getStorageQuerySelectParentTask()); + statement2.setObject(1, parentWeekHash.get(key).toArray(new String[parentWeekHash.get(key).size()])); - while(rs.next()){ - ReportTask task = new ReportTask(rs.getString("name"), - rs.getString("taskId"), - rs.getString("parent"), - (long) 0); + //On vide le parentSet avant de verifier si les taches parentes ont des parents + parentWeekHash.get(key).clear(); - notTimedArray.add(task); - } + //On execute la requete + rs = statement2.executeQuery(); + while (rs.next()) { - Iterator iter = res.keySet().iterator(); + String name = rs.getString("name"); + String taskId = rs.getString("taskId"); + String parent=rs.getString("parent"); + long totalDuration = (long) 0; - while(iter.hasNext()) { - Integer key = (Integer)iter.next(); - Set cloneNotTimedArray=new HashSet(); + ReportTask task = new ReportTask(name,taskId,parent,totalDuration); - for(ReportTask toClone:(Set<ReportTask>)notTimedArray){ - cloneNotTimedArray.add(new ReportTask(toClone)); + //On ajoute le parent de la tache au set + if(!parent.equals("")) { + parentWeekHash.get(key).add(rs.getString("parent")); + } + + //On ajoute les elements au set du resultat + Set tmp; + if (res.get(key).containsKey(parent)) { + tmp = (Set)res.get(key).get(parent); + }else{ + tmp=new HashSet<>(); + } + tmp.add(task); + + //On ajoute le resultat: week, set de reportTask + res.get(key).put(parent, tmp); + + } } - res.get(key).put("", cloneNotTimedArray); } + }catch(SQLException ex) { throw new StorageException("Can't get report", ex); } finally { @@ -767,6 +828,8 @@ /** * Methoque qui met à jour le path d'une tache * @param taskId l'identifiant de la tache + * @param array l'array representant la tache et ses parents dans l'ordre parent -> enfant + * */ public void updateTaskPath(String taskId, String[] array){ PreparedStatement statement = null; Modified: branches/ng-jtimer/src/main/java/org/chorem/jtimer/utils/ReportTask.java =================================================================== --- branches/ng-jtimer/src/main/java/org/chorem/jtimer/utils/ReportTask.java 2014-07-18 15:38:00 UTC (rev 3018) +++ branches/ng-jtimer/src/main/java/org/chorem/jtimer/utils/ReportTask.java 2014-07-22 13:18:31 UTC (rev 3019) @@ -148,12 +148,17 @@ @Override public int hashCode() { - return super.hashCode(); + + int hash = 1; + hash = hash * 17 + name.hashCode(); + hash = hash * 31 + taskId.hashCode(); + hash = hash * 13 + parentId.hashCode(); + + return hash; } @Override public boolean equals(Object obj) { - - return this.taskId == ((ReportTask)obj).getTaskId(); + return this.taskId.equals(((ReportTask)obj).getTaskId()); } } Modified: branches/ng-jtimer/src/main/java/org/chorem/jtimer/web/ReportResource.java =================================================================== --- branches/ng-jtimer/src/main/java/org/chorem/jtimer/web/ReportResource.java 2014-07-18 15:38:00 UTC (rev 3018) +++ branches/ng-jtimer/src/main/java/org/chorem/jtimer/web/ReportResource.java 2014-07-22 13:18:31 UTC (rev 3019) @@ -61,17 +61,19 @@ type = String.valueOf(getQuery().getValues("type")); log.info("type " +type); } catch (Exception e) { - log.info("type non present dans l'url" + e); + log.info("Rapport : type non present dans l'url" + e); } try { startDate = Long.valueOf(getQuery().getValues("start_Date")); + log.info("start" +startDate); } catch (Exception e) { - log.info("type non present dans l'url" + e); + log.info("Rapport : startDate non present dans l'url" + e); } try { endDate = Long.valueOf(getQuery().getValues("end_Date")); + log.info("end" +endDate); } catch (Exception e) { - log.info("type non present dans l'url" + e); + log.info("Rapport : endDate non present dans l'url" + e); } //On ne recupere que les elements interessants @@ -82,27 +84,23 @@ HashMap<String, Set<ReportTask>> storedTask = storage.getReportByProject(startDate, endDate); ArrayList<ReportTask> res = new ArrayList<>(); //l'arraylist de resultat - log.warn("Project " +storedTask.toString()); + if(!storedTask.isEmpty()) { + //On parcours le map récupérer de la base pour recéer l'arbre + for (ReportTask rt : storedTask.get("")) { + recursivSortTask(storedTask, rt, res); + } - //On parcours le map récupérer de la base pour recéer l'arbre - for(ReportTask rt: storedTask.get("")){ - recursivSortTask(storedTask, rt, res ); + //On enleve les éléments non voulus + recursiveRemoveUnreportedTask(res, toReport); + } - log.warn("inter " +res.toString()); - - //On enleve les éléments non voulus - recursiveRemoveUnreportedTask(res,toReport); - - log.warn("envoyé " +res.toString()); - json = gson.toJson(res, ArrayList.class); } if(type.equals("Week")) { HashMap<Integer, HashMap<String, Set<ReportTask>>> storedTask = storage.getReportByWeek(startDate, endDate); - log.warn("Week " +storedTask.toString()); HashMap<Integer, ArrayList<ReportTask>> res = new HashMap<>(); Iterator iter = storedTask.keySet().iterator(); @@ -115,8 +113,7 @@ recursivSortTask(storedTask.get(key), rt, tmp); } recursiveRemoveUnreportedTask(tmp, (ArrayList<String>) toReport.clone()); - log.warn("this is tmp" + tmp); - log.warn("this is toReport" + toReport); + res.put(key, tmp); } @@ -187,6 +184,7 @@ } + } } Modified: branches/ng-jtimer/src/main/resources/jtimer-default.properties =================================================================== --- branches/ng-jtimer/src/main/resources/jtimer-default.properties 2014-07-18 15:38:00 UTC (rev 3018) +++ branches/ng-jtimer/src/main/resources/jtimer-default.properties 2014-07-22 13:18:31 UTC (rev 3019) @@ -2,7 +2,7 @@ # jTimer default properties ### # jTimer storage path -jtimer.storage.path=/home/olivia/Bureau/jtimer/jtimer/BDDTest +jtimer.storage.path=/home/olivia/Bureau/jtimer/jtimer/BDDTest4 ### # SQL properties ### @@ -96,8 +96,7 @@ AND TA.creationDate > ? \ AND TA.creationDate < ? \ AND TA.removed = 0 \ - GROUP BY TA.taskId \ - ORDER BY TA.creationDate DESC + GROUP BY TA.taskId jtimer.storage.select.report.roottasks=SELECT * \ FROM task \ WHERE (taskId not in (SELECT taskid FROM tasktime) AND removed = 0 ) Modified: branches/ng-jtimer/src/main/webapp/css/app.css =================================================================== --- branches/ng-jtimer/src/main/webapp/css/app.css 2014-07-18 15:38:00 UTC (rev 3018) +++ branches/ng-jtimer/src/main/webapp/css/app.css 2014-07-22 13:18:31 UTC (rev 3019) @@ -274,20 +274,6 @@ .selected-row { background-color: #BCD1E5; - - -moz-transition-property: background-color; - -webkit-transition-property: background-color; - -o-transition-property: background-color; - -ms-transition-property: background-color; - transition-property: background-color; - - - -moz-transition-duration:3s; - -webkit-transition-duration:3s; - -o-transition-duration:3s; - -ms-transition-duration:3s; - transition-duration:3s; - } .no-alarm { Modified: branches/ng-jtimer/src/main/webapp/js/controllers.js =================================================================== --- branches/ng-jtimer/src/main/webapp/js/controllers.js 2014-07-18 15:38:00 UTC (rev 3018) +++ branches/ng-jtimer/src/main/webapp/js/controllers.js 2014-07-22 13:18:31 UTC (rev 3019) @@ -1027,55 +1027,6 @@ } }); - - modalInstance.result.then(function (item) { - - if(item.index != -1){ - if(item.action=='Modification'){ - //On met la valeur à jour - - $scope.data.times[id][item.index].changeCreationDate(item.creationDate); - $scope.data.times[id][item.index].changeDuration(item.time); - - //init - if(!$scope.todo.stockedEditedTimes[id]){$scope.todo.stockedEditedTimes[id]=[]; } - - //On ajoute dans la tdList - $scope.todo.stockedEditedTimes[id].push($scope.data.times[id][item.index]); - - save(); - } - - if(item.action=='Ajout'){ - //init - - if(!$scope.data.times[id]){$scope.data.times[id]= [];}; - if(!$scope.todo.stockedNewTimes[id]){$scope.todo.stockedNewTimes[id] = []}; - - //on cree le temps - var res = new TaskTime(node.task,undefined,item.creationDate,item.time); - $scope.data.times[id].push(res); - $scope.todo.stockedNewTimes[id].push(res); - save(); - } - - if(item.action == 'Suppression'){ - // init de l'objet - if(!$scope.todo.stockedDeletedTimes[id]){ - $scope.todo.stockedDeletedTimes[id] = [] - }; - //on pousse l'objet à supprimer - $scope.todo.stockedDeletedTimes[id].push($scope.data.times[id][item.index].timeId); - - $scope.data.times[id].splice(item.index,1); - if($scope.data.times[id]==[]){ - delete $scope.data.times[id]; - } - save(); - } - data = $scope.data.times; - } - }); } $scope.popupTime = function (node){ @@ -1195,7 +1146,7 @@ * @param $scope * @param $modalInstance */ -function OptionModalCtrl($scope, $modalInstance, serverAlarmAccess, taskTimes, indent, selectTask , totaltime, todaytime, disabled,todo) { +function OptionModalCtrl($scope, $modalInstance, serverAlarmAccess, serverTimeAccess, taskTimes, indent, selectTask , totaltime, todaytime, disabled,todo) { $scope.taskTimes = taskTimes; $scope.indent = indent; $scope.task = selectTask; @@ -1334,7 +1285,7 @@ }else{ min =min - prevMin; } - console.log("hm " +hour +" " +min); + }else{ var prevHour = parseInt(msToHour(todaytime)); var prevMin = parseInt(msToMin(todaytime)); @@ -1347,7 +1298,6 @@ }else{ min =min - prevMin; } - console.log("hm " +hour +" " +min); } if($scope.alarm.hour > 0 || $scope.alarm.min> 0 ){ @@ -1595,48 +1545,79 @@ }; -function TimesModalCtrl($scope) { +function TimesModalCtrl($scope, serverTimeAccess) { $scope.dateobj={date : new Date(), today : new Date()}; $scope.selectedItem=null; - //TODO if different de new date .startPeriod .endPeriod + $scope.limit={}; + $scope.limit.fromHour =0; + $scope.limit.fromMin =0; + $scope.limit.toHour = 0; + $scope.limit.toMin = 0; + $scope.limit.limitMin = 0; + //Le pas des heures et minutes $scope.hstep = 1; $scope.mstep = 1; - - //L'objet retourner - $scope.obj.creationDate=new Date().getTime(); - $scope.obj.time=0; - $scope.obj.index = -1; - $scope.obj.action = ''; - //Pour l'affichage $scope.getStartTime = function(item){return moment(item.creationDate).format("H:mm:ss");} $scope.getStopTime = function(item){return moment(item.creationDate + item.time).format("H:mm:ss");} $scope.getDuration = function(item){return item.time;} - //selectionne un element dans le dropdown + /** + * Met a jour les valeurs des input de selection d'heure + */ + $scope.updateLimitHour = function(){ + if(!($scope.limit.toHour > $scope.limit.fromHour)){ + + $scope.limit.toHour = $scope.limit.fromHour; + + if($scope.limit.toHour == $scope.limit.fromHour){ + $scope.limit.toMin = $scope.limit.fromMin; + $scope.limit.limitMin = $scope.limit.fromMin; + + }else{ + $scope.limit.limitMin = 0; + } + + }else{ + $scope.limit.limitMin = 0; + } + } + + /* + * Selectionne un element dans le dropdown + */ $scope.select = function(item, ind){ - //On intialise l'objet a envoyer - $scope.obj.index = ind; - $scope.obj.creationDate=item.creationDate; - $scope.obj.time=item.time; - $scope.selectedItem = item; $scope.dateobj.startPeriod = item.creationDate; $scope.dateobj.endPeriod = item.creationDate + item.time; }; - $scope.addTime= function(date){ + /** + * Change le booleen specifiant si on est en train d'ajouter un temps + */ + $scope.addTime= function(){ $scope.addTimeBool=true; } + /** + * Ferme la partie d'ajout de temps + */ + $scope.cancel = function(){ + $scope.addTimeBool=false; + } + + /** + * Methode qui va supprimer un temps + * + */ $scope.removeTime = function(ind, item){ if(!$scope.todo.stockedDeletedTimes[item.taskId]){ $scope.todo.stockedDeletedTimes[item.taskId] = [] @@ -1655,6 +1636,96 @@ }; + /** + * Methode qui sauve le temps + * + */ + $scope.saveNewTime = function(){ + + $scope.dateobj.date.setHours($scope.limit.fromHour, $scope.limit.fromMin, 0, 0); + //On calcule le temps de la periode + var time = (hourToms($scope.limit.toHour) + minToms($scope.limit.toMin)) - + (hourToms($scope.limit.fromHour) + minToms($scope.limit.fromMin)); + + //on cree le temps + var res = new TaskTime(task,undefined,$scope.dateobj.date.getTime(),time); + console.log("Nouveau temps "); + console.log(res); + console.log($scope.dateobj.date); + + res["modificationDate"]=Date.now(); + + serverTimeAccess.create({taskId: task.taskId,dispatch:true} , angular.toJson(res), + function(){ + console.log("persist time success" + task); + + }, + function(){ + console.log("fail"); + }); + + $scope.taskTimes.times[task.taskId] = []; + $scope.taskTimes.times[task.taskId].push(res); + $scope.changeDate(); + + //On ferme la partie d'ajout de temps + $scope.limit.fromHour =0; + $scope.limit.fromMin =0; + $scope.limit.toHour = 0; + $scope.limit.toMin = 0; + $scope.limit.limitMin = 0; + + $scope.addTimeBool=false; + + } + + /** + * Methode qui sauve le temps + * + */ + $scope.updateTime = function(){ + + $scope.selectedItem; + + $scope.dateobj.date.setHours($scope.limit.fromHour, $scope.limit.fromMin, 0, 0); + //On calcule le temps de la periode + var time = (hourToms($scope.limit.toHour) + minToms($scope.limit.toMin)) - + (hourToms($scope.limit.fromHour) + minToms($scope.limit.fromMin)); + + $scope.selectedItem["time"] = time; + $scope.selectedItem["creationDate"] = $scope.dateobj.date.getTime(); + $scope.selectedItem["modificationDate"]=Date.now(); + + serverTimeAccess.update({taskId: task.taskId,dispatch:true} , angular.toJson($scope.selectedItem), + function(){ + console.log("update time success" + task); + + }, + function(){ + console.log("fail"); + }); + + } + + /** + * Converts hours to ms + */ + var hourToms = function(h){ + return 60* minToms(h) + } + + /** + * Converts minutes to ms + */ + var minToms = function(m){ + return m*60*1000; + } + + + /** + * Methode qui a chaque changement de date va recharger les elements dans la liste des temps + * + */ $scope.changeDate= function(){ $scope.selectedItem = null; @@ -1664,19 +1735,19 @@ endday.setHours(23,59,59,999); startday.setHours(0,0,0,0); - console.log($scope.dateobj.end ); - $scope.times=[]; - // Les temps de la tache + //On va recuperer les temps de la tache angular.forEach($scope.taskTimes.times[$scope.indent],function(time){ + // si le temps est entre les bornes de la journées if(time.creationDate> startday.getTime() && time.creationDate< endday.getTime()){ + //ajout du temps $scope.times.push(time); - console.log("pusssh"); } }); }; + //force le changement de date a l'ouverture du modal $scope.changeDate(); }; Modified: branches/ng-jtimer/src/main/webapp/partials/timesModal.html =================================================================== --- branches/ng-jtimer/src/main/webapp/partials/timesModal.html 2014-07-18 15:38:00 UTC (rev 3018) +++ branches/ng-jtimer/src/main/webapp/partials/timesModal.html 2014-07-22 13:18:31 UTC (rev 3019) @@ -36,10 +36,17 @@ No time for {{task.name}} at this date. </span> </div> - <i class="glyphicon glyphicon-plus-sign btn" ng-click="addTime(date)"> Add Time{{addTimeBool}}</i> + <i class="glyphicon glyphicon-plus-sign btn" ng-click="addTime()"> Add Time</i> </div> </div> + + <div class="paded" ng-if="addTimeBool"> + <button class="btn btn-default btn-sm" ng-click="saveNewTime()" > Save</button> + <button class="btn btn-default btn-sm" ng-click="cancel()" > Return</button> + </div> + + </div> <div class="right paded"> @@ -56,21 +63,21 @@ <h4>Modification : </h4> <div style="display : inline-block;"> - From : + <span>From :</span> + <input type="number" step="1" min="0" max="23" ng-change="updateLimitHour()" ng-model="limit.fromHour">h: + <input type="number" step="1" min="0" max="59" ng-change="updateLimitHour()" ng-model="limit.fromMin">m + </div> + <br/> <div style="display : inline-block;"> - <timepicker - ng-model="dateobj.startPeriod" ng-change="changeModel()" hour-step="hstep" minute-step="mstep" show-meridian="ismeridian"> - </timepicker> + <span> To :</span> + <input type="number" step="1" min="{{limit.fromHour}}" max="23" ng-change="updateLimitHour()" ng-model="limit.toHour">h: + <input type="number" step="1" min="{{limit.limitMin}}" max="59" ng-model="limit.toMin">m </div> - <div style="display : inline-block;"> - To : + + <div> + <button class="btn btn-default btn-sm" ng-click="updateTime()" > Update! </button> </div> - <div style="display : inline-block;"> - <timepicker - ng-model="dateobj.endPeriod" ng-change="changeModel()" hour-step="hstep" minute-step="mstep" show-meridian="ismeridian"> - </timepicker> - </div> </div> <!--Si ajout selectionne--> @@ -78,18 +85,20 @@ <h4>Period's limit :</h4> <div style="display : inline-block;"> <span>From :</span> - <input type="number" step="1" min="0" max="23" ng-model="fromhHour">h: - <input type="number" step="1" min="0" max="59" ng-model="fromMin">m + <input type="number" step="1" min="0" max="23" ng-change="updateLimitHour()" ng-model="limit.fromHour">h: + <input type="number" step="1" min="0" max="59" ng-change="updateLimitHour()" ng-model="limit.fromMin">m </div> <br/> <div style="display : inline-block;"> <span> To :</span> - <input type="number" step="1" min="0" max="23" ng-model="toHour">h: - <input type="number" step="1" min="0" max="59" ng-model="toMin">m + <input type="number" step="1" min="{{limit.fromHour}}" max="23" ng-change="updateLimitHour()" ng-model="limit.toHour">h: + <input type="number" step="1" min="{{limit.limitMin}}" max="59" ng-model="limit.toMin">m </div> </div> </div> </div> + +
participants (1)
-
obruce@users.chorem.org