Skip to content

Commit ae73f96

Browse files
author
Brad Berger
committed
Small code cleanup, adds back minimized js output
1 parent 67477c8 commit ae73f96

6 files changed

+26
-90
lines changed

.codeclimate.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ engines:
1414

1515
ratings:
1616
paths:
17-
- src/**
17+
- src/**/*.js

dist/angular-material-calendar.css

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/angular-material-calendar.js

+10-42
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
// hack to improve code analysis metrics
2-
var angular = angular || {};
3-
41
angular.module("materialCalendar", ["ngMaterial", "ngSanitize"]);
52

63
angular.module("materialCalendar").constant("config", {
7-
version: "0.2.9",
4+
version: "0.2.10",
85
debug: document.domain.indexOf("localhost") > -1
96
});
107

@@ -21,14 +18,6 @@ angular.module("materialCalendar").service("Calendar", [function () {
2118

2219
var now = new Date();
2320

24-
this.getNumDays = function () {
25-
return new Date(
26-
this.start.getYear(),
27-
this.start.getMonth(),
28-
0
29-
).getDate();
30-
};
31-
3221
this.setWeekStartsOn = function (i) {
3322
var d = parseInt(i || 0, 10);
3423
if (!isNaN(d) && d >= 0 && d <= 6) {
@@ -45,38 +34,20 @@ angular.module("materialCalendar").service("Calendar", [function () {
4534
this.weeks = [];
4635
this.weekStartsOn = this.setWeekStartsOn(this.options.weekStartsOn);
4736

48-
this.getFirstDayOfCalendar = function () {
49-
50-
// Get first date of month.
51-
var date = this.start;
52-
53-
// Undo the timezone offset here.
54-
var first = angular.copy(date);
55-
56-
while (first.getDay() !== this.weekStartsOn) {
57-
var d = first.getDate();
58-
first.setDate(d - 1);
59-
}
60-
61-
return first;
62-
63-
};
64-
6537
this.next = function () {
6638
if (this.start.getMonth() < 11) {
6739
this.init(this.start.getFullYear(), this.start.getMonth() + 1);
68-
} else {
69-
this.init(this.start.getFullYear() + 1, 0);
40+
return;
7041
}
42+
this.init(this.start.getFullYear() + 1, 0);
7143
};
7244

7345
this.prev = function () {
7446
if (this.month) {
7547
this.init(this.start.getFullYear(), this.start.getMonth() - 1);
7648
return;
77-
} else {
78-
this.init(this.start.getFullYear() - 1, 11);
7949
}
50+
this.init(this.start.getFullYear() - 1, 11);
8051
};
8152

8253
// Month should be the javascript indexed month, 0 is January, etc.
@@ -149,23 +120,22 @@ angular.module("materialCalendar").service("CalendarData", [function () {
149120
this.data[this.getDayKey(date)] = content || this.data[this.getDayKey(date)] || "";
150121
};
151122
}
152-
return new CalendarData;
123+
return new CalendarData();
153124
}]);
154125

155-
angular.module("materialCalendar").directive("calendarMd", ["$compile", "$timeout", "$parse", "$http", "$q", "$log", "Calendar", "CalendarData", function ($compile, $timeout, $parse, $http, $q, $log, Calendar, CalendarData) {
126+
angular.module("materialCalendar").directive("calendarMd", ["$compile", "$parse", "$http", "$q", "Calendar", "CalendarData", function ($compile, $parse, $http, $q, Calendar, CalendarData) {
156127

157-
var hasCss;
158128
var defaultTemplate = "<md-content layout='column' layout-fill flex md-swipe-left='next()' md-swipe-right='prev()'><md-toolbar><div class='md-toolbar-tools' layout='row'><md-button ng-click='prev()' aria-label='Previous month'><md-tooltip ng-if='::tooltips()'>Previous month</md-tooltip>&laquo;</md-button><div flex></div><h2 class='calendar-md-title'><span>{{ calendar.start | date:titleFormat:timezone }}</span></h2><div flex></div><md-button ng-click='next()' aria-label='Next month'><md-tooltip ng-if='::tooltips()'>Next month</md-tooltip>&raquo;</md-button></div></md-toolbar><!-- agenda view --><md-content ng-if='weekLayout === columnWeekLayout' class='agenda'><div ng-repeat='week in calendar.weeks track by $index'><div ng-if='sameMonth(day)' ng-class='{ active: active === day }' ng-click='handleDayClick(day)' ng-repeat='day in week' layout><md-tooltip ng-if='::tooltips()'>{{ day | date:dayTooltipFormat:timezone }}</md-tooltip><div>{{ day | date:dayFormat:timezone }}</div><div flex ng-bind-html='dataService.data[dayKey(day)]'></div></div></div></md-content><!-- calendar view --><md-content ng-if='weekLayout !== columnWeekLayout' flex layout='column' class='calendar'><div layout='row' layout-fill class='subheader'><div layout-padding class='subheader-day' flex ng-repeat='day in calendar.weeks[0]'><md-tooltip ng-if='::tooltips()'>{{ day | date:dayLabelTooltipFormat }}</md-tooltip>{{ day | date:dayLabelFormat }}</div></div><div ng-if='week.length' ng-repeat='week in calendar.weeks track by $index' flex layout='row' layout-fill><div tabindex='{{ sameMonth(day) ? (day | date:dayFormat:timezone) : 0 }}' ng-repeat='day in week track by $index' ng-click='handleDayClick(day)' flex layout layout-padding ng-class='{&quot;disabled&quot; : ! sameMonth(day), &quot;active&quot;: isActive(day), &quot;md-whiteframe-12dp&quot;: hover || focus }' ng-focus='focus = true;' ng-blur='focus = false;' ng-mouseleave='hover = false' ng-mouseenter='hover = true'><md-tooltip ng-if='::tooltips()'>{{ day | date:dayTooltipFormat }}</md-tooltip><div>{{ day | date:dayFormat }}</div><div flex ng-bind-html='dataService.data[dayKey(day)]'></div></div></div></md-content></md-content>";
159129

160130
var injectCss = function () {
161-
if (!hasCss) {
131+
var styleId = "calendarMdCss";
132+
if (!document.getElementById(styleId)) {
162133
var head = document.getElementsByTagName("head")[0];
163134
var css = document.createElement("style");
164135
css.type = "text/css";
165-
css.id = "calendarMdCss";
166-
css.innerHTML = "calendar-md md-content>md-content.agenda>*>* :not(:first-child),calendar-md md-content>md-content.calendar>:not(:first-child)>* :last-child{overflow:hidden;text-overflow:ellipsis}calendar-md{display:block;max-height:100%}calendar-md md-content>md-content{border:1px solid rgba(0,0,0,.12)}calendar-md md-content>md-content.agenda>*>*{border-bottom:1px solid rgba(0,0,0,.12)}calendar-md md-content>md-content.agenda>*>* :first-child{padding:9pt;width:200px;text-align:right;color:rgba(0,0,0,.75);font-weight:100;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}calendar-md md-content>md-content.calendar>:first-child{background:rgba(0,0,0,.02);border-bottom:1px solid rgba(0,0,0,.12);margin-right:0;min-height:36px}calendar-md md-content>md-content.calendar>:not(:first-child)>*{border-bottom:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12);cursor:pointer}calendar-md md-content>md-content.calendar>:not(:first-child)>:hover{background:rgba(0,0,0,.04)}calendar-md md-content>md-content.calendar>:not(:first-child)>.disabled{color:rgba(0,0,0,.3);pointer-events:none;cursor:auto}calendar-md md-content>md-content.calendar>:not(:first-child)>.active{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);background:rgba(0,0,0,.02)}calendar-md md-content>md-content.calendar>:not(:first-child)>* :first-child{padding:0}";
136+
css.id = styleId;
137+
css.innerHTML = "calendar-md md-content>md-content.agenda>*>* :not(:first-child),calendar-md md-content>md-content.calendar>:not(:first-child)>* :last-child{overflow:hidden;text-overflow:ellipsis}calendar-md{display:block;max-height:100%}calendar-md md-content>md-content{border:1px solid rgba(0,0,0,.12)}calendar-md md-content>md-content.agenda>*>*{border-bottom:1px solid rgba(0,0,0,.12)}calendar-md md-content>md-content.agenda>*>* :first-child{padding:12px;width:200px;text-align:right;color:rgba(0,0,0,.75);font-weight:100;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}calendar-md md-content>md-content.calendar>:first-child{background:rgba(0,0,0,.02);border-bottom:1px solid rgba(0,0,0,.12);margin-right:0;min-height:36px}calendar-md md-content>md-content.calendar>:not(:first-child)>*{border-bottom:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12);cursor:pointer}calendar-md md-content>md-content.calendar>:not(:first-child)>:hover{background:rgba(0,0,0,.04)}calendar-md md-content>md-content.calendar>:not(:first-child)>.disabled{color:rgba(0,0,0,.3);pointer-events:none;cursor:auto}calendar-md md-content>md-content.calendar>:not(:first-child)>.active{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);background:rgba(0,0,0,.02)}calendar-md md-content>md-content.calendar>:not(:first-child)>* :first-child{padding:0}";
167138
head.insertBefore(css, head.firstChild);
168-
hasCss = true;
169139
}
170140
};
171141

@@ -313,8 +283,6 @@ angular.module("materialCalendar").directive("calendarMd", ["$compile", "$timeou
313283
$parse($attrs.ngModel).assign($scope.$parent, angular.copy($scope.active));
314284
}
315285

316-
$log.log("isActive", $scope.active, date, $scope.isActive(date));
317-
318286
handleCb($scope.onDayClick, angular.copy(date));
319287

320288
};

gulpfile.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ var autoprefixer = require("gulp-autoprefixer");
77
var runSequence = require("run-sequence");
88
var connect = require("gulp-connect");
99
var gfi = require("gulp-file-insert");
10-
// var uglify = require("gulp-uglify");
10+
var uglify = require("gulp-uglify");
1111
var eslint = require("gulp-eslint");
1212
var size = require("gulp-size");
1313
var replace = require("gulp-replace");
@@ -27,7 +27,7 @@ gulp.task("js", function() {
2727
"/* angular-material-calendar.html */": p("dist/angular-material-calendar.html"),
2828
"/* angular-material-calendar.css */": p("dist/angular-material-calendar.css")
2929
}))
30-
// .pipe(uglify())
30+
.pipe(uglify())
3131
.pipe(size({ gzip: true, prettySize: true }))
3232
.pipe(gulp.dest("dist"));
3333
});

src/angular-material-calendar.js

+8-37
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,6 @@ angular.module("materialCalendar").service("Calendar", [function () {
1818

1919
var now = new Date();
2020

21-
this.getNumDays = function () {
22-
return new Date(
23-
this.start.getYear(),
24-
this.start.getMonth(),
25-
0
26-
).getDate();
27-
};
28-
2921
this.setWeekStartsOn = function (i) {
3022
var d = parseInt(i || 0, 10);
3123
if (!isNaN(d) && d >= 0 && d <= 6) {
@@ -42,38 +34,20 @@ angular.module("materialCalendar").service("Calendar", [function () {
4234
this.weeks = [];
4335
this.weekStartsOn = this.setWeekStartsOn(this.options.weekStartsOn);
4436

45-
this.getFirstDayOfCalendar = function () {
46-
47-
// Get first date of month.
48-
var date = this.start;
49-
50-
// Undo the timezone offset here.
51-
var first = angular.copy(date);
52-
53-
while (first.getDay() !== this.weekStartsOn) {
54-
var d = first.getDate();
55-
first.setDate(d - 1);
56-
}
57-
58-
return first;
59-
60-
};
61-
6237
this.next = function () {
6338
if (this.start.getMonth() < 11) {
6439
this.init(this.start.getFullYear(), this.start.getMonth() + 1);
65-
} else {
66-
this.init(this.start.getFullYear() + 1, 0);
40+
return;
6741
}
42+
this.init(this.start.getFullYear() + 1, 0);
6843
};
6944

7045
this.prev = function () {
7146
if (this.month) {
7247
this.init(this.start.getFullYear(), this.start.getMonth() - 1);
7348
return;
74-
} else {
75-
this.init(this.start.getFullYear() - 1, 11);
7649
}
50+
this.init(this.start.getFullYear() - 1, 11);
7751
};
7852

7953
// Month should be the javascript indexed month, 0 is January, etc.
@@ -146,23 +120,22 @@ angular.module("materialCalendar").service("CalendarData", [function () {
146120
this.data[this.getDayKey(date)] = content || this.data[this.getDayKey(date)] || "";
147121
};
148122
}
149-
return new CalendarData;
123+
return new CalendarData();
150124
}]);
151125

152-
angular.module("materialCalendar").directive("calendarMd", ["$compile", "$timeout", "$parse", "$http", "$q", "$log", "Calendar", "CalendarData", function ($compile, $timeout, $parse, $http, $q, $log, Calendar, CalendarData) {
126+
angular.module("materialCalendar").directive("calendarMd", ["$compile", "$parse", "$http", "$q", "Calendar", "CalendarData", function ($compile, $parse, $http, $q, Calendar, CalendarData) {
153127

154-
var hasCss;
155128
var defaultTemplate = "/* angular-material-calendar.html */";
156129

157130
var injectCss = function () {
158-
if (!hasCss) {
131+
var styleId = "calendarMdCss";
132+
if (!document.getElementById(styleId)) {
159133
var head = document.getElementsByTagName("head")[0];
160134
var css = document.createElement("style");
161135
css.type = "text/css";
162-
css.id = "calendarMdCss";
136+
css.id = styleId;
163137
css.innerHTML = "/* angular-material-calendar.css */";
164138
head.insertBefore(css, head.firstChild);
165-
hasCss = true;
166139
}
167140
};
168141

@@ -310,8 +283,6 @@ angular.module("materialCalendar").directive("calendarMd", ["$compile", "$timeou
310283
$parse($attrs.ngModel).assign($scope.$parent, angular.copy($scope.active));
311284
}
312285

313-
$log.log("isActive", $scope.active, date, $scope.isActive(date));
314-
315286
handleCb($scope.onDayClick, angular.copy(date));
316287

317288
};

test/unit/calendarService.spec.js

+4-7
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,7 @@ describe("calendar service", function() {
1717

1818
it("should have all public methods defined", function() {
1919
expect(Calendar).toBeDefined();
20-
expect(typeof Calendar.getNumDays).toBe("function");
2120
expect(typeof Calendar.setWeekStartsOn).toBe("function");
22-
expect(typeof Calendar.getFirstDayOfCalendar).toBe("function");
2321
expect(typeof Calendar.next).toBe("function");
2422
expect(typeof Calendar.prev).toBe("function");
2523
expect(typeof Calendar.init).toBe("function");
@@ -106,8 +104,7 @@ describe("calendar service", function() {
106104
Calendar.next();
107105
expect(sameDay(Calendar.start, new Date(2015, 11, 1))).toBe(true);
108106
expect(sameDay(Calendar.weeks[0][0], new Date(2015, 10, 29))).toBe(true);
109-
})
110-
107+
});
111108

112109
it("should move to from December 2015 to January 2016 on next", function() {
113110
Calendar.init(2015, 11);
@@ -116,8 +113,7 @@ describe("calendar service", function() {
116113
Calendar.next();
117114
expect(sameDay(Calendar.start, new Date(2016, 0, 1))).toBe(true);
118115
expect(sameDay(Calendar.weeks[0][0], new Date(2015, 11, 27))).toBe(true);
119-
})
120-
116+
});
121117

122118
it("should move to from January 2016 to December 2015 on prev", function() {
123119
Calendar.init(2016, 0);
@@ -126,5 +122,6 @@ describe("calendar service", function() {
126122
Calendar.prev();
127123
expect(sameDay(Calendar.start, new Date(2015, 11, 1))).toBe(true);
128124
expect(sameDay(Calendar.weeks[0][0], new Date(2015, 10, 29))).toBe(true);
129-
})
125+
});
126+
130127
});

0 commit comments

Comments
 (0)