├── jquery.fulltable.eot
├── jquery.fulltable.ttf
├── jquery.fulltable.woff
├── jquery.fulltable.woff2
├── resources
├── jquery.fulltable.ttf
├── save.svg
├── edit.svg
├── remove.svg
├── add.svg
├── discard.svg
├── down_arrow.svg
├── left_arrow.svg
├── right_arrow.svg
├── up_arrow.svg
└── jquery.fulltable.sfd
├── LICENSE
├── README.md
├── jquery.fulltable.svg
├── jquery.fulltable.css
├── jquery.fulltable.html
└── jquery.fulltable.js
/jquery.fulltable.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joseluisballesterosdelval/jquery-fulltable/HEAD/jquery.fulltable.eot
--------------------------------------------------------------------------------
/jquery.fulltable.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joseluisballesterosdelval/jquery-fulltable/HEAD/jquery.fulltable.ttf
--------------------------------------------------------------------------------
/jquery.fulltable.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joseluisballesterosdelval/jquery-fulltable/HEAD/jquery.fulltable.woff
--------------------------------------------------------------------------------
/jquery.fulltable.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joseluisballesterosdelval/jquery-fulltable/HEAD/jquery.fulltable.woff2
--------------------------------------------------------------------------------
/resources/jquery.fulltable.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joseluisballesterosdelval/jquery-fulltable/HEAD/resources/jquery.fulltable.ttf
--------------------------------------------------------------------------------
/resources/save.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
42 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 joseluisballesterosdelval
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/resources/edit.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
44 |
--------------------------------------------------------------------------------
/resources/remove.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
49 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # jquery-fulltable
2 |
3 | This plugin defines a function of JQuery API called FullTable, which enables both initializate and operate any table, rendering, in addition, all the DOMs needed to be controlled by user.
4 |
5 | ## Installation
6 |
7 | This requires jQuery 1.7.2+. Really, it has not been tested yet for older versions. Once the javascript code and stylesheet has been included in the page, and so as to initializate any table as FullTable, and supposing that this table can be queried by "#fulltable-test" selector, it is only needed to invoke:
8 |
9 | $("#fulltable-test").FullTable();
10 |
11 | It should be noted that all class names and data keys used by this plugin starts by "fulltable-", so is highly recommended to avoid this kind of names in the environment where the plugin is running.
12 |
13 | :warning: **Pending of completion**
14 |
15 | ## How to Contribute
16 |
17 | Contributors are welcome! And we need your contributions to keep the project moving forward. You can [report bugs](https://github.com/joseluisballesterosdelval/jquery-fulltable/issues), improve the documentation, or [contribute code](https://github.com/joseluisballesterosdelval/jquery-fulltable/pulls).
18 |
19 | :warning: **Found an issue?** File it on [issue tracker](https://github.com/joseluisballesterosdelval/jquery-fulltable/issues).
20 |
21 | **Have a solution?** Send a [Pull Request](https://github.com/joseluisballesterosdelval/jquery-fulltable/pulls).
22 |
23 | **And don't forget to test and document your code.**
24 |
25 |
26 |
--------------------------------------------------------------------------------
/resources/add.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
47 |
--------------------------------------------------------------------------------
/resources/discard.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
53 |
--------------------------------------------------------------------------------
/resources/down_arrow.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
76 |
--------------------------------------------------------------------------------
/resources/left_arrow.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
76 |
--------------------------------------------------------------------------------
/resources/right_arrow.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
76 |
--------------------------------------------------------------------------------
/resources/up_arrow.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
76 |
--------------------------------------------------------------------------------
/jquery.fulltable.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
36 |
--------------------------------------------------------------------------------
/jquery.fulltable.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'jquery.fulltable';
3 | src: url('jquery.fulltable.eot');
4 | src: url('jquery.fulltable.eot?#iefix') format('embedded-opentype'),
5 | url('jquery.fulltable.woff2') format('woff2'),
6 | url('jquery.fulltable.woff') format('woff'),
7 | url('jquery.fulltable.ttf') format('truetype'),
8 | url('jquery.fulltable.svg#jquery.fulltable') format('svg');
9 | font-weight: normal;
10 | font-style: normal;
11 | }
12 | table.fulltable thead th {
13 | vertical-align: top;
14 | }
15 | table.fulltable span.fulltable-filter {
16 | position: relative;
17 | display: inline-block;
18 | overflow: hidden;
19 | box-sizing: border-box;
20 | padding: 0;
21 | }
22 | table.fulltable input, table.fulltable select {
23 | position:relative;
24 |
25 | width:100%!important;
26 |
27 | font-family: tahoma, arial, helvetica;
28 | font-size: 9pt;
29 |
30 | clear: both;
31 | float: left;
32 | margin: 6pt 0 !important;
33 | }
34 | table.fulltable input.checkbox {
35 | width: 13px!important;
36 | height: 13px!important;
37 | }
38 | table.fulltable th.fulltable-selection-control {
39 | width: 30px;
40 | }
41 | /*table.fulltable tr.fulltable-editing td.fulltable-selection-control input.checkbox {
42 | display:none;
43 | }*/
44 | table.fulltable th.fulltable-selection-control, table.fulltable td.fulltable-selection-control {
45 | padding: 0 1em;
46 | width: 30px;
47 | }
48 | table.fulltable.fulltable-editable th.fulltable-edition-control {
49 | width: 70px;
50 | }
51 | table.fulltable.fulltable-editable th.fulltable-edition-control, table.fulltable.fulltable-editable td.fulltable-edition-control {
52 | padding: 0 1em;
53 | }
54 | table.fulltable.fulltable-editable input.invalid, table.fulltable.fulltable-editable select.invalid {
55 | border: solid 1px #FF3333;
56 | background-color:#FFEEEE;
57 | }
58 | table.fulltable thead th a.fulltable-sort {
59 | font-family: 'jquery.fulltable';
60 | font-size: 9px;
61 | position: relative;
62 | left: 6px;
63 | top: 0px;
64 | display: inline-block;
65 | width: 9px;
66 | height: 9px;
67 | cursor: pointer;
68 | }
69 | table.fulltable thead th.fulltable-asc a.fulltable-sort-desc {
70 | display:none!important;
71 | }
72 | table.fulltable thead th.fulltable-desc a.fulltable-sort-asc {
73 | display:none!important;
74 | }
75 | table.fulltable.fulltable-editable td.fulltable-edition-control {
76 | white-space:nowrap;
77 | }
78 | table.fulltable.fulltable-editable td.fulltable-edition-control a {
79 | font-family:'jquery.fulltable';
80 | font-size:16px;
81 | position:relative;
82 | display: inline-block;
83 | width:16px;
84 | height:16px;
85 | top:1px;
86 | line-height:16px;
87 | margin:0.5em;
88 | cursor:pointer;
89 | text-align:center;
90 | }
91 | table.fulltable.fulltable-editable td.fulltable-edition-control a.fulltable-create {
92 | display:none;
93 | }
94 | table.fulltable.fulltable-editable tr.fulltable-creating td.fulltable-edition-control a.fulltable-create {
95 | display:inline-block!important;
96 | }
97 | table.fulltable.fulltable-editable tr.fulltable-creating td.fulltable-edition-control a.fulltable-save {
98 | display:none!important;
99 | }
100 | table.fulltable.fulltable-editable tr.fulltable-editing td.fulltable-edition-control a.fulltable-edit, table.fulltable.fulltable-editable tr.fulltable-editing td.fulltable-edition-control a.fulltable-remove {
101 | display:none;
102 | }
103 | table.fulltable.fulltable-editable tr td.fulltable-edition-control a.fulltable-save, table.fulltable.fulltable-editable tr td.fulltable-edition-control a.fulltable-discard {
104 | display:none;
105 | }
106 | table.fulltable.fulltable-editable tr.fulltable-editing td.fulltable-edition-control a.fulltable-save, table.fulltable.fulltable-editable tr.fulltable-editing td.fulltable-edition-control a.fulltable-discard {
107 | display:inline-block;
108 | }
--------------------------------------------------------------------------------
/jquery.fulltable.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | jQuery FullTable Plugin Demonstration
4 |
5 |
6 |
7 |
8 |
49 |
50 |
139 |
140 |
141 | + Add row
142 |
143 |
144 |
145 | | First name |
146 | Last name |
147 | Gender |
148 | Age |
149 | Height |
150 | Description |
151 |
152 |
153 |
154 | | John | Smith | xy | 23 | 1.72 | Famous explorer |
155 | | Peter | Pan | xy | 10 | 1.60 | Flyer boy who does not grow |
156 | | Mary | Stevenson | xx | 35 | 1.69 | Unknown woman |
157 |
158 |
159 | > Get value
160 |
161 |
--------------------------------------------------------------------------------
/resources/jquery.fulltable.sfd:
--------------------------------------------------------------------------------
1 | SplineFontDB: 3.0
2 | FontName: Untitled1
3 | FullName: Untitled1
4 | FamilyName: Untitled1
5 | Weight: Regular
6 | Copyright: Copyright (c) 2017, José Luis Ballesteros del Val,,,
7 | UComments: "2017-9-19: Created with FontForge (http://fontforge.org)"
8 | Version: 001.000
9 | ItalicAngle: 0
10 | UnderlinePosition: -100
11 | UnderlineWidth: 50
12 | Ascent: 800
13 | Descent: 200
14 | InvalidEm: 0
15 | LayerCount: 2
16 | Layer: 0 0 "Atr+AOEA-s" 1
17 | Layer: 1 0 "Fore" 0
18 | XUID: [1021 853 1694048007 10364579]
19 | StyleMap: 0x0000
20 | FSType: 0
21 | OS2Version: 0
22 | OS2_WeightWidthSlopeOnly: 0
23 | OS2_UseTypoMetrics: 1
24 | CreationTime: 1505799132
25 | ModificationTime: 1507531202
26 | OS2TypoAscent: 0
27 | OS2TypoAOffset: 1
28 | OS2TypoDescent: 0
29 | OS2TypoDOffset: 1
30 | OS2TypoLinegap: 90
31 | OS2WinAscent: 0
32 | OS2WinAOffset: 1
33 | OS2WinDescent: 0
34 | OS2WinDOffset: 1
35 | HheadAscent: 0
36 | HheadAOffset: 1
37 | HheadDescent: 0
38 | HheadDOffset: 1
39 | DEI: 91125
40 | Encoding: ISO8859-1
41 | UnicodeInterp: none
42 | NameList: AGL For New Fonts
43 | DisplaySize: -48
44 | AntiAlias: 1
45 | FitToEm: 0
46 | WinInfo: 0 26 10
47 | BeginChars: 256 9
48 |
49 | StartChar: A
50 | Encoding: 65 65 0
51 | Width: 1000
52 | VWidth: 0
53 | LayerCount: 2
54 | Fore
55 | SplineSet
56 | 1000 -35.0771484375 m 5
57 | 500 -35.1318359375 l 5
58 | 0 -35.185546875 l 5
59 | 249.952148438 397.853515625 l 5
60 | 499.905273438 830.893554688 l 5
61 | 749.952148438 397.908203125 l 5
62 | 1000 -35.0771484375 l 5
63 | EndSplineSet
64 | EndChar
65 |
66 | StartChar: B
67 | Encoding: 66 66 1
68 | Width: 1000
69 | VWidth: 0
70 | Flags: W
71 | LayerCount: 2
72 | Fore
73 | SplineSet
74 | 67.068359375 -102.146484375 m 5
75 | 67.013671875 397.853515625 l 5
76 | 66.9609375 897.853515625 l 5
77 | 500 647.90234375 l 5
78 | 933.0390625 397.94921875 l 5
79 | 500.0546875 147.90234375 l 5
80 | 67.068359375 -102.146484375 l 5
81 | EndSplineSet
82 | EndChar
83 |
84 | StartChar: C
85 | Encoding: 67 67 2
86 | Width: 1000
87 | VWidth: 0
88 | Flags: W
89 | LayerCount: 2
90 | Fore
91 | SplineSet
92 | 0 830.78515625 m 5
93 | 500 830.83984375 l 5
94 | 1000 830.893554688 l 5
95 | 750.047851562 397.854492188 l 5
96 | 500.094726562 -35.185546875 l 5
97 | 250.047851562 397.799804688 l 5
98 | 0 830.78515625 l 5
99 | EndSplineSet
100 | EndChar
101 |
102 | StartChar: D
103 | Encoding: 68 68 3
104 | Width: 1000
105 | VWidth: 0
106 | Flags: W
107 | LayerCount: 2
108 | Fore
109 | SplineSet
110 | 932.931640625 897.853515625 m 5
111 | 932.986328125 397.853515625 l 5
112 | 933.0390625 -102.146484375 l 5
113 | 500 147.806640625 l 5
114 | 66.9609375 397.759765625 l 5
115 | 499.9453125 647.806640625 l 5
116 | 932.931640625 897.853515625 l 5
117 | EndSplineSet
118 | EndChar
119 |
120 | StartChar: E
121 | Encoding: 69 69 4
122 | Width: 1000
123 | VWidth: 0
124 | LayerCount: 2
125 | Fore
126 | SplineSet
127 | 621.825195312 685.489257812 m 5
128 | 825.247070312 482.069335938 l 5
129 | 310.328125 -32.849609375 l 5
130 | 107.021484375 170.571289062 l 5
131 | 621.825195312 685.489257812 l 5
132 | 979.60546875 734.549804688 m 6
133 | 1006.79785156 707.357421875 1006.79785156 663.50390625 979.60546875 636.309570312 c 6
134 | 878.2421875 534.946289062 l 5
135 | 674.819335938 738.369140625 l 5
136 | 761.71875 825.268554688 l 6
137 | 796.897460938 860.328125 853.827148438 860.328125 888.88671875 825.268554688 c 6
138 | 979.60546875 734.549804688 l 6
139 | 0.56640625 -115.353515625 m 6
140 | 51.9423828125 115.490234375 l 5
141 | 255.25 -87.9306640625 l 5
142 | 28.5693359375 -142.891601562 l 6
143 | 11.9072265625 -146.943359375 -3.1357421875 -132.014648438 0.56640625 -115.353515625 c 6
144 | EndSplineSet
145 | EndChar
146 |
147 | StartChar: F
148 | Encoding: 70 70 5
149 | Width: 1000
150 | VWidth: 0
151 | LayerCount: 2
152 | Fore
153 | SplineSet
154 | 632.5625 593 m 5
155 | 720.9375 504.5625 l 5
156 | 588.375976562 372 l 5
157 | 720.9375 239.4375 l 5
158 | 632.5625 151.0625 l 5
159 | 500 283.624023438 l 5
160 | 367.4375 151.0625 l 5
161 | 279.063476562 239.4375 l 5
162 | 411.625976562 372 l 5
163 | 279 504.5625 l 5
164 | 367.4375 593 l 5
165 | 500 460.374023438 l 5
166 | 632.5625 593 l 5
167 | 853.5625 725.5625 m 4
168 | 1048.8125 530.3125 1048.8125 213.686523438 853.5625 18.4375 c 4
169 | 658.3125 -176.8125 341.6875 -176.8125 146.4375 18.4375 c 4
170 | -48.8125 213.6875 -48.8125 530.3125 146.4375 725.5625 c 4
171 | 341.6875 920.8125 658.3125 920.8125 853.5625 725.5625 c 4
172 | 765.1875 106.8125 m 4
173 | 911.624023438 253.3125 911.624023438 490.6875 765.1875 637.124023438 c 4
174 | 618.75 783.5625 381.313476562 783.5625 234.875976562 637.124023438 c 4
175 | 88.4375 490.6875 88.4375 253.25 234.875976562 106.8125 c 4
176 | 381.3125 -39.6240234375 618.75 -39.6240234375 765.1875 106.8125 c 4
177 | EndSplineSet
178 | EndChar
179 |
180 | StartChar: G
181 | Encoding: 71 71 6
182 | Width: 1000
183 | VWidth: 0
184 | HStem: -146 621.253<225.886 766.758>
185 | VStem: 0 225.886<475.253 835.183> 539.101 145.096<548.959 854> 766.758 233.242<475.253 641.575>
186 | LayerCount: 2
187 | Fore
188 | SplineSet
189 | 68.1201171875 -146 m 6
190 | 30.517578125 -146 0 -115.482421875 0 -77.8798828125 c 6
191 | 0 146.916015625 l 5
192 | 0 785.879882812 l 6
193 | 0 823.482421875 30.517578125 854 68.1201171875 854 c 6
194 | 225.885742188 854 l 5
195 | 225.885742188 475.252929688 l 5
196 | 766.7578125 475.252929688 l 5
197 | 766.7578125 854 l 5
198 | 767.030273438 854 l 5
199 | 970.02734375 651.002929688 l 6
200 | 989.237304688 631.928710938 1000 605.907226562 1000 578.795898438 c 6
201 | 1000 -77.8798828125 l 6
202 | 1000 -115.482421875 969.482421875 -146 931.879882812 -146 c 6
203 | 68.1201171875 -146 l 6
204 | 539.100585938 548.958984375 m 5
205 | 539.100585938 854 l 5
206 | 684.196289062 854 l 5
207 | 684.196289062 548.958984375 l 5
208 | 539.100585938 548.958984375 l 5
209 | EndSplineSet
210 | EndChar
211 |
212 | StartChar: H
213 | Encoding: 72 72 7
214 | Width: 837
215 | VWidth: 0
216 | HStem: -63.1943 147.91<320.356 541.906> 676.384 147.906<319.754 541.906>
217 | VStem: 727.343 147.906<271.044 490.059>
218 | LayerCount: 2
219 | Fore
220 | SplineSet
221 | 840.015625 552.7265625 m 0
222 | 863.504882812 498.026367188 875.250976562 440.654296875 875.249023438 380.551757812 c 0
223 | 875.249023438 320.470703125 863.510742188 263.067382812 840.012695312 208.369140625 c 0
224 | 816.514648438 153.669921875 784.931640625 106.4921875 745.255859375 66.8076171875 c 0
225 | 705.571289062 27.1396484375 658.399414062 -4.4580078125 603.694335938 -27.9482421875 c 0
226 | 548.99609375 -51.439453125 491.609375 -63.1943359375 431.514648438 -63.1943359375 c 0
227 | 365.262695312 -63.1943359375 302.27734375 -49.2236328125 242.571289062 -21.2998046875 c 0
228 | 182.865234375 6.619140625 132.024414062 46.0048828125 90.0322265625 96.8525390625 c 0
229 | 87.3388671875 100.704101562 86.08203125 105.032226562 86.2724609375 109.859375 c 0
230 | 86.466796875 114.666015625 88.1044921875 118.608398438 91.181640625 121.704101562 c 2
231 | 170.33984375 201.4453125 l 2
232 | 174.19140625 204.908203125 179.0078125 206.637695312 184.788085938 206.637695312 c 0
233 | 190.953125 205.86328125 195.383789062 203.548828125 198.078125 199.69921875 c 0
234 | 226.19921875 163.088867188 260.673828125 134.778320312 301.500976562 114.754882812 c 0
235 | 342.334960938 94.7314453125 385.670898438 84.7158203125 431.51171875 84.7158203125 c 0
236 | 471.567382812 84.7158203125 509.8046875 92.515625 546.20703125 108.112304688 c 0
237 | 582.602539062 123.709960938 614.091796875 144.805664062 640.674804688 171.385742188 c 0
238 | 667.254882812 197.96875 688.344726562 229.452148438 703.948242188 265.854492188 c 0
239 | 719.540039062 302.25390625 727.342773438 340.479492188 727.342773438 380.545898438 c 0
240 | 727.342773438 420.615234375 719.537109375 458.83984375 703.948242188 495.2421875 c 0
241 | 688.344726562 531.647460938 667.254882812 563.134765625 640.674804688 589.709960938 c 0
242 | 614.091796875 616.290039062 582.614257812 637.379882812 546.20703125 652.983398438 c 0
243 | 509.8046875 668.577148438 471.567382812 676.383789062 431.51171875 676.383789062 c 0
244 | 393.759765625 676.383789062 357.553710938 669.541015625 322.884765625 655.866210938 c 0
245 | 288.216796875 642.190429688 257.405273438 622.642578125 230.432617188 597.217773438 c 1
246 | 309.592773438 517.485351562 l 2
247 | 321.537109375 505.922851562 324.23046875 492.63671875 317.685546875 477.614257812 c 0
248 | 311.13671875 462.205078125 299.774414062 454.500976562 283.592773438 454.500976562 c 2
249 | 24.7373046875 454.500976562 l 2
250 | 14.7236328125 454.500976562 6.0556640625 458.162109375 -1.267578125 465.482421875 c 0
251 | -8.587890625 472.799804688 -12.2490234375 481.467773438 -12.2490234375 491.481445312 c 2
252 | -12.2490234375 750.336914062 l 2
253 | -12.2490234375 766.512695312 -4.5439453125 777.880859375 10.8662109375 784.4375 c 0
254 | 25.8955078125 790.98046875 39.1787109375 788.287109375 50.7373046875 776.344726562 c 2
255 | 125.859375 701.798828125 l 1
256 | 167.078125 740.708007812 214.168945312 770.84765625 267.129882812 792.2265625 c 0
257 | 320.102539062 813.610351562 374.89453125 824.290039062 431.514648438 824.290039062 c 0
258 | 491.609375 824.290039062 548.99609375 812.547851562 603.694335938 789.045898438 c 0
259 | 658.399414062 765.543945312 705.584960938 733.9609375 745.263671875 694.288085938 c 0
260 | 784.93359375 654.618164062 816.522460938 607.430664062 840.015625 552.7265625 c 0
261 | EndSplineSet
262 | EndChar
263 |
264 | StartChar: I
265 | Encoding: 73 73 8
266 | Width: 1000
267 | VWidth: 0
268 | HStem: -105 21G<422.343 577.646> 258.64 272.718<20.5084 363.631 636.359 979.49> 875 20G<422.347 577.645>
269 | VStem: 363.631 272.729<-84.5081 258.64 531.36 874.493>
270 | LayerCount: 2
271 | Fore
272 | SplineSet
273 | 980.115234375 511.474609375 m 4
274 | 993.37890625 498.22265625 999.994140625 482.125976562 999.998046875 463.1796875 c 6
275 | 999.998046875 326.8125 l 6
276 | 999.998046875 307.862304688 993.369140625 291.772460938 980.11328125 278.525390625 c 4
277 | 966.859375 265.26171875 950.76171875 258.639648438 931.810546875 258.639648438 c 6
278 | 636.359375 258.639648438 l 5
279 | 636.359375 -36.830078125 l 6
280 | 636.359375 -55.7626953125 629.736328125 -71.8701171875 616.47265625 -85.1318359375 c 4
281 | 603.212890625 -98.3779296875 587.119140625 -105 568.171875 -105 c 6
282 | 431.810546875 -105 l 6
283 | 412.875 -105 396.775390625 -98.3779296875 383.517578125 -85.1318359375 c 4
284 | 370.2578125 -71.8779296875 363.630859375 -55.7626953125 363.630859375 -36.830078125 c 6
285 | 363.630859375 258.639648438 l 5
286 | 68.17578125 258.639648438 l 6
287 | 49.244140625 258.639648438 33.140625 265.26171875 19.8828125 278.525390625 c 4
288 | 6.623046875 291.772460938 0.001953125 307.862304688 0.001953125 326.8125 c 6
289 | 0.001953125 463.1796875 l 6
290 | 0.001953125 482.125976562 6.625 498.212890625 19.884765625 511.471679688 c 4
291 | 33.14453125 524.73046875 49.24609375 531.357421875 68.1796875 531.357421875 c 6
292 | 363.6328125 531.357421875 l 5
293 | 363.6328125 826.822265625 l 6
294 | 363.6328125 845.755859375 370.259765625 861.857421875 383.51953125 875.116210938 c 4
295 | 396.779296875 888.375976562 412.87890625 895 431.814453125 895 c 6
296 | 568.1640625 895 l 6
297 | 587.125 895 603.21484375 888.368164062 616.470703125 875.119140625 c 4
298 | 629.724609375 861.860351562 636.357421875 845.7578125 636.357421875 826.825195312 c 6
299 | 636.357421875 531.360351562 l 5
300 | 931.814453125 531.360351562 l 6
301 | 950.74609375 531.360351562 966.853515625 524.733398438 980.115234375 511.474609375 c 4
302 | EndSplineSet
303 | EndChar
304 | EndChars
305 | EndSplineFont
306 |
--------------------------------------------------------------------------------
/jquery.fulltable.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @description Inline editor for HTML tables compatible with Bootstrap
3 | * @version 1.0.0
4 | * @author José Luis Ballesteros del Val
5 | */
6 |
7 | if (typeof jQuery === 'undefined') {
8 | throw new Error('FullTable requires jQuery library.');
9 | }
10 |
11 | if (typeof Array.isArray != "function") {
12 | Array.isArray = function(obj) {
13 | if (typeof obj != "object") return false;
14 | if (typeof obj.length == "undefined") return false;
15 | for (var i in obj) {
16 | if (!obj.hasOwnProperty(i)) continue;
17 | if (isNaN(i)) return false;
18 | }
19 | return true;
20 | };
21 | }
22 |
23 | (function($) {
24 | 'use strict';
25 |
26 | $.fn.FullTable = function() {
27 |
28 | if (!this.is('table')) {
29 | return this;
30 | }
31 |
32 | var table = $(this);
33 |
34 | table.getKeys = function() {
35 | if ($(table).data('fulltable-keys') == null) $(table).data('fulltable-keys', []);
36 | return $(table).data('fulltable-keys');
37 | };
38 | table.setKeys = function(val) {
39 | $(table).data('fulltable-keys', val);
40 | };
41 |
42 | table.getRows = function() {
43 | if ($(table).data('fulltable-rows') == null) $(table).data('fulltable-rows', []);
44 | return $(table).data('fulltable-rows');
45 | };
46 | table.setRows = function(val) {
47 | $(table).data('fulltable-rows', val);
48 | };
49 |
50 | table.getSorting = function() {
51 | if ($(table).data('fulltable-sorting') == null) $(table).data('fulltable-sorting', []);
52 | return $(table).data('fulltable-sorting');
53 | };
54 | table.setSorting = function(val) {
55 | $(table).data('fulltable-sorting', val);
56 | };
57 |
58 | table.getEvents = function() {
59 | if ($(table).data('fulltable-events') == null) $(table).data('fulltable-events', {});
60 | return $(table).data('fulltable-events');
61 | };
62 | table.setEvents = function(val) {
63 | $(table).data('fulltable-events', val);
64 | };
65 |
66 | var types = {
67 | "integer":["integer", "number"],
68 | "decimal":["decimal", "float", "double"],
69 | "string":["string", "literal"]
70 | };
71 |
72 | var on = function() {
73 | return methods['on'].apply(this, arguments);
74 | };
75 |
76 | var clean = function() {
77 | return methods['clean'].apply(this, arguments);
78 | };
79 |
80 | var changeSettings = function() {
81 | return methods['changeSettings'].apply(this, arguments);
82 | };
83 |
84 | var drawHeader = function() {
85 | return methods['drawHeader'].apply(this, arguments);
86 | };
87 |
88 | var drawBody = function() {
89 | return methods['drawBody'].apply(this, arguments);
90 | };
91 |
92 | var draw = function() {
93 | return methods['draw'].apply(this, arguments);
94 | };
95 |
96 | var filter = function() {
97 | return methods['filter'].apply(this, arguments);
98 | };
99 |
100 | var order = function() {
101 | return methods['order'].apply(this, arguments);
102 | };
103 |
104 | var validateRow = function() {
105 | return methods['validateRow'].apply(this, arguments);
106 | };
107 |
108 | var addRow = function() {
109 | return methods['addRow'].apply(this, arguments);
110 | };
111 |
112 | var editRow = function() {
113 | return methods['editRow'].apply(this, arguments);
114 | };
115 |
116 | var removeRow = function() {
117 | return methods['removeRow'].apply(this, arguments);
118 | };
119 |
120 | var saveRow = function() {
121 | return methods['saveRow'].apply(this, arguments);
122 | };
123 |
124 | var discardRow = function() {
125 | return methods['discardRow'].apply(this, arguments);
126 | };
127 |
128 | var checkRow = function() {
129 | return methods['checkRow'].apply(this, arguments);
130 | };
131 |
132 | var addSortItem = function(fieldName, fieldSort) {
133 | var removing_indexes = [];
134 | for (var index in table.getSorting()) {
135 | if (!table.getSorting().hasOwnProperty(index)) continue;
136 | var sortingItem = table.getSorting()[index];
137 | if (sortingItem.name == fieldName) {
138 | removing_indexes.push(index);
139 | }
140 | }
141 | removing_indexes = removing_indexes.reverse();
142 | for (var index in removing_indexes) {
143 | if (!removing_indexes.hasOwnProperty(index)) continue;
144 | index = removing_indexes[index];
145 | table.getSorting().splice(index, 1);
146 | }
147 | table.getSorting().push({
148 | name: fieldName,
149 | sort: fieldSort
150 | });
151 | }
152 |
153 | var getHeaderFromDom = function() {
154 | // Init headers and field names.
155 | $(table).find("thead th").each(function(th_index, th) {
156 | var fieldName = $(th).attr("fulltable-field-name");
157 | if (fieldName == null) {
158 | fieldName = (new Date()).getTime()+""+(Math.floor(Math.random()*1e8));
159 | $(th).attr("fulltable-field-name", fieldName);
160 | }
161 | table.getKeys()[th_index] = fieldName;
162 | });
163 | };
164 |
165 | var drawRow = function(data, tr) {
166 | if (typeof data != "object") data = null;
167 | if (tr == null) {
168 | tr = $("
");
169 | for (var key in table.getKeys()) {
170 | if (!table.getKeys().hasOwnProperty(key)) continue;
171 | key = table.getKeys()[key];
172 | var td = $(" | ");
173 | $(td).attr("fulltable-field-name", key);
174 | $(tr).append($(td));
175 | }
176 | }
177 | var row = {};
178 | $(tr).children("td").each(function(td_index, td) {
179 | var key = table.getKeys()[td_index];
180 | if (key != null) $(td).attr("fulltable-field-name", key);
181 | var value;
182 | if (data == null) {
183 | value = $(td).html();
184 | } else {
185 | value = data[key];
186 | }
187 | var text = value;
188 | var fieldData = options.fields[key];
189 | if (fieldData == null) fieldData = {};
190 | // TODO: Here must be validation of input type: select, checkbox, if (fieldData.options == "boolean")
191 | if (fieldData.options != null) {
192 | text = "";
193 | var found = false;
194 | for (var option in fieldData.options) {
195 | if (!fieldData.options.hasOwnProperty(option)) continue;
196 | option = fieldData.options[option];
197 | if (option.value == value) {
198 | text = option.title;
199 | found = true;
200 | break;
201 | }
202 | }
203 | if (!found) value = null;
204 | }
205 | row[key] = value;
206 | $(td).html(text);
207 | });
208 | row["__dom"] = $(tr);
209 | row["__filtered"] = false;
210 | addSelectionControl(row, "body");
211 | addEditionControl(row, "body");
212 | return row;
213 | };
214 |
215 | var getBodyFromDom = function() {
216 | $(table).find("tbody tr").each(function(tr_index, tr) {
217 | table.getRows()[tr_index] = drawRow(null, tr);
218 | });
219 | };
220 |
221 | var addEditionControl = function(row, type) {
222 | if (!options.editable) return;
223 | if (typeof row != "object") return;
224 | var tr = row["__dom"];
225 | if (!$(tr).is("tr")) return;
226 | if ($(tr).find(".fulltable-edition-control").length > 0) return;
227 | var edition_control = null;
228 | if ($(tr).parent().is("thead") || type == "head") {
229 | edition_control = $("", {
230 | 'class':"fulltable-edition-control"
231 | });
232 | }
233 | if ($(tr).parent().is("tbody") || type == "body") {
234 | edition_control = $(" | | ", {
235 | 'class':"fulltable-edition-control"
236 | });
237 | edition_control.append($("", {
238 | 'class':"fulltable-edit",
239 | 'text':"E"
240 | }).click(function() {
241 | editRow(row);
242 | }));
243 | edition_control.append($("", {
244 | 'class':"fulltable-remove",
245 | 'text':"F"
246 | }).click(function() {
247 | removeRow(row);
248 | }));
249 | edition_control.append($("", {
250 | 'class':"fulltable-save",
251 | 'text':"G"
252 | }).click(function() {
253 | saveRow(row);
254 | }));
255 | edition_control.append($("", {
256 | 'class':"fulltable-create",
257 | 'text':"I"
258 | }).click(function() {
259 | saveRow(row);
260 | }));
261 | edition_control.append($("", {
262 | 'class':"fulltable-discard",
263 | 'text':"H"
264 | }).click(function() {
265 | discardRow(row);
266 | }));
267 | }
268 | $(tr).append($(edition_control));
269 | };
270 |
271 | var addSelectionControl = function(row, type) {
272 | if (!options.selectable) return;
273 | if (typeof row != "object") return;
274 | var tr = row["__dom"];
275 | if (!$(tr).is("tr")) return;
276 | if ($(tr).find(".fulltable-selection-control").length > 0) return;
277 | var selection_control = null;
278 | if ($(tr).parent().is("thead") || type == "head") {
279 | selection_control = $("", {
280 | 'class':"fulltable-selection-control"
281 | });
282 | }
283 | if ($(tr).parent().is("tbody") || type == "body") {
284 | selection_control = $(" | | ", {
285 | 'class':"fulltable-selection-control"
286 | });
287 | selection_control.append($("", {
288 | 'type':"checkbox",
289 | 'class':"checkbox",
290 | 'value':row["__selected"]
291 | }).change(function() {
292 | checkRow(row);
293 | }));
294 | }
295 | $(tr).prepend($(selection_control));
296 | };
297 |
298 | var showRowForm = function(row) {
299 | for (var fieldName in row) {
300 | if (!row.hasOwnProperty(fieldName)) continue;
301 | if (fieldName.indexOf("__") == 0) continue;
302 | var value = row[fieldName];
303 | if (value == "") value = null;
304 | var td = $(row["__dom"]).find("td[fulltable-field-name='" + fieldName + "']");
305 | $(td).empty();
306 | var fieldData = options.fields[fieldName];
307 | if (fieldData == null) fieldData = {};
308 | var input;
309 | // TODO: Here must be validation of input type: select, checkbox, if (fieldData.options == "boolean")
310 | if (fieldData.options != null) {
311 | input = $("