Skip to content
This repository was archived by the owner on Sep 8, 2020. It is now read-only.

Commit 21ea85b

Browse files
committed
Prettified to 2 indents to reduce +-'s with PR.
Changed angular version requirements to 1.x from 1.0.x.
1 parent e6b4844 commit 21ea85b

File tree

3 files changed

+120
-111
lines changed

3 files changed

+120
-111
lines changed

bower.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@
1616
"package.json"
1717
],
1818
"dependencies": {
19-
"angular": "~1.0.x",
19+
"angular": "~1.x",
2020
"jquery-ui": ">= 1.9",
2121
"jquery-simulate": "latest"
2222
},
2323
"devDependencies": {
24-
"angular-mocks": "~1.0.x"
24+
"angular-mocks": "~1.x"
2525
}
2626
}

gruntFile.js

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module.exports = function (grunt) {
1+
module.exports = function(grunt) {
22

33
grunt.loadNpmTasks('grunt-testacular');
44
grunt.loadNpmTasks('grunt-contrib-jshint');
@@ -7,8 +7,14 @@ module.exports = function (grunt) {
77
grunt.registerTask('default', ['jshint', 'testacular']);
88

99
var testacularConfig = function(configFile, customOptions) {
10-
var options = { configFile: configFile, keepalive: true };
11-
var travisOptions = process.env.TRAVIS && { browsers: ['Firefox'], reporters: 'dots' };
10+
var options = {
11+
configFile: configFile,
12+
keepalive: true
13+
};
14+
var travisOptions = process.env.TRAVIS && {
15+
browsers: ['Firefox'],
16+
reporters: 'dots'
17+
};
1218
return grunt.util._.extend(options, customOptions, travisOptions);
1319
};
1420

@@ -19,19 +25,20 @@ module.exports = function (grunt) {
1925
options: testacularConfig('test/test.conf.js')
2026
}
2127
},
22-
jshint:{
23-
files:['src/**/*.js', 'test/**/*.js', 'demo/**/*.js'],
24-
options:{
25-
curly:true,
26-
eqeqeq:true,
27-
immed:true,
28-
latedef:true,
29-
newcap:true,
30-
noarg:true,
31-
sub:true,
32-
boss:true,
33-
eqnull:true,
34-
globals:{}
28+
jshint: {
29+
files: ['src/**/*.js', 'test/**/*.js', 'demo/**/*.js'],
30+
options: {
31+
curly: true,
32+
eqeqeq: true,
33+
immed: true,
34+
indent: 2,
35+
latedef: true,
36+
newcap: true,
37+
noarg: true,
38+
sub: true,
39+
boss: true,
40+
eqnull: true,
41+
globals: {}
3542
}
3643
}
3744
});

src/sortable.js

Lines changed: 95 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -4,119 +4,121 @@
44
@param [ui-sortable] {object} Options to pass to $.fn.sortable() merged onto ui.config
55
*/
66
angular.module('ui.sortable', [])
7-
.value('uiSortableConfig',{})
8-
.directive('uiSortable', [ 'uiSortableConfig', '$log',
9-
function(uiSortableConfig, log) {
10-
return {
11-
require: '?ngModel',
12-
link: function(scope, element, attrs, ngModel) {
13-
14-
function combineCallbacks(first,second){
15-
if( second && (typeof second === "function") ){
16-
return function(e,ui){
17-
first(e,ui);
18-
second(e,ui);
19-
};
20-
}
21-
return first;
22-
}
7+
.value('uiSortableConfig', {})
8+
.directive('uiSortable', ['uiSortableConfig', '$log',
9+
function(uiSortableConfig, log) {
10+
return {
11+
require: '?ngModel',
12+
link: function(scope, element, attrs, ngModel) {
13+
14+
function combineCallbacks(first, second) {
15+
if (second && (typeof second === "function")) {
16+
return function(e, ui) {
17+
first(e, ui);
18+
second(e, ui);
19+
};
20+
}
21+
return first;
22+
}
2323

24-
var opts = {};
24+
var opts = {};
2525

26-
var callbacks = {
27-
receive: null,
28-
remove:null,
29-
start:null,
30-
stop:null,
31-
update:null
32-
};
33-
34-
var apply = function(e, ui) {
35-
if (ui.item.sortable.resort || ui.item.sortable.relocate) {
36-
scope.$apply();
37-
}
38-
};
26+
var callbacks = {
27+
receive: null,
28+
remove: null,
29+
start: null,
30+
stop: null,
31+
update: null
32+
};
3933

40-
angular.extend(opts, uiSortableConfig);
34+
var apply = function(e, ui) {
35+
if (ui.item.sortable.resort || ui.item.sortable.relocate) {
36+
scope.$apply();
37+
}
38+
};
4139

42-
if (ngModel) {
40+
angular.extend(opts, uiSortableConfig);
4341

44-
ngModel.$render = function() {
45-
element.sortable( "refresh" );
46-
};
42+
if (ngModel) {
4743

48-
callbacks.start = function(e, ui) {
49-
// Save position of dragged item
50-
ui.item.sortable = { index: ui.item.index() };
51-
};
44+
ngModel.$render = function() {
45+
element.sortable("refresh");
46+
};
5247

53-
callbacks.update = function(e, ui) {
54-
// For some reason the reference to ngModel in stop() is wrong
55-
ui.item.sortable.resort = ngModel;
48+
callbacks.start = function(e, ui) {
49+
// Save position of dragged item
50+
ui.item.sortable = {
51+
index: ui.item.index()
5652
};
53+
};
5754

58-
callbacks.receive = function(e, ui) {
59-
ui.item.sortable.relocate = true;
60-
// added item to array into correct position and set up flag
61-
ngModel.$modelValue.splice(ui.item.index(), 0, ui.item.sortable.moved);
62-
};
55+
callbacks.update = function(e, ui) {
56+
// For some reason the reference to ngModel in stop() is wrong
57+
ui.item.sortable.resort = ngModel;
58+
};
6359

64-
callbacks.remove = function(e, ui) {
65-
// copy data into item
66-
if (ngModel.$modelValue.length === 1) {
67-
ui.item.sortable.moved = ngModel.$modelValue.splice(0, 1)[0];
68-
} else {
69-
ui.item.sortable.moved = ngModel.$modelValue.splice(ui.item.sortable.index, 1)[0];
70-
}
71-
};
60+
callbacks.receive = function(e, ui) {
61+
ui.item.sortable.relocate = true;
62+
// added item to array into correct position and set up flag
63+
ngModel.$modelValue.splice(ui.item.index(), 0, ui.item.sortable.moved);
64+
};
7265

73-
callbacks.stop = function(e, ui) {
74-
// digest all prepared changes
75-
if (ui.item.sortable.resort && !ui.item.sortable.relocate) {
66+
callbacks.remove = function(e, ui) {
67+
// copy data into item
68+
if (ngModel.$modelValue.length === 1) {
69+
ui.item.sortable.moved = ngModel.$modelValue.splice(0, 1)[0];
70+
} else {
71+
ui.item.sortable.moved = ngModel.$modelValue.splice(ui.item.sortable.index, 1)[0];
72+
}
73+
};
7674

77-
// Fetch saved and current position of dropped element
78-
var end, start;
79-
start = ui.item.sortable.index;
80-
end = ui.item.index();
75+
callbacks.stop = function(e, ui) {
76+
// digest all prepared changes
77+
if (ui.item.sortable.resort && !ui.item.sortable.relocate) {
8178

82-
// Reorder array and apply change to scope
83-
ui.item.sortable.resort.$modelValue.splice(end, 0, ui.item.sortable.resort.$modelValue.splice(start, 1)[0]);
79+
// Fetch saved and current position of dropped element
80+
var end, start;
81+
start = ui.item.sortable.index;
82+
end = ui.item.index();
8483

85-
}
86-
};
84+
// Reorder array and apply change to scope
85+
ui.item.sortable.resort.$modelValue.splice(end, 0, ui.item.sortable.resort.$modelValue.splice(start, 1)[0]);
8786

88-
scope.$watch(attrs.uiSortable, function(newVal, oldVal){
89-
angular.forEach(newVal, function(value, key){
87+
}
88+
};
9089

91-
if( callbacks[key] ){
92-
// wrap the callback
93-
value = combineCallbacks( callbacks[key], value );
94-
95-
if ( key === 'stop' ){
96-
// call apply after stop
97-
value = combineCallbacks( value, apply );
98-
}
99-
}
90+
scope.$watch(attrs.uiSortable, function(newVal, oldVal) {
91+
angular.forEach(newVal, function(value, key) {
10092

101-
element.sortable('option', key, value);
102-
});
103-
}, true);
93+
if (callbacks[key]) {
94+
// wrap the callback
95+
value = combineCallbacks(callbacks[key], value);
10496

105-
angular.forEach(callbacks, function(value, key ){
97+
if (key === 'stop') {
98+
// call apply after stop
99+
value = combineCallbacks(value, apply);
100+
}
101+
}
106102

107-
opts[key] = combineCallbacks(value, opts[key]);
103+
element.sortable('option', key, value);
108104
});
109-
110-
// call apply after stop
111-
opts.stop = combineCallbacks( opts.stop, apply );
105+
}, true);
112106

113-
} else {
114-
log.info('ui.sortable: ngModel not provided!', element);
115-
}
107+
angular.forEach(callbacks, function(value, key) {
116108

117-
// Create sortable
118-
element.sortable(opts);
109+
opts[key] = combineCallbacks(value, opts[key]);
110+
});
111+
112+
// call apply after stop
113+
opts.stop = combineCallbacks(opts.stop, apply);
114+
115+
} else {
116+
log.info('ui.sortable: ngModel not provided!', element);
119117
}
120-
};
121-
}
122-
]);
118+
119+
// Create sortable
120+
element.sortable(opts);
121+
}
122+
};
123+
}
124+
]);

0 commit comments

Comments
 (0)