Completed
Push — master ( 641a91...fc9f6a )
by
unknown
10:16
created

js/app/directives/clearbutton2.js   A

Complexity

Total Complexity 7
Complexity/F 1.4

Size

Lines of Code 35
Function Count 5

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 0
nc 2
dl 0
loc 35
rs 10
c 0
b 0
f 0
wmc 7
mnd 1
bc 7
fnc 5
bpm 1.4
cpm 1.4
noi 0

1 Function

Rating   Name   Duplication   Size   Complexity  
A angular.directive(ꞌclearBtnꞌ) 0 25 1
1
/**
2
 * Nextcloud - passman
3
 *
4
 * @copyright Copyright (c) 2016, Sander Brand ([email protected])
5
 * @copyright Copyright (c) 2016, Marcos Zuriaga Miguel ([email protected])
6
 * @license GNU AGPL version 3 or any later version
7
 *
8
 * This program is free software: you can redistribute it and/or modify
9
 * it under the terms of the GNU Affero General Public License as
10
 * published by the Free Software Foundation, either version 3 of the
11
 * License, or (at your option) any later version.
12
 *
13
 * This program is distributed in the hope that it will be useful,
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 * GNU Affero General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU Affero General Public License
19
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
 *
21
 */
22
23
(function () {
24
	'use strict';
25
	/**
26
	 * @ngdoc directive
27
	 * @name passmanApp.directive:clearBtn
28
	 * @description
29
	 * # clearBtn
30
	 */
31
	angular.module('passmanApp')
32
		.directive('clearBtn', ['$parse', function ($parse) {
33
            return {
34
                link: function (scope, elm, attr) {
35
                    elm.wrap("<div style='position: relative'></div>");
36
                    var btn = '<span id=' + Math.round(Math.random() * 1000000000) + ' class="searchclear ng-hide fa fa-times-circle-o"></span>';
37
                    var angularBtn = angular.element(btn);
38
                    elm.after(angularBtn);
39
                    //clear the input
40
                    angularBtn.on("click", function () {
41
                        elm.val('').trigger("change");
42
                        $parse(attr.ngModel).assign(scope, '');
43
                        scope.$apply();
44
                    });
45
46
                    // show  clear btn  on focus
47
                    elm.bind('focus keyup change paste propertychange', function () {
48
                        if (elm.val() && elm.val().length > 0) {
49
                            angularBtn.removeClass("ng-hide");
50
                        } else {
51
                            angularBtn.addClass("ng-hide");
52
                        }
53
                    });
54
                }
55
            };
56
        }]);
57
}());
58
59
60