Author: jruchaud Date: 2015-04-28 09:20:20 +0000 (Tue, 28 Apr 2015) New Revision: 1276 Url: http://forge.nuiton.org/projects/sandbox/repository/revisions/1276 Log: Begin implement options Added: wit/js/components/InputTag.js wit/js/pages/Options.js wit/js/services/ConfigurationService.js Modified: wit/index.html wit/js/main.js wit/js/services/TimerService.js Modified: wit/index.html =================================================================== --- wit/index.html 2015-04-28 09:09:02 UTC (rev 1275) +++ wit/index.html 2015-04-28 09:20:20 UTC (rev 1276) @@ -15,6 +15,7 @@ <script type="text/jsx" src="js/pages/Timer.js"></script> <script type="text/jsx" src="js/pages/Rapport.js"></script> <script type="text/jsx" src="js/pages/UserActivity.js"></script> + <script type="text/jsx" src="js/pages/Options.js"></script> <script type="text/jsx" src="js/main.js"></script> <script type="application/javascript" src="js/gui.js"></script> Added: wit/js/components/InputTag.js =================================================================== Modified: wit/js/main.js =================================================================== --- wit/js/main.js 2015-04-28 09:09:02 UTC (rev 1275) +++ wit/js/main.js 2015-04-28 09:20:20 UTC (rev 1276) @@ -9,11 +9,13 @@ global.document = window.document; global.navigator = window.navigator; +global.localStorage = window.localStorage; var timer = require('./js/services/TimerService.js'); global.timer = timer; var user = require('./js/services/UserActivityService.js'); +var config = require('./js/services/ConfigurationService.js'); var React = require('react'); var Router = require('react-router'); @@ -46,7 +48,7 @@ <li className="pull-left"><Link to="app">Timer</Link></li> <li className="pull-left"><Link to="rapport">Rapport</Link></li> <li className="pull-left"><a href="#">Tags</a></li> - <li className="pull-left"><a href="#">Options</a></li> + <li className="pull-left"><Link to="options">Options</Link></li> <li className="pull-left"><Link to="activity">Help</Link></li> </ul> </div> @@ -61,6 +63,7 @@ <Route name="app" path="/" handler={App}> <Route name="rapport" handler={Rapport}/> <Route name="activity" handler={UserActivity}/> + <Route name="options" handler={Options}/> <DefaultRoute handler={Timer}/> </Route> ); Copied: wit/js/pages/Options.js (from rev 1274, wit/js/pages/Rapport.js) =================================================================== --- wit/js/pages/Options.js (rev 0) +++ wit/js/pages/Options.js 2015-04-28 09:20:20 UTC (rev 1276) @@ -0,0 +1,56 @@ +/** @jsx React.DOM */ + +var Options = React.createClass({ + + setIdleTime: function(e) { + config.setIdleTime(e.target.value); + }, + + setActivityTime: function(e) { + config.setActivityTime(e.target.value); + }, + + setWeekDay: function(e) { + config.setWeekDay(e.target.value); + }, + + render: function() { + var idleTime = config.getIdleTime(); + var activityTime = config.getActivityTime(); + var weekDay = config.getWeekDay(); + + return ( + <div className="form-horizontal"> + + <div className="form-group"> + <label for="idleTime" className="col-sm-2 control-label">Idle time (minutes)</label> + <div className="col-sm-10"> + <input type="number" className="form-control" defaultValue={idleTime} min="0" step="1" onChange={this.setIdleTime}/> + </div> + </div> + + <div className="form-group"> + <label for="idleTime" className="col-sm-2 control-label">Activity time (minutes)</label> + <div className="col-sm-10"> + <input type="number" className="form-control" id="activityTime" defaultValue={activityTime} min="0" step="1" onChange={this.setActivityTime}/> + </div> + </div> + + <div className="form-group"> + <label for="idleTime" className="col-sm-2 control-label">Week day</label> + <div className="col-sm-10"> + <select name="select" className="form-control" id="weekDay" defaultValue={weekDay} onChange={this.setWeekDay}> + <option value="0">monday</option> + <option value="1">tuesday</option> + <option value="2">wednesday</option> + <option value="3">thursday</option> + <option value="4">friday</option> + <option value="5">saturday</option> + <option value="6">sunday</option> + </select> + </div> + </div> + </div> + ); + } +}); Added: wit/js/services/ConfigurationService.js =================================================================== --- wit/js/services/ConfigurationService.js (rev 0) +++ wit/js/services/ConfigurationService.js 2015-04-28 09:20:20 UTC (rev 1276) @@ -0,0 +1,34 @@ +// Base on localStorage + +var storage = localStorage; + +var DEFAULT_IDLE_TIME = 1; // 1 min +var DEFAULT_ACTIVITY_TIME = 1; // 1 min +var DEFAULT_WEEK_DAY = 0; // Monday + +// time as minutes +exports.setIdleTime = function(time) { + storage.idleTime = time; +}; + +exports.getIdleTime = function() { + return parseInt(storage.idleTime || DEFAULT_IDLE_TIME); +}; + +// time as minutes +exports.setActivityTime = function(time) { + storage.activityTime = time; +}; + +exports.getActivityTime = function() { + return parseInt(storage.activityTime || DEFAULT_ACTIVITY_TIME); +}; + +// 0 -> Monday +exports.setWeekDay = function(index) { + storage.weekDay = index; +}; + +exports.getWeekDay = function() { + return parseInt(storage.weekDay || DEFAULT_WEEK_DAY); +}; Modified: wit/js/services/TimerService.js =================================================================== --- wit/js/services/TimerService.js 2015-04-28 09:09:02 UTC (rev 1275) +++ wit/js/services/TimerService.js 2015-04-28 09:20:20 UTC (rev 1276) @@ -1,12 +1,11 @@ var moment = require('moment'); var db = require("./database.js"); +var config = require("./ConfigurationService.js"); var x11 = require('x11'); var events = require('events'); var eventEmitter = new events.EventEmitter(); -var TIME_IDLE = 4 * 1000; - var tags = ["wit", "js", "dev"]; var time = null; var idleTime = null; @@ -20,7 +19,10 @@ SS.QueryInfo(display.screen[0].root, function(err, info) { // console.log('Idle time ' + info.idle + "ms"); - if (info.idle >= TIME_IDLE && !idleTime) { + var configIdleTime = config.getIdleTime(); + var durationIdleTime = moment.duration(configIdleTime, 'm'); + + if (info.idle >= durationIdleTime.asMilliseconds() && !idleTime) { idleTime = new Date(); eventEmitter.emit('onIdle'); }