Mercurial > kallithea
annotate rhodecode/lib/helpers.py @ 1753:1d1ccb873d00 beta
moved soon-to-be-deleted code from vcs to rhodecode
- diff lib
- annotate highlighter
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 04 Dec 2011 23:39:32 +0200 |
parents | 8804715404c9 |
children | 39b49c999efb |
rev | line source |
---|---|
0 | 1 """Helper functions |
2 | |
3 Consists of functions to typically be used within templates, but also | |
4 available to Controllers. This module is available to both as 'h'. | |
5 """ | |
734
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
6 import random |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
7 import hashlib |
966
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
8 import StringIO |
1101
c1080b42a7cb
fixed problem with int. chars in gravatars
Marcin Kuzminski <marcin@python-works.com>
parents:
1100
diff
changeset
|
9 import urllib |
1422
e69da281e235
fixed issues with repo pager
Marcin Kuzminski <marcin@python-works.com>
parents:
1421
diff
changeset
|
10 import math |
1101
c1080b42a7cb
fixed problem with int. chars in gravatars
Marcin Kuzminski <marcin@python-works.com>
parents:
1100
diff
changeset
|
11 |
1154
36fe593dfe4b
simplified str2bool, and moved safe_unicode out of helpers since it was not html specific function
Marcin Kuzminski <marcin@python-works.com>
parents:
1115
diff
changeset
|
12 from datetime import datetime |
1716
7d1fc253549e
notification to commit author + gardening
Marcin Kuzminski <marcin@python-works.com>
parents:
1676
diff
changeset
|
13 from pygments.formatters.html import HtmlFormatter |
250
be4621c6de58
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
Marcin Kuzminski <marcin@python-works.com>
parents:
165
diff
changeset
|
14 from pygments import highlight as code_highlight |
1110
5351a3a32381
#21 added optional flag to disable gravatar, and use local icon
Marcin Kuzminski <marcin@python-works.com>
parents:
1105
diff
changeset
|
15 from pylons import url, request, config |
97
be0096a02772
added helper for filesize
Marcin Kuzminski <marcin@python-works.com>
parents:
94
diff
changeset
|
16 from pylons.i18n.translation import _, ungettext |
1022
4f834b0abcd3
Code refactor number 2
Marcin Kuzminski <marcin@python-works.com>
parents:
1009
diff
changeset
|
17 |
250
be4621c6de58
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
Marcin Kuzminski <marcin@python-works.com>
parents:
165
diff
changeset
|
18 from webhelpers.html import literal, HTML, escape |
281
cd2ee462fc2c
implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents:
278
diff
changeset
|
19 from webhelpers.html.tools import * |
98
01d0f363f36d
added pygments webhelper
Marcin Kuzminski <marcin@python-works.com>
parents:
97
diff
changeset
|
20 from webhelpers.html.builder import make_tag |
250
be4621c6de58
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
Marcin Kuzminski <marcin@python-works.com>
parents:
165
diff
changeset
|
21 from webhelpers.html.tags import auto_discovery_link, checkbox, css_classes, \ |
be4621c6de58
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
Marcin Kuzminski <marcin@python-works.com>
parents:
165
diff
changeset
|
22 end_form, file, form, hidden, image, javascript_link, link_to, link_to_if, \ |
be4621c6de58
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
Marcin Kuzminski <marcin@python-works.com>
parents:
165
diff
changeset
|
23 link_to_unless, ol, required_legend, select, stylesheet_link, submit, text, \ |
281
cd2ee462fc2c
implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents:
278
diff
changeset
|
24 password, textarea, title, ul, xml_declaration, radio |
250
be4621c6de58
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
Marcin Kuzminski <marcin@python-works.com>
parents:
165
diff
changeset
|
25 from webhelpers.html.tools import auto_link, button_to, highlight, js_obfuscate, \ |
be4621c6de58
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
Marcin Kuzminski <marcin@python-works.com>
parents:
165
diff
changeset
|
26 mail_to, strip_links, strip_tags, tag_re |
be4621c6de58
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
Marcin Kuzminski <marcin@python-works.com>
parents:
165
diff
changeset
|
27 from webhelpers.number import format_byte_size, format_bit_size |
0 | 28 from webhelpers.pylonslib import Flash as _Flash |
29 from webhelpers.pylonslib.secure_form import secure_form | |
250
be4621c6de58
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
Marcin Kuzminski <marcin@python-works.com>
parents:
165
diff
changeset
|
30 from webhelpers.text import chop_at, collapse, convert_accented_entities, \ |
be4621c6de58
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
Marcin Kuzminski <marcin@python-works.com>
parents:
165
diff
changeset
|
31 convert_misc_entities, lchop, plural, rchop, remove_formatting, \ |
281
cd2ee462fc2c
implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents:
278
diff
changeset
|
32 replace_whitespace, urlify, truncate, wrap_paragraphs |
635
fd63782c4426
Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents:
631
diff
changeset
|
33 from webhelpers.date import time_ago_in_words |
1098
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
34 from webhelpers.paginate import Page |
698
4cd0709b6d4b
fixes #65, Added reset buttons to edit forms
Marcin Kuzminski <marcin@python-works.com>
parents:
668
diff
changeset
|
35 from webhelpers.html.tags import _set_input_attrs, _set_id_attr, \ |
1676
e86191684f4b
fixed some anchor id problems for changeset ranges
Marcin Kuzminski <marcin@python-works.com>
parents:
1670
diff
changeset
|
36 convert_boolean_attrs, NotGiven, _make_safe_id_component |
698
4cd0709b6d4b
fixes #65, Added reset buttons to edit forms
Marcin Kuzminski <marcin@python-works.com>
parents:
668
diff
changeset
|
37 |
1753
1d1ccb873d00
moved soon-to-be-deleted code from vcs to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
1747
diff
changeset
|
38 from rhodecode.lib.annotate import annotate_highlight |
1101
c1080b42a7cb
fixed problem with int. chars in gravatars
Marcin Kuzminski <marcin@python-works.com>
parents:
1100
diff
changeset
|
39 from rhodecode.lib.utils import repo_name_slug |
1656
833f9dec0a06
implemented #44 - branch filtering in changelog, aka branch browser
Marcin Kuzminski <marcin@python-works.com>
parents:
1629
diff
changeset
|
40 from rhodecode.lib import str2bool, safe_unicode, safe_str, get_changeset_safe |
1101
c1080b42a7cb
fixed problem with int. chars in gravatars
Marcin Kuzminski <marcin@python-works.com>
parents:
1100
diff
changeset
|
41 |
1670
d2de0c2f02cd
#77 code review
Marcin Kuzminski <marcin@python-works.com>
parents:
1656
diff
changeset
|
42 from rhodecode.lib.markup_renderer import MarkupRenderer |
d2de0c2f02cd
#77 code review
Marcin Kuzminski <marcin@python-works.com>
parents:
1656
diff
changeset
|
43 |
698
4cd0709b6d4b
fixes #65, Added reset buttons to edit forms
Marcin Kuzminski <marcin@python-works.com>
parents:
668
diff
changeset
|
44 def _reset(name, value=None, id=NotGiven, type="reset", **attrs): |
1154
36fe593dfe4b
simplified str2bool, and moved safe_unicode out of helpers since it was not html specific function
Marcin Kuzminski <marcin@python-works.com>
parents:
1115
diff
changeset
|
45 """ |
36fe593dfe4b
simplified str2bool, and moved safe_unicode out of helpers since it was not html specific function
Marcin Kuzminski <marcin@python-works.com>
parents:
1115
diff
changeset
|
46 Reset button |
899
d65843e07d3c
Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents:
864
diff
changeset
|
47 """ |
698
4cd0709b6d4b
fixes #65, Added reset buttons to edit forms
Marcin Kuzminski <marcin@python-works.com>
parents:
668
diff
changeset
|
48 _set_input_attrs(attrs, type, name, value) |
4cd0709b6d4b
fixes #65, Added reset buttons to edit forms
Marcin Kuzminski <marcin@python-works.com>
parents:
668
diff
changeset
|
49 _set_id_attr(attrs, id, name) |
4cd0709b6d4b
fixes #65, Added reset buttons to edit forms
Marcin Kuzminski <marcin@python-works.com>
parents:
668
diff
changeset
|
50 convert_boolean_attrs(attrs, ["disabled"]) |
4cd0709b6d4b
fixes #65, Added reset buttons to edit forms
Marcin Kuzminski <marcin@python-works.com>
parents:
668
diff
changeset
|
51 return HTML.input(**attrs) |
4cd0709b6d4b
fixes #65, Added reset buttons to edit forms
Marcin Kuzminski <marcin@python-works.com>
parents:
668
diff
changeset
|
52 |
4cd0709b6d4b
fixes #65, Added reset buttons to edit forms
Marcin Kuzminski <marcin@python-works.com>
parents:
668
diff
changeset
|
53 reset = _reset |
1676
e86191684f4b
fixed some anchor id problems for changeset ranges
Marcin Kuzminski <marcin@python-works.com>
parents:
1670
diff
changeset
|
54 safeid = _make_safe_id_component |
734
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
55 |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
56 def get_token(): |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
57 """Return the current authentication token, creating one if one doesn't |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
58 already exist. |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
59 """ |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
60 token_key = "_authentication_token" |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
61 from pylons import session |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
62 if not token_key in session: |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
63 try: |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
64 token = hashlib.sha1(str(random.getrandbits(128))).hexdigest() |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
65 except AttributeError: # Python < 2.4 |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
66 token = hashlib.sha1(str(random.randrange(2 ** 128))).hexdigest() |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
67 session[token_key] = token |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
68 if hasattr(session, 'save'): |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
69 session.save() |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
70 return session[token_key] |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
71 |
0 | 72 class _GetError(object): |
899
d65843e07d3c
Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents:
864
diff
changeset
|
73 """Get error from form_errors, and represent it as span wrapped error |
d65843e07d3c
Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents:
864
diff
changeset
|
74 message |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1187
diff
changeset
|
75 |
899
d65843e07d3c
Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents:
864
diff
changeset
|
76 :param field_name: field to fetch errors for |
d65843e07d3c
Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents:
864
diff
changeset
|
77 :param form_errors: form errors dict |
d65843e07d3c
Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents:
864
diff
changeset
|
78 """ |
0 | 79 |
80 def __call__(self, field_name, form_errors): | |
81 tmpl = """<span class="error_msg">%s</span>""" | |
82 if form_errors and form_errors.has_key(field_name): | |
83 return literal(tmpl % form_errors.get(field_name)) | |
84 | |
281
cd2ee462fc2c
implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents:
278
diff
changeset
|
85 get_error = _GetError() |
cd2ee462fc2c
implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents:
278
diff
changeset
|
86 |
cd2ee462fc2c
implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents:
278
diff
changeset
|
87 class _ToolTip(object): |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
604
diff
changeset
|
88 |
281
cd2ee462fc2c
implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents:
278
diff
changeset
|
89 def __call__(self, tooltip_title, trim_at=50): |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1187
diff
changeset
|
90 """Special function just to wrap our text into nice formatted |
905
1294f2baf2bc
added wrapping of long tooltips in index page
Marcin Kuzminski <marcin@python-works.com>
parents:
904
diff
changeset
|
91 autowrapped text |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1187
diff
changeset
|
92 |
604
5cc96df705b9
fixed @repo into :repo for docs
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
93 :param tooltip_title: |
281
cd2ee462fc2c
implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents:
278
diff
changeset
|
94 """ |
1352
79041f2d16f4
wrap_paragraph was to slow for toolip generation and was removed.
Marcin Kuzminski <marcin@python-works.com>
parents:
1342
diff
changeset
|
95 return escape(tooltip_title) |
281
cd2ee462fc2c
implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents:
278
diff
changeset
|
96 tooltip = _ToolTip() |
cd2ee462fc2c
implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents:
278
diff
changeset
|
97 |
102
2dc0c8e4f384
Updated tempaltes, added file browser breadcrumbs, and feed icons
Marcin Kuzminski <marcin@python-works.com>
parents:
98
diff
changeset
|
98 class _FilesBreadCrumbs(object): |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
604
diff
changeset
|
99 |
102
2dc0c8e4f384
Updated tempaltes, added file browser breadcrumbs, and feed icons
Marcin Kuzminski <marcin@python-works.com>
parents:
98
diff
changeset
|
100 def __call__(self, repo_name, rev, paths): |
955
129eb072b8a8
fixes for #99, added casting to unicode for int chars as utf-8 files
Marcin Kuzminski <marcin@python-works.com>
parents:
953
diff
changeset
|
101 if isinstance(paths, str): |
1176
014c9a58a0d9
fixes for issues #137 and #116 safe_unicode is now default for handling file names
Marcin Kuzminski <marcin@python-works.com>
parents:
1171
diff
changeset
|
102 paths = safe_unicode(paths) |
287
5827c739b0bd
webhelpers breadcrumbs bugfix
Marcin Kuzminski <marcin@python-works.com>
parents:
286
diff
changeset
|
103 url_l = [link_to(repo_name, url('files_home', |
5827c739b0bd
webhelpers breadcrumbs bugfix
Marcin Kuzminski <marcin@python-works.com>
parents:
286
diff
changeset
|
104 repo_name=repo_name, |
5827c739b0bd
webhelpers breadcrumbs bugfix
Marcin Kuzminski <marcin@python-works.com>
parents:
286
diff
changeset
|
105 revision=rev, f_path=''))] |
5827c739b0bd
webhelpers breadcrumbs bugfix
Marcin Kuzminski <marcin@python-works.com>
parents:
286
diff
changeset
|
106 paths_l = paths.split('/') |
740
9279dfedcf93
fixed python2.5 incompatible enumerate calls
Marcin Kuzminski <marcin@python-works.com>
parents:
735
diff
changeset
|
107 for cnt, p in enumerate(paths_l): |
102
2dc0c8e4f384
Updated tempaltes, added file browser breadcrumbs, and feed icons
Marcin Kuzminski <marcin@python-works.com>
parents:
98
diff
changeset
|
108 if p != '': |
287
5827c739b0bd
webhelpers breadcrumbs bugfix
Marcin Kuzminski <marcin@python-works.com>
parents:
286
diff
changeset
|
109 url_l.append(link_to(p, url('files_home', |
5827c739b0bd
webhelpers breadcrumbs bugfix
Marcin Kuzminski <marcin@python-works.com>
parents:
286
diff
changeset
|
110 repo_name=repo_name, |
5827c739b0bd
webhelpers breadcrumbs bugfix
Marcin Kuzminski <marcin@python-works.com>
parents:
286
diff
changeset
|
111 revision=rev, |
740
9279dfedcf93
fixed python2.5 incompatible enumerate calls
Marcin Kuzminski <marcin@python-works.com>
parents:
735
diff
changeset
|
112 f_path='/'.join(paths_l[:cnt + 1])))) |
97
be0096a02772
added helper for filesize
Marcin Kuzminski <marcin@python-works.com>
parents:
94
diff
changeset
|
113 |
448
4679105ef03e
more css html fixes (+cleanups), rewrote definition list for files
Marcin Kuzminski <marcin@python-works.com>
parents:
444
diff
changeset
|
114 return literal('/'.join(url_l)) |
98
01d0f363f36d
added pygments webhelper
Marcin Kuzminski <marcin@python-works.com>
parents:
97
diff
changeset
|
115 |
281
cd2ee462fc2c
implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents:
278
diff
changeset
|
116 files_breadcrumbs = _FilesBreadCrumbs() |
899
d65843e07d3c
Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents:
864
diff
changeset
|
117 |
505
5aba7adff196
little gui change for file source
Marcin Kuzminski <marcin@python-works.com>
parents:
494
diff
changeset
|
118 class CodeHtmlFormatter(HtmlFormatter): |
966
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
119 """My code Html Formatter for source codes |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
120 """ |
281
cd2ee462fc2c
implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents:
278
diff
changeset
|
121 |
505
5aba7adff196
little gui change for file source
Marcin Kuzminski <marcin@python-works.com>
parents:
494
diff
changeset
|
122 def wrap(self, source, outfile): |
5aba7adff196
little gui change for file source
Marcin Kuzminski <marcin@python-works.com>
parents:
494
diff
changeset
|
123 return self._wrap_div(self._wrap_pre(self._wrap_code(source))) |
5aba7adff196
little gui change for file source
Marcin Kuzminski <marcin@python-works.com>
parents:
494
diff
changeset
|
124 |
5aba7adff196
little gui change for file source
Marcin Kuzminski <marcin@python-works.com>
parents:
494
diff
changeset
|
125 def _wrap_code(self, source): |
740
9279dfedcf93
fixed python2.5 incompatible enumerate calls
Marcin Kuzminski <marcin@python-works.com>
parents:
735
diff
changeset
|
126 for cnt, it in enumerate(source): |
505
5aba7adff196
little gui change for file source
Marcin Kuzminski <marcin@python-works.com>
parents:
494
diff
changeset
|
127 i, t = it |
966
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
128 t = '<div id="L%s">%s</div>' % (cnt + 1, t) |
505
5aba7adff196
little gui change for file source
Marcin Kuzminski <marcin@python-works.com>
parents:
494
diff
changeset
|
129 yield i, t |
966
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
130 |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
131 def _wrap_tablelinenos(self, inner): |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
132 dummyoutfile = StringIO.StringIO() |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
133 lncount = 0 |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
134 for t, line in inner: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
135 if t: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
136 lncount += 1 |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
137 dummyoutfile.write(line) |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
138 |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
139 fl = self.linenostart |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
140 mw = len(str(lncount + fl - 1)) |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
141 sp = self.linenospecial |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
142 st = self.linenostep |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
143 la = self.lineanchors |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
144 aln = self.anchorlinenos |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
145 nocls = self.noclasses |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
146 if sp: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
147 lines = [] |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
148 |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
149 for i in range(fl, fl + lncount): |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
150 if i % st == 0: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
151 if i % sp == 0: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
152 if aln: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
153 lines.append('<a href="#%s%d" class="special">%*d</a>' % |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
154 (la, i, mw, i)) |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
155 else: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
156 lines.append('<span class="special">%*d</span>' % (mw, i)) |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
157 else: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
158 if aln: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
159 lines.append('<a href="#%s%d">%*d</a>' % (la, i, mw, i)) |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
160 else: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
161 lines.append('%*d' % (mw, i)) |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
162 else: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
163 lines.append('') |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
164 ls = '\n'.join(lines) |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
165 else: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
166 lines = [] |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
167 for i in range(fl, fl + lncount): |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
168 if i % st == 0: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
169 if aln: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
170 lines.append('<a href="#%s%d">%*d</a>' % (la, i, mw, i)) |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
171 else: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
172 lines.append('%*d' % (mw, i)) |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
173 else: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
174 lines.append('') |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
175 ls = '\n'.join(lines) |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
176 |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
177 # in case you wonder about the seemingly redundant <div> here: since the |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
178 # content in the other cell also is wrapped in a div, some browsers in |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
179 # some configurations seem to mess up the formatting... |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
180 if nocls: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
181 yield 0, ('<table class="%stable">' % self.cssclass + |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
182 '<tr><td><div class="linenodiv" ' |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
183 'style="background-color: #f0f0f0; padding-right: 10px">' |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
184 '<pre style="line-height: 125%">' + |
1320
09c3fb460fcb
Fixed problem with anchor link positioning when passed in ranges.
Marcin Kuzminski <marcin@python-works.com>
parents:
1312
diff
changeset
|
185 ls + '</pre></div></td><td id="hlcode" class="code">') |
966
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
186 else: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
187 yield 0, ('<table class="%stable">' % self.cssclass + |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
188 '<tr><td class="linenos"><div class="linenodiv"><pre>' + |
1320
09c3fb460fcb
Fixed problem with anchor link positioning when passed in ranges.
Marcin Kuzminski <marcin@python-works.com>
parents:
1312
diff
changeset
|
189 ls + '</pre></div></td><td id="hlcode" class="code">') |
966
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
190 yield 0, dummyoutfile.getvalue() |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
191 yield 0, '</td></tr></table>' |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
192 |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
193 |
250
be4621c6de58
Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
Marcin Kuzminski <marcin@python-works.com>
parents:
165
diff
changeset
|
194 def pygmentize(filenode, **kwargs): |
899
d65843e07d3c
Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents:
864
diff
changeset
|
195 """pygmentize function using pygments |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1187
diff
changeset
|
196 |
604
5cc96df705b9
fixed @repo into :repo for docs
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
197 :param filenode: |
165
ea893ffb7f00
implemented pygmentize codes into webhelpers. Together with color_dict caching into pylons globals
Marcin Kuzminski <marcin@python-works.com>
parents:
104
diff
changeset
|
198 """ |
899
d65843e07d3c
Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents:
864
diff
changeset
|
199 |
450
c3236d7febad
fixed, empty cs bug.
Marcin Kuzminski <marcin@python-works.com>
parents:
448
diff
changeset
|
200 return literal(code_highlight(filenode.content, |
505
5aba7adff196
little gui change for file source
Marcin Kuzminski <marcin@python-works.com>
parents:
494
diff
changeset
|
201 filenode.lexer, CodeHtmlFormatter(**kwargs))) |
165
ea893ffb7f00
implemented pygmentize codes into webhelpers. Together with color_dict caching into pylons globals
Marcin Kuzminski <marcin@python-works.com>
parents:
104
diff
changeset
|
202 |
1171
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
203 def pygmentize_annotation(repo_name, filenode, **kwargs): |
899
d65843e07d3c
Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents:
864
diff
changeset
|
204 """pygmentize function for annotation |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1187
diff
changeset
|
205 |
604
5cc96df705b9
fixed @repo into :repo for docs
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
206 :param filenode: |
165
ea893ffb7f00
implemented pygmentize codes into webhelpers. Together with color_dict caching into pylons globals
Marcin Kuzminski <marcin@python-works.com>
parents:
104
diff
changeset
|
207 """ |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
604
diff
changeset
|
208 |
438
0d4fceb91c9c
fixes #24, added generator that generates equally distrybuted colors. Thus skipping creating one large coloring history.
Marcin Kuzminski <marcin@python-works.com>
parents:
428
diff
changeset
|
209 color_dict = {} |
947
99850ac883d1
Fixed whoosh daemon, for depracated walk method
Marcin Kuzminski <marcin@python-works.com>
parents:
946
diff
changeset
|
210 def gen_color(n=10000): |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1187
diff
changeset
|
211 """generator for getting n of evenly distributed colors using |
947
99850ac883d1
Fixed whoosh daemon, for depracated walk method
Marcin Kuzminski <marcin@python-works.com>
parents:
946
diff
changeset
|
212 hsv color and golden ratio. It always return same order of colors |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1187
diff
changeset
|
213 |
947
99850ac883d1
Fixed whoosh daemon, for depracated walk method
Marcin Kuzminski <marcin@python-works.com>
parents:
946
diff
changeset
|
214 :returns: RGB tuple |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
604
diff
changeset
|
215 """ |
1461
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
216 |
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
217 def hsv_to_rgb(h, s, v): |
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
218 if s == 0.0: return v, v, v |
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
219 i = int(h * 6.0) # XXX assume int() truncates! |
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
220 f = (h * 6.0) - i |
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
221 p = v * (1.0 - s) |
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
222 q = v * (1.0 - s * f) |
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
223 t = v * (1.0 - s * (1.0 - f)) |
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
224 i = i % 6 |
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
225 if i == 0: return v, t, p |
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
226 if i == 1: return q, v, p |
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
227 if i == 2: return p, v, t |
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
228 if i == 3: return p, q, v |
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
229 if i == 4: return t, p, v |
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
230 if i == 5: return v, p, q |
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
231 |
438
0d4fceb91c9c
fixes #24, added generator that generates equally distrybuted colors. Thus skipping creating one large coloring history.
Marcin Kuzminski <marcin@python-works.com>
parents:
428
diff
changeset
|
232 golden_ratio = 0.618033988749895 |
0d4fceb91c9c
fixes #24, added generator that generates equally distrybuted colors. Thus skipping creating one large coloring history.
Marcin Kuzminski <marcin@python-works.com>
parents:
428
diff
changeset
|
233 h = 0.22717784590367374 |
947
99850ac883d1
Fixed whoosh daemon, for depracated walk method
Marcin Kuzminski <marcin@python-works.com>
parents:
946
diff
changeset
|
234 |
1320
09c3fb460fcb
Fixed problem with anchor link positioning when passed in ranges.
Marcin Kuzminski <marcin@python-works.com>
parents:
1312
diff
changeset
|
235 for _ in xrange(n): |
450
c3236d7febad
fixed, empty cs bug.
Marcin Kuzminski <marcin@python-works.com>
parents:
448
diff
changeset
|
236 h += golden_ratio |
438
0d4fceb91c9c
fixes #24, added generator that generates equally distrybuted colors. Thus skipping creating one large coloring history.
Marcin Kuzminski <marcin@python-works.com>
parents:
428
diff
changeset
|
237 h %= 1 |
0d4fceb91c9c
fixes #24, added generator that generates equally distrybuted colors. Thus skipping creating one large coloring history.
Marcin Kuzminski <marcin@python-works.com>
parents:
428
diff
changeset
|
238 HSV_tuple = [h, 0.95, 0.95] |
1461
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
239 RGB_tuple = hsv_to_rgb(*HSV_tuple) |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
604
diff
changeset
|
240 yield map(lambda x:str(int(x * 256)), RGB_tuple) |
438
0d4fceb91c9c
fixes #24, added generator that generates equally distrybuted colors. Thus skipping creating one large coloring history.
Marcin Kuzminski <marcin@python-works.com>
parents:
428
diff
changeset
|
241 |
0d4fceb91c9c
fixes #24, added generator that generates equally distrybuted colors. Thus skipping creating one large coloring history.
Marcin Kuzminski <marcin@python-works.com>
parents:
428
diff
changeset
|
242 cgenerator = gen_color() |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
604
diff
changeset
|
243 |
165
ea893ffb7f00
implemented pygmentize codes into webhelpers. Together with color_dict caching into pylons globals
Marcin Kuzminski <marcin@python-works.com>
parents:
104
diff
changeset
|
244 def get_color_string(cs): |
ea893ffb7f00
implemented pygmentize codes into webhelpers. Together with color_dict caching into pylons globals
Marcin Kuzminski <marcin@python-works.com>
parents:
104
diff
changeset
|
245 if color_dict.has_key(cs): |
ea893ffb7f00
implemented pygmentize codes into webhelpers. Together with color_dict caching into pylons globals
Marcin Kuzminski <marcin@python-works.com>
parents:
104
diff
changeset
|
246 col = color_dict[cs] |
ea893ffb7f00
implemented pygmentize codes into webhelpers. Together with color_dict caching into pylons globals
Marcin Kuzminski <marcin@python-works.com>
parents:
104
diff
changeset
|
247 else: |
438
0d4fceb91c9c
fixes #24, added generator that generates equally distrybuted colors. Thus skipping creating one large coloring history.
Marcin Kuzminski <marcin@python-works.com>
parents:
428
diff
changeset
|
248 col = color_dict[cs] = cgenerator.next() |
0d4fceb91c9c
fixes #24, added generator that generates equally distrybuted colors. Thus skipping creating one large coloring history.
Marcin Kuzminski <marcin@python-works.com>
parents:
428
diff
changeset
|
249 return "color: rgb(%s)! important;" % (', '.join(col)) |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
604
diff
changeset
|
250 |
1171
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
251 def url_func(repo_name): |
1352
79041f2d16f4
wrap_paragraph was to slow for toolip generation and was removed.
Marcin Kuzminski <marcin@python-works.com>
parents:
1342
diff
changeset
|
252 |
1171
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
253 def _url_func(changeset): |
1352
79041f2d16f4
wrap_paragraph was to slow for toolip generation and was removed.
Marcin Kuzminski <marcin@python-works.com>
parents:
1342
diff
changeset
|
254 author = changeset.author |
79041f2d16f4
wrap_paragraph was to slow for toolip generation and was removed.
Marcin Kuzminski <marcin@python-works.com>
parents:
1342
diff
changeset
|
255 date = changeset.date |
79041f2d16f4
wrap_paragraph was to slow for toolip generation and was removed.
Marcin Kuzminski <marcin@python-works.com>
parents:
1342
diff
changeset
|
256 message = tooltip(changeset.message) |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
604
diff
changeset
|
257 |
1352
79041f2d16f4
wrap_paragraph was to slow for toolip generation and was removed.
Marcin Kuzminski <marcin@python-works.com>
parents:
1342
diff
changeset
|
258 tooltip_html = ("<div style='font-size:0.8em'><b>Author:</b>" |
79041f2d16f4
wrap_paragraph was to slow for toolip generation and was removed.
Marcin Kuzminski <marcin@python-works.com>
parents:
1342
diff
changeset
|
259 " %s<br/><b>Date:</b> %s</b><br/><b>Message:" |
79041f2d16f4
wrap_paragraph was to slow for toolip generation and was removed.
Marcin Kuzminski <marcin@python-works.com>
parents:
1342
diff
changeset
|
260 "</b> %s<br/></div>") |
79041f2d16f4
wrap_paragraph was to slow for toolip generation and was removed.
Marcin Kuzminski <marcin@python-works.com>
parents:
1342
diff
changeset
|
261 |
79041f2d16f4
wrap_paragraph was to slow for toolip generation and was removed.
Marcin Kuzminski <marcin@python-works.com>
parents:
1342
diff
changeset
|
262 tooltip_html = tooltip_html % (author, date, message) |
1171
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
263 lnk_format = '%5s:%s' % ('r%s' % changeset.revision, |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
264 short_id(changeset.raw_id)) |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
265 uri = link_to( |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
266 lnk_format, |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
267 url('changeset_home', repo_name=repo_name, |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
268 revision=changeset.raw_id), |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
269 style=get_color_string(changeset.raw_id), |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
270 class_='tooltip', |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
271 title=tooltip_html |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
272 ) |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
604
diff
changeset
|
273 |
1171
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
274 uri += '\n' |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
275 return uri |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
276 return _url_func |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
277 |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
278 return literal(annotate_highlight(filenode, url_func(repo_name), **kwargs)) |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
604
diff
changeset
|
279 |
999
1951c35483ab
fixed following js snipet. It' can be called multiple times now next to each repository
Marcin Kuzminski <marcin@python-works.com>
parents:
995
diff
changeset
|
280 def is_following_repo(repo_name, user_id): |
1951c35483ab
fixed following js snipet. It' can be called multiple times now next to each repository
Marcin Kuzminski <marcin@python-works.com>
parents:
995
diff
changeset
|
281 from rhodecode.model.scm import ScmModel |
1951c35483ab
fixed following js snipet. It' can be called multiple times now next to each repository
Marcin Kuzminski <marcin@python-works.com>
parents:
995
diff
changeset
|
282 return ScmModel().is_following_repo(repo_name, user_id) |
1951c35483ab
fixed following js snipet. It' can be called multiple times now next to each repository
Marcin Kuzminski <marcin@python-works.com>
parents:
995
diff
changeset
|
283 |
0 | 284 flash = _Flash() |
282
237470e64bb8
switched filters into webhelpers for easy of usage.
Marcin Kuzminski <marcin@python-works.com>
parents:
281
diff
changeset
|
285 |
635
fd63782c4426
Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents:
631
diff
changeset
|
286 #============================================================================== |
1356
eec4defdf2b8
Make rhodecode use author/username filter from vcs instead of mercurial
Marcin Kuzminski <marcin@python-works.com>
parents:
1352
diff
changeset
|
287 # SCM FILTERS available via h. |
635
fd63782c4426
Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents:
631
diff
changeset
|
288 #============================================================================== |
1356
eec4defdf2b8
Make rhodecode use author/username filter from vcs instead of mercurial
Marcin Kuzminski <marcin@python-works.com>
parents:
1352
diff
changeset
|
289 from vcs.utils import author_name, author_email |
1373
66f03a87141c
Fixes issue #201
Marcin Kuzminski <marcin@python-works.com>
parents:
1366
diff
changeset
|
290 from rhodecode.lib import credentials_filter, age as _age |
282
237470e64bb8
switched filters into webhelpers for easy of usage.
Marcin Kuzminski <marcin@python-works.com>
parents:
281
diff
changeset
|
291 |
635
fd63782c4426
Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents:
631
diff
changeset
|
292 age = lambda x:_age(x) |
282
237470e64bb8
switched filters into webhelpers for easy of usage.
Marcin Kuzminski <marcin@python-works.com>
parents:
281
diff
changeset
|
293 capitalize = lambda x: x.capitalize() |
1356
eec4defdf2b8
Make rhodecode use author/username filter from vcs instead of mercurial
Marcin Kuzminski <marcin@python-works.com>
parents:
1352
diff
changeset
|
294 email = author_email |
eec4defdf2b8
Make rhodecode use author/username filter from vcs instead of mercurial
Marcin Kuzminski <marcin@python-works.com>
parents:
1352
diff
changeset
|
295 email_or_none = lambda x: email(x) if email(x) != x else None |
eec4defdf2b8
Make rhodecode use author/username filter from vcs instead of mercurial
Marcin Kuzminski <marcin@python-works.com>
parents:
1352
diff
changeset
|
296 person = lambda x: author_name(x) |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
635
diff
changeset
|
297 short_id = lambda x: x[:12] |
1373
66f03a87141c
Fixes issue #201
Marcin Kuzminski <marcin@python-works.com>
parents:
1366
diff
changeset
|
298 hide_credentials = lambda x: ''.join(credentials_filter(x)) |
660
df61378032f3
#48 rewrote action logger, translated action logger messages, added some extra messages. Linked and showed pushed revisions in logs
Marcin Kuzminski <marcin@python-works.com>
parents:
653
diff
changeset
|
299 |
712
131c1e335fa7
Added ldap info on admin users, added bool2icon helper for nicer representation of
Marcin Kuzminski <marcin@python-works.com>
parents:
698
diff
changeset
|
300 def bool2icon(value): |
899
d65843e07d3c
Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents:
864
diff
changeset
|
301 """Returns True/False values represented as small html image of true/false |
712
131c1e335fa7
Added ldap info on admin users, added bool2icon helper for nicer representation of
Marcin Kuzminski <marcin@python-works.com>
parents:
698
diff
changeset
|
302 icons |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1187
diff
changeset
|
303 |
712
131c1e335fa7
Added ldap info on admin users, added bool2icon helper for nicer representation of
Marcin Kuzminski <marcin@python-works.com>
parents:
698
diff
changeset
|
304 :param value: bool value |
131c1e335fa7
Added ldap info on admin users, added bool2icon helper for nicer representation of
Marcin Kuzminski <marcin@python-works.com>
parents:
698
diff
changeset
|
305 """ |
131c1e335fa7
Added ldap info on admin users, added bool2icon helper for nicer representation of
Marcin Kuzminski <marcin@python-works.com>
parents:
698
diff
changeset
|
306 |
131c1e335fa7
Added ldap info on admin users, added bool2icon helper for nicer representation of
Marcin Kuzminski <marcin@python-works.com>
parents:
698
diff
changeset
|
307 if value is True: |
1050
cabe887a9829
removed obsolete _static flag from url, and fixed urls in webhelpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1045
diff
changeset
|
308 return HTML.tag('img', src=url("/images/icons/accept.png"), |
cabe887a9829
removed obsolete _static flag from url, and fixed urls in webhelpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1045
diff
changeset
|
309 alt=_('True')) |
712
131c1e335fa7
Added ldap info on admin users, added bool2icon helper for nicer representation of
Marcin Kuzminski <marcin@python-works.com>
parents:
698
diff
changeset
|
310 |
131c1e335fa7
Added ldap info on admin users, added bool2icon helper for nicer representation of
Marcin Kuzminski <marcin@python-works.com>
parents:
698
diff
changeset
|
311 if value is False: |
1050
cabe887a9829
removed obsolete _static flag from url, and fixed urls in webhelpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1045
diff
changeset
|
312 return HTML.tag('img', src=url("/images/icons/cancel.png"), |
cabe887a9829
removed obsolete _static flag from url, and fixed urls in webhelpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1045
diff
changeset
|
313 alt=_('False')) |
712
131c1e335fa7
Added ldap info on admin users, added bool2icon helper for nicer representation of
Marcin Kuzminski <marcin@python-works.com>
parents:
698
diff
changeset
|
314 |
131c1e335fa7
Added ldap info on admin users, added bool2icon helper for nicer representation of
Marcin Kuzminski <marcin@python-works.com>
parents:
698
diff
changeset
|
315 return value |
131c1e335fa7
Added ldap info on admin users, added bool2icon helper for nicer representation of
Marcin Kuzminski <marcin@python-works.com>
parents:
698
diff
changeset
|
316 |
131c1e335fa7
Added ldap info on admin users, added bool2icon helper for nicer representation of
Marcin Kuzminski <marcin@python-works.com>
parents:
698
diff
changeset
|
317 |
1087
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
318 def action_parser(user_log, feed=False): |
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
319 """This helper will action_map the specified string action into translated |
660
df61378032f3
#48 rewrote action logger, translated action logger messages, added some extra messages. Linked and showed pushed revisions in logs
Marcin Kuzminski <marcin@python-works.com>
parents:
653
diff
changeset
|
320 fancy names with icons and links |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1187
diff
changeset
|
321 |
899
d65843e07d3c
Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents:
864
diff
changeset
|
322 :param user_log: user log instance |
1087
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
323 :param feed: use output for feeds (no html and fancy icons) |
660
df61378032f3
#48 rewrote action logger, translated action logger messages, added some extra messages. Linked and showed pushed revisions in logs
Marcin Kuzminski <marcin@python-works.com>
parents:
653
diff
changeset
|
324 """ |
899
d65843e07d3c
Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents:
864
diff
changeset
|
325 |
660
df61378032f3
#48 rewrote action logger, translated action logger messages, added some extra messages. Linked and showed pushed revisions in logs
Marcin Kuzminski <marcin@python-works.com>
parents:
653
diff
changeset
|
326 action = user_log.action |
840
ee6f345736a6
action logger upgrade, for working with migrations
Marcin Kuzminski <marcin@python-works.com>
parents:
817
diff
changeset
|
327 action_params = ' ' |
660
df61378032f3
#48 rewrote action logger, translated action logger messages, added some extra messages. Linked and showed pushed revisions in logs
Marcin Kuzminski <marcin@python-works.com>
parents:
653
diff
changeset
|
328 |
df61378032f3
#48 rewrote action logger, translated action logger messages, added some extra messages. Linked and showed pushed revisions in logs
Marcin Kuzminski <marcin@python-works.com>
parents:
653
diff
changeset
|
329 x = action.split(':') |
df61378032f3
#48 rewrote action logger, translated action logger messages, added some extra messages. Linked and showed pushed revisions in logs
Marcin Kuzminski <marcin@python-works.com>
parents:
653
diff
changeset
|
330 |
df61378032f3
#48 rewrote action logger, translated action logger messages, added some extra messages. Linked and showed pushed revisions in logs
Marcin Kuzminski <marcin@python-works.com>
parents:
653
diff
changeset
|
331 if len(x) > 1: |
df61378032f3
#48 rewrote action logger, translated action logger messages, added some extra messages. Linked and showed pushed revisions in logs
Marcin Kuzminski <marcin@python-works.com>
parents:
653
diff
changeset
|
332 action, action_params = x |
df61378032f3
#48 rewrote action logger, translated action logger messages, added some extra messages. Linked and showed pushed revisions in logs
Marcin Kuzminski <marcin@python-works.com>
parents:
653
diff
changeset
|
333 |
718
7df3855bf6c7
Added fork name to journal
Marcin Kuzminski <marcin@python-works.com>
parents:
714
diff
changeset
|
334 def get_cs_links(): |
1421
c6b811f11c94
Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
1401
diff
changeset
|
335 revs_limit = 3 #display this amount always |
953
def3578dac8c
fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents:
947
diff
changeset
|
336 revs_top_limit = 50 #show upto this amount of changesets hidden |
def3578dac8c
fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents:
947
diff
changeset
|
337 revs = action_params.split(',') |
def3578dac8c
fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents:
947
diff
changeset
|
338 repo_name = user_log.repository.repo_name |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1041
diff
changeset
|
339 |
953
def3578dac8c
fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents:
947
diff
changeset
|
340 from rhodecode.model.scm import ScmModel |
1366
9c0f5d558789
fixes #200, rewrote the whole caching mechanism to get rid of such problems. Now cached instances are attached
Marcin Kuzminski <marcin@python-works.com>
parents:
1359
diff
changeset
|
341 repo = user_log.repository.scm_instance |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1041
diff
changeset
|
342 |
1040
8e49b6ceffe1
fixes fixes fixes ! optimized queries on journal
Marcin Kuzminski <marcin@python-works.com>
parents:
1038
diff
changeset
|
343 message = lambda rev: get_changeset_safe(repo, rev).message |
1359
54fc83f2192c
Removed all string concat for exchange of ''.join()
Marcin Kuzminski <marcin@python-works.com>
parents:
1356
diff
changeset
|
344 cs_links = [] |
54fc83f2192c
Removed all string concat for exchange of ''.join()
Marcin Kuzminski <marcin@python-works.com>
parents:
1356
diff
changeset
|
345 cs_links.append(" " + ', '.join ([link_to(rev, |
953
def3578dac8c
fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents:
947
diff
changeset
|
346 url('changeset_home', |
def3578dac8c
fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents:
947
diff
changeset
|
347 repo_name=repo_name, |
def3578dac8c
fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents:
947
diff
changeset
|
348 revision=rev), title=tooltip(message(rev)), |
1359
54fc83f2192c
Removed all string concat for exchange of ''.join()
Marcin Kuzminski <marcin@python-works.com>
parents:
1356
diff
changeset
|
349 class_='tooltip') for rev in revs[:revs_limit] ])) |
1009
eafe5ae429ea
Added compare view into journal, fixed wrong function call to show compare view
Marcin Kuzminski <marcin@python-works.com>
parents:
999
diff
changeset
|
350 |
eafe5ae429ea
Added compare view into journal, fixed wrong function call to show compare view
Marcin Kuzminski <marcin@python-works.com>
parents:
999
diff
changeset
|
351 compare_view = (' <div class="compare_view tooltip" title="%s">' |
eafe5ae429ea
Added compare view into journal, fixed wrong function call to show compare view
Marcin Kuzminski <marcin@python-works.com>
parents:
999
diff
changeset
|
352 '<a href="%s">%s</a> ' |
eafe5ae429ea
Added compare view into journal, fixed wrong function call to show compare view
Marcin Kuzminski <marcin@python-works.com>
parents:
999
diff
changeset
|
353 '</div>' % (_('Show all combined changesets %s->%s' \ |
eafe5ae429ea
Added compare view into journal, fixed wrong function call to show compare view
Marcin Kuzminski <marcin@python-works.com>
parents:
999
diff
changeset
|
354 % (revs[0], revs[-1])), |
eafe5ae429ea
Added compare view into journal, fixed wrong function call to show compare view
Marcin Kuzminski <marcin@python-works.com>
parents:
999
diff
changeset
|
355 url('changeset_home', repo_name=repo_name, |
eafe5ae429ea
Added compare view into journal, fixed wrong function call to show compare view
Marcin Kuzminski <marcin@python-works.com>
parents:
999
diff
changeset
|
356 revision='%s...%s' % (revs[0], revs[-1]) |
eafe5ae429ea
Added compare view into journal, fixed wrong function call to show compare view
Marcin Kuzminski <marcin@python-works.com>
parents:
999
diff
changeset
|
357 ), |
eafe5ae429ea
Added compare view into journal, fixed wrong function call to show compare view
Marcin Kuzminski <marcin@python-works.com>
parents:
999
diff
changeset
|
358 _('compare view')) |
eafe5ae429ea
Added compare view into journal, fixed wrong function call to show compare view
Marcin Kuzminski <marcin@python-works.com>
parents:
999
diff
changeset
|
359 ) |
eafe5ae429ea
Added compare view into journal, fixed wrong function call to show compare view
Marcin Kuzminski <marcin@python-works.com>
parents:
999
diff
changeset
|
360 |
953
def3578dac8c
fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents:
947
diff
changeset
|
361 if len(revs) > revs_limit: |
def3578dac8c
fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents:
947
diff
changeset
|
362 uniq_id = revs[0] |
def3578dac8c
fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents:
947
diff
changeset
|
363 html_tmpl = ('<span> %s ' |
995
d14723711d17
fixes for journal, added paging now it's possible to view whole journal
Marcin Kuzminski <marcin@python-works.com>
parents:
990
diff
changeset
|
364 '<a class="show_more" id="_%s" href="#more">%s</a> ' |
953
def3578dac8c
fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents:
947
diff
changeset
|
365 '%s</span>') |
1087
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
366 if not feed: |
1359
54fc83f2192c
Removed all string concat for exchange of ''.join()
Marcin Kuzminski <marcin@python-works.com>
parents:
1356
diff
changeset
|
367 cs_links.append(html_tmpl % (_('and'), uniq_id, _('%s more') \ |
953
def3578dac8c
fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents:
947
diff
changeset
|
368 % (len(revs) - revs_limit), |
1359
54fc83f2192c
Removed all string concat for exchange of ''.join()
Marcin Kuzminski <marcin@python-works.com>
parents:
1356
diff
changeset
|
369 _('revisions'))) |
808
1af15d66838f
added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents:
790
diff
changeset
|
370 |
1087
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
371 if not feed: |
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
372 html_tmpl = '<span id="%s" style="display:none"> %s </span>' |
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
373 else: |
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
374 html_tmpl = '<span id="%s"> %s </span>' |
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
375 |
1359
54fc83f2192c
Removed all string concat for exchange of ''.join()
Marcin Kuzminski <marcin@python-works.com>
parents:
1356
diff
changeset
|
376 cs_links.append(html_tmpl % (uniq_id, ', '.join([link_to(rev, |
953
def3578dac8c
fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents:
947
diff
changeset
|
377 url('changeset_home', |
def3578dac8c
fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents:
947
diff
changeset
|
378 repo_name=repo_name, revision=rev), |
def3578dac8c
fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents:
947
diff
changeset
|
379 title=message(rev), class_='tooltip') |
1359
54fc83f2192c
Removed all string concat for exchange of ''.join()
Marcin Kuzminski <marcin@python-works.com>
parents:
1356
diff
changeset
|
380 for rev in revs[revs_limit:revs_top_limit]]))) |
1024
22c147726ea6
hidden compare view link for single revision push
Marcin Kuzminski <marcin@python-works.com>
parents:
1022
diff
changeset
|
381 if len(revs) > 1: |
1359
54fc83f2192c
Removed all string concat for exchange of ''.join()
Marcin Kuzminski <marcin@python-works.com>
parents:
1356
diff
changeset
|
382 cs_links.append(compare_view) |
54fc83f2192c
Removed all string concat for exchange of ''.join()
Marcin Kuzminski <marcin@python-works.com>
parents:
1356
diff
changeset
|
383 return ''.join(cs_links) |
734
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
384 |
718
7df3855bf6c7
Added fork name to journal
Marcin Kuzminski <marcin@python-works.com>
parents:
714
diff
changeset
|
385 def get_fork_name(): |
953
def3578dac8c
fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents:
947
diff
changeset
|
386 repo_name = action_params |
1055
903aadbf9047
updated changelog, small fix for journal
Marcin Kuzminski <marcin@python-works.com>
parents:
1053
diff
changeset
|
387 return _('fork name ') + str(link_to(action_params, url('summary_home', |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1041
diff
changeset
|
388 repo_name=repo_name,))) |
953
def3578dac8c
fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents:
947
diff
changeset
|
389 |
1087
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
390 action_map = {'user_deleted_repo':(_('[deleted] repository'), None), |
1041
98be43b888c4
Updated new Journal with users and dates aggregates
Marcin Kuzminski <marcin@python-works.com>
parents:
1040
diff
changeset
|
391 'user_created_repo':(_('[created] repository'), None), |
1747
8804715404c9
implements #193 journal stores information about deleting of repos
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
392 'user_created_fork':(_('[created] repository as fork'), None), |
1055
903aadbf9047
updated changelog, small fix for journal
Marcin Kuzminski <marcin@python-works.com>
parents:
1053
diff
changeset
|
393 'user_forked_repo':(_('[forked] repository'), get_fork_name), |
1041
98be43b888c4
Updated new Journal with users and dates aggregates
Marcin Kuzminski <marcin@python-works.com>
parents:
1040
diff
changeset
|
394 'user_updated_repo':(_('[updated] repository'), None), |
98be43b888c4
Updated new Journal with users and dates aggregates
Marcin Kuzminski <marcin@python-works.com>
parents:
1040
diff
changeset
|
395 'admin_deleted_repo':(_('[delete] repository'), None), |
98be43b888c4
Updated new Journal with users and dates aggregates
Marcin Kuzminski <marcin@python-works.com>
parents:
1040
diff
changeset
|
396 'admin_created_repo':(_('[created] repository'), None), |
98be43b888c4
Updated new Journal with users and dates aggregates
Marcin Kuzminski <marcin@python-works.com>
parents:
1040
diff
changeset
|
397 'admin_forked_repo':(_('[forked] repository'), None), |
98be43b888c4
Updated new Journal with users and dates aggregates
Marcin Kuzminski <marcin@python-works.com>
parents:
1040
diff
changeset
|
398 'admin_updated_repo':(_('[updated] repository'), None), |
1052
c96651aebd8a
fixed journal look & feel
Marcin Kuzminski <marcin@python-works.com>
parents:
1050
diff
changeset
|
399 'push':(_('[pushed] into'), get_cs_links), |
1312
70a5a9a57864
logged local commit with special action via action_logger,
Marcin Kuzminski <marcin@python-works.com>
parents:
1259
diff
changeset
|
400 'push_local':(_('[committed via RhodeCode] into'), get_cs_links), |
1114
4de3fa6290a7
#109, added manual pull of changes for repositories that have remote location filled in.
Marcin Kuzminski <marcin@python-works.com>
parents:
1105
diff
changeset
|
401 'push_remote':(_('[pulled from remote] into'), get_cs_links), |
1053
aa01004399a5
typo fix for journal action
Marcin Kuzminski <marcin@python-works.com>
parents:
1052
diff
changeset
|
402 'pull':(_('[pulled] from'), None), |
1041
98be43b888c4
Updated new Journal with users and dates aggregates
Marcin Kuzminski <marcin@python-works.com>
parents:
1040
diff
changeset
|
403 'started_following_repo':(_('[started following] repository'), None), |
98be43b888c4
Updated new Journal with users and dates aggregates
Marcin Kuzminski <marcin@python-works.com>
parents:
1040
diff
changeset
|
404 'stopped_following_repo':(_('[stopped following] repository'), None), |
735
dbec976d9975
added action loggers to following repositories,
Marcin Kuzminski <marcin@python-works.com>
parents:
734
diff
changeset
|
405 } |
660
df61378032f3
#48 rewrote action logger, translated action logger messages, added some extra messages. Linked and showed pushed revisions in logs
Marcin Kuzminski <marcin@python-works.com>
parents:
653
diff
changeset
|
406 |
1087
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
407 action_str = action_map.get(action, action) |
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
408 if feed: |
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
409 action = action_str[0].replace('[', '').replace(']', '') |
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
410 else: |
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
411 action = action_str[0].replace('[', '<span class="journal_highlight">')\ |
953
def3578dac8c
fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents:
947
diff
changeset
|
412 .replace(']', '</span>') |
1114
4de3fa6290a7
#109, added manual pull of changes for repositories that have remote location filled in.
Marcin Kuzminski <marcin@python-works.com>
parents:
1105
diff
changeset
|
413 |
1052
c96651aebd8a
fixed journal look & feel
Marcin Kuzminski <marcin@python-works.com>
parents:
1050
diff
changeset
|
414 action_params_func = lambda :"" |
c96651aebd8a
fixed journal look & feel
Marcin Kuzminski <marcin@python-works.com>
parents:
1050
diff
changeset
|
415 |
1114
4de3fa6290a7
#109, added manual pull of changes for repositories that have remote location filled in.
Marcin Kuzminski <marcin@python-works.com>
parents:
1105
diff
changeset
|
416 if callable(action_str[1]): |
1052
c96651aebd8a
fixed journal look & feel
Marcin Kuzminski <marcin@python-works.com>
parents:
1050
diff
changeset
|
417 action_params_func = action_str[1] |
953
def3578dac8c
fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents:
947
diff
changeset
|
418 |
1052
c96651aebd8a
fixed journal look & feel
Marcin Kuzminski <marcin@python-works.com>
parents:
1050
diff
changeset
|
419 return [literal(action), action_params_func] |
808
1af15d66838f
added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents:
790
diff
changeset
|
420 |
1af15d66838f
added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents:
790
diff
changeset
|
421 def action_parser_icon(user_log): |
1af15d66838f
added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents:
790
diff
changeset
|
422 action = user_log.action |
1af15d66838f
added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents:
790
diff
changeset
|
423 action_params = None |
1af15d66838f
added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents:
790
diff
changeset
|
424 x = action.split(':') |
1af15d66838f
added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents:
790
diff
changeset
|
425 |
1af15d66838f
added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents:
790
diff
changeset
|
426 if len(x) > 1: |
1af15d66838f
added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents:
790
diff
changeset
|
427 action, action_params = x |
1af15d66838f
added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents:
790
diff
changeset
|
428 |
1114
4de3fa6290a7
#109, added manual pull of changes for repositories that have remote location filled in.
Marcin Kuzminski <marcin@python-works.com>
parents:
1105
diff
changeset
|
429 tmpl = """<img src="%s%s" alt="%s"/>""" |
808
1af15d66838f
added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents:
790
diff
changeset
|
430 map = {'user_deleted_repo':'database_delete.png', |
1af15d66838f
added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents:
790
diff
changeset
|
431 'user_created_repo':'database_add.png', |
1747
8804715404c9
implements #193 journal stores information about deleting of repos
Marcin Kuzminski <marcin@python-works.com>
parents:
1716
diff
changeset
|
432 'user_created_fork':'arrow_divide.png', |
808
1af15d66838f
added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents:
790
diff
changeset
|
433 'user_forked_repo':'arrow_divide.png', |
1af15d66838f
added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents:
790
diff
changeset
|
434 'user_updated_repo':'database_edit.png', |
1af15d66838f
added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents:
790
diff
changeset
|
435 'admin_deleted_repo':'database_delete.png', |
899
d65843e07d3c
Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents:
864
diff
changeset
|
436 'admin_created_repo':'database_add.png', |
808
1af15d66838f
added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents:
790
diff
changeset
|
437 'admin_forked_repo':'arrow_divide.png', |
1af15d66838f
added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents:
790
diff
changeset
|
438 'admin_updated_repo':'database_edit.png', |
1af15d66838f
added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents:
790
diff
changeset
|
439 'push':'script_add.png', |
1312
70a5a9a57864
logged local commit with special action via action_logger,
Marcin Kuzminski <marcin@python-works.com>
parents:
1259
diff
changeset
|
440 'push_local':'script_edit.png', |
1114
4de3fa6290a7
#109, added manual pull of changes for repositories that have remote location filled in.
Marcin Kuzminski <marcin@python-works.com>
parents:
1105
diff
changeset
|
441 'push_remote':'connect.png', |
808
1af15d66838f
added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents:
790
diff
changeset
|
442 'pull':'down_16.png', |
1af15d66838f
added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents:
790
diff
changeset
|
443 'started_following_repo':'heart_add.png', |
1af15d66838f
added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents:
790
diff
changeset
|
444 'stopped_following_repo':'heart_delete.png', |
1af15d66838f
added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents:
790
diff
changeset
|
445 } |
1050
cabe887a9829
removed obsolete _static flag from url, and fixed urls in webhelpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1045
diff
changeset
|
446 return literal(tmpl % ((url('/images/icons/')), |
cabe887a9829
removed obsolete _static flag from url, and fixed urls in webhelpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1045
diff
changeset
|
447 map.get(action, action), action)) |
660
df61378032f3
#48 rewrote action logger, translated action logger messages, added some extra messages. Linked and showed pushed revisions in logs
Marcin Kuzminski <marcin@python-works.com>
parents:
653
diff
changeset
|
448 |
df61378032f3
#48 rewrote action logger, translated action logger messages, added some extra messages. Linked and showed pushed revisions in logs
Marcin Kuzminski <marcin@python-works.com>
parents:
653
diff
changeset
|
449 |
635
fd63782c4426
Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents:
631
diff
changeset
|
450 #============================================================================== |
307
504feff57b49
added permission functions to webhelpers, updated dbmanage permissions
Marcin Kuzminski <marcin@python-works.com>
parents:
293
diff
changeset
|
451 # PERMS |
635
fd63782c4426
Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents:
631
diff
changeset
|
452 #============================================================================== |
547
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
512
diff
changeset
|
453 from rhodecode.lib.auth import HasPermissionAny, HasPermissionAll, \ |
307
504feff57b49
added permission functions to webhelpers, updated dbmanage permissions
Marcin Kuzminski <marcin@python-works.com>
parents:
293
diff
changeset
|
454 HasRepoPermissionAny, HasRepoPermissionAll |
282
237470e64bb8
switched filters into webhelpers for easy of usage.
Marcin Kuzminski <marcin@python-works.com>
parents:
281
diff
changeset
|
455 |
635
fd63782c4426
Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents:
631
diff
changeset
|
456 #============================================================================== |
398
8c50b164fb58
Implemented basic gravatar support on admin pages only for now
Marcin Kuzminski <marcin@python-works.com>
parents:
307
diff
changeset
|
457 # GRAVATAR URL |
635
fd63782c4426
Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents:
631
diff
changeset
|
458 #============================================================================== |
282
237470e64bb8
switched filters into webhelpers for easy of usage.
Marcin Kuzminski <marcin@python-works.com>
parents:
281
diff
changeset
|
459 |
401
b1debb6c5a09
implemented gravatars to changesets, updated styling for changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
400
diff
changeset
|
460 def gravatar_url(email_address, size=30): |
1629
2196aa27954b
implements #293 gravatar link should be disabled when use_gravatar = false
Marcin Kuzminski <marcin@python-works.com>
parents:
1621
diff
changeset
|
461 if (not str2bool(config['app_conf'].get('use_gravatar')) or |
2196aa27954b
implements #293 gravatar link should be disabled when use_gravatar = false
Marcin Kuzminski <marcin@python-works.com>
parents:
1621
diff
changeset
|
462 not email_address or email_address == 'anonymous@rhodecode.org'): |
1478
236090bf758f
Fixed user avatar display when gravatar use is disabled
Liad Shani <liadff@gmail.com>
parents:
1466
diff
changeset
|
463 return url("/images/user%s.png" % size) |
1110
5351a3a32381
#21 added optional flag to disable gravatar, and use local icon
Marcin Kuzminski <marcin@python-works.com>
parents:
1105
diff
changeset
|
464 |
946
f12cd4707301
patched gravatar url generation to properly support new https force flag from settings.
Marcin Kuzminski <marcin@python-works.com>
parents:
911
diff
changeset
|
465 ssl_enabled = 'https' == request.environ.get('wsgi.url_scheme') |
398
8c50b164fb58
Implemented basic gravatar support on admin pages only for now
Marcin Kuzminski <marcin@python-works.com>
parents:
307
diff
changeset
|
466 default = 'identicon' |
8c50b164fb58
Implemented basic gravatar support on admin pages only for now
Marcin Kuzminski <marcin@python-works.com>
parents:
307
diff
changeset
|
467 baseurl_nossl = "http://www.gravatar.com/avatar/" |
8c50b164fb58
Implemented basic gravatar support on admin pages only for now
Marcin Kuzminski <marcin@python-works.com>
parents:
307
diff
changeset
|
468 baseurl_ssl = "https://secure.gravatar.com/avatar/" |
8c50b164fb58
Implemented basic gravatar support on admin pages only for now
Marcin Kuzminski <marcin@python-works.com>
parents:
307
diff
changeset
|
469 baseurl = baseurl_ssl if ssl_enabled else baseurl_nossl |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
604
diff
changeset
|
470 |
1101
c1080b42a7cb
fixed problem with int. chars in gravatars
Marcin Kuzminski <marcin@python-works.com>
parents:
1100
diff
changeset
|
471 if isinstance(email_address, unicode): |
c1080b42a7cb
fixed problem with int. chars in gravatars
Marcin Kuzminski <marcin@python-works.com>
parents:
1100
diff
changeset
|
472 #hashlib crashes on unicode items |
1401
b7563ad4e7ee
Unicode fixes, added safe_str method for global str() operations +better test sandboxing
Marcin Kuzminski <marcin@python-works.com>
parents:
1373
diff
changeset
|
473 email_address = safe_str(email_address) |
398
8c50b164fb58
Implemented basic gravatar support on admin pages only for now
Marcin Kuzminski <marcin@python-works.com>
parents:
307
diff
changeset
|
474 # construct the url |
401
b1debb6c5a09
implemented gravatars to changesets, updated styling for changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
400
diff
changeset
|
475 gravatar_url = baseurl + hashlib.md5(email_address.lower()).hexdigest() + "?" |
398
8c50b164fb58
Implemented basic gravatar support on admin pages only for now
Marcin Kuzminski <marcin@python-works.com>
parents:
307
diff
changeset
|
476 gravatar_url += urllib.urlencode({'d':default, 's':str(size)}) |
8c50b164fb58
Implemented basic gravatar support on admin pages only for now
Marcin Kuzminski <marcin@python-works.com>
parents:
307
diff
changeset
|
477 |
8c50b164fb58
Implemented basic gravatar support on admin pages only for now
Marcin Kuzminski <marcin@python-works.com>
parents:
307
diff
changeset
|
478 return gravatar_url |
443
e5157e2a530e
added safe unicode funtion, and implemented it in whoosh indexer
Marcin Kuzminski <marcin@python-works.com>
parents:
438
diff
changeset
|
479 |
1098
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
480 |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
481 #============================================================================== |
1342
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
482 # REPO PAGER, PAGER FOR REPOSITORY |
1098
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
483 #============================================================================== |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
484 class RepoPage(Page): |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
485 |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
486 def __init__(self, collection, page=1, items_per_page=20, |
1656
833f9dec0a06
implemented #44 - branch filtering in changelog, aka branch browser
Marcin Kuzminski <marcin@python-works.com>
parents:
1629
diff
changeset
|
487 item_count=None, url=None, **kwargs): |
1098
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
488 |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
489 """Create a "RepoPage" instance. special pager for paging |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
490 repository |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
491 """ |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
492 self._url_generator = url |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
493 |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
494 # Safe the kwargs class-wide so they can be used in the pager() method |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
495 self.kwargs = kwargs |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
496 |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
497 # Save a reference to the collection |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
498 self.original_collection = collection |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
499 |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
500 self.collection = collection |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
501 |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
502 # The self.page is the number of the current page. |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
503 # The first page has the number 1! |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
504 try: |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
505 self.page = int(page) # make it int() if we get it as a string |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
506 except (ValueError, TypeError): |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
507 self.page = 1 |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
508 |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
509 self.items_per_page = items_per_page |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
510 |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
511 # Unless the user tells us how many items the collections has |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
512 # we calculate that ourselves. |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
513 if item_count is not None: |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
514 self.item_count = item_count |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
515 else: |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
516 self.item_count = len(self.collection) |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
517 |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
518 # Compute the number of the first and last available page |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
519 if self.item_count > 0: |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
520 self.first_page = 1 |
1422
e69da281e235
fixed issues with repo pager
Marcin Kuzminski <marcin@python-works.com>
parents:
1421
diff
changeset
|
521 self.page_count = int(math.ceil(float(self.item_count) / |
e69da281e235
fixed issues with repo pager
Marcin Kuzminski <marcin@python-works.com>
parents:
1421
diff
changeset
|
522 self.items_per_page)) |
1098
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
523 self.last_page = self.first_page + self.page_count - 1 |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
524 |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
525 # Make sure that the requested page number is the range of valid pages |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
526 if self.page > self.last_page: |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
527 self.page = self.last_page |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
528 elif self.page < self.first_page: |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
529 self.page = self.first_page |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
530 |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
531 # Note: the number of items on this page can be less than |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
532 # items_per_page if the last page is not full |
1422
e69da281e235
fixed issues with repo pager
Marcin Kuzminski <marcin@python-works.com>
parents:
1421
diff
changeset
|
533 self.first_item = max(0, (self.item_count) - (self.page * |
e69da281e235
fixed issues with repo pager
Marcin Kuzminski <marcin@python-works.com>
parents:
1421
diff
changeset
|
534 items_per_page)) |
e69da281e235
fixed issues with repo pager
Marcin Kuzminski <marcin@python-works.com>
parents:
1421
diff
changeset
|
535 self.last_item = ((self.item_count - 1) - items_per_page * |
e69da281e235
fixed issues with repo pager
Marcin Kuzminski <marcin@python-works.com>
parents:
1421
diff
changeset
|
536 (self.page - 1)) |
1098
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
537 |
1670
d2de0c2f02cd
#77 code review
Marcin Kuzminski <marcin@python-works.com>
parents:
1656
diff
changeset
|
538 self.items = list(self.collection[self.first_item:self.last_item + 1]) |
1656
833f9dec0a06
implemented #44 - branch filtering in changelog, aka branch browser
Marcin Kuzminski <marcin@python-works.com>
parents:
1629
diff
changeset
|
539 |
1098
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
540 |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
541 # Links to previous and next page |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
542 if self.page > self.first_page: |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
543 self.previous_page = self.page - 1 |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
544 else: |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
545 self.previous_page = None |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
546 |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
547 if self.page < self.last_page: |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
548 self.next_page = self.page + 1 |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
549 else: |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
550 self.next_page = None |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
551 |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
552 # No items available |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
553 else: |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
554 self.first_page = None |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
555 self.page_count = 0 |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
556 self.last_page = None |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
557 self.first_item = None |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
558 self.last_item = None |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
559 self.previous_page = None |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
560 self.next_page = None |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
561 self.items = [] |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
562 |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
563 # This is a subclass of the 'list' type. Initialise the list now. |
1656
833f9dec0a06
implemented #44 - branch filtering in changelog, aka branch browser
Marcin Kuzminski <marcin@python-works.com>
parents:
1629
diff
changeset
|
564 list.__init__(self, reversed(self.items)) |
1098
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
565 |
91ddd4db4614
Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents:
1087
diff
changeset
|
566 |
990
7a1df0130533
moved tooltip function from the for loop and from templates to helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
966
diff
changeset
|
567 def changed_tooltip(nodes): |
1342
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
568 """ |
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
569 Generates a html string for changed nodes in changeset page. |
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
570 It limits the output to 30 entries |
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
571 |
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
572 :param nodes: LazyNodesGenerator |
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
573 """ |
990
7a1df0130533
moved tooltip function from the for loop and from templates to helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
966
diff
changeset
|
574 if nodes: |
7a1df0130533
moved tooltip function from the for loop and from templates to helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
966
diff
changeset
|
575 pref = ': <br/> ' |
7a1df0130533
moved tooltip function from the for loop and from templates to helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
966
diff
changeset
|
576 suf = '' |
7a1df0130533
moved tooltip function from the for loop and from templates to helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
966
diff
changeset
|
577 if len(nodes) > 30: |
7a1df0130533
moved tooltip function from the for loop and from templates to helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
966
diff
changeset
|
578 suf = '<br/>' + _(' and %s more') % (len(nodes) - 30) |
1257
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
579 return literal(pref + '<br/> '.join([safe_unicode(x.path) |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
580 for x in nodes[:30]]) + suf) |
990
7a1df0130533
moved tooltip function from the for loop and from templates to helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
966
diff
changeset
|
581 else: |
7a1df0130533
moved tooltip function from the for loop and from templates to helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
966
diff
changeset
|
582 return ': ' + _('No Files') |
1159
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1154
diff
changeset
|
583 |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1154
diff
changeset
|
584 |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1154
diff
changeset
|
585 |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1154
diff
changeset
|
586 def repo_link(groups_and_repos): |
1342
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
587 """ |
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
588 Makes a breadcrumbs link to repo within a group |
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
589 joins » on each group to create a fancy link |
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
590 |
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
591 ex:: |
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
592 group >> subgroup >> repo |
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
593 |
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
594 :param groups_and_repos: |
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
595 """ |
1159
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1154
diff
changeset
|
596 groups, repo_name = groups_and_repos |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1154
diff
changeset
|
597 |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1154
diff
changeset
|
598 if not groups: |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1154
diff
changeset
|
599 return repo_name |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1154
diff
changeset
|
600 else: |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1154
diff
changeset
|
601 def make_link(group): |
1547
fbc762ae3496
unified generation of repo groups choices
Marcin Kuzminski <marcin@python-works.com>
parents:
1478
diff
changeset
|
602 return link_to(group.name, url('repos_group_home', |
fbc762ae3496
unified generation of repo groups choices
Marcin Kuzminski <marcin@python-works.com>
parents:
1478
diff
changeset
|
603 group_name=group.group_name)) |
1159
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1154
diff
changeset
|
604 return literal(' » '.join(map(make_link, groups)) + \ |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1154
diff
changeset
|
605 " » " + repo_name) |
1257
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
606 |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
607 def fancy_file_stats(stats): |
1342
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
608 """ |
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
609 Displays a fancy two colored bar for number of added/deleted |
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
610 lines of code on file |
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
611 |
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
612 :param stats: two element list of added/deleted lines of code |
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
613 """ |
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
614 |
1257
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
615 a, d, t = stats[0], stats[1], stats[0] + stats[1] |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
616 width = 100 |
1258
3954bdaf6243
fixed possible float division, and changeset ranges bug introduced in stat changeset.
Marcin Kuzminski <marcin@python-works.com>
parents:
1257
diff
changeset
|
617 unit = float(width) / (t or 1) |
1257
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
618 |
1342
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
619 # needs > 9% of width to be visible or 0 to be hidden |
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
620 a_p = max(9, unit * a) if a > 0 else 0 |
9dacacc5b7c2
When creating a remote repository, with credentials filled, it's good to hide username and password from the clone url. Only administrators can see this in repository settings page
Marcin Kuzminski <marcin@python-works.com>
parents:
1330
diff
changeset
|
621 d_p = max(9, unit * d) if d > 0 else 0 |
1257
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
622 p_sum = a_p + d_p |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
623 |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
624 if p_sum > width: |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
625 #adjust the percentage to be == 100% since we adjusted to 9 |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
626 if a_p > d_p: |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
627 a_p = a_p - (p_sum - width) |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
628 else: |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
629 d_p = d_p - (p_sum - width) |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
630 |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
631 a_v = a if a > 0 else '' |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
632 d_v = d if d > 0 else '' |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
633 |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
634 |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
635 def cgen(l_type): |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
636 mapping = {'tr':'top-right-rounded-corner', |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
637 'tl':'top-left-rounded-corner', |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
638 'br':'bottom-right-rounded-corner', |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
639 'bl':'bottom-left-rounded-corner'} |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
640 map_getter = lambda x:mapping[x] |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
641 |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
642 if l_type == 'a' and d_v: |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
643 #case when added and deleted are present |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
644 return ' '.join(map(map_getter, ['tl', 'bl'])) |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
645 |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
646 if l_type == 'a' and not d_v: |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
647 return ' '.join(map(map_getter, ['tr', 'br', 'tl', 'bl'])) |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
648 |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
649 if l_type == 'd' and a_v: |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
650 return ' '.join(map(map_getter, ['tr', 'br'])) |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
651 |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
652 if l_type == 'd' and not a_v: |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
653 return ' '.join(map(map_getter, ['tr', 'br', 'tl', 'bl'])) |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
654 |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
655 |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
656 |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
657 d_a = '<div class="added %s" style="width:%s%%">%s</div>' % (cgen('a'), |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
658 a_p, a_v) |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
659 d_d = '<div class="deleted %s" style="width:%s%%">%s</div>' % (cgen('d'), |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
660 d_p, d_v) |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
661 return literal('<div style="width:%spx">%s%s</div>' % (width, d_a, d_d)) |
1438
002f4f465b58
Links in summary page are now active
Marcin Kuzminski <marcin@python-works.com>
parents:
1422
diff
changeset
|
662 |
002f4f465b58
Links in summary page are now active
Marcin Kuzminski <marcin@python-works.com>
parents:
1422
diff
changeset
|
663 |
002f4f465b58
Links in summary page are now active
Marcin Kuzminski <marcin@python-works.com>
parents:
1422
diff
changeset
|
664 def urlify_text(text): |
002f4f465b58
Links in summary page are now active
Marcin Kuzminski <marcin@python-works.com>
parents:
1422
diff
changeset
|
665 import re |
002f4f465b58
Links in summary page are now active
Marcin Kuzminski <marcin@python-works.com>
parents:
1422
diff
changeset
|
666 |
002f4f465b58
Links in summary page are now active
Marcin Kuzminski <marcin@python-works.com>
parents:
1422
diff
changeset
|
667 url_pat = re.compile(r'(http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+)') |
002f4f465b58
Links in summary page are now active
Marcin Kuzminski <marcin@python-works.com>
parents:
1422
diff
changeset
|
668 |
002f4f465b58
Links in summary page are now active
Marcin Kuzminski <marcin@python-works.com>
parents:
1422
diff
changeset
|
669 def url_func(match_obj): |
002f4f465b58
Links in summary page are now active
Marcin Kuzminski <marcin@python-works.com>
parents:
1422
diff
changeset
|
670 url_full = match_obj.groups()[0] |
002f4f465b58
Links in summary page are now active
Marcin Kuzminski <marcin@python-works.com>
parents:
1422
diff
changeset
|
671 return '<a href="%(url)s">%(url)s</a>' % ({'url':url_full}) |
002f4f465b58
Links in summary page are now active
Marcin Kuzminski <marcin@python-works.com>
parents:
1422
diff
changeset
|
672 |
002f4f465b58
Links in summary page are now active
Marcin Kuzminski <marcin@python-works.com>
parents:
1422
diff
changeset
|
673 return literal(url_pat.sub(url_func, text)) |
1656
833f9dec0a06
implemented #44 - branch filtering in changelog, aka branch browser
Marcin Kuzminski <marcin@python-works.com>
parents:
1629
diff
changeset
|
674 |
1670
d2de0c2f02cd
#77 code review
Marcin Kuzminski <marcin@python-works.com>
parents:
1656
diff
changeset
|
675 |
d2de0c2f02cd
#77 code review
Marcin Kuzminski <marcin@python-works.com>
parents:
1656
diff
changeset
|
676 def rst(source): |
d2de0c2f02cd
#77 code review
Marcin Kuzminski <marcin@python-works.com>
parents:
1656
diff
changeset
|
677 return literal('<div class="rst-block">%s</div>' % MarkupRenderer.rst(source)) |