redmine_extensions 0.0.34 → 0.0.36
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 +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);
|