diff options
Diffstat (limited to 'src/main/resources/webapp/apps/app.js')
-rwxr-xr-x | src/main/resources/webapp/apps/app.js | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/src/main/resources/webapp/apps/app.js b/src/main/resources/webapp/apps/app.js new file mode 100755 index 0000000..068f454 --- /dev/null +++ b/src/main/resources/webapp/apps/app.js @@ -0,0 +1,97 @@ +var directives = angular.module('core.directives', []); + +directives.filter('countBadgeByLevel', function () { + return function (badges) { + // 5 levels + var levels = [0, 0, 0, 0, 0]; + angular.forEach(badges, function (value, key) { + levels[value.level - 1]++; + }); + return levels; + } +}); + +directives.filter('isodate', function () { + return function (date) { + return date.toISOString(); + } +}); + +directives.filter('gz', function () { + return function (num) { + if (angular.isArray(num)) { + var out = []; + angular.forEach(num, function (x) { + if (x > 0) { + out.push(x); + } + }); + + return out; + } + else if (angular.isNumber(num)) { + return num > 0; + } + console.log("fail"); + return undefined; + } +}); + +directives.directive('navbar', function () { + return { + restrict: 'E', + templateUrl: '/apps/core/navbar.html?noCache=' + noCache + }; +}); + +directives.directive('badge', function () { + return { + restrict: 'E', + scope: { + badgeDetail: '=badgeDetail' + }, + template: '<span class="badge-inverse badge-level-{{badgeDetail.badge.level}} badge">' + + ' <strong style="padding-right: 0.3em">{{badgeDetail.badge.name}}</strong>' + + ' <i class="icon-user"></i>' + + '</span>' + + ' awarded to ' + + '<a href="/#/person/{{badgeDetail.person.uuid}}">{{badgeDetail.person.name}}</a>. ' + + '<a href="/#/badge/{{badgeDetail.badge.uuid}}">More</a>' + } +}); + +directives.directive('badgeSpan', function () { + var template = + '<span class="badge-inverse badge-level-{{badge.level}} badge">' + + ' <strong style="padding-right: 0.3em">{{badge.name}}</strong>' + + ' <i class="icon-user"></i>' + + '</span>'; + + return { + restrict: 'E', + scope: { + badge: '=badge' + }, + template: template + } +}); + +directives.directive('personLink', function () { + return { + restrict: 'E', + scope: { + person: '=person' + }, + template: '<a href="/#/person/{{person.uuid}}">{{person.name}}</a>' + } +}); + +directives.directive('personAvatar', function () { + return { + restrict: 'E', + scope: { + person: '=person' + }, + template: '<img ng-src="{{person.gravatar}}?default=identicon" class="avatar-image avatar80" title="{{person.name}}"/>' + } +}); |