js/directive/elastic.js   A
last analyzed

Complexity

Total Complexity 3
Complexity/F 1

Size

Lines of Code 17
Function Count 3

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 3
c 0
b 0
f 0
dl 0
loc 17
rs 10
cc 0
nc 2
mnd 0
bc 3
fnc 3
bpm 1
cpm 1
noi 0

1 Function

Rating   Name   Duplication   Size   Complexity  
A app.directive(ꞌelasticꞌ) 0 14 1
1
/*
2
 * @copyright Copyright (c) 2016 Julius Härtl <[email protected]>
3
 *
4
 * @author Julius Härtl <[email protected]>
5
 *
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
// original idea from blockloop: http://stackoverflow.com/a/24090733
24
app.directive('elastic', [
25
	'$timeout',
26
	function($timeout) {
27
		return {
28
			restrict: 'A',
29
			link: function($scope, element) {
30
				$scope.initialHeight = $scope.initialHeight || element[0].style.height;
31
				var resize = function() {
32
					element[0].style.height = $scope.initialHeight;
33
					element[0].style.height = "" + element[0].scrollHeight + "px";
34
				};
35
				element.on("input change", resize);
36
				$timeout(resize, 0);
37
			}
38
		};
39
	}
40
]);