MCPcopy Create free account
hub / github.com/betsol/angular-input-modified / formDirectiveFactory

Function formDirectiveFactory

src/directive/form.js:15–175  ·  view source on GitHub ↗
($animate, inputModifiedConfig, isNgForm)

Source from the content-addressed store, hash-verified

13 ;
14
15 function formDirectiveFactory ($animate, inputModifiedConfig, isNgForm) {
16
17 // Shortcut.
18 var config = inputModifiedConfig;
19
20 return {
21 name: 'form',
22 restrict: isNgForm ? 'EAC' : 'E',
23 require: ['?form'],
24 link: function ($scope, $element, attrs, controllers) {
25
26 // Handling controllers.
27 var formCtrl = controllers[0];
28 var parentFormCtrl = (formCtrl.$$parentForm || $element.parent().controller('form'));
29
30 // Form controller is required for this directive to operate.
31 // Parent form is optional.
32 if (!formCtrl) {
33 return;
34 }
35
36 formCtrl.modified = false;
37 formCtrl.reset = reset;
38
39 // Modified models.
40 formCtrl.modifiedCount = 0;
41 formCtrl.modifiedModels = [];
42 formCtrl.$$onChildModelModifiedStateChanged = function (modelCtrl) {
43 onModifiedStateChanged(modelCtrl, formCtrl.modifiedModels);
44 };
45
46 // Modified child forms.
47 formCtrl.modifiedChildFormsCount = 0;
48 formCtrl.modifiedChildForms = [];
49 formCtrl.$$onChildFormModifiedStateChanged = function (childFormCtrl) {
50 onModifiedStateChanged(childFormCtrl, formCtrl.modifiedChildForms);
51 };
52 formCtrl.$$onChildFormDestroyed = onChildFormDestroyed;
53
54 $element.on('$destroy', function () {
55 if (parentFormCtrl && 'function' === typeof parentFormCtrl.$$onChildFormDestroyed) {
56 parentFormCtrl.$$onChildFormDestroyed(formCtrl);
57 }
58 });
59
60
61 /**
62 * Resets all form inputs to it's master values.
63 */
64 function reset () {
65
66 // Resetting modified models.
67 angular.forEach(formCtrl.modifiedModels, function (modelCtrl) {
68 modelCtrl.reset();
69 });
70
71 // Resetting modified child forms.
72 angular.forEach(formCtrl.modifiedChildForms, function (childFormCtrl) {

Callers 1

form.jsFile · 0.85

Calls 1

onModifiedStateChangedFunction · 0.85

Tested by

no test coverage detected