Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
0d688fff
Commit
0d688fff
authored
Jul 04, 2018
by
Kushal Pandya
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add Group filter dropdown support
parent
66ea5291
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
54 additions
and
22 deletions
+54
-22
app/assets/javascripts/pages/dashboard/todos/index/todos.js
app/assets/javascripts/pages/dashboard/todos/index/todos.js
+11
-1
app/assets/stylesheets/pages/todos.scss
app/assets/stylesheets/pages/todos.scss
+16
-0
app/views/dashboard/todos/index.html.haml
app/views/dashboard/todos/index.html.haml
+27
-21
No files found.
app/assets/javascripts/pages/dashboard/todos/index/todos.js
View file @
0d688fff
...
@@ -39,6 +39,7 @@ export default class Todos {
...
@@ -39,6 +39,7 @@ export default class Todos {
}
}
initFilters
()
{
initFilters
()
{
this
.
initFilterDropdown
(
$
(
'
.js-group-search
'
),
'
group_id
'
,
[
'
text
'
]);
this
.
initFilterDropdown
(
$
(
'
.js-project-search
'
),
'
project_id
'
,
[
'
text
'
]);
this
.
initFilterDropdown
(
$
(
'
.js-project-search
'
),
'
project_id
'
,
[
'
text
'
]);
this
.
initFilterDropdown
(
$
(
'
.js-type-search
'
),
'
type
'
);
this
.
initFilterDropdown
(
$
(
'
.js-type-search
'
),
'
type
'
);
this
.
initFilterDropdown
(
$
(
'
.js-action-search
'
),
'
action_id
'
);
this
.
initFilterDropdown
(
$
(
'
.js-action-search
'
),
'
action_id
'
);
...
@@ -53,7 +54,16 @@ export default class Todos {
...
@@ -53,7 +54,16 @@ export default class Todos {
filterable
:
searchFields
?
true
:
false
,
filterable
:
searchFields
?
true
:
false
,
search
:
{
fields
:
searchFields
},
search
:
{
fields
:
searchFields
},
data
:
$dropdown
.
data
(
'
data
'
),
data
:
$dropdown
.
data
(
'
data
'
),
clicked
:
()
=>
$dropdown
.
closest
(
'
form.filter-form
'
).
submit
(),
clicked
:
()
=>
{
const
$formEl
=
$dropdown
.
closest
(
'
form.filter-form
'
);
const
mutexDropdowns
=
{
group_id
:
'
project_id
'
,
project_id
:
'
group_id
'
,
};
$formEl
.
find
(
`input[name="
${
mutexDropdowns
[
fieldName
]}
"]`
).
remove
();
$formEl
.
submit
();
},
});
});
}
}
...
...
app/assets/stylesheets/pages/todos.scss
View file @
0d688fff
...
@@ -174,6 +174,18 @@
...
@@ -174,6 +174,18 @@
}
}
}
}
@include
media-breakpoint-down
(
lg
)
{
.todos-filters
{
.filter-categories
{
width
:
75%
;
.filter-item
{
margin-bottom
:
10px
;
}
}
}
}
@include
media-breakpoint-down
(
xs
)
{
@include
media-breakpoint-down
(
xs
)
{
.todo
{
.todo
{
.avatar
{
.avatar
{
...
@@ -199,6 +211,10 @@
...
@@ -199,6 +211,10 @@
}
}
.todos-filters
{
.todos-filters
{
.filter-categories
{
width
:
auto
;
}
.dropdown-menu-toggle
{
.dropdown-menu-toggle
{
width
:
100%
;
width
:
100%
;
}
}
...
...
app/views/dashboard/todos/index.html.haml
View file @
0d688fff
...
@@ -30,27 +30,33 @@
...
@@ -30,27 +30,33 @@
.todos-filters
.todos-filters
.row-content-block.second-block
.row-content-block.second-block
=
form_tag
todos_filter_path
(
without:
[
:project_id
,
:author_id
,
:type
,
:action_id
]),
method: :get
,
class:
'filter-form'
do
=
form_tag
todos_filter_path
(
without:
[
:project_id
,
:author_id
,
:type
,
:action_id
]),
method: :get
,
class:
'filter-form d-sm-flex'
do
.filter-item.inline
.filter-categories.flex-fill
-
if
params
[
:project_id
].
present?
.filter-item.inline
=
hidden_field_tag
(
:project_id
,
params
[
:project_id
])
-
if
params
[
:group_id
].
present?
=
dropdown_tag
(
project_dropdown_label
(
params
[
:project_id
],
'Project'
),
options:
{
toggle_class:
'js-project-search js-filter-submit'
,
title:
'Filter by project'
,
filter:
true
,
filterInput:
'input#project-search'
,
dropdown_class:
'dropdown-menu-selectable dropdown-menu-project js-filter-submit'
,
=
hidden_field_tag
(
:group_id
,
params
[
:group_id
])
placeholder:
'Search projects'
,
data:
{
data:
todo_projects_options
,
default_label:
'Project'
,
display:
'static'
}
})
=
dropdown_tag
(
group_dropdown_label
(
params
[
:group_id
],
'Group'
),
options:
{
toggle_class:
'js-group-search js-filter-submit'
,
title:
'Filter by group'
,
filter:
true
,
filterInput:
'input#group-search'
,
dropdown_class:
'dropdown-menu-selectable dropdown-menu-group js-filter-submit'
,
.filter-item.inline
placeholder:
'Search groups'
,
data:
{
data:
todo_group_options
,
default_label:
'Group'
,
display:
'static'
}
})
-
if
params
[
:author_id
].
present?
.filter-item.inline
=
hidden_field_tag
(
:author_id
,
params
[
:author_id
])
-
if
params
[
:project_id
].
present?
=
dropdown_tag
(
user_dropdown_label
(
params
[
:author_id
],
'Author'
),
options:
{
toggle_class:
'js-user-search js-filter-submit js-author-search'
,
title:
'Filter by author'
,
filter:
true
,
filterInput:
'input#author-search'
,
dropdown_class:
'dropdown-menu-user dropdown-menu-selectable dropdown-menu-author js-filter-submit'
,
=
hidden_field_tag
(
:project_id
,
params
[
:project_id
])
placeholder:
'Search authors'
,
data:
{
any_user:
'Any Author'
,
first_user:
(
current_user
.
username
if
current_user
),
project_id:
(
@project
.
id
if
@project
),
selected:
params
[
:author_id
],
field_name:
'author_id'
,
default_label:
'Author'
,
todo_filter:
true
,
todo_state_filter:
params
[
:state
]
||
'pending'
}
})
=
dropdown_tag
(
project_dropdown_label
(
params
[
:project_id
],
'Project'
),
options:
{
toggle_class:
'js-project-search js-filter-submit'
,
title:
'Filter by project'
,
filter:
true
,
filterInput:
'input#project-search'
,
dropdown_class:
'dropdown-menu-selectable dropdown-menu-project js-filter-submit'
,
.filter-item.inline
placeholder:
'Search projects'
,
data:
{
data:
todo_projects_options
,
default_label:
'Project'
,
display:
'static'
}
})
-
if
params
[
:type
].
present?
.filter-item.inline
=
hidden_field_tag
(
:type
,
params
[
:type
])
-
if
params
[
:author_id
].
present?
=
dropdown_tag
(
todo_types_dropdown_label
(
params
[
:type
],
'Type'
),
options:
{
toggle_class:
'js-type-search js-filter-submit'
,
dropdown_class:
'dropdown-menu-selectable dropdown-menu-type js-filter-submit'
,
=
hidden_field_tag
(
:author_id
,
params
[
:author_id
])
data:
{
data:
todo_types_options
,
default_label:
'Type'
}
})
=
dropdown_tag
(
user_dropdown_label
(
params
[
:author_id
],
'Author'
),
options:
{
toggle_class:
'js-user-search js-filter-submit js-author-search'
,
title:
'Filter by author'
,
filter:
true
,
filterInput:
'input#author-search'
,
dropdown_class:
'dropdown-menu-user dropdown-menu-selectable dropdown-menu-author js-filter-submit'
,
.filter-item.inline.actions-filter
placeholder:
'Search authors'
,
data:
{
any_user:
'Any Author'
,
first_user:
(
current_user
.
username
if
current_user
),
project_id:
(
@project
.
id
if
@project
),
selected:
params
[
:author_id
],
field_name:
'author_id'
,
default_label:
'Author'
,
todo_filter:
true
,
todo_state_filter:
params
[
:state
]
||
'pending'
}
})
-
if
params
[
:action_id
].
present?
.filter-item.inline
=
hidden_field_tag
(
:action_id
,
params
[
:action_id
])
-
if
params
[
:type
].
present?
=
dropdown_tag
(
todo_actions_dropdown_label
(
params
[
:action_id
],
'Action'
),
options:
{
toggle_class:
'js-action-search js-filter-submit'
,
dropdown_class:
'dropdown-menu-selectable dropdown-menu-action js-filter-submit'
,
=
hidden_field_tag
(
:type
,
params
[
:type
])
data:
{
data:
todo_actions_options
,
default_label:
'Action'
}
})
=
dropdown_tag
(
todo_types_dropdown_label
(
params
[
:type
],
'Type'
),
options:
{
toggle_class:
'js-type-search js-filter-submit'
,
dropdown_class:
'dropdown-menu-selectable dropdown-menu-type js-filter-submit'
,
data:
{
data:
todo_types_options
,
default_label:
'Type'
}
})
.filter-item.inline.actions-filter
-
if
params
[
:action_id
].
present?
=
hidden_field_tag
(
:action_id
,
params
[
:action_id
])
=
dropdown_tag
(
todo_actions_dropdown_label
(
params
[
:action_id
],
'Action'
),
options:
{
toggle_class:
'js-action-search js-filter-submit'
,
dropdown_class:
'dropdown-menu-selectable dropdown-menu-action js-filter-submit'
,
data:
{
data:
todo_actions_options
,
default_label:
'Action'
}
})
.filter-item.sort-filter
.filter-item.sort-filter
.dropdown
.dropdown
%button
.dropdown-menu-toggle.dropdown-menu-toggle-sort
{
type:
'button'
,
'data-toggle'
=>
'dropdown'
}
%button
.dropdown-menu-toggle.dropdown-menu-toggle-sort
{
type:
'button'
,
'data-toggle'
=>
'dropdown'
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment