| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391 | 
							- 'use strict';
 
- /**
 
-  * @ngdoc function
 
-  * @name fehlerberichtApp.controller:AboutCtrl
 
-  * @description
 
-  * # AboutCtrl
 
-  * Controller of the fehlerberichtApp
 
-  */
 
- angular.module('fehlerberichtApp')
 
-     .controller('OverviewCtrl', function ($scope, $http, $routeParams, $interval) {
 
-         var webservice = 'http://rbs06/fehlerbericht/db.php?';
 
-         $scope.error = {
 
-             'level': -1,
 
-             'info': [],
 
-             'message': ""
 
-         };
 
-         $scope.domain = {
 
-             'bearbeitet': {
 
-                 '0': "angesehen",
 
-                 '1': "behoben",
 
-                 '2': "übernommen",
 
-                 '3': "Rücksprache mit Kunde",
 
-                 '4': "Serverproblem",
 
-                 '5': "Prozess läuft",
 
-                 '6': "ignoriert / egal"
 
-             },
 
-             'comment': {
 
-                 '0': "glyphicon-eye-open",
 
-                 '1': "glyphicon-ok",
 
-                 '2': "glyphicon-user",
 
-                 '3': "glyphicon-earphone",
 
-                 '4': "glyphicon-flash",
 
-                 '5': "glyphicon-refresh",
 
-                 '6': "glyphicon-remove"
 
-             },
 
-             'statusfilter': {
 
-                 '2': 'nicht behoben',
 
-                 '5': 'läuft',
 
-                 '6': 'ignoriert'
 
-             },
 
-             'fehler': {
 
-                 '0': "okay",
 
-                 '1': "fehlerhaft"
 
-             },
 
-             'system': [
 
-                 '?',
 
-                 'Autosys',
 
-                 'Autosys-Light',
 
-                 'EDS',
 
-                 'Filaks',
 
-                 'GlobalCube',
 
-                 'Light',
 
-                 'Navision',
 
-                 'Optima'
 
-             ],
 
-             'datum': {},
 
-             'kunde': {},
 
-             'status': {
 
-                 'errors': '1',
 
-                 'all': '',
 
-                 'missing': '',
 
-                 'flawless': '0'
 
-             },
 
-             'fehlend': {
 
-                 '1': 'fehlt',
 
-                 '0': 'vorhanden'
 
-             },
 
-             'date': {
 
-                 'all': '',
 
-                 'today': moment().format('YYYY-MM-DD'),
 
-                 'yesterday':  moment().subtract(1, 'days').format('YYYY-MM-DD')
 
-             },
 
-             'benutzer': []
 
-         };
 
-         $scope.benutzer = window.localStorage.getItem("Benutzer");
 
-         $scope.overview = [];
 
-         $scope.comments = {};
 
-         $scope.datum = [];
 
-         $scope.current = {
 
-             'zeile' : {},
 
-             'fehler': {},
 
-             'details': null,
 
-             'status': 2,
 
-             'kommentar': {}
 
-         };
 
-         $scope.Filter = {
 
-             'datum': (moment($routeParams.date).isValid()) ? moment($routeParams.date).format('YYYY-MM-DD') : $scope.domain.date[$routeParams.date],
 
-             'kunde': ($routeParams.customer === 'all') ? '' : $routeParams.customer,
 
-             'fehler': $scope.domain.status[$routeParams.status],
 
-             'fehlend': ($routeParams.status === 'missing') ? '1' : '',
 
-             'system': '',
 
-             'benutzer': ''
 
-         };
 
-         $scope.Predicate = (function () {
 
-             if ($routeParams.customer !== 'all') {
 
-                 return 'datum';
 
-             }
 
-             if ($routeParams.date === 'today' && $routeParams.status === 'errors') {
 
-                     return 'ende_soll';
 
-             }
 
-             return ['kunde','datum'];
 
-         })();
 
-         $scope.Reverse = ($routeParams.customer !== 'all');
 
-         $scope.SearchText = '';
 
-         $scope.removeItem = function (index) {
 
-             // Beispiel
 
-             $scope.Bestellungen = $scope.Bestellungen.splice(index, 1);
 
-         };
 
-         $http.get(webservice + 'a=benutzer').success(function (data) {
 
-             $scope.domain.benutzer = _.unique(_.pluck(data, 'benutzer'));
 
-         });
 
-         $scope.refresh = function () {
 
-             $http.get(webservice + 'a=liste&kunde=' + $scope.Filter.kunde + '&datum=' + $scope.Filter.datum).success(function (data) {
 
-                 $scope.overview = data;
 
-                 //$scope.domain.benutzer = _.unique(_.pluck(data, 'benutzer'));
 
-             });
 
-             $http.get(webservice + 'a=kommentar&kunde=' + $scope.Filter.kunde + '&datum=' + $scope.Filter.datum).success(function (data) {
 
-                 $scope.comments = _.groupBy(data, 'kunde');
 
-             });
 
-         };
 
-         $scope.importData = function () {
 
-             $scope.error.level = 0;
 
-             $scope.error.message = "Aktualisierung läuft!";
 
-             $http.get('http://rbs06/GlobalCube/Fehlerbericht/app/import.php').success(function (data) {
 
-                 if (Array.isArray(data)) {
 
-                     $scope.error.info = data;
 
-                     if (data.length === 0) {
 
-                         $scope.error.level = 0;
 
-                         $scope.error.message = "Keine neuen Datensätze!";
 
-                     } else {
 
-                         $scope.error.message = "Neue Datensätze:";
 
-                         $scope.error.level = 0;
 
-                         $scope.refresh();
 
-                     }
 
-                 } else {
 
-                     $scope.error.info = [];
 
-                     $scope.error.level = 1;
 
-                     $scope.error.message = data;
 
-                 }
 
-             });
 
-         };
 
-         $scope.refresh();
 
-         $interval($scope.refresh, 5 * 60 * 1000);
 
-         $scope.minuten = function (t) {
 
-             var faktor, m, mins;
 
-             if (!t) {
 
-                 return '';
 
-             }
 
-             faktor = 1;
 
-             if (t < '00:00:00') {
 
-                 t = t.substring(1);
 
-                 faktor = -1;
 
-             }
 
-             m = moment(t, 'HH:mm:ss');
 
-             mins = faktor * (m.minutes() + m.hours() * 60);
 
-             return mins + " Min.";
 
-         };
 
-         $scope.timeDiffStart = function (z) {
 
-             if (z.start === null) {
 
-                 return '';
 
-             }
 
-             var duration = moment.duration(z.start, 'HH:mm:ss').subtract(moment(z.start_soll, 'HH:mm:ss')).asMinutes();
 
-             if (duration !== 0) {
 
-                 var plus = (duration > 0) ? '+' : '';
 
-                 return plus + duration + ' Minuten';
 
-             }
 
-             return '';
 
-         };
 
-         $scope.timeDiff = function (z) {
 
-             if (z.start === null) {
 
-                 return '';
 
-             }
 
-             var duration = moment.duration(z.ende, 'HH:mm:ss').subtract(moment(z.ende_soll, 'HH:mm:ss')).asMinutes() - moment.duration(z.start, 'HH:mm:ss').subtract(moment(z.start_soll, 'HH:mm:ss')).asMinutes();
 
-             if (duration !== 0) {
 
-                 var plus = (duration > 0) ? '+' : '';
 
-                 return '(' + plus + duration + ' Min.)';
 
-             }
 
-             return '';
 
-         };
 
-         $scope.dateFormat = function (date) {
 
-             var d = moment(date, 'YYYY-MM-DD');
 
-             if (d.isValid()) {
 
-                 if (date === $scope.domain.date.today) {
 
-                     return 'Heute';
 
-                 }
 
-                 if (date === $scope.domain.date.yesterday) {
 
-                     return 'Gestern';
 
-                 }
 
-                 return d.format('dd, DD.MM.YYYY');
 
-             }
 
-             return date;
 
-         };
 
-         $scope.timeFormat = function (t) {
 
-             var d = moment(t, 'YYYY-MM-DD HH:mm:ss');
 
-             if (d.isValid()) {
 
-                 return d.format('HH:mm:ss');
 
-             }
 
-             return t;
 
-         };
 
-         $scope.mailFormat = function (t) {
 
-             if (t === undefined) {
 
-                 return '';
 
-             }
 
-             return _.map(t.split(';'), function (e) { return '<a href="mailto:' + e + '">' + e + '</a>'; }).join('<br/>');
 
-         };
 
-         $scope.left = function (text, length) {
 
-             if (text.length === 0) {
 
-                 return '?';
 
-             }
 
-             return text.substring(0, length);
 
-         };
 
-         $scope.errorCount = function (e) {
 
-             if (e.Errors.length === 0 || e.Errors.length === 1 && e.Errors[0] === '') {
 
-                 return $scope.daysCount(e);
 
-             }
 
-             var type = 'Info';
 
-             if (e.ErrorLevel < 3) {
 
-                 type = 'Fehler';
 
-             }
 
-             return e.Errors.length + ' ' + type;
 
-         };
 
-         $scope.daysCount = function (e) {
 
-             if (e.LastChangedDays === 0) {
 
-                 return '0';
 
-             }
 
-             return e.LastChangedDays + ' Tage alt';
 
-         };
 
-         $scope.errorLevel = function (e) {
 
-             return e.ErrorLevel <= 2 || e.Name.indexOf('bat') > -1 || e.LastChangedDays >= 3;
 
-         };
 
-         $scope.setCurrent = function (row) {
 
-             $scope.current.zeile = row;
 
-             $scope.current.fehler = {};
 
-             $scope.current.details = null;
 
-             $scope.current.status = 2;
 
-             $scope.current.kommentar = {};
 
-             $scope.current.template = {
 
-                 'id': '',
 
-                 'datum': row.datum,
 
-                 'kunde': row.kunde,
 
-                 'start': row.start,
 
-                 'benutzer': $scope.benutzer,
 
-                 'fehler': (row.anzahl === null) ? 0 : parseInt(row.anzahl, 10),
 
-                 'status': '0',
 
-                 'kommentar': ''
 
-             };
 
-             $http.get(webservice + 'a=fehlerbericht&kunde=' + $scope.current.zeile.kunde + '&datum=' + $scope.current.zeile.datum + '&start=' + $scope.current.zeile.start).success(function (data) {
 
-                 $scope.current.fehler = data;
 
-                 if (data.benutzer === '' || data.benutzer !== $scope.benutzer) {
 
-                     $scope.current.kommentar = $scope.current.template;
 
-                 } else {
 
-                     $scope.current.kommentar = $scope.comments[data.kunde][0];
 
-                     $scope.current.kommentar.fehler = parseInt($scope.current.kommentar.fehler, 10);
 
-                 }
 
-                 data.fehlerbericht = _.sortBy(data.fehlerbericht, function(e) { return moment(e.Modified); });
 
-                 data.weitere = _.chain(data.fehlerbericht).reject($scope.errorLevel).groupBy(function (e) { return e.Type; }).value();
 
-                 var duration = _.map(_.filter(data.fehlerbericht, function (e) { return e.Summary !== null && e.Summary.Duration !== null && e.Summary.Duration >= '00:01:00'; }), function(e) { return { 'label': e.Type + ': ' + e.Name + ' (' + e.Summary.Duration + ')', 'data':  moment.duration(e.Summary.Duration, 'HH:mm:ss').asMinutes() }; });
 
-                 $.plot('#duration', duration, {
 
-                     series: {
 
-                         pie: {
 
-                             show: true,
 
-                             radius: 0.8
 
-                         }
 
-                     },
 
-                     legend: {
 
-                         show: true
 
-                     }
 
-                 });
 
-             });
 
-         };
 
-         $scope.getComments = function (zeile) {
 
-             if ($scope.comments[zeile.kunde]) {
 
-                 if (zeile.fehlend === '1') {
 
-                     return $scope.comments[zeile.kunde];
 
-                 }
 
-                 var newComments = _.filter($scope.comments[zeile.kunde], function (row) { return row.datum === zeile.datum; });
 
-                 if (newComments.length > 0) {
 
-                     return newComments;
 
-                 }
 
-             }
 
-             return false;
 
-         };
 
-         $scope.getCommentIcon = function (c) {
 
-             var c0 = c;
 
-             if (c.length > 0) {
 
-                 c0 = c[0];
 
-             }
 
-             if (c0.status) {
 
-                 return $scope.domain.comment[c0.status];
 
-             }
 
-             return "glyphicon-question-sign";
 
-         };
 
-         $scope.shortFilename = function(filename) {
 
-             if (filename !== undefined && filename.length > 0 && filename.indexOf("\\") >= 0) {
 
-                 return filename.substring(filename.lastIndexOf("\\") + 1);
 
-             }
 
-             return filename;
 
-         };
 
-         $scope.showDetails = function (entry) {
 
-             $scope.current.details = entry;
 
-             var duration = _.map(_.filter(entry.Sources, function(e) { return e.Duration > '00:01:00'; }), function(e) { return { 'label': $scope.shortFilename(e.Filename) + ' (' + e.Duration + ')', 'data':  Math.round(moment.duration(e.Duration, 'HH:mm:ss').asMinutes()) }; });
 
-             $.plot('#duration_details', duration, {
 
-                 series: {
 
-                     pie: {
 
-                         show: true,
 
-                         radius: 0.8
 
-                     }
 
-                 },
 
-                 legend: {
 
-                     show: true
 
-                 }
 
-             });
 
-         };
 
-         $scope.saveUser = function (name) {
 
-             window.localStorage.setItem("Benutzer", name);
 
-             $scope.benutzer = name;
 
-         };
 
-         $scope.saveComments = function () {
 
-             $http.put(webservice + 'a=kommentar&id=' + $scope.current.kommentar.id, $scope.current.kommentar).success(function (data) {
 
-                 $scope.comments = data;
 
-                 if ($scope.current.kommentar.id === '') {
 
-                     $scope.refresh();
 
-                 }
 
-             });
 
-         };
 
-         $scope.saveStartTime = function (zeile) {
 
-             $http.put(webservice + 'a=zeit&kunde=' + zeile.kunde + '&start_soll=' + zeile.start + '&ende_soll=' + zeile.ende_soll).success(function (data) {
 
-                 zeile.start_soll = zeile.start;
 
-             });
 
-         };
 
-         $scope.saveEndTime = function (zeile) {
 
-             $http.put(webservice + 'a=zeit&kunde=' + zeile.kunde + '&start_soll=' + zeile.start_soll + '&ende_soll=' + zeile.ende).success(function (data) {
 
-                 zeile.ende_soll = zeile.ende;
 
-             });
 
-         };
 
-         $scope.statusFilter = function (row) {
 
-             return (row.status >= $scope.current.status);
 
-         };
 
-     });
 
 
  |