168 lines
5.7 KiB
JavaScript
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
|
|
}
|
|
|
|
}]); |