},
+
+ list: function(repo, callback)
+ {
+ // have we got the status in the last 15 mins..
+ // we should not need to get it again... - it's probably not changed.
+
+
+ this.query({repo_shortname : repo.name }, callback);
+ },
+
+
+ query : function(params , callback)
+ {
+
+ _this = this;
+ // do the request to get the task..
+ var r = new XMLHttpRequest({
+ onreadystatechange : function() {
+ print("Got result.");
+ if (this.status != 4) {
+ return;
+ }
+
+
+ var res = JSON.parse(this.responseText);
+
+ //print(JSON.stringify(res,null,4))
+ //print([ res.success , res.data.length ]);
+ if (!res.success || !res.data.length) {
+ print("NO tasks returned");
+ callback([]);
+ return;
+ }
+
+ //print("Current task:" + JSON.stringify(_this.curTask,null,4));
+ callback(res.data);
+ }
+
+ });
+ var netrc = Netrc.forHost('git.roojs.com');
+
+
+
+ r.open('GET',
+ "http://roojs.com/admin.php/Roo/mtrack_ticket?" + r.urlEncode(params)
+ ,true, netrc.login, netrc.password );
+ print("Getting current task: " +
+
+ "http://roojs.com/admin.php/Roo/mtrack_ticket?" + r.urlEncode(params));
+ r.send();
+
+ },
+
+
+
+
fetchRepo: function()
{
// using curTask + lastCommit decide what to do.
this.inQuery = 0;
//tests:::
- this.verifyTaskTime();
- this.verifyTaskProject();
-
-
-
-
- },
-
- verifyTaskTime : function()
- {
+
// check to see if current task is being planned for too long..
// you should only enter task, and allow it to span over an hour.
// if you do the whole day on a task, then it will need to verify with you every so often that you
*/
- var now = new Date();
- if ( this.curTask) {
- print(JSON.stringify(this.curTask));
-
- var endoftask = this.curTask.action_datetime.add(Date.HOUR, this.curTask.qtyvalue);
- print("END OF TASK: " + endoftask);
-
- var max_stretch = now.add(Date.HOUR, 1);
- print("Max stretch: " + max_stretch);
- if (endoftask > max_stretch) {
- this.fixEndCurrTask(); //
-
- }
+
+ if (!this.currTask) {
+ this.promptForTask();
+ return;
+ }
+
+ if (!this.currTask.project_id) {
+ this.promptForTask();
+ return;
+ }
+
+ // are we working on the same project!!!!
+ if (this.currTask.project_id != this.commitRepo.project_id) {
+ this.promptForTask();
+ return;
+ }
+
+ // has the ticket been closed...
+
+ var is_project= this.curTask.project_id_code[0] != '*' ;
+ // is there a ticket?
+ if (is_project && !this.currTask.ticket_id) {
+ this.promptForTask();
+ return;
+ }
+ if (is_project && this.currTask.ticket_status) {
+ //TODO - if status is closed.. then we need to prompt..
}
+ // we now working on same project..
+
+
+ var now = new Date();
+
+ print(JSON.stringify(this.curTask));
+
+ var endoftask = this.curTask.action_datetime.add(Date.HOUR, this.curTask.qtyvalue);
+ print("END OF TASK: " + endoftask);
+
+ var max_stretch = now.add(Date.HOUR, 1);
+ print("Max stretch: " + max_stretch);
+ if (endoftask > max_stretch) {
+ this.fixEndCurrTask(); //
+
+ }
+ // still needs to be verified..
+
+
}
+ // ok verified basic time...
+ //let's check to see if project matches..'
+
},
+
+
+
//---------- end verifying - now prompting..
var hours = (reot - this.curTask.action_datetime) / (60*60 * 1000 );
var rounded = Math.round(hours * 4) / 4.0;
print("Rounded : " + rounded);
+ //return;
this.updateTask({ qtyvalue : rounded });
-
+ this.curTask.qtyvalue = rounded;
},
//-------------- testing
+/*
Gtk = imports.gi.Gtk;
Gtk.init(Seed.argv);
Tasks.notify( { repo : imports.Scm.Repo.Repo.get('gitlive') } );
-Gtk.main();
\ No newline at end of file
+Gtk.main();
+*/
\ No newline at end of file