redmine_extensions 0.0.34 → 0.0.36
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/redmine_extensions/redmine_extensions.js +46 -20
- data/{spec/redmine/public/javascripts/redmine_extensions/redmine_extensions.js → app/assets/javascripts/redmine_extensions/redmine_extensions.js.orig} +48 -15
- data/app/helpers/redmine_extensions/application_helper.rb +2 -2
- data/app/helpers/redmine_extensions/application_helper.rb.orig +66 -109
- data/lib/redmine_extensions/version.rb +1 -1
- data/spec/redmine/{db/test.sqlite3 → tmp/pdf/empty} +0 -0
- data/spec/redmine/tmp/test/empty +0 -0
- data/spec/redmine/tmp/thumbnails/empty +0 -0
- metadata +9 -52
- data/app/views/easy_entity_assignments/_assignments_container.html.erb.orig +0 -45
- data/app/views/easy_queries/_entities.html.erb.orig +0 -67
- data/lib/redmine_extensions/easy_query_adapter.rb.orig +0 -185
- data/lib/redmine_extensions/version.rb.orig +0 -7
- data/spec/redmine/Gemfile.lock +0 -191
- data/spec/redmine/config/secrets.yml +0 -3
- data/spec/redmine/db/development.sqlite3 +0 -0
- data/spec/redmine/db/schema.rb +0 -678
- data/spec/redmine/log/development.log +0 -22900
- data/spec/redmine/log/test.scm.stderr.log +0 -11
- data/spec/redmine/plugins/easy_test_plugin/Gemfile +0 -1
- data/spec/redmine/plugins/easy_test_plugin/app/controllers/easy_issue_tests_controller.rb +0 -9
- data/spec/redmine/plugins/easy_test_plugin/app/models/easy_testing_query.rb +0 -90
- data/spec/redmine/plugins/easy_test_plugin/app/views/easy_issue_tests/index.html.erb +0 -2
- data/spec/redmine/plugins/easy_test_plugin/config/locales/en.yml +0 -2
- data/spec/redmine/plugins/easy_test_plugin/config/routes.rb +0 -2
- data/spec/redmine/plugins/easy_test_plugin/init.rb +0 -34
- data/spec/redmine/plugins/easy_test_plugin/lib/easy_test_plugin/hooks.rb +0 -5
- data/spec/redmine/plugins/easy_test_plugin/lib/easy_test_plugin/internals.rb +0 -4
- data/spec/redmine/plugins/easy_test_plugin/lib/easy_test_plugin/redmine_patch/controllers/issues_controller_patch.example +0 -30
- data/spec/redmine/plugins/easy_test_plugin/lib/easy_test_plugin/redmine_patch/helpers/issues_helper_patch.example +0 -30
- data/spec/redmine/plugins/easy_test_plugin/lib/easy_test_plugin/redmine_patch/models/issue_patch.example +0 -30
- data/spec/redmine/public/javascripts/redmine_extensions/application.js +0 -13
- data/spec/redmine/public/javascripts/redmine_extensions/jquery.easy_query.js +0 -235
- data/spec/redmine/public/javascripts/redmine_extensions/jquery.entityarray.js +0 -130
@@ -1,11 +0,0 @@
|
|
1
|
-
sh: svn: příkaz nenalezen
|
2
|
-
sh: darcs: příkaz nenalezen
|
3
|
-
sh: cvs: příkaz nenalezen
|
4
|
-
sh: bzr: příkaz nenalezen
|
5
|
-
sh: svn: příkaz nenalezen
|
6
|
-
sh: svn: příkaz nenalezen
|
7
|
-
sh: svn: příkaz nenalezen
|
8
|
-
fatal: Not a git repository: '/home/ondra/Documents/_prace/easy/redmine_extensions/spec/redmine/tmp/test/git_repository'
|
9
|
-
fatal: Not a git repository: '/home/ondra/Documents/_prace/easy/redmine_extensions/spec/redmine/tmp/test/git_repository'
|
10
|
-
fatal: Not a git repository: '/home/ondra/Documents/_prace/easy/redmine_extensions/spec/redmine/tmp/test/git_repository'
|
11
|
-
fatal: Not a git repository: '/home/ondra/Documents/_prace/easy/redmine_extensions/spec/redmine/tmp/test/git_repository'
|
@@ -1 +0,0 @@
|
|
1
|
-
gem 'redmine_extensions'
|
@@ -1,90 +0,0 @@
|
|
1
|
-
class EasyTestingQuery < EasyQueryAdapter
|
2
|
-
|
3
|
-
def entity
|
4
|
-
Issue
|
5
|
-
end
|
6
|
-
|
7
|
-
self.available_columns = [
|
8
|
-
QueryColumn.new(:id, :sortable => "#{Issue.table_name}.id", :default_order => 'desc', :caption => '#', :frozen => true),
|
9
|
-
QueryColumn.new(:project, :sortable => "#{Project.table_name}.name", :groupable => true),
|
10
|
-
QueryColumn.new(:tracker, :sortable => "#{Tracker.table_name}.position", :groupable => true),
|
11
|
-
QueryColumn.new(:parent, :sortable => ["#{Issue.table_name}.root_id", "#{Issue.table_name}.lft ASC"], :default_order => 'desc', :caption => :field_parent_issue),
|
12
|
-
QueryColumn.new(:status, :sortable => "#{IssueStatus.table_name}.position", :groupable => true),
|
13
|
-
QueryColumn.new(:priority, :sortable => "#{IssuePriority.table_name}.position", :default_order => 'desc', :groupable => true),
|
14
|
-
QueryColumn.new(:subject, :sortable => "#{Issue.table_name}.subject"),
|
15
|
-
QueryColumn.new(:author, :sortable => lambda {User.fields_for_order_statement("authors")}, :groupable => true),
|
16
|
-
QueryColumn.new(:assigned_to, :sortable => lambda {User.fields_for_order_statement}, :groupable => true),
|
17
|
-
QueryColumn.new(:updated_on, :sortable => "#{Issue.table_name}.updated_on", :default_order => 'desc'),
|
18
|
-
QueryColumn.new(:category, :sortable => "#{IssueCategory.table_name}.name", :groupable => true),
|
19
|
-
QueryColumn.new(:fixed_version, :sortable => lambda {Version.fields_for_order_statement}, :groupable => true),
|
20
|
-
QueryColumn.new(:start_date, :sortable => "#{Issue.table_name}.start_date"),
|
21
|
-
QueryColumn.new(:due_date, :sortable => "#{Issue.table_name}.due_date"),
|
22
|
-
QueryColumn.new(:estimated_hours, :sortable => "#{Issue.table_name}.estimated_hours"),
|
23
|
-
QueryColumn.new(:done_ratio, :sortable => "#{Issue.table_name}.done_ratio", :groupable => true),
|
24
|
-
QueryColumn.new(:created_on, :sortable => "#{Issue.table_name}.created_on", :default_order => 'desc'),
|
25
|
-
QueryColumn.new(:closed_on, :sortable => "#{Issue.table_name}.closed_on", :default_order => 'desc'),
|
26
|
-
QueryColumn.new(:relations, :caption => :label_related_issues),
|
27
|
-
QueryColumn.new(:description, :inline => false)
|
28
|
-
]
|
29
|
-
|
30
|
-
def initialize_available_filters
|
31
|
-
principals = []
|
32
|
-
subprojects = []
|
33
|
-
versions = []
|
34
|
-
categories = []
|
35
|
-
issue_custom_fields = []
|
36
|
-
|
37
|
-
if project
|
38
|
-
principals += project.principals.visible
|
39
|
-
unless project.leaf?
|
40
|
-
subprojects = project.descendants.visible.to_a
|
41
|
-
principals += Principal.member_of(subprojects).visible
|
42
|
-
end
|
43
|
-
versions = project.shared_versions.to_a
|
44
|
-
categories = project.issue_categories.to_a
|
45
|
-
issue_custom_fields = project.all_issue_custom_fields
|
46
|
-
else
|
47
|
-
if all_projects.any?
|
48
|
-
principals += Principal.member_of(all_projects).visible
|
49
|
-
end
|
50
|
-
versions = Version.visible.where(:sharing => 'system').to_a
|
51
|
-
issue_custom_fields = IssueCustomField.where(:is_for_all => true)
|
52
|
-
end
|
53
|
-
principals.uniq!
|
54
|
-
principals.sort!
|
55
|
-
principals.reject! {|p| p.is_a?(GroupBuiltin)}
|
56
|
-
users = principals.select {|p| p.is_a?(User)}
|
57
|
-
|
58
|
-
if project.nil?
|
59
|
-
project_values = []
|
60
|
-
if User.current.logged? && User.current.memberships.any?
|
61
|
-
project_values << ["<< #{l(:label_my_projects).downcase} >>", "mine"]
|
62
|
-
end
|
63
|
-
project_values += all_projects_values
|
64
|
-
add_available_filter("project_id",
|
65
|
-
:type => :list, :values => project_values
|
66
|
-
) unless project_values.empty?
|
67
|
-
end
|
68
|
-
|
69
|
-
add_available_filter "tracker_id",
|
70
|
-
:type => :list, :values => trackers.collect{|s| [s.name, s.id.to_s] }
|
71
|
-
add_available_filter "priority_id",
|
72
|
-
:type => :list, :values => IssuePriority.all.collect{|s| [s.name, s.id.to_s] }
|
73
|
-
|
74
|
-
author_values = []
|
75
|
-
author_values << ["<< #{l(:label_me)} >>", "me"] if User.current.logged?
|
76
|
-
author_values += users.collect{|s| [s.name, s.id.to_s] }
|
77
|
-
add_available_filter("author_id",
|
78
|
-
:type => :list, :values => author_values
|
79
|
-
) unless author_values.empty?
|
80
|
-
|
81
|
-
assigned_to_values = []
|
82
|
-
assigned_to_values << ["<< #{l(:label_me)} >>", "me"] if User.current.logged?
|
83
|
-
assigned_to_values += (Setting.issue_group_assignment? ?
|
84
|
-
principals : users).collect{|s| [s.name, s.id.to_s] }
|
85
|
-
add_available_filter("assigned_to_id",
|
86
|
-
:type => :list_optional, :values => assigned_to_values
|
87
|
-
) unless assigned_to_values.empty?
|
88
|
-
end
|
89
|
-
|
90
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
Redmine::Plugin.register :easy_test_plugin do
|
2
|
-
name 'Easy Test Plugin'
|
3
|
-
author ''
|
4
|
-
author_url ''
|
5
|
-
description ''
|
6
|
-
version '2015.01.01'
|
7
|
-
|
8
|
-
#into easy_settings goes available setting as a symbol key, default value as a value
|
9
|
-
settings easy_settings: { }
|
10
|
-
end
|
11
|
-
|
12
|
-
|
13
|
-
Dir[File.dirname(__FILE__) + '/lib/easy_test_plugin/redmine_patch/*/*.rb'].each {|file| require file }
|
14
|
-
|
15
|
-
# this block is executed once just after Redmine is started
|
16
|
-
# means after all plugins are initialized
|
17
|
-
# it is place for plain requires, not require_dependency
|
18
|
-
# it should contain hooks, permissions - base class in Redmine is required thus is not reloaded
|
19
|
-
ActiveSupport.on_load(:easyproject, yield: true) do
|
20
|
-
|
21
|
-
require 'easy_test_plugin/internals'
|
22
|
-
require 'easy_test_plugin/hooks'
|
23
|
-
|
24
|
-
end
|
25
|
-
|
26
|
-
# this block is called every time rails are reloading code
|
27
|
-
# in development it means after each change in observed file
|
28
|
-
# in production it means once just after server has started
|
29
|
-
# in this block should be used require_dependency, but only if necessary.
|
30
|
-
# better is to place a class in file named by rails naming convency and let it be loaded automatically
|
31
|
-
# Here goes query registering, custom fields registering and so on
|
32
|
-
ActionDispatch::Reloader.to_prepare do
|
33
|
-
|
34
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
module EasyTestPlugin
|
2
|
-
module IssuesControllerPatch
|
3
|
-
|
4
|
-
def self.included(base)
|
5
|
-
base.extend(ClassMethods)
|
6
|
-
base.send(:include, InstanceMethods)
|
7
|
-
|
8
|
-
base.class_eval do
|
9
|
-
|
10
|
-
alias_method_chain :index, :easy_test_plugin
|
11
|
-
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
module InstanceMethods
|
16
|
-
|
17
|
-
def index_with_easy_test_plugin
|
18
|
-
index_without_easy_test_plugin
|
19
|
-
end
|
20
|
-
|
21
|
-
end
|
22
|
-
|
23
|
-
module ClassMethods
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
30
|
-
RedmineExtensions::PatchManager.register_controller_patch 'IssuesController', 'EasyTestPlugin::IssuesControllerPatch'
|
@@ -1,30 +0,0 @@
|
|
1
|
-
module EasyTestPlugin
|
2
|
-
module IssuesHelperPatch
|
3
|
-
|
4
|
-
def self.included(base)
|
5
|
-
base.extend(ClassMethods)
|
6
|
-
base.send(:include, InstanceMethods)
|
7
|
-
|
8
|
-
base.class_eval do
|
9
|
-
|
10
|
-
alias_method_chain :issue_heading, :easy_test_plugin
|
11
|
-
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
module InstanceMethods
|
16
|
-
|
17
|
-
def issue_heading_with_easy_test_plugin(issue)
|
18
|
-
issue_heading_without_easy_test_plugin(issue)
|
19
|
-
end
|
20
|
-
|
21
|
-
end
|
22
|
-
|
23
|
-
module ClassMethods
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
30
|
-
RedmineExtensions::PatchManager.register_helper_patch 'IssuesHelper', 'EasyTestPlugin::IssuesHelperPatch'
|
@@ -1,30 +0,0 @@
|
|
1
|
-
module EasyTestPlugin
|
2
|
-
module IssuePatch
|
3
|
-
|
4
|
-
def self.included(base)
|
5
|
-
base.extend(ClassMethods)
|
6
|
-
base.send(:include, InstanceMethods)
|
7
|
-
|
8
|
-
base.class_eval do
|
9
|
-
|
10
|
-
alias_method_chain :to_s, :easy_test_plugin
|
11
|
-
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
module InstanceMethods
|
16
|
-
|
17
|
-
def to_s_with_easy_test_plugin
|
18
|
-
'issue'
|
19
|
-
end
|
20
|
-
|
21
|
-
end
|
22
|
-
|
23
|
-
module ClassMethods
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
30
|
-
RedmineExtensions::PatchManager.register_model_patch 'Issue', 'EasyTestPlugin::IssuePatch'
|
@@ -1,13 +0,0 @@
|
|
1
|
-
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
-
// listed below.
|
3
|
-
//
|
4
|
-
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
-
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
|
6
|
-
//
|
7
|
-
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
-
// compiled file.
|
9
|
-
//
|
10
|
-
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
|
11
|
-
// about supported directives.
|
12
|
-
//
|
13
|
-
//= require_tree .
|
@@ -1,235 +0,0 @@
|
|
1
|
-
(function( $, undefined ) {
|
2
|
-
$.widget('easy.easy_query', {
|
3
|
-
options: {
|
4
|
-
modul_uniq_id: null
|
5
|
-
},
|
6
|
-
|
7
|
-
_create: function() {
|
8
|
-
var that = this;
|
9
|
-
|
10
|
-
this.modul_uniq_id = this.options.modul_uniq_id || this.element.attr('id') || '';
|
11
|
-
this.filters_container = $('.filters-table', this.element);
|
12
|
-
|
13
|
-
$(this.element).on('change', '.add_filter_select', function(evt){
|
14
|
-
var select = $(this),
|
15
|
-
field = select.val();
|
16
|
-
|
17
|
-
$('[id="' + that.modul_uniq_id + 'tr_' + field + '"]').show();
|
18
|
-
$('[id="' + that.modul_uniq_id + 'cb_' + field + '"]').prop('checked', true);
|
19
|
-
that.toggleFilter(field);
|
20
|
-
select[0].selectedIndex = 0;
|
21
|
-
$("option[value='" + field + "']", select).prop('disabled', true);
|
22
|
-
});
|
23
|
-
|
24
|
-
$("input[name='query[visibility]']", this.element).change(function(){
|
25
|
-
var roles_checked = $('.query_visibility_roles', that.element).is(':checked');
|
26
|
-
var private_checked = $('.query_visibility_private', that.element).is(':checked');
|
27
|
-
$("input[name='query[role_ids][]'][type=checkbox]").attr('disabled', !roles_checked);
|
28
|
-
if (!private_checked) $("input.disable-unless-private", that.element).attr('checked', false);
|
29
|
-
$("input.disable-unless-private").attr('disabled', !private_checked);
|
30
|
-
}).trigger('change');
|
31
|
-
|
32
|
-
/* filters showing and hiding evts */
|
33
|
-
if(this.filters_container.length > 0) {
|
34
|
-
$.each(this.filters_container.data('enabled'), function(){
|
35
|
-
that.toggleFilter(this);
|
36
|
-
});
|
37
|
-
|
38
|
-
$(this.filters_container).on('change', '.filter_select_operator', function(evt) {
|
39
|
-
that.toggleOperator( $(this).data('field') );
|
40
|
-
});
|
41
|
-
$(this.filters_container).on('change', '.filters_checkbox', function(evt) {
|
42
|
-
that.toggleFilter( $(this).val() );
|
43
|
-
});
|
44
|
-
}
|
45
|
-
|
46
|
-
/* QUERY APPLY */
|
47
|
-
$('.filter_buttons .apply-link', this.element).click(function(evt){
|
48
|
-
var $this = $(this);
|
49
|
-
evt.preventDefault();
|
50
|
-
that.applyEasyQueryFilters($this.attr('href'), $($this.data('toserialize')) );
|
51
|
-
});
|
52
|
-
$('.filter_buttons .save-link', this.element).click(function(evt){
|
53
|
-
var query_form_id = '#'+that.modul_uniq_id+'query_form';
|
54
|
-
evt.preventDefault();
|
55
|
-
that.applyEasyQueryFilters($(query_form_id).attr('action'), $(query_form_id + ' .query-form-addtional-hidden-fields input:hidden'));
|
56
|
-
});
|
57
|
-
},
|
58
|
-
|
59
|
-
toggleFilter: function(field) {
|
60
|
-
var check_box = $('#' + this.modul_uniq_id + 'cb_' + field);
|
61
|
-
|
62
|
-
if (check_box.is(':checked')) {
|
63
|
-
$('#' + this.modul_uniq_id + "operators_" + field).show();
|
64
|
-
this.toggleOperator(field, this.modul_uniq_id);
|
65
|
-
} else {
|
66
|
-
$('#' + this.modul_uniq_id + "operators_" + field).hide();
|
67
|
-
$('#' + this.modul_uniq_id + "div_values_" + field).hide();
|
68
|
-
}
|
69
|
-
},
|
70
|
-
|
71
|
-
|
72
|
-
toggleOperator: function(field) {
|
73
|
-
var operator = $('#' + this.modul_uniq_id + "operators_" + field);
|
74
|
-
if (typeof(operator.val()) === 'undefined') {
|
75
|
-
$('#' + this.modul_uniq_id + "div_values_" + field).show();
|
76
|
-
} else {
|
77
|
-
switch (operator.val()) {
|
78
|
-
case "!*":
|
79
|
-
case "*":
|
80
|
-
case "t":
|
81
|
-
case "ld":
|
82
|
-
case "w":
|
83
|
-
case "lw":
|
84
|
-
case "l2w":
|
85
|
-
case "m":
|
86
|
-
case "lm":
|
87
|
-
case "y":
|
88
|
-
case "o":
|
89
|
-
case "c":
|
90
|
-
this.enableValues(field, []);
|
91
|
-
break;
|
92
|
-
case "><":
|
93
|
-
this.enableValues(field, [0, 1]);
|
94
|
-
break;
|
95
|
-
case "<t+":
|
96
|
-
case ">t+":
|
97
|
-
case "><t+":
|
98
|
-
case "t+":
|
99
|
-
case ">t-":
|
100
|
-
case "<t-":
|
101
|
-
case "><t-":
|
102
|
-
case "t-":
|
103
|
-
this.enableValues(field, [2]);
|
104
|
-
break;
|
105
|
-
case "=p":
|
106
|
-
case "=!p":
|
107
|
-
case "!p":
|
108
|
-
this.enableValues(field, [1]);
|
109
|
-
break;
|
110
|
-
default:
|
111
|
-
this.enableValues(field, [0]);
|
112
|
-
break;
|
113
|
-
}
|
114
|
-
}
|
115
|
-
},
|
116
|
-
|
117
|
-
enableValues: function(field, indexes) {
|
118
|
-
var div_values = $('#' + this.modul_uniq_id + "div_values_" + field);
|
119
|
-
div_values.find(".values_" + field).each(function(i) {
|
120
|
-
if (indexes.indexOf(i) > -1) {
|
121
|
-
$(this).prop('disabled', false).parent('span').show();
|
122
|
-
} else {
|
123
|
-
$(this).prop('disabled', true).val('').parent('span').hide();
|
124
|
-
}
|
125
|
-
});
|
126
|
-
div_values.toggle(indexes.length > 0);
|
127
|
-
},
|
128
|
-
|
129
|
-
getEasyQueryFilterValue: function(filter_value_element) {
|
130
|
-
var filter_value = '',
|
131
|
-
val_el_val = [];
|
132
|
-
|
133
|
-
if (filter_value_element.length > 0) {
|
134
|
-
if (filter_value_element[0].tagName === 'SPAN') {
|
135
|
-
filter_value_element.find('input[type="hidden"]').each(function(i, el) {
|
136
|
-
val_el_val.push($(el).val());
|
137
|
-
});
|
138
|
-
} else if (filter_value_element[0].tagName === 'SELECT') {
|
139
|
-
var value = filter_value_element.val();
|
140
|
-
if ($.isArray(value)) {
|
141
|
-
$.merge(val_el_val, value)
|
142
|
-
} else {
|
143
|
-
val_el_val.push(value);
|
144
|
-
}
|
145
|
-
} else if (filter_value_element.is("input:radio")) {
|
146
|
-
val_el_val.push(filter_value_element.filter(":checked").val());
|
147
|
-
} else {
|
148
|
-
filter_value_element.each(function() {
|
149
|
-
val_el_val.push($(this).val());
|
150
|
-
});
|
151
|
-
}
|
152
|
-
filter_value = val_el_val && val_el_val.join('|');
|
153
|
-
}
|
154
|
-
return filter_value;
|
155
|
-
},
|
156
|
-
|
157
|
-
getEasyQueryFiltersForURL: function() {
|
158
|
-
var modul_uniq_id = this.modul_uniq_id,
|
159
|
-
that = this,
|
160
|
-
filter_values = [];
|
161
|
-
|
162
|
-
$('#' + modul_uniq_id + 'filters table.filters-table input:checkbox[name*="fields"]').filter(":checked").each(function(idx, el) {
|
163
|
-
var filter_value = '';
|
164
|
-
var el_val = el.value.replace('.', '_');
|
165
|
-
var operator = $('#' + modul_uniq_id + 'operators_' + el_val).val();
|
166
|
-
var val_el_single_value = $("tr#" + modul_uniq_id + "tr_"+el_val).children('td:last').find("input:not(.ui-autocomplete-input), select");
|
167
|
-
var val_el_two_values_1 = $('#' + modul_uniq_id + 'values_' + el_val + '_1');
|
168
|
-
var val_el_two_values_2 = $('#' + modul_uniq_id + 'values_' + el_val + '_2');
|
169
|
-
if (operator === undefined) { operator = '='; }
|
170
|
-
|
171
|
-
if (['=', '!', 'o', 'c', '*', '!*', '~', '!~', '^~', '=p', '=!p', '!p'].indexOf(operator) >= 0 && val_el_single_value.length > 0) {
|
172
|
-
filter_value = that.getEasyQueryFilterValue(val_el_single_value);
|
173
|
-
} else if (['=', '>=', '<=', '><', '!*', '*'].indexOf(operator) >= 0 && val_el_two_values_1.length > 0 && val_el_two_values_2.length > 0) {
|
174
|
-
filter_value = that.getEasyQueryFilterValue(val_el_two_values_1);
|
175
|
-
filter_value += '|' + that.getEasyQueryFilterValue(val_el_two_values_2);
|
176
|
-
} else if (operator === '') {
|
177
|
-
var p1 = $('#' + modul_uniq_id + '' + el_val + '_date_period_1');
|
178
|
-
if (p1 && p1.is(':checked')) {
|
179
|
-
filter_value = $('#' + modul_uniq_id + 'values_' + el_val + '_period').val();
|
180
|
-
if (filter_value.indexOf('n_days') !== -1) {
|
181
|
-
filter_value += '|' + $('#' + modul_uniq_id + 'values_' + el_val + '_period_days').val();
|
182
|
-
}
|
183
|
-
}
|
184
|
-
var p2 = $('#' + modul_uniq_id + '' + el_val + '_date_period_2');
|
185
|
-
if (p2 && p2.is(':checked')) {
|
186
|
-
filter_value = $('#' + modul_uniq_id + '' + el_val + '_from').val();
|
187
|
-
filter_value += '|' + $('#' + modul_uniq_id + '' + el_val + '_to').val();
|
188
|
-
}
|
189
|
-
}
|
190
|
-
|
191
|
-
if (!filter_value) { filter_value = '0'; }
|
192
|
-
filter_values.push(el.value + '=' + encodeURIComponent(operator + filter_value));
|
193
|
-
});
|
194
|
-
this._selectAllOptions(modul_uniq_id + 'selected_columns');
|
195
|
-
if ($('#selected_project_columns').length > 0)
|
196
|
-
this._selectAllOptions(modul_uniq_id + 'selected_project_columns');
|
197
|
-
filter_values.push($('#' + modul_uniq_id + 'selected_columns').serialize());
|
198
|
-
var show_sum_val = $('#' + modul_uniq_id + 'show_sum_row_1').serialize();
|
199
|
-
if (show_sum_val.length === 0) {
|
200
|
-
show_sum_val = $('#' + modul_uniq_id + 'show_sum_row_0').serialize();
|
201
|
-
}
|
202
|
-
var options = $(':input', $((modul_uniq_id === '' ? '' : '#' + modul_uniq_id) + ' .easy_query_additional_options')).serialize();
|
203
|
-
filter_values.push(show_sum_val);
|
204
|
-
filter_values.push(options);
|
205
|
-
filter_values.push($('#' + modul_uniq_id + 'group_by').serialize());
|
206
|
-
filter_values.push($('select.serialize, input.serialize', $('#' + modul_uniq_id + 'filters').closest('form')).serialize());
|
207
|
-
// TODO razeni
|
208
|
-
return filter_values.join('&');
|
209
|
-
},
|
210
|
-
|
211
|
-
applyEasyQueryFilters: function(url, additional_elements_to_serialize) {
|
212
|
-
if (url.indexOf('?') >= 0) {
|
213
|
-
url += '&';
|
214
|
-
} else {
|
215
|
-
url += '?';
|
216
|
-
}
|
217
|
-
|
218
|
-
var target_url = url + this.getEasyQueryFiltersForURL();
|
219
|
-
|
220
|
-
if (additional_elements_to_serialize && (additional_elements_to_serialize instanceof jQuery)) {
|
221
|
-
target_url += '&' + additional_elements_to_serialize.serialize();
|
222
|
-
}
|
223
|
-
|
224
|
-
window.location = target_url;
|
225
|
-
},
|
226
|
-
|
227
|
-
_selectAllOptions: function(id)
|
228
|
-
{
|
229
|
-
var select = $('#'+id);
|
230
|
-
select.children('option').prop('selected', true);
|
231
|
-
}
|
232
|
-
|
233
|
-
});
|
234
|
-
|
235
|
-
})(jQuery);
|