Mercurial > repos > immport-devteam > cs_overview
comparison js/Editor-1.5.6/js/editor.bootstrap.js @ 2:a64ece32a01a draft default tip
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/cs_overview commit a46097db0b6056e1125237393eb6974cfd51eb41"
author | azomics |
---|---|
date | Tue, 28 Jul 2020 08:32:36 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
1:bca68066a957 | 2:a64ece32a01a |
---|---|
1 /*! Bootstrap integration for DataTables' Editor | |
2 * ©2015 SpryMedia Ltd - datatables.net/license | |
3 */ | |
4 | |
5 (function( factory ){ | |
6 if ( typeof define === 'function' && define.amd ) { | |
7 // AMD | |
8 define( ['jquery', 'datatables.net-bs', 'datatables.net-editor'], function ( $ ) { | |
9 return factory( $, window, document ); | |
10 } ); | |
11 } | |
12 else if ( typeof exports === 'object' ) { | |
13 // CommonJS | |
14 module.exports = function (root, $) { | |
15 if ( ! root ) { | |
16 root = window; | |
17 } | |
18 | |
19 if ( ! $ || ! $.fn.dataTable ) { | |
20 $ = require('datatables.net-bs')(root, $).$; | |
21 } | |
22 | |
23 if ( ! $.fn.dataTable.Editor ) { | |
24 require('datatables.net-editor')(root, $); | |
25 } | |
26 | |
27 return factory( $, root, root.document ); | |
28 }; | |
29 } | |
30 else { | |
31 // Browser | |
32 factory( jQuery, window, document ); | |
33 } | |
34 }(function( $, window, document, undefined ) { | |
35 'use strict'; | |
36 var DataTable = $.fn.dataTable; | |
37 | |
38 | |
39 /* | |
40 * Set the default display controller to be our bootstrap control | |
41 */ | |
42 DataTable.Editor.defaults.display = "bootstrap"; | |
43 | |
44 | |
45 /* | |
46 * Alter the buttons that Editor adds to TableTools so they are suitable for bootstrap | |
47 */ | |
48 var i18nDefaults = DataTable.Editor.defaults.i18n; | |
49 i18nDefaults.create.title = "<h3>"+i18nDefaults.create.title+"</h3>"; | |
50 i18nDefaults.edit.title = "<h3>"+i18nDefaults.edit.title+"</h3>"; | |
51 i18nDefaults.remove.title = "<h3>"+i18nDefaults.remove.title+"</h3>"; | |
52 | |
53 var tt = DataTable.TableTools; | |
54 if ( tt ) { | |
55 tt.BUTTONS.editor_create.formButtons[0].className = "btn btn-primary"; | |
56 tt.BUTTONS.editor_edit.formButtons[0].className = "btn btn-primary"; | |
57 tt.BUTTONS.editor_remove.formButtons[0].className = "btn btn-danger"; | |
58 } | |
59 | |
60 | |
61 /* | |
62 * Change the default classes from Editor to be classes for Bootstrap | |
63 */ | |
64 $.extend( true, $.fn.dataTable.Editor.classes, { | |
65 "header": { | |
66 "wrapper": "DTE_Header modal-header" | |
67 }, | |
68 "body": { | |
69 "wrapper": "DTE_Body modal-body" | |
70 }, | |
71 "footer": { | |
72 "wrapper": "DTE_Footer modal-footer" | |
73 }, | |
74 "form": { | |
75 "tag": "form-horizontal", | |
76 "button": "btn btn-default" | |
77 }, | |
78 "field": { | |
79 "wrapper": "DTE_Field", | |
80 "label": "col-lg-4 control-label", | |
81 "input": "col-lg-8 controls", | |
82 "error": "error has-error", | |
83 "msg-labelInfo": "help-block", | |
84 "msg-info": "help-block", | |
85 "msg-message": "help-block", | |
86 "msg-error": "help-block", | |
87 "multiValue": "well well-sm multi-value", | |
88 "multiInfo": "small", | |
89 "multiRestore": "well well-sm multi-restore" | |
90 } | |
91 } ); | |
92 | |
93 | |
94 /* | |
95 * Bootstrap display controller - this is effectively a proxy to the Bootstrap | |
96 * modal control. | |
97 */ | |
98 | |
99 var self; | |
100 | |
101 DataTable.Editor.display.bootstrap = $.extend( true, {}, DataTable.Editor.models.displayController, { | |
102 /* | |
103 * API methods | |
104 */ | |
105 "init": function ( dte ) { | |
106 // init can be called multiple times (one for each Editor instance), but | |
107 // we only support a single construct here (shared between all Editor | |
108 // instances) | |
109 if ( ! self._dom.content ) { | |
110 self._dom.content = $( | |
111 '<div class="modal fade">'+ | |
112 '<div class="modal-dialog">'+ | |
113 '<div class="modal-content"/>'+ | |
114 '</div>'+ | |
115 '</div>' | |
116 ); | |
117 | |
118 self._dom.close = $('<button class="close">×</div>'); | |
119 | |
120 self._dom.close.click( function () { | |
121 self._dte.close('icon'); | |
122 } ); | |
123 | |
124 $(document).on('click', 'div.modal', function (e) { | |
125 if ( $(e.target).hasClass('modal') && self._shown ) { | |
126 self._dte.background(); | |
127 } | |
128 } ); | |
129 | |
130 dte.on( 'open.dtebs', function ( e, type ) { | |
131 if ( type === 'inline' || type === 'bubble' ) { | |
132 $('div.DTE input[type=text], div.DTE select, div.DTE textarea').addClass( 'form-control' ); | |
133 } | |
134 } ); | |
135 } | |
136 | |
137 return self; | |
138 }, | |
139 | |
140 "open": function ( dte, append, callback ) { | |
141 if ( self._shown ) { | |
142 if ( callback ) { | |
143 callback(); | |
144 } | |
145 return; | |
146 } | |
147 | |
148 self._dte = dte; | |
149 self._shown = true; | |
150 | |
151 var content = self._dom.content.find('div.modal-content'); | |
152 content.children().detach(); | |
153 content.append( append ); | |
154 | |
155 $('div.modal-header', append).prepend( self._dom.close ); | |
156 | |
157 $(self._dom.content) | |
158 .one('shown.bs.modal', function () { | |
159 // Can only give elements focus when shown | |
160 if ( self._dte.s.setFocus ) { | |
161 self._dte.s.setFocus.focus(); | |
162 } | |
163 | |
164 if ( callback ) { | |
165 callback(); | |
166 } | |
167 }) | |
168 .one('hidden', function () { | |
169 self._shown = false; | |
170 }) | |
171 .appendTo( 'body' ) | |
172 .modal( { | |
173 backdrop: "static", | |
174 keyboard: false | |
175 } ); | |
176 | |
177 $('input:not([type=checkbox]):not([type=radio]), select, textarea', self._dom.content) | |
178 .addClass( 'form-control' ); | |
179 }, | |
180 | |
181 "close": function ( dte, callback ) { | |
182 if ( !self._shown ) { | |
183 if ( callback ) { | |
184 callback(); | |
185 } | |
186 return; | |
187 } | |
188 | |
189 $(self._dom.content) | |
190 .one( 'hidden.bs.modal', function () { | |
191 $(this).detach(); | |
192 } ) | |
193 .modal('hide'); | |
194 | |
195 self._dte = dte; | |
196 self._shown = false; | |
197 | |
198 if ( callback ) { | |
199 callback(); | |
200 } | |
201 }, | |
202 | |
203 node: function ( dte ) { | |
204 return self._dom.content[0]; | |
205 }, | |
206 | |
207 | |
208 /* | |
209 * Private properties | |
210 */ | |
211 "_shown": false, | |
212 "_dte": null, | |
213 "_dom": {} | |
214 } ); | |
215 | |
216 self = DataTable.Editor.display.bootstrap; | |
217 | |
218 | |
219 return DataTable.Editor; | |
220 })); |