forked from hopeua/tools-calendar
-
Notifications
You must be signed in to change notification settings - Fork 24
/
Copy pathapp.js
76 lines (63 loc) · 2.09 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
;(function(){
'use strict';
var app = angular.module('calendar', ['ngAnimate']);
app.controller('EventController', function($scope){
var getUrl = function(title, desc, locat, start, end){
var uri = new URI('https://www.google.com/calendar/render');
uri.search({
action: 'TEMPLATE',
text: title,
details: desc,
location: locat,
dates: start + '/' + end
});
return uri.toString();
};
$scope.getUrl = function(){
/* TODO Add form validation */
$scope.copied = false;
$scope.url = getUrl($scope.title, $scope.desc, $scope.locat, $scope.start, $scope.end);
};
});
app.directive('datetime', function($parse){
var link = function(scope, element, attrs){
var options = {
format: 'DD/MM/YYYY HH:mm'
};
var dp = $(element);
var model = $parse(attrs.ngModel);
dp.datetimepicker(options);
dp.on('dp.change', function(){
var date = dp.data('DateTimePicker')
.getDate()
.zone(0)
.format('YYYYMMDDTHHmmss')
+ 'Z';
scope.$apply(function(scope){
model.assign(scope, date);
});
});
};
return {
restrict: 'A',
link: link
};
});
app.directive('copyOnClick', function(){
var link = function(scope, element, attrs){
var client = new ZeroClipboard(element);
client.on('ready', function(event){
client.on('copy', function(event) {
event.clipboardData.setData('text/plain', scope.url);
scope.$apply(function(scope){
scope.copied = true;
});
});
});
};
return {
restrict: 'A',
link: link
};
});
})();