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

Commit 29876be

Browse files
yanivefraimSomeKittens
authored andcommitted
fix #108 - added support for 'data-size', 'data-min-size' and 'data-max-size'
1 parent 8418ea5 commit 29876be

File tree

2 files changed

+56
-7
lines changed

2 files changed

+56
-7
lines changed

src/ui-layout.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -233,9 +233,9 @@ angular.module('ui.layout', [])
233233
if(!LayoutContainer.isSplitbar(ctrl.containers[i])) {
234234

235235
var child = ctrl.containers[i].element;
236-
opts.maxSizes[i] = child.attr('max-size') || opts.maxSizes[i] || null;
237-
opts.minSizes[i] = child.attr('min-size') || opts.minSizes[i] || null;
238-
opts.sizes[i] = child.attr('size') || opts.sizes[i] || 'auto';
236+
opts.maxSizes[i] = child.attr('max-size') || child.attr('data-max-size') || opts.maxSizes[i] || null;
237+
opts.minSizes[i] = child.attr('min-size') || child.attr('data-min-size') || opts.minSizes[i] || null;
238+
opts.sizes[i] = child.attr('size') || child.attr('data-size') || opts.sizes[i] || 'auto';
239239
//opts.collapsed[i] = child.attr('collapsed') || opts.collapsed[i] || false;
240240

241241

test/layout.spec.js

Lines changed: 53 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,27 @@ describe('Directive: uiLayout', function () {
138138
return element;
139139
}
140140

141+
function createDataSizedDirective(notation) {
142+
element = createDirective(null, '<div ui-layout><header ui-layout-container data-size="' + notation + '"></header><footer ui-layout-container></footer></div>');
143+
144+
$header = element.children().eq(0)[0];
145+
$footer = element.children().eq(2)[0];
146+
147+
return element;
148+
}
149+
150+
141151
function testSizeNotation(notation, actualSize) {
142152
element = createSizedDirective(notation);
153+
test(element, notation, actualSize);
154+
element.remove();
155+
156+
element = createDataSizedDirective(notation);
157+
test(element, notation, actualSize);
158+
element.remove();
159+
}
143160

161+
function test(element, notation, actualSize) {
144162
layoutBounds = element[0].getBoundingClientRect();
145163
headerBounds = $header.getBoundingClientRect();
146164

@@ -156,7 +174,6 @@ describe('Directive: uiLayout', function () {
156174
expect(parseFloat($footer.style.top)).toEqual(actualSize + defaultDividerSize);
157175
}
158176

159-
element.remove();
160177
}
161178

162179
describe('when using dummy input', function () {
@@ -199,9 +216,27 @@ describe('Directive: uiLayout', function () {
199216
return element;
200217
}
201218

219+
function createDataSizedDirective(notation) {
220+
element = createDirective(null, '<div ui-layout><header ui-layout-container size="1px" data-min-size="' + notation + '"></header><footer ui-layout-container></footer></div>');
221+
222+
$header = element.children().eq(0)[0];
223+
$footer = element.children().eq(2)[0];
224+
225+
return element;
226+
}
227+
202228
function testSizeNotation(notation, minSize) {
203229
element = createSizedDirective(notation);
230+
test(element, notation, minSize);
231+
element.remove();
232+
233+
element = createDataSizedDirective(notation);
234+
test(element, notation, minSize);
235+
element.remove();
236+
237+
}
204238

239+
function test(element, notation, minSize) {
205240
layoutBounds = element[0].getBoundingClientRect();
206241
headerBounds = $header.getBoundingClientRect();
207242

@@ -216,8 +251,6 @@ describe('Directive: uiLayout', function () {
216251
expect(parseFloat($footer.style.height)).toEqual(layoutBounds.height - minSize - defaultDividerSize);
217252
expect(parseFloat($footer.style.top)).toEqual(minSize + defaultDividerSize);
218253
}
219-
220-
element.remove();
221254
}
222255

223256
it('should support percent type', function () {
@@ -249,9 +282,26 @@ describe('Directive: uiLayout', function () {
249282
return element;
250283
}
251284

285+
function createDataSizedDirective(notation) {
286+
element = createDirective(null, '<div ui-layout><header ui-layout-container size="100%" data-max-size="' + notation + '"></header><footer ui-layout-container></footer></div>');
287+
288+
$header = element.children().eq(0)[0];
289+
$footer = element.children().eq(2)[0];
290+
291+
return element;
292+
}
293+
252294
function testSizeNotation(notation, maxSize) {
253295
element = createSizedDirective(notation);
296+
test(element, notation, maxSize);
297+
element.remove();
254298

299+
element = createDataSizedDirective(notation);
300+
test(element, notation, maxSize);
301+
element.remove();
302+
}
303+
304+
function test(element, notation, maxSize) {
255305
layoutBounds = element[0].getBoundingClientRect();
256306
headerBounds = $header.getBoundingClientRect();
257307

@@ -267,7 +317,6 @@ describe('Directive: uiLayout', function () {
267317
expect(parseFloat($footer.style.top)).toEqual(maxSize + defaultDividerSize);
268318
}
269319

270-
element.remove();
271320
}
272321

273322
it('should support percent type', function () {

0 commit comments

Comments
 (0)