Show More
@@ -1,146 +1,147 b'' | |||||
1 | <%inherit file="/base/base.mako"/> |
|
1 | <%inherit file="/base/base.mako"/> | |
2 |
|
2 | |||
3 | <%def name="title()"> |
|
3 | <%def name="title()"> | |
4 | %if c.show_private: |
|
4 | %if c.show_private: | |
5 | ${_('Private Gists for user {}').format(c.rhodecode_user.username)} |
|
5 | ${_('Private Gists for user {}').format(c.rhodecode_user.username)} | |
6 | %elif c.show_public: |
|
6 | %elif c.show_public: | |
7 | ${_('Public Gists for user {}').format(c.rhodecode_user.username)} |
|
7 | ${_('Public Gists for user {}').format(c.rhodecode_user.username)} | |
8 | %else: |
|
8 | %else: | |
9 | ${_('Public Gists')} |
|
9 | ${_('Public Gists')} | |
10 | %endif |
|
10 | %endif | |
11 | %if c.rhodecode_name: |
|
11 | %if c.rhodecode_name: | |
12 | · ${h.branding(c.rhodecode_name)} |
|
12 | · ${h.branding(c.rhodecode_name)} | |
13 | %endif |
|
13 | %endif | |
14 | </%def> |
|
14 | </%def> | |
15 |
|
15 | |||
16 | <%def name="breadcrumbs_links()"></%def> |
|
16 | <%def name="breadcrumbs_links()"></%def> | |
17 |
|
17 | |||
18 | <%def name="menu_bar_nav()"> |
|
18 | <%def name="menu_bar_nav()"> | |
19 | ${self.menu_items(active='gists')} |
|
19 | ${self.menu_items(active='gists')} | |
20 | </%def> |
|
20 | </%def> | |
21 |
|
21 | |||
22 | <%def name="main()"> |
|
22 | <%def name="main()"> | |
23 |
|
23 | |||
24 | <div class="box"> |
|
24 | <div class="box"> | |
25 | <div class="title"> |
|
25 | <div class="title"> | |
26 |
|
26 | |||
27 | <ul class="button-links"> |
|
27 | <ul class="button-links"> | |
28 | % if c.is_super_admin: |
|
28 | % if c.is_super_admin: | |
29 | <li><a class="btn ${h.is_active('all', c.active)}" href="${h.route_path('gists_show', _query={'all': 1})}">${_('All gists')}</a></li> |
|
29 | <li><a class="btn ${h.is_active('all', c.active)}" href="${h.route_path('gists_show', _query={'all': 1})}">${_('All gists')}</a></li> | |
30 | %endif |
|
30 | %endif | |
31 | <li><a class="btn ${h.is_active('public', c.active)}" href="${h.route_path('gists_show')}">${_('All public')}</a></li> |
|
31 | <li><a class="btn ${h.is_active('public', c.active)}" href="${h.route_path('gists_show')}">${_('All public')}</a></li> | |
32 | %if c.rhodecode_user.username != h.DEFAULT_USER: |
|
32 | %if c.rhodecode_user.username != h.DEFAULT_USER: | |
33 | <li><a class="btn ${h.is_active('my_all', c.active)}" href="${h.route_path('gists_show', _query={'public':1, 'private': 1})}">${_('My gists')}</a></li> |
|
33 | <li><a class="btn ${h.is_active('my_all', c.active)}" href="${h.route_path('gists_show', _query={'public':1, 'private': 1})}">${_('My gists')}</a></li> | |
34 | <li><a class="btn ${h.is_active('my_private', c.active)}" href="${h.route_path('gists_show', _query={'private': 1})}">${_('My private')}</a></li> |
|
34 | <li><a class="btn ${h.is_active('my_private', c.active)}" href="${h.route_path('gists_show', _query={'private': 1})}">${_('My private')}</a></li> | |
35 | <li><a class="btn ${h.is_active('my_public', c.active)}" href="${h.route_path('gists_show', _query={'public': 1})}">${_('My public')}</a></li> |
|
35 | <li><a class="btn ${h.is_active('my_public', c.active)}" href="${h.route_path('gists_show', _query={'public': 1})}">${_('My public')}</a></li> | |
36 | %endif |
|
36 | %endif | |
37 | </ul> |
|
37 | </ul> | |
38 |
|
38 | |||
39 | % if c.rhodecode_user.username != h.DEFAULT_USER: |
|
39 | % if c.rhodecode_user.username != h.DEFAULT_USER: | |
40 | <div class="pull-right"> |
|
40 | <div class="pull-right"> | |
41 | <a class="btn btn-primary" href="${h.route_path('gists_new')}" > |
|
41 | <a class="btn btn-primary" href="${h.route_path('gists_new')}" > | |
42 | ${_(u'Create New Gist')} |
|
42 | ${_(u'Create New Gist')} | |
43 | </a> |
|
43 | </a> | |
44 | </div> |
|
44 | </div> | |
45 | % endif |
|
45 | % endif | |
46 |
|
46 | |||
47 | <div class="grid-quick-filter"> |
|
47 | <div class="grid-quick-filter"> | |
48 | <ul class="grid-filter-box"> |
|
48 | <ul class="grid-filter-box"> | |
49 | <li class="grid-filter-box-icon"> |
|
49 | <li class="grid-filter-box-icon"> | |
50 | <i class="icon-search"></i> |
|
50 | <i class="icon-search"></i> | |
51 | </li> |
|
51 | </li> | |
52 | <li class="grid-filter-box-input"> |
|
52 | <li class="grid-filter-box-input"> | |
53 | <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/> |
|
53 | <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/> | |
54 | </li> |
|
54 | </li> | |
55 | </ul> |
|
55 | </ul> | |
56 | </div> |
|
56 | </div> | |
57 |
|
57 | |||
58 | </div> |
|
58 | </div> | |
59 |
|
59 | |||
60 | <div class="main-content-full-width"> |
|
60 | <div class="main-content-full-width"> | |
61 | <div id="repos_list_wrap"> |
|
61 | <div id="repos_list_wrap"> | |
62 | <table id="gist_list_table" class="display"></table> |
|
62 | <table id="gist_list_table" class="display"></table> | |
63 | </div> |
|
63 | </div> | |
64 | </div> |
|
64 | </div> | |
65 |
|
65 | |||
66 | </div> |
|
66 | </div> | |
67 |
|
67 | |||
68 | <script type="text/javascript"> |
|
68 | <script type="text/javascript"> | |
69 | $(document).ready(function() { |
|
69 | $(document).ready(function() { | |
70 |
|
70 | |||
71 | var get_datatable_count = function(){ |
|
71 | var get_datatable_count = function(){ | |
72 | var api = $('#gist_list_table').dataTable().api(); |
|
72 | var api = $('#gist_list_table').dataTable().api(); | |
73 | $('#gists_count').text(api.page.info().recordsDisplay); |
|
73 | $('#gists_count').text(api.page.info().recordsDisplay); | |
74 | }; |
|
74 | }; | |
75 |
|
75 | |||
76 |
|
76 | |||
77 | // custom filter that filters by access_id, description or author |
|
77 | // custom filter that filters by access_id, description or author | |
78 | $.fn.dataTable.ext.search.push( |
|
78 | $.fn.dataTable.ext.search.push( | |
79 | function( settings, data, dataIndex ) { |
|
79 | function( settings, data, dataIndex ) { | |
80 | var query = $('#q_filter').val(); |
|
80 | var query = $('#q_filter').val(); | |
81 | var author = data[0].strip(); |
|
81 | var author = data[0].strip(); | |
82 | var access_id = data[2].strip(); |
|
82 | var access_id = data[2].strip(); | |
83 | var description = data[3].strip(); |
|
83 | var description = data[3].strip(); | |
84 |
|
84 | |||
85 | var query_str = (access_id + " " + author + " " + description).toLowerCase(); |
|
85 | var query_str = (access_id + " " + author + " " + description).toLowerCase(); | |
86 |
|
86 | |||
87 | if(query_str.indexOf(query.toLowerCase()) !== -1){ |
|
87 | if(query_str.indexOf(query.toLowerCase()) !== -1){ | |
88 | return true; |
|
88 | return true; | |
89 | } |
|
89 | } | |
90 | return false; |
|
90 | return false; | |
91 | } |
|
91 | } | |
92 | ); |
|
92 | ); | |
93 |
|
93 | |||
94 | // gists list |
|
94 | // gists list | |
|
95 | var gist_data = ${c.data|n}; | |||
95 | $('#gist_list_table').DataTable({ |
|
96 | $('#gist_list_table').DataTable({ | |
96 |
data: |
|
97 | data: gist_data, | |
97 | dom: 'rtp', |
|
98 | dom: 'rtp', | |
98 | pageLength: ${c.visual.dashboard_items}, |
|
99 | pageLength: ${c.visual.dashboard_items}, | |
99 | order: [[ 4, "desc" ]], |
|
100 | order: [[ 4, "desc" ]], | |
100 | columns: [ |
|
101 | columns: [ | |
101 | { data: {"_": "author", |
|
102 | { data: {"_": "author", | |
102 | "sort": "author_raw"}, title: "${_("Author")}", width: "250px", className: "td-user" }, |
|
103 | "sort": "author_raw"}, title: "${_("Author")}", width: "250px", className: "td-user" }, | |
103 | { data: {"_": "type", |
|
104 | { data: {"_": "type", | |
104 | "sort": "type"}, title: "${_("Type")}", width: "100px", className: "td-gist-type" }, |
|
105 | "sort": "type"}, title: "${_("Type")}", width: "100px", className: "td-gist-type" }, | |
105 | { data: {"_": "access_id", |
|
106 | { data: {"_": "access_id", | |
106 | "sort": "access_id"}, title: "${_("Name")}", width:"150px", className: "td-componentname" }, |
|
107 | "sort": "access_id"}, title: "${_("Name")}", width:"150px", className: "td-componentname" }, | |
107 | { data: {"_": "description", |
|
108 | { data: {"_": "description", | |
108 | "sort": "description"}, title: "${_("Description")}", width: "250px", className: "td-description" }, |
|
109 | "sort": "description"}, title: "${_("Description")}", width: "250px", className: "td-description" }, | |
109 | { data: {"_": "created_on", |
|
110 | { data: {"_": "created_on", | |
110 | "sort": "created_on_raw"}, title: "${_("Created on")}", className: "td-time" }, |
|
111 | "sort": "created_on_raw"}, title: "${_("Created on")}", className: "td-time" }, | |
111 | { data: {"_": "expires", |
|
112 | { data: {"_": "expires", | |
112 | "sort": "expires"}, title: "${_("Expires")}", width: "200px", className: "td-expire" } |
|
113 | "sort": "expires"}, title: "${_("Expires")}", width: "200px", className: "td-expire" } | |
113 | ], |
|
114 | ], | |
114 | language: { |
|
115 | language: { | |
115 | paginate: DEFAULT_GRID_PAGINATION, |
|
116 | paginate: DEFAULT_GRID_PAGINATION, | |
116 | emptyTable: _gettext("No gists available yet.") |
|
117 | emptyTable: _gettext("No gists available yet.") | |
117 | }, |
|
118 | }, | |
118 | "initComplete": function( settings, json ) { |
|
119 | "initComplete": function( settings, json ) { | |
119 | timeagoActivate(); |
|
120 | timeagoActivate(); | |
120 | tooltipActivate(); |
|
121 | tooltipActivate(); | |
121 | get_datatable_count(); |
|
122 | get_datatable_count(); | |
122 | } |
|
123 | } | |
123 | }); |
|
124 | }); | |
124 |
|
125 | |||
125 | // update the counter when things change |
|
126 | // update the counter when things change | |
126 | $('#gist_list_table').on('draw.dt', function() { |
|
127 | $('#gist_list_table').on('draw.dt', function() { | |
127 | timeagoActivate(); |
|
128 | timeagoActivate(); | |
128 | tooltipActivate(); |
|
129 | tooltipActivate(); | |
129 | get_datatable_count(); |
|
130 | get_datatable_count(); | |
130 | }); |
|
131 | }); | |
131 |
|
132 | |||
132 | // filter, filter both grids |
|
133 | // filter, filter both grids | |
133 | $('#q_filter').on( 'keyup', function () { |
|
134 | $('#q_filter').on( 'keyup', function () { | |
134 | var repo_api = $('#gist_list_table').dataTable().api(); |
|
135 | var repo_api = $('#gist_list_table').dataTable().api(); | |
135 | repo_api |
|
136 | repo_api | |
136 | .draw(); |
|
137 | .draw(); | |
137 | }); |
|
138 | }); | |
138 |
|
139 | |||
139 | // refilter table if page load via back button |
|
140 | // refilter table if page load via back button | |
140 | $("#q_filter").trigger('keyup'); |
|
141 | $("#q_filter").trigger('keyup'); | |
141 |
|
142 | |||
142 | }); |
|
143 | }); | |
143 |
|
144 | |||
144 | </script> |
|
145 | </script> | |
145 | </%def> |
|
146 | </%def> | |
146 |
|
147 |
@@ -1,49 +1,50 b'' | |||||
1 | <div class="panel panel-default"> |
|
1 | <div class="panel panel-default"> | |
2 | <div class="panel-heading"> |
|
2 | <div class="panel-heading"> | |
3 | <h3 class="panel-title">${_('Repositories You Own')}</h3> |
|
3 | <h3 class="panel-title">${_('Repositories You Own')}</h3> | |
4 | </div> |
|
4 | </div> | |
5 |
|
5 | |||
6 | <div class="panel-body"> |
|
6 | <div class="panel-body"> | |
7 | <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/> |
|
7 | <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/> | |
8 |
|
8 | |||
9 | <div id="repos_list_wrap"> |
|
9 | <div id="repos_list_wrap"> | |
10 | <table id="repo_list_table" class="display"></table> |
|
10 | <table id="repo_list_table" class="display"></table> | |
11 | </div> |
|
11 | </div> | |
12 | </div> |
|
12 | </div> | |
13 | </div> |
|
13 | </div> | |
14 |
|
14 | |||
15 | <script> |
|
15 | <script> | |
16 | $(document).ready(function() { |
|
16 | $(document).ready(function() { | |
17 |
|
17 | |||
18 | // repo list |
|
18 | // repo list | |
19 | $repoListTable = $('#repo_list_table'); |
|
19 | $repoListTable = $('#repo_list_table'); | |
|
20 | var repos_data = ${c.data|n}; | |||
20 |
|
21 | |||
21 | $repoListTable.DataTable({ |
|
22 | $repoListTable.DataTable({ | |
22 |
data: |
|
23 | data: repos_data, | |
23 | dom: 'rtp', |
|
24 | dom: 'rtp', | |
24 | pageLength: ${c.visual.admin_grid_items}, |
|
25 | pageLength: ${c.visual.admin_grid_items}, | |
25 | order: [[ 0, "asc" ]], |
|
26 | order: [[ 0, "asc" ]], | |
26 | columns: [ |
|
27 | columns: [ | |
27 | { data: {"_": "name", |
|
28 | { data: {"_": "name", | |
28 | "sort": "name_raw"}, title: "${_('Name')}", className: "td-componentname" }, |
|
29 | "sort": "name_raw"}, title: "${_('Name')}", className: "td-componentname" }, | |
29 | ], |
|
30 | ], | |
30 | language: { |
|
31 | language: { | |
31 | paginate: DEFAULT_GRID_PAGINATION, |
|
32 | paginate: DEFAULT_GRID_PAGINATION, | |
32 | emptyTable: _gettext("No repositories available yet.") |
|
33 | emptyTable: _gettext("No repositories available yet.") | |
33 | }, |
|
34 | }, | |
34 |
|
35 | |||
35 | }); |
|
36 | }); | |
36 |
|
37 | |||
37 | // filter |
|
38 | // filter | |
38 | $('#q_filter').on('keyup', |
|
39 | $('#q_filter').on('keyup', | |
39 | $.debounce(250, function() { |
|
40 | $.debounce(250, function() { | |
40 | $repoListTable.DataTable().search( |
|
41 | $repoListTable.DataTable().search( | |
41 | $('#q_filter').val() |
|
42 | $('#q_filter').val() | |
42 | ).draw(); |
|
43 | ).draw(); | |
43 | }) |
|
44 | }) | |
44 | ); |
|
45 | ); | |
45 |
|
46 | |||
46 |
|
47 | |||
47 | }); |
|
48 | }); | |
48 |
|
49 | |||
49 | </script> |
|
50 | </script> |
@@ -1,74 +1,75 b'' | |||||
1 |
|
1 | |||
2 | <div class="panel panel-default"> |
|
2 | <div class="panel panel-default"> | |
3 | <div class="panel-heading"> |
|
3 | <div class="panel-heading"> | |
4 | <h3 class="panel-title">${_('User Group Membership')}</h3> |
|
4 | <h3 class="panel-title">${_('User Group Membership')}</h3> | |
5 | </div> |
|
5 | </div> | |
6 |
|
6 | |||
7 | <div class="panel-body"> |
|
7 | <div class="panel-body"> | |
8 | <div class="groups_management"> |
|
8 | <div class="groups_management"> | |
9 | <div id="repos_list_wrap"> |
|
9 | <div id="repos_list_wrap"> | |
10 | <table id="user_group_list_table" class="display"></table> |
|
10 | <table id="user_group_list_table" class="display"></table> | |
11 | </div> |
|
11 | </div> | |
12 | </div> |
|
12 | </div> | |
13 | </div> |
|
13 | </div> | |
14 | </div> |
|
14 | </div> | |
15 |
|
15 | |||
16 |
|
16 | |||
17 | <script> |
|
17 | <script> | |
18 | var api; |
|
18 | var api; | |
19 | $(document).ready(function() { |
|
19 | $(document).ready(function() { | |
20 |
|
20 | |||
21 | var get_datatable_count = function(){ |
|
21 | var get_datatable_count = function(){ | |
22 | $('#user_group_count').text(api.page.info().recordsDisplay); |
|
22 | $('#user_group_count').text(api.page.info().recordsDisplay); | |
23 | }; |
|
23 | }; | |
24 |
|
24 | |||
25 | $('#user_group_list_table').on('click', 'a.editor_remove', function (e) { |
|
25 | $('#user_group_list_table').on('click', 'a.editor_remove', function (e) { | |
26 | e.preventDefault(); |
|
26 | e.preventDefault(); | |
27 | var row = api.row($(this).closest('tr')); |
|
27 | var row = api.row($(this).closest('tr')); | |
28 | row.remove().draw(); |
|
28 | row.remove().draw(); | |
29 | } ); |
|
29 | } ); | |
30 |
|
30 | |||
|
31 | var user_groups_data = ${c.user_groups|n}; | |||
31 | $('#user_group_list_table').DataTable({ |
|
32 | $('#user_group_list_table').DataTable({ | |
32 |
data: |
|
33 | data: user_groups_data, | |
33 | dom: 'rtp', |
|
34 | dom: 'rtp', | |
34 | pageLength: ${c.visual.admin_grid_items}, |
|
35 | pageLength: ${c.visual.admin_grid_items}, | |
35 | order: [[ 0, "asc" ]], |
|
36 | order: [[ 0, "asc" ]], | |
36 | columns: [ |
|
37 | columns: [ | |
37 | { data: {"_": "group_name", |
|
38 | { data: {"_": "group_name", | |
38 | "sort": "group_name"}, title: "${_('Name')}", className: "td-componentname," , |
|
39 | "sort": "group_name"}, title: "${_('Name')}", className: "td-componentname," , | |
39 | render: function (data,type,full,meta) |
|
40 | render: function (data,type,full,meta) | |
40 | {return '<div><i class="icon-user-group" title="User group">'+data+'</i></div>'}}, |
|
41 | {return '<div><i class="icon-user-group" title="User group">'+data+'</i></div>'}}, | |
41 |
|
42 | |||
42 | { data: {"_": "group_description", |
|
43 | { data: {"_": "group_description", | |
43 | "sort": "group_description"}, title: "${_('Description')}", className: "td-description" }, |
|
44 | "sort": "group_description"}, title: "${_('Description')}", className: "td-description" }, | |
44 | { data: {"_": "users_group_id"}, className: "td-user", |
|
45 | { data: {"_": "users_group_id"}, className: "td-user", | |
45 | render: function (data,type,full,meta) |
|
46 | render: function (data,type,full,meta) | |
46 | {return '<input type="hidden" name="users_group_id" value="'+data+'">'}}, |
|
47 | {return '<input type="hidden" name="users_group_id" value="'+data+'">'}}, | |
47 | { data: {"_": "active", |
|
48 | { data: {"_": "active", | |
48 | "sort": "active"}, title: "${_('Active')}", className: "td-active"}, |
|
49 | "sort": "active"}, title: "${_('Active')}", className: "td-active"}, | |
49 | { data: {"_": "owner_data"}, title: "${_('Owner')}", className: "td-user", |
|
50 | { data: {"_": "owner_data"}, title: "${_('Owner')}", className: "td-user", | |
50 | render: function (data,type,full,meta) |
|
51 | render: function (data,type,full,meta) | |
51 | {return '<div class="rc-user tooltip">'+ |
|
52 | {return '<div class="rc-user tooltip">'+ | |
52 | '<img class="gravatar" src="'+ data.owner_icon +'" height="16" width="16">'+ |
|
53 | '<img class="gravatar" src="'+ data.owner_icon +'" height="16" width="16">'+ | |
53 | data.owner +'</div>' |
|
54 | data.owner +'</div>' | |
54 | } |
|
55 | } | |
55 | } |
|
56 | } | |
56 | ], |
|
57 | ], | |
57 | language: { |
|
58 | language: { | |
58 | paginate: DEFAULT_GRID_PAGINATION, |
|
59 | paginate: DEFAULT_GRID_PAGINATION, | |
59 | emptyTable: _gettext("No user groups available yet.") |
|
60 | emptyTable: _gettext("No user groups available yet.") | |
60 | }, |
|
61 | }, | |
61 | "initComplete": function( settings, json ) { |
|
62 | "initComplete": function( settings, json ) { | |
62 | var data_grid = $('#user_group_list_table').dataTable(); |
|
63 | var data_grid = $('#user_group_list_table').dataTable(); | |
63 | api = data_grid.api(); |
|
64 | api = data_grid.api(); | |
64 | get_datatable_count(); |
|
65 | get_datatable_count(); | |
65 | } |
|
66 | } | |
66 | }); |
|
67 | }); | |
67 |
|
68 | |||
68 | // update the counter when doing search |
|
69 | // update the counter when doing search | |
69 | $('#user_group_list_table').on( 'search.dt', function (e,settings) { |
|
70 | $('#user_group_list_table').on( 'search.dt', function (e,settings) { | |
70 | get_datatable_count(); |
|
71 | get_datatable_count(); | |
71 | }); |
|
72 | }); | |
72 |
|
73 | |||
73 | }); |
|
74 | }); | |
74 | </script> No newline at end of file |
|
75 | </script> |
@@ -1,49 +1,50 b'' | |||||
1 | <div class="panel panel-default"> |
|
1 | <div class="panel panel-default"> | |
2 | <div class="panel-heading"> |
|
2 | <div class="panel-heading"> | |
3 | <h3 class="panel-title">${_('Your Watched Repositories')}</h3> |
|
3 | <h3 class="panel-title">${_('Your Watched Repositories')}</h3> | |
4 | </div> |
|
4 | </div> | |
5 |
|
5 | |||
6 | <div class="panel-body"> |
|
6 | <div class="panel-body"> | |
7 | <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/> |
|
7 | <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/> | |
8 |
|
8 | |||
9 | <div id="repos_list_wrap"> |
|
9 | <div id="repos_list_wrap"> | |
10 | <table id="repo_list_table" class="display"></table> |
|
10 | <table id="repo_list_table" class="display"></table> | |
11 | </div> |
|
11 | </div> | |
12 | </div> |
|
12 | </div> | |
13 | </div> |
|
13 | </div> | |
14 |
|
14 | |||
15 | <script> |
|
15 | <script> | |
16 | $(document).ready(function() { |
|
16 | $(document).ready(function() { | |
17 |
|
17 | |||
18 | // repo list |
|
18 | // repo list | |
19 | $repoListTable = $('#repo_list_table'); |
|
19 | $repoListTable = $('#repo_list_table'); | |
20 |
|
20 | |||
|
21 | var watched_repos_data = ${c.data|n}; | |||
21 | $repoListTable.DataTable({ |
|
22 | $repoListTable.DataTable({ | |
22 |
data: |
|
23 | data: watched_repos_data, | |
23 | dom: 'rtp', |
|
24 | dom: 'rtp', | |
24 | pageLength: ${c.visual.admin_grid_items}, |
|
25 | pageLength: ${c.visual.admin_grid_items}, | |
25 | order: [[ 0, "asc" ]], |
|
26 | order: [[ 0, "asc" ]], | |
26 | columns: [ |
|
27 | columns: [ | |
27 | { data: {"_": "name", |
|
28 | { data: {"_": "name", | |
28 | "sort": "name_raw"}, title: "${_('Name')}", className: "td-componentname" }, |
|
29 | "sort": "name_raw"}, title: "${_('Name')}", className: "td-componentname" }, | |
29 | ], |
|
30 | ], | |
30 | language: { |
|
31 | language: { | |
31 | paginate: DEFAULT_GRID_PAGINATION, |
|
32 | paginate: DEFAULT_GRID_PAGINATION, | |
32 | emptyTable: _gettext("No repositories available yet.") |
|
33 | emptyTable: _gettext("No repositories available yet.") | |
33 | }, |
|
34 | }, | |
34 |
|
35 | |||
35 | }); |
|
36 | }); | |
36 |
|
37 | |||
37 | // filter |
|
38 | // filter | |
38 | $('#q_filter').on('keyup', |
|
39 | $('#q_filter').on('keyup', | |
39 | $.debounce(250, function() { |
|
40 | $.debounce(250, function() { | |
40 | $repoListTable.DataTable().search( |
|
41 | $repoListTable.DataTable().search( | |
41 | $('#q_filter').val() |
|
42 | $('#q_filter').val() | |
42 | ).draw(); |
|
43 | ).draw(); | |
43 | }) |
|
44 | }) | |
44 | ); |
|
45 | ); | |
45 |
|
46 | |||
46 |
|
47 | |||
47 | }); |
|
48 | }); | |
48 |
|
49 | |||
49 | </script> |
|
50 | </script> |
@@ -1,149 +1,150 b'' | |||||
1 | <%namespace name="base" file="/base/base.mako"/> |
|
1 | <%namespace name="base" file="/base/base.mako"/> | |
2 |
|
2 | |||
3 | <div class="panel panel-default"> |
|
3 | <div class="panel panel-default"> | |
4 | <div class="panel-heading"> |
|
4 | <div class="panel-heading"> | |
5 | <h3 class="panel-title"> |
|
5 | <h3 class="panel-title"> | |
6 | ${base.gravatar_with_user(c.user.username, 16, tooltip=False, _class='pull-left')} |
|
6 | ${base.gravatar_with_user(c.user.username, 16, tooltip=False, _class='pull-left')} | |
7 | - ${_('User groups administration')} |
|
7 | - ${_('User groups administration')} | |
8 | </h3> |
|
8 | </h3> | |
9 | </div> |
|
9 | </div> | |
10 | <div class="panel-body"> |
|
10 | <div class="panel-body"> | |
11 | <div class="fields"> |
|
11 | <div class="fields"> | |
12 | <div class="field"> |
|
12 | <div class="field"> | |
13 | <div class="label label-checkbox"> |
|
13 | <div class="label label-checkbox"> | |
14 | <label for="users_group_active">${_('Add user to user group')}:</label> |
|
14 | <label for="users_group_active">${_('Add user to user group')}:</label> | |
15 | </div> |
|
15 | </div> | |
16 | <div class="input"> |
|
16 | <div class="input"> | |
17 | ${h.text('add_user_to_group', placeholder="user group name", class_="medium")} |
|
17 | ${h.text('add_user_to_group', placeholder="user group name", class_="medium")} | |
18 | </div> |
|
18 | </div> | |
19 |
|
19 | |||
20 | </div> |
|
20 | </div> | |
21 | </div> |
|
21 | </div> | |
22 |
|
22 | |||
23 | <div class="groups_management"> |
|
23 | <div class="groups_management"> | |
24 | ${h.secure_form(h.route_path('edit_user_groups_management_updates', user_id=c.user.user_id), request=request)} |
|
24 | ${h.secure_form(h.route_path('edit_user_groups_management_updates', user_id=c.user.user_id), request=request)} | |
25 | <div id="repos_list_wrap"> |
|
25 | <div id="repos_list_wrap"> | |
26 | <table id="user_group_list_table" class="display"></table> |
|
26 | <table id="user_group_list_table" class="display"></table> | |
27 | </div> |
|
27 | </div> | |
28 | <div class="buttons"> |
|
28 | <div class="buttons"> | |
29 | ${h.submit('save',_('Save'),class_="btn")} |
|
29 | ${h.submit('save',_('Save'),class_="btn")} | |
30 | </div> |
|
30 | </div> | |
31 | ${h.end_form()} |
|
31 | ${h.end_form()} | |
32 | </div> |
|
32 | </div> | |
33 | </div> |
|
33 | </div> | |
34 | </div> |
|
34 | </div> | |
35 | <script> |
|
35 | <script> | |
36 | var api; |
|
36 | var api; | |
37 | $(document).ready(function() { |
|
37 | $(document).ready(function() { | |
38 |
|
38 | |||
39 | var get_datatable_count = function(){ |
|
39 | var get_datatable_count = function(){ | |
40 | $('#user_group_count').text(api.page.info().recordsDisplay); |
|
40 | $('#user_group_count').text(api.page.info().recordsDisplay); | |
41 | }; |
|
41 | }; | |
42 |
|
42 | |||
43 | $('#user_group_list_table').on('click', 'a.editor_remove', function (e) { |
|
43 | $('#user_group_list_table').on('click', 'a.editor_remove', function (e) { | |
44 | e.preventDefault(); |
|
44 | e.preventDefault(); | |
45 | var row = api.row($(this).closest('tr')); |
|
45 | var row = api.row($(this).closest('tr')); | |
46 | row.remove().draw(); |
|
46 | row.remove().draw(); | |
47 | } ); |
|
47 | } ); | |
48 |
|
48 | |||
|
49 | var groups_data = ${c.groups|n}; | |||
49 | $('#user_group_list_table').DataTable({ |
|
50 | $('#user_group_list_table').DataTable({ | |
50 |
data: |
|
51 | data: groups_data, | |
51 | dom: 'rtp', |
|
52 | dom: 'rtp', | |
52 | pageLength: ${c.visual.admin_grid_items}, |
|
53 | pageLength: ${c.visual.admin_grid_items}, | |
53 | order: [[ 0, "asc" ]], |
|
54 | order: [[ 0, "asc" ]], | |
54 | columns: [ |
|
55 | columns: [ | |
55 | { data: {"_": "group_name", |
|
56 | { data: {"_": "group_name", | |
56 | "sort": "group_name"}, title: "${_('Name')}", className: "td-componentname," , |
|
57 | "sort": "group_name"}, title: "${_('Name')}", className: "td-componentname," , | |
57 | render: function (data,type,full,meta) |
|
58 | render: function (data,type,full,meta) | |
58 | {return '<div><i class="icon-user-group" title="User group">'+data+'</i></div>'}}, |
|
59 | {return '<div><i class="icon-user-group" title="User group">'+data+'</i></div>'}}, | |
59 |
|
60 | |||
60 | { data: {"_": "group_description", |
|
61 | { data: {"_": "group_description", | |
61 | "sort": "group_description"}, title: "${_('Description')}", className: "td-description" }, |
|
62 | "sort": "group_description"}, title: "${_('Description')}", className: "td-description" }, | |
62 | { data: {"_": "users_group_id"}, className: "td-user", |
|
63 | { data: {"_": "users_group_id"}, className: "td-user", | |
63 | render: function (data,type,full,meta) |
|
64 | render: function (data,type,full,meta) | |
64 | {return '<input type="hidden" name="users_group_id" value="'+data+'">'}}, |
|
65 | {return '<input type="hidden" name="users_group_id" value="'+data+'">'}}, | |
65 | { data: {"_": "active", |
|
66 | { data: {"_": "active", | |
66 | "sort": "active"}, title: "${_('Active')}", className: "td-active"}, |
|
67 | "sort": "active"}, title: "${_('Active')}", className: "td-active"}, | |
67 | { data: {"_": "owner_data"}, title: "${_('Owner')}", className: "td-user", |
|
68 | { data: {"_": "owner_data"}, title: "${_('Owner')}", className: "td-user", | |
68 | render: function (data,type,full,meta) |
|
69 | render: function (data,type,full,meta) | |
69 | {return '<div class="rc-user tooltip">'+ |
|
70 | {return '<div class="rc-user tooltip">'+ | |
70 | '<img class="gravatar" src="'+ data.owner_icon +'" height="16" width="16">'+ |
|
71 | '<img class="gravatar" src="'+ data.owner_icon +'" height="16" width="16">'+ | |
71 | data.owner +'</div>' |
|
72 | data.owner +'</div>' | |
72 | } |
|
73 | } | |
73 | }, |
|
74 | }, | |
74 | { data: null, |
|
75 | { data: null, | |
75 | title: "${_('Action')}", |
|
76 | title: "${_('Action')}", | |
76 | className: "td-action", |
|
77 | className: "td-action", | |
77 | defaultContent: '-' |
|
78 | defaultContent: '-' | |
78 | } |
|
79 | } | |
79 | ], |
|
80 | ], | |
80 | language: { |
|
81 | language: { | |
81 | paginate: DEFAULT_GRID_PAGINATION, |
|
82 | paginate: DEFAULT_GRID_PAGINATION, | |
82 | emptyTable: _gettext("No user groups available yet.") |
|
83 | emptyTable: _gettext("No user groups available yet.") | |
83 | }, |
|
84 | }, | |
84 | "initComplete": function( settings, json ) { |
|
85 | "initComplete": function( settings, json ) { | |
85 | var data_grid = $('#user_group_list_table').dataTable(); |
|
86 | var data_grid = $('#user_group_list_table').dataTable(); | |
86 | api = data_grid.api(); |
|
87 | api = data_grid.api(); | |
87 | get_datatable_count(); |
|
88 | get_datatable_count(); | |
88 | } |
|
89 | } | |
89 | }); |
|
90 | }); | |
90 |
|
91 | |||
91 | // update the counter when doing search |
|
92 | // update the counter when doing search | |
92 | $('#user_group_list_table').on( 'search.dt', function (e,settings) { |
|
93 | $('#user_group_list_table').on( 'search.dt', function (e,settings) { | |
93 | get_datatable_count(); |
|
94 | get_datatable_count(); | |
94 | }); |
|
95 | }); | |
95 |
|
96 | |||
96 | // filter, filter both grids |
|
97 | // filter, filter both grids | |
97 | $('#q_filter').on( 'keyup', function () { |
|
98 | $('#q_filter').on( 'keyup', function () { | |
98 | var user_api = $('#user_group_list_table').dataTable().api(); |
|
99 | var user_api = $('#user_group_list_table').dataTable().api(); | |
99 | user_api |
|
100 | user_api | |
100 | .columns(0) |
|
101 | .columns(0) | |
101 | .search(this.value) |
|
102 | .search(this.value) | |
102 | .draw(); |
|
103 | .draw(); | |
103 | }); |
|
104 | }); | |
104 |
|
105 | |||
105 | // refilter table if page load via back button |
|
106 | // refilter table if page load via back button | |
106 | $("#q_filter").trigger('keyup'); |
|
107 | $("#q_filter").trigger('keyup'); | |
107 |
|
108 | |||
108 | }); |
|
109 | }); | |
109 |
|
110 | |||
110 | $('#language').select2({ |
|
111 | $('#language').select2({ | |
111 | 'containerCssClass': "drop-menu", |
|
112 | 'containerCssClass': "drop-menu", | |
112 | 'dropdownCssClass': "drop-menu-dropdown", |
|
113 | 'dropdownCssClass': "drop-menu-dropdown", | |
113 | 'dropdownAutoWidth': true |
|
114 | 'dropdownAutoWidth': true | |
114 | }); |
|
115 | }); | |
115 |
|
116 | |||
116 |
|
117 | |||
117 |
|
118 | |||
118 | $(document).ready(function(){ |
|
119 | $(document).ready(function(){ | |
119 | $("#group_parent_id").select2({ |
|
120 | $("#group_parent_id").select2({ | |
120 | 'containerCssClass': "drop-menu", |
|
121 | 'containerCssClass': "drop-menu", | |
121 | 'dropdownCssClass': "drop-menu-dropdown", |
|
122 | 'dropdownCssClass': "drop-menu-dropdown", | |
122 | 'dropdownAutoWidth': true |
|
123 | 'dropdownAutoWidth': true | |
123 | }); |
|
124 | }); | |
124 |
|
125 | |||
125 | $('#add_user_to_group').autocomplete({ |
|
126 | $('#add_user_to_group').autocomplete({ | |
126 | serviceUrl: pyroutes.url('user_group_autocomplete_data'), |
|
127 | serviceUrl: pyroutes.url('user_group_autocomplete_data'), | |
127 | minChars:2, |
|
128 | minChars:2, | |
128 | maxHeight:400, |
|
129 | maxHeight:400, | |
129 | width:300, |
|
130 | width:300, | |
130 | deferRequestBy: 300, //miliseconds |
|
131 | deferRequestBy: 300, //miliseconds | |
131 | showNoSuggestionNotice: true, |
|
132 | showNoSuggestionNotice: true, | |
132 | params: { user_groups:true }, |
|
133 | params: { user_groups:true }, | |
133 | formatResult: autocompleteFormatResult, |
|
134 | formatResult: autocompleteFormatResult, | |
134 | lookupFilter: autocompleteFilterResult, |
|
135 | lookupFilter: autocompleteFilterResult, | |
135 | onSelect: function(element, suggestion){ |
|
136 | onSelect: function(element, suggestion){ | |
136 | var owner = {owner_icon: suggestion.owner_icon, owner:suggestion.owner}; |
|
137 | var owner = {owner_icon: suggestion.owner_icon, owner:suggestion.owner}; | |
137 | api.row.add( |
|
138 | api.row.add( | |
138 | {"active": suggestion.active, |
|
139 | {"active": suggestion.active, | |
139 | "owner_data": owner, |
|
140 | "owner_data": owner, | |
140 | "users_group_id": suggestion.id, |
|
141 | "users_group_id": suggestion.id, | |
141 | "group_description": suggestion.description, |
|
142 | "group_description": suggestion.description, | |
142 | "group_name": suggestion.value}).draw(); |
|
143 | "group_name": suggestion.value}).draw(); | |
143 | } |
|
144 | } | |
144 | }); |
|
145 | }); | |
145 | }) |
|
146 | }) | |
146 |
|
147 | |||
147 | </script> |
|
148 | </script> | |
148 |
|
149 | |||
149 |
|
150 |
@@ -1,118 +1,119 b'' | |||||
1 | <%inherit file="/base/base.mako"/> |
|
1 | <%inherit file="/base/base.mako"/> | |
2 | <%namespace name="components" file="/summary/components.mako"/> |
|
2 | <%namespace name="components" file="/summary/components.mako"/> | |
3 |
|
3 | |||
4 | <%def name="title()"> |
|
4 | <%def name="title()"> | |
5 | ${_('{} Bookmarks').format(c.repo_name)} |
|
5 | ${_('{} Bookmarks').format(c.repo_name)} | |
6 | %if c.rhodecode_name: |
|
6 | %if c.rhodecode_name: | |
7 | · ${h.branding(c.rhodecode_name)} |
|
7 | · ${h.branding(c.rhodecode_name)} | |
8 | %endif |
|
8 | %endif | |
9 | </%def> |
|
9 | </%def> | |
10 |
|
10 | |||
11 | <%def name="breadcrumbs_links()"></%def> |
|
11 | <%def name="breadcrumbs_links()"></%def> | |
12 |
|
12 | |||
13 | <%def name="menu_bar_nav()"> |
|
13 | <%def name="menu_bar_nav()"> | |
14 | ${self.menu_items(active='repositories')} |
|
14 | ${self.menu_items(active='repositories')} | |
15 | </%def> |
|
15 | </%def> | |
16 |
|
16 | |||
17 | <%def name="menu_bar_subnav()"> |
|
17 | <%def name="menu_bar_subnav()"> | |
18 | ${self.repo_menu(active='summary')} |
|
18 | ${self.repo_menu(active='summary')} | |
19 | </%def> |
|
19 | </%def> | |
20 |
|
20 | |||
21 | <%def name="main()"> |
|
21 | <%def name="main()"> | |
22 | <div id="repo-summary" class="summary"> |
|
22 | <div id="repo-summary" class="summary"> | |
23 | ${components.summary_detail(breadcrumbs_links=self.breadcrumbs_links(), show_downloads=False, simplified=True)} |
|
23 | ${components.summary_detail(breadcrumbs_links=self.breadcrumbs_links(), show_downloads=False, simplified=True)} | |
24 | </div> |
|
24 | </div> | |
25 |
|
25 | |||
26 | <div class="box"> |
|
26 | <div class="box"> | |
27 | <div class="title"> |
|
27 | <div class="title"> | |
28 |
|
28 | |||
29 | %if c.has_references: |
|
29 | %if c.has_references: | |
30 | <ul class="links"> |
|
30 | <ul class="links"> | |
31 | <li> |
|
31 | <li> | |
32 | <input type="submit" id="compare_action" class="btn" disabled="disabled" value="${_('Compare Selected Bookmarks')}"> |
|
32 | <input type="submit" id="compare_action" class="btn" disabled="disabled" value="${_('Compare Selected Bookmarks')}"> | |
33 | </li> |
|
33 | </li> | |
34 | </ul> |
|
34 | </ul> | |
35 | %endif |
|
35 | %endif | |
36 | %if c.has_references: |
|
36 | %if c.has_references: | |
37 | <div class="grid-quick-filter"> |
|
37 | <div class="grid-quick-filter"> | |
38 | <ul class="grid-filter-box"> |
|
38 | <ul class="grid-filter-box"> | |
39 | <li class="grid-filter-box-icon"> |
|
39 | <li class="grid-filter-box-icon"> | |
40 | <i class="icon-search"></i> |
|
40 | <i class="icon-search"></i> | |
41 | </li> |
|
41 | </li> | |
42 | <li class="grid-filter-box-input"> |
|
42 | <li class="grid-filter-box-input"> | |
43 | <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/> |
|
43 | <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/> | |
44 | </li> |
|
44 | </li> | |
45 | </ul> |
|
45 | </ul> | |
46 | </div> |
|
46 | </div> | |
47 | <div id="obj_count">0</div> |
|
47 | <div id="obj_count">0</div> | |
48 | %endif |
|
48 | %endif | |
49 | </div> |
|
49 | </div> | |
50 |
|
50 | |||
51 | <table id="obj_list_table" class="rctable table-bordered"></table> |
|
51 | <table id="obj_list_table" class="rctable table-bordered"></table> | |
52 | </div> |
|
52 | </div> | |
53 |
|
53 | |||
54 |
|
54 | |||
55 | <script type="text/javascript"> |
|
55 | <script type="text/javascript"> | |
56 | $(document).ready(function() { |
|
56 | $(document).ready(function() { | |
57 |
|
57 | |||
58 | var get_datatable_count = function(){ |
|
58 | var get_datatable_count = function(){ | |
59 | var api = $('#obj_list_table').dataTable().api(); |
|
59 | var api = $('#obj_list_table').dataTable().api(); | |
60 | var total = api.page.info().recordsDisplay |
|
60 | var total = api.page.info().recordsDisplay | |
61 | var _text = _ngettext('{0} bookmark', '{0} bookmarks', total).format(total); |
|
61 | var _text = _ngettext('{0} bookmark', '{0} bookmarks', total).format(total); | |
62 | $('#obj_count').text(_text); |
|
62 | $('#obj_count').text(_text); | |
63 | }; |
|
63 | }; | |
64 |
|
64 | |||
|
65 | var bookmarks_data = ${c.data|n}; | |||
65 | // object list |
|
66 | // object list | |
66 | $('#obj_list_table').DataTable({ |
|
67 | $('#obj_list_table').DataTable({ | |
67 |
data: |
|
68 | data: bookmarks_data, | |
68 | dom: 'rtp', |
|
69 | dom: 'rtp', | |
69 | pageLength: ${c.visual.dashboard_items}, |
|
70 | pageLength: ${c.visual.dashboard_items}, | |
70 | order: [[ 0, "asc" ]], |
|
71 | order: [[ 0, "asc" ]], | |
71 | columns: [ |
|
72 | columns: [ | |
72 | { data: {"_": "name", |
|
73 | { data: {"_": "name", | |
73 | "sort": "name_raw"}, title: "${_('Name')}", className: "td-tags" }, |
|
74 | "sort": "name_raw"}, title: "${_('Name')}", className: "td-tags" }, | |
74 | { data: {"_": "date", |
|
75 | { data: {"_": "date", | |
75 | "sort": "date_raw"}, title: "${_('Date')}", className: "td-time" }, |
|
76 | "sort": "date_raw"}, title: "${_('Date')}", className: "td-time" }, | |
76 | { data: {"_": "author", |
|
77 | { data: {"_": "author", | |
77 | "sort": "author"}, title: "${_('Author')}", className: "td-user" }, |
|
78 | "sort": "author"}, title: "${_('Author')}", className: "td-user" }, | |
78 | { data: {"_": "commit", |
|
79 | { data: {"_": "commit", | |
79 | "sort": "commit_raw", |
|
80 | "sort": "commit_raw", | |
80 | "type": Number}, title: "${_('Commit')}", className: "td-hash" }, |
|
81 | "type": Number}, title: "${_('Commit')}", className: "td-hash" }, | |
81 | { data: {"_": "compare", |
|
82 | { data: {"_": "compare", | |
82 | "sort": "compare"}, title: "${_('Compare')}", className: "td-compare" } |
|
83 | "sort": "compare"}, title: "${_('Compare')}", className: "td-compare" } | |
83 | ], |
|
84 | ], | |
84 | language: { |
|
85 | language: { | |
85 | paginate: DEFAULT_GRID_PAGINATION, |
|
86 | paginate: DEFAULT_GRID_PAGINATION, | |
86 | emptyTable: _gettext("No bookmarks available yet.") |
|
87 | emptyTable: _gettext("No bookmarks available yet.") | |
87 | }, |
|
88 | }, | |
88 | "initComplete": function(settings, json) { |
|
89 | "initComplete": function(settings, json) { | |
89 | get_datatable_count(); |
|
90 | get_datatable_count(); | |
90 | timeagoActivate(); |
|
91 | timeagoActivate(); | |
91 | tooltipActivate(); |
|
92 | tooltipActivate(); | |
92 | compare_radio_buttons("${c.repo_name}", 'book'); |
|
93 | compare_radio_buttons("${c.repo_name}", 'book'); | |
93 | } |
|
94 | } | |
94 | }); |
|
95 | }); | |
95 |
|
96 | |||
96 | // update when things change |
|
97 | // update when things change | |
97 | $('#obj_list_table').on('draw.dt', function() { |
|
98 | $('#obj_list_table').on('draw.dt', function() { | |
98 | get_datatable_count(); |
|
99 | get_datatable_count(); | |
99 | timeagoActivate(); |
|
100 | timeagoActivate(); | |
100 | tooltipActivate(); |
|
101 | tooltipActivate(); | |
101 | }); |
|
102 | }); | |
102 |
|
103 | |||
103 | // filter, filter both grids |
|
104 | // filter, filter both grids | |
104 | $('#q_filter').on('keyup', function() { |
|
105 | $('#q_filter').on('keyup', function() { | |
105 | var obj_api = $('#obj_list_table').dataTable().api(); |
|
106 | var obj_api = $('#obj_list_table').dataTable().api(); | |
106 | obj_api |
|
107 | obj_api | |
107 | .columns(0) |
|
108 | .columns(0) | |
108 | .search(this.value) |
|
109 | .search(this.value) | |
109 | .draw(); |
|
110 | .draw(); | |
110 | }); |
|
111 | }); | |
111 |
|
112 | |||
112 | // refilter table if page load via back button |
|
113 | // refilter table if page load via back button | |
113 | $("#q_filter").trigger('keyup'); |
|
114 | $("#q_filter").trigger('keyup'); | |
114 |
|
115 | |||
115 | }); |
|
116 | }); | |
116 |
|
117 | |||
117 | </script> |
|
118 | </script> | |
118 | </%def> |
|
119 | </%def> |
@@ -1,117 +1,118 b'' | |||||
1 | <%inherit file="/base/base.mako"/> |
|
1 | <%inherit file="/base/base.mako"/> | |
2 | <%namespace name="components" file="/summary/components.mako"/> |
|
2 | <%namespace name="components" file="/summary/components.mako"/> | |
3 |
|
3 | |||
4 | <%def name="title()"> |
|
4 | <%def name="title()"> | |
5 | ${_('{} Branches').format(c.repo_name)} |
|
5 | ${_('{} Branches').format(c.repo_name)} | |
6 | %if c.rhodecode_name: |
|
6 | %if c.rhodecode_name: | |
7 | · ${h.branding(c.rhodecode_name)} |
|
7 | · ${h.branding(c.rhodecode_name)} | |
8 | %endif |
|
8 | %endif | |
9 | </%def> |
|
9 | </%def> | |
10 |
|
10 | |||
11 | <%def name="breadcrumbs_links()"></%def> |
|
11 | <%def name="breadcrumbs_links()"></%def> | |
12 |
|
12 | |||
13 | <%def name="menu_bar_nav()"> |
|
13 | <%def name="menu_bar_nav()"> | |
14 | ${self.menu_items(active='repositories')} |
|
14 | ${self.menu_items(active='repositories')} | |
15 | </%def> |
|
15 | </%def> | |
16 |
|
16 | |||
17 | <%def name="menu_bar_subnav()"> |
|
17 | <%def name="menu_bar_subnav()"> | |
18 | ${self.repo_menu(active='summary')} |
|
18 | ${self.repo_menu(active='summary')} | |
19 | </%def> |
|
19 | </%def> | |
20 |
|
20 | |||
21 | <%def name="main()"> |
|
21 | <%def name="main()"> | |
22 | <div id="repo-summary" class="summary"> |
|
22 | <div id="repo-summary" class="summary"> | |
23 | ${components.summary_detail(breadcrumbs_links=self.breadcrumbs_links(), show_downloads=False, simplified=True)} |
|
23 | ${components.summary_detail(breadcrumbs_links=self.breadcrumbs_links(), show_downloads=False, simplified=True)} | |
24 | </div> |
|
24 | </div> | |
25 |
|
25 | |||
26 | <div class="box"> |
|
26 | <div class="box"> | |
27 | <div class="title"> |
|
27 | <div class="title"> | |
28 |
|
28 | |||
29 | %if c.has_references: |
|
29 | %if c.has_references: | |
30 | <ul class="links"> |
|
30 | <ul class="links"> | |
31 | <li> |
|
31 | <li> | |
32 | <input type="submit" id="compare_action" class="btn" disabled="disabled" value="${_('Compare Selected Branches')}"/> |
|
32 | <input type="submit" id="compare_action" class="btn" disabled="disabled" value="${_('Compare Selected Branches')}"/> | |
33 | </li> |
|
33 | </li> | |
34 | </ul> |
|
34 | </ul> | |
35 | %endif |
|
35 | %endif | |
36 | %if c.has_references: |
|
36 | %if c.has_references: | |
37 | <div class="grid-quick-filter"> |
|
37 | <div class="grid-quick-filter"> | |
38 | <ul class="grid-filter-box"> |
|
38 | <ul class="grid-filter-box"> | |
39 | <li class="grid-filter-box-icon"> |
|
39 | <li class="grid-filter-box-icon"> | |
40 | <i class="icon-search"></i> |
|
40 | <i class="icon-search"></i> | |
41 | </li> |
|
41 | </li> | |
42 | <li class="grid-filter-box-input"> |
|
42 | <li class="grid-filter-box-input"> | |
43 | <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/> |
|
43 | <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/> | |
44 | </li> |
|
44 | </li> | |
45 | </ul> |
|
45 | </ul> | |
46 | </div> |
|
46 | </div> | |
47 | <div id="obj_count">0</div> |
|
47 | <div id="obj_count">0</div> | |
48 | %endif |
|
48 | %endif | |
49 | </div> |
|
49 | </div> | |
50 | <table id="obj_list_table" class="rctable table-bordered"></table> |
|
50 | <table id="obj_list_table" class="rctable table-bordered"></table> | |
51 | </div> |
|
51 | </div> | |
52 |
|
52 | |||
53 | <script type="text/javascript"> |
|
53 | <script type="text/javascript"> | |
54 | $(document).ready(function() { |
|
54 | $(document).ready(function() { | |
55 |
|
55 | |||
56 | var get_datatable_count = function(){ |
|
56 | var get_datatable_count = function(){ | |
57 | var api = $('#obj_list_table').dataTable().api(); |
|
57 | var api = $('#obj_list_table').dataTable().api(); | |
58 | var total = api.page.info().recordsDisplay |
|
58 | var total = api.page.info().recordsDisplay | |
59 | var _text = _ngettext('{0} branch', '{0} branches', total).format(total); |
|
59 | var _text = _ngettext('{0} branch', '{0} branches', total).format(total); | |
60 |
|
60 | |||
61 | $('#obj_count').text(_text); |
|
61 | $('#obj_count').text(_text); | |
62 | }; |
|
62 | }; | |
63 |
|
63 | |||
|
64 | var branches_data = ${c.data|n}; | |||
64 | // object list |
|
65 | // object list | |
65 | $('#obj_list_table').DataTable({ |
|
66 | $('#obj_list_table').DataTable({ | |
66 |
data: |
|
67 | data: branches_data, | |
67 | dom: 'rtp', |
|
68 | dom: 'rtp', | |
68 | pageLength: ${c.visual.dashboard_items}, |
|
69 | pageLength: ${c.visual.dashboard_items}, | |
69 | order: [[ 0, "asc" ]], |
|
70 | order: [[ 0, "asc" ]], | |
70 | columns: [ |
|
71 | columns: [ | |
71 | { data: {"_": "name", |
|
72 | { data: {"_": "name", | |
72 | "sort": "name_raw"}, title: "${_('Name')}", className: "td-tags" }, |
|
73 | "sort": "name_raw"}, title: "${_('Name')}", className: "td-tags" }, | |
73 | { data: {"_": "date", |
|
74 | { data: {"_": "date", | |
74 | "sort": "date_raw"}, title: "${_('Date')}", className: "td-time" }, |
|
75 | "sort": "date_raw"}, title: "${_('Date')}", className: "td-time" }, | |
75 | { data: {"_": "author", |
|
76 | { data: {"_": "author", | |
76 | "sort": "author"}, title: "${_('Author')}", className: "td-user" }, |
|
77 | "sort": "author"}, title: "${_('Author')}", className: "td-user" }, | |
77 | { data: {"_": "commit", |
|
78 | { data: {"_": "commit", | |
78 | "sort": "commit_raw", |
|
79 | "sort": "commit_raw", | |
79 | "type": Number}, title: "${_('Commit')}", className: "td-hash" }, |
|
80 | "type": Number}, title: "${_('Commit')}", className: "td-hash" }, | |
80 | { data: {"_": "compare", |
|
81 | { data: {"_": "compare", | |
81 | "sort": "compare"}, title: "${_('Compare')}", className: "td-compare" } |
|
82 | "sort": "compare"}, title: "${_('Compare')}", className: "td-compare" } | |
82 | ], |
|
83 | ], | |
83 | language: { |
|
84 | language: { | |
84 | paginate: DEFAULT_GRID_PAGINATION, |
|
85 | paginate: DEFAULT_GRID_PAGINATION, | |
85 | emptyTable: _gettext("No branches available yet.") |
|
86 | emptyTable: _gettext("No branches available yet.") | |
86 | }, |
|
87 | }, | |
87 | "initComplete": function( settings, json ) { |
|
88 | "initComplete": function( settings, json ) { | |
88 | get_datatable_count(); |
|
89 | get_datatable_count(); | |
89 | timeagoActivate(); |
|
90 | timeagoActivate(); | |
90 | tooltipActivate(); |
|
91 | tooltipActivate(); | |
91 | compare_radio_buttons("${c.repo_name}", 'branch'); |
|
92 | compare_radio_buttons("${c.repo_name}", 'branch'); | |
92 | } |
|
93 | } | |
93 | }); |
|
94 | }); | |
94 |
|
95 | |||
95 | // update when things change |
|
96 | // update when things change | |
96 | $('#obj_list_table').on('draw.dt', function() { |
|
97 | $('#obj_list_table').on('draw.dt', function() { | |
97 | get_datatable_count(); |
|
98 | get_datatable_count(); | |
98 | timeagoActivate(); |
|
99 | timeagoActivate(); | |
99 | tooltipActivate(); |
|
100 | tooltipActivate(); | |
100 | }); |
|
101 | }); | |
101 |
|
102 | |||
102 | // filter, filter both grids |
|
103 | // filter, filter both grids | |
103 | $('#q_filter').on( 'keyup', function () { |
|
104 | $('#q_filter').on( 'keyup', function () { | |
104 | var obj_api = $('#obj_list_table').dataTable().api(); |
|
105 | var obj_api = $('#obj_list_table').dataTable().api(); | |
105 | obj_api |
|
106 | obj_api | |
106 | .columns(0) |
|
107 | .columns(0) | |
107 | .search(this.value) |
|
108 | .search(this.value) | |
108 | .draw(); |
|
109 | .draw(); | |
109 | }); |
|
110 | }); | |
110 |
|
111 | |||
111 | // refilter table if page load via back button |
|
112 | // refilter table if page load via back button | |
112 | $("#q_filter").trigger('keyup'); |
|
113 | $("#q_filter").trigger('keyup'); | |
113 |
|
114 | |||
114 | }); |
|
115 | }); | |
115 |
|
116 | |||
116 | </script> |
|
117 | </script> | |
117 | </%def> |
|
118 | </%def> |
@@ -1,117 +1,118 b'' | |||||
1 | <%inherit file="/base/base.mako"/> |
|
1 | <%inherit file="/base/base.mako"/> | |
2 | <%namespace name="components" file="/summary/components.mako"/> |
|
2 | <%namespace name="components" file="/summary/components.mako"/> | |
3 |
|
3 | |||
4 | <%def name="title()"> |
|
4 | <%def name="title()"> | |
5 | ${_('{} Tags').format(c.repo_name)} |
|
5 | ${_('{} Tags').format(c.repo_name)} | |
6 | %if c.rhodecode_name: |
|
6 | %if c.rhodecode_name: | |
7 | · ${h.branding(c.rhodecode_name)} |
|
7 | · ${h.branding(c.rhodecode_name)} | |
8 | %endif |
|
8 | %endif | |
9 | </%def> |
|
9 | </%def> | |
10 |
|
10 | |||
11 | <%def name="breadcrumbs_links()"></%def> |
|
11 | <%def name="breadcrumbs_links()"></%def> | |
12 |
|
12 | |||
13 | <%def name="menu_bar_nav()"> |
|
13 | <%def name="menu_bar_nav()"> | |
14 | ${self.menu_items(active='repositories')} |
|
14 | ${self.menu_items(active='repositories')} | |
15 | </%def> |
|
15 | </%def> | |
16 |
|
16 | |||
17 | <%def name="menu_bar_subnav()"> |
|
17 | <%def name="menu_bar_subnav()"> | |
18 | ${self.repo_menu(active='summary')} |
|
18 | ${self.repo_menu(active='summary')} | |
19 | </%def> |
|
19 | </%def> | |
20 |
|
20 | |||
21 | <%def name="main()"> |
|
21 | <%def name="main()"> | |
22 | <div id="repo-summary" class="summary"> |
|
22 | <div id="repo-summary" class="summary"> | |
23 | ${components.summary_detail(breadcrumbs_links=self.breadcrumbs_links(), show_downloads=False, simplified=True)} |
|
23 | ${components.summary_detail(breadcrumbs_links=self.breadcrumbs_links(), show_downloads=False, simplified=True)} | |
24 | </div> |
|
24 | </div> | |
25 |
|
25 | |||
26 | <div class="box"> |
|
26 | <div class="box"> | |
27 | <div class="title"> |
|
27 | <div class="title"> | |
28 |
|
28 | |||
29 | %if c.has_references: |
|
29 | %if c.has_references: | |
30 | <ul class="links"> |
|
30 | <ul class="links"> | |
31 | <li> |
|
31 | <li> | |
32 | <input type="submit" id="compare_action" class="btn" disabled="disabled" value="${_('Compare Selected Tags')}"> |
|
32 | <input type="submit" id="compare_action" class="btn" disabled="disabled" value="${_('Compare Selected Tags')}"> | |
33 | </li> |
|
33 | </li> | |
34 | </ul> |
|
34 | </ul> | |
35 | %endif |
|
35 | %endif | |
36 | %if c.has_references: |
|
36 | %if c.has_references: | |
37 | <div class="grid-quick-filter"> |
|
37 | <div class="grid-quick-filter"> | |
38 | <ul class="grid-filter-box"> |
|
38 | <ul class="grid-filter-box"> | |
39 | <li class="grid-filter-box-icon"> |
|
39 | <li class="grid-filter-box-icon"> | |
40 | <i class="icon-search"></i> |
|
40 | <i class="icon-search"></i> | |
41 | </li> |
|
41 | </li> | |
42 | <li class="grid-filter-box-input"> |
|
42 | <li class="grid-filter-box-input"> | |
43 | <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/> |
|
43 | <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/> | |
44 | </li> |
|
44 | </li> | |
45 | </ul> |
|
45 | </ul> | |
46 | </div> |
|
46 | </div> | |
47 | <div id="obj_count">0</div> |
|
47 | <div id="obj_count">0</div> | |
48 | %endif |
|
48 | %endif | |
49 | </div> |
|
49 | </div> | |
50 | <table id="obj_list_table" class="rctable table-bordered"></table> |
|
50 | <table id="obj_list_table" class="rctable table-bordered"></table> | |
51 | </div> |
|
51 | </div> | |
52 |
|
52 | |||
53 |
|
53 | |||
54 | <script type="text/javascript"> |
|
54 | <script type="text/javascript"> | |
55 | $(document).ready(function() { |
|
55 | $(document).ready(function() { | |
56 |
|
56 | |||
57 | var get_datatable_count = function(){ |
|
57 | var get_datatable_count = function(){ | |
58 | var api = $('#obj_list_table').dataTable().api(); |
|
58 | var api = $('#obj_list_table').dataTable().api(); | |
59 | var total = api.page.info().recordsDisplay |
|
59 | var total = api.page.info().recordsDisplay | |
60 | var _text = _ngettext('{0} tag', '{0} tags', total).format(total); |
|
60 | var _text = _ngettext('{0} tag', '{0} tags', total).format(total); | |
61 |
|
61 | |||
62 | $('#obj_count').text(_text); |
|
62 | $('#obj_count').text(_text); | |
63 | }; |
|
63 | }; | |
64 |
|
64 | |||
|
65 | var tags_data = ${c.data|n}; | |||
65 | // object list |
|
66 | // object list | |
66 | $('#obj_list_table').DataTable({ |
|
67 | $('#obj_list_table').DataTable({ | |
67 |
data: |
|
68 | data: tags_data, | |
68 | dom: 'rtp', |
|
69 | dom: 'rtp', | |
69 | pageLength: ${c.visual.dashboard_items}, |
|
70 | pageLength: ${c.visual.dashboard_items}, | |
70 | order: [[ 0, "asc" ]], |
|
71 | order: [[ 0, "asc" ]], | |
71 | columns: [ |
|
72 | columns: [ | |
72 | { data: {"_": "name", |
|
73 | { data: {"_": "name", | |
73 | "sort": "name_raw"}, title: "${_('Name')}", className: "td-tags" }, |
|
74 | "sort": "name_raw"}, title: "${_('Name')}", className: "td-tags" }, | |
74 | { data: {"_": "date", |
|
75 | { data: {"_": "date", | |
75 | "sort": "date_raw"}, title: "${_('Date')}", className: "td-time" }, |
|
76 | "sort": "date_raw"}, title: "${_('Date')}", className: "td-time" }, | |
76 | { data: {"_": "author", |
|
77 | { data: {"_": "author", | |
77 | "sort": "author"}, title: "${_('Author')}", className: "td-user" }, |
|
78 | "sort": "author"}, title: "${_('Author')}", className: "td-user" }, | |
78 | { data: {"_": "commit", |
|
79 | { data: {"_": "commit", | |
79 | "sort": "commit_raw", |
|
80 | "sort": "commit_raw", | |
80 | "type": Number}, title: "${_('Commit')}", className: "td-hash" }, |
|
81 | "type": Number}, title: "${_('Commit')}", className: "td-hash" }, | |
81 | { data: {"_": "compare", |
|
82 | { data: {"_": "compare", | |
82 | "sort": "compare"}, title: "${_('Compare')}", className: "td-compare" } |
|
83 | "sort": "compare"}, title: "${_('Compare')}", className: "td-compare" } | |
83 | ], |
|
84 | ], | |
84 | language: { |
|
85 | language: { | |
85 | paginate: DEFAULT_GRID_PAGINATION, |
|
86 | paginate: DEFAULT_GRID_PAGINATION, | |
86 | emptyTable: _gettext("No tags available yet.") |
|
87 | emptyTable: _gettext("No tags available yet.") | |
87 | }, |
|
88 | }, | |
88 | "initComplete": function(settings, json) { |
|
89 | "initComplete": function(settings, json) { | |
89 | get_datatable_count(); |
|
90 | get_datatable_count(); | |
90 | timeagoActivate(); |
|
91 | timeagoActivate(); | |
91 | tooltipActivate(); |
|
92 | tooltipActivate(); | |
92 | compare_radio_buttons("${c.repo_name}", 'tag'); |
|
93 | compare_radio_buttons("${c.repo_name}", 'tag'); | |
93 | } |
|
94 | } | |
94 | }); |
|
95 | }); | |
95 |
|
96 | |||
96 | // update when things change |
|
97 | // update when things change | |
97 | $('#obj_list_table').on('draw.dt', function() { |
|
98 | $('#obj_list_table').on('draw.dt', function() { | |
98 | get_datatable_count(); |
|
99 | get_datatable_count(); | |
99 | timeagoActivate(); |
|
100 | timeagoActivate(); | |
100 | tooltipActivate(); |
|
101 | tooltipActivate(); | |
101 | }); |
|
102 | }); | |
102 |
|
103 | |||
103 | // filter, filter both grids |
|
104 | // filter, filter both grids | |
104 | $('#q_filter').on('keyup', function() { |
|
105 | $('#q_filter').on('keyup', function() { | |
105 | var obj_api = $('#obj_list_table').dataTable().api(); |
|
106 | var obj_api = $('#obj_list_table').dataTable().api(); | |
106 | obj_api |
|
107 | obj_api | |
107 | .columns(0) |
|
108 | .columns(0) | |
108 | .search(this.value) |
|
109 | .search(this.value) | |
109 | .draw(); |
|
110 | .draw(); | |
110 | }); |
|
111 | }); | |
111 |
|
112 | |||
112 | // refilter table if page load via back button |
|
113 | // refilter table if page load via back button | |
113 | $("#q_filter").trigger('keyup'); |
|
114 | $("#q_filter").trigger('keyup'); | |
114 | }); |
|
115 | }); | |
115 |
|
116 | |||
116 | </script> |
|
117 | </script> | |
117 | </%def> |
|
118 | </%def> |
General Comments 0
You need to be logged in to leave comments.
Login now