51 lines
1.5 KiB
JavaScript
51 lines
1.5 KiB
JavaScript
application.factory(
|
|
'projects',
|
|
[
|
|
'config',
|
|
function( config )
|
|
{
|
|
// Reformat project function
|
|
function reformat_project( _project )
|
|
{
|
|
// Date
|
|
_project.moment_date = moment( _project.date );
|
|
_project.date_formated = _project.moment_date.format( 'LTS' );
|
|
_project.time_from_now = _project.moment_date.fromNow();
|
|
|
|
// Last update date
|
|
_project.moment_date = moment( _project.last_update_date );
|
|
_project.last_update_date_formated = _project.moment_date.format( 'LTS' );
|
|
_project.last_update_time_from_now = _project.moment_date.fromNow();
|
|
|
|
return _project;
|
|
}
|
|
|
|
// Result
|
|
var result = {};
|
|
result.data = {};
|
|
result.on_update = null;
|
|
|
|
// Socket
|
|
var socket = io( config.domain + '/projects' );
|
|
|
|
socket.on( 'update_projects', function( data )
|
|
{
|
|
result.data = data;
|
|
|
|
for( var _project_key in result.data.all )
|
|
{
|
|
var project = result.data.all[ _project_key ];
|
|
project = reformat_project( project );
|
|
}
|
|
|
|
|
|
if( typeof result.on_update === 'function' )
|
|
result.on_update.apply( this, [ data ] );
|
|
} );
|
|
|
|
// Return
|
|
return result;
|
|
}
|
|
]
|
|
);
|