rbbt-rest 1.1.5 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/lib/rbbt/rest/common/cache.rb +33 -14
- data/lib/rbbt/rest/common/locate.rb +8 -6
- data/lib/rbbt/rest/common/misc.rb +4 -0
- data/lib/rbbt/rest/common/render.rb +14 -4
- data/lib/rbbt/rest/common/resources.rb +1 -1
- data/lib/rbbt/rest/common/table.rb +37 -7
- data/lib/rbbt/rest/entity.rb +5 -3
- data/lib/rbbt/rest/entity/favourites.rb +4 -1
- data/lib/rbbt/rest/entity/helpers.rb +12 -0
- data/lib/rbbt/rest/entity/rest.rb +6 -2
- data/lib/rbbt/rest/helpers.rb +7 -0
- data/lib/rbbt/rest/knowledge_base.rb +338 -0
- data/lib/rbbt/rest/knowledge_base/helpers.rb +57 -0
- data/lib/rbbt/rest/main.rb +16 -3
- data/share/views/compass/_rbbt.sass +11 -0
- data/share/views/compass/actions.sass +48 -24
- data/share/views/compass/app.sass +72 -50
- data/share/views/compass/colors.sass +3 -229
- data/share/views/compass/entity_card.sass +44 -108
- data/share/views/compass/favourites.sass +17 -72
- data/share/views/compass/finder.sass +30 -0
- data/share/views/compass/foundation.sass +79 -0
- data/share/views/compass/functions.sass +27 -0
- data/share/views/compass/help.sass +3 -0
- data/share/views/compass/layout.sass +132 -0
- data/share/views/compass/rbbt/form.sass +84 -0
- data/share/views/compass/rbbt/fragment.sass +7 -0
- data/share/views/compass/rbbt/menu.sass +189 -0
- data/share/views/compass/rbbt/reveal.sass +46 -0
- data/share/views/compass/rbbt/table.sass +169 -0
- data/share/views/compass/skeleton.sass +2 -0
- data/share/views/compass/skeleton/_dependencies.sass +151 -0
- data/share/views/compass/skeleton/_functions.sass +4 -0
- data/share/views/compass/skeleton/_mixins.sass +25 -0
- data/share/views/compass/skeleton/_vars.sass +72 -0
- data/share/views/compass/skeleton/base.sass +333 -0
- data/share/views/compass/skeleton/layout.sass +51 -0
- data/share/views/compass/skeleton/skeleton.sass +105 -0
- data/share/views/compass/solarized.sass +56 -0
- data/share/views/compass/style.sass +2 -116
- data/share/views/compass/theme.sass +57 -44
- data/share/views/compass/top_menu.sass +121 -0
- data/share/views/compass/user.sass +7 -0
- data/share/views/compass/variables.sass +7 -0
- data/share/views/compass/workflow.sass +6 -14
- data/share/views/entity_partials/action_controller.haml +7 -4
- data/share/views/entity_partials/entity_card.haml +10 -5
- data/share/views/entity_partials/entity_list.haml +4 -7
- data/share/views/entity_partials/entity_list_card.haml +10 -3
- data/share/views/entity_partials/entity_map_card.haml +2 -2
- data/share/views/entity_partials/list_container.haml +31 -26
- data/share/views/error.haml +5 -7
- data/share/views/help.haml +75 -31
- data/share/views/help/entity.haml +191 -193
- data/share/views/help/workflow.haml +59 -63
- data/share/views/job_result.haml +23 -26
- data/share/views/layout.haml +41 -61
- data/share/views/layout/top_menu.haml +19 -0
- data/share/views/layout/top_menu/favourites.haml +45 -0
- data/share/views/layout/top_menu/finder.haml +4 -0
- data/share/views/layout/top_menu/user.haml +15 -0
- data/share/views/public/js/_ajax_replace.js +17 -5
- data/share/views/public/js/_ellipsis.js +7 -9
- data/share/views/public/js/app.js +50 -2
- data/share/views/public/js/foundation/foundation.abide.js +194 -0
- data/share/views/public/js/foundation/foundation.alerts.js +52 -0
- data/share/views/public/js/foundation/foundation.clearing.js +516 -0
- data/share/views/public/js/foundation/foundation.cookie.js +74 -0
- data/share/views/public/js/foundation/foundation.dropdown.js +177 -0
- data/share/views/public/js/foundation/foundation.forms.js +533 -0
- data/share/views/public/js/foundation/foundation.interchange.js +280 -0
- data/share/views/public/js/foundation/foundation.joyride.js +850 -0
- data/share/views/public/js/foundation/foundation.js +440 -0
- data/share/views/public/js/foundation/foundation.magellan.js +135 -0
- data/share/views/public/js/foundation/foundation.orbit.js +412 -0
- data/share/views/public/js/foundation/foundation.placeholder.js +179 -0
- data/share/views/public/js/foundation/foundation.reveal.js +330 -0
- data/share/views/public/js/foundation/foundation.section.js +400 -0
- data/share/views/public/js/foundation/foundation.tooltips.js +208 -0
- data/share/views/public/js/foundation/foundation.topbar.js +300 -0
- data/share/views/public/js/foundation/index.js +18 -0
- data/share/views/public/js/helpers.js +33 -2
- data/share/views/public/js/jquery-ui.js +313 -0
- data/share/views/public/js/rbbt/actions.js +264 -0
- data/share/views/public/js/{_dom_update.js → rbbt/dom_update.js} +0 -0
- data/share/views/public/js/rbbt/favourites.js +425 -0
- data/share/views/public/js/rbbt/fragment.js +13 -0
- data/share/views/public/js/rbbt/hide.js +60 -0
- data/share/views/public/js/rbbt/list.js +117 -0
- data/share/views/public/js/{maps.js → rbbt/map.js} +3 -2
- data/share/views/public/js/rbbt/menu.js +22 -0
- data/share/views/public/js/rbbt/modal.js +96 -0
- data/share/views/public/js/{entities.js → rbbt/page_type.js} +12 -9
- data/share/views/public/js/rbbt/reveal.js +19 -0
- data/share/views/public/js/rbbt/table.js +283 -0
- data/share/views/public/js/{workflow.js → rbbt/workflow.js} +0 -0
- data/share/views/tasks.haml +14 -15
- data/share/views/wait.haml +11 -12
- metadata +62 -33
- data/share/views/compass/_foundation_setup.sass +0 -74
- data/share/views/compass/dom.sass +0 -32
- data/share/views/compass/footer.sass +0 -4
- data/share/views/compass/form.sass +0 -41
- data/share/views/compass/fragment.sass +0 -8
- data/share/views/compass/list_container.sass +0 -34
- data/share/views/compass/lists.sass +0 -33
- data/share/views/compass/offcanvas.sass +0 -66
- data/share/views/compass/responsive_table.sass +0 -80
- data/share/views/compass/reveal.sass +0 -31
- data/share/views/compass/style_mixins.sass +0 -42
- data/share/views/compass/table.sass +0 -63
- data/share/views/compass/tabs.sass +0 -81
- data/share/views/compass/topbar.sass +0 -25
- data/share/views/compass/web-fonts.sass +0 -77
- data/share/views/layout/favourites.haml +0 -46
- data/share/views/layout/header.haml +0 -44
- data/share/views/public/js/_fix_tablesorter_science.js +0 -38
- data/share/views/public/js/_foundation.js +0 -42
- data/share/views/public/js/actions.js +0 -108
- data/share/views/public/js/base.js +0 -121
- data/share/views/public/js/favourites.js +0 -441
- data/share/views/public/js/lists.js +0 -117
- data/share/views/public/js/offcanvas.js +0 -35
- data/share/views/public/js/reveal.js +0 -48
- data/share/views/public/js/tables.js +0 -314
- data/share/views/public/js/tabs.js +0 -7
@@ -0,0 +1,117 @@
|
|
1
|
+
function list_entities(type, id){
|
2
|
+
var url = "/entity_list" + '/' + type + '/' + id;
|
3
|
+
|
4
|
+
return get_ajax({url: url, async: false, method: "GET", data: {_format: 'json'}})['entities']
|
5
|
+
}
|
6
|
+
|
7
|
+
function list_info(type, id){
|
8
|
+
var url = "/entity_list" + '/' + type + '/' + id;
|
9
|
+
|
10
|
+
return get_ajax({url: url, async: false, method: "GET", data: {_format: 'info'}})
|
11
|
+
}
|
12
|
+
|
13
|
+
function list_array(type, list){
|
14
|
+
return "list:" + type + ":" + list;
|
15
|
+
}
|
16
|
+
|
17
|
+
var body = $('body');
|
18
|
+
|
19
|
+
body.on('click', 'a.compare_list', function(){
|
20
|
+
var type = page_entity_type().split(":")[0];
|
21
|
+
var lists = get_favourite_entity_lists()[type];
|
22
|
+
|
23
|
+
if (undefined == lists || lists.length == 0){
|
24
|
+
alert("No lists to compare with");
|
25
|
+
return false
|
26
|
+
}
|
27
|
+
|
28
|
+
var list_id = page_entity_list();
|
29
|
+
|
30
|
+
var type_ul = favourite_list_type_ul(type, lists).addClass("list_comparison")
|
31
|
+
var buttons = $('<ul class="list_comparison_buttons">')
|
32
|
+
buttons.append('<li><a class="intersect_lists" href="#">Intersect</a></li>')
|
33
|
+
buttons.append('<li><a class="remove_list" href="#">Remove</a></li>')
|
34
|
+
buttons.append('<li><a class="add_list" href="#">Add</a></li>')
|
35
|
+
type_ul.find('li').prepend(buttons)
|
36
|
+
|
37
|
+
$('#modal').modal('show', type_ul);
|
38
|
+
return true
|
39
|
+
})
|
40
|
+
|
41
|
+
body.on('click', 'a.intersect_lists', function(){
|
42
|
+
var link = $(this);
|
43
|
+
var other_list_id = link.parent().parent().parent().find("a.entity_list").attr('title');
|
44
|
+
var type = clean_element(page_entity_type());
|
45
|
+
var list_id = page_entity_list();
|
46
|
+
var params = "other_list_id=" + clean_element(other_list_id)
|
47
|
+
var url = "/entity_list/intersect/" + type + "/" + clean_element(list_id) + "?" + params
|
48
|
+
window.location= url
|
49
|
+
})
|
50
|
+
body.on('click', 'a.remove_list', function(){
|
51
|
+
var link = $(this);
|
52
|
+
var other_list_id = link.parent().parent().parent().find("a.entity_list").attr('title');
|
53
|
+
var type = clean_element(page_entity_type());
|
54
|
+
var list_id = page_entity_list();
|
55
|
+
var params = "other_list_id=" + clean_element(other_list_id)
|
56
|
+
var url = "/entity_list/remove/" + type + "/" + clean_element(list_id) + "?" + params
|
57
|
+
window.location= url
|
58
|
+
})
|
59
|
+
body.on('click', 'a.add_list', function(){
|
60
|
+
var link = $(this);
|
61
|
+
var other_list_id = link.parent().parent().parent().find("a.entity_list").attr('title');
|
62
|
+
var type = clean_element(page_entity_type());
|
63
|
+
var list_id = page_entity_list();
|
64
|
+
var params = "other_list_id=" + clean_element(other_list_id)
|
65
|
+
var url = "/entity_list/add/" + type + "/" + clean_element(list_id) + "?" + params
|
66
|
+
window.location= url
|
67
|
+
})
|
68
|
+
body.on('click', 'a.edit_list', function(){
|
69
|
+
var type = page_entity_type().split(":")[0];
|
70
|
+
var lists = get_favourite_entity_lists()[type];
|
71
|
+
var entity_type = page_entity_type();
|
72
|
+
var list_id = page_entity_list();
|
73
|
+
|
74
|
+
var url = '/entity_list/' + entity_type + '/edit/' + list_id
|
75
|
+
|
76
|
+
$('#modal').modal('show_url', url)
|
77
|
+
|
78
|
+
return true
|
79
|
+
})
|
80
|
+
body.on('click', 'ul.new_list > li > a', function(){
|
81
|
+
var entity_type = $(this).html();
|
82
|
+
var url = '/entity_list/' + entity_type + '/new/'
|
83
|
+
|
84
|
+
get_ajax({url: url, async: false}, function(data){$('#modal').modal('show', data, "New " + entity_type + " list"); $('#top_menu li.favourites').favourites('close')})
|
85
|
+
|
86
|
+
|
87
|
+
return true
|
88
|
+
})
|
89
|
+
|
90
|
+
body.on('click', '.edit_list input[type=submit]', function(){
|
91
|
+
var submit = $(this);
|
92
|
+
var form = submit.parents('form').first();
|
93
|
+
var annotations = {}
|
94
|
+
|
95
|
+
$.map(form.find(':input'), function(i){ annotations[i.name] = $(i).val()})
|
96
|
+
|
97
|
+
var new_list_id = annotations['list_id']
|
98
|
+
delete annotations['list_id']
|
99
|
+
|
100
|
+
var format = annotations['format']
|
101
|
+
delete annotations['format']
|
102
|
+
|
103
|
+
var entities = annotations['entities']
|
104
|
+
delete annotations['entities']
|
105
|
+
|
106
|
+
var entity_type = form.parents('.edit_list').first().attr('attr-entity_type')
|
107
|
+
|
108
|
+
if (undefined !== format){ entity_type = entity_type + ':' + clean_element(format) }
|
109
|
+
|
110
|
+
var url = '/entity_list/' + entity_type + '/' + new_list_id
|
111
|
+
|
112
|
+
get_ajax({url: url, type: 'POST', async: false, data: {annotations: JSON.stringify(annotations), entities: entities}}, function(){ window.location = url })
|
113
|
+
|
114
|
+
return false
|
115
|
+
})
|
116
|
+
|
117
|
+
|
@@ -1,6 +1,6 @@
|
|
1
|
-
function entity_map(type, column, id){
|
1
|
+
function entity_map(type, column, id, complete){
|
2
2
|
var url = "/entity_map" + '/' + clean_element(type) + '/' + clean_element(column) + '/' + clean_element(id);
|
3
|
-
return
|
3
|
+
return get_ajax({url: url, async: false, method: "GET", data: {_format: 'json'}}, complete)
|
4
4
|
}
|
5
5
|
|
6
6
|
$('body').on('click', '.rank_products form input[type=submit]', function(){
|
@@ -15,3 +15,4 @@ $('body').on('click', '.rank_products form input[type=submit]', function(){
|
|
15
15
|
window.location = url
|
16
16
|
return false
|
17
17
|
})
|
18
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
register_dom_update('dl.tabs > dt, dl.rbbt_tabs > dt.next, dl.rbbt_menu > .next, dl.rbbt_vertical_menu > .next, dl.rbbt_accordion > .next', function(title){
|
2
|
+
title.click(function(){
|
3
|
+
var option = $(this)
|
4
|
+
var content = option.next()
|
5
|
+
var menu = option.parent('dl')
|
6
|
+
|
7
|
+
var showed = content.hasClass('show')
|
8
|
+
|
9
|
+
option.siblings().removeClass('show')
|
10
|
+
|
11
|
+
if (showed) {
|
12
|
+
content.removeClass('show');
|
13
|
+
option.removeClass('show');
|
14
|
+
menu.removeClass('show')
|
15
|
+
} else {
|
16
|
+
content.addClass('show');
|
17
|
+
option.addClass('show');
|
18
|
+
menu.addClass('show')
|
19
|
+
}
|
20
|
+
})
|
21
|
+
})
|
22
|
+
|
@@ -0,0 +1,96 @@
|
|
1
|
+
$.widget("rbbt.modal", {
|
2
|
+
_create: function() {
|
3
|
+
},
|
4
|
+
|
5
|
+
_reset_modal: function(modal_title, source_id){
|
6
|
+
var tool = this
|
7
|
+
|
8
|
+
var modal = this.element
|
9
|
+
modal.html('').addClass('modal')
|
10
|
+
|
11
|
+
var title = $('<div>').addClass('title')
|
12
|
+
if (modal_title !== undefined){ title.html(modal_title) }
|
13
|
+
var controls = $('<div>').addClass('controls')
|
14
|
+
controls.append($('<a>').addClass('toggle_favourite').append($('<i>').addClass('foundicon-star')))
|
15
|
+
controls.append($('<a>').addClass('link-reveal-modal').append($('<i>').addClass('foundicon-right-arrow')))
|
16
|
+
controls.append($('<a>').addClass('close-reveal-modal').append($('<i>').addClass('foundicon-remove')))
|
17
|
+
|
18
|
+
var header = $('<div>').addClass('header').append(title).append(controls)
|
19
|
+
|
20
|
+
modal.append(header)
|
21
|
+
var content = $('<div>').addClass('content').html(content)
|
22
|
+
modal.attr('attr-reveal_source_id', source_id)
|
23
|
+
modal.on('click', 'a.close-reveal-modal', function(){ tool.close() })
|
24
|
+
modal.on('click', 'a.toggle_favourite', function(){
|
25
|
+
var url = $(tool.element).find('> .content').attr('target-href')
|
26
|
+
if (url !== undefined){
|
27
|
+
$('#top_menu li.favourites').favourites('toggle_page', url)
|
28
|
+
}
|
29
|
+
return false
|
30
|
+
})
|
31
|
+
|
32
|
+
var content = $('<div>').addClass('content')
|
33
|
+
modal.append(content)
|
34
|
+
|
35
|
+
modal.removeClass('url').removeClass('entity')
|
36
|
+
|
37
|
+
return modal;
|
38
|
+
},
|
39
|
+
|
40
|
+
_shown_url: function(){
|
41
|
+
return $(this.element).find('> .content').attr('target-href')
|
42
|
+
},
|
43
|
+
|
44
|
+
update_star: function(){
|
45
|
+
var url = this._shown_url()
|
46
|
+
if ($('#top_menu li.favourites').favourites('is_favourite', url)){
|
47
|
+
$(this.element).find('a.toggle_favourite').addClass('active');
|
48
|
+
}else{
|
49
|
+
$(this.element).find('a.toggle_favourite').removeClass('active');
|
50
|
+
}
|
51
|
+
},
|
52
|
+
|
53
|
+
show: function(content, title, source_id){
|
54
|
+
var tool = this;
|
55
|
+
var modal = tool._reset_modal(title, source_id)
|
56
|
+
|
57
|
+
modal.find('> .content').html(content)
|
58
|
+
this.element.show()
|
59
|
+
update_rbbt()
|
60
|
+
},
|
61
|
+
|
62
|
+
ask: function(content, title, complete){
|
63
|
+
this.show(content, title)
|
64
|
+
$('#modal').find('form').first().submit(complete)
|
65
|
+
},
|
66
|
+
|
67
|
+
show_url: function(url, title, source_id, complete){
|
68
|
+
var tool = this;
|
69
|
+
var modal = this._reset_modal(title, source_id)
|
70
|
+
|
71
|
+
$('body').append(modal)
|
72
|
+
|
73
|
+
replace_object(modal.find('.content'), url, true, function(){
|
74
|
+
var url = tool._shown_url()
|
75
|
+
|
76
|
+
modal.addClass('url')
|
77
|
+
modal.find('.link-reveal-modal').attr('href', url)
|
78
|
+
|
79
|
+
if (url != undefined && url.match(/^\/(?:entity|entity_list|entity_map)\//) != null){
|
80
|
+
modal.addClass('entity')
|
81
|
+
tool.update_star()
|
82
|
+
}
|
83
|
+
|
84
|
+
tool.element.show()
|
85
|
+
if (undefined !== complete){ complete()}
|
86
|
+
update_rbbt()
|
87
|
+
})
|
88
|
+
},
|
89
|
+
|
90
|
+
close: function(){
|
91
|
+
this.element.hide()
|
92
|
+
}
|
93
|
+
})
|
94
|
+
|
95
|
+
|
96
|
+
|
@@ -1,5 +1,3 @@
|
|
1
|
-
|
2
|
-
|
3
1
|
function page_type(path){
|
4
2
|
if (undefined === path){ path = window.location.pathname; }
|
5
3
|
|
@@ -14,9 +12,9 @@ function page_type(path){
|
|
14
12
|
function page_entity(path){
|
15
13
|
if (undefined === path){ path = window.location.pathname; }
|
16
14
|
|
17
|
-
switch(page_type()){
|
15
|
+
switch(page_type(path)){
|
18
16
|
case "entity":
|
19
|
-
return restore_element(path.split("/")[3]);
|
17
|
+
return restore_element(path.split('?')[0].split("/")[3]);
|
20
18
|
default:
|
21
19
|
return undefined
|
22
20
|
}
|
@@ -27,7 +25,7 @@ function page_entity_list(path){
|
|
27
25
|
|
28
26
|
switch(page_type(path)){
|
29
27
|
case "entity_list":
|
30
|
-
return restore_element(path.split("/")[3]);
|
28
|
+
return restore_element(path.split('?')[0].split("/")[3]);
|
31
29
|
default:
|
32
30
|
return undefined
|
33
31
|
}
|
@@ -38,7 +36,7 @@ function page_entity_map(path){
|
|
38
36
|
|
39
37
|
switch(page_type(path)){
|
40
38
|
case "entity_map":
|
41
|
-
return restore_element(path.split("/")[4]);
|
39
|
+
return restore_element(path.split('?')[0].split("/")[4]);
|
42
40
|
default:
|
43
41
|
return undefined
|
44
42
|
}
|
@@ -79,9 +77,14 @@ function page_entity_format(path){
|
|
79
77
|
return page_entity_type(path).split(":")[1]
|
80
78
|
}
|
81
79
|
|
82
|
-
function page_entity_info(
|
83
|
-
|
84
|
-
|
80
|
+
function page_entity_info(path){
|
81
|
+
var params;
|
82
|
+
if (undefined === path){
|
83
|
+
params = window.location.search;
|
84
|
+
}else{
|
85
|
+
params = path.split('?')[1]
|
86
|
+
}
|
87
|
+
return parse_parameters(params)
|
85
88
|
}
|
86
89
|
|
87
90
|
//{{{ Link generators
|
@@ -0,0 +1,19 @@
|
|
1
|
+
$.widget("rbbt.reveal", {
|
2
|
+
options: {
|
3
|
+
modal: $('body > #modal')
|
4
|
+
},
|
5
|
+
|
6
|
+
_create: function() {
|
7
|
+
var tool = this;
|
8
|
+
var modal = this.options.modal
|
9
|
+
tool.element.click(function(){
|
10
|
+
var link = $(this);
|
11
|
+
var source_id = link.attr('attr-reveal_id');
|
12
|
+
var title = link.attr('attr-reveal_title');
|
13
|
+
var content = $('#' + source_id);
|
14
|
+
modal.modal('show', content.html(), title, source_id);
|
15
|
+
return false
|
16
|
+
})
|
17
|
+
},
|
18
|
+
})
|
19
|
+
|
@@ -0,0 +1,283 @@
|
|
1
|
+
|
2
|
+
function parse_page(page){
|
3
|
+
if (undefined === page){ page = "" }
|
4
|
+
if (page == "" ){ return {} }
|
5
|
+
var parts = page.split('~')
|
6
|
+
switch(parts.length){
|
7
|
+
case 1:
|
8
|
+
return { num: parseInt(parts[0]) };
|
9
|
+
break;
|
10
|
+
case 2:
|
11
|
+
return { num: parseInt(parts[0]), field: parts[1] };
|
12
|
+
break;
|
13
|
+
case 3:
|
14
|
+
return { num: parseInt(parts[0]) , field: parts[2], size: parseInt(parts[1]) };
|
15
|
+
break;
|
16
|
+
}
|
17
|
+
}
|
18
|
+
|
19
|
+
function format_page(num, size, field){
|
20
|
+
if ( undefined !== size) return "";
|
21
|
+
|
22
|
+
var parts = [num];
|
23
|
+
if ( undefined !== size) parts.push(size)
|
24
|
+
if ( undefined !== field) parts.push(field)
|
25
|
+
|
26
|
+
return parts.join("~")
|
27
|
+
}
|
28
|
+
|
29
|
+
$.widget("rbbt.table", {
|
30
|
+
|
31
|
+
options: {
|
32
|
+
ellipsis: 5,
|
33
|
+
},
|
34
|
+
|
35
|
+
_fix_long_table_cells: function(max){
|
36
|
+
var update = false;
|
37
|
+
$(this.element).find('td').each(function(){
|
38
|
+
update = contract_ellipsis($(this), max) || update;
|
39
|
+
});
|
40
|
+
if (update){
|
41
|
+
update_rbbt();
|
42
|
+
}
|
43
|
+
},
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
_update: function(url, num, size, field, filter, complete){
|
48
|
+
var table = this.element
|
49
|
+
var tool = this
|
50
|
+
|
51
|
+
url = add_parameter(url, '_page', escape(format_page(num, size, field)))
|
52
|
+
url = add_parameter(url, '_format', 'table')
|
53
|
+
if (undefined != filter){ url = add_parameter(url, '_filter', escape(filter)) }
|
54
|
+
|
55
|
+
replace_object(table, url, true, function(){
|
56
|
+
table.attr('attr-page', format_page(num, size, field)).attr('rbbt-update_tags','')
|
57
|
+
update_rbbt();
|
58
|
+
if (undefined === complete){
|
59
|
+
$.scrollTo(table.find('tfoot'), {axis : 'y', offset: {top: - window.innerHeight + 100 }});
|
60
|
+
}else{ complete() }
|
61
|
+
if (tool.options.ellipsis !== undefined){
|
62
|
+
tool._fix_long_table_cells(5);
|
63
|
+
}
|
64
|
+
});
|
65
|
+
|
66
|
+
},
|
67
|
+
|
68
|
+
_status: function(){
|
69
|
+
var table = this.element
|
70
|
+
var url = table.attr('attr-url')
|
71
|
+
var page = table.attr('attr-page')
|
72
|
+
var filter = table.attr('attr-filter')
|
73
|
+
|
74
|
+
var total = parseInt(table.attr('attr-total_size'))
|
75
|
+
|
76
|
+
var page_info = parse_page(page)
|
77
|
+
var num = parseInt(page_info["num"])
|
78
|
+
var size = parseInt(page_info["size"])
|
79
|
+
var field = page_info["field"]
|
80
|
+
|
81
|
+
if (isNaN(num)){ num = undefined}
|
82
|
+
if (isNaN(size)){ size = undefined}
|
83
|
+
|
84
|
+
var stat = {url: url, page: page, num: num, field: field, filter: filter, total: total, size: size};
|
85
|
+
|
86
|
+
return stat
|
87
|
+
},
|
88
|
+
|
89
|
+
_create: function() {
|
90
|
+
var tool = this;
|
91
|
+
var table = tool.element
|
92
|
+
|
93
|
+
if (!$(this.element).hasClass('.noellipsis')){
|
94
|
+
this._fix_long_table_cells(this.options.ellipsis);
|
95
|
+
}else{
|
96
|
+
this.options.ellipsis = false
|
97
|
+
}
|
98
|
+
|
99
|
+
//{{{ Pagination
|
100
|
+
//
|
101
|
+
table.on('click', 'tfoot > tr > th > ul.table_pagination > li.num > a:not(.active)', function(link){
|
102
|
+
var link = $(this)
|
103
|
+
|
104
|
+
var stat = tool._status()
|
105
|
+
|
106
|
+
tool._update(stat.url, link.html(), stat.size, stat.field, stat.filter)
|
107
|
+
|
108
|
+
return false
|
109
|
+
})
|
110
|
+
|
111
|
+
table.on('click', 'tfoot > tr > th > ul.table_pagination > li.arrow > a.prev', function(link){
|
112
|
+
var stat = tool._status()
|
113
|
+
|
114
|
+
if (stat.num > 1){ stat.num = stat.num - 1 }
|
115
|
+
|
116
|
+
tool._update(stat.url, stat.num, stat.size, stat.field, stat.filter)
|
117
|
+
|
118
|
+
return false
|
119
|
+
})
|
120
|
+
|
121
|
+
table.on('click', 'tfoot > tr > th > ul.table_pagination > li.arrow > a.next', function(link){
|
122
|
+
var stat = tool._status()
|
123
|
+
|
124
|
+
if (stat.num < stat.total + 1){ stat.num = stat.num + 1 }
|
125
|
+
|
126
|
+
tool._update(stat.url, stat.num, stat.size, stat.field, stat.filter)
|
127
|
+
|
128
|
+
return false
|
129
|
+
})
|
130
|
+
|
131
|
+
table.on('click', 'tfoot > tr > th > ul.table_pagination > li.all', function(link){
|
132
|
+
var stat = tool._status()
|
133
|
+
|
134
|
+
tool._update(stat.url, '', stat.size, stat.field, stat.filter)
|
135
|
+
|
136
|
+
return false
|
137
|
+
})
|
138
|
+
|
139
|
+
//{{{ Sorting
|
140
|
+
//
|
141
|
+
table.on('click', '> thead > tr > th', function(th){
|
142
|
+
var th = $(this)
|
143
|
+
var table = tool.element;
|
144
|
+
|
145
|
+
var direction
|
146
|
+
|
147
|
+
var stat = tool._status()
|
148
|
+
|
149
|
+
stat.field = th.html()
|
150
|
+
stat.num = 1
|
151
|
+
|
152
|
+
if (th.is('.headerSortDown')){
|
153
|
+
direction = 1;
|
154
|
+
}else{
|
155
|
+
direction = -1;
|
156
|
+
}
|
157
|
+
|
158
|
+
orig_field = stat.field
|
159
|
+
if (direction == -1){
|
160
|
+
stat.field = '-' + stat.field;
|
161
|
+
}else{
|
162
|
+
stat.field = stat.field;
|
163
|
+
}
|
164
|
+
|
165
|
+
tool._update(stat.url, stat.num, stat.size, stat.field, stat.filter, function(){
|
166
|
+
var th = table.find('thead > tr > th:contains(' + orig_field + ')')
|
167
|
+
|
168
|
+
if (direction == -1){
|
169
|
+
th.removeClass('headerSortUp');
|
170
|
+
th.addClass('headerSortDown');
|
171
|
+
}else{
|
172
|
+
th.removeClass('headerSortDown');
|
173
|
+
th.addClass('headerSortUp')
|
174
|
+
}
|
175
|
+
})
|
176
|
+
table.addClass('sorted')
|
177
|
+
|
178
|
+
return false
|
179
|
+
})
|
180
|
+
|
181
|
+
//{{{ Sorting
|
182
|
+
//
|
183
|
+
$('body').on('click', '.filter_controls form input[type=submit]', function(){
|
184
|
+
var submit = $(this);
|
185
|
+
var form = submit.parents('form')
|
186
|
+
var filter = ""
|
187
|
+
|
188
|
+
form.find('input').not('[type=submit]').each(function(){
|
189
|
+
var input = $(this)
|
190
|
+
var val = input.val()
|
191
|
+
var name = input.attr('name')
|
192
|
+
|
193
|
+
if (val != ""){
|
194
|
+
if (filter != ""){ filter += ";;"}
|
195
|
+
filter += name + "~" + val;
|
196
|
+
}
|
197
|
+
})
|
198
|
+
|
199
|
+
var modal = submit.closest('.modal')
|
200
|
+
var modal = $('#modal')
|
201
|
+
var source_id = modal.attr('attr-reveal_source_id')
|
202
|
+
var source = $('#' + source_id);
|
203
|
+
var table = source.parents('table').first();
|
204
|
+
var url = table.attr('attr-url')
|
205
|
+
var page = table.attr('attr-page')
|
206
|
+
|
207
|
+
url = add_parameter(url, '_page', "1")
|
208
|
+
|
209
|
+
if (undefined != filter){ url = add_parameter(url, '_filter', escape(filter)) }
|
210
|
+
|
211
|
+
url = add_parameter(url, '_format', 'table')
|
212
|
+
|
213
|
+
replace_object(table, url, true, function(){
|
214
|
+
table.attr('attr-page', "1").attr('attr-filter', filter).attr('rbbt-update_tags','')
|
215
|
+
update_rbbt();
|
216
|
+
$.scrollTo(table.find('tfoot'), {axis : 'y', offset: {top: - window.innerHeight + 100 }})
|
217
|
+
});
|
218
|
+
|
219
|
+
modal.modal('close')
|
220
|
+
return false
|
221
|
+
})
|
222
|
+
|
223
|
+
//{{{ Columns
|
224
|
+
//
|
225
|
+
$('body').on('click', 'a.save_column_list', function(){
|
226
|
+
var link = $(this);
|
227
|
+
var column = link.parent().find('span.field').html()
|
228
|
+
|
229
|
+
|
230
|
+
var modal = $('#modal')
|
231
|
+
var source_id = modal.attr('attr-reveal_source_id')
|
232
|
+
var source = $('#' + source_id);
|
233
|
+
var table = source.parents('table').first();
|
234
|
+
|
235
|
+
var url = table.attr('attr-url')
|
236
|
+
var page = table.attr('attr-page')
|
237
|
+
var filter = table.attr('attr-filter')
|
238
|
+
|
239
|
+
var page_info = parse_page(page)
|
240
|
+
var num = 'all'
|
241
|
+
var size = page_info["size"]
|
242
|
+
var field = page_info["field"]
|
243
|
+
|
244
|
+
url = add_parameter(url, '_page', escape(format_page(num, size, field)))
|
245
|
+
url = add_parameter(url, '_format', 'entities')
|
246
|
+
url = add_parameter(url, '_column', column)
|
247
|
+
if (undefined != filter){ url = add_parameter(url, '_filter', escape(filter)) }
|
248
|
+
|
249
|
+
modal.modal('show_url', url)
|
250
|
+
return false
|
251
|
+
});
|
252
|
+
|
253
|
+
$('body').on('click', 'a.save_column_map', function(){
|
254
|
+
var link = $(this);
|
255
|
+
var column = link.parent().find('span.field').html()
|
256
|
+
|
257
|
+
|
258
|
+
var modal = $('#modal')
|
259
|
+
var source_id = modal.attr('attr-reveal_source_id')
|
260
|
+
var source = $('#' + source_id);
|
261
|
+
var table = source.parents('table').first();
|
262
|
+
|
263
|
+
var url = table.attr('attr-url')
|
264
|
+
var page = table.attr('attr-page')
|
265
|
+
var filter = table.attr('attr-filter')
|
266
|
+
|
267
|
+
var page_info = parse_page(page)
|
268
|
+
var num = 'all'
|
269
|
+
var size = page_info["size"]
|
270
|
+
var field = page_info["field"]
|
271
|
+
|
272
|
+
url = add_parameter(url, '_page', escape(format_page(num, size, field)))
|
273
|
+
url = add_parameter(url, '_column', escape(column))
|
274
|
+
url = add_parameter(url, '_format', 'map')
|
275
|
+
if (undefined != filter){ url = add_parameter(url, '_filter', escape(filter)) }
|
276
|
+
|
277
|
+
modal.modal('show_url', url)
|
278
|
+
return false
|
279
|
+
});
|
280
|
+
|
281
|
+
},
|
282
|
+
})
|
283
|
+
|