Merging bugfix
This commit is contained in:
@@ -0,0 +1,11 @@
|
|||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
charset = utf-8
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
insert_final_newline = true
|
||||||
|
end_of_line = lf
|
||||||
|
# editorconfig-tools is unable to ignore longs strings or urls
|
||||||
|
max_line_length = null
|
||||||
+7
-1
@@ -1,7 +1,13 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<head>
|
<head>
|
||||||
<script type="text/javascript" src="https://rawgithub.com/nwcell/ics.js/master/ics.deps.min.js"></script>
|
<!-- <script type="text/javascript" src="https://rawgithub.com/nwcell/ics.js/master/ics.deps.min.js"></script> -->
|
||||||
|
|
||||||
|
<!-- include source files here... -->
|
||||||
|
<script src="../bower_components/Blob.js/Blob.js"></script>
|
||||||
|
<script src="../bower_components/file-saver/FileSaver.js"></script>
|
||||||
|
<script src="../ics.js"></script>
|
||||||
<script type="text/javascript" src="https://rawgithub.com/nwcell/ics.js/master/demo/demo.js"></script>
|
<script type="text/javascript" src="https://rawgithub.com/nwcell/ics.js/master/demo/demo.js"></script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
html, body {
|
html, body {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/* global saveAs, Blob, BlobBuilder, console */
|
/* global saveAs, Blob, BlobBuilder, console */
|
||||||
/* exported ics */
|
/* exported ics */
|
||||||
|
|
||||||
var ics = function() {
|
var ics = function( uidDomain, prodId ) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
if (navigator.userAgent.indexOf('MSIE') > -1 && navigator.userAgent.indexOf('MSIE 10') == -1) {
|
if (navigator.userAgent.indexOf('MSIE') > -1 && navigator.userAgent.indexOf('MSIE 10') == -1) {
|
||||||
@@ -9,10 +9,14 @@ var ics = function() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (typeof uidDomain === 'undefined') { uidDomain = 'default'; }
|
||||||
|
if (typeof prodId === 'undefined') { prodId = 'Calendar'; }
|
||||||
|
|
||||||
var SEPARATOR = (navigator.appVersion.indexOf('Win') !== -1) ? '\r\n' : '\n';
|
var SEPARATOR = (navigator.appVersion.indexOf('Win') !== -1) ? '\r\n' : '\n';
|
||||||
var calendarEvents = [];
|
var calendarEvents = [];
|
||||||
var calendarStart = [
|
var calendarStart = [
|
||||||
'BEGIN:VCALENDAR',
|
'BEGIN:VCALENDAR',
|
||||||
|
'PRODID:'+prodId,
|
||||||
'VERSION:2.0'
|
'VERSION:2.0'
|
||||||
].join(SEPARATOR);
|
].join(SEPARATOR);
|
||||||
var calendarEnd = SEPARATOR + 'END:VCALENDAR';
|
var calendarEnd = SEPARATOR + 'END:VCALENDAR';
|
||||||
@@ -105,6 +109,7 @@ var ics = function() {
|
|||||||
//TODO add time and time zone? use moment to format?
|
//TODO add time and time zone? use moment to format?
|
||||||
var start_date = new Date(begin);
|
var start_date = new Date(begin);
|
||||||
var end_date = new Date(stop);
|
var end_date = new Date(stop);
|
||||||
|
var now_date = new Date();
|
||||||
|
|
||||||
var start_year = ("0000" + (start_date.getFullYear().toString())).slice(-4);
|
var start_year = ("0000" + (start_date.getFullYear().toString())).slice(-4);
|
||||||
var start_month = ("00" + ((start_date.getMonth() + 1).toString())).slice(-2);
|
var start_month = ("00" + ((start_date.getMonth() + 1).toString())).slice(-2);
|
||||||
@@ -118,18 +123,27 @@ var ics = function() {
|
|||||||
var end_day = ("00" + ((end_date.getDate()).toString())).slice(-2);
|
var end_day = ("00" + ((end_date.getDate()).toString())).slice(-2);
|
||||||
var end_hours = ("00" + (end_date.getHours().toString())).slice(-2);
|
var end_hours = ("00" + (end_date.getHours().toString())).slice(-2);
|
||||||
var end_minutes = ("00" + (end_date.getMinutes().toString())).slice(-2);
|
var end_minutes = ("00" + (end_date.getMinutes().toString())).slice(-2);
|
||||||
var end_seconds = ("00" + (end_date.getSeconds().toString())).slice(-2);
|
var end_seconds = ("00" + (end_date.getMinutes().toString())).slice(-2);
|
||||||
|
|
||||||
|
var now_year = ("0000" + (now_date.getFullYear().toString())).slice(-4);
|
||||||
|
var now_month = ("00" + ((now_date.getMonth() + 1).toString())).slice(-2);
|
||||||
|
var now_day = ("00" + ((now_date.getDate()).toString())).slice(-2);
|
||||||
|
var now_hours = ("00" + (now_date.getHours().toString())).slice(-2);
|
||||||
|
var now_minutes = ("00" + (now_date.getMinutes().toString())).slice(-2);
|
||||||
|
var now_seconds = ("00" + (now_date.getMinutes().toString())).slice(-2);
|
||||||
|
|
||||||
// Since some calendars don't add 0 second events, we need to remove time if there is none...
|
// Since some calendars don't add 0 second events, we need to remove time if there is none...
|
||||||
var start_time = '';
|
var start_time = '';
|
||||||
var end_time = '';
|
var end_time = '';
|
||||||
if (start_minutes + start_seconds + end_minutes + end_seconds !== 0) {
|
if (start_hours + start_minutes + start_seconds + end_hours + end_minutes + end_seconds != 0) {
|
||||||
start_time = 'T' + start_hours + start_minutes + start_seconds;
|
start_time = 'T' + start_hours + start_minutes + start_seconds;
|
||||||
end_time = 'T' + end_hours + end_minutes + end_seconds;
|
end_time = 'T' + end_hours + end_minutes + end_seconds;
|
||||||
}
|
}
|
||||||
|
var now_time = 'T' + now_hours + now_minutes + now_seconds;
|
||||||
|
|
||||||
var start = start_year + start_month + start_day + start_time;
|
var start = start_year + start_month + start_day + start_time;
|
||||||
var end = end_year + end_month + end_day + end_time;
|
var end = end_year + end_month + end_day + end_time;
|
||||||
|
var now = now_year + now_month + now_day + now_time;
|
||||||
|
|
||||||
// recurrence rule vars
|
// recurrence rule vars
|
||||||
var rruleString;
|
var rruleString;
|
||||||
@@ -162,11 +176,12 @@ var ics = function() {
|
|||||||
|
|
||||||
var calendarEvent = [
|
var calendarEvent = [
|
||||||
'BEGIN:VEVENT',
|
'BEGIN:VEVENT',
|
||||||
|
'UID:'+calendarEvents.length+"@"+uidDomain,
|
||||||
'CLASS:PUBLIC',
|
'CLASS:PUBLIC',
|
||||||
'DESCRIPTION:' + description.replace('\r\n', '\\n'),
|
'DESCRIPTION:' + description,
|
||||||
'DTSTART:' + start,
|
'DTSTAMP;VALUE=DATE-TIME:' + now,
|
||||||
'DTEND:' + end,
|
'DTSTART;VALUE=DATE-TIME:' + start,
|
||||||
'DTSTAMP:' + stamp.substring(0, stamp.length - 13).replace(/[-]/g, '') + '000000Z',
|
'DTEND;VALUE=DATE-TIME:' + end,
|
||||||
'LOCATION:' + location,
|
'LOCATION:' + location,
|
||||||
'SUMMARY;LANGUAGE=en-us:' + subject,
|
'SUMMARY;LANGUAGE=en-us:' + subject,
|
||||||
'TRANSP:TRANSPARENT',
|
'TRANSP:TRANSPARENT',
|
||||||
@@ -206,6 +221,19 @@ var ics = function() {
|
|||||||
blob = bb.getBlob('text/x-vCalendar;charset=' + document.characterSet);
|
blob = bb.getBlob('text/x-vCalendar;charset=' + document.characterSet);
|
||||||
}
|
}
|
||||||
saveAs(blob, filename + ext);
|
saveAs(blob, filename + ext);
|
||||||
|
return calendar;
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build and return the ical contents
|
||||||
|
*/
|
||||||
|
'build': function() {
|
||||||
|
if (calendarEvents.length < 1) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var calendar = calendarStart + SEPARATOR + calendarEvents.join(SEPARATOR) + calendarEnd;
|
||||||
|
|
||||||
return calendar;
|
return calendar;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
+3
-2
@@ -4,12 +4,13 @@
|
|||||||
"description": "A browser firendly .ics/.vcs file generator written entirely in javascript",
|
"description": "A browser firendly .ics/.vcs file generator written entirely in javascript",
|
||||||
"main": "icsjs",
|
"main": "icsjs",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"bower": "~1.2.8",
|
||||||
|
"file-saver": "^1.3.3",
|
||||||
"grunt": "~0.4.2",
|
"grunt": "~0.4.2",
|
||||||
"grunt-contrib-concat": "~0.3.0",
|
"grunt-contrib-concat": "~0.3.0",
|
||||||
"grunt-contrib-jshint": "~0.7.2",
|
"grunt-contrib-jshint": "~0.7.2",
|
||||||
"grunt-contrib-uglify": "~0.2.7",
|
"grunt-contrib-uglify": "~0.2.7",
|
||||||
"grunt-mocha": "~0.4.6",
|
"grunt-mocha": "~0.4.6"
|
||||||
"bower": "~1.2.8"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {},
|
"devDependencies": {},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
Reference in New Issue
Block a user