court-0.1.0.0: share/main.js
window.onload = function() {
var listOfBuildsTemplate = document.getElementById("listOfBuildsTemplate").innerHTML;
var buildTemplate = document.getElementById("buildTemplate").innerHTML;
var app = angular.module("app", ["ngRoute"]);
app.config(function($routeProvider) {
$routeProvider.when("/", {
controller: "IndexCtrl",
template: listOfBuildsTemplate
});
$routeProvider.when("/:projectName", {
controller: "IndexCtrl",
template: listOfBuildsTemplate
});
$routeProvider.otherwise({
redirectTo: "/"
});
});
app.controller("IndexCtrl", function($scope, $interval, $routeParams, ResultService) {
var projectName = $routeParams.projectName;
$scope.results = [];
$scope.reloadBuilds = function() {
ResultService.getResults(projectName)
.then(function(data) {
$scope.results = data.results;
});
};
$scope.reloadBuilds();
});
app.service("ResultService", function($http, $q) {
this.getResults = function(projectName) {
var deferred = $q.defer();
var url = document.location.href.split("#")[0]
+ (projectName ? projectName + "/" : "")
+ "results.json";
$http({method: "GET", url: url})
.success(function(data) {
deferred.resolve(data);
}).error(function(data) {
console.log(data);
deferred.reject();
});
return deferred.promise;
};
});
app.directive("showBuild", function() {
return {
restrict: "E",
template: buildTemplate,
scope: { build: "=" },
replace: true,
link: function(scope, element, attrs) {
scope.showShortOutput = true;
scope.shortOutput = scope.build.output.substr(0, 200) + " ..."
scope.toggleView = function () {
scope.showShortOutput = !scope.showShortOutput;
};
}
};
});
angular.bootstrap(document, ["app"]);
};