##// END OF EJS Templates
#38 updated RhodeCode titles
marcink -
r619:a1ec653f default
parent child Browse files
Show More
@@ -1,118 +1,119 b''
1 div.codeblock {
1 div.codeblock {
2 overflow: auto;
2 overflow: auto;
3 padding: 0px;
3 padding: 0px;
4 border: 1px solid #ccc;
4 border: 1px solid #ccc;
5 background: #f8f8f8;
5 background: #f8f8f8;
6 font-size: 100%;
6 font-size: 100%;
7 line-height: 100%;
7 line-height: 100%;
8 /* new */
8 /* new */
9 line-height: 125%;
9 line-height: 125%;
10 }
10 }
11 div.codeblock .code-header{
11 div.codeblock .code-header{
12 border-bottom: 1px solid #CCCCCC;
12 border-bottom: 1px solid #CCCCCC;
13 background: #EEEEEE;
13 background: #EEEEEE;
14 padding:10px 0 10px 0;
14 padding:10px 0 10px 0;
15 }
15 }
16 div.codeblock .code-header .revision{
16 div.codeblock .code-header .revision{
17 margin-left:25px;
17 margin-left:25px;
18 font-weight: bold;
18 font-weight: bold;
19 }
19 }
20 div.codeblock .code-header .commit{
20 div.codeblock .code-header .commit{
21 margin-left:25px;
21 margin-left:25px;
22 font-weight: normal;
22 font-weight: normal;
23 white-space:pre;
23 }
24 }
24
25
25 div.codeblock .code-body table{
26 div.codeblock .code-body table{
26 width: 0 !important;
27 width: 0 !important;
27 }
28 }
28 div.code-body {
29 div.code-body {
29 background-color: #FFFFFF;
30 background-color: #FFFFFF;
30 }
31 }
31 div.code-body pre .match{
32 div.code-body pre .match{
32 background-color: #FAFFA6;
33 background-color: #FAFFA6;
33 }
34 }
34 div.code-body pre .break{
35 div.code-body pre .break{
35 background-color: #DDE7EF;
36 background-color: #DDE7EF;
36 width: 100%;
37 width: 100%;
37 color: #747474;
38 color: #747474;
38 display: block;
39 display: block;
39
40
40 }
41 }
41 div.annotatediv{
42 div.annotatediv{
42 margin-left:2px;
43 margin-left:2px;
43 margin-right:4px;
44 margin-right:4px;
44 }
45 }
45 .code-highlight {
46 .code-highlight {
46 padding: 0px;
47 padding: 0px;
47 margin-top: 5px;
48 margin-top: 5px;
48 margin-bottom: 5px;
49 margin-bottom: 5px;
49 border-left: 2px solid #ccc;
50 border-left: 2px solid #ccc;
50 }
51 }
51 .code-highlight pre, .linenodiv pre {
52 .code-highlight pre, .linenodiv pre {
52 padding: 5px;
53 padding: 5px;
53 margin: 0;
54 margin: 0;
54 }
55 }
55 .linenos a { text-decoration: none; }
56 .linenos a { text-decoration: none; }
56
57
57 .code { display: block; }
58 .code { display: block; }
58 .code-highlight .hll { background-color: #ffffcc }
59 .code-highlight .hll { background-color: #ffffcc }
59 .code-highlight .c { color: #408080; font-style: italic } /* Comment */
60 .code-highlight .c { color: #408080; font-style: italic } /* Comment */
60 .code-highlight .err { border: 1px solid #FF0000 } /* Error */
61 .code-highlight .err { border: 1px solid #FF0000 } /* Error */
61 .code-highlight .k { color: #008000; font-weight: bold } /* Keyword */
62 .code-highlight .k { color: #008000; font-weight: bold } /* Keyword */
62 .code-highlight .o { color: #666666 } /* Operator */
63 .code-highlight .o { color: #666666 } /* Operator */
63 .code-highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
64 .code-highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
64 .code-highlight .cp { color: #BC7A00 } /* Comment.Preproc */
65 .code-highlight .cp { color: #BC7A00 } /* Comment.Preproc */
65 .code-highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
66 .code-highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
66 .code-highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
67 .code-highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
67 .code-highlight .gd { color: #A00000 } /* Generic.Deleted */
68 .code-highlight .gd { color: #A00000 } /* Generic.Deleted */
68 .code-highlight .ge { font-style: italic } /* Generic.Emph */
69 .code-highlight .ge { font-style: italic } /* Generic.Emph */
69 .code-highlight .gr { color: #FF0000 } /* Generic.Error */
70 .code-highlight .gr { color: #FF0000 } /* Generic.Error */
70 .code-highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
71 .code-highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
71 .code-highlight .gi { color: #00A000 } /* Generic.Inserted */
72 .code-highlight .gi { color: #00A000 } /* Generic.Inserted */
72 .code-highlight .go { color: #808080 } /* Generic.Output */
73 .code-highlight .go { color: #808080 } /* Generic.Output */
73 .code-highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
74 .code-highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
74 .code-highlight .gs { font-weight: bold } /* Generic.Strong */
75 .code-highlight .gs { font-weight: bold } /* Generic.Strong */
75 .code-highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
76 .code-highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
76 .code-highlight .gt { color: #0040D0 } /* Generic.Traceback */
77 .code-highlight .gt { color: #0040D0 } /* Generic.Traceback */
77 .code-highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
78 .code-highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
78 .code-highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
79 .code-highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
79 .code-highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
80 .code-highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
80 .code-highlight .kp { color: #008000 } /* Keyword.Pseudo */
81 .code-highlight .kp { color: #008000 } /* Keyword.Pseudo */
81 .code-highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
82 .code-highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
82 .code-highlight .kt { color: #B00040 } /* Keyword.Type */
83 .code-highlight .kt { color: #B00040 } /* Keyword.Type */
83 .code-highlight .m { color: #666666 } /* Literal.Number */
84 .code-highlight .m { color: #666666 } /* Literal.Number */
84 .code-highlight .s { color: #BA2121 } /* Literal.String */
85 .code-highlight .s { color: #BA2121 } /* Literal.String */
85 .code-highlight .na { color: #7D9029 } /* Name.Attribute */
86 .code-highlight .na { color: #7D9029 } /* Name.Attribute */
86 .code-highlight .nb { color: #008000 } /* Name.Builtin */
87 .code-highlight .nb { color: #008000 } /* Name.Builtin */
87 .code-highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
88 .code-highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
88 .code-highlight .no { color: #880000 } /* Name.Constant */
89 .code-highlight .no { color: #880000 } /* Name.Constant */
89 .code-highlight .nd { color: #AA22FF } /* Name.Decorator */
90 .code-highlight .nd { color: #AA22FF } /* Name.Decorator */
90 .code-highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
91 .code-highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
91 .code-highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
92 .code-highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
92 .code-highlight .nf { color: #0000FF } /* Name.Function */
93 .code-highlight .nf { color: #0000FF } /* Name.Function */
93 .code-highlight .nl { color: #A0A000 } /* Name.Label */
94 .code-highlight .nl { color: #A0A000 } /* Name.Label */
94 .code-highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
95 .code-highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
95 .code-highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
96 .code-highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
96 .code-highlight .nv { color: #19177C } /* Name.Variable */
97 .code-highlight .nv { color: #19177C } /* Name.Variable */
97 .code-highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
98 .code-highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
98 .code-highlight .w { color: #bbbbbb } /* Text.Whitespace */
99 .code-highlight .w { color: #bbbbbb } /* Text.Whitespace */
99 .code-highlight .mf { color: #666666 } /* Literal.Number.Float */
100 .code-highlight .mf { color: #666666 } /* Literal.Number.Float */
100 .code-highlight .mh { color: #666666 } /* Literal.Number.Hex */
101 .code-highlight .mh { color: #666666 } /* Literal.Number.Hex */
101 .code-highlight .mi { color: #666666 } /* Literal.Number.Integer */
102 .code-highlight .mi { color: #666666 } /* Literal.Number.Integer */
102 .code-highlight .mo { color: #666666 } /* Literal.Number.Oct */
103 .code-highlight .mo { color: #666666 } /* Literal.Number.Oct */
103 .code-highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
104 .code-highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
104 .code-highlight .sc { color: #BA2121 } /* Literal.String.Char */
105 .code-highlight .sc { color: #BA2121 } /* Literal.String.Char */
105 .code-highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
106 .code-highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
106 .code-highlight .s2 { color: #BA2121 } /* Literal.String.Double */
107 .code-highlight .s2 { color: #BA2121 } /* Literal.String.Double */
107 .code-highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
108 .code-highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
108 .code-highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
109 .code-highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
109 .code-highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
110 .code-highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
110 .code-highlight .sx { color: #008000 } /* Literal.String.Other */
111 .code-highlight .sx { color: #008000 } /* Literal.String.Other */
111 .code-highlight .sr { color: #BB6688 } /* Literal.String.Regex */
112 .code-highlight .sr { color: #BB6688 } /* Literal.String.Regex */
112 .code-highlight .s1 { color: #BA2121 } /* Literal.String.Single */
113 .code-highlight .s1 { color: #BA2121 } /* Literal.String.Single */
113 .code-highlight .ss { color: #19177C } /* Literal.String.Symbol */
114 .code-highlight .ss { color: #19177C } /* Literal.String.Symbol */
114 .code-highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
115 .code-highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
115 .code-highlight .vc { color: #19177C } /* Name.Variable.Class */
116 .code-highlight .vc { color: #19177C } /* Name.Variable.Class */
116 .code-highlight .vg { color: #19177C } /* Name.Variable.Global */
117 .code-highlight .vg { color: #19177C } /* Name.Variable.Global */
117 .code-highlight .vi { color: #19177C } /* Name.Variable.Instance */
118 .code-highlight .vi { color: #19177C } /* Name.Variable.Instance */
118 .code-highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
119 .code-highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
@@ -1,28 +1,28 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="/base/base.html"/>
2 <%inherit file="/base/base.html"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('Administration')}
5 ${_('Admin journal')} - ${c.rhodecode_name}
6 </%def>
6 </%def>
7
7
8 <%def name="breadcrumbs_links()">
8 <%def name="breadcrumbs_links()">
9 ${_('Admin dashboard - journal')}
9 ${_('Admin journal')}
10 </%def>
10 </%def>
11
11
12 <%def name="page_nav()">
12 <%def name="page_nav()">
13 ${self.menu('admin')}
13 ${self.menu('admin')}
14 </%def>
14 </%def>
15 <%def name="main()">
15 <%def name="main()">
16 <div class="box">
16 <div class="box">
17 <!-- box / title -->
17 <!-- box / title -->
18 <div class="title">
18 <div class="title">
19 ${self.breadcrumbs()}
19 ${self.breadcrumbs()}
20 </div>
20 </div>
21 <!-- end box / title -->
21 <!-- end box / title -->
22 <div class="table">
22 <div class="table">
23 <div id="user_log">
23 <div id="user_log">
24 ${c.log_data}
24 ${c.log_data}
25 </div>
25 </div>
26 </div>
26 </div>
27 </div>
27 </div>
28 </%def> No newline at end of file
28 </%def>
@@ -1,68 +1,68 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="/base/base.html"/>
2 <%inherit file="/base/base.html"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('Permissions administration')}
5 ${_('Permissions administration')} - ${c.rhodecode_name}
6 </%def>
6 </%def>
7
7
8 <%def name="breadcrumbs_links()">
8 <%def name="breadcrumbs_links()">
9 ${h.link_to(_('Admin'),h.url('admin_home'))}
9 ${h.link_to(_('Admin'),h.url('admin_home'))}
10 &raquo;
10 &raquo;
11 ${_('Permissions')}
11 ${_('Permissions')}
12 </%def>
12 </%def>
13
13
14 <%def name="page_nav()">
14 <%def name="page_nav()">
15 ${self.menu('admin')}
15 ${self.menu('admin')}
16 </%def>
16 </%def>
17
17
18 <%def name="main()">
18 <%def name="main()">
19 <div class="box">
19 <div class="box">
20 <!-- box / title -->
20 <!-- box / title -->
21 <div class="title">
21 <div class="title">
22 ${self.breadcrumbs()}
22 ${self.breadcrumbs()}
23 </div>
23 </div>
24 <h3>${_('Default permissions')}</h3>
24 <h3>${_('Default permissions')}</h3>
25 ${h.form(url('permission', id='default'),method='put')}
25 ${h.form(url('permission', id='default'),method='put')}
26 <div class="form">
26 <div class="form">
27 <!-- fields -->
27 <!-- fields -->
28 <div class="fields">
28 <div class="fields">
29
29
30 <div class="field">
30 <div class="field">
31 <div class="label">
31 <div class="label">
32 <label for="default_perm">${_('Repository permission')}:</label>
32 <label for="default_perm">${_('Repository permission')}:</label>
33 </div>
33 </div>
34 <div class="select">
34 <div class="select">
35 ${h.select('default_perm','',c.perms_choices)}
35 ${h.select('default_perm','',c.perms_choices)}
36
36
37 ${h.checkbox('overwrite_default','true')}
37 ${h.checkbox('overwrite_default','true')}
38 <label for="overwrite_default">
38 <label for="overwrite_default">
39 <span class="tooltip"
39 <span class="tooltip"
40 tooltip_title="${h.tooltip(_('All default permissions on each repository will be reset to choosen permission, note that all custom default permission on repositories will be lost'))}">
40 tooltip_title="${h.tooltip(_('All default permissions on each repository will be reset to choosen permission, note that all custom default permission on repositories will be lost'))}">
41 ${_('overwrite existing settings')}</span> </label>
41 ${_('overwrite existing settings')}</span> </label>
42 </div>
42 </div>
43 </div>
43 </div>
44 <div class="field">
44 <div class="field">
45 <div class="label">
45 <div class="label">
46 <label for="default_register">${_('Registration')}:</label>
46 <label for="default_register">${_('Registration')}:</label>
47 </div>
47 </div>
48 <div class="select">
48 <div class="select">
49 ${h.select('default_register','',c.register_choices)}
49 ${h.select('default_register','',c.register_choices)}
50 </div>
50 </div>
51 </div>
51 </div>
52 <div class="field">
52 <div class="field">
53 <div class="label">
53 <div class="label">
54 <label for="default_create">${_('Repository creation')}:</label>
54 <label for="default_create">${_('Repository creation')}:</label>
55 </div>
55 </div>
56 <div class="select">
56 <div class="select">
57 ${h.select('default_create','',c.create_choices)}
57 ${h.select('default_create','',c.create_choices)}
58 </div>
58 </div>
59 </div>
59 </div>
60
60
61 <div class="buttons">
61 <div class="buttons">
62 ${h.submit('set','set',class_="ui-button ui-widget ui-state-default ui-corner-all")}
62 ${h.submit('set','set',class_="ui-button ui-widget ui-state-default ui-corner-all")}
63 </div>
63 </div>
64 </div>
64 </div>
65 </div>
65 </div>
66 ${h.end_form()}
66 ${h.end_form()}
67 </div>
67 </div>
68 </%def>
68 </%def>
@@ -1,60 +1,60 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="/base/base.html"/>
2 <%inherit file="/base/base.html"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('Add new repository')}
5 ${_('Add repository')} - ${c.rhodecode_name}
6 </%def>
6 </%def>
7
7
8 <%def name="breadcrumbs_links()">
8 <%def name="breadcrumbs_links()">
9 ${h.link_to(_('Admin'),h.url('admin_home'))}
9 ${h.link_to(_('Admin'),h.url('admin_home'))}
10 &raquo;
10 &raquo;
11 ${h.link_to(_('Repositories'),h.url('repos'))}
11 ${h.link_to(_('Repositories'),h.url('repos'))}
12 &raquo;
12 &raquo;
13 ${_('add new')}
13 ${_('add new')}
14 </%def>
14 </%def>
15
15
16 <%def name="page_nav()">
16 <%def name="page_nav()">
17 ${self.menu('admin')}
17 ${self.menu('admin')}
18 </%def>
18 </%def>
19 <%def name="main()">
19 <%def name="main()">
20 <div class="box">
20 <div class="box">
21 <!-- box / title -->
21 <!-- box / title -->
22 <div class="title">
22 <div class="title">
23 ${self.breadcrumbs()}
23 ${self.breadcrumbs()}
24 </div>
24 </div>
25 ${h.form(url('repos'))}
25 ${h.form(url('repos'))}
26 <div class="form">
26 <div class="form">
27 <!-- fields -->
27 <!-- fields -->
28 <div class="fields">
28 <div class="fields">
29 <div class="field">
29 <div class="field">
30 <div class="label">
30 <div class="label">
31 <label for="repo_name">${_('Name')}:</label>
31 <label for="repo_name">${_('Name')}:</label>
32 </div>
32 </div>
33 <div class="input">
33 <div class="input">
34 ${h.text('repo_name',c.new_repo,class_="small")}
34 ${h.text('repo_name',c.new_repo,class_="small")}
35 </div>
35 </div>
36 </div>
36 </div>
37 <div class="field">
37 <div class="field">
38 <div class="label label-textarea">
38 <div class="label label-textarea">
39 <label for="description">${_('Description')}:</label>
39 <label for="description">${_('Description')}:</label>
40 </div>
40 </div>
41 <div class="textarea text-area editor">
41 <div class="textarea text-area editor">
42 ${h.textarea('description',cols=23,rows=5)}
42 ${h.textarea('description',cols=23,rows=5)}
43 </div>
43 </div>
44 </div>
44 </div>
45 <div class="field">
45 <div class="field">
46 <div class="label label-checkbox">
46 <div class="label label-checkbox">
47 <label for="private">${_('Private')}:</label>
47 <label for="private">${_('Private')}:</label>
48 </div>
48 </div>
49 <div class="checkboxes">
49 <div class="checkboxes">
50 ${h.checkbox('private',value="True")}
50 ${h.checkbox('private',value="True")}
51 </div>
51 </div>
52 </div>
52 </div>
53 <div class="buttons">
53 <div class="buttons">
54 ${h.submit('add','add',class_="ui-button ui-widget ui-state-default ui-corner-all")}
54 ${h.submit('add','add',class_="ui-button ui-widget ui-state-default ui-corner-all")}
55 </div>
55 </div>
56 </div>
56 </div>
57 </div>
57 </div>
58 ${h.end_form()}
58 ${h.end_form()}
59 </div>
59 </div>
60 </%def>
60 </%def>
@@ -1,57 +1,57 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="/base/base.html"/>
2 <%inherit file="/base/base.html"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('Repositories administration')}
5 ${_('Add repository')} - ${c.rhodecode_name}
6 </%def>
6 </%def>
7
7
8 <%def name="breadcrumbs_links()">
8 <%def name="breadcrumbs_links()">
9 ${_('add new repository')}
9 ${_('add new repository')}
10 </%def>
10 </%def>
11
11
12 <%def name="page_nav()">
12 <%def name="page_nav()">
13 ${self.menu('admin')}
13 ${self.menu('admin')}
14 </%def>
14 </%def>
15 <%def name="main()">
15 <%def name="main()">
16 <div class="box">
16 <div class="box">
17 <!-- box / title -->
17 <!-- box / title -->
18 <div class="title">
18 <div class="title">
19 ${self.breadcrumbs()}
19 ${self.breadcrumbs()}
20 </div>
20 </div>
21 ${h.form(url('repos'))}
21 ${h.form(url('repos'))}
22 <div class="form">
22 <div class="form">
23 <!-- fields -->
23 <!-- fields -->
24 <div class="fields">
24 <div class="fields">
25 <div class="field">
25 <div class="field">
26 <div class="label">
26 <div class="label">
27 <label for="repo_name">${_('Name')}:</label>
27 <label for="repo_name">${_('Name')}:</label>
28 </div>
28 </div>
29 <div class="input">
29 <div class="input">
30 ${h.text('repo_name',c.new_repo,class_="small")}
30 ${h.text('repo_name',c.new_repo,class_="small")}
31 ${h.hidden('user_created','True')}
31 ${h.hidden('user_created','True')}
32 </div>
32 </div>
33 </div>
33 </div>
34 <div class="field">
34 <div class="field">
35 <div class="label label-textarea">
35 <div class="label label-textarea">
36 <label for="description">${_('Description')}:</label>
36 <label for="description">${_('Description')}:</label>
37 </div>
37 </div>
38 <div class="textarea text-area editor">
38 <div class="textarea text-area editor">
39 ${h.textarea('description',cols=23,rows=5)}
39 ${h.textarea('description',cols=23,rows=5)}
40 </div>
40 </div>
41 </div>
41 </div>
42 <div class="field">
42 <div class="field">
43 <div class="label label-checkbox">
43 <div class="label label-checkbox">
44 <label for="private">${_('Private')}:</label>
44 <label for="private">${_('Private')}:</label>
45 </div>
45 </div>
46 <div class="checkboxes">
46 <div class="checkboxes">
47 ${h.checkbox('private',value="True")}
47 ${h.checkbox('private',value="True")}
48 </div>
48 </div>
49 </div>
49 </div>
50 <div class="buttons">
50 <div class="buttons">
51 ${h.submit('add','add',class_="ui-button ui-widget ui-state-default ui-corner-all")}
51 ${h.submit('add','add',class_="ui-button ui-widget ui-state-default ui-corner-all")}
52 </div>
52 </div>
53 </div>
53 </div>
54 </div>
54 </div>
55 ${h.end_form()}
55 ${h.end_form()}
56 </div>
56 </div>
57 </%def>
57 </%def>
@@ -1,275 +1,275 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="/base/base.html"/>
2 <%inherit file="/base/base.html"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('Repositories administration')}
5 ${_('Edit repository')} ${c.repo_info.repo_name} - ${c.rhodecode_name}
6 </%def>
6 </%def>
7
7
8 <%def name="breadcrumbs_links()">
8 <%def name="breadcrumbs_links()">
9 ${h.link_to(_('Admin'),h.url('admin_home'))}
9 ${h.link_to(_('Admin'),h.url('admin_home'))}
10 &raquo;
10 &raquo;
11 ${h.link_to(_('Repositories'),h.url('repos'))}
11 ${h.link_to(_('Repositories'),h.url('repos'))}
12 &raquo;
12 &raquo;
13 ${_('edit')} "${c.repo_name}"
13 ${_('edit')} "${c.repo_name}"
14 </%def>
14 </%def>
15
15
16 <%def name="page_nav()">
16 <%def name="page_nav()">
17 ${self.menu('admin')}
17 ${self.menu('admin')}
18 </%def>
18 </%def>
19
19
20 <%def name="main()">
20 <%def name="main()">
21 <div class="box">
21 <div class="box">
22 <!-- box / title -->
22 <!-- box / title -->
23 <div class="title">
23 <div class="title">
24 ${self.breadcrumbs()}
24 ${self.breadcrumbs()}
25 </div>
25 </div>
26 ${h.form(url('repo', repo_name=c.repo_info.repo_name),method='put')}
26 ${h.form(url('repo', repo_name=c.repo_info.repo_name),method='put')}
27 <div class="form">
27 <div class="form">
28 <!-- fields -->
28 <!-- fields -->
29 <div class="fields">
29 <div class="fields">
30 <div class="field">
30 <div class="field">
31 <div class="label">
31 <div class="label">
32 <label for="repo_name">${_('Name')}:</label>
32 <label for="repo_name">${_('Name')}:</label>
33 </div>
33 </div>
34 <div class="input input-medium">
34 <div class="input input-medium">
35 ${h.text('repo_name',class_="small")}
35 ${h.text('repo_name',class_="small")}
36 </div>
36 </div>
37 </div>
37 </div>
38
38
39 <div class="field">
39 <div class="field">
40 <div class="label label-textarea">
40 <div class="label label-textarea">
41 <label for="description">${_('Description')}:</label>
41 <label for="description">${_('Description')}:</label>
42 </div>
42 </div>
43 <div class="textarea text-area editor">
43 <div class="textarea text-area editor">
44 ${h.textarea('description',cols=23,rows=5)}
44 ${h.textarea('description',cols=23,rows=5)}
45 </div>
45 </div>
46 </div>
46 </div>
47
47
48 <div class="field">
48 <div class="field">
49 <div class="label label-checkbox">
49 <div class="label label-checkbox">
50 <label for="private">${_('Private')}:</label>
50 <label for="private">${_('Private')}:</label>
51 </div>
51 </div>
52 <div class="checkboxes">
52 <div class="checkboxes">
53 ${h.checkbox('private',value="True")}
53 ${h.checkbox('private',value="True")}
54 </div>
54 </div>
55 </div>
55 </div>
56
56
57 <div class="field">
57 <div class="field">
58 <div class="label">
58 <div class="label">
59 <label for="user">${_('Owner')}:</label>
59 <label for="user">${_('Owner')}:</label>
60 </div>
60 </div>
61 <div class="input input-small ac">
61 <div class="input input-small ac">
62 <div class="perm_ac">
62 <div class="perm_ac">
63 ${h.text('user',class_='yui-ac-input')}
63 ${h.text('user',class_='yui-ac-input')}
64 <div id="owner_container"></div>
64 <div id="owner_container"></div>
65 </div>
65 </div>
66 </div>
66 </div>
67 </div>
67 </div>
68
68
69 <div class="field">
69 <div class="field">
70 <div class="label">
70 <div class="label">
71 <label for="input">${_('Permissions')}:</label>
71 <label for="input">${_('Permissions')}:</label>
72 </div>
72 </div>
73 <div class="input">
73 <div class="input">
74 <table id="permissions_manage">
74 <table id="permissions_manage">
75 <tr>
75 <tr>
76 <td>${_('none')}</td>
76 <td>${_('none')}</td>
77 <td>${_('read')}</td>
77 <td>${_('read')}</td>
78 <td>${_('write')}</td>
78 <td>${_('write')}</td>
79 <td>${_('admin')}</td>
79 <td>${_('admin')}</td>
80 <td>${_('user')}</td>
80 <td>${_('user')}</td>
81 <td></td>
81 <td></td>
82 </tr>
82 </tr>
83
83
84 %for r2p in c.repo_info.repo_to_perm:
84 %for r2p in c.repo_info.repo_to_perm:
85 %if r2p.user.username =='default' and c.repo_info.private:
85 %if r2p.user.username =='default' and c.repo_info.private:
86 <tr>
86 <tr>
87 <td colspan="4">
87 <td colspan="4">
88 <span class="private_repo_msg">
88 <span class="private_repo_msg">
89 ${_('private repository')}
89 ${_('private repository')}
90 </span>
90 </span>
91 </td>
91 </td>
92 <td class="private_repo_msg">${r2p.user.username}</td>
92 <td class="private_repo_msg">${r2p.user.username}</td>
93 </tr>
93 </tr>
94 %else:
94 %else:
95 <tr id="id${id(r2p.user.username)}">
95 <tr id="id${id(r2p.user.username)}">
96 <td>${h.radio('perm_%s' % r2p.user.username,'repository.none')}</td>
96 <td>${h.radio('perm_%s' % r2p.user.username,'repository.none')}</td>
97 <td>${h.radio('perm_%s' % r2p.user.username,'repository.read')}</td>
97 <td>${h.radio('perm_%s' % r2p.user.username,'repository.read')}</td>
98 <td>${h.radio('perm_%s' % r2p.user.username,'repository.write')}</td>
98 <td>${h.radio('perm_%s' % r2p.user.username,'repository.write')}</td>
99 <td>${h.radio('perm_%s' % r2p.user.username,'repository.admin')}</td>
99 <td>${h.radio('perm_%s' % r2p.user.username,'repository.admin')}</td>
100 <td>${r2p.user.username}</td>
100 <td>${r2p.user.username}</td>
101 <td>
101 <td>
102 %if r2p.user.username !='default':
102 %if r2p.user.username !='default':
103 <span class="delete_icon action_button" onclick="ajaxAction(${r2p.user.user_id},'${'id%s'%id(r2p.user.username)}')">
103 <span class="delete_icon action_button" onclick="ajaxAction(${r2p.user.user_id},'${'id%s'%id(r2p.user.username)}')">
104 <script type="text/javascript">
104 <script type="text/javascript">
105 function ajaxAction(user_id,field_id){
105 function ajaxAction(user_id,field_id){
106 var sUrl = "${h.url('delete_repo_user',repo_name=c.repo_name)}";
106 var sUrl = "${h.url('delete_repo_user',repo_name=c.repo_name)}";
107 var callback = { success:function(o){
107 var callback = { success:function(o){
108 var tr = YAHOO.util.Dom.get(String(field_id));
108 var tr = YAHOO.util.Dom.get(String(field_id));
109 tr.parentNode.removeChild(tr);},failure:function(o){
109 tr.parentNode.removeChild(tr);},failure:function(o){
110 alert("${_('Failed to remove user')}");},};
110 alert("${_('Failed to remove user')}");},};
111 var postData = '_method=delete&user_id='+user_id;
111 var postData = '_method=delete&user_id='+user_id;
112 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);};
112 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);};
113 </script>
113 </script>
114 </span>
114 </span>
115 %endif
115 %endif
116 </td>
116 </td>
117 </tr>
117 </tr>
118 %endif
118 %endif
119 %endfor
119 %endfor
120
120
121 <tr id="add_perm_input">
121 <tr id="add_perm_input">
122 <td>${h.radio('perm_new_user','repository.none')}</td>
122 <td>${h.radio('perm_new_user','repository.none')}</td>
123 <td>${h.radio('perm_new_user','repository.read')}</td>
123 <td>${h.radio('perm_new_user','repository.read')}</td>
124 <td>${h.radio('perm_new_user','repository.write')}</td>
124 <td>${h.radio('perm_new_user','repository.write')}</td>
125 <td>${h.radio('perm_new_user','repository.admin')}</td>
125 <td>${h.radio('perm_new_user','repository.admin')}</td>
126 <td class='ac'>
126 <td class='ac'>
127 <div class="perm_ac" id="perm_ac">
127 <div class="perm_ac" id="perm_ac">
128 ${h.text('perm_new_user_name',class_='yui-ac-input')}
128 ${h.text('perm_new_user_name',class_='yui-ac-input')}
129 <div id="perm_container"></div>
129 <div id="perm_container"></div>
130 </div>
130 </div>
131 </td>
131 </td>
132 <td></td>
132 <td></td>
133 </tr>
133 </tr>
134 <tr>
134 <tr>
135 <td colspan="6">
135 <td colspan="6">
136 <span id="add_perm" class="add_icon" style="cursor: pointer;">
136 <span id="add_perm" class="add_icon" style="cursor: pointer;">
137 ${_('Add another user')}
137 ${_('Add another user')}
138 </span>
138 </span>
139 </td>
139 </td>
140 </tr>
140 </tr>
141 </table>
141 </table>
142 </div>
142 </div>
143
143
144 <div class="buttons">
144 <div class="buttons">
145 ${h.submit('save','save',class_="ui-button ui-widget ui-state-default ui-corner-all")}
145 ${h.submit('save','save',class_="ui-button ui-widget ui-state-default ui-corner-all")}
146 </div>
146 </div>
147 </div>
147 </div>
148 </div>
148 </div>
149 </div>
149 </div>
150 ${h.end_form()}
150 ${h.end_form()}
151 <script type="text/javascript">
151 <script type="text/javascript">
152 YAHOO.util.Event.onDOMReady(function(){
152 YAHOO.util.Event.onDOMReady(function(){
153 var D = YAHOO.util.Dom;
153 var D = YAHOO.util.Dom;
154 if(!D.hasClass('perm_new_user_name','error')){
154 if(!D.hasClass('perm_new_user_name','error')){
155 D.setStyle('add_perm_input','display','none');
155 D.setStyle('add_perm_input','display','none');
156 }
156 }
157 YAHOO.util.Event.addListener('add_perm','click',function(){
157 YAHOO.util.Event.addListener('add_perm','click',function(){
158 D.setStyle('add_perm_input','display','');
158 D.setStyle('add_perm_input','display','');
159 D.setStyle('add_perm','opacity','0.6');
159 D.setStyle('add_perm','opacity','0.6');
160 D.setStyle('add_perm','cursor','default');
160 D.setStyle('add_perm','cursor','default');
161 });
161 });
162 });
162 });
163 </script>
163 </script>
164 <script type="text/javascript">
164 <script type="text/javascript">
165 YAHOO.example.FnMultipleFields = function(){
165 YAHOO.example.FnMultipleFields = function(){
166 var myContacts = ${c.users_array|n}
166 var myContacts = ${c.users_array|n}
167
167
168 // Define a custom search function for the DataSource
168 // Define a custom search function for the DataSource
169 var matchNames = function(sQuery) {
169 var matchNames = function(sQuery) {
170 // Case insensitive matching
170 // Case insensitive matching
171 var query = sQuery.toLowerCase(),
171 var query = sQuery.toLowerCase(),
172 contact,
172 contact,
173 i=0,
173 i=0,
174 l=myContacts.length,
174 l=myContacts.length,
175 matches = [];
175 matches = [];
176
176
177 // Match against each name of each contact
177 // Match against each name of each contact
178 for(; i<l; i++) {
178 for(; i<l; i++) {
179 contact = myContacts[i];
179 contact = myContacts[i];
180 if((contact.fname.toLowerCase().indexOf(query) > -1) ||
180 if((contact.fname.toLowerCase().indexOf(query) > -1) ||
181 (contact.lname.toLowerCase().indexOf(query) > -1) ||
181 (contact.lname.toLowerCase().indexOf(query) > -1) ||
182 (contact.nname && (contact.nname.toLowerCase().indexOf(query) > -1))) {
182 (contact.nname && (contact.nname.toLowerCase().indexOf(query) > -1))) {
183 matches[matches.length] = contact;
183 matches[matches.length] = contact;
184 }
184 }
185 }
185 }
186
186
187 return matches;
187 return matches;
188 };
188 };
189
189
190 // Use a FunctionDataSource
190 // Use a FunctionDataSource
191 var oDS = new YAHOO.util.FunctionDataSource(matchNames);
191 var oDS = new YAHOO.util.FunctionDataSource(matchNames);
192 oDS.responseSchema = {
192 oDS.responseSchema = {
193 fields: ["id", "fname", "lname", "nname"]
193 fields: ["id", "fname", "lname", "nname"]
194 }
194 }
195
195
196 // Instantiate AutoComplete for perms
196 // Instantiate AutoComplete for perms
197 var oAC_perms = new YAHOO.widget.AutoComplete("perm_new_user_name", "perm_container", oDS);
197 var oAC_perms = new YAHOO.widget.AutoComplete("perm_new_user_name", "perm_container", oDS);
198 oAC_perms.useShadow = false;
198 oAC_perms.useShadow = false;
199 oAC_perms.resultTypeList = false;
199 oAC_perms.resultTypeList = false;
200
200
201 // Instantiate AutoComplete for owner
201 // Instantiate AutoComplete for owner
202 var oAC_owner = new YAHOO.widget.AutoComplete("user", "owner_container", oDS);
202 var oAC_owner = new YAHOO.widget.AutoComplete("user", "owner_container", oDS);
203 oAC_owner.useShadow = false;
203 oAC_owner.useShadow = false;
204 oAC_owner.resultTypeList = false;
204 oAC_owner.resultTypeList = false;
205
205
206
206
207 // Custom formatter to highlight the matching letters
207 // Custom formatter to highlight the matching letters
208 var custom_formatter = function(oResultData, sQuery, sResultMatch) {
208 var custom_formatter = function(oResultData, sQuery, sResultMatch) {
209 var query = sQuery.toLowerCase(),
209 var query = sQuery.toLowerCase(),
210 fname = oResultData.fname,
210 fname = oResultData.fname,
211 lname = oResultData.lname,
211 lname = oResultData.lname,
212 nname = oResultData.nname || "", // Guard against null value
212 nname = oResultData.nname || "", // Guard against null value
213 query = sQuery.toLowerCase(),
213 query = sQuery.toLowerCase(),
214 fnameMatchIndex = fname.toLowerCase().indexOf(query),
214 fnameMatchIndex = fname.toLowerCase().indexOf(query),
215 lnameMatchIndex = lname.toLowerCase().indexOf(query),
215 lnameMatchIndex = lname.toLowerCase().indexOf(query),
216 nnameMatchIndex = nname.toLowerCase().indexOf(query),
216 nnameMatchIndex = nname.toLowerCase().indexOf(query),
217 displayfname, displaylname, displaynname;
217 displayfname, displaylname, displaynname;
218
218
219 if(fnameMatchIndex > -1) {
219 if(fnameMatchIndex > -1) {
220 displayfname = highlightMatch(fname, query, fnameMatchIndex);
220 displayfname = highlightMatch(fname, query, fnameMatchIndex);
221 }
221 }
222 else {
222 else {
223 displayfname = fname;
223 displayfname = fname;
224 }
224 }
225
225
226 if(lnameMatchIndex > -1) {
226 if(lnameMatchIndex > -1) {
227 displaylname = highlightMatch(lname, query, lnameMatchIndex);
227 displaylname = highlightMatch(lname, query, lnameMatchIndex);
228 }
228 }
229 else {
229 else {
230 displaylname = lname;
230 displaylname = lname;
231 }
231 }
232
232
233 if(nnameMatchIndex > -1) {
233 if(nnameMatchIndex > -1) {
234 displaynname = "(" + highlightMatch(nname, query, nnameMatchIndex) + ")";
234 displaynname = "(" + highlightMatch(nname, query, nnameMatchIndex) + ")";
235 }
235 }
236 else {
236 else {
237 displaynname = nname ? "(" + nname + ")" : "";
237 displaynname = nname ? "(" + nname + ")" : "";
238 }
238 }
239
239
240 return displayfname + " " + displaylname + " " + displaynname;
240 return displayfname + " " + displaylname + " " + displaynname;
241
241
242 };
242 };
243 oAC_perms.formatResult = custom_formatter;
243 oAC_perms.formatResult = custom_formatter;
244 oAC_owner.formatResult = custom_formatter;
244 oAC_owner.formatResult = custom_formatter;
245
245
246 // Helper function for the formatter
246 // Helper function for the formatter
247 var highlightMatch = function(full, snippet, matchindex) {
247 var highlightMatch = function(full, snippet, matchindex) {
248 return full.substring(0, matchindex) +
248 return full.substring(0, matchindex) +
249 "<span class='match'>" +
249 "<span class='match'>" +
250 full.substr(matchindex, snippet.length) +
250 full.substr(matchindex, snippet.length) +
251 "</span>" +
251 "</span>" +
252 full.substring(matchindex + snippet.length);
252 full.substring(matchindex + snippet.length);
253 };
253 };
254
254
255 var myHandler = function(sType, aArgs) {
255 var myHandler = function(sType, aArgs) {
256 var myAC = aArgs[0]; // reference back to the AC instance
256 var myAC = aArgs[0]; // reference back to the AC instance
257 var elLI = aArgs[1]; // reference to the selected LI element
257 var elLI = aArgs[1]; // reference to the selected LI element
258 var oData = aArgs[2]; // object literal of selected item's result data
258 var oData = aArgs[2]; // object literal of selected item's result data
259 myAC.getInputEl().value = oData.nname;
259 myAC.getInputEl().value = oData.nname;
260 };
260 };
261
261
262 oAC_perms.itemSelectEvent.subscribe(myHandler);
262 oAC_perms.itemSelectEvent.subscribe(myHandler);
263 oAC_owner.itemSelectEvent.subscribe(myHandler);
263 oAC_owner.itemSelectEvent.subscribe(myHandler);
264
264
265 return {
265 return {
266 oDS: oDS,
266 oDS: oDS,
267 oAC_perms: oAC_perms,
267 oAC_perms: oAC_perms,
268 oAC_owner: oAC_owner,
268 oAC_owner: oAC_owner,
269 };
269 };
270 }();
270 }();
271
271
272 </script>
272 </script>
273
273
274 </div>
274 </div>
275 </%def> No newline at end of file
275 </%def>
@@ -1,78 +1,78 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="/base/base.html"/>
2 <%inherit file="/base/base.html"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('Repositories administration')}
5 ${_('Repositories administration')} - ${c.rhodecode_name}
6 </%def>
6 </%def>
7
7
8
8
9 <%def name="breadcrumbs_links()">
9 <%def name="breadcrumbs_links()">
10 ${h.link_to(_('Admin'),h.url('admin_home'))} &raquo; ${_('Repositories')}
10 ${h.link_to(_('Admin'),h.url('admin_home'))} &raquo; ${_('Repositories')}
11 </%def>
11 </%def>
12 <%def name="page_nav()">
12 <%def name="page_nav()">
13 ${self.menu('admin')}
13 ${self.menu('admin')}
14 </%def>
14 </%def>
15 <%def name="main()">
15 <%def name="main()">
16 <div class="box">
16 <div class="box">
17 <!-- box / title -->
17 <!-- box / title -->
18 <div class="title">
18 <div class="title">
19 ${self.breadcrumbs()}
19 ${self.breadcrumbs()}
20 <ul class="links">
20 <ul class="links">
21 <li>
21 <li>
22 <span>${h.link_to(u'ADD NEW REPOSITORY',h.url('new_repo'))}</span>
22 <span>${h.link_to(u'ADD NEW REPOSITORY',h.url('new_repo'))}</span>
23 </li>
23 </li>
24 </ul>
24 </ul>
25 </div>
25 </div>
26 <!-- end box / title -->
26 <!-- end box / title -->
27 <div class="table">
27 <div class="table">
28 <table class="table_disp">
28 <table class="table_disp">
29 <tr class="header">
29 <tr class="header">
30 <th class="left">${_('Name')}</th>
30 <th class="left">${_('Name')}</th>
31 <th class="left">${_('Description')}</th>
31 <th class="left">${_('Description')}</th>
32 <th class="left">${_('Last change')}</th>
32 <th class="left">${_('Last change')}</th>
33 <th class="left">${_('Tip')}</th>
33 <th class="left">${_('Tip')}</th>
34 <th class="left">${_('Contact')}</th>
34 <th class="left">${_('Contact')}</th>
35 <th class="left">${_('action')}</th>
35 <th class="left">${_('action')}</th>
36 </tr>
36 </tr>
37 %for cnt,repo in enumerate(c.repos_list):
37 %for cnt,repo in enumerate(c.repos_list):
38 <tr class="parity${cnt%2}">
38 <tr class="parity${cnt%2}">
39 <td>
39 <td>
40 %if repo['repo'].dbrepo.private:
40 %if repo['repo'].dbrepo.private:
41 <img alt="${_('private')}" src="/images/icons/lock.png"/>
41 <img alt="${_('private')}" src="/images/icons/lock.png"/>
42 %else:
42 %else:
43 <img alt="${_('public')}" src="/images/icons/lock_open.png"/>
43 <img alt="${_('public')}" src="/images/icons/lock_open.png"/>
44 %endif
44 %endif
45 ${h.link_to(repo['name'],h.url('edit_repo',repo_name=repo['name']))}
45 ${h.link_to(repo['name'],h.url('edit_repo',repo_name=repo['name']))}
46
46
47 %if repo['repo'].dbrepo.fork:
47 %if repo['repo'].dbrepo.fork:
48 <a href="${h.url('summary_home',repo_name=repo['repo'].dbrepo.fork.repo_name)}">
48 <a href="${h.url('summary_home',repo_name=repo['repo'].dbrepo.fork.repo_name)}">
49 <img class="icon" alt="${_('public')}"
49 <img class="icon" alt="${_('public')}"
50 title="${_('Fork of')} ${repo['repo'].dbrepo.fork.repo_name}"
50 title="${_('Fork of')} ${repo['repo'].dbrepo.fork.repo_name}"
51 src="/images/icons/arrow_divide.png"/></a>
51 src="/images/icons/arrow_divide.png"/></a>
52 %endif
52 %endif
53 </td>
53 </td>
54 <td title="${repo['description']}">${h.truncate(repo['description'],60)}</td>
54 <td title="${repo['description']}">${h.truncate(repo['description'],60)}</td>
55 <td>${h.age(repo['last_change'])}</td>
55 <td>${h.age(repo['last_change'])}</td>
56 <td>
56 <td>
57 %if repo['rev']>=0:
57 %if repo['rev']>=0:
58 ${h.link_to('r%s:%s' % (repo['rev'],repo['tip']),
58 ${h.link_to('r%s:%s' % (repo['rev'],repo['tip']),
59 h.url('changeset_home',repo_name=repo['name'],revision=repo['tip']),
59 h.url('changeset_home',repo_name=repo['name'],revision=repo['tip']),
60 class_="tooltip",
60 class_="tooltip",
61 tooltip_title=h.tooltip(repo['last_msg']))}
61 tooltip_title=h.tooltip(repo['last_msg']))}
62 %else:
62 %else:
63 ${_('No changesets yet')}
63 ${_('No changesets yet')}
64 %endif
64 %endif
65 </td>
65 </td>
66 <td title="${repo['contact']}">${h.person(repo['contact'])}</td>
66 <td title="${repo['contact']}">${h.person(repo['contact'])}</td>
67 <td>
67 <td>
68 ${h.form(url('repo', repo_name=repo['name']),method='delete')}
68 ${h.form(url('repo', repo_name=repo['name']),method='delete')}
69 ${h.submit('remove_%s' % repo['name'],'delete',class_="delete_icon action_button",onclick="return confirm('Confirm to delete this repository');")}
69 ${h.submit('remove_%s' % repo['name'],'delete',class_="delete_icon action_button",onclick="return confirm('Confirm to delete this repository');")}
70 ${h.end_form()}
70 ${h.end_form()}
71 </td>
71 </td>
72 </tr>
72 </tr>
73 %endfor
73 %endfor
74 </table>
74 </table>
75 </div>
75 </div>
76 </div>
76 </div>
77
77
78 </%def>
78 </%def>
@@ -1,170 +1,170 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="/base/base.html"/>
2 <%inherit file="/base/base.html"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('Settings administration')}
5 ${_('Settings administration')} - ${c.rhodecode_name}
6 </%def>
6 </%def>
7
7
8 <%def name="breadcrumbs_links()">
8 <%def name="breadcrumbs_links()">
9 ${h.link_to(_('Admin'),h.url('admin_home'))} &raquo; ${_('Settings')}
9 ${h.link_to(_('Admin'),h.url('admin_home'))} &raquo; ${_('Settings')}
10 </%def>
10 </%def>
11
11
12 <%def name="page_nav()">
12 <%def name="page_nav()">
13 ${self.menu('admin')}
13 ${self.menu('admin')}
14 </%def>
14 </%def>
15
15
16 <%def name="main()">
16 <%def name="main()">
17 <div class="box">
17 <div class="box">
18 <!-- box / title -->
18 <!-- box / title -->
19 <div class="title">
19 <div class="title">
20 ${self.breadcrumbs()}
20 ${self.breadcrumbs()}
21 </div>
21 </div>
22 <!-- end box / title -->
22 <!-- end box / title -->
23
23
24 <h3>${_('Remap and rescan repositories')}</h3>
24 <h3>${_('Remap and rescan repositories')}</h3>
25 ${h.form(url('admin_setting', setting_id='mapping'),method='put')}
25 ${h.form(url('admin_setting', setting_id='mapping'),method='put')}
26 <div class="form">
26 <div class="form">
27 <!-- fields -->
27 <!-- fields -->
28
28
29 <div class="fields">
29 <div class="fields">
30 <div class="field">
30 <div class="field">
31 <div class="label label-checkbox">
31 <div class="label label-checkbox">
32 <label for="destroy">${_('rescan option')}:</label>
32 <label for="destroy">${_('rescan option')}:</label>
33 </div>
33 </div>
34 <div class="checkboxes">
34 <div class="checkboxes">
35 <div class="checkbox">
35 <div class="checkbox">
36 ${h.checkbox('destroy',True)}
36 ${h.checkbox('destroy',True)}
37 <label for="checkbox-1">
37 <label for="checkbox-1">
38 <span class="tooltip" tooltip_title="${h.tooltip(_('In case a repository was deleted from filesystem and there are leftovers in the database check this option to scan obsolete data in database and remove it.'))}">
38 <span class="tooltip" tooltip_title="${h.tooltip(_('In case a repository was deleted from filesystem and there are leftovers in the database check this option to scan obsolete data in database and remove it.'))}">
39 ${_('destroy old data')}</span> </label>
39 ${_('destroy old data')}</span> </label>
40 </div>
40 </div>
41 </div>
41 </div>
42 </div>
42 </div>
43
43
44 <div class="buttons">
44 <div class="buttons">
45 ${h.submit('rescan','rescan repositories',class_="ui-button ui-widget ui-state-default ui-corner-all")}
45 ${h.submit('rescan','rescan repositories',class_="ui-button ui-widget ui-state-default ui-corner-all")}
46 </div>
46 </div>
47 </div>
47 </div>
48 </div>
48 </div>
49 ${h.end_form()}
49 ${h.end_form()}
50
50
51 <h3>${_('Whoosh indexing')}</h3>
51 <h3>${_('Whoosh indexing')}</h3>
52 ${h.form(url('admin_setting', setting_id='whoosh'),method='put')}
52 ${h.form(url('admin_setting', setting_id='whoosh'),method='put')}
53 <div class="form">
53 <div class="form">
54 <!-- fields -->
54 <!-- fields -->
55
55
56 <div class="fields">
56 <div class="fields">
57 <div class="field">
57 <div class="field">
58 <div class="label label-checkbox">
58 <div class="label label-checkbox">
59 <label for="destroy">${_('index build option')}:</label>
59 <label for="destroy">${_('index build option')}:</label>
60 </div>
60 </div>
61 <div class="checkboxes">
61 <div class="checkboxes">
62 <div class="checkbox">
62 <div class="checkbox">
63 ${h.checkbox('full_index',True)}
63 ${h.checkbox('full_index',True)}
64 <label for="checkbox-1">${_('build from scratch')}</label>
64 <label for="checkbox-1">${_('build from scratch')}</label>
65 </div>
65 </div>
66 </div>
66 </div>
67 </div>
67 </div>
68
68
69 <div class="buttons">
69 <div class="buttons">
70 ${h.submit('reindex','reindex',class_="ui-button ui-widget ui-state-default ui-corner-all")}
70 ${h.submit('reindex','reindex',class_="ui-button ui-widget ui-state-default ui-corner-all")}
71 </div>
71 </div>
72 </div>
72 </div>
73 </div>
73 </div>
74 ${h.end_form()}
74 ${h.end_form()}
75
75
76 <h3>${_('Global application settings')}</h3>
76 <h3>${_('Global application settings')}</h3>
77 ${h.form(url('admin_setting', setting_id='global'),method='put')}
77 ${h.form(url('admin_setting', setting_id='global'),method='put')}
78 <div class="form">
78 <div class="form">
79 <!-- fields -->
79 <!-- fields -->
80
80
81 <div class="fields">
81 <div class="fields">
82
82
83 <div class="field">
83 <div class="field">
84 <div class="label">
84 <div class="label">
85 <label for="rhodecode_title">${_('Application name')}:</label>
85 <label for="rhodecode_title">${_('Application name')}:</label>
86 </div>
86 </div>
87 <div class="input">
87 <div class="input">
88 ${h.text('rhodecode_title',size=30)}
88 ${h.text('rhodecode_title',size=30)}
89 </div>
89 </div>
90 </div>
90 </div>
91
91
92 <div class="field">
92 <div class="field">
93 <div class="label">
93 <div class="label">
94 <label for="rhodecode_realm">${_('Realm text')}:</label>
94 <label for="rhodecode_realm">${_('Realm text')}:</label>
95 </div>
95 </div>
96 <div class="input">
96 <div class="input">
97 ${h.text('rhodecode_realm',size=30)}
97 ${h.text('rhodecode_realm',size=30)}
98 </div>
98 </div>
99 </div>
99 </div>
100
100
101 <div class="buttons">
101 <div class="buttons">
102 ${h.submit('save','save settings',class_="ui-button ui-widget ui-state-default ui-corner-all")}
102 ${h.submit('save','save settings',class_="ui-button ui-widget ui-state-default ui-corner-all")}
103 </div>
103 </div>
104 </div>
104 </div>
105 </div>
105 </div>
106 ${h.end_form()}
106 ${h.end_form()}
107
107
108 <h3>${_('Mercurial settings')}</h3>
108 <h3>${_('Mercurial settings')}</h3>
109 ${h.form(url('admin_setting', setting_id='mercurial'),method='put')}
109 ${h.form(url('admin_setting', setting_id='mercurial'),method='put')}
110 <div class="form">
110 <div class="form">
111 <!-- fields -->
111 <!-- fields -->
112
112
113 <div class="fields">
113 <div class="fields">
114
114
115 <div class="field">
115 <div class="field">
116 <div class="label label-checkbox">
116 <div class="label label-checkbox">
117 <label for="web_push_ssl">${_('Web')}:</label>
117 <label for="web_push_ssl">${_('Web')}:</label>
118 </div>
118 </div>
119 <div class="checkboxes">
119 <div class="checkboxes">
120 <div class="checkbox">
120 <div class="checkbox">
121 ${h.checkbox('web_push_ssl','true')}
121 ${h.checkbox('web_push_ssl','true')}
122 <label for="web_push_ssl">${_('require ssl for pushing')}</label>
122 <label for="web_push_ssl">${_('require ssl for pushing')}</label>
123 </div>
123 </div>
124 </div>
124 </div>
125 </div>
125 </div>
126
126
127 <div class="field">
127 <div class="field">
128 <div class="label label-checkbox">
128 <div class="label label-checkbox">
129 <label for="web_push_ssl">${_('Hooks')}:</label>
129 <label for="web_push_ssl">${_('Hooks')}:</label>
130 </div>
130 </div>
131 <div class="checkboxes">
131 <div class="checkboxes">
132 <div class="checkbox">
132 <div class="checkbox">
133 ${h.checkbox('hooks_changegroup_update','True')}
133 ${h.checkbox('hooks_changegroup_update','True')}
134 <label for="hooks_changegroup_update">${_('Update repository after push (hg update)')}</label>
134 <label for="hooks_changegroup_update">${_('Update repository after push (hg update)')}</label>
135 </div>
135 </div>
136 <div class="checkbox">
136 <div class="checkbox">
137 ${h.checkbox('hooks_changegroup_repo_size','True')}
137 ${h.checkbox('hooks_changegroup_repo_size','True')}
138 <label for="hooks_changegroup_repo_size">${_('Show repository size after push')}</label>
138 <label for="hooks_changegroup_repo_size">${_('Show repository size after push')}</label>
139 </div>
139 </div>
140 </div>
140 </div>
141 </div>
141 </div>
142
142
143 <div class="field">
143 <div class="field">
144 <div class="label">
144 <div class="label">
145 <label for="paths_root_path">${_('Repositories location')}:</label>
145 <label for="paths_root_path">${_('Repositories location')}:</label>
146 </div>
146 </div>
147 <div class="input">
147 <div class="input">
148 ${h.text('paths_root_path',size=30,readonly="readonly")}
148 ${h.text('paths_root_path',size=30,readonly="readonly")}
149 <span id="path_unlock" class="tooltip"
149 <span id="path_unlock" class="tooltip"
150 tooltip_title="${h.tooltip(_('This a crucial application setting. If You really sure you need to change this, you must restart application in order to make this settings take effect. Click this label to unlock.'))}">
150 tooltip_title="${h.tooltip(_('This a crucial application setting. If You really sure you need to change this, you must restart application in order to make this settings take effect. Click this label to unlock.'))}">
151 ${_('unlock')}</span>
151 ${_('unlock')}</span>
152 </div>
152 </div>
153 </div>
153 </div>
154
154
155 <div class="buttons">
155 <div class="buttons">
156 ${h.submit('save','save settings',class_="ui-button ui-widget ui-state-default ui-corner-all")}
156 ${h.submit('save','save settings',class_="ui-button ui-widget ui-state-default ui-corner-all")}
157 </div>
157 </div>
158 </div>
158 </div>
159 </div>
159 </div>
160 ${h.end_form()}
160 ${h.end_form()}
161
161
162 <script type="text/javascript">
162 <script type="text/javascript">
163 YAHOO.util.Event.onDOMReady(function(){
163 YAHOO.util.Event.onDOMReady(function(){
164 YAHOO.util.Event.addListener('path_unlock','click',function(){
164 YAHOO.util.Event.addListener('path_unlock','click',function(){
165 YAHOO.util.Dom.get('paths_root_path').removeAttribute('readonly');
165 YAHOO.util.Dom.get('paths_root_path').removeAttribute('readonly');
166 });
166 });
167 });
167 });
168 </script>
168 </script>
169 </div>
169 </div>
170 </%def>
170 </%def>
@@ -1,91 +1,91 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="/base/base.html"/>
2 <%inherit file="/base/base.html"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('User administration')}
5 ${_('Add user')} - ${c.rhodecode_name}
6 </%def>
6 </%def>
7 <%def name="breadcrumbs_links()">
7 <%def name="breadcrumbs_links()">
8 ${h.link_to(_('Admin'),h.url('admin_home'))}
8 ${h.link_to(_('Admin'),h.url('admin_home'))}
9 &raquo;
9 &raquo;
10 ${h.link_to(_('Users'),h.url('users'))}
10 ${h.link_to(_('Users'),h.url('users'))}
11 &raquo;
11 &raquo;
12 ${_('add new user')}
12 ${_('add new user')}
13 </%def>
13 </%def>
14
14
15 <%def name="page_nav()">
15 <%def name="page_nav()">
16 ${self.menu('admin')}
16 ${self.menu('admin')}
17 </%def>
17 </%def>
18
18
19 <%def name="main()">
19 <%def name="main()">
20 <div class="box">
20 <div class="box">
21 <!-- box / title -->
21 <!-- box / title -->
22 <div class="title">
22 <div class="title">
23 ${self.breadcrumbs()}
23 ${self.breadcrumbs()}
24 </div>
24 </div>
25 <!-- end box / title -->
25 <!-- end box / title -->
26 ${h.form(url('users'))}
26 ${h.form(url('users'))}
27 <div class="form">
27 <div class="form">
28 <!-- fields -->
28 <!-- fields -->
29 <div class="fields">
29 <div class="fields">
30 <div class="field">
30 <div class="field">
31 <div class="label">
31 <div class="label">
32 <label for="username">${_('Username')}:</label>
32 <label for="username">${_('Username')}:</label>
33 </div>
33 </div>
34 <div class="input">
34 <div class="input">
35 ${h.text('username',class_='small')}
35 ${h.text('username',class_='small')}
36 </div>
36 </div>
37 </div>
37 </div>
38
38
39 <div class="field">
39 <div class="field">
40 <div class="label">
40 <div class="label">
41 <label for="password">${_('Password')}:</label>
41 <label for="password">${_('Password')}:</label>
42 </div>
42 </div>
43 <div class="input">
43 <div class="input">
44 ${h.password('password',class_='small')}
44 ${h.password('password',class_='small')}
45 </div>
45 </div>
46 </div>
46 </div>
47
47
48 <div class="field">
48 <div class="field">
49 <div class="label">
49 <div class="label">
50 <label for="name">${_('Name')}:</label>
50 <label for="name">${_('Name')}:</label>
51 </div>
51 </div>
52 <div class="input">
52 <div class="input">
53 ${h.text('name',class_='small')}
53 ${h.text('name',class_='small')}
54 </div>
54 </div>
55 </div>
55 </div>
56
56
57 <div class="field">
57 <div class="field">
58 <div class="label">
58 <div class="label">
59 <label for="lastname">${_('Lastname')}:</label>
59 <label for="lastname">${_('Lastname')}:</label>
60 </div>
60 </div>
61 <div class="input">
61 <div class="input">
62 ${h.text('lastname',class_='small')}
62 ${h.text('lastname',class_='small')}
63 </div>
63 </div>
64 </div>
64 </div>
65
65
66 <div class="field">
66 <div class="field">
67 <div class="label">
67 <div class="label">
68 <label for="email">${_('Email')}:</label>
68 <label for="email">${_('Email')}:</label>
69 </div>
69 </div>
70 <div class="input">
70 <div class="input">
71 ${h.text('email',class_='small')}
71 ${h.text('email',class_='small')}
72 </div>
72 </div>
73 </div>
73 </div>
74
74
75 <div class="field">
75 <div class="field">
76 <div class="label label-checkbox">
76 <div class="label label-checkbox">
77 <label for="active">${_('Active')}:</label>
77 <label for="active">${_('Active')}:</label>
78 </div>
78 </div>
79 <div class="checkboxes">
79 <div class="checkboxes">
80 ${h.checkbox('active',value=True)}
80 ${h.checkbox('active',value=True)}
81 </div>
81 </div>
82 </div>
82 </div>
83
83
84 <div class="buttons">
84 <div class="buttons">
85 ${h.submit('save','save',class_="ui-button ui-widget ui-state-default ui-corner-all")}
85 ${h.submit('save','save',class_="ui-button ui-widget ui-state-default ui-corner-all")}
86 </div>
86 </div>
87 </div>
87 </div>
88 </div>
88 </div>
89 ${h.end_form()}
89 ${h.end_form()}
90 </div>
90 </div>
91 </%def> No newline at end of file
91 </%def>
@@ -1,110 +1,110 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="/base/base.html"/>
2 <%inherit file="/base/base.html"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('User administration')}
5 ${_('Edit user')} ${c.user.username} - ${c.rhodecode_name}
6 </%def>
6 </%def>
7
7
8 <%def name="breadcrumbs_links()">
8 <%def name="breadcrumbs_links()">
9 ${h.link_to(_('Admin'),h.url('admin_home'))}
9 ${h.link_to(_('Admin'),h.url('admin_home'))}
10 &raquo;
10 &raquo;
11 ${h.link_to(_('Users'),h.url('users'))}
11 ${h.link_to(_('Users'),h.url('users'))}
12 &raquo;
12 &raquo;
13 ${_('edit')} "${c.user.username}"
13 ${_('edit')} "${c.user.username}"
14 </%def>
14 </%def>
15
15
16 <%def name="page_nav()">
16 <%def name="page_nav()">
17 ${self.menu('admin')}
17 ${self.menu('admin')}
18 </%def>
18 </%def>
19
19
20 <%def name="main()">
20 <%def name="main()">
21 <div class="box">
21 <div class="box">
22 <!-- box / title -->
22 <!-- box / title -->
23 <div class="title">
23 <div class="title">
24 ${self.breadcrumbs()}
24 ${self.breadcrumbs()}
25 </div>
25 </div>
26 <!-- end box / title -->
26 <!-- end box / title -->
27 ${h.form(url('user', id=c.user.user_id),method='put')}
27 ${h.form(url('user', id=c.user.user_id),method='put')}
28 <div class="form">
28 <div class="form">
29 <!-- fields -->
29 <!-- fields -->
30 <div class="fields">
30 <div class="fields">
31 <div class="field">
31 <div class="field">
32 <div class="gravatar_box">
32 <div class="gravatar_box">
33 <div class="gravatar"><img alt="gravatar" src="${h.gravatar_url(c.user.email)}"/></div>
33 <div class="gravatar"><img alt="gravatar" src="${h.gravatar_url(c.user.email)}"/></div>
34 <p>
34 <p>
35 <strong>Change your avatar at <a href="http://gravatar.com">gravatar.com</a></strong><br/>
35 <strong>Change your avatar at <a href="http://gravatar.com">gravatar.com</a></strong><br/>
36 ${_('Using')} ${c.user.email}
36 ${_('Using')} ${c.user.email}
37 </p>
37 </p>
38 </div>
38 </div>
39 </div>
39 </div>
40
40
41 <div class="field">
41 <div class="field">
42 <div class="label">
42 <div class="label">
43 <label for="username">${_('Username')}:</label>
43 <label for="username">${_('Username')}:</label>
44 </div>
44 </div>
45 <div class="input">
45 <div class="input">
46 ${h.text('username',class_='small')}
46 ${h.text('username',class_='small')}
47 </div>
47 </div>
48 </div>
48 </div>
49
49
50 <div class="field">
50 <div class="field">
51 <div class="label">
51 <div class="label">
52 <label for="new_password">${_('New password')}:</label>
52 <label for="new_password">${_('New password')}:</label>
53 </div>
53 </div>
54 <div class="input">
54 <div class="input">
55 ${h.password('new_password',class_='small')}
55 ${h.password('new_password',class_='small')}
56 </div>
56 </div>
57 </div>
57 </div>
58
58
59 <div class="field">
59 <div class="field">
60 <div class="label">
60 <div class="label">
61 <label for="name">${_('Name')}:</label>
61 <label for="name">${_('Name')}:</label>
62 </div>
62 </div>
63 <div class="input">
63 <div class="input">
64 ${h.text('name',class_='small')}
64 ${h.text('name',class_='small')}
65 </div>
65 </div>
66 </div>
66 </div>
67
67
68 <div class="field">
68 <div class="field">
69 <div class="label">
69 <div class="label">
70 <label for="lastname">${_('Lastname')}:</label>
70 <label for="lastname">${_('Lastname')}:</label>
71 </div>
71 </div>
72 <div class="input">
72 <div class="input">
73 ${h.text('lastname',class_='small')}
73 ${h.text('lastname',class_='small')}
74 </div>
74 </div>
75 </div>
75 </div>
76
76
77 <div class="field">
77 <div class="field">
78 <div class="label">
78 <div class="label">
79 <label for="email">${_('Email')}:</label>
79 <label for="email">${_('Email')}:</label>
80 </div>
80 </div>
81 <div class="input">
81 <div class="input">
82 ${h.text('email',class_='small')}
82 ${h.text('email',class_='small')}
83 </div>
83 </div>
84 </div>
84 </div>
85
85
86 <div class="field">
86 <div class="field">
87 <div class="label label-checkbox">
87 <div class="label label-checkbox">
88 <label for="active">${_('Active')}:</label>
88 <label for="active">${_('Active')}:</label>
89 </div>
89 </div>
90 <div class="checkboxes">
90 <div class="checkboxes">
91 ${h.checkbox('active',value=True)}
91 ${h.checkbox('active',value=True)}
92 </div>
92 </div>
93 </div>
93 </div>
94
94
95 <div class="field">
95 <div class="field">
96 <div class="label label-checkbox">
96 <div class="label label-checkbox">
97 <label for="admin">${_('Admin')}:</label>
97 <label for="admin">${_('Admin')}:</label>
98 </div>
98 </div>
99 <div class="checkboxes">
99 <div class="checkboxes">
100 ${h.checkbox('admin',value=True)}
100 ${h.checkbox('admin',value=True)}
101 </div>
101 </div>
102 </div>
102 </div>
103 <div class="buttons">
103 <div class="buttons">
104 ${h.submit('save','save',class_="ui-button ui-widget ui-state-default ui-corner-all")}
104 ${h.submit('save','save',class_="ui-button ui-widget ui-state-default ui-corner-all")}
105 </div>
105 </div>
106 </div>
106 </div>
107 </div>
107 </div>
108 ${h.end_form()}
108 ${h.end_form()}
109 </div>
109 </div>
110 </%def> No newline at end of file
110 </%def>
@@ -1,130 +1,130 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="/base/base.html"/>
2 <%inherit file="/base/base.html"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${c.rhodecode_user.username} ${_('account')}
5 ${_('My account')} ${c.rhodecode_user.username} - ${c.rhodecode_name}
6 </%def>
6 </%def>
7
7
8 <%def name="breadcrumbs_links()">
8 <%def name="breadcrumbs_links()">
9 ${_('My Account')}
9 ${_('My Account')}
10 </%def>
10 </%def>
11
11
12 <%def name="page_nav()">
12 <%def name="page_nav()">
13 ${self.menu('admin')}
13 ${self.menu('admin')}
14 </%def>
14 </%def>
15
15
16 <%def name="main()">
16 <%def name="main()">
17
17
18 <div class="box box-left">
18 <div class="box box-left">
19 <!-- box / title -->
19 <!-- box / title -->
20 <div class="title">
20 <div class="title">
21 ${self.breadcrumbs()}
21 ${self.breadcrumbs()}
22 </div>
22 </div>
23 <!-- end box / title -->
23 <!-- end box / title -->
24 <div class="ui-tabs-panel ui-widget-content ui-corner-bottom">
24 <div class="ui-tabs-panel ui-widget-content ui-corner-bottom">
25 ${h.form(url('admin_settings_my_account_update'),method='put')}
25 ${h.form(url('admin_settings_my_account_update'),method='put')}
26 <div class="form">
26 <div class="form">
27 <div class="fields">
27 <div class="fields">
28 <div class="field">
28 <div class="field">
29 <div class="label">
29 <div class="label">
30 <label for="username">${_('Username')}:</label>
30 <label for="username">${_('Username')}:</label>
31 </div>
31 </div>
32 <div class="input">
32 <div class="input">
33 ${h.text('username')}
33 ${h.text('username')}
34 </div>
34 </div>
35 </div>
35 </div>
36
36
37 <div class="field">
37 <div class="field">
38 <div class="label">
38 <div class="label">
39 <label for="new_password">${_('New password')}:</label>
39 <label for="new_password">${_('New password')}:</label>
40 </div>
40 </div>
41 <div class="input">
41 <div class="input">
42 ${h.password('new_password')}
42 ${h.password('new_password')}
43 </div>
43 </div>
44 </div>
44 </div>
45
45
46 <div class="field">
46 <div class="field">
47 <div class="label">
47 <div class="label">
48 <label for="name">${_('Name')}:</label>
48 <label for="name">${_('Name')}:</label>
49 </div>
49 </div>
50 <div class="input">
50 <div class="input">
51 ${h.text('name')}
51 ${h.text('name')}
52 </div>
52 </div>
53 </div>
53 </div>
54
54
55 <div class="field">
55 <div class="field">
56 <div class="label">
56 <div class="label">
57 <label for="lastname">${_('Lastname')}:</label>
57 <label for="lastname">${_('Lastname')}:</label>
58 </div>
58 </div>
59 <div class="input">
59 <div class="input">
60 ${h.text('lastname')}
60 ${h.text('lastname')}
61 </div>
61 </div>
62 </div>
62 </div>
63
63
64 <div class="field">
64 <div class="field">
65 <div class="label">
65 <div class="label">
66 <label for="email">${_('Email')}:</label>
66 <label for="email">${_('Email')}:</label>
67 </div>
67 </div>
68 <div class="input">
68 <div class="input">
69 ${h.text('email')}
69 ${h.text('email')}
70 </div>
70 </div>
71 </div>
71 </div>
72
72
73 <div class="buttons">
73 <div class="buttons">
74 ${h.submit('save','save',class_="ui-button ui-widget ui-state-default ui-corner-all")}
74 ${h.submit('save','save',class_="ui-button ui-widget ui-state-default ui-corner-all")}
75 </div>
75 </div>
76 </div>
76 </div>
77 </div>
77 </div>
78 ${h.end_form()}
78 ${h.end_form()}
79 </div>
79 </div>
80 </div>
80 </div>
81
81
82 <div class="box box-right">
82 <div class="box box-right">
83 <!-- box / title -->
83 <!-- box / title -->
84 <div class="title">
84 <div class="title">
85 <h5>${_('My repositories')}</h5>
85 <h5>${_('My repositories')}</h5>
86 </div>
86 </div>
87 <!-- end box / title -->
87 <!-- end box / title -->
88 <div class="table">
88 <div class="table">
89 <table>
89 <table>
90 <tbody>
90 <tbody>
91 %if c.user_repos:
91 %if c.user_repos:
92 %for repo in c.user_repos:
92 %for repo in c.user_repos:
93 <tr>
93 <tr>
94 <td>
94 <td>
95 %if repo.dbrepo.private:
95 %if repo.dbrepo.private:
96 <img class="icon" alt="${_('private')}" src="/images/icons/lock.png"/>
96 <img class="icon" alt="${_('private')}" src="/images/icons/lock.png"/>
97 %else:
97 %else:
98 <img class="icon" alt="${_('public')}" src="/images/icons/lock_open.png"/>
98 <img class="icon" alt="${_('public')}" src="/images/icons/lock_open.png"/>
99 %endif
99 %endif
100
100
101 ${h.link_to(repo.name, h.url('summary_home',repo_name=repo.name))}
101 ${h.link_to(repo.name, h.url('summary_home',repo_name=repo.name))}
102 %if repo.dbrepo.fork:
102 %if repo.dbrepo.fork:
103 <a href="${h.url('summary_home',repo_name=repo.dbrepo.fork.repo_name)}">
103 <a href="${h.url('summary_home',repo_name=repo.dbrepo.fork.repo_name)}">
104 <img class="icon" alt="${_('public')}"
104 <img class="icon" alt="${_('public')}"
105 title="${_('Fork of')} ${repo.dbrepo.fork.repo_name}"
105 title="${_('Fork of')} ${repo.dbrepo.fork.repo_name}"
106 src="/images/icons/arrow_divide.png"/></a>
106 src="/images/icons/arrow_divide.png"/></a>
107 %endif
107 %endif
108 </td>
108 </td>
109 <td>${_('revision')}: ${h.get_changeset_safe(repo,'tip').revision}</td>
109 <td>${_('revision')}: ${h.get_changeset_safe(repo,'tip').revision}</td>
110 <td>${_('last changed')}: ${h.age(repo.last_change)}</td>
110 <td>${_('last changed')}: ${h.age(repo.last_change)}</td>
111 <td><img class="icon" alt="${_('private')}" src="/images/icons/application_form_edit.png"/> ${h.link_to(_('edit'),h.url('repo_settings_home',repo_name=repo.name))}</td>
111 <td><img class="icon" alt="${_('private')}" src="/images/icons/application_form_edit.png"/> ${h.link_to(_('edit'),h.url('repo_settings_home',repo_name=repo.name))}</td>
112 <td>
112 <td>
113 ${h.form(url('repo_settings_delete', repo_name=repo.name),method='delete')}
113 ${h.form(url('repo_settings_delete', repo_name=repo.name),method='delete')}
114 ${h.submit('remove_%s' % repo.name,'delete',class_="delete_icon action_button",onclick="return confirm('Confirm to delete this repository');")}
114 ${h.submit('remove_%s' % repo.name,'delete',class_="delete_icon action_button",onclick="return confirm('Confirm to delete this repository');")}
115 ${h.end_form()}
115 ${h.end_form()}
116 </td>
116 </td>
117 </tr>
117 </tr>
118 %endfor
118 %endfor
119 %else:
119 %else:
120 ${_('No repositories yet')}
120 ${_('No repositories yet')}
121 %if h.HasPermissionAny('hg.admin','hg.create.repository')():
121 %if h.HasPermissionAny('hg.admin','hg.create.repository')():
122 ${h.link_to(_('create one now'),h.url('admin_settings_create_repository'))}
122 ${h.link_to(_('create one now'),h.url('admin_settings_create_repository'))}
123 %endif
123 %endif
124 %endif
124 %endif
125 </tbody>
125 </tbody>
126 </table>
126 </table>
127 </div>
127 </div>
128
128
129 </div>
129 </div>
130 </%def> No newline at end of file
130 </%def>
@@ -1,60 +1,60 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="/base/base.html"/>
2 <%inherit file="/base/base.html"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('Users administration')}
5 ${_('Users administration')} - ${c.rhodecode_name}
6 </%def>
6 </%def>
7
7
8 <%def name="breadcrumbs_links()">
8 <%def name="breadcrumbs_links()">
9 ${h.link_to(_('Admin'),h.url('admin_home'))} &raquo; ${_('Users')}
9 ${h.link_to(_('Admin'),h.url('admin_home'))} &raquo; ${_('Users')}
10 </%def>
10 </%def>
11
11
12 <%def name="page_nav()">
12 <%def name="page_nav()">
13 ${self.menu('admin')}
13 ${self.menu('admin')}
14 </%def>
14 </%def>
15
15
16 <%def name="main()">
16 <%def name="main()">
17 <div class="box">
17 <div class="box">
18 <!-- box / title -->
18 <!-- box / title -->
19 <div class="title">
19 <div class="title">
20 ${self.breadcrumbs()}
20 ${self.breadcrumbs()}
21 <ul class="links">
21 <ul class="links">
22 <li>
22 <li>
23 <span>${h.link_to(u'ADD NEW USER',h.url('new_user'))}</span>
23 <span>${h.link_to(u'ADD NEW USER',h.url('new_user'))}</span>
24 </li>
24 </li>
25
25
26 </ul>
26 </ul>
27 </div>
27 </div>
28 <!-- end box / title -->
28 <!-- end box / title -->
29 <div class="table">
29 <div class="table">
30 <table class="table_disp">
30 <table class="table_disp">
31 <tr class="header">
31 <tr class="header">
32 <th></th>
32 <th></th>
33 <th class="left">${_('username')}</th>
33 <th class="left">${_('username')}</th>
34 <th class="left">${_('name')}</th>
34 <th class="left">${_('name')}</th>
35 <th class="left">${_('lastname')}</th>
35 <th class="left">${_('lastname')}</th>
36 <th class="left">${_('active')}</th>
36 <th class="left">${_('active')}</th>
37 <th class="left">${_('admin')}</th>
37 <th class="left">${_('admin')}</th>
38 <th class="left">${_('action')}</th>
38 <th class="left">${_('action')}</th>
39 </tr>
39 </tr>
40 %for cnt,user in enumerate(c.users_list):
40 %for cnt,user in enumerate(c.users_list):
41 %if user.name !='default':
41 %if user.name !='default':
42 <tr class="parity${cnt%2}">
42 <tr class="parity${cnt%2}">
43 <td><div class="gravatar"><img alt="gravatar" src="${h.gravatar_url(user.email,24)}"> </div></td>
43 <td><div class="gravatar"><img alt="gravatar" src="${h.gravatar_url(user.email,24)}"> </div></td>
44 <td>${h.link_to(user.username,h.url('edit_user', id=user.user_id))}</td>
44 <td>${h.link_to(user.username,h.url('edit_user', id=user.user_id))}</td>
45 <td>${user.name}</td>
45 <td>${user.name}</td>
46 <td>${user.lastname}</td>
46 <td>${user.lastname}</td>
47 <td>${user.active}</td>
47 <td>${user.active}</td>
48 <td>${user.admin}</td>
48 <td>${user.admin}</td>
49 <td>
49 <td>
50 ${h.form(url('user', id=user.user_id),method='delete')}
50 ${h.form(url('user', id=user.user_id),method='delete')}
51 ${h.submit('remove','delete',class_="delete_icon action_button")}
51 ${h.submit('remove','delete',class_="delete_icon action_button")}
52 ${h.end_form()}
52 ${h.end_form()}
53 </td>
53 </td>
54 </tr>
54 </tr>
55 %endif
55 %endif
56 %endfor
56 %endfor
57 </table>
57 </table>
58 </div>
58 </div>
59 </div>
59 </div>
60 </%def>
60 </%def>
@@ -1,31 +1,31 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="/base/base.html"/>
2 <%inherit file="/base/base.html"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('Administration')}
5 ${c.repo_name} ${_('Branches')} - ${c.rhodecode_name}
6 </%def>
6 </%def>
7
7
8 <%def name="breadcrumbs_links()">
8 <%def name="breadcrumbs_links()">
9 ${h.link_to(u'Home',h.url('/'))}
9 ${h.link_to(u'Home',h.url('/'))}
10 &raquo;
10 &raquo;
11 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
11 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
12 &raquo;
12 &raquo;
13 ${_('branches')}
13 ${_('branches')}
14 </%def>
14 </%def>
15
15
16 <%def name="page_nav()">
16 <%def name="page_nav()">
17 ${self.menu('branches')}
17 ${self.menu('branches')}
18 </%def>
18 </%def>
19
19
20 <%def name="main()">
20 <%def name="main()">
21 <div class="box">
21 <div class="box">
22 <!-- box / title -->
22 <!-- box / title -->
23 <div class="title">
23 <div class="title">
24 ${self.breadcrumbs()}
24 ${self.breadcrumbs()}
25 </div>
25 </div>
26 <!-- end box / title -->
26 <!-- end box / title -->
27 <div class="table">
27 <div class="table">
28 <%include file='branches_data.html'/>
28 <%include file='branches_data.html'/>
29 </div>
29 </div>
30 </div>
30 </div>
31 </%def> No newline at end of file
31 </%def>
@@ -1,121 +1,121 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2
2
3 <%inherit file="/base/base.html"/>
3 <%inherit file="/base/base.html"/>
4
4
5 <%def name="title()">
5 <%def name="title()">
6 ${_('Changelog')} - ${c.repo_name}
6 ${c.repo_name} ${_('Changelog')} - ${c.rhodecode_name}
7 </%def>
7 </%def>
8
8
9 <%def name="breadcrumbs_links()">
9 <%def name="breadcrumbs_links()">
10 ${h.link_to(u'Home',h.url('/'))}
10 ${h.link_to(u'Home',h.url('/'))}
11 &raquo;
11 &raquo;
12 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
12 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
13 &raquo;
13 &raquo;
14 ${_('Changelog')} - ${_('showing ')} ${c.size if c.size <= c.total_cs else c.total_cs} ${_('out of')} ${c.total_cs} ${_('revisions')}
14 ${_('Changelog')} - ${_('showing ')} ${c.size if c.size <= c.total_cs else c.total_cs} ${_('out of')} ${c.total_cs} ${_('revisions')}
15 </%def>
15 </%def>
16
16
17 <%def name="page_nav()">
17 <%def name="page_nav()">
18 ${self.menu('changelog')}
18 ${self.menu('changelog')}
19 </%def>
19 </%def>
20
20
21 <%def name="main()">
21 <%def name="main()">
22 <div class="box">
22 <div class="box">
23 <!-- box / title -->
23 <!-- box / title -->
24 <div class="title">
24 <div class="title">
25 ${self.breadcrumbs()}
25 ${self.breadcrumbs()}
26 </div>
26 </div>
27 <div class="table">
27 <div class="table">
28 % if c.pagination:
28 % if c.pagination:
29 <div id="graph">
29 <div id="graph">
30 <div id="graph_nodes">
30 <div id="graph_nodes">
31 <canvas id="graph_canvas"></canvas>
31 <canvas id="graph_canvas"></canvas>
32 </div>
32 </div>
33 <div id="graph_content">
33 <div id="graph_content">
34 <div class="container_header">
34 <div class="container_header">
35
35
36 ${h.form(h.url.current(),method='get')}
36 ${h.form(h.url.current(),method='get')}
37 <div class="info_box">
37 <div class="info_box">
38 <span>${_('Show')}:</span>
38 <span>${_('Show')}:</span>
39 ${h.text('size',size=1,value=c.size)}
39 ${h.text('size',size=1,value=c.size)}
40 <span>${_('revisions')}</span>
40 <span>${_('revisions')}</span>
41 ${h.submit('set',_('set'))}
41 ${h.submit('set',_('set'))}
42 </div>
42 </div>
43 ${h.end_form()}
43 ${h.end_form()}
44
44
45 </div>
45 </div>
46 %for cnt,cs in enumerate(c.pagination):
46 %for cnt,cs in enumerate(c.pagination):
47 <div id="chg_${cnt+1}" class="container">
47 <div id="chg_${cnt+1}" class="container">
48 <div class="left">
48 <div class="left">
49 <div class="date">${_('commit')} ${cs.revision}: ${cs.short_id}@${cs.date}</div>
49 <div class="date">${_('commit')} ${cs.revision}: ${cs.short_id}@${cs.date}</div>
50 <div class="author">
50 <div class="author">
51 <div class="gravatar">
51 <div class="gravatar">
52 <img alt="gravatar" src="${h.gravatar_url(h.email(cs.author),20)}"/>
52 <img alt="gravatar" src="${h.gravatar_url(h.email(cs.author),20)}"/>
53 </div>
53 </div>
54 <span>${h.person(cs.author)}</span><br/>
54 <span>${h.person(cs.author)}</span><br/>
55 <span><a href="mailto:${h.email_or_none(cs.author)}">${h.email_or_none(cs.author)}</a></span><br/>
55 <span><a href="mailto:${h.email_or_none(cs.author)}">${h.email_or_none(cs.author)}</a></span><br/>
56 </div>
56 </div>
57 <div class="message">${h.link_to(h.wrap_paragraphs(cs.message),h.url('changeset_home',repo_name=c.repo_name,revision=cs.short_id))}</div>
57 <div class="message">${h.link_to(h.wrap_paragraphs(cs.message),h.url('changeset_home',repo_name=c.repo_name,revision=cs.short_id))}</div>
58 </div>
58 </div>
59 <div class="right">
59 <div class="right">
60 <div class="changes">
60 <div class="changes">
61 <span class="removed" title="${_('removed')}">${len(cs.removed)}</span>
61 <span class="removed" title="${_('removed')}">${len(cs.removed)}</span>
62 <span class="changed" title="${_('changed')}">${len(cs.changed)}</span>
62 <span class="changed" title="${_('changed')}">${len(cs.changed)}</span>
63 <span class="added" title="${_('added')}">${len(cs.added)}</span>
63 <span class="added" title="${_('added')}">${len(cs.added)}</span>
64 </div>
64 </div>
65 %if len(cs.parents)>1:
65 %if len(cs.parents)>1:
66 <div class="merge">
66 <div class="merge">
67 ${_('merge')}<img alt="merge" src="/images/icons/arrow_join.png"/>
67 ${_('merge')}<img alt="merge" src="/images/icons/arrow_join.png"/>
68 </div>
68 </div>
69 %endif
69 %endif
70 %if cs.parents:
70 %if cs.parents:
71 %for p_cs in reversed(cs.parents):
71 %for p_cs in reversed(cs.parents):
72 <div class="parent">${_('Parent')} ${p_cs.revision}: ${h.link_to(p_cs.short_id,
72 <div class="parent">${_('Parent')} ${p_cs.revision}: ${h.link_to(p_cs.short_id,
73 h.url('changeset_home',repo_name=c.repo_name,revision=p_cs.short_id),title=p_cs.message)}
73 h.url('changeset_home',repo_name=c.repo_name,revision=p_cs.short_id),title=p_cs.message)}
74 </div>
74 </div>
75 %endfor
75 %endfor
76 %else:
76 %else:
77 <div class="parent">${_('No parents')}</div>
77 <div class="parent">${_('No parents')}</div>
78 %endif
78 %endif
79
79
80 <span class="logtags">
80 <span class="logtags">
81 <span class="branchtag" title="${'%s %s' % (_('branch'),cs.branch)}">
81 <span class="branchtag" title="${'%s %s' % (_('branch'),cs.branch)}">
82 ${h.link_to(cs.branch,h.url('files_home',repo_name=c.repo_name,revision=cs.short_id))}</span>
82 ${h.link_to(cs.branch,h.url('files_home',repo_name=c.repo_name,revision=cs.short_id))}</span>
83 %for tag in cs.tags:
83 %for tag in cs.tags:
84 <span class="tagtag" title="${'%s %s' % (_('tag'),tag)}">
84 <span class="tagtag" title="${'%s %s' % (_('tag'),tag)}">
85 ${h.link_to(tag,h.url('files_home',repo_name=c.repo_name,revision=cs.short_id))}</span>
85 ${h.link_to(tag,h.url('files_home',repo_name=c.repo_name,revision=cs.short_id))}</span>
86 %endfor
86 %endfor
87 </span>
87 </span>
88 </div>
88 </div>
89 </div>
89 </div>
90
90
91 %endfor
91 %endfor
92 <div class="pagination-wh pagination-left">
92 <div class="pagination-wh pagination-left">
93 ${c.pagination.pager('$link_previous ~2~ $link_next')}
93 ${c.pagination.pager('$link_previous ~2~ $link_next')}
94 </div>
94 </div>
95 </div>
95 </div>
96 </div>
96 </div>
97
97
98 <script type="text/javascript" src="/js/graph.js"></script>
98 <script type="text/javascript" src="/js/graph.js"></script>
99 <script type="text/javascript">
99 <script type="text/javascript">
100 YAHOO.util.Event.onDOMReady(function(){
100 YAHOO.util.Event.onDOMReady(function(){
101 function set_canvas() {
101 function set_canvas() {
102 var c = document.getElementById('graph_nodes');
102 var c = document.getElementById('graph_nodes');
103 var t = document.getElementById('graph_content');
103 var t = document.getElementById('graph_content');
104 canvas = document.getElementById('graph_canvas');
104 canvas = document.getElementById('graph_canvas');
105 var div_h = t.clientHeight;
105 var div_h = t.clientHeight;
106 c.style.height=div_h+'px';
106 c.style.height=div_h+'px';
107 canvas.setAttribute('height',div_h);
107 canvas.setAttribute('height',div_h);
108 canvas.setAttribute('width',160);
108 canvas.setAttribute('width',160);
109 };
109 };
110 set_canvas();
110 set_canvas();
111 var jsdata = ${c.jsdata|n};
111 var jsdata = ${c.jsdata|n};
112 var r = new BranchRenderer();
112 var r = new BranchRenderer();
113 r.render(jsdata);
113 r.render(jsdata);
114 });
114 });
115 </script>
115 </script>
116 %else:
116 %else:
117 ${_('There are no changes yet')}
117 ${_('There are no changes yet')}
118 %endif
118 %endif
119 </div>
119 </div>
120 </div>
120 </div>
121 </%def> No newline at end of file
121 </%def>
@@ -1,124 +1,124 b''
1 <%inherit file="/base/base.html"/>
1 <%inherit file="/base/base.html"/>
2
2
3 <%def name="title()">
3 <%def name="title()">
4 ${_('Changeset')} - r${c.changeset.revision}:${c.changeset.short_id} - ${c.repo_name}
4 ${c.repo_name} ${_('Changeset')} - r${c.changeset.revision}:${c.changeset.short_id} - ${c.rhodecode_name}
5 </%def>
5 </%def>
6
6
7 <%def name="breadcrumbs_links()">
7 <%def name="breadcrumbs_links()">
8 ${h.link_to(u'Home',h.url('/'))}
8 ${h.link_to(u'Home',h.url('/'))}
9 &raquo;
9 &raquo;
10 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
10 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
11 &raquo;
11 &raquo;
12 ${_('Changeset')} - r${c.changeset.revision}:${c.changeset.short_id}
12 ${_('Changeset')} - r${c.changeset.revision}:${c.changeset.short_id}
13 </%def>
13 </%def>
14
14
15 <%def name="page_nav()">
15 <%def name="page_nav()">
16 ${self.menu('changelog')}
16 ${self.menu('changelog')}
17 </%def>
17 </%def>
18
18
19 <%def name="main()">
19 <%def name="main()">
20 <div class="box">
20 <div class="box">
21 <!-- box / title -->
21 <!-- box / title -->
22 <div class="title">
22 <div class="title">
23 ${self.breadcrumbs()}
23 ${self.breadcrumbs()}
24 </div>
24 </div>
25 <div class="table">
25 <div class="table">
26 <div id="body" class="diffblock">
26 <div id="body" class="diffblock">
27 <div class="code-header">
27 <div class="code-header">
28 <div>
28 <div>
29 ${_('Changeset')} - r${c.changeset.revision}:${c.changeset.short_id}
29 ${_('Changeset')} - r${c.changeset.revision}:${c.changeset.short_id}
30 &raquo; <span>${h.link_to(_('raw diff'),
30 &raquo; <span>${h.link_to(_('raw diff'),
31 h.url('raw_changeset_home',repo_name=c.repo_name,revision=c.changeset.short_id,diff='show'))}</span>
31 h.url('raw_changeset_home',repo_name=c.repo_name,revision=c.changeset.short_id,diff='show'))}</span>
32 &raquo; <span>${h.link_to(_('download diff'),
32 &raquo; <span>${h.link_to(_('download diff'),
33 h.url('raw_changeset_home',repo_name=c.repo_name,revision=c.changeset.short_id,diff='download'))}</span>
33 h.url('raw_changeset_home',repo_name=c.repo_name,revision=c.changeset.short_id,diff='download'))}</span>
34 </div>
34 </div>
35 </div>
35 </div>
36 </div>
36 </div>
37 <div id="changeset_content">
37 <div id="changeset_content">
38 <div class="container">
38 <div class="container">
39 <div class="left">
39 <div class="left">
40 <div class="date">${_('commit')} ${c.changeset.revision}: ${c.changeset.short_id}@${c.changeset.date}</div>
40 <div class="date">${_('commit')} ${c.changeset.revision}: ${c.changeset.short_id}@${c.changeset.date}</div>
41 <div class="author">
41 <div class="author">
42 <div class="gravatar">
42 <div class="gravatar">
43 <img alt="gravatar" src="${h.gravatar_url(h.email(c.changeset.author),20)}"/>
43 <img alt="gravatar" src="${h.gravatar_url(h.email(c.changeset.author),20)}"/>
44 </div>
44 </div>
45 <span>${h.person(c.changeset.author)}</span><br/>
45 <span>${h.person(c.changeset.author)}</span><br/>
46 <span><a href="mailto:${h.email_or_none(c.changeset.author)}">${h.email_or_none(c.changeset.author)}</a></span><br/>
46 <span><a href="mailto:${h.email_or_none(c.changeset.author)}">${h.email_or_none(c.changeset.author)}</a></span><br/>
47 </div>
47 </div>
48 <div class="message">${h.link_to(h.wrap_paragraphs(c.changeset.message),h.url('changeset_home',repo_name=c.repo_name,revision=c.changeset.short_id))}</div>
48 <div class="message">${h.link_to(h.wrap_paragraphs(c.changeset.message),h.url('changeset_home',repo_name=c.repo_name,revision=c.changeset.short_id))}</div>
49 </div>
49 </div>
50 <div class="right">
50 <div class="right">
51 <div class="changes">
51 <div class="changes">
52 <span class="removed" title="${_('removed')}">${len(c.changeset.removed)}</span>
52 <span class="removed" title="${_('removed')}">${len(c.changeset.removed)}</span>
53 <span class="changed" title="${_('changed')}">${len(c.changeset.changed)}</span>
53 <span class="changed" title="${_('changed')}">${len(c.changeset.changed)}</span>
54 <span class="added" title="${_('added')}">${len(c.changeset.added)}</span>
54 <span class="added" title="${_('added')}">${len(c.changeset.added)}</span>
55 </div>
55 </div>
56 %if len(c.changeset.parents)>1:
56 %if len(c.changeset.parents)>1:
57 <div class="merge">
57 <div class="merge">
58 ${_('merge')}<img alt="merge" src="/images/icons/arrow_join.png"/>
58 ${_('merge')}<img alt="merge" src="/images/icons/arrow_join.png"/>
59 </div>
59 </div>
60 %endif
60 %endif
61
61
62 %if c.changeset.parents:
62 %if c.changeset.parents:
63 %for p_cs in reversed(c.changeset.parents):
63 %for p_cs in reversed(c.changeset.parents):
64 <div class="parent">${_('Parent')} ${p_cs.revision}: ${h.link_to(p_cs.short_id,
64 <div class="parent">${_('Parent')} ${p_cs.revision}: ${h.link_to(p_cs.short_id,
65 h.url('changeset_home',repo_name=c.repo_name,revision=p_cs.short_id),title=p_cs.message)}
65 h.url('changeset_home',repo_name=c.repo_name,revision=p_cs.short_id),title=p_cs.message)}
66 </div>
66 </div>
67 %endfor
67 %endfor
68 %else:
68 %else:
69 <div class="parent">${_('No parents')}</div>
69 <div class="parent">${_('No parents')}</div>
70 %endif
70 %endif
71 <span class="logtags">
71 <span class="logtags">
72 <span class="branchtag" title="${'%s %s' % (_('branch'),c.changeset.branch)}">
72 <span class="branchtag" title="${'%s %s' % (_('branch'),c.changeset.branch)}">
73 ${h.link_to(c.changeset.branch,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.short_id))}</span>
73 ${h.link_to(c.changeset.branch,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.short_id))}</span>
74 %for tag in c.changeset.tags:
74 %for tag in c.changeset.tags:
75 <span class="tagtag" title="${'%s %s' % (_('tag'),tag)}">
75 <span class="tagtag" title="${'%s %s' % (_('tag'),tag)}">
76 ${h.link_to(tag,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.short_id))}</span>
76 ${h.link_to(tag,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.short_id))}</span>
77 %endfor
77 %endfor
78 </span>
78 </span>
79 </div>
79 </div>
80 </div>
80 </div>
81 <span style="font-size:1.1em;font-weight: bold">${_('Files affected')}</span>
81 <span style="font-size:1.1em;font-weight: bold">${_('Files affected')}</span>
82 <div class="cs_files">
82 <div class="cs_files">
83 %for change,filenode,diff,cs1,cs2 in c.changes:
83 %for change,filenode,diff,cs1,cs2 in c.changes:
84 <div class="cs_${change}">${h.link_to(filenode.path,h.url.current(anchor='CHANGE-%s'%filenode.path))}</div>
84 <div class="cs_${change}">${h.link_to(filenode.path,h.url.current(anchor='CHANGE-%s'%filenode.path))}</div>
85 %endfor
85 %endfor
86 </div>
86 </div>
87 </div>
87 </div>
88
88
89 </div>
89 </div>
90
90
91 %for change,filenode,diff,cs1,cs2 in c.changes:
91 %for change,filenode,diff,cs1,cs2 in c.changes:
92 %if change !='removed':
92 %if change !='removed':
93 <div style="clear:both;height:10px"></div>
93 <div style="clear:both;height:10px"></div>
94 <div id="body" class="diffblock">
94 <div id="body" class="diffblock">
95 <div id="${'CHANGE-%s'%filenode.path}" class="code-header">
95 <div id="${'CHANGE-%s'%filenode.path}" class="code-header">
96 <div>
96 <div>
97 <span>
97 <span>
98 ${h.link_to_if(change!='removed',filenode.path,h.url('files_home',repo_name=c.repo_name,
98 ${h.link_to_if(change!='removed',filenode.path,h.url('files_home',repo_name=c.repo_name,
99 revision=filenode.changeset.short_id,f_path=filenode.path))}
99 revision=filenode.changeset.short_id,f_path=filenode.path))}
100 </span>
100 </span>
101 %if 1:
101 %if 1:
102 &raquo; <span>${h.link_to(_('diff'),
102 &raquo; <span>${h.link_to(_('diff'),
103 h.url('files_diff_home',repo_name=c.repo_name,f_path=filenode.path,diff2=cs2,diff1=cs1,diff='diff'))}</span>
103 h.url('files_diff_home',repo_name=c.repo_name,f_path=filenode.path,diff2=cs2,diff1=cs1,diff='diff'))}</span>
104 &raquo; <span>${h.link_to(_('raw diff'),
104 &raquo; <span>${h.link_to(_('raw diff'),
105 h.url('files_diff_home',repo_name=c.repo_name,f_path=filenode.path,diff2=cs2,diff1=cs1,diff='raw'))}</span>
105 h.url('files_diff_home',repo_name=c.repo_name,f_path=filenode.path,diff2=cs2,diff1=cs1,diff='raw'))}</span>
106 &raquo; <span>${h.link_to(_('download diff'),
106 &raquo; <span>${h.link_to(_('download diff'),
107 h.url('files_diff_home',repo_name=c.repo_name,f_path=filenode.path,diff2=cs2,diff1=cs1,diff='download'))}</span>
107 h.url('files_diff_home',repo_name=c.repo_name,f_path=filenode.path,diff2=cs2,diff1=cs1,diff='download'))}</span>
108 %endif
108 %endif
109 </div>
109 </div>
110 </div>
110 </div>
111 <div class="code-body">
111 <div class="code-body">
112 %if diff:
112 %if diff:
113 ${diff|n}
113 ${diff|n}
114 %else:
114 %else:
115 ${_('No changes in this file')}
115 ${_('No changes in this file')}
116 %endif
116 %endif
117 </div>
117 </div>
118 </div>
118 </div>
119 %endif
119 %endif
120 %endfor
120 %endfor
121 </div>
121 </div>
122 </div>
122 </div>
123
123
124 </%def> No newline at end of file
124 </%def>
@@ -1,53 +1,56 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" id="mainhtml">
3 <html xmlns="http://www.w3.org/1999/xhtml" id="mainhtml">
4 <head>
4 <head>
5 <title>Error - ${c.error_message}</title>
5 <title>Error - ${c.error_message}</title>
6 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
6 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
7 %if c.redirect_time:
7 %if c.redirect_time:
8 <meta http-equiv="refresh" content="${c.redirect_time}; url=${c.url_redirect}"/>
8 <meta http-equiv="refresh" content="${c.redirect_time}; url=${c.url_redirect}"/>
9 %endif
9 %endif
10 <link rel="icon" href="/images/hgicon.png" type="image/png" />
10 <link rel="icon" href="/images/hgicon.png" type="image/png" />
11 <meta name="robots" content="index, nofollow"/>
11 <meta name="robots" content="index, nofollow"/>
12
12
13 <!-- stylesheets -->
13 <!-- stylesheets -->
14 <link rel="stylesheet" type="text/css" href="/css/reset.css" />
14 <link rel="stylesheet" type="text/css" href="/css/reset.css" />
15 <link rel="stylesheet" type="text/css" href="/css/style.css" media="screen" />
15 <link rel="stylesheet" type="text/css" href="/css/style.css" media="screen" />
16 <link id="color" rel="stylesheet" type="text/css" href="/css/colors/blue.css" />
16 <link id="color" rel="stylesheet" type="text/css" href="/css/colors/blue.css" />
17 <style type="text/css">
17 <style type="text/css">
18 #main_div{
18 #main_div{
19 border: 0px solid #000;
19 border: 0px solid #000;
20 width: 500px;
20 width: 500px;
21 margin: auto;
21 margin: auto;
22 text-align: center;
22 text-align: center;
23 margin-top: 200px;
23 margin-top: 200px;
24 font-size: 1.8em;
24 font-size: 1.6em;
25 }
25 }
26 .error_message{
26 .error_message{
27 text-align: center;
27 text-align: center;
28 color:red;
28 color:#003367;
29 font-size: 1.8em;
29 font-size: 1.6em;
30 margin:10px;
30 }
31 }
31 </style>
32 </style>
32
33
33 </head>
34 </head>
34 <body>
35 <body>
35
36
36 <div id="login">
37 <div id="login">
37 <div class="table">
38 <div class="table">
38 <div id="main_div">
39 <div id="main_div">
40 <div style="font-size:2.0em;margin: 10px">RhodeCode</div>
39 <h1 class="error_message">${c.error_message}</h1>
41 <h1 class="error_message">${c.error_message}</h1>
40
42
41 <p>${c.error_explanation}</p>
43 <p>${c.error_explanation}</p>
44
42 %if c.redirect_time:
45 %if c.redirect_time:
43 <p>${_('You will be redirected to %s in %s seconds') % (c.redirect_module,c.redirect_time)}</p>
46 <p>${_('You will be redirected to %s in %s seconds') % (c.redirect_module,c.redirect_time)}</p>
44 %endif
47 %endif
45
48
46 </div>
49 </div>
47 </div>
50 </div>
48 <!-- end login -->
51 <!-- end login -->
49 </div>
52 </div>
50 </body>
53 </body>
51
54
52 </html>
55 </html>
53
56
@@ -1,49 +1,50 b''
1 <%inherit file="/base/base.html"/>
1 <%inherit file="/base/base.html"/>
2
2
3 <%def name="title()">
3 <%def name="title()">
4 ${_('Repository management')}
4 ${c.repo_name} ${_('File diff')} - ${c.rhodecode_name}
5 </%def>
5 </%def>
6
6 <%def name="breadcrumbs_links()">
7 <%def name="breadcrumbs_links()">
7 ${h.link_to(u'Home',h.url('/'))}
8 ${h.link_to(u'Home',h.url('/'))}
8 &raquo;
9 &raquo;
9 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
10 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
10 &raquo;
11 &raquo;
11 ${'%s: %s %s %s' % (_('File diff'),c.diff2,'&rarr;',c.diff1)|n}
12 ${'%s: %s %s %s' % (_('File diff'),c.diff2,'&rarr;',c.diff1)|n}
12 </%def>
13 </%def>
13
14
14 <%def name="page_nav()">
15 <%def name="page_nav()">
15 ${self.menu('files')}
16 ${self.menu('files')}
16 </%def>
17 </%def>
17 <%def name="main()">
18 <%def name="main()">
18 <div class="box">
19 <div class="box">
19 <!-- box / title -->
20 <!-- box / title -->
20 <div class="title">
21 <div class="title">
21 ${self.breadcrumbs()}
22 ${self.breadcrumbs()}
22 </div>
23 </div>
23 <div class="table">
24 <div class="table">
24 <div id="body" class="diffblock">
25 <div id="body" class="diffblock">
25 <div class="code-header">
26 <div class="code-header">
26 <div>
27 <div>
27 <span>${h.link_to(c.f_path,h.url('files_home',repo_name=c.repo_name,
28 <span>${h.link_to(c.f_path,h.url('files_home',repo_name=c.repo_name,
28 revision=c.diff2.split(':')[1],f_path=c.f_path))}</span>
29 revision=c.diff2.split(':')[1],f_path=c.f_path))}</span>
29 &raquo; <span>${h.link_to(_('diff'),
30 &raquo; <span>${h.link_to(_('diff'),
30 h.url.current(diff2=c.diff2.split(':')[-1],diff1=c.diff1.split(':')[-1],diff='diff'))}</span>
31 h.url.current(diff2=c.diff2.split(':')[-1],diff1=c.diff1.split(':')[-1],diff='diff'))}</span>
31 &raquo; <span>${h.link_to(_('raw diff'),
32 &raquo; <span>${h.link_to(_('raw diff'),
32 h.url.current(diff2=c.diff2.split(':')[-1],diff1=c.diff1.split(':')[-1],diff='raw'))}</span>
33 h.url.current(diff2=c.diff2.split(':')[-1],diff1=c.diff1.split(':')[-1],diff='raw'))}</span>
33 &raquo; <span>${h.link_to(_('download diff'),
34 &raquo; <span>${h.link_to(_('download diff'),
34 h.url.current(diff2=c.diff2.split(':')[-1],diff1=c.diff1.split(':')[-1],diff='download'))}</span>
35 h.url.current(diff2=c.diff2.split(':')[-1],diff1=c.diff1.split(':')[-1],diff='download'))}</span>
35 </div>
36 </div>
36 </div>
37 </div>
37 <div class="code-body">
38 <div class="code-body">
38 %if c.no_changes:
39 %if c.no_changes:
39 ${_('No changes')}
40 ${_('No changes')}
40 %else:
41 %else:
41 ${c.cur_diff|n}
42 ${c.cur_diff|n}
42 %endif
43 %endif
43 </div>
44 </div>
44 </div>
45 </div>
45 </div>
46 </div>
46 </div>
47 </div>
47 </%def>
48 </%def>
48
49
49 No newline at end of file
50
@@ -1,48 +1,48 b''
1 <%inherit file="/base/base.html"/>
1 <%inherit file="/base/base.html"/>
2
2
3 <%def name="title()">
3 <%def name="title()">
4 ${_('files')}
4 ${c.repo_name} ${_('Files')} - ${c.rhodecode_name}
5 </%def>
5 </%def>
6
6
7 <%def name="breadcrumbs_links()">
7 <%def name="breadcrumbs_links()">
8 ${h.link_to(u'Home',h.url('/'))}
8 ${h.link_to(u'Home',h.url('/'))}
9 &raquo;
9 &raquo;
10 ${h.link_to(c.repo_name,h.url('files_home',repo_name=c.repo_name))}
10 ${h.link_to(c.repo_name,h.url('files_home',repo_name=c.repo_name))}
11 &raquo;
11 &raquo;
12 ${_('files')}
12 ${_('files')}
13 %if c.files_list:
13 %if c.files_list:
14 @ R${c.rev_nr}:${c.cur_rev}
14 @ R${c.rev_nr}:${c.cur_rev}
15 %endif
15 %endif
16 </%def>
16 </%def>
17
17
18 <%def name="page_nav()">
18 <%def name="page_nav()">
19 ${self.menu('files')}
19 ${self.menu('files')}
20 </%def>
20 </%def>
21
21
22 <%def name="main()">
22 <%def name="main()">
23 <div class="box">
23 <div class="box">
24 <!-- box / title -->
24 <!-- box / title -->
25 <div class="title">
25 <div class="title">
26 ${self.breadcrumbs()}
26 ${self.breadcrumbs()}
27 </div>
27 </div>
28 <div class="table">
28 <div class="table">
29 <div id="files_data">
29 <div id="files_data">
30 %if c.files_list:
30 %if c.files_list:
31 <h3 class="files_location">${_('Location')}: ${h.files_breadcrumbs(c.repo_name,c.cur_rev,c.files_list.path)}</h3>
31 <h3 class="files_location">${_('Location')}: ${h.files_breadcrumbs(c.repo_name,c.cur_rev,c.files_list.path)}</h3>
32 %if c.files_list.is_dir():
32 %if c.files_list.is_dir():
33 <%include file='files_browser.html'/>
33 <%include file='files_browser.html'/>
34 %else:
34 %else:
35 <%include file='files_source.html'/>
35 <%include file='files_source.html'/>
36 %endif
36 %endif
37 %else:
37 %else:
38 <h2>
38 <h2>
39 <a href="#" onClick="javascript:parent.history.back();" target="main">${_('Go back')}</a>
39 <a href="#" onClick="javascript:parent.history.back();" target="main">${_('Go back')}</a>
40 ${_('No files at given path')}: "${c.f_path or "/"}"
40 ${_('No files at given path')}: "${c.f_path or "/"}"
41 </h2>
41 </h2>
42 %endif
42 %endif
43
43
44 </div>
44 </div>
45 </div>
45 </div>
46 </div>
46 </div>
47
47
48 </%def> No newline at end of file
48 </%def>
@@ -1,61 +1,61 b''
1 <%inherit file="/base/base.html"/>
1 <%inherit file="/base/base.html"/>
2
2
3 <%def name="title()">
3 <%def name="title()">
4 ${_('File annotate')}
4 ${c.repo_name} ${_('File annotate')} - ${c.rhodecode_name}
5 </%def>
5 </%def>
6
6
7 <%def name="breadcrumbs_links()">
7 <%def name="breadcrumbs_links()">
8 ${h.link_to(u'Home',h.url('/'))}
8 ${h.link_to(u'Home',h.url('/'))}
9 &raquo;
9 &raquo;
10 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
10 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
11 &raquo;
11 &raquo;
12 ${_('annotate')} @ R${c.rev_nr}:${c.cur_rev}
12 ${_('annotate')} @ R${c.rev_nr}:${c.cur_rev}
13 </%def>
13 </%def>
14
14
15 <%def name="page_nav()">
15 <%def name="page_nav()">
16 ${self.menu('files')}
16 ${self.menu('files')}
17 </%def>
17 </%def>
18 <%def name="main()">
18 <%def name="main()">
19 <div class="box">
19 <div class="box">
20 <!-- box / title -->
20 <!-- box / title -->
21 <div class="title">
21 <div class="title">
22 ${self.breadcrumbs()}
22 ${self.breadcrumbs()}
23 </div>
23 </div>
24 <div class="table">
24 <div class="table">
25 <div id="files_data">
25 <div id="files_data">
26 <h3 class="files_location">${_('Location')}: ${h.files_breadcrumbs(c.repo_name,c.cur_rev,c.file.path)}</h3>
26 <h3 class="files_location">${_('Location')}: ${h.files_breadcrumbs(c.repo_name,c.cur_rev,c.file.path)}</h3>
27 <dl class="overview">
27 <dl class="overview">
28 <dt>${_('Last revision')}</dt>
28 <dt>${_('Last revision')}</dt>
29 <dd>${h.link_to("r%s:%s" % (c.file.last_changeset.revision,c.file.last_changeset.short_id),
29 <dd>${h.link_to("r%s:%s" % (c.file.last_changeset.revision,c.file.last_changeset.short_id),
30 h.url('files_annotate_home',repo_name=c.repo_name,revision=c.file.last_changeset.short_id,f_path=c.f_path))} </dd>
30 h.url('files_annotate_home',repo_name=c.repo_name,revision=c.file.last_changeset.short_id,f_path=c.f_path))} </dd>
31 <dt>${_('Size')}</dt>
31 <dt>${_('Size')}</dt>
32 <dd>${h.format_byte_size(c.file.size,binary=True)}</dd>
32 <dd>${h.format_byte_size(c.file.size,binary=True)}</dd>
33 <dt>${_('Mimetype')}</dt>
33 <dt>${_('Mimetype')}</dt>
34 <dd>${c.file.mimetype}</dd>
34 <dd>${c.file.mimetype}</dd>
35 <dt>${_('Options')}</dt>
35 <dt>${_('Options')}</dt>
36 <dd>${h.link_to(_('show source'),
36 <dd>${h.link_to(_('show source'),
37 h.url('files_home',repo_name=c.repo_name,revision=c.cur_rev,f_path=c.f_path))}
37 h.url('files_home',repo_name=c.repo_name,revision=c.cur_rev,f_path=c.f_path))}
38 / ${h.link_to(_('show as raw'),
38 / ${h.link_to(_('show as raw'),
39 h.url('files_raw_home',repo_name=c.repo_name,revision=c.cur_rev,f_path=c.f_path))}
39 h.url('files_raw_home',repo_name=c.repo_name,revision=c.cur_rev,f_path=c.f_path))}
40 / ${h.link_to(_('download as raw'),
40 / ${h.link_to(_('download as raw'),
41 h.url('files_rawfile_home',repo_name=c.repo_name,revision=c.cur_rev,f_path=c.f_path))}
41 h.url('files_rawfile_home',repo_name=c.repo_name,revision=c.cur_rev,f_path=c.f_path))}
42 </dd>
42 </dd>
43 </dl>
43 </dl>
44 <div id="body" class="codeblock">
44 <div id="body" class="codeblock">
45 <div class="code-header">
45 <div class="code-header">
46 <div class="revision">${c.file.name}@r${c.file.last_changeset.revision}:${c.file.last_changeset.short_id}</div>
46 <div class="revision">${c.file.name}@r${c.file.last_changeset.revision}:${c.file.last_changeset.short_id}</div>
47 <div class="commit">"${c.file_msg}"</div>
47 <div class="commit">"${c.file_msg}"</div>
48 </div>
48 </div>
49 <div class="code-body">
49 <div class="code-body">
50 % if c.file.size < c.file_size_limit:
50 % if c.file.size < c.file_size_limit:
51 ${h.pygmentize_annotation(c.file,linenos=True,anchorlinenos=True,lineanchors='S',cssclass="code-highlight")}
51 ${h.pygmentize_annotation(c.file,linenos=True,anchorlinenos=True,lineanchors='S',cssclass="code-highlight")}
52 %else:
52 %else:
53 ${_('File is to big to display')} ${h.link_to(_('show as raw'),
53 ${_('File is to big to display')} ${h.link_to(_('show as raw'),
54 h.url('files_raw_home',repo_name=c.repo_name,revision=c.cur_rev,f_path=c.f_path))}
54 h.url('files_raw_home',repo_name=c.repo_name,revision=c.cur_rev,f_path=c.f_path))}
55 %endif
55 %endif
56 </div>
56 </div>
57 </div>
57 </div>
58 </div>
58 </div>
59 </div>
59 </div>
60 </div>
60 </div>
61 </%def> No newline at end of file
61 </%def>
@@ -1,98 +1,98 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="base/base.html"/>
2 <%inherit file="base/base.html"/>
3 <%def name="title()">
3 <%def name="title()">
4 ${c.rhodecode_name}
4 ${_('Dashboard')} - ${c.rhodecode_name}
5 </%def>
5 </%def>
6 <%def name="breadcrumbs()">
6 <%def name="breadcrumbs()">
7 ${c.rhodecode_name}
7 ${c.rhodecode_name}
8 </%def>
8 </%def>
9 <%def name="page_nav()">
9 <%def name="page_nav()">
10 ${self.menu('home')}
10 ${self.menu('home')}
11 </%def>
11 </%def>
12 <%def name="main()">
12 <%def name="main()">
13 <%def name="get_sort(name)">
13 <%def name="get_sort(name)">
14 <%name_slug = name.lower().replace(' ','_') %>
14 <%name_slug = name.lower().replace(' ','_') %>
15
15
16 %if name_slug == c.sort_slug:
16 %if name_slug == c.sort_slug:
17 %if c.sort_by.startswith('-'):
17 %if c.sort_by.startswith('-'):
18 <a href="?sort=${name_slug}">${name}&uarr;</a>
18 <a href="?sort=${name_slug}">${name}&uarr;</a>
19 %else:
19 %else:
20 <a href="?sort=-${name_slug}">${name}&darr;</a>
20 <a href="?sort=-${name_slug}">${name}&darr;</a>
21 %endif:
21 %endif:
22 %else:
22 %else:
23 <a href="?sort=${name_slug}">${name}</a>
23 <a href="?sort=${name_slug}">${name}</a>
24 %endif
24 %endif
25 </%def>
25 </%def>
26
26
27 <div class="box">
27 <div class="box">
28 <!-- box / title -->
28 <!-- box / title -->
29 <div class="title">
29 <div class="title">
30 <h5>${_('Dashboard')}</h5>
30 <h5>${_('Dashboard')}</h5>
31 %if h.HasPermissionAny('hg.admin','hg.create.repository')():
31 %if h.HasPermissionAny('hg.admin','hg.create.repository')():
32 <ul class="links">
32 <ul class="links">
33 <li>
33 <li>
34 <span>${h.link_to(_('ADD NEW REPOSITORY'),h.url('admin_settings_create_repository'))}</span>
34 <span>${h.link_to(_('ADD NEW REPOSITORY'),h.url('admin_settings_create_repository'))}</span>
35 </li>
35 </li>
36 </ul>
36 </ul>
37 %endif
37 %endif
38 </div>
38 </div>
39 <!-- end box / title -->
39 <!-- end box / title -->
40 <div class="table">
40 <div class="table">
41 <table>
41 <table>
42 <thead>
42 <thead>
43 <tr>
43 <tr>
44 <th class="left">${get_sort(_('Name'))}</th>
44 <th class="left">${get_sort(_('Name'))}</th>
45 <th class="left">${get_sort(_('Description'))}</th>
45 <th class="left">${get_sort(_('Description'))}</th>
46 <th class="left">${get_sort(_('Last change'))}</th>
46 <th class="left">${get_sort(_('Last change'))}</th>
47 <th class="left">${get_sort(_('Tip'))}</th>
47 <th class="left">${get_sort(_('Tip'))}</th>
48 <th class="left">${get_sort(_('Contact'))}</th>
48 <th class="left">${get_sort(_('Contact'))}</th>
49 <th class="left">${_('RSS')}</th>
49 <th class="left">${_('RSS')}</th>
50 <th class="left">${_('Atom')}</th>
50 <th class="left">${_('Atom')}</th>
51 </tr>
51 </tr>
52 </thead>
52 </thead>
53 <tbody>
53 <tbody>
54 %for cnt,repo in enumerate(c.repos_list):
54 %for cnt,repo in enumerate(c.repos_list):
55 %if h.HasRepoPermissionAny('repository.write','repository.read','repository.admin')(repo['name'],'main page check'):
55 %if h.HasRepoPermissionAny('repository.write','repository.read','repository.admin')(repo['name'],'main page check'):
56 <tr class="parity${cnt%2}">
56 <tr class="parity${cnt%2}">
57 <td>
57 <td>
58 %if repo['repo'].dbrepo.private:
58 %if repo['repo'].dbrepo.private:
59 <img class="icon" alt="${_('private')}" src="/images/icons/lock.png"/>
59 <img class="icon" alt="${_('private')}" src="/images/icons/lock.png"/>
60 %else:
60 %else:
61 <img class="icon" alt="${_('public')}" src="/images/icons/lock_open.png"/>
61 <img class="icon" alt="${_('public')}" src="/images/icons/lock_open.png"/>
62 %endif
62 %endif
63 ${h.link_to(repo['name'],
63 ${h.link_to(repo['name'],
64 h.url('summary_home',repo_name=repo['name']))}
64 h.url('summary_home',repo_name=repo['name']))}
65 %if repo['repo'].dbrepo.fork:
65 %if repo['repo'].dbrepo.fork:
66 <a href="${h.url('summary_home',repo_name=repo['repo'].dbrepo.fork.repo_name)}">
66 <a href="${h.url('summary_home',repo_name=repo['repo'].dbrepo.fork.repo_name)}">
67 <img class="icon" alt="${_('public')}"
67 <img class="icon" alt="${_('public')}"
68 title="${_('Fork of')} ${repo['repo'].dbrepo.fork.repo_name}"
68 title="${_('Fork of')} ${repo['repo'].dbrepo.fork.repo_name}"
69 src="/images/icons/arrow_divide.png"/></a>
69 src="/images/icons/arrow_divide.png"/></a>
70 %endif
70 %endif
71 </td>
71 </td>
72 <td title="${repo['description']}">${h.truncate(repo['description'],60)}</td>
72 <td title="${repo['description']}">${h.truncate(repo['description'],60)}</td>
73 <td>${h.age(repo['last_change'])}</td>
73 <td>${h.age(repo['last_change'])}</td>
74 <td>
74 <td>
75 %if repo['rev']>=0:
75 %if repo['rev']>=0:
76 ${h.link_to('r%s:%s' % (repo['rev'],repo['tip']),
76 ${h.link_to('r%s:%s' % (repo['rev'],repo['tip']),
77 h.url('changeset_home',repo_name=repo['name'],revision=repo['tip']),
77 h.url('changeset_home',repo_name=repo['name'],revision=repo['tip']),
78 class_="tooltip",
78 class_="tooltip",
79 tooltip_title=h.tooltip(repo['last_msg']))}
79 tooltip_title=h.tooltip(repo['last_msg']))}
80 %else:
80 %else:
81 ${_('No changesets yet')}
81 ${_('No changesets yet')}
82 %endif
82 %endif
83 </td>
83 </td>
84 <td title="${repo['contact']}">${h.person(repo['contact'])}</td>
84 <td title="${repo['contact']}">${h.person(repo['contact'])}</td>
85 <td>
85 <td>
86 <a title="${_('Subscribe to %s rss feed')%repo['name']}" class="rss_icon" href="${h.url('rss_feed_home',repo_name=repo['name'])}"></a>
86 <a title="${_('Subscribe to %s rss feed')%repo['name']}" class="rss_icon" href="${h.url('rss_feed_home',repo_name=repo['name'])}"></a>
87 </td>
87 </td>
88 <td>
88 <td>
89 <a title="${_('Subscribe to %s atom feed')%repo['name']}" class="atom_icon" href="${h.url('atom_feed_home',repo_name=repo['name'])}"></a>
89 <a title="${_('Subscribe to %s atom feed')%repo['name']}" class="atom_icon" href="${h.url('atom_feed_home',repo_name=repo['name'])}"></a>
90 </td>
90 </td>
91 </tr>
91 </tr>
92 %endif
92 %endif
93 %endfor
93 %endfor
94 </tbody>
94 </tbody>
95 </table>
95 </table>
96 </div>
96 </div>
97 </div>
97 </div>
98 </%def>
98 </%def>
@@ -1,72 +1,72 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" id="mainhtml">
3 <html xmlns="http://www.w3.org/1999/xhtml" id="mainhtml">
4 <head>
4 <head>
5 <title>${_('Sign In to rhodecode')}</title>
5 <title>${_('Sign In')} - ${c.rhodecode_name}</title>
6 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
6 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
7 <link rel="icon" href="/images/hgicon.png" type="image/png" />
7 <link rel="icon" href="/images/hgicon.png" type="image/png" />
8 <meta name="robots" content="index, nofollow"/>
8 <meta name="robots" content="index, nofollow"/>
9
9
10 <!-- stylesheets -->
10 <!-- stylesheets -->
11 <link rel="stylesheet" type="text/css" href="/css/style.css" media="screen" />
11 <link rel="stylesheet" type="text/css" href="/css/style.css" media="screen" />
12
12
13 </head>
13 </head>
14 <body>
14 <body>
15 <div id="login">
15 <div id="login">
16 <!-- login -->
16 <!-- login -->
17 <div class="title top-left-rounded-corner top-right-rounded-corner">
17 <div class="title top-left-rounded-corner top-right-rounded-corner">
18 <h5>${_('Sign In to rhodecode')}</h5>
18 <h5>${_('Sign In to rhodecode')}</h5>
19 </div>
19 </div>
20 <div class="inner">
20 <div class="inner">
21 ${h.form(h.url.current(came_from=c.came_from))}
21 ${h.form(h.url.current(came_from=c.came_from))}
22 <div class="form">
22 <div class="form">
23 <!-- fields -->
23 <!-- fields -->
24
24
25 <div class="fields">
25 <div class="fields">
26 <div class="field">
26 <div class="field">
27 <div class="label">
27 <div class="label">
28 <label for="username">${_('Username')}:</label>
28 <label for="username">${_('Username')}:</label>
29 </div>
29 </div>
30 <div class="input">
30 <div class="input">
31 ${h.text('username',class_='focus',size=40)}
31 ${h.text('username',class_='focus',size=40)}
32 </div>
32 </div>
33
33
34 </div>
34 </div>
35 <div class="field">
35 <div class="field">
36 <div class="label">
36 <div class="label">
37 <label for="password">${_('Password')}:</label>
37 <label for="password">${_('Password')}:</label>
38 </div>
38 </div>
39 <div class="input">
39 <div class="input">
40 ${h.password('password',class_='focus',size=40)}
40 ${h.password('password',class_='focus',size=40)}
41 </div>
41 </div>
42
42
43 </div>
43 </div>
44 ##<div class="field">
44 ##<div class="field">
45 ## <div class="checkbox">
45 ## <div class="checkbox">
46 ## <input type="checkbox" id="remember" name="remember" />
46 ## <input type="checkbox" id="remember" name="remember" />
47 ## <label for="remember">Remember me</label>
47 ## <label for="remember">Remember me</label>
48 ## </div>
48 ## </div>
49 ##</div>
49 ##</div>
50 <div class="buttons">
50 <div class="buttons">
51 ${h.submit('sign_in','Sign In',class_="ui-button ui-widget ui-state-default ui-corner-all")}
51 ${h.submit('sign_in','Sign In',class_="ui-button ui-widget ui-state-default ui-corner-all")}
52 </div>
52 </div>
53 </div>
53 </div>
54 <!-- end fields -->
54 <!-- end fields -->
55 <!-- links -->
55 <!-- links -->
56 <div class="links">
56 <div class="links">
57 ${h.link_to(_('Forgot your password ?'),h.url('reset_password'))}
57 ${h.link_to(_('Forgot your password ?'),h.url('reset_password'))}
58 %if h.HasPermissionAny('hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate')():
58 %if h.HasPermissionAny('hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate')():
59 /
59 /
60 ${h.link_to(_("Don't have an account ?"),h.url('register'))}
60 ${h.link_to(_("Don't have an account ?"),h.url('register'))}
61 %endif
61 %endif
62 </div>
62 </div>
63
63
64 <!-- end links -->
64 <!-- end links -->
65 </div>
65 </div>
66 ${h.end_form()}
66 ${h.end_form()}
67 </div>
67 </div>
68 <!-- end login -->
68 <!-- end login -->
69 </div>
69 </div>
70 </body>
70 </body>
71 </html>
71 </html>
72
72
@@ -1,48 +1,48 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" id="mainhtml">
3 <html xmlns="http://www.w3.org/1999/xhtml" id="mainhtml">
4 <head>
4 <head>
5 <title>${_('Reset You password to rhodecode')}</title>
5 <title>${_('Reset You password')} - ${c.rhodecode_name}</title>
6 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
6 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
7 <link rel="icon" href="/images/hgicon.png" type="image/png" />
7 <link rel="icon" href="/images/hgicon.png" type="image/png" />
8 <meta name="robots" content="index, nofollow"/>
8 <meta name="robots" content="index, nofollow"/>
9
9
10 <!-- stylesheets -->
10 <!-- stylesheets -->
11 <link rel="stylesheet" type="text/css" href="/css/style.css" media="screen" />
11 <link rel="stylesheet" type="text/css" href="/css/style.css" media="screen" />
12
12
13 </head>
13 </head>
14 <body>
14 <body>
15 <div id="register">
15 <div id="register">
16
16
17 <div class="title top-left-rounded-corner top-right-rounded-corner">
17 <div class="title top-left-rounded-corner top-right-rounded-corner">
18 <h5>${_('Reset You password to rhodecode')}</h5>
18 <h5>${_('Reset You password to rhodecode')}</h5>
19 </div>
19 </div>
20 <div class="inner">
20 <div class="inner">
21 ${h.form(url('password_reset'))}
21 ${h.form(url('password_reset'))}
22 <div class="form">
22 <div class="form">
23 <!-- fields -->
23 <!-- fields -->
24 <div class="fields">
24 <div class="fields">
25
25
26 <div class="field">
26 <div class="field">
27 <div class="label">
27 <div class="label">
28 <label for="email">${_('Email address')}:</label>
28 <label for="email">${_('Email address')}:</label>
29 </div>
29 </div>
30 <div class="input">
30 <div class="input">
31 ${h.text('email')}
31 ${h.text('email')}
32 </div>
32 </div>
33 </div>
33 </div>
34
34
35 <div class="buttons">
35 <div class="buttons">
36 <div class="nohighlight">
36 <div class="nohighlight">
37 ${h.submit('send','Reset my password',class_="ui-button ui-widget ui-state-default ui-corner-all")}
37 ${h.submit('send','Reset my password',class_="ui-button ui-widget ui-state-default ui-corner-all")}
38 <div class="activation_msg">${_('Your new password will be send to matching email address')}</div>
38 <div class="activation_msg">${_('Your new password will be send to matching email address')}</div>
39 </div>
39 </div>
40 </div>
40 </div>
41 </div>
41 </div>
42 </div>
42 </div>
43 ${h.end_form()}
43 ${h.end_form()}
44 </div>
44 </div>
45 </div>
45 </div>
46 </body>
46 </body>
47 </html>
47 </html>
48
48
@@ -1,87 +1,87 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" id="mainhtml">
3 <html xmlns="http://www.w3.org/1999/xhtml" id="mainhtml">
4 <head>
4 <head>
5 <title>${_('Sign Up to rhodecode')}</title>
5 <title>${_('Sign Up')} - ${c.rhodecode_name}</title>
6 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
6 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
7 <link rel="icon" href="/images/hgicon.png" type="image/png" />
7 <link rel="icon" href="/images/hgicon.png" type="image/png" />
8 <meta name="robots" content="index, nofollow"/>
8 <meta name="robots" content="index, nofollow"/>
9
9
10 <!-- stylesheets -->
10 <!-- stylesheets -->
11 <link rel="stylesheet" type="text/css" href="/css/style.css" media="screen" />
11 <link rel="stylesheet" type="text/css" href="/css/style.css" media="screen" />
12
12
13 </head>
13 </head>
14 <body>
14 <body>
15 <div id="register">
15 <div id="register">
16
16
17 <div class="title top-left-rounded-corner top-right-rounded-corner">
17 <div class="title top-left-rounded-corner top-right-rounded-corner">
18 <h5>${_('Sign Up to rhodecode')}</h5>
18 <h5>${_('Sign Up to rhodecode')}</h5>
19 </div>
19 </div>
20 <div class="inner">
20 <div class="inner">
21 ${h.form(url('register'))}
21 ${h.form(url('register'))}
22 <div class="form">
22 <div class="form">
23 <!-- fields -->
23 <!-- fields -->
24 <div class="fields">
24 <div class="fields">
25 <div class="field">
25 <div class="field">
26 <div class="label">
26 <div class="label">
27 <label for="username">${_('Username')}:</label>
27 <label for="username">${_('Username')}:</label>
28 </div>
28 </div>
29 <div class="input">
29 <div class="input">
30 ${h.text('username')}
30 ${h.text('username')}
31 </div>
31 </div>
32 </div>
32 </div>
33
33
34 <div class="field">
34 <div class="field">
35 <div class="label">
35 <div class="label">
36 <label for="password">${_('New Password')}:</label>
36 <label for="password">${_('New Password')}:</label>
37 </div>
37 </div>
38 <div class="input">
38 <div class="input">
39 ${h.password('password')}
39 ${h.password('password')}
40 </div>
40 </div>
41 </div>
41 </div>
42
42
43 <div class="field">
43 <div class="field">
44 <div class="label">
44 <div class="label">
45 <label for="name">${_('First Name')}:</label>
45 <label for="name">${_('First Name')}:</label>
46 </div>
46 </div>
47 <div class="input">
47 <div class="input">
48 ${h.text('name')}
48 ${h.text('name')}
49 </div>
49 </div>
50 </div>
50 </div>
51
51
52 <div class="field">
52 <div class="field">
53 <div class="label">
53 <div class="label">
54 <label for="lastname">${_('Last Name')}:</label>
54 <label for="lastname">${_('Last Name')}:</label>
55 </div>
55 </div>
56 <div class="input">
56 <div class="input">
57 ${h.text('lastname')}
57 ${h.text('lastname')}
58 </div>
58 </div>
59 </div>
59 </div>
60
60
61 <div class="field">
61 <div class="field">
62 <div class="label">
62 <div class="label">
63 <label for="email">${_('Email')}:</label>
63 <label for="email">${_('Email')}:</label>
64 </div>
64 </div>
65 <div class="input">
65 <div class="input">
66 ${h.text('email')}
66 ${h.text('email')}
67 </div>
67 </div>
68 </div>
68 </div>
69
69
70 <div class="buttons">
70 <div class="buttons">
71 <div class="nohighlight">
71 <div class="nohighlight">
72 ${h.submit('sign_up','Sign Up',class_="ui-button ui-widget ui-state-default ui-corner-all")}
72 ${h.submit('sign_up','Sign Up',class_="ui-button ui-widget ui-state-default ui-corner-all")}
73 %if c.auto_active:
73 %if c.auto_active:
74 <div class="activation_msg">${_('Your account will be activated right after registration')}</div>
74 <div class="activation_msg">${_('Your account will be activated right after registration')}</div>
75 %else:
75 %else:
76 <div class="activation_msg">${_('Your account must wait for activation by administrator')}</div>
76 <div class="activation_msg">${_('Your account must wait for activation by administrator')}</div>
77 %endif
77 %endif
78 </div>
78 </div>
79 </div>
79 </div>
80 </div>
80 </div>
81 </div>
81 </div>
82 ${h.end_form()}
82 ${h.end_form()}
83 </div>
83 </div>
84 </div>
84 </div>
85 </body>
85 </body>
86 </html>
86 </html>
87
87
@@ -1,79 +1,80 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="/base/base.html"/>
2 <%inherit file="/base/base.html"/>
3 <%def name="title()">
3 <%def name="title()">
4 ${_('Search')}
4 ${_('Search')}
5 ${'"%s"' % c.cur_query if c.cur_query else None}
5 %if c.repo_name:
6 %if c.repo_name:
6 ${_('in repository: ') + c.repo_name}
7 ${_('in repository: ') + c.repo_name}
7 %else:
8 %else:
8 ${_('in all repositories')}
9 ${_('in all repositories')}
9 %endif
10 %endif
10 :${c.cur_query}
11 - ${c.rhodecode_name}
11 </%def>
12 </%def>
12 <%def name="breadcrumbs()">
13 <%def name="breadcrumbs()">
13 ${c.rhodecode_name}
14 ${c.rhodecode_name}
14 </%def>
15 </%def>
15 <%def name="page_nav()">
16 <%def name="page_nav()">
16 ${self.menu('home')}
17 ${self.menu('home')}
17 </%def>
18 </%def>
18 <%def name="main()">
19 <%def name="main()">
19
20
20 <div class="box">
21 <div class="box">
21 <!-- box / title -->
22 <!-- box / title -->
22 <div class="title">
23 <div class="title">
23 <h5>${_('Search')}
24 <h5>${_('Search')}
24 %if c.repo_name:
25 %if c.repo_name:
25 ${_('in repository: ') + c.repo_name}
26 ${_('in repository: ') + c.repo_name}
26 %else:
27 %else:
27 ${_('in all repositories')}
28 ${_('in all repositories')}
28 %endif
29 %endif
29 </h5>
30 </h5>
30 </div>
31 </div>
31 <!-- end box / title -->
32 <!-- end box / title -->
32 %if c.repo_name:
33 %if c.repo_name:
33 ${h.form(h.url('search_repo',search_repo=c.repo_name),method='get')}
34 ${h.form(h.url('search_repo',search_repo=c.repo_name),method='get')}
34 %else:
35 %else:
35 ${h.form(h.url('search'),method='get')}
36 ${h.form(h.url('search'),method='get')}
36 %endif
37 %endif
37 <div class="form">
38 <div class="form">
38 <div class="fields">
39 <div class="fields">
39 <div class="field field-first field-noborder">
40 <div class="field field-first field-noborder">
40 <div class="label">
41 <div class="label">
41 <label for="q">${_('Search term')}</label>
42 <label for="q">${_('Search term')}</label>
42 </div>
43 </div>
43 <div class="input">${h.text('q',c.cur_query,class_="small")}
44 <div class="input">${h.text('q',c.cur_query,class_="small")}
44 <div class="button highlight">
45 <div class="button highlight">
45 <input type="submit" value="${_('Search')}" class="ui-button ui-widget ui-state-default ui-corner-all"/>
46 <input type="submit" value="${_('Search')}" class="ui-button ui-widget ui-state-default ui-corner-all"/>
46 </div>
47 </div>
47 </div>
48 </div>
48 <div style="font-weight: bold;clear:Both;margin-left:200px">${c.runtime}</div>
49 <div style="font-weight: bold;clear:Both;margin-left:200px">${c.runtime}</div>
49 </div>
50 </div>
50
51
51 <div class="field">
52 <div class="field">
52 <div class="label">
53 <div class="label">
53 <label for="type">${_('Search in')}</label>
54 <label for="type">${_('Search in')}</label>
54 </div>
55 </div>
55 <div class="select">
56 <div class="select">
56 ${h.select('type',c.cur_type,[('content',_('Source codes')),
57 ${h.select('type',c.cur_type,[('content',_('Source codes')),
57 ##('commit',_('Commit messages')),
58 ##('commit',_('Commit messages')),
58 ('path',_('File names')),
59 ('path',_('File names')),
59 ##('repository',_('Repository names')),
60 ##('repository',_('Repository names')),
60 ])}
61 ])}
61 </div>
62 </div>
62 </div>
63 </div>
63
64
64 </div>
65 </div>
65 </div>
66 </div>
66 ${h.end_form()}
67 ${h.end_form()}
67
68
68 %if c.cur_search == 'content':
69 %if c.cur_search == 'content':
69 <%include file='search_content.html'/>
70 <%include file='search_content.html'/>
70 %elif c.cur_search == 'path':
71 %elif c.cur_search == 'path':
71 <%include file='search_path.html'/>
72 <%include file='search_path.html'/>
72 %elif c.cur_search == 'commit':
73 %elif c.cur_search == 'commit':
73 <%include file='search_commit.html'/>
74 <%include file='search_commit.html'/>
74 %elif c.cur_search == 'repository':
75 %elif c.cur_search == 'repository':
75 <%include file='search_repository.html'/>
76 <%include file='search_repository.html'/>
76 %endif
77 %endif
77 </div>
78 </div>
78
79
79 </%def>
80 </%def>
@@ -1,58 +1,58 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="/base/base.html"/>
2 <%inherit file="/base/base.html"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('Fork repository')} ${c.repo_info.repo_name}
5 ${c.repo_name} ${_('Fork')} - ${c.rhodecode_name}
6 </%def>
6 </%def>
7
7
8 <%def name="breadcrumbs_links()">
8 <%def name="breadcrumbs_links()">
9 ${h.link_to(c.repo_info.repo_name,h.url('summary_home',repo_name=c.repo_info.repo_name))}
9 ${h.link_to(c.repo_info.repo_name,h.url('summary_home',repo_name=c.repo_info.repo_name))}
10 &raquo;
10 &raquo;
11 ${_('fork')}
11 ${_('fork')}
12 </%def>
12 </%def>
13
13
14 <%def name="page_nav()">
14 <%def name="page_nav()">
15 ${self.menu('')}
15 ${self.menu('')}
16 </%def>
16 </%def>
17 <%def name="main()">
17 <%def name="main()">
18 <div class="box">
18 <div class="box">
19 <!-- box / title -->
19 <!-- box / title -->
20 <div class="title">
20 <div class="title">
21 ${self.breadcrumbs()}
21 ${self.breadcrumbs()}
22 </div>
22 </div>
23 ${h.form(url('repo_fork_create_home',repo_name=c.repo_info.repo_name))}
23 ${h.form(url('repo_fork_create_home',repo_name=c.repo_info.repo_name))}
24 <div class="form">
24 <div class="form">
25 <!-- fields -->
25 <!-- fields -->
26 <div class="fields">
26 <div class="fields">
27 <div class="field">
27 <div class="field">
28 <div class="label">
28 <div class="label">
29 <label for="repo_name">${_('Fork name')}:</label>
29 <label for="repo_name">${_('Fork name')}:</label>
30 </div>
30 </div>
31 <div class="input">
31 <div class="input">
32 ${h.text('fork_name',class_="small")}
32 ${h.text('fork_name',class_="small")}
33 </div>
33 </div>
34 </div>
34 </div>
35 <div class="field">
35 <div class="field">
36 <div class="label label-textarea">
36 <div class="label label-textarea">
37 <label for="description">${_('Description')}:</label>
37 <label for="description">${_('Description')}:</label>
38 </div>
38 </div>
39 <div class="textarea text-area editor">
39 <div class="textarea text-area editor">
40 ${h.textarea('description',cols=23,rows=5)}
40 ${h.textarea('description',cols=23,rows=5)}
41 </div>
41 </div>
42 </div>
42 </div>
43 <div class="field">
43 <div class="field">
44 <div class="label label-checkbox">
44 <div class="label label-checkbox">
45 <label for="private">${_('Private')}:</label>
45 <label for="private">${_('Private')}:</label>
46 </div>
46 </div>
47 <div class="checkboxes">
47 <div class="checkboxes">
48 ${h.checkbox('private',value="True")}
48 ${h.checkbox('private',value="True")}
49 </div>
49 </div>
50 </div>
50 </div>
51 <div class="buttons">
51 <div class="buttons">
52 ${h.submit('','fork this repository',class_="ui-button ui-widget ui-state-default ui-corner-all")}
52 ${h.submit('','fork this repository',class_="ui-button ui-widget ui-state-default ui-corner-all")}
53 </div>
53 </div>
54 </div>
54 </div>
55 </div>
55 </div>
56 ${h.end_form()}
56 ${h.end_form()}
57 </div>
57 </div>
58 </%def>
58 </%def>
@@ -1,262 +1,262 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="/base/base.html"/>
2 <%inherit file="/base/base.html"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('Repository settings')}
5 ${c.repo_name} ${_('Settings')} - ${c.rhodecode_name}
6 </%def>
6 </%def>
7
7
8 <%def name="breadcrumbs_links()">
8 <%def name="breadcrumbs_links()">
9 ${h.link_to(c.repo_info.repo_name,h.url('summary_home',repo_name=c.repo_info.repo_name))}
9 ${h.link_to(c.repo_info.repo_name,h.url('summary_home',repo_name=c.repo_info.repo_name))}
10 &raquo;
10 &raquo;
11 ${_('Settings')}
11 ${_('Settings')}
12 </%def>
12 </%def>
13
13
14 <%def name="page_nav()">
14 <%def name="page_nav()">
15 ${self.menu('settings')}
15 ${self.menu('settings')}
16 </%def>
16 </%def>
17 <%def name="main()">
17 <%def name="main()">
18 <div class="box">
18 <div class="box">
19 <!-- box / title -->
19 <!-- box / title -->
20 <div class="title">
20 <div class="title">
21 ${self.breadcrumbs()}
21 ${self.breadcrumbs()}
22 </div>
22 </div>
23 ${h.form(url('repo_settings_update', repo_name=c.repo_info.repo_name),method='put')}
23 ${h.form(url('repo_settings_update', repo_name=c.repo_info.repo_name),method='put')}
24 <div class="form">
24 <div class="form">
25 <!-- fields -->
25 <!-- fields -->
26 <div class="fields">
26 <div class="fields">
27 <div class="field">
27 <div class="field">
28 <div class="label">
28 <div class="label">
29 <label for="repo_name">${_('Name')}:</label>
29 <label for="repo_name">${_('Name')}:</label>
30 </div>
30 </div>
31 <div class="input input-medium">
31 <div class="input input-medium">
32 ${h.text('repo_name',class_="small")}
32 ${h.text('repo_name',class_="small")}
33 </div>
33 </div>
34 </div>
34 </div>
35
35
36 <div class="field">
36 <div class="field">
37 <div class="label label-textarea">
37 <div class="label label-textarea">
38 <label for="description">${_('Description')}:</label>
38 <label for="description">${_('Description')}:</label>
39 </div>
39 </div>
40 <div class="textarea text-area editor">
40 <div class="textarea text-area editor">
41 ${h.textarea('description',cols=23,rows=5)}
41 ${h.textarea('description',cols=23,rows=5)}
42 </div>
42 </div>
43 </div>
43 </div>
44
44
45 <div class="field">
45 <div class="field">
46 <div class="label label-checkbox">
46 <div class="label label-checkbox">
47 <label for="private">${_('Private')}:</label>
47 <label for="private">${_('Private')}:</label>
48 </div>
48 </div>
49 <div class="checkboxes">
49 <div class="checkboxes">
50 ${h.checkbox('private',value="True")}
50 ${h.checkbox('private',value="True")}
51 </div>
51 </div>
52 </div>
52 </div>
53
53
54 <div class="field">
54 <div class="field">
55 <div class="label">
55 <div class="label">
56 <label for="">${_('Permissions')}:</label>
56 <label for="">${_('Permissions')}:</label>
57 </div>
57 </div>
58 <div class="input">
58 <div class="input">
59 <table id="permissions_manage">
59 <table id="permissions_manage">
60 <tr>
60 <tr>
61 <td>${_('none')}</td>
61 <td>${_('none')}</td>
62 <td>${_('read')}</td>
62 <td>${_('read')}</td>
63 <td>${_('write')}</td>
63 <td>${_('write')}</td>
64 <td>${_('admin')}</td>
64 <td>${_('admin')}</td>
65 <td>${_('user')}</td>
65 <td>${_('user')}</td>
66 <td></td>
66 <td></td>
67 </tr>
67 </tr>
68
68
69 %for r2p in c.repo_info.repo_to_perm:
69 %for r2p in c.repo_info.repo_to_perm:
70 %if r2p.user.username =='default' and c.repo_info.private:
70 %if r2p.user.username =='default' and c.repo_info.private:
71 <tr>
71 <tr>
72 <td colspan="4">
72 <td colspan="4">
73 <span class="private_repo_msg">
73 <span class="private_repo_msg">
74 ${_('private repository')}
74 ${_('private repository')}
75 </span>
75 </span>
76 </td>
76 </td>
77 <td class="private_repo_msg">${r2p.user.username}</td>
77 <td class="private_repo_msg">${r2p.user.username}</td>
78 </tr>
78 </tr>
79 %else:
79 %else:
80 <tr id="id${id(r2p.user.username)}">
80 <tr id="id${id(r2p.user.username)}">
81 <td>${h.radio('perm_%s' % r2p.user.username,'repository.none')}</td>
81 <td>${h.radio('perm_%s' % r2p.user.username,'repository.none')}</td>
82 <td>${h.radio('perm_%s' % r2p.user.username,'repository.read')}</td>
82 <td>${h.radio('perm_%s' % r2p.user.username,'repository.read')}</td>
83 <td>${h.radio('perm_%s' % r2p.user.username,'repository.write')}</td>
83 <td>${h.radio('perm_%s' % r2p.user.username,'repository.write')}</td>
84 <td>${h.radio('perm_%s' % r2p.user.username,'repository.admin')}</td>
84 <td>${h.radio('perm_%s' % r2p.user.username,'repository.admin')}</td>
85 <td>${r2p.user.username}</td>
85 <td>${r2p.user.username}</td>
86 <td>
86 <td>
87 %if r2p.user.username !='default':
87 %if r2p.user.username !='default':
88 <span class="delete_icon action_button" onclick="ajaxAction(${r2p.user.user_id},'${'id%s'%id(r2p.user.username)}')">
88 <span class="delete_icon action_button" onclick="ajaxAction(${r2p.user.user_id},'${'id%s'%id(r2p.user.username)}')">
89 <script type="text/javascript">
89 <script type="text/javascript">
90 function ajaxAction(user_id,field_id){
90 function ajaxAction(user_id,field_id){
91 var sUrl = "${h.url('delete_repo_user',repo_name=c.repo_name)}";
91 var sUrl = "${h.url('delete_repo_user',repo_name=c.repo_name)}";
92 var callback = { success:function(o){
92 var callback = { success:function(o){
93 var tr = YAHOO.util.Dom.get(String(field_id));
93 var tr = YAHOO.util.Dom.get(String(field_id));
94 tr.parentNode.removeChild(tr);},failure:function(o){
94 tr.parentNode.removeChild(tr);},failure:function(o){
95 alert("${_('Failed to remove user')}");},};
95 alert("${_('Failed to remove user')}");},};
96 var postData = '_method=delete&user_id='+user_id;
96 var postData = '_method=delete&user_id='+user_id;
97 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);};
97 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);};
98 </script>
98 </script>
99 </span>
99 </span>
100 %endif
100 %endif
101 </td>
101 </td>
102 </tr>
102 </tr>
103 %endif
103 %endif
104 %endfor
104 %endfor
105
105
106
106
107 <tr id="add_perm_input">
107 <tr id="add_perm_input">
108 <td>${h.radio('perm_new_user','repository.none')}</td>
108 <td>${h.radio('perm_new_user','repository.none')}</td>
109 <td>${h.radio('perm_new_user','repository.read')}</td>
109 <td>${h.radio('perm_new_user','repository.read')}</td>
110 <td>${h.radio('perm_new_user','repository.write')}</td>
110 <td>${h.radio('perm_new_user','repository.write')}</td>
111 <td>${h.radio('perm_new_user','repository.admin')}</td>
111 <td>${h.radio('perm_new_user','repository.admin')}</td>
112 <td class='ac'>
112 <td class='ac'>
113 <div class="perm_ac" id="perm_ac">
113 <div class="perm_ac" id="perm_ac">
114 ${h.text('perm_new_user_name',class_='yui-ac-input')}
114 ${h.text('perm_new_user_name',class_='yui-ac-input')}
115 <div id="perm_container"></div>
115 <div id="perm_container"></div>
116 </div>
116 </div>
117 </td>
117 </td>
118 <td></td>
118 <td></td>
119 </tr>
119 </tr>
120 <tr>
120 <tr>
121 <td colspan="6">
121 <td colspan="6">
122 <span id="add_perm" class="add_icon" style="cursor: pointer;">
122 <span id="add_perm" class="add_icon" style="cursor: pointer;">
123 ${_('Add another user')}
123 ${_('Add another user')}
124 </span>
124 </span>
125 </td>
125 </td>
126 </tr>
126 </tr>
127 </table>
127 </table>
128 </div>
128 </div>
129
129
130 <div class="buttons">
130 <div class="buttons">
131 ${h.submit('update','update',class_="ui-button ui-widget ui-state-default ui-corner-all")}
131 ${h.submit('update','update',class_="ui-button ui-widget ui-state-default ui-corner-all")}
132 </div>
132 </div>
133 </div>
133 </div>
134 </div>
134 </div>
135 ${h.end_form()}
135 ${h.end_form()}
136 <script type="text/javascript">
136 <script type="text/javascript">
137 YAHOO.util.Event.onDOMReady(function(){
137 YAHOO.util.Event.onDOMReady(function(){
138 var D = YAHOO.util.Dom;
138 var D = YAHOO.util.Dom;
139 if(!D.hasClass('perm_new_user_name','error')){
139 if(!D.hasClass('perm_new_user_name','error')){
140 D.setStyle('add_perm_input','display','none');
140 D.setStyle('add_perm_input','display','none');
141 }
141 }
142 YAHOO.util.Event.addListener('add_perm','click',function(){
142 YAHOO.util.Event.addListener('add_perm','click',function(){
143 D.setStyle('add_perm_input','display','');
143 D.setStyle('add_perm_input','display','');
144 D.setStyle('add_perm','opacity','0.6');
144 D.setStyle('add_perm','opacity','0.6');
145 D.setStyle('add_perm','cursor','default');
145 D.setStyle('add_perm','cursor','default');
146 });
146 });
147 });
147 });
148 </script>
148 </script>
149 <script type="text/javascript">
149 <script type="text/javascript">
150 YAHOO.example.FnMultipleFields = function(){
150 YAHOO.example.FnMultipleFields = function(){
151 var myContacts = ${c.users_array|n}
151 var myContacts = ${c.users_array|n}
152
152
153 // Define a custom search function for the DataSource
153 // Define a custom search function for the DataSource
154 var matchNames = function(sQuery) {
154 var matchNames = function(sQuery) {
155 // Case insensitive matching
155 // Case insensitive matching
156 var query = sQuery.toLowerCase(),
156 var query = sQuery.toLowerCase(),
157 contact,
157 contact,
158 i=0,
158 i=0,
159 l=myContacts.length,
159 l=myContacts.length,
160 matches = [];
160 matches = [];
161
161
162 // Match against each name of each contact
162 // Match against each name of each contact
163 for(; i<l; i++) {
163 for(; i<l; i++) {
164 contact = myContacts[i];
164 contact = myContacts[i];
165 if((contact.fname.toLowerCase().indexOf(query) > -1) ||
165 if((contact.fname.toLowerCase().indexOf(query) > -1) ||
166 (contact.lname.toLowerCase().indexOf(query) > -1) ||
166 (contact.lname.toLowerCase().indexOf(query) > -1) ||
167 (contact.nname && (contact.nname.toLowerCase().indexOf(query) > -1))) {
167 (contact.nname && (contact.nname.toLowerCase().indexOf(query) > -1))) {
168 matches[matches.length] = contact;
168 matches[matches.length] = contact;
169 }
169 }
170 }
170 }
171
171
172 return matches;
172 return matches;
173 };
173 };
174
174
175 // Use a FunctionDataSource
175 // Use a FunctionDataSource
176 var oDS = new YAHOO.util.FunctionDataSource(matchNames);
176 var oDS = new YAHOO.util.FunctionDataSource(matchNames);
177 oDS.responseSchema = {
177 oDS.responseSchema = {
178 fields: ["id", "fname", "lname", "nname"]
178 fields: ["id", "fname", "lname", "nname"]
179 }
179 }
180
180
181 // Instantiate AutoComplete for perms
181 // Instantiate AutoComplete for perms
182 var oAC_perms = new YAHOO.widget.AutoComplete("perm_new_user_name", "perm_container", oDS);
182 var oAC_perms = new YAHOO.widget.AutoComplete("perm_new_user_name", "perm_container", oDS);
183 oAC_perms.useShadow = false;
183 oAC_perms.useShadow = false;
184 oAC_perms.resultTypeList = false;
184 oAC_perms.resultTypeList = false;
185
185
186 // Instantiate AutoComplete for owner
186 // Instantiate AutoComplete for owner
187 var oAC_owner = new YAHOO.widget.AutoComplete("user", "owner_container", oDS);
187 var oAC_owner = new YAHOO.widget.AutoComplete("user", "owner_container", oDS);
188 oAC_owner.useShadow = false;
188 oAC_owner.useShadow = false;
189 oAC_owner.resultTypeList = false;
189 oAC_owner.resultTypeList = false;
190
190
191
191
192 // Custom formatter to highlight the matching letters
192 // Custom formatter to highlight the matching letters
193 var custom_formatter = function(oResultData, sQuery, sResultMatch) {
193 var custom_formatter = function(oResultData, sQuery, sResultMatch) {
194 var query = sQuery.toLowerCase(),
194 var query = sQuery.toLowerCase(),
195 fname = oResultData.fname,
195 fname = oResultData.fname,
196 lname = oResultData.lname,
196 lname = oResultData.lname,
197 nname = oResultData.nname || "", // Guard against null value
197 nname = oResultData.nname || "", // Guard against null value
198 query = sQuery.toLowerCase(),
198 query = sQuery.toLowerCase(),
199 fnameMatchIndex = fname.toLowerCase().indexOf(query),
199 fnameMatchIndex = fname.toLowerCase().indexOf(query),
200 lnameMatchIndex = lname.toLowerCase().indexOf(query),
200 lnameMatchIndex = lname.toLowerCase().indexOf(query),
201 nnameMatchIndex = nname.toLowerCase().indexOf(query),
201 nnameMatchIndex = nname.toLowerCase().indexOf(query),
202 displayfname, displaylname, displaynname;
202 displayfname, displaylname, displaynname;
203
203
204 if(fnameMatchIndex > -1) {
204 if(fnameMatchIndex > -1) {
205 displayfname = highlightMatch(fname, query, fnameMatchIndex);
205 displayfname = highlightMatch(fname, query, fnameMatchIndex);
206 }
206 }
207 else {
207 else {
208 displayfname = fname;
208 displayfname = fname;
209 }
209 }
210
210
211 if(lnameMatchIndex > -1) {
211 if(lnameMatchIndex > -1) {
212 displaylname = highlightMatch(lname, query, lnameMatchIndex);
212 displaylname = highlightMatch(lname, query, lnameMatchIndex);
213 }
213 }
214 else {
214 else {
215 displaylname = lname;
215 displaylname = lname;
216 }
216 }
217
217
218 if(nnameMatchIndex > -1) {
218 if(nnameMatchIndex > -1) {
219 displaynname = "(" + highlightMatch(nname, query, nnameMatchIndex) + ")";
219 displaynname = "(" + highlightMatch(nname, query, nnameMatchIndex) + ")";
220 }
220 }
221 else {
221 else {
222 displaynname = nname ? "(" + nname + ")" : "";
222 displaynname = nname ? "(" + nname + ")" : "";
223 }
223 }
224
224
225 return displayfname + " " + displaylname + " " + displaynname;
225 return displayfname + " " + displaylname + " " + displaynname;
226
226
227 };
227 };
228 oAC_perms.formatResult = custom_formatter;
228 oAC_perms.formatResult = custom_formatter;
229 oAC_owner.formatResult = custom_formatter;
229 oAC_owner.formatResult = custom_formatter;
230
230
231 // Helper function for the formatter
231 // Helper function for the formatter
232 var highlightMatch = function(full, snippet, matchindex) {
232 var highlightMatch = function(full, snippet, matchindex) {
233 return full.substring(0, matchindex) +
233 return full.substring(0, matchindex) +
234 "<span class='match'>" +
234 "<span class='match'>" +
235 full.substr(matchindex, snippet.length) +
235 full.substr(matchindex, snippet.length) +
236 "</span>" +
236 "</span>" +
237 full.substring(matchindex + snippet.length);
237 full.substring(matchindex + snippet.length);
238 };
238 };
239
239
240 var myHandler = function(sType, aArgs) {
240 var myHandler = function(sType, aArgs) {
241 var myAC = aArgs[0]; // reference back to the AC instance
241 var myAC = aArgs[0]; // reference back to the AC instance
242 var elLI = aArgs[1]; // reference to the selected LI element
242 var elLI = aArgs[1]; // reference to the selected LI element
243 var oData = aArgs[2]; // object literal of selected item's result data
243 var oData = aArgs[2]; // object literal of selected item's result data
244 myAC.getInputEl().value = oData.nname;
244 myAC.getInputEl().value = oData.nname;
245 };
245 };
246
246
247 oAC_perms.itemSelectEvent.subscribe(myHandler);
247 oAC_perms.itemSelectEvent.subscribe(myHandler);
248 //oAC_owner.itemSelectEvent.subscribe(myHandler);
248 //oAC_owner.itemSelectEvent.subscribe(myHandler);
249
249
250 return {
250 return {
251 oDS: oDS,
251 oDS: oDS,
252 oAC_perms: oAC_perms,
252 oAC_perms: oAC_perms,
253 oAC_owner: oAC_owner,
253 oAC_owner: oAC_owner,
254 };
254 };
255 }();
255 }();
256
256
257 </script>
257 </script>
258 </div>
258 </div>
259 </div>
259 </div>
260 </%def>
260 </%def>
261
261
262
262
@@ -1,33 +1,33 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="/base/base.html"/>
2 <%inherit file="/base/base.html"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('Shortlog')}
5 ${c.repo_name} ${_('Shortlog')} - ${c.rhodecode_name}
6 </%def>
6 </%def>
7
7
8
8
9 <%def name="breadcrumbs_links()">
9 <%def name="breadcrumbs_links()">
10 ${h.link_to(u'Home',h.url('/'))}
10 ${h.link_to(u'Home',h.url('/'))}
11 &raquo;
11 &raquo;
12 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
12 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
13 &raquo;
13 &raquo;
14 ${_('shortlog')}
14 ${_('shortlog')}
15 </%def>
15 </%def>
16
16
17 <%def name="page_nav()">
17 <%def name="page_nav()">
18 ${self.menu('shortlog')}
18 ${self.menu('shortlog')}
19 </%def>
19 </%def>
20 <%def name="main()">
20 <%def name="main()">
21 <div class="box">
21 <div class="box">
22 <!-- box / title -->
22 <!-- box / title -->
23 <div class="title">
23 <div class="title">
24 ${self.breadcrumbs()}
24 ${self.breadcrumbs()}
25 </div>
25 </div>
26 <!-- end box / title -->
26 <!-- end box / title -->
27 <div class="table">
27 <div class="table">
28 <div id="shortlog_data">
28 <div id="shortlog_data">
29 ${c.shortlog_data}
29 ${c.shortlog_data}
30 </div>
30 </div>
31 </div>
31 </div>
32 </div>
32 </div>
33 </%def> No newline at end of file
33 </%def>
@@ -1,584 +1,584 b''
1 <%inherit file="/base/base.html"/>
1 <%inherit file="/base/base.html"/>
2
2
3 <%def name="title()">
3 <%def name="title()">
4 ${_('Mercurial Repository Overview')}
4 ${c.repo_name} ${_('Summary')} - ${c.rhodecode_name}
5 </%def>
5 </%def>
6
6
7 <%def name="breadcrumbs_links()">
7 <%def name="breadcrumbs_links()">
8 ${h.link_to(u'Home',h.url('/'))}
8 ${h.link_to(u'Home',h.url('/'))}
9 &raquo;
9 &raquo;
10 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
10 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
11 &raquo;
11 &raquo;
12 ${_('summary')}
12 ${_('summary')}
13 </%def>
13 </%def>
14
14
15 <%def name="page_nav()">
15 <%def name="page_nav()">
16 ${self.menu('summary')}
16 ${self.menu('summary')}
17 </%def>
17 </%def>
18
18
19 <%def name="main()">
19 <%def name="main()">
20 <script type="text/javascript">
20 <script type="text/javascript">
21 var E = YAHOO.util.Event;
21 var E = YAHOO.util.Event;
22 var D = YAHOO.util.Dom;
22 var D = YAHOO.util.Dom;
23
23
24 E.onDOMReady(function(e){
24 E.onDOMReady(function(e){
25 id = 'clone_url';
25 id = 'clone_url';
26 E.addListener(id,'click',function(e){
26 E.addListener(id,'click',function(e){
27 D.get('clone_url').select();
27 D.get('clone_url').select();
28 })
28 })
29 })
29 })
30 </script>
30 </script>
31 <div class="box box-left">
31 <div class="box box-left">
32 <!-- box / title -->
32 <!-- box / title -->
33 <div class="title">
33 <div class="title">
34 ${self.breadcrumbs()}
34 ${self.breadcrumbs()}
35 </div>
35 </div>
36 <!-- end box / title -->
36 <!-- end box / title -->
37 <div class="form">
37 <div class="form">
38 <div class="fields">
38 <div class="fields">
39
39
40 <div class="field">
40 <div class="field">
41 <div class="label">
41 <div class="label">
42 <label>${_('Name')}:</label>
42 <label>${_('Name')}:</label>
43 </div>
43 </div>
44 <div class="input-short">
44 <div class="input-short">
45 %if c.repo_info.dbrepo.private:
45 %if c.repo_info.dbrepo.private:
46 <img style="margin-bottom:2px" class="icon" title="${_('private repository')}" alt="${_('private')}" src="/images/icons/lock.png"/>
46 <img style="margin-bottom:2px" class="icon" title="${_('private repository')}" alt="${_('private')}" src="/images/icons/lock.png"/>
47 %else:
47 %else:
48 <img style="margin-bottom:2px" class="icon" title="${_('public repository')}" alt="${_('public')}" src="/images/icons/lock_open.png"/>
48 <img style="margin-bottom:2px" class="icon" title="${_('public repository')}" alt="${_('public')}" src="/images/icons/lock_open.png"/>
49 %endif
49 %endif
50 <span style="font-size: 1.6em;font-weight: bold;vertical-align: baseline;">${c.repo_info.name}</span>
50 <span style="font-size: 1.6em;font-weight: bold;vertical-align: baseline;">${c.repo_info.name}</span>
51 <br/>
51 <br/>
52 %if c.repo_info.dbrepo.fork:
52 %if c.repo_info.dbrepo.fork:
53 <span style="margin-top:5px">
53 <span style="margin-top:5px">
54 <a href="${h.url('summary_home',repo_name=c.repo_info.dbrepo.fork.repo_name)}">
54 <a href="${h.url('summary_home',repo_name=c.repo_info.dbrepo.fork.repo_name)}">
55 <img class="icon" alt="${_('public')}"
55 <img class="icon" alt="${_('public')}"
56 title="${_('Fork of')} ${c.repo_info.dbrepo.fork.repo_name}"
56 title="${_('Fork of')} ${c.repo_info.dbrepo.fork.repo_name}"
57 src="/images/icons/arrow_divide.png"/>
57 src="/images/icons/arrow_divide.png"/>
58 ${_('Fork of')} ${c.repo_info.dbrepo.fork.repo_name}
58 ${_('Fork of')} ${c.repo_info.dbrepo.fork.repo_name}
59 </a>
59 </a>
60 </span>
60 </span>
61 %endif
61 %endif
62 </div>
62 </div>
63 </div>
63 </div>
64
64
65
65
66 <div class="field">
66 <div class="field">
67 <div class="label">
67 <div class="label">
68 <label>${_('Description')}:</label>
68 <label>${_('Description')}:</label>
69 </div>
69 </div>
70 <div class="input-short">
70 <div class="input-short">
71 ${c.repo_info.description}
71 ${c.repo_info.description}
72 </div>
72 </div>
73 </div>
73 </div>
74
74
75
75
76 <div class="field">
76 <div class="field">
77 <div class="label">
77 <div class="label">
78 <label>${_('Contact')}:</label>
78 <label>${_('Contact')}:</label>
79 </div>
79 </div>
80 <div class="input-short">
80 <div class="input-short">
81 <div class="gravatar">
81 <div class="gravatar">
82 <img alt="gravatar" src="${h.gravatar_url(c.repo_info.dbrepo.user.email)}"/>
82 <img alt="gravatar" src="${h.gravatar_url(c.repo_info.dbrepo.user.email)}"/>
83 </div>
83 </div>
84 ${_('Username')}: ${c.repo_info.dbrepo.user.username}<br/>
84 ${_('Username')}: ${c.repo_info.dbrepo.user.username}<br/>
85 ${_('Name')}: ${c.repo_info.dbrepo.user.name} ${c.repo_info.dbrepo.user.lastname}<br/>
85 ${_('Name')}: ${c.repo_info.dbrepo.user.name} ${c.repo_info.dbrepo.user.lastname}<br/>
86 ${_('Email')}: <a href="mailto:${c.repo_info.dbrepo.user.email}">${c.repo_info.dbrepo.user.email}</a>
86 ${_('Email')}: <a href="mailto:${c.repo_info.dbrepo.user.email}">${c.repo_info.dbrepo.user.email}</a>
87 </div>
87 </div>
88 </div>
88 </div>
89
89
90 <div class="field">
90 <div class="field">
91 <div class="label">
91 <div class="label">
92 <label>${_('Last change')}:</label>
92 <label>${_('Last change')}:</label>
93 </div>
93 </div>
94 <div class="input-short">
94 <div class="input-short">
95 ${h.age(c.repo_info.last_change)} - ${h.rfc822date_notz(c.repo_info.last_change)}
95 ${h.age(c.repo_info.last_change)} - ${h.rfc822date_notz(c.repo_info.last_change)}
96 ${_('by')} ${h.get_changeset_safe(c.repo_info,'tip').author}
96 ${_('by')} ${h.get_changeset_safe(c.repo_info,'tip').author}
97
97
98 </div>
98 </div>
99 </div>
99 </div>
100
100
101 <div class="field">
101 <div class="field">
102 <div class="label">
102 <div class="label">
103 <label>${_('Clone url')}:</label>
103 <label>${_('Clone url')}:</label>
104 </div>
104 </div>
105 <div class="input-short">
105 <div class="input-short">
106 <input type="text" id="clone_url" readonly="readonly" value="hg clone ${c.clone_repo_url}" size="70"/>
106 <input type="text" id="clone_url" readonly="readonly" value="hg clone ${c.clone_repo_url}" size="70"/>
107 </div>
107 </div>
108 </div>
108 </div>
109
109
110 <div class="field">
110 <div class="field">
111 <div class="label">
111 <div class="label">
112 <label>${_('Trending languages')}:</label>
112 <label>${_('Trending languages')}:</label>
113 </div>
113 </div>
114 <div class="input-short">
114 <div class="input-short">
115 <div id="lang_stats">
115 <div id="lang_stats">
116
116
117 </div>
117 </div>
118 <script type="text/javascript">
118 <script type="text/javascript">
119 var data = ${c.trending_languages|n};
119 var data = ${c.trending_languages|n};
120 var total = 0;
120 var total = 0;
121 var no_data = true;
121 var no_data = true;
122 for (k in data){
122 for (k in data){
123 total += data[k];
123 total += data[k];
124 no_data = false;
124 no_data = false;
125 }
125 }
126 var tbl = document.createElement('table');
126 var tbl = document.createElement('table');
127 tbl.setAttribute('class','trending_language_tbl');
127 tbl.setAttribute('class','trending_language_tbl');
128 for (k in data){
128 for (k in data){
129 var tr = document.createElement('tr');
129 var tr = document.createElement('tr');
130 var percentage = Math.round((data[k]/total*100),2);
130 var percentage = Math.round((data[k]/total*100),2);
131 var value = data[k];
131 var value = data[k];
132 var td1 = document.createElement('td');
132 var td1 = document.createElement('td');
133 td1.width=150;
133 td1.width=150;
134 var trending_language_label = document.createElement('div');
134 var trending_language_label = document.createElement('div');
135 trending_language_label.innerHTML = k;
135 trending_language_label.innerHTML = k;
136 td1.appendChild(trending_language_label);
136 td1.appendChild(trending_language_label);
137
137
138 var td2 = document.createElement('td');
138 var td2 = document.createElement('td');
139 var trending_language = document.createElement('div');
139 var trending_language = document.createElement('div');
140 trending_language.title = k;
140 trending_language.title = k;
141 trending_language.innerHTML = "<b>"+percentage+"% "+value+" ${_('files')}</b>";
141 trending_language.innerHTML = "<b>"+percentage+"% "+value+" ${_('files')}</b>";
142 trending_language.setAttribute("class", 'trending_language top-right-rounded-corner bottom-right-rounded-corner');
142 trending_language.setAttribute("class", 'trending_language top-right-rounded-corner bottom-right-rounded-corner');
143 trending_language.style.width=percentage+"%";
143 trending_language.style.width=percentage+"%";
144 td2.appendChild(trending_language);
144 td2.appendChild(trending_language);
145
145
146 tr.appendChild(td1);
146 tr.appendChild(td1);
147 tr.appendChild(td2);
147 tr.appendChild(td2);
148 tbl.appendChild(tr);
148 tbl.appendChild(tr);
149
149
150 }
150 }
151 if(no_data){
151 if(no_data){
152 var tr = document.createElement('tr');
152 var tr = document.createElement('tr');
153 var td1 = document.createElement('td');
153 var td1 = document.createElement('td');
154 td1.innerHTML = "${_('No data loaded yet')}";
154 td1.innerHTML = "${_('No data loaded yet')}";
155 tr.appendChild(td1);
155 tr.appendChild(td1);
156 tbl.appendChild(tr);
156 tbl.appendChild(tr);
157 }
157 }
158 YAHOO.util.Dom.get('lang_stats').appendChild(tbl);
158 YAHOO.util.Dom.get('lang_stats').appendChild(tbl);
159 </script>
159 </script>
160
160
161 </div>
161 </div>
162 </div>
162 </div>
163
163
164 <div class="field">
164 <div class="field">
165 <div class="label">
165 <div class="label">
166 <label>${_('Download')}:</label>
166 <label>${_('Download')}:</label>
167 </div>
167 </div>
168 <div class="input-short">
168 <div class="input-short">
169 %for cnt,archive in enumerate(c.repo_info._get_archives()):
169 %for cnt,archive in enumerate(c.repo_info._get_archives()):
170 %if cnt >=1:
170 %if cnt >=1:
171 |
171 |
172 %endif
172 %endif
173 ${h.link_to(c.repo_info.name+'.'+archive['type'],
173 ${h.link_to(c.repo_info.name+'.'+archive['type'],
174 h.url('files_archive_home',repo_name=c.repo_info.name,
174 h.url('files_archive_home',repo_name=c.repo_info.name,
175 revision='tip',fileformat=archive['extension']),class_="archive_icon")}
175 revision='tip',fileformat=archive['extension']),class_="archive_icon")}
176 %endfor
176 %endfor
177 </div>
177 </div>
178 </div>
178 </div>
179
179
180 <div class="field">
180 <div class="field">
181 <div class="label">
181 <div class="label">
182 <label>${_('Feeds')}:</label>
182 <label>${_('Feeds')}:</label>
183 </div>
183 </div>
184 <div class="input-short">
184 <div class="input-short">
185 ${h.link_to(_('RSS'),h.url('rss_feed_home',repo_name=c.repo_info.name),class_='rss_icon')}
185 ${h.link_to(_('RSS'),h.url('rss_feed_home',repo_name=c.repo_info.name),class_='rss_icon')}
186 ${h.link_to(_('Atom'),h.url('atom_feed_home',repo_name=c.repo_info.name),class_='atom_icon')}
186 ${h.link_to(_('Atom'),h.url('atom_feed_home',repo_name=c.repo_info.name),class_='atom_icon')}
187 </div>
187 </div>
188 </div>
188 </div>
189 </div>
189 </div>
190 </div>
190 </div>
191 </div>
191 </div>
192
192
193 <div class="box box-right" style="min-height:455px">
193 <div class="box box-right" style="min-height:455px">
194 <!-- box / title -->
194 <!-- box / title -->
195 <div class="title">
195 <div class="title">
196 <h5>${_('Commit activity by day / author')}</h5>
196 <h5>${_('Commit activity by day / author')}</h5>
197 </div>
197 </div>
198
198
199 <div class="table">
199 <div class="table">
200 <div id="commit_history" style="width:560px;height:300px;float:left"></div>
200 <div id="commit_history" style="width:560px;height:300px;float:left"></div>
201 <div style="clear: both;height: 10px"></div>
201 <div style="clear: both;height: 10px"></div>
202 <div id="overview" style="width:560px;height:100px;float:left"></div>
202 <div id="overview" style="width:560px;height:100px;float:left"></div>
203
203
204 <div id="legend_data" style="clear:both;margin-top:10px;">
204 <div id="legend_data" style="clear:both;margin-top:10px;">
205 <div id="legend_container"></div>
205 <div id="legend_container"></div>
206 <div id="legend_choices">
206 <div id="legend_choices">
207 <table id="legend_choices_tables" style="font-size:smaller;color:#545454"></table>
207 <table id="legend_choices_tables" style="font-size:smaller;color:#545454"></table>
208 </div>
208 </div>
209 </div>
209 </div>
210 <script type="text/javascript">
210 <script type="text/javascript">
211 /**
211 /**
212 * Plots summary graph
212 * Plots summary graph
213 *
213 *
214 * @class SummaryPlot
214 * @class SummaryPlot
215 * @param {from} initial from for detailed graph
215 * @param {from} initial from for detailed graph
216 * @param {to} initial to for detailed graph
216 * @param {to} initial to for detailed graph
217 * @param {dataset}
217 * @param {dataset}
218 * @param {overview_dataset}
218 * @param {overview_dataset}
219 */
219 */
220 function SummaryPlot(from,to,dataset,overview_dataset) {
220 function SummaryPlot(from,to,dataset,overview_dataset) {
221 var initial_ranges = {
221 var initial_ranges = {
222 "xaxis":{
222 "xaxis":{
223 "from":from,
223 "from":from,
224 "to":to,
224 "to":to,
225 },
225 },
226 };
226 };
227 var dataset = dataset;
227 var dataset = dataset;
228 var overview_dataset = [overview_dataset];
228 var overview_dataset = [overview_dataset];
229 var choiceContainer = YAHOO.util.Dom.get("legend_choices");
229 var choiceContainer = YAHOO.util.Dom.get("legend_choices");
230 var choiceContainerTable = YAHOO.util.Dom.get("legend_choices_tables");
230 var choiceContainerTable = YAHOO.util.Dom.get("legend_choices_tables");
231 var plotContainer = YAHOO.util.Dom.get('commit_history');
231 var plotContainer = YAHOO.util.Dom.get('commit_history');
232 var overviewContainer = YAHOO.util.Dom.get('overview');
232 var overviewContainer = YAHOO.util.Dom.get('overview');
233
233
234 var plot_options = {
234 var plot_options = {
235 bars: {show:true,align:'center',lineWidth:4},
235 bars: {show:true,align:'center',lineWidth:4},
236 legend: {show:true, container:"legend_container"},
236 legend: {show:true, container:"legend_container"},
237 points: {show:true,radius:0,fill:false},
237 points: {show:true,radius:0,fill:false},
238 yaxis: {tickDecimals:0,},
238 yaxis: {tickDecimals:0,},
239 xaxis: {
239 xaxis: {
240 mode: "time",
240 mode: "time",
241 timeformat: "%d/%m",
241 timeformat: "%d/%m",
242 min:from,
242 min:from,
243 max:to,
243 max:to,
244 },
244 },
245 grid: {
245 grid: {
246 hoverable: true,
246 hoverable: true,
247 clickable: true,
247 clickable: true,
248 autoHighlight:true,
248 autoHighlight:true,
249 color: "#999"
249 color: "#999"
250 },
250 },
251 //selection: {mode: "x"}
251 //selection: {mode: "x"}
252 };
252 };
253 var overview_options = {
253 var overview_options = {
254 legend:{show:false},
254 legend:{show:false},
255 bars: {show:true,barWidth: 2,},
255 bars: {show:true,barWidth: 2,},
256 shadowSize: 0,
256 shadowSize: 0,
257 xaxis: {mode: "time", timeformat: "%d/%m/%y",},
257 xaxis: {mode: "time", timeformat: "%d/%m/%y",},
258 yaxis: {ticks: 3, min: 0,},
258 yaxis: {ticks: 3, min: 0,},
259 grid: {color: "#999",},
259 grid: {color: "#999",},
260 selection: {mode: "x"}
260 selection: {mode: "x"}
261 };
261 };
262
262
263 /**
263 /**
264 *get dummy data needed in few places
264 *get dummy data needed in few places
265 */
265 */
266 function getDummyData(label){
266 function getDummyData(label){
267 return {"label":label,
267 return {"label":label,
268 "data":[{"time":0,
268 "data":[{"time":0,
269 "commits":0,
269 "commits":0,
270 "added":0,
270 "added":0,
271 "changed":0,
271 "changed":0,
272 "removed":0,
272 "removed":0,
273 }],
273 }],
274 "schema":["commits"],
274 "schema":["commits"],
275 "color":'#ffffff',
275 "color":'#ffffff',
276 }
276 }
277 }
277 }
278
278
279 /**
279 /**
280 * generate checkboxes accordindly to data
280 * generate checkboxes accordindly to data
281 * @param keys
281 * @param keys
282 * @returns
282 * @returns
283 */
283 */
284 function generateCheckboxes(data) {
284 function generateCheckboxes(data) {
285 //append checkboxes
285 //append checkboxes
286 var i = 0;
286 var i = 0;
287 choiceContainerTable.innerHTML = '';
287 choiceContainerTable.innerHTML = '';
288 for(var pos in data) {
288 for(var pos in data) {
289
289
290 data[pos].color = i;
290 data[pos].color = i;
291 i++;
291 i++;
292 if(data[pos].label != ''){
292 if(data[pos].label != ''){
293 choiceContainerTable.innerHTML += '<tr><td>'+
293 choiceContainerTable.innerHTML += '<tr><td>'+
294 '<input type="checkbox" name="' + data[pos].label +'" checked="checked" />'
294 '<input type="checkbox" name="' + data[pos].label +'" checked="checked" />'
295 +data[pos].label+
295 +data[pos].label+
296 '</td></tr>';
296 '</td></tr>';
297 }
297 }
298 }
298 }
299 }
299 }
300
300
301 /**
301 /**
302 * ToolTip show
302 * ToolTip show
303 */
303 */
304 function showTooltip(x, y, contents) {
304 function showTooltip(x, y, contents) {
305 var div=document.getElementById('tooltip');
305 var div=document.getElementById('tooltip');
306 if(!div) {
306 if(!div) {
307 div = document.createElement('div');
307 div = document.createElement('div');
308 div.id="tooltip";
308 div.id="tooltip";
309 div.style.position="absolute";
309 div.style.position="absolute";
310 div.style.border='1px solid #fdd';
310 div.style.border='1px solid #fdd';
311 div.style.padding='2px';
311 div.style.padding='2px';
312 div.style.backgroundColor='#fee';
312 div.style.backgroundColor='#fee';
313 document.body.appendChild(div);
313 document.body.appendChild(div);
314 }
314 }
315 YAHOO.util.Dom.setStyle(div, 'opacity', 0);
315 YAHOO.util.Dom.setStyle(div, 'opacity', 0);
316 div.innerHTML = contents;
316 div.innerHTML = contents;
317 div.style.top=(y + 5) + "px";
317 div.style.top=(y + 5) + "px";
318 div.style.left=(x + 5) + "px";
318 div.style.left=(x + 5) + "px";
319
319
320 var anim = new YAHOO.util.Anim(div, {opacity: {to: 0.8}}, 0.2);
320 var anim = new YAHOO.util.Anim(div, {opacity: {to: 0.8}}, 0.2);
321 anim.animate();
321 anim.animate();
322 }
322 }
323
323
324 /**
324 /**
325 * This function will detect if selected period has some changesets for this user
325 * This function will detect if selected period has some changesets for this user
326 if it does this data is then pushed for displaying
326 if it does this data is then pushed for displaying
327 Additionally it will only display users that are selected by the checkbox
327 Additionally it will only display users that are selected by the checkbox
328 */
328 */
329 function getDataAccordingToRanges(ranges) {
329 function getDataAccordingToRanges(ranges) {
330
330
331 var data = [];
331 var data = [];
332 var keys = [];
332 var keys = [];
333 for(var key in dataset){
333 for(var key in dataset){
334 var push = false;
334 var push = false;
335 //method1 slow !!
335 //method1 slow !!
336 ///*
336 ///*
337 for(var ds in dataset[key].data){
337 for(var ds in dataset[key].data){
338 commit_data = dataset[key].data[ds];
338 commit_data = dataset[key].data[ds];
339 //console.log(key);
339 //console.log(key);
340 //console.log(new Date(commit_data.time*1000));
340 //console.log(new Date(commit_data.time*1000));
341 //console.log(new Date(ranges.xaxis.from*1000));
341 //console.log(new Date(ranges.xaxis.from*1000));
342 //console.log(new Date(ranges.xaxis.to*1000));
342 //console.log(new Date(ranges.xaxis.to*1000));
343 if (commit_data.time >= ranges.xaxis.from && commit_data.time <= ranges.xaxis.to){
343 if (commit_data.time >= ranges.xaxis.from && commit_data.time <= ranges.xaxis.to){
344 push = true;
344 push = true;
345 break;
345 break;
346 }
346 }
347 }
347 }
348 //*/
348 //*/
349 /*//method2 sorted commit data !!!
349 /*//method2 sorted commit data !!!
350 var first_commit = dataset[key].data[0].time;
350 var first_commit = dataset[key].data[0].time;
351 var last_commit = dataset[key].data[dataset[key].data.length-1].time;
351 var last_commit = dataset[key].data[dataset[key].data.length-1].time;
352
352
353 console.log(first_commit);
353 console.log(first_commit);
354 console.log(last_commit);
354 console.log(last_commit);
355
355
356 if (first_commit >= ranges.xaxis.from && last_commit <= ranges.xaxis.to){
356 if (first_commit >= ranges.xaxis.from && last_commit <= ranges.xaxis.to){
357 push = true;
357 push = true;
358 }
358 }
359 */
359 */
360 if(push){
360 if(push){
361 data.push(dataset[key]);
361 data.push(dataset[key]);
362 }
362 }
363 }
363 }
364 if(data.length >= 1){
364 if(data.length >= 1){
365 return data;
365 return data;
366 }
366 }
367 else{
367 else{
368 //just return dummy data for graph to plot itself
368 //just return dummy data for graph to plot itself
369 return [getDummyData('')];
369 return [getDummyData('')];
370 }
370 }
371
371
372 }
372 }
373
373
374 /**
374 /**
375 * redraw using new checkbox data
375 * redraw using new checkbox data
376 */
376 */
377 function plotchoiced(e,args){
377 function plotchoiced(e,args){
378 var cur_data = args[0];
378 var cur_data = args[0];
379 var cur_ranges = args[1];
379 var cur_ranges = args[1];
380
380
381 var new_data = [];
381 var new_data = [];
382 var inputs = choiceContainer.getElementsByTagName("input");
382 var inputs = choiceContainer.getElementsByTagName("input");
383
383
384 //show only checked labels
384 //show only checked labels
385 for(var i=0; i<inputs.length; i++) {
385 for(var i=0; i<inputs.length; i++) {
386 var checkbox_key = inputs[i].name;
386 var checkbox_key = inputs[i].name;
387
387
388 if(inputs[i].checked){
388 if(inputs[i].checked){
389 for(var d in cur_data){
389 for(var d in cur_data){
390 if(cur_data[d].label == checkbox_key){
390 if(cur_data[d].label == checkbox_key){
391 new_data.push(cur_data[d]);
391 new_data.push(cur_data[d]);
392 }
392 }
393 }
393 }
394 }
394 }
395 else{
395 else{
396 //push dummy data to not hide the label
396 //push dummy data to not hide the label
397 new_data.push(getDummyData(checkbox_key));
397 new_data.push(getDummyData(checkbox_key));
398 }
398 }
399 }
399 }
400
400
401 var new_options = YAHOO.lang.merge(plot_options, {
401 var new_options = YAHOO.lang.merge(plot_options, {
402 xaxis: {
402 xaxis: {
403 min: cur_ranges.xaxis.from,
403 min: cur_ranges.xaxis.from,
404 max: cur_ranges.xaxis.to,
404 max: cur_ranges.xaxis.to,
405 mode:"time",
405 mode:"time",
406 timeformat: "%d/%m",
406 timeformat: "%d/%m",
407 }
407 }
408 });
408 });
409 if (!new_data){
409 if (!new_data){
410 new_data = [[0,1]];
410 new_data = [[0,1]];
411 }
411 }
412 // do the zooming
412 // do the zooming
413 plot = YAHOO.widget.Flot(plotContainer, new_data, new_options);
413 plot = YAHOO.widget.Flot(plotContainer, new_data, new_options);
414
414
415 plot.subscribe("plotselected", plotselected);
415 plot.subscribe("plotselected", plotselected);
416
416
417 //resubscribe plothover
417 //resubscribe plothover
418 plot.subscribe("plothover", plothover);
418 plot.subscribe("plothover", plothover);
419
419
420 // don't fire event on the overview to prevent eternal loop
420 // don't fire event on the overview to prevent eternal loop
421 overview.setSelection(cur_ranges, true);
421 overview.setSelection(cur_ranges, true);
422
422
423 }
423 }
424
424
425 /**
425 /**
426 * plot only selected items from overview
426 * plot only selected items from overview
427 * @param ranges
427 * @param ranges
428 * @returns
428 * @returns
429 */
429 */
430 function plotselected(ranges,cur_data) {
430 function plotselected(ranges,cur_data) {
431 //updates the data for new plot
431 //updates the data for new plot
432 data = getDataAccordingToRanges(ranges);
432 data = getDataAccordingToRanges(ranges);
433 generateCheckboxes(data);
433 generateCheckboxes(data);
434
434
435 var new_options = YAHOO.lang.merge(plot_options, {
435 var new_options = YAHOO.lang.merge(plot_options, {
436 xaxis: {
436 xaxis: {
437 min: ranges.xaxis.from,
437 min: ranges.xaxis.from,
438 max: ranges.xaxis.to,
438 max: ranges.xaxis.to,
439 mode:"time",
439 mode:"time",
440 timeformat: "%d/%m",
440 timeformat: "%d/%m",
441 }
441 }
442 });
442 });
443 // do the zooming
443 // do the zooming
444 plot = YAHOO.widget.Flot(plotContainer, data, new_options);
444 plot = YAHOO.widget.Flot(plotContainer, data, new_options);
445
445
446 plot.subscribe("plotselected", plotselected);
446 plot.subscribe("plotselected", plotselected);
447
447
448 //resubscribe plothover
448 //resubscribe plothover
449 plot.subscribe("plothover", plothover);
449 plot.subscribe("plothover", plothover);
450
450
451 // don't fire event on the overview to prevent eternal loop
451 // don't fire event on the overview to prevent eternal loop
452 overview.setSelection(ranges, true);
452 overview.setSelection(ranges, true);
453
453
454 //resubscribe choiced
454 //resubscribe choiced
455 YAHOO.util.Event.on(choiceContainer.getElementsByTagName("input"), "click", plotchoiced, [data, ranges]);
455 YAHOO.util.Event.on(choiceContainer.getElementsByTagName("input"), "click", plotchoiced, [data, ranges]);
456 }
456 }
457
457
458 var previousPoint = null;
458 var previousPoint = null;
459
459
460 function plothover(o) {
460 function plothover(o) {
461 var pos = o.pos;
461 var pos = o.pos;
462 var item = o.item;
462 var item = o.item;
463
463
464 //YAHOO.util.Dom.get("x").innerHTML = pos.x.toFixed(2);
464 //YAHOO.util.Dom.get("x").innerHTML = pos.x.toFixed(2);
465 //YAHOO.util.Dom.get("y").innerHTML = pos.y.toFixed(2);
465 //YAHOO.util.Dom.get("y").innerHTML = pos.y.toFixed(2);
466 if (item) {
466 if (item) {
467 if (previousPoint != item.datapoint) {
467 if (previousPoint != item.datapoint) {
468 previousPoint = item.datapoint;
468 previousPoint = item.datapoint;
469
469
470 var tooltip = YAHOO.util.Dom.get("tooltip");
470 var tooltip = YAHOO.util.Dom.get("tooltip");
471 if(tooltip) {
471 if(tooltip) {
472 tooltip.parentNode.removeChild(tooltip);
472 tooltip.parentNode.removeChild(tooltip);
473 }
473 }
474 var x = item.datapoint.x.toFixed(2);
474 var x = item.datapoint.x.toFixed(2);
475 var y = item.datapoint.y.toFixed(2);
475 var y = item.datapoint.y.toFixed(2);
476
476
477 if (!item.series.label){
477 if (!item.series.label){
478 item.series.label = 'commits';
478 item.series.label = 'commits';
479 }
479 }
480 var d = new Date(x*1000);
480 var d = new Date(x*1000);
481 var fd = d.toDateString()
481 var fd = d.toDateString()
482 var nr_commits = parseInt(y);
482 var nr_commits = parseInt(y);
483
483
484 var cur_data = dataset[item.series.label].data[item.dataIndex];
484 var cur_data = dataset[item.series.label].data[item.dataIndex];
485 var added = cur_data.added;
485 var added = cur_data.added;
486 var changed = cur_data.changed;
486 var changed = cur_data.changed;
487 var removed = cur_data.removed;
487 var removed = cur_data.removed;
488
488
489 var nr_commits_suffix = " ${_('commits')} ";
489 var nr_commits_suffix = " ${_('commits')} ";
490 var added_suffix = " ${_('files added')} ";
490 var added_suffix = " ${_('files added')} ";
491 var changed_suffix = " ${_('files changed')} ";
491 var changed_suffix = " ${_('files changed')} ";
492 var removed_suffix = " ${_('files removed')} ";
492 var removed_suffix = " ${_('files removed')} ";
493
493
494
494
495 if(nr_commits == 1){nr_commits_suffix = " ${_('commit')} ";}
495 if(nr_commits == 1){nr_commits_suffix = " ${_('commit')} ";}
496 if(added==1){added_suffix=" ${_('file added')} ";}
496 if(added==1){added_suffix=" ${_('file added')} ";}
497 if(changed==1){changed_suffix=" ${_('file changed')} ";}
497 if(changed==1){changed_suffix=" ${_('file changed')} ";}
498 if(removed==1){removed_suffix=" ${_('file removed')} ";}
498 if(removed==1){removed_suffix=" ${_('file removed')} ";}
499
499
500 showTooltip(item.pageX, item.pageY, item.series.label + " on " + fd
500 showTooltip(item.pageX, item.pageY, item.series.label + " on " + fd
501 +'<br/>'+
501 +'<br/>'+
502 nr_commits + nr_commits_suffix+'<br/>'+
502 nr_commits + nr_commits_suffix+'<br/>'+
503 added + added_suffix +'<br/>'+
503 added + added_suffix +'<br/>'+
504 changed + changed_suffix + '<br/>'+
504 changed + changed_suffix + '<br/>'+
505 removed + removed_suffix + '<br/>');
505 removed + removed_suffix + '<br/>');
506 }
506 }
507 }
507 }
508 else {
508 else {
509 var tooltip = YAHOO.util.Dom.get("tooltip");
509 var tooltip = YAHOO.util.Dom.get("tooltip");
510
510
511 if(tooltip) {
511 if(tooltip) {
512 tooltip.parentNode.removeChild(tooltip);
512 tooltip.parentNode.removeChild(tooltip);
513 }
513 }
514 previousPoint = null;
514 previousPoint = null;
515 }
515 }
516 }
516 }
517
517
518 /**
518 /**
519 * MAIN EXECUTION
519 * MAIN EXECUTION
520 */
520 */
521
521
522 var data = getDataAccordingToRanges(initial_ranges);
522 var data = getDataAccordingToRanges(initial_ranges);
523 generateCheckboxes(data);
523 generateCheckboxes(data);
524
524
525 //main plot
525 //main plot
526 var plot = YAHOO.widget.Flot(plotContainer,data,plot_options);
526 var plot = YAHOO.widget.Flot(plotContainer,data,plot_options);
527
527
528 //overview
528 //overview
529 var overview = YAHOO.widget.Flot(overviewContainer, overview_dataset, overview_options);
529 var overview = YAHOO.widget.Flot(overviewContainer, overview_dataset, overview_options);
530
530
531 //show initial selection on overview
531 //show initial selection on overview
532 overview.setSelection(initial_ranges);
532 overview.setSelection(initial_ranges);
533
533
534 plot.subscribe("plotselected", plotselected);
534 plot.subscribe("plotselected", plotselected);
535
535
536 overview.subscribe("plotselected", function (ranges) {
536 overview.subscribe("plotselected", function (ranges) {
537 plot.setSelection(ranges);
537 plot.setSelection(ranges);
538 });
538 });
539
539
540 plot.subscribe("plothover", plothover);
540 plot.subscribe("plothover", plothover);
541
541
542 YAHOO.util.Event.on(choiceContainer.getElementsByTagName("input"), "click", plotchoiced, [data, initial_ranges]);
542 YAHOO.util.Event.on(choiceContainer.getElementsByTagName("input"), "click", plotchoiced, [data, initial_ranges]);
543 }
543 }
544 SummaryPlot(${c.ts_min},${c.ts_max},${c.commit_data|n},${c.overview_data|n});
544 SummaryPlot(${c.ts_min},${c.ts_max},${c.commit_data|n},${c.overview_data|n});
545 </script>
545 </script>
546
546
547 </div>
547 </div>
548 </div>
548 </div>
549
549
550 <div class="box">
550 <div class="box">
551 <div class="title">
551 <div class="title">
552 <div class="breadcrumbs">${h.link_to(_('Last ten changes'),h.url('changelog_home',repo_name=c.repo_name))}</div>
552 <div class="breadcrumbs">${h.link_to(_('Last ten changes'),h.url('changelog_home',repo_name=c.repo_name))}</div>
553 </div>
553 </div>
554 <div class="table">
554 <div class="table">
555 <%include file='../shortlog/shortlog_data.html'/>
555 <%include file='../shortlog/shortlog_data.html'/>
556 %if c.repo_changesets:
556 %if c.repo_changesets:
557 ${h.link_to(_('show more'),h.url('changelog_home',repo_name=c.repo_name))}
557 ${h.link_to(_('show more'),h.url('changelog_home',repo_name=c.repo_name))}
558 %endif
558 %endif
559 </div>
559 </div>
560 </div>
560 </div>
561 <div class="box">
561 <div class="box">
562 <div class="title">
562 <div class="title">
563 <div class="breadcrumbs">${h.link_to(_('Last ten tags'),h.url('tags_home',repo_name=c.repo_name))}</div>
563 <div class="breadcrumbs">${h.link_to(_('Last ten tags'),h.url('tags_home',repo_name=c.repo_name))}</div>
564 </div>
564 </div>
565 <div class="table">
565 <div class="table">
566 <%include file='../tags/tags_data.html'/>
566 <%include file='../tags/tags_data.html'/>
567 %if c.repo_changesets:
567 %if c.repo_changesets:
568 ${h.link_to(_('show more'),h.url('tags_home',repo_name=c.repo_name))}
568 ${h.link_to(_('show more'),h.url('tags_home',repo_name=c.repo_name))}
569 %endif
569 %endif
570 </div>
570 </div>
571 </div>
571 </div>
572 <div class="box">
572 <div class="box">
573 <div class="title">
573 <div class="title">
574 <div class="breadcrumbs">${h.link_to(_('Last ten branches'),h.url('branches_home',repo_name=c.repo_name))}</div>
574 <div class="breadcrumbs">${h.link_to(_('Last ten branches'),h.url('branches_home',repo_name=c.repo_name))}</div>
575 </div>
575 </div>
576 <div class="table">
576 <div class="table">
577 <%include file='../branches/branches_data.html'/>
577 <%include file='../branches/branches_data.html'/>
578 %if c.repo_changesets:
578 %if c.repo_changesets:
579 ${h.link_to(_('show more'),h.url('branches_home',repo_name=c.repo_name))}
579 ${h.link_to(_('show more'),h.url('branches_home',repo_name=c.repo_name))}
580 %endif
580 %endif
581 </div>
581 </div>
582 </div>
582 </div>
583
583
584 </%def> No newline at end of file
584 </%def>
@@ -1,31 +1,31 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="/base/base.html"/>
2 <%inherit file="/base/base.html"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('Administration')}
5 ${c.repo_name} ${_('Tags')} - ${c.rhodecode_name}
6 </%def>
6 </%def>
7
7
8
8
9 <%def name="breadcrumbs_links()">
9 <%def name="breadcrumbs_links()">
10 ${h.link_to(u'Home',h.url('/'))}
10 ${h.link_to(u'Home',h.url('/'))}
11 &raquo;
11 &raquo;
12 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
12 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
13 &raquo;
13 &raquo;
14 ${_('tags')}
14 ${_('tags')}
15 </%def>
15 </%def>
16
16
17 <%def name="page_nav()">
17 <%def name="page_nav()">
18 ${self.menu('tags')}
18 ${self.menu('tags')}
19 </%def>
19 </%def>
20 <%def name="main()">
20 <%def name="main()">
21 <div class="box">
21 <div class="box">
22 <!-- box / title -->
22 <!-- box / title -->
23 <div class="title">
23 <div class="title">
24 ${self.breadcrumbs()}
24 ${self.breadcrumbs()}
25 </div>
25 </div>
26 <!-- end box / title -->
26 <!-- end box / title -->
27 <div class="table">
27 <div class="table">
28 <%include file='tags_data.html'/>
28 <%include file='tags_data.html'/>
29 </div>
29 </div>
30 </div>
30 </div>
31 </%def> No newline at end of file
31 </%def>
General Comments 0
You need to be logged in to leave comments. Login now