crunchbutton/www/assets/cockpit/js/directives.js
2014-11-20 09:15:37 -08:00

84 lines
2.1 KiB
JavaScript

NGApp.directive('chatSend', function(TicketViewService) {
return {
restrict: 'A',
link: function(scope, element, attrs) {
element.bind('keydown keypress', function (e) {
if (e.which == 13) {
TicketViewService.send(element.val());
e.preventDefault();
element.val('');
} else {
TicketViewService.typing(element.val());
}
});
}
};
});
NGApp.directive('pageKey', function() {
return {
restrict: 'A',
link: function(scope, element, attrs) {
$(document.body).bind('keydown keypress', function (e) {
if (document.activeElement.tagName == 'INPUT' || document.activeElement.tagName == 'SELECT' || document.activeElement.tagName == 'TEXTAREA') {
if (e.which == 27 || e.which == 13) {
document.activeElement.blur();
}
return;
}
// next
if (e.which == 39 && scope.query.page < scope.pages) {
scope.$apply(function() {
scope.setPage(scope.query.page+1);
});
// prev
} else if (e.which == 37 && scope.query.page > 1) {
scope.$apply(function() {
scope.setPage(scope.query.page-1);
});
}
});
}
};
});
NGApp.directive('profilePreference', function (AccountService, $http, $rootScope) {
return {
restrict: 'A',
templateUrl: 'assets/view/general-profile-preference.html',
scope: {
content: '@',
key: '@',
type: '@'
},
controller: function ($scope) {
$scope.account = AccountService;
console.log(AccountService.user.prefs[$scope.key]);
// $scope.value = AccountService.user.prefs[$scope.key];
// AccountService.user.prefs['demo'] = true;
/*
if ($scope.type == 'bool') {
$scope.value = $scope.value == '1' ? true : false;
}
*/
$scope.change = function(value) {
value = AccountService.user.prefs[$scope.key];
console.log($scope.key, value);
$rootScope.$broadcast('user-preference', {key: $scope.key, value: value});
$http({
method: 'POST',
url: App.service + 'config',
data: {key: $scope.key, value: value},
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
});
}
}
};;
});