angular.module(‘juxtapose’, [
'juxtapose.controllers', 'juxtapose.services'
]) angular.module(‘juxtapose.controllers’, []) angular.module(‘juxtapose.services’, [])
angular.module(‘juxtapose.services’).factory(‘Project’, [
function(){ return { query: function(){ return Juxtapose.project; } } }
])
angular.module(‘juxtapose.controllers’).controller(‘ProjectsCtrl’, [‘$scope’, ‘$http’, ‘Project’,
function($scope, $http, Project){ $scope.project = Project.query() $scope.accept = function(spec){ $http({ url: "/accept", method: "POST", data: {"filename": spec.current.img} }).success(function(response){ response.image.path += "?refresh=true" spec.accepted = response.image spec.current = null spec.diff = null }) } $scope.deviceName = function(spec){ return spec.directory.match(/([^\/]*)\/[^\/]+\/[^\/]+\/[^\/]+$/)[1] } $scope.deviceNameMatcher = function(spec){ return _.findWhere($scope.devices, {name: $scope.deviceName(spec), selected: true}) } var devices = _.uniq(_.map($scope.project.specs, $scope.deviceName)) $scope.devices = _.map(devices, function(device){ return { name: device } }); $scope.iOSVersion = function(spec){ version = spec.directory.match(/([^\/]*)\/[^\/]+\/[^\/]+$/)[1] iosVersion = version.match(/[\d\.]+/) if(iosVersion){ return iosVersion[0]; } else { return version; } } var versions = _.uniq(_.map($scope.project.specs, $scope.iOSVersion)) $scope.versions = _.map(versions, function(version){ return { name: version } }); $scope.versionMatcher = function(spec){ return _.findWhere($scope.versions, {name: $scope.iOSVersion(spec), selected: true}) } $scope.specName = function(spec){ var name = spec.directory.match(/([^\/]*\/[^\/]+)$/)[1].replace(/-/g, ' ').replace(/\//g, ' | ');; return name[0].toUpperCase() + name.slice(1) } $scope.specNameMatcher = function(spec){ if(!$scope.search) { return true; } return $scope.specName(spec).toLowerCase().indexOf($scope.search.toLowerCase()) >= 0 } $scope.onlyFailingMatcher = function(spec){ if(!$scope.onlyFailing){ return true } return spec.current } }
])