Skip to content

Commit 209e43e

Browse files
committed
Fix bug with multiple times per issue. Add minor improvements to gtt log
1 parent 2afcbf9 commit 209e43e

File tree

5 files changed

+36
-15
lines changed

5 files changed

+36
-15
lines changed

gtt-log.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@ Fs.readDir(config.frameDir).forEach(file => {
3333

3434
_.each(frames, (frames, date) => {
3535
console.log(`${moment(date).format('MMMM Do YYYY')} (${toHumanReadable(times[date])})`.green);
36-
frames.forEach(frame => {
37-
console.log(` ${frame.id} ${moment(frame.start).format('hh:mm').green} to ${moment(frame.stop).format('hh:mm').green}\t${toHumanReadable(frame.duration)}\t${frame.project.magenta}\t${(frame.resource.type + ' #' + frame.resource.id).blue}`)
38-
});
36+
frames
37+
.sort((a, b) => moment(a.start).isBefore(moment(b.start)) ? -1 : 1)
38+
.forEach(frame => {
39+
console.log(` ${frame.id} ${moment(frame.start).format('HH:mm').green} to ${moment(frame.stop).format('hh:mm').green}\t${toHumanReadable(frame.duration)}\t${frame.project.magenta}\t${(frame.resource.type + ' #' + frame.resource.id).blue}`)
40+
});
3941
});

gtt-sync.js

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,22 +38,23 @@ function createTime(frame, time) {
3838
});
3939
}
4040

41-
Cli.bar(`${Cli.process} Syncing time records...`, frames.length);
41+
// filter out frames, that don't need an update
42+
frames.filter(frame => {
43+
return !(Math.ceil(frame.duration) === _.reduce(frame.notes, (n, m) => (n + m.time), 0));
44+
});
4245

43-
frames.forEach((frame, done) => {
44-
// filter out frames, that don't need an update
45-
if (Math.ceil(frame.duration) === _.reduce(frame.notes, (n, m) => (n + m.time), 0)) {
46-
Cli.advance();
47-
return done();
48-
}
46+
Cli.bar(`${Cli.process} Syncing time records...`, frames.length);
4947

48+
frames.forEach((frame, done) => {
5049
new Promise(resolve => resolve())
5150

5251
// set resource if it isn't already set
5352
.then(() => new Promise((resolve, reject) => {
54-
if (resources[frame.resource.type][frame.resource.id]) return resolve();
53+
if (resources[frame.resource.type][frame.resource.id] !== undefined
54+
&& resources[frame.resource.type][frame.resource.id].data.project_id) return resolve();
5555
resources[frame.resource.type][frame.resource.id] = new classes[frame.resource.type](config, {});
56-
resources[frame.resource.type][frame.resource.id].make(frame.project, frame.resource.id)
56+
resources[frame.resource.type][frame.resource.id]
57+
.make(frame.project, frame.resource.id)
5758
.then(() => resolve())
5859
.catch(error => reject(error));
5960
}))
@@ -63,7 +64,8 @@ frames.forEach((frame, done) => {
6364
.then(() => new Promise((resolve, reject) => {
6465
let notes;
6566
if ((notes = resources[frame.resource.type][frame.resource.id].notes) && notes.length > 0) return;
66-
resources[frame.resource.type][frame.resource.id].getNotes()
67+
resources[frame.resource.type][frame.resource.id]
68+
.getNotes()
6769
.then(() => resolve())
6870
.catch(error => reject(error));
6971
}))

gtt.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/usr/bin/env node
22

3-
const version = '1.1.3';
3+
const version = '1.1.4';
44
const program = require('commander');
55

66
program

models/frameCollection.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,23 @@ class frameCollection extends Base {
99
this.frames = Fs.readDir(config.frameDir);
1010
}
1111

12+
filter(func) {
13+
let arr = [];
14+
15+
this.frames.forEach(file => {
16+
let frame = Frame.fromFile(this.config, Fs.join(this.config.frameDir, file));
17+
if (frame.stop === false) {
18+
return;
19+
}
20+
21+
if (func(frame)) {
22+
arr.push(file);
23+
}
24+
});
25+
26+
this.frames = arr;
27+
}
28+
1229
forEach(iterator) {
1330
return this.parallel(this.frames, (file, done) => {
1431
let frame = Frame.fromFile(this.config, Fs.join(this.config.frameDir, file));

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "gitlab-time-tracker",
3-
"version": "1.1.3",
3+
"version": "1.1.4",
44
"description": "A CLI that makes working with GitLabs time tracking feature more enjoyable",
55
"main": "gtt.js",
66
"scripts": {},

0 commit comments

Comments
 (0)