18b4828a6SIftekharul Islamwindow.angular && (function(angular) {
28b4828a6SIftekharul Islam  'use strict';
38b4828a6SIftekharul Islam
4d27bb135SAndrew Geissler  angular.module('app.common.directives').directive('logEvent', [
5d27bb135SAndrew Geissler    'APIUtils',
6d27bb135SAndrew Geissler    function(APIUtils) {
78b4828a6SIftekharul Islam      return {
88b4828a6SIftekharul Islam        'restrict': 'E',
9bbcf670aSEd Tanous        'template': require('./log-event.html'),
10d27bb135SAndrew Geissler        'scope': {'event': '=', 'tmz': '=', 'multiSelected': '='},
11d27bb135SAndrew Geissler        'controller': [
12d27bb135SAndrew Geissler          '$rootScope', '$scope', 'dataService', '$location', '$timeout',
13d27bb135SAndrew Geissler          function($rootScope, $scope, dataService, $location, $timeout) {
148b4828a6SIftekharul Islam            $scope.dataService = dataService;
158b4828a6SIftekharul Islam            $scope.copySuccess = function(event) {
168b4828a6SIftekharul Islam              event.copied = true;
178b4828a6SIftekharul Islam              $timeout(function() {
188b4828a6SIftekharul Islam                event.copied = false;
198b4828a6SIftekharul Islam              }, 5000);
208b4828a6SIftekharul Islam            };
218b4828a6SIftekharul Islam            $scope.copyFailed = function(err) {
228b4828a6SIftekharul Islam              console.error('Error!', err);
238b4828a6SIftekharul Islam            };
24f2d74644SIftekharul Islam            $scope.resolveEvent = function(event) {
25*7e48d081SGunnar Mills              APIUtils.resolveLogs([{Id: event.Id}])
26*7e48d081SGunnar Mills                  .then(
27*7e48d081SGunnar Mills                      function(data) {
28f2d74644SIftekharul Islam                        event.Resolved = 1;
29*7e48d081SGunnar Mills                      },
30*7e48d081SGunnar Mills                      function(error) {
31*7e48d081SGunnar Mills                        // TODO: Show error to user
32*7e48d081SGunnar Mills                        console.log(JSON.stringify(error));
33f2d74644SIftekharul Islam                      });
34ba5e3f34SAndrew Geissler            };
35f2d74644SIftekharul Islam            $scope.accept = function() {
36f2d74644SIftekharul Islam              $scope.event.selected = true;
37f2d74644SIftekharul Islam              $timeout(function() {
38f2d74644SIftekharul Islam                $scope.$parent.accept();
39f2d74644SIftekharul Islam              }, 10);
40ba5e3f34SAndrew Geissler            };
41845acdc5SMatt Spinler
42845acdc5SMatt Spinler            $scope.getTitle = function(event) {
43845acdc5SMatt Spinler              var title = event.type;
44845acdc5SMatt Spinler              if ((event.eventID != 'None') && (event.description != 'None')) {
45845acdc5SMatt Spinler                title = event.eventID + ': ' + event.description;
46845acdc5SMatt Spinler              }
47845acdc5SMatt Spinler              return title;
48845acdc5SMatt Spinler            };
49845acdc5SMatt Spinler
50845acdc5SMatt Spinler            $scope.getAdditionalData = function(event) {
51845acdc5SMatt Spinler              var data = event.additional_data;
52845acdc5SMatt Spinler              // Stick the type into the additional data if it isn't
53845acdc5SMatt Spinler              // already in the title.
54845acdc5SMatt Spinler              if ($scope.getTitle(event).search(event.type) == -1) {
55845acdc5SMatt Spinler                data += '\nMESSAGE=' + event.type;
56845acdc5SMatt Spinler              }
57845acdc5SMatt Spinler              return data;
58845acdc5SMatt Spinler            };
59c93b03c2Sbeccabroek            $scope.copyText = function(event) {
60c93b03c2Sbeccabroek              return event.description + ' ' + event.additional_data;
61c93b03c2Sbeccabroek            }
62d27bb135SAndrew Geissler          }
63d27bb135SAndrew Geissler        ]
648b4828a6SIftekharul Islam      };
65d27bb135SAndrew Geissler    }
66d27bb135SAndrew Geissler  ]);
678b4828a6SIftekharul Islam})(window.angular);
68