-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtable2grid.js
More file actions
125 lines (81 loc) · 4.19 KB
/
table2grid.js
File metadata and controls
125 lines (81 loc) · 4.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
;(function($) {
$.table2grid = function(selector) {
var $tables = $(selector);
var aTables = [];
var iterator = 0;
var elResultIndex = 0;
var delimiter = true;
var classes = {
main : 'table2grid',
list : 'table2grid__list',
item : 'table2grid__item',
block : 'table2grid-block',
blockContent : 'table2grid-block__content'
};
$.each($tables, function(tableIndex, table) {
var aCrashParams = $(table).data('tableCrash').toString().split(',');
var uID = $(table).data('tableUid');
aTables[tableIndex] = {};
aTables[tableIndex].colsCount = $(table).find('tr:first-child td').length;
aTables[tableIndex].rowsInElement = aCrashParams[0];
aTables[tableIndex].elements = [];
iterator = 0;
$.each($(table).find('tr'), function(trIndex, trContent) {
iterator++;
delimiter = iterator % aTables[tableIndex].rowsInElement;
$.each($(trContent).find('td'), function(tdIndex, tdContent) {
//console.log(elResultIndex);
if (typeof aTables[tableIndex].elements[elResultIndex] === 'undefined') {
aTables[tableIndex].elements[elResultIndex] = $('<div class=' + classes.block + '></div>');
}
aTables[tableIndex].elements[elResultIndex].append($('<div class="' + classes.blockContent + '">' + $(tdContent).html() + '</div>'));
elResultIndex++;
if (delimiter && tdIndex == (aTables[tableIndex].colsCount - 1)) {
//console.info('end row');
elResultIndex = elResultIndex - aTables[tableIndex].colsCount;
}
});
if (!delimiter) {
//console.warn('row end');
elResultIndex = elResultIndex;
}
});
elResultIndex = 0;
var $crashTableGrid = $('<div class="' + classes.main + '"></div>');
var $crashTableGridList = $('<div class="' + classes.list + '"></div>');
var $crashTableGridItem = $('<div class="' + classes.item + '"></div>');
if (aCrashParams.length > 1) {
var elementsLenth = aTables[tableIndex].elements.length;
var horizontalCounter = 0;
$.each(aTables[tableIndex].elements, function(curIndex, curElement) {
if (horizontalCounter <= aCrashParams[1]) {
$(curElement).addClass(classes.block + '--' + horizontalCounter);
$crashTableGridItem.append($(curElement));
}
horizontalCounter++;
if (horizontalCounter == aCrashParams[1]) {
$crashTableGridList.append($crashTableGridItem);
$crashTableGridItem = $('<div class="' + classes.item + '"></div>');
horizontalCounter = 0;
}
});
$crashTableGrid
.addClass(classes.main + '--' + (aTables[tableIndex].colsCount / aCrashParams[1]) + ' ' + classes.main + '--horizontal');
} else {
$.each(aTables[tableIndex].elements, function(curIndex, curElement) {
$crashTableGridItem = $('<div class="' + classes.item + '"></div>');
$crashTableGridItem.append($(curElement));
$crashTableGridList.append($crashTableGridItem);
});
$crashTableGrid
.addClass(classes.main + '--' + aTables[tableIndex].colsCount + ' ' + classes.main + '--vertical');
}
$(table).addClass(classes.main + '--crashed');
$crashTableGrid
.addClass(uID ? classes.main + '--' + uID : '')
.append($crashTableGridList);
$(table).after($crashTableGrid);
});
}
$.table2grid('[data-table-crash]');
})(jQuery);