Skip to content
This repository was archived by the owner on Sep 8, 2020. It is now read-only.

Commit b0ec176

Browse files
Abdul HagiAbdul Hagi
authored andcommitted
Merge branch 'kamthamc-master'
2 parents af34eb2 + b04734d commit b0ec176

File tree

9 files changed

+155
-103
lines changed

9 files changed

+155
-103
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
language: node_js
22
node_js:
3-
- "0.10"
3+
- "0.12"
44

55
branches:
66
except:

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,11 @@ in a service, instead of letting fullCalendar pull them via AJAX), you can add t
133133

134134
grunt minify
135135

136+
# Local Server to test demo
137+
138+
grunt serve
139+
140+
136141
## Documentation for the Calendar
137142

138143
The calendar works alongside of all the documentation represented [here](http://arshaw.com/fullcalendar/docs)

bower.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,17 @@
1616
"package.json"
1717
],
1818
"dependencies": {
19-
"angular": "1.3.15",
20-
"jquery": "2.x",
21-
"fullcalendar": "2.3.1",
22-
"moment": "2.*"
19+
"angular": "~1.4.1",
20+
"jquery": "~2.1.4",
21+
"fullcalendar": "~2.3.2",
22+
"moment": "~2.10.3"
2323
},
2424
"devDependencies": {
2525
"angular-mocks": "~1.x",
2626
"bootstrap-css": "2.3.1"
2727
},
2828
"resolutions": {
29-
"jquery": "~2.x",
30-
"angular": "1.3.15"
29+
"jquery": "~2.1.4",
30+
"angular": "1.4.1"
3131
}
3232
}

demo/calendarDemo.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
/**
22
* calendarDemoApp - 0.9.0
33
*/
4-
angular.module('calendarDemoApp', ['ui.calendar', 'ui.bootstrap'])
5-
.controller('CalendarCtrl', CalendarCtrl);
4+
var calendarDemoApp = angular.module('calendarDemoApp', ['ui.calendar', 'ui.bootstrap']);
65

7-
function CalendarCtrl($scope, $compile, $timeout, uiCalendarConfig) {
6+
calendarDemoApp.controller('CalendarCtrl',
7+
function($scope, $compile, $timeout, uiCalendarConfig) {
88
var date = new Date();
99
var d = date.getDate();
1010
var m = date.getMonth();
@@ -131,5 +131,5 @@ function CalendarCtrl($scope, $compile, $timeout, uiCalendarConfig) {
131131
/* event sources array*/
132132
$scope.eventSources = [$scope.events, $scope.eventSource, $scope.eventsF];
133133
$scope.eventSources2 = [$scope.calEventsExt, $scope.eventsF, $scope.events];
134-
}
135-
/* EOF */
134+
});
135+
/* EOF */

demo/index.html

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
<head>
44
<title>AngularUI Calendar for AngularJS</title>
55
<link rel="icon" href="favicon.ico" />
6-
<link rel="stylesheet" href="../bower_components/bootstrap-css/css/bootstrap.css" />
7-
<link rel="stylesheet" href="../bower_components/fullcalendar/dist/fullcalendar.css">
6+
<link rel="stylesheet" href="/../bower_components/bootstrap-css/css/bootstrap.css" />
7+
<link rel="stylesheet" href="/../bower_components/fullcalendar/dist/fullcalendar.css">
88
<link rel="stylesheet" href="calendarDemo.css" />
99

1010
<script src="../bower_components/jquery/dist/jquery.js"></script>
1111

1212
<script src="../bower_components/angular/angular.js"></script>
13-
<script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.9.0.js"></script>
13+
<script src="http://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.13.0.js"></script>
1414
<script src="../bower_components/moment/moment.js"></script>
1515
<script src="../bower_components/fullcalendar/dist/fullcalendar.js"></script>
1616
<script src="../bower_components/fullcalendar/dist/gcal.js"></script>
@@ -136,7 +136,7 @@ <h4>{{alertMessage}}</h4>
136136
<button class="btn btn-success" ng-click="changeView('month', 'myCalendar1')">Month</button>
137137
</div>
138138
</div>
139-
<div class="calendar" ng-model="eventSources" calendar="myCalendar1" ui-calendar="uiConfig.calendar"></div>
139+
<div class="calendar" ng-model="eventSources" calendar="myCalendar1" ui-calendar="{{uiConfig.calendar}}"></div>
140140
</tab>
141141
<tab select="renderCalender('myCalendar2');">
142142
<tab-heading>
@@ -153,7 +153,7 @@ <h4>{{alertMessage}}</h4>
153153
<button class="btn btn-success" ng-click="changeView('month', 'myCalendar2')">Month</button>
154154
</div>
155155
</div>
156-
<div class="calendar" ng-model="eventSources" calendar="myCalendar2" ui-calendar="uiConfig.calendar"></div>
156+
<div class="calendar" ng-model="eventSources" calendar="myCalendar2" ui-calendar="{{uiConfig.calendar}}"></div>
157157
</tab>
158158
<tab select="renderCalender('myCalendar3');">
159159
<tab-heading>
@@ -170,15 +170,15 @@ <h4>This calendar uses the extended form</h4>
170170
<button class="btn btn-success" ng-click="changeView('month', 'myCalendar3')">Month</button>
171171
</div>
172172
</div>
173-
<div class="calendar" ng-model="eventSources2" calendar="myCalendar3" ui-calendar="uiConfig.calendar"></div>
173+
<div class="calendar" ng-model="eventSources2" calendar="myCalendar3" ui-calendar="{{uiConfig.calendar}}"></div>
174174
</tab>
175175
</tabset>
176176
</div>
177177
</div>
178178
</div>
179179
<h3>How?</h3>
180180
<pre class="prettyprint linenums">
181-
&lt;div ui-calendar="uiConfig.calendar" class="span8 calendar" ng-model="eventSources"&gt;&lt;/div&gt;
181+
&lt;div ui-calendar="{{uiConfig.calendar}}" class="span8 calendar" ng-model="eventSources"&gt;&lt;/div&gt;
182182

183183
/**
184184
* calendarDemoApp - 0.9.0
@@ -331,4 +331,4 @@ <h3>How?</h3>
331331
})();
332332
</script>
333333
</body>
334-
</html>
334+
</html>

gruntFile.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ module.exports = function (grunt) {
99

1010
// uglify
1111
grunt.registerTask('minify', ['uglify']);
12+
//connect - local server
13+
grunt.registerTask('serve', ['connect']);
1214

1315
var testConfig = function(configFile, customOptions) {
1416
var options = { configFile: configFile, keepalive: true };
@@ -43,6 +45,18 @@ module.exports = function (grunt) {
4345
src: ['src/**/*.js'],
4446
dest: 'calendar.min.js'
4547
}
48+
},
49+
connect: {
50+
server: {
51+
options: {
52+
port: 8000,
53+
open: true,
54+
debug: true,
55+
keepalive: true,
56+
hostname: '*',
57+
base: ['demo', '.']
58+
}
59+
}
4660
}
4761
});
4862

package.json

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,19 @@
88
"main": "src/calendar.js",
99
"dependencies": {},
1010
"devDependencies": {
11-
"grunt": "~0.4",
12-
"grunt-karma": "0.7.0",
13-
"grunt-contrib-jshint": "~0.2",
14-
"grunt-contrib-uglify": "~0.7",
15-
"matchdep": "~0.1",
16-
"karma": "~0.10",
17-
"karma-coverage": "~0.1",
18-
"load-grunt-tasks": "~0.2",
19-
"karma-jasmine": "0.1",
20-
"karma-chrome-launcher": "0.1",
21-
"karma-firefox-launcher": "0.1"
11+
"grunt": "^0.4.5",
12+
"grunt-contrib-connect": "^0.10.1",
13+
"grunt-contrib-jshint": "^0.11.2",
14+
"grunt-contrib-uglify": "^0.9.1",
15+
"grunt-karma": "^0.11.1",
16+
"jasmine-core": "^2.3.4",
17+
"karma": "^0.12.37",
18+
"karma-chrome-launcher": "^0.2.0",
19+
"karma-coverage": "^0.4.2",
20+
"karma-firefox-launcher": "^0.1.6",
21+
"karma-jasmine": "^0.3.5",
22+
"load-grunt-tasks": "^3.2.0",
23+
"matchdep": "^0.3.0"
2224
},
2325
"scripts": {
2426
"test": "grunt"

src/calendar.js

Lines changed: 47 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ angular.module('ui.calendar', [])
226226
options = null;
227227

228228
function getOptions(){
229-
var calendarSettings = attrs.uiCalendar ? scope.$parent.$eval(attrs.uiCalendar) : {},
229+
var calendarSettings = attrs.uiCalendar ? scope.$eval(attrs.uiCalendar) : {},
230230
fullCalendarConfig;
231231

232232
fullCalendarConfig = controller.getFullCalendarConfig(calendarSettings, uiCalendarConfig);
@@ -247,7 +247,7 @@ angular.module('ui.calendar', [])
247247
return JSON.stringify(options2);
248248
}
249249

250-
scope.destroy = function(){
250+
scope.destroyCalendar = function(){
251251
if(calendar && calendar.fullCalendar){
252252
calendar.fullCalendar('destroy');
253253
}
@@ -258,42 +258,65 @@ angular.module('ui.calendar', [])
258258
}
259259
};
260260

261-
scope.init = function(){
261+
scope.initCalendar = function(){
262+
if (!calendar) {
263+
calendar = angular.element(elm).html('');
264+
}
262265
calendar.fullCalendar(options);
263266
if(attrs.calendar) {
264267
uiCalendarConfig.calendars[attrs.calendar] = calendar;
265268
}
266269
};
270+
scope.$on('$destroy', function() {
271+
scope.destroyCalendar();
272+
});
267273

268274
eventSourcesWatcher.onAdded = function(source) {
269-
calendar.fullCalendar('addEventSource', source);
270-
sourcesChanged = true;
275+
if (calendar && calendar.fullCalendar) {
276+
calendar.fullCalendar(options);
277+
if (attrs.calendar) {
278+
uiCalendarConfig.calendars[attrs.calendar] = calendar;
279+
}
280+
calendar.fullCalendar('addEventSource', source);
281+
sourcesChanged = true;
282+
}
271283
};
272284

273285
eventSourcesWatcher.onRemoved = function(source) {
274-
calendar.fullCalendar('removeEventSource', source);
275-
sourcesChanged = true;
286+
if (calendar && calendar.fullCalendar) {
287+
calendar.fullCalendar('removeEventSource', source);
288+
sourcesChanged = true;
289+
}
276290
};
277291

278-
eventSourcesWatcher.onChanged = function(source) {
279-
calendar.fullCalendar('refetchEvents');
280-
sourcesChanged = true;
292+
eventSourcesWatcher.onChanged = function() {
293+
if (calendar && calendar.fullCalendar) {
294+
calendar.fullCalendar('refetchEvents');
295+
sourcesChanged = true;
296+
}
297+
281298
};
282299

283300
eventsWatcher.onAdded = function(event) {
284-
calendar.fullCalendar('renderEvent', event, (event.stick ? true : false));
301+
if (calendar && calendar.fullCalendar) {
302+
calendar.fullCalendar('renderEvent', event, (event.stick ? true : false));
303+
}
285304
};
286305

287306
eventsWatcher.onRemoved = function(event) {
288-
calendar.fullCalendar('removeEvents', event._id);
307+
if (calendar && calendar.fullCalendar) {
308+
calendar.fullCalendar('removeEvents', event._id);
309+
}
289310
};
290311

291312
eventsWatcher.onChanged = function(event) {
292-
var clientEvents = calendar.fullCalendar('clientEvents', event._id);
293-
for (var i = 0; i < clientEvents.length; i++) {
294-
var clientEvent = clientEvents[i];
295-
clientEvent = angular.extend(clientEvent, event);
296-
calendar.fullCalendar('updateEvent', clientEvent);
313+
if (calendar && calendar.fullCalendar) {
314+
var clientEvents = calendar.fullCalendar('clientEvents', event._id);
315+
for (var i = 0; i < clientEvents.length; i++) {
316+
var clientEvent = clientEvents[i];
317+
clientEvent = angular.extend(clientEvent, event);
318+
calendar.fullCalendar('updateEvent', clientEvent);
319+
}
297320
}
298321
};
299322

@@ -306,9 +329,13 @@ angular.module('ui.calendar', [])
306329
}
307330
});
308331

309-
scope.$watch(getOptions, function(newO,oldO){
310-
scope.destroy();
311-
scope.init();
332+
scope.$watch(getOptions, function(newValue, oldValue) {
333+
if(newValue !== oldValue) {
334+
scope.destroyCalendar();
335+
scope.initCalendar();
336+
} else if((newValue && angular.isUndefined(calendar))) {
337+
scope.initCalendar();
338+
}
312339
});
313340
}
314341
};

0 commit comments

Comments
 (0)