X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=ang%2FcrmStatusPage%2FStatusPageServices.js;h=a37ceafb9a87051513662f2180d506888bbdbb8d;hb=bd611d0cd8244e955bbb216ebec6a6c24591848f;hp=5ece188e9d9d03afe78c041c3162be5cb6f32ae6;hpb=ef82ecd18cfe0792e6bbf456c8f2da3b46b966bc;p=civicrm-core.git diff --git a/ang/crmStatusPage/StatusPageServices.js b/ang/crmStatusPage/StatusPageServices.js index 5ece188e9d..a37ceafb9a 100644 --- a/ang/crmStatusPage/StatusPageServices.js +++ b/ang/crmStatusPage/StatusPageServices.js @@ -1,64 +1,31 @@ (function(angular, $, _) { -/** - * get status messages - * build snooze options object reconciled with preferences - * - */ - angular.module('statuspage').service('statuspageStatusModel', function(crmApi, statuspageGetStatuses, statuspageGetPreferences){ - return function() { - var statusModel = { - hushed: false, - getStatuses: statuspageGetStatuses, - getPreferences: statuspageGetPreferences, - }; - statusModel.statuses = statusModel - .getStatuses(statusModel.hushed) - .then(function(result){ - result.preferences = statuspageGetPreferences(); - return result; - }); - }; - }); + angular.module('statuspage') + .filter('trusted', function($sce){ return $sce.trustAsHtml; }) - angular.module('statuspage').service('statuspageGetStatuses', function(crmApi, statuspageSeverityList) { - return function(apiFilter) { - return crmApi('System', 'check', apiFilter) - .catch(function(obj){console.log(obj);}) - .then(function(apiResults){ - _.each(apiResults.values, function(status){ - status.severity_id = status.severity; - status.severity = statuspageSeverityList[status.severity]; - status.displayTitle = status.name+' - '+status.title +' - '+status.severity.toUpperCase(); - status.snoozeOptions = { - show: false, - severity: status.severity - }; - }); - return apiResults; - }); - }; - }); + // Todo: abstract this into a generic crmUi directive? + .directive('statuspagePopupMenu', function($timeout) { + return { + templateUrl: '~/statuspage/SnoozeOptions.html', + transclude: true, - angular.module('statuspage').service('statuspageGetPreferences', function(crmApi) { - return function() { - return crmApi('StatusPreference', 'get') - .then(function(apiResults) { - _.each(apiResults.values, function(pref){ - pref.snoozeOptions = { - severity: pref.ignore_severity - }; + link: function(scope, element, attr) { + element.on('click', '.hush-menu-button', function() { + $timeout(function() { + $('ul', element).show().menu(); + element.closest('h3').addClass('menuopen'); + $('body').one('click', function() { + $('ul', element).menu('destroy').hide(); + element.closest('h3').removeClass('menuopen'); + }); + }); }); - return apiResults; - }); - }; - }); - - - angular.module('statuspage').filter('trusted', function($sce){ return $sce.trustAsHtml; }); - - angular.module('statuspage').service('statuspageSeverityList', function() { - return ['debug', 'info', 'notice', 'warning', 'error', 'critical', 'alert', 'emergency']; - }); + // TODO: Is there a more "Angular" way to do this animation? + element.on('click', 'button:not(.hush-menu-button), li', function() { + $(this).closest('div.crm-status-item').slideUp(); + }); + } + }; + }); })(angular, CRM.$, CRM._);