UNPKG

zettapi_client

Version:

Client side CRUD operations in angular to use with zettapi_server rest api to get started quickly in any CMS project

121 lines (101 loc) 2.81 kB
app.factory('$date', function(moment) { var factory = {}; factory.collisionDetection = function(start, end, events) { start = moment(start).format('YYYY-MM-DD'); end = end ? moment(end).format('YYYY-MM-DD') : start; if (end < start) { return null; } for (var i = 0; i < events.length; i++) { /* if (events[i].approval) { if (events[i].approval.cancelled) { continue; } if (events[i].approval.level < events[i].approval.maxLevel) { continue; } } */ var eventStart = moment(events[i].dateStart).format('YYYY-MM-DD'); var eventEnd = eventStart; if (events[i].dateEnd) { eventEnd = moment(events[i].dateEnd).format('YYYY-MM-DD'); } // $ |__$__| if (eventEnd > start && eventEnd <= end) { return true; } // |__$__| $ if (eventStart >= start && eventStart < end) { return true; } // $ |____| $ if (eventStart <= start && eventEnd >= end) { return true; } // |___$___$____| if (eventStart >= start && eventEnd <= end) { return true; } } return false; }; factory.extractMinutes = function(time) { try { return factory.pad(time.getHours()) + ':' + factory.pad(time.getMinutes()); } catch (err) { time = new Date(time); return factory.pad(time.getHours()) + ':' + factory.pad(time.getMinutes()); } }; factory.calculateTimespan = function(startTimestamp, endTimestamp) { var end; if (endTimestamp) { end = moment(endTimestamp); } else { end = moment(); } var start = new Date(startTimestamp); var duration = moment.duration(end.diff(start)); return duration.asMinutes().toFixed(2); }; factory.totalMinutes = function(timeString) { var HourMinutes = timeString.split(':'); if (HourMinutes.length == 1) { HourMinutes.push(0); } var hours = parseInt(HourMinutes[0]); var minutes = parseInt(HourMinutes[1]); return hours * 60 + minutes; }; factory.pad = function(number, count) { var res = number + ""; count = count || 2; while (res.length < count) { res = "0" + res; } return res; }; factory.getTotalMinutes = function(time) { var HourMinutes = time.split(':'); if (HourMinutes.length === 0 || HourMinutes.length > 2) { return null; } if (HourMinutes.length == 1) { HourMinutes.push(0); } var hours = parseInt(HourMinutes[0]); if (hours < 0 || hours > 23) { return null; } var minutes = parseInt(HourMinutes[1]); if (minutes < 0 || minutes > 59) { return null; } return hours * 60 + minutes; }; return factory; });