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 |
|
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 | » |
|
10 | » | |
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 |
|
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 | » |
|
10 | » | |
11 | ${h.link_to(_('Repositories'),h.url('repos'))} |
|
11 | ${h.link_to(_('Repositories'),h.url('repos'))} | |
12 | » |
|
12 | » | |
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 | » |
|
10 | » | |
11 | ${h.link_to(_('Repositories'),h.url('repos'))} |
|
11 | ${h.link_to(_('Repositories'),h.url('repos'))} | |
12 | » |
|
12 | » | |
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'))} » ${_('Repositories')} |
|
10 | ${h.link_to(_('Admin'),h.url('admin_home'))} » ${_('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'))} » ${_('Settings')} |
|
9 | ${h.link_to(_('Admin'),h.url('admin_home'))} » ${_('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 | » |
|
9 | » | |
10 | ${h.link_to(_('Users'),h.url('users'))} |
|
10 | ${h.link_to(_('Users'),h.url('users'))} | |
11 | » |
|
11 | » | |
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 | » |
|
10 | » | |
11 | ${h.link_to(_('Users'),h.url('users'))} |
|
11 | ${h.link_to(_('Users'),h.url('users'))} | |
12 | » |
|
12 | » | |
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} |
|
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'))} » ${_('Users')} |
|
9 | ${h.link_to(_('Admin'),h.url('admin_home'))} » ${_('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 | » |
|
10 | » | |
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 | » |
|
12 | » | |
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 |
|
|
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 | » |
|
11 | » | |
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 | » |
|
13 | » | |
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.r |
|
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 | » |
|
9 | » | |
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 | » |
|
11 | » | |
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 | » <span>${h.link_to(_('raw diff'), |
|
30 | » <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 | » <span>${h.link_to(_('download diff'), |
|
32 | » <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 | » <span>${h.link_to(_('diff'), |
|
102 | » <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 | » <span>${h.link_to(_('raw diff'), |
|
104 | » <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 | » <span>${h.link_to(_('download diff'), |
|
106 | » <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. |
|
24 | font-size: 1.6em; | |
25 | } |
|
25 | } | |
26 | .error_message{ |
|
26 | .error_message{ | |
27 | text-align: center; |
|
27 | text-align: center; | |
28 |
color: |
|
28 | color:#003367; | |
29 |
font-size: 1. |
|
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 | » |
|
9 | » | |
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 | » |
|
11 | » | |
11 | ${'%s: %s %s %s' % (_('File diff'),c.diff2,'→',c.diff1)|n} |
|
12 | ${'%s: %s %s %s' % (_('File diff'),c.diff2,'→',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 | » <span>${h.link_to(_('diff'), |
|
30 | » <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 | » <span>${h.link_to(_('raw diff'), |
|
32 | » <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 | » <span>${h.link_to(_('download diff'), |
|
34 | » <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 | » |
|
9 | » | |
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 | » |
|
11 | » | |
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 | » |
|
9 | » | |
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 | » |
|
11 | » | |
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}↑</a> |
|
18 | <a href="?sort=${name_slug}">${name}↑</a> | |
19 | %else: |
|
19 | %else: | |
20 | <a href="?sort=-${name_slug}">${name}↓</a> |
|
20 | <a href="?sort=-${name_slug}">${name}↓</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 |
|
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 |
|
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 |
|
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 | » |
|
10 | » | |
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 | » |
|
10 | » | |
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 | » |
|
11 | » | |
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 | » |
|
13 | » | |
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 | » |
|
9 | » | |
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 | » |
|
11 | » | |
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 | » |
|
11 | » | |
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 | » |
|
13 | » | |
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