Пример SQL для виджета с параметрами дат. И сам шаблон виджета ================================================================================================== SQL Отражает информацию о не переданных документах в ИС .. code-block:: sql select (select count(1) from i$skk_req_to_isez i where json_res is null and created_at between dates.date1 and dates.date2) as error_count from users u join (select ? as date1, date_add(?,interval 1 day) as date2 from dual) dates on 1=1 where u.id=:user_id Шаблон .. code-block:: html

Вычисление информации для формирования дэшборда...

{{data.error_count}}
Не отправленные сообщения в ИСЭЗ
Контроллер .. code-block:: javascript function WidgetCustom01Ctrl($scope,$http,RestApiService,$filter){ $scope.listOwnerCode="my"; $scope.percent = 65; $scope.options = { animate:{ duration:0, enabled:false}, barColor:'red', scaleColor:'black', lineWidth:3, lineCap:'circle' }; $scope.setListOwnerFilter = function(code){ $scope.listOwnerCode=code; $scope.bind(); } $scope.setListPeriodFilter = function(code){ $scope.listPeriodCode=code; var x= Metronic.getIntervalByPeriodCode(code); console.log(x); $scope.begin_at = $filter('date')(x[0], "yyyy-MM-dd"); $scope.end_at = $filter('date')(x[1], "yyyy-MM-dd"); $scope.bind(); } $scope.bind = function runWidget(config){ //Metronic.startPageLoading(); $scope.loaded = false; RestApiService.get("query/get?code=skk_dashboard¶m1="+$scope.begin_at+"¶m2="+$scope.end_at). success(function (data) { if (data.items) { $scope.data = data.items[0]; } $scope.loaded = true; }); } $scope.setListPeriodFilter("today"); }