EnVisageOnline/Main/Source/EnVisage/Scripts/Angular/Controllers/noteController.js

168 lines
5.7 KiB
JavaScript

'use strict';
app.controller('noteController', ['$scope', '$http', '$location', '$timeout', '$document', 'noteService', '$rootScope', function ($scope, $http, $location, $timeout, $document, noteService, $rootScope) {
var commonErrorTitle = 'Oops!',
commonErrorMessage = 'An error occurred while processing your request. Please, try again later.';
$scope.Note = { Id: null, ParentId: null, Title: null, Details: null , DateAdded:"", DomainId: "", NoteType: 0, CreatedBy :"" };
$scope.Notes = [];
$scope.DomianId;
$scope.ParentId;
$scope.NoteType;
$scope.SaveData;
$scope.UserId;
$scope.UserName;
$scope.SuperUser = false;
$scope.initView = function (DomianId, ParentId, NType, SaveData,ignoreCache) {
if (!ParentId)
return;
if (!ignoreCache) {
var notes = [];
notes = noteService.LoadFromCache(ParentId);
if (notes) {
for (var i = 0; i < notes.length; i++) {
$scope.Notes.push(notes[i]);
}
}
}
noteService.getNotesForEC(DomianId, ParentId).then(function (data) {
if ($scope.Notes.length == 0)
$scope.Notes = data.Notes;
$scope.UserId = data.UserInfo.Id;
$scope.UserName = data.UserInfo.Name;
$scope.SuperUser = data.SuperUser;
});
$scope.DomianId = DomianId;
$scope.ParentId = ParentId;
$scope.NoteType = NType;
$scope.SaveData = SaveData;
}
$scope.init = function (data) {
if (!data)
return;
noteService.getNotesForEC(data.DomainId,data.ParentId).then(function (data) {
$scope.Notes = data.Notes;
$scope.UserId = data.UserInfo.Id;
$scope.UserName = data.UserInfo.Name;
$scope.SuperUser = data.SuperUser;
});
$scope.DomianId = scenarioId;
$scope.ParentId = ECId;
$scope.NoteType = nType;
};
$scope.ViewNote = function (NoteId) {
noteService.getNote(NoteId);
};
$scope.AddNote = function (ModalId) {
var n = angular.copy($scope.Note);
if (!n)
return;
$scope.HidePopupWindow(ModalId);
n.ParentId = $scope.ParentId;
n.DomainId = $scope.DomianId;
n.NoteType = $scope.NoteType;
n.CreatedBy = $scope.UserName;
var date = new Date();
n.DateAdded = (date.getMonth() + 1) + '/' + date.getDate() + '/' + date.getFullYear()
if (!n.Id)
n.Id = Math.uuid();
var nIdx=NoteIndex(n);
if (nIdx < 0)
$scope.Notes.push(n);
else
$scope.Notes.splice(nIdx,1,n);
if ($scope.SaveData) {
noteService.EditNote(n);
}
else {
noteService.CacheData(n);
$rootScope.$broadcast('NoteAdded', n);
}
};
$scope.DeleteNote = function (n,ModalId) {
if (!n)
return;
var idx = NoteIndex(n);
if (idx < 0)
return;
$scope.Notes.splice(idx, 1);
noteService.RemoveFromCache(n);
if ($scope.Notes.length == 0)
$scope.HidePopupWindow(ModalId);
if ($scope.SaveData)
noteService.RemoveNote(n.Id);
else {
$rootScope.$broadcast('NoteRemoved', n);
}
}
$scope.openNoteModal = function (n) {
if (!n)
$scope.Reset();
else
$scope.Note = angular.copy(n);
$scope.$apply
};
$scope.Reset= function(){
$scope.Note.Id="";
$scope.Note.ParentId = $scope.ParentId;
$scope.Note.DomainId = $scope.DomianId;
$scope.Note.NoteType = $scope.NoteType;
$scope.Note.CreatedBy = $scope.UserName;
$scope.Note.Title = "";
$scope.Note.Details = "";
$scope.Note.DateAdded="";
};
$scope.HidePopupWindow = function (WindowId) {
if ($('#' + WindowId + $scope.ParentId).length)
$('#' + WindowId + $scope.ParentId).modal('hide');
else if ($('#' + WindowId).length)
$('#' + WindowId).modal('hide');
$scope.Reset();
}
$scope.$on('removeNote', function (event, data) {
var _notesToDelete = angular.copy($scope.Notes);
if (!data.DomainId) {
for (var i = 0; i < _notesToDelete.length; i++) {
if (_notesToDelete[i].ParentId == data.ParentId) {
$scope.DeleteNote(_notesToDelete[i]);
}
}
} else {
for (var i = 0; i < _notesToDelete.length; i++) {
if (_notesToDelete[i].DomainId == data.ParentId) {
$scope.DeleteNote(_notesToDelete[i]);
}
}
}
});
$scope.$on('removeNoteCB', function (event, data) {
var _notesToDelete = angular.copy($scope.Notes);
if (!data.DomainId) {
for (var i = 0; i < _notesToDelete.length; i++) {
if (_notesToDelete[i].ParentId == data.ParentId) {
$rootScope.$broadcast('NoteRemoved', _notesToDelete[i]);
noteService.RemoveFromCache(_notesToDelete[i]);
}
}
} else {
for (var i = 0; i < _notesToDelete.length; i++) {
if (_notesToDelete[i].DomainId == data.ParentId) {
$rootScope.$broadcast('NoteRemoved', _notesToDelete[i]);
noteService.RemoveFromCache(_notesToDelete[i]);
}
}
}
});
function NoteIndex(n) {
for (var i = 0; i < $scope.Notes.length; i++) {
if ($scope.Notes[i].Id == n.Id) {
return i;
}
}
return -1
}
}]);