annotate gis_gui/blocks/tablestructure.js @ 252:efd2469d1722

geometry-column of tables will be displayed as string
author fknauft
date Tue, 20 Sep 2011 11:19:35 +0200
parents c84536a4993a
children 3a10287447b1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
63
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
1
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
2 guiBlocks.prototype.addTableStructureBlock = function(url, baseId, tablename, fields, uploadForm) {
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
3
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
4 function getHtmlSelectFromList(optionlist, selected, attrs) {
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
5 var html = "<select " + attrs + ">";
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
6 for (var i = 0; i < optionlist.length; i++) {
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
7 var txt = optionlist[i];
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
8 if (txt == selected) {
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
9 html += '<option selected="true">' + txt + '</option>';
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
10 } else {
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
11 html += '<option>' + txt + '</option>';
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
12 }
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
13 }
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
14 html += "</select>";
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
15 return html;
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
16 }
82
c84536a4993a fix bug in tablestructure.js
casties
parents: 63
diff changeset
17 var block = this.addBlock(url, baseId, null, function() {
63
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
18 // function after add block finished
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
19 var id = block.id;
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
20 var tbl = $(block.element).find(".datatable");
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
21 $(block.element).find(".msg.create_table_upload").show();
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
22 console.debug("in tablestructureblock after block load!");
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
23 console.debug("this=", this);
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
24 console.debug("block=",block);
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
25 console.debug(tbl);
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
26 var colheads = [];
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
27 var row = [];
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
28 for (var i = 0; i < fields.length; i++) {
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
29 colheads.push({'sTitle': fields[i].name});
252
efd2469d1722 geometry-column of tables will be displayed as string
fknauft
parents: 82
diff changeset
30 row.push(getHtmlSelectFromList(['text','number','gis_id','coord_lat','coord_lon','the_geom','id'],fields[i].type,'class="type_'+fields[i].name+'"'));
63
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
31 }
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
32 // Add DataTables functionality
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
33 $(tbl).dataTable({
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
34 'aoColumns': colheads,
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
35 'aaData': [row],
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
36 'bPaginate': false,
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
37 "bFilter": false,
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
38 "bSort": false,
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
39 "bInfo": false
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
40 });
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
41 // connect create button
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
42 $(block.element).find(".create_table_button").click(function() {
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
43 console.debug("create table button click form=",uploadForm);
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
44 // read table form
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
45 $(tbl).find("select").each(function(i,el) {
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
46 // we assume form and array have same ordering
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
47 fields[i].type = $(this).val();
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
48 });
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
49 console.debug("table struct=",fields);
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
50 // change upload file form
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
51 $(uploadForm).unbind("submit");
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
52 $(uploadForm).iframePostForm({
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
53 post: blocks.uploadTableSubmitFn(null,fields),
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
54 complete: blocks.uploadTableCompleteFn()
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
55 });
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
56 // hide structure block
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
57 $(block.element).hide();
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
58 $(uploadForm).submit();
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
59 });
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
60 $(block.element).find(".dont_create_table_button").click(function() {
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
61 console.debug("dont create table button click");
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
62 $(block.element).hide();
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
63 });
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
64 // show block
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
65 $(block.element).fadeIn();
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
66 });
7f008e782563 add gui files to product via FileSystemSite
casties
parents:
diff changeset
67 };