formChangeLoggerSvc.js 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. var formChangeLoggerSvc = angular.module('formChangeLoggerSvc', []);
  2. formChangeLoggerSvc.factory('formChangeLoggerSvc', function($cookies, $rootScope, $http, $q,$window,
  3. $mdDialog, $mdToast) {
  4. var formChangeLoggerSvc = {};
  5. formChangeLoggerSvc.currentFieldName=null;
  6. formChangeLoggerSvc.currentFieldOldValue=null;
  7. formChangeLoggerSvc.currentFieldNewValue=null;
  8. formChangeLoggerSvc.listOfChanges = new Array();
  9. formChangeLoggerSvc.init = function() {
  10. formChangeLoggerSvc.currentFieldName=null;
  11. formChangeLoggerSvc.currentFieldOldValue=null;
  12. formChangeLoggerSvc.currentFieldNewValue=null;
  13. formChangeLoggerSvc.listOfChanges = new Array();
  14. }
  15. formChangeLoggerSvc.enterField = function(fieldName, fieldValue) {
  16. formChangeLoggerSvc.currentFieldName = fieldName;
  17. formChangeLoggerSvc.currentFieldOldValue = fieldValue;
  18. }
  19. formChangeLoggerSvc.exitField = function(fieldValue) {
  20. formChangeLoggerSvc.currentFieldNewValue = fieldValue;
  21. if (formChangeLoggerSvc.currentFieldNewValue != formChangeLoggerSvc.currentFieldOldValue) {
  22. console.log(formChangeLoggerSvc.currentFieldName + ": " + formChangeLoggerSvc.currentFieldOldValue + " -> " + formChangeLoggerSvc.currentFieldNewValue);
  23. formChangeLoggerSvc.listOfChanges.push(
  24. {
  25. fieldName: formChangeLoggerSvc.currentFieldName,
  26. oldValue: formChangeLoggerSvc.currentFieldOldValue,
  27. newValue: formChangeLoggerSvc.currentFieldNewValue,
  28. timestamp: new Date()
  29. })
  30. }
  31. }
  32. formChangeLoggerSvc.getChanges = function(){
  33. return formChangeLoggerSvc.listOfChanges;
  34. }
  35. formChangeLoggerSvc.onFocus = function(scope, event) {
  36. if (typeof event != "undefined") {
  37. var dataField;
  38. //datepicker workaround
  39. if (event.target)
  40. dataField = event.target;
  41. else
  42. dataField = event;
  43. var fieldName = dataField.getAttribute("ng-model");
  44. fieldName = fieldName.substring(fieldName.indexOf(".") + 1);
  45. var value = scope.$eval( dataField.getAttribute("ng-model"));
  46. //datepicker workaround
  47. // var value;
  48. // if (dataField.value)
  49. // value = dataField.value;
  50. // else
  51. // value = dataField.getElementsByTagName('input')[0].value
  52. formChangeLoggerSvc.enterField(fieldName, value);
  53. }
  54. }
  55. formChangeLoggerSvc.onBlur = function(scope, event) {
  56. if (typeof event != "undefined") {
  57. var dataField;
  58. if (event.target)
  59. dataField = event.target;
  60. else
  61. dataField = event;
  62. var value = scope.$eval( dataField.getAttribute("ng-model"));
  63. //datepicker workaround
  64. // var value;
  65. // if (dataField.value)
  66. // value = dataField.value;
  67. // else
  68. // value = dataField.getElementsByTagName('input')[0].value
  69. formChangeLoggerSvc.exitField(value);
  70. }
  71. }
  72. return formChangeLoggerSvc;
  73. });