##// END OF EJS Templates
templates: use better variables names in loading ajax data
super-admin -
r5039:5cad06d1 default
parent child Browse files
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 &middot; ${h.branding(c.rhodecode_name)}
12 &middot; ${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: ${c.data|n},
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: ${c.data|n},
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: ${c.user_groups|n},
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: ${c.data|n},
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 &nbsp;- ${_('User groups administration')}
7 &nbsp;- ${_('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: ${c.groups|n},
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 &middot; ${h.branding(c.rhodecode_name)}
7 &middot; ${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: ${c.data | n},
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 &middot; ${h.branding(c.rhodecode_name)}
7 &middot; ${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: ${c.data|n},
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 &middot; ${h.branding(c.rhodecode_name)}
7 &middot; ${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: ${c.data|n},
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