snipt/media/js/src/search.js

58 lines
1.4 KiB
JavaScript

(function() {
if (typeof angular !== 'undefined') {
var root = this;
var $ = root.jQuery;
var controllers = {};
var app = root.app;
// Services.
app.factory('SearchService', function() {
return {
mineOnly: false,
query: ''
};
});
// Controllers.
controllers.HeaderSearchController = function($scope, SearchService) {
$scope.search = SearchService;
};
controllers.SearchController = function($scope, SearchService) {
$scope.search = SearchService;
$scope.$watch('search.query', function(query) {
if (query.indexOf('--mine') !== -1) {
$scope.search.mineOnly = true;
} else {
$scope.search.mineOnly = false;
}
});
$scope.toggleMineOnly = function() {
if ($scope.search.mineOnly) {
// Make sure '--mine' exists somewhere in the query.
if ($scope.search.query.indexOf('--mine') === -1) {
$scope.search.query = $scope.search.query.trim() + ' --mine';
}
}
else {
$scope.search.query = $scope.search.query.replace('--mine', '').trim();
}
};
};
// Assign the controllers.
app.controller(controllers);
}
}).call(this);