Merge pull request #27 from guillaumewuip/master

Fix for #26
This commit is contained in:
Mathew Kurian 2015-01-01 13:04:51 -06:00
commit c144c1ffb7
11 changed files with 125 additions and 20 deletions

2
.gitignore vendored
View file

@ -7,4 +7,4 @@ logs*/
Thumbs.db
npm-debug.log
npm-debug.logGruntfile.js

44
Gruntfile.js Normal file
View file

@ -0,0 +1,44 @@
'use strict';
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
jshint: {
options: {
jshintrc: '.jshintrc'
},
gruntfile: {
src: ['scribe.js', 'Gruntfile.js']
},
lib: {
src: ['lib/**/*.js', 'examples/**/*.js', 'static/js/**/*.js']
},
test: {
src: ['test/**/*.js']
},
},
watch: {
gruntfile: {
files: '<%= jshint.gruntfile.src %>',
tasks: ['jshint:gruntfile']
},
lib: {
files: '<%= jshint.lib.src %>',
tasks: ['jshint:lib']
},
test: {
files: '<%= jshint.test.src %>',
tasks: ['jshint:test']
},
},
});
// These plugins provide necessary tasks.
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-watch');
// Default task.
grunt.registerTask('default', ['jshint']);
};

View file

@ -236,6 +236,20 @@
}
});
/**
* /api/timezone
*
* Send the server timezone offset
*/
webPanel.get('/api/timezoneOffset', function (req, res) {
res.status(200).json({
timezoneOffset : (new Date()).getTimezoneOffset()
});
});
return webPanel;
};

View file

@ -204,6 +204,43 @@
});
});
/**
* $rootScope.scribeTimezone
*
* Store the Scribe server timezoneOffset for showing good dates
*
* @type {Int}
*/
$rootScope.scribeTimezone = 0;
ScribeAPI.timezoneOffset(function (result) {
$rootScope.scribeTimezone = result.timezoneOffset;
});
/**
* timezoneDate
*
* Add/remove minutes to the timestamp according to
* the timezone offset between server and browser time
* Because angular date filter print date with the browser timezone
*
* @param {Int|String} timestamp
* @return {Int} the new timestamp
*
* @type {Function}
*/
$rootScope.timezoneDate = function (timestamp) {
timestamp = Number(timestamp);
var serverOffset = $rootScope.scribeTimezone;
var localOffset = (new Date()).getTimezoneOffset();
var offset = serverOffset - localOffset;
return timestamp + offset * 60;
};
/**
* $rootScope.back
*

View file

@ -43,11 +43,15 @@
//build blocks
$scope.blocks = dates.map(function (item) {
var itemDate = $rootScope.timezoneDate(item.date);
console.log(item.date);
console.log(itemDate);
return {
type : 'date',
messageTop : $filter('date')(item.date, 'MMM'),
message : $filter('date')(item.date, 'd'),
messageBottom : $filter('date')(item.date, 'yyyy'),
messageTop : $filter('date')(itemDate, 'MMM'),
message : $filter('date')(itemDate, 'd'),
messageBottom : $filter('date')(itemDate, 'yyyy'),
click : function () {
//save files
logs.setLogs(item.files.map(function (el, index) {

View file

@ -69,7 +69,9 @@
templateUrl : 'partials/elements/log.html',
replace : true,
controller : ['$scope', function ($scope) {
controller : ['$rootScope', '$scope', function ($rootScope, $scope) {
$scope.timezoneDate = $rootScope.timezoneDate;
/**
* $scope.handleTags

View file

@ -46,6 +46,10 @@
}
});
}
},
timezoneOffset : {
methof : 'GET',
url : 'api/timezoneOffset'
}
}
);

View file

@ -13,13 +13,13 @@
<span class="log__item log__time log__time_80" ng-if="showDate != 0 && (showDate == 1 || log.show.date)">
<span class="log__time__higher">
{{log.context.time | date: 'EEE MMM dd yyyy'}}
{{timezoneDate(log.context.time) | date: 'EEE MMM dd yyyy'}}
</span>
</span>
<span class="log__item log__time log__time_122" ng-if="showTime != 0 && (showTime == 1 || log.show.time)">
<span class="log__time__lower">
{{log.context.time | date: 'yyyy-MM-ddTHH:mm:ss:Z'}}
{{timezoneDate(log.context.time) | date: 'yyyy-MM-ddTHH:mm:ss:Z'}}
</span>
</span>