Mercurial > kallithea
annotate rhodecode/lib/helpers.py @ 4099:43b54436d459
update issue tracker and official site
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 01 Sep 2013 19:56:08 +0200 |
parents | a1bc4af25ec5 |
children | ffd45b185016 |
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 |
1837
a6a30c919513
#73 mapping of commited issues from commit message into issue tracker url.
Marcin Kuzminski <marcin@python-works.com>
parents:
1832
diff
changeset
|
11 import logging |
2674
a221706dab50
merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents:
2609
diff
changeset
|
12 import re |
2836
819eb7f8a555
Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents:
2751
diff
changeset
|
13 import urlparse |
3070
cc7eedb5323c
final implementation of #210 journal filtering.
Marcin Kuzminski <marcin@python-works.com>
parents:
3063
diff
changeset
|
14 import textwrap |
1101
c1080b42a7cb
fixed problem with int. chars in gravatars
Marcin Kuzminski <marcin@python-works.com>
parents:
1100
diff
changeset
|
15 |
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
|
16 from datetime import datetime |
1716
7d1fc253549e
notification to commit author + gardening
Marcin Kuzminski <marcin@python-works.com>
parents:
1676
diff
changeset
|
17 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
|
18 from pygments import highlight as code_highlight |
3905
f7bf0cebe391
Switch gravatar to always use ssl.
Marcin Kuzminski <marcin@python-works.com>
parents:
3890
diff
changeset
|
19 from pylons import url |
97
be0096a02772
added helper for filesize
Marcin Kuzminski <marcin@python-works.com>
parents:
94
diff
changeset
|
20 from pylons.i18n.translation import _, ungettext |
1832
b9708d66277c
fixed problem with anchor links that contains non ascii chars
Marcin Kuzminski <marcin@python-works.com>
parents:
1818
diff
changeset
|
21 from hashlib import md5 |
1022
4f834b0abcd3
Code refactor number 2
Marcin Kuzminski <marcin@python-works.com>
parents:
1009
diff
changeset
|
22 |
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
|
23 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
|
24 from webhelpers.html.tools import * |
98
01d0f363f36d
added pygments webhelper
Marcin Kuzminski <marcin@python-works.com>
parents:
97
diff
changeset
|
25 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
|
26 from webhelpers.html.tags import auto_discovery_link, checkbox, css_classes, \ |
1766 | 27 end_form, file, form, hidden, image, javascript_link, link_to, \ |
28 link_to_if, link_to_unless, ol, required_legend, select, stylesheet_link, \ | |
29 submit, text, password, textarea, title, ul, xml_declaration, radio | |
30 from webhelpers.html.tools import auto_link, button_to, highlight, \ | |
31 js_obfuscate, mail_to, strip_links, strip_tags, tag_re | |
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
|
32 from webhelpers.number import format_byte_size, format_bit_size |
0 | 33 from webhelpers.pylonslib import Flash as _Flash |
34 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
|
35 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
|
36 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
|
37 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
|
38 from webhelpers.date import time_ago_in_words |
3776
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
39 from webhelpers.paginate import Page as _Page |
698
4cd0709b6d4b
fixes #65, Added reset buttons to edit forms
Marcin Kuzminski <marcin@python-works.com>
parents:
668
diff
changeset
|
40 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
|
41 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
|
42 |
1753
1d1ccb873d00
moved soon-to-be-deleted code from vcs to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
1747
diff
changeset
|
43 from rhodecode.lib.annotate import annotate_highlight |
3375
7000fc4aa569
Add option to define custom lexers for custom extensions for code highlight in rcextension module
Marcin Kuzminski <marcin@python-works.com>
parents:
3367
diff
changeset
|
44 from rhodecode.lib.utils import repo_name_slug, get_custom_lexer |
2109 | 45 from rhodecode.lib.utils2 import str2bool, safe_unicode, safe_str, \ |
3557
58dcef7eef03
Implemented show_id function that is a configurable way to display sha hashes in the changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3540
diff
changeset
|
46 get_changeset_safe, datetime_to_time, time_to_datetime, AttributeDict,\ |
58dcef7eef03
Implemented show_id function that is a configurable way to display sha hashes in the changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3540
diff
changeset
|
47 safe_int |
1670
d2de0c2f02cd
#77 code review
Marcin Kuzminski <marcin@python-works.com>
parents:
1656
diff
changeset
|
48 from rhodecode.lib.markup_renderer import MarkupRenderer |
2323
6c0f76330d91
fix for issue #450. Rhodecode no longer will crash when bad revision is present in journal data.
Marcin Kuzminski <marcin@python-works.com>
parents:
2203
diff
changeset
|
49 from rhodecode.lib.vcs.exceptions import ChangesetDoesNotExistError |
3012
58f3bba0ddc1
extend helper for better breadcrumbs for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
2998
diff
changeset
|
50 from rhodecode.lib.vcs.backends.base import BaseChangeset, EmptyChangeset |
2445
9b623dcddb02
Format datetime in notifications according to unified function
Marcin Kuzminski <marcin@python-works.com>
parents:
2427
diff
changeset
|
51 from rhodecode.config.conf import DATE_FORMAT, DATETIME_FORMAT |
2217
76947224bf27
Implemented initial code-review status of changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2203
diff
changeset
|
52 from rhodecode.model.changeset_status import ChangesetStatusModel |
2532
19de74e33fb0
Better descriptions of given permission overview in edit user view
Marcin Kuzminski <marcin@python-works.com>
parents:
2491
diff
changeset
|
53 from rhodecode.model.db import URL_SEP, Permission |
1670
d2de0c2f02cd
#77 code review
Marcin Kuzminski <marcin@python-works.com>
parents:
1656
diff
changeset
|
54 |
1837
a6a30c919513
#73 mapping of commited issues from commit message into issue tracker url.
Marcin Kuzminski <marcin@python-works.com>
parents:
1832
diff
changeset
|
55 log = logging.getLogger(__name__) |
a6a30c919513
#73 mapping of commited issues from commit message into issue tracker url.
Marcin Kuzminski <marcin@python-works.com>
parents:
1832
diff
changeset
|
56 |
1789
17caf4efe15c
implements #308 rewrote diffs to enable displaying full diff on each file
Marcin Kuzminski <marcin@python-works.com>
parents:
1781
diff
changeset
|
57 |
4043
a1bc4af25ec5
Implemented issue #387 side-by-side diffs view
Marcin Kuzminski <marcin@python-works.com>
parents:
3960
diff
changeset
|
58 def html_escape(text, html_escape_table=None): |
2466
7010dc12f10c
Added rewritten validators module + tests
Marcin Kuzminski <marcin@python-works.com>
parents:
2447
diff
changeset
|
59 """Produce entities within text.""" |
4043
a1bc4af25ec5
Implemented issue #387 side-by-side diffs view
Marcin Kuzminski <marcin@python-works.com>
parents:
3960
diff
changeset
|
60 if not html_escape_table: |
a1bc4af25ec5
Implemented issue #387 side-by-side diffs view
Marcin Kuzminski <marcin@python-works.com>
parents:
3960
diff
changeset
|
61 html_escape_table = { |
a1bc4af25ec5
Implemented issue #387 side-by-side diffs view
Marcin Kuzminski <marcin@python-works.com>
parents:
3960
diff
changeset
|
62 "&": "&", |
a1bc4af25ec5
Implemented issue #387 side-by-side diffs view
Marcin Kuzminski <marcin@python-works.com>
parents:
3960
diff
changeset
|
63 '"': """, |
a1bc4af25ec5
Implemented issue #387 side-by-side diffs view
Marcin Kuzminski <marcin@python-works.com>
parents:
3960
diff
changeset
|
64 "'": "'", |
a1bc4af25ec5
Implemented issue #387 side-by-side diffs view
Marcin Kuzminski <marcin@python-works.com>
parents:
3960
diff
changeset
|
65 ">": ">", |
a1bc4af25ec5
Implemented issue #387 side-by-side diffs view
Marcin Kuzminski <marcin@python-works.com>
parents:
3960
diff
changeset
|
66 "<": "<", |
a1bc4af25ec5
Implemented issue #387 side-by-side diffs view
Marcin Kuzminski <marcin@python-works.com>
parents:
3960
diff
changeset
|
67 } |
2958
c0a6a2e6bb2e
Use lightweight revisions in journal by default
Marcin Kuzminski <marcin@python-works.com>
parents:
2956
diff
changeset
|
68 return "".join(html_escape_table.get(c, c) for c in text) |
2466
7010dc12f10c
Added rewritten validators module + tests
Marcin Kuzminski <marcin@python-works.com>
parents:
2447
diff
changeset
|
69 |
7010dc12f10c
Added rewritten validators module + tests
Marcin Kuzminski <marcin@python-works.com>
parents:
2447
diff
changeset
|
70 |
2162
04d3fae0e4c0
imported patch 2260
Marcin Kuzminski <marcin@python-works.com>
parents:
2148
diff
changeset
|
71 def shorter(text, size=20): |
04d3fae0e4c0
imported patch 2260
Marcin Kuzminski <marcin@python-works.com>
parents:
2148
diff
changeset
|
72 postfix = '...' |
04d3fae0e4c0
imported patch 2260
Marcin Kuzminski <marcin@python-works.com>
parents:
2148
diff
changeset
|
73 if len(text) > size: |
04d3fae0e4c0
imported patch 2260
Marcin Kuzminski <marcin@python-works.com>
parents:
2148
diff
changeset
|
74 return text[:size - len(postfix)] + postfix |
04d3fae0e4c0
imported patch 2260
Marcin Kuzminski <marcin@python-works.com>
parents:
2148
diff
changeset
|
75 return text |
04d3fae0e4c0
imported patch 2260
Marcin Kuzminski <marcin@python-works.com>
parents:
2148
diff
changeset
|
76 |
04d3fae0e4c0
imported patch 2260
Marcin Kuzminski <marcin@python-works.com>
parents:
2148
diff
changeset
|
77 |
698
4cd0709b6d4b
fixes #65, Added reset buttons to edit forms
Marcin Kuzminski <marcin@python-works.com>
parents:
668
diff
changeset
|
78 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
|
79 """ |
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
|
80 Reset button |
899
d65843e07d3c
Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents:
864
diff
changeset
|
81 """ |
698
4cd0709b6d4b
fixes #65, Added reset buttons to edit forms
Marcin Kuzminski <marcin@python-works.com>
parents:
668
diff
changeset
|
82 _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
|
83 _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
|
84 convert_boolean_attrs(attrs, ["disabled"]) |
4cd0709b6d4b
fixes #65, Added reset buttons to edit forms
Marcin Kuzminski <marcin@python-works.com>
parents:
668
diff
changeset
|
85 return HTML.input(**attrs) |
4cd0709b6d4b
fixes #65, Added reset buttons to edit forms
Marcin Kuzminski <marcin@python-works.com>
parents:
668
diff
changeset
|
86 |
4cd0709b6d4b
fixes #65, Added reset buttons to edit forms
Marcin Kuzminski <marcin@python-works.com>
parents:
668
diff
changeset
|
87 reset = _reset |
1676
e86191684f4b
fixed some anchor id problems for changeset ranges
Marcin Kuzminski <marcin@python-works.com>
parents:
1670
diff
changeset
|
88 safeid = _make_safe_id_component |
734
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
89 |
1789
17caf4efe15c
implements #308 rewrote diffs to enable displaying full diff on each file
Marcin Kuzminski <marcin@python-works.com>
parents:
1781
diff
changeset
|
90 |
17caf4efe15c
implements #308 rewrote diffs to enable displaying full diff on each file
Marcin Kuzminski <marcin@python-works.com>
parents:
1781
diff
changeset
|
91 def FID(raw_id, path): |
1776
22333ddd1a40
implements #307, configurable diffs
Marcin Kuzminski <marcin@python-works.com>
parents:
1769
diff
changeset
|
92 """ |
1832
b9708d66277c
fixed problem with anchor links that contains non ascii chars
Marcin Kuzminski <marcin@python-works.com>
parents:
1818
diff
changeset
|
93 Creates a uniqe ID for filenode based on it's hash of path and revision |
b9708d66277c
fixed problem with anchor links that contains non ascii chars
Marcin Kuzminski <marcin@python-works.com>
parents:
1818
diff
changeset
|
94 it's safe to use in urls |
1789
17caf4efe15c
implements #308 rewrote diffs to enable displaying full diff on each file
Marcin Kuzminski <marcin@python-works.com>
parents:
1781
diff
changeset
|
95 |
1776
22333ddd1a40
implements #307, configurable diffs
Marcin Kuzminski <marcin@python-works.com>
parents:
1769
diff
changeset
|
96 :param raw_id: |
22333ddd1a40
implements #307, configurable diffs
Marcin Kuzminski <marcin@python-works.com>
parents:
1769
diff
changeset
|
97 :param path: |
22333ddd1a40
implements #307, configurable diffs
Marcin Kuzminski <marcin@python-works.com>
parents:
1769
diff
changeset
|
98 """ |
1832
b9708d66277c
fixed problem with anchor links that contains non ascii chars
Marcin Kuzminski <marcin@python-works.com>
parents:
1818
diff
changeset
|
99 |
2148
ad127a5cef73
fixed comments issue on non-ascii file names
Marcin Kuzminski <marcin@python-works.com>
parents:
2125
diff
changeset
|
100 return 'C-%s-%s' % (short_id(raw_id), md5(safe_str(path)).hexdigest()[:12]) |
1776
22333ddd1a40
implements #307, configurable diffs
Marcin Kuzminski <marcin@python-works.com>
parents:
1769
diff
changeset
|
101 |
22333ddd1a40
implements #307, configurable diffs
Marcin Kuzminski <marcin@python-works.com>
parents:
1769
diff
changeset
|
102 |
734
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
103 def get_token(): |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
104 """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
|
105 already exist. |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
106 """ |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
107 token_key = "_authentication_token" |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
108 from pylons import session |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
109 if not token_key in session: |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
110 try: |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
111 token = hashlib.sha1(str(random.getrandbits(128))).hexdigest() |
2203
d9972f76322e
added emulation of pull hook for git-backend, and dummy git-push hook
Marcin Kuzminski <marcin@python-works.com>
parents:
2162
diff
changeset
|
112 except AttributeError: # Python < 2.4 |
734
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
113 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
|
114 session[token_key] = token |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
115 if hasattr(session, 'save'): |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
116 session.save() |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
117 return session[token_key] |
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
118 |
2162
04d3fae0e4c0
imported patch 2260
Marcin Kuzminski <marcin@python-works.com>
parents:
2148
diff
changeset
|
119 |
0 | 120 class _GetError(object): |
899
d65843e07d3c
Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents:
864
diff
changeset
|
121 """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
|
122 message |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1187
diff
changeset
|
123 |
899
d65843e07d3c
Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents:
864
diff
changeset
|
124 :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
|
125 :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
|
126 """ |
0 | 127 |
128 def __call__(self, field_name, form_errors): | |
129 tmpl = """<span class="error_msg">%s</span>""" | |
2427
f467c75544af
Added h.tooltip to all places that tooltip_title is used.
Marcin Kuzminski <marcin@python-works.com>
parents:
2416
diff
changeset
|
130 if form_errors and field_name in form_errors: |
0 | 131 return literal(tmpl % form_errors.get(field_name)) |
132 | |
281
cd2ee462fc2c
implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents:
278
diff
changeset
|
133 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
|
134 |
2162
04d3fae0e4c0
imported patch 2260
Marcin Kuzminski <marcin@python-works.com>
parents:
2148
diff
changeset
|
135 |
281
cd2ee462fc2c
implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents:
278
diff
changeset
|
136 class _ToolTip(object): |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
604
diff
changeset
|
137 |
281
cd2ee462fc2c
implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents:
278
diff
changeset
|
138 def __call__(self, tooltip_title, trim_at=50): |
2427
f467c75544af
Added h.tooltip to all places that tooltip_title is used.
Marcin Kuzminski <marcin@python-works.com>
parents:
2416
diff
changeset
|
139 """ |
f467c75544af
Added h.tooltip to all places that tooltip_title is used.
Marcin Kuzminski <marcin@python-works.com>
parents:
2416
diff
changeset
|
140 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
|
141 autowrapped text |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1187
diff
changeset
|
142 |
604
5cc96df705b9
fixed @repo into :repo for docs
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
143 :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
|
144 """ |
2427
f467c75544af
Added h.tooltip to all places that tooltip_title is used.
Marcin Kuzminski <marcin@python-works.com>
parents:
2416
diff
changeset
|
145 tooltip_title = escape(tooltip_title) |
f467c75544af
Added h.tooltip to all places that tooltip_title is used.
Marcin Kuzminski <marcin@python-works.com>
parents:
2416
diff
changeset
|
146 tooltip_title = tooltip_title.replace('<', '<').replace('>', '>') |
f467c75544af
Added h.tooltip to all places that tooltip_title is used.
Marcin Kuzminski <marcin@python-works.com>
parents:
2416
diff
changeset
|
147 return 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
|
148 tooltip = _ToolTip() |
cd2ee462fc2c
implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents:
278
diff
changeset
|
149 |
2162
04d3fae0e4c0
imported patch 2260
Marcin Kuzminski <marcin@python-works.com>
parents:
2148
diff
changeset
|
150 |
102
2dc0c8e4f384
Updated tempaltes, added file browser breadcrumbs, and feed icons
Marcin Kuzminski <marcin@python-works.com>
parents:
98
diff
changeset
|
151 class _FilesBreadCrumbs(object): |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
604
diff
changeset
|
152 |
102
2dc0c8e4f384
Updated tempaltes, added file browser breadcrumbs, and feed icons
Marcin Kuzminski <marcin@python-works.com>
parents:
98
diff
changeset
|
153 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
|
154 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
|
155 paths = safe_unicode(paths) |
287
5827c739b0bd
webhelpers breadcrumbs bugfix
Marcin Kuzminski <marcin@python-works.com>
parents:
286
diff
changeset
|
156 url_l = [link_to(repo_name, url('files_home', |
5827c739b0bd
webhelpers breadcrumbs bugfix
Marcin Kuzminski <marcin@python-works.com>
parents:
286
diff
changeset
|
157 repo_name=repo_name, |
2686
269c6e0b54cc
Reimplemented file-browser using partial-ajax
Marcin Kuzminski <marcin@python-works.com>
parents:
2674
diff
changeset
|
158 revision=rev, f_path=''), |
269c6e0b54cc
Reimplemented file-browser using partial-ajax
Marcin Kuzminski <marcin@python-works.com>
parents:
2674
diff
changeset
|
159 class_='ypjax-link')] |
287
5827c739b0bd
webhelpers breadcrumbs bugfix
Marcin Kuzminski <marcin@python-works.com>
parents:
286
diff
changeset
|
160 paths_l = paths.split('/') |
740
9279dfedcf93
fixed python2.5 incompatible enumerate calls
Marcin Kuzminski <marcin@python-works.com>
parents:
735
diff
changeset
|
161 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
|
162 if p != '': |
1789
17caf4efe15c
implements #308 rewrote diffs to enable displaying full diff on each file
Marcin Kuzminski <marcin@python-works.com>
parents:
1781
diff
changeset
|
163 url_l.append(link_to(p, |
1766 | 164 url('files_home', |
165 repo_name=repo_name, | |
166 revision=rev, | |
167 f_path='/'.join(paths_l[:cnt + 1]) | |
2686
269c6e0b54cc
Reimplemented file-browser using partial-ajax
Marcin Kuzminski <marcin@python-works.com>
parents:
2674
diff
changeset
|
168 ), |
269c6e0b54cc
Reimplemented file-browser using partial-ajax
Marcin Kuzminski <marcin@python-works.com>
parents:
2674
diff
changeset
|
169 class_='ypjax-link' |
1766 | 170 ) |
171 ) | |
97
be0096a02772
added helper for filesize
Marcin Kuzminski <marcin@python-works.com>
parents:
94
diff
changeset
|
172 |
448
4679105ef03e
more css html fixes (+cleanups), rewrote definition list for files
Marcin Kuzminski <marcin@python-works.com>
parents:
444
diff
changeset
|
173 return literal('/'.join(url_l)) |
98
01d0f363f36d
added pygments webhelper
Marcin Kuzminski <marcin@python-works.com>
parents:
97
diff
changeset
|
174 |
281
cd2ee462fc2c
implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents:
278
diff
changeset
|
175 files_breadcrumbs = _FilesBreadCrumbs() |
899
d65843e07d3c
Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents:
864
diff
changeset
|
176 |
2162
04d3fae0e4c0
imported patch 2260
Marcin Kuzminski <marcin@python-works.com>
parents:
2148
diff
changeset
|
177 |
505
5aba7adff196
little gui change for file source
Marcin Kuzminski <marcin@python-works.com>
parents:
494
diff
changeset
|
178 class CodeHtmlFormatter(HtmlFormatter): |
2162
04d3fae0e4c0
imported patch 2260
Marcin Kuzminski <marcin@python-works.com>
parents:
2148
diff
changeset
|
179 """ |
04d3fae0e4c0
imported patch 2260
Marcin Kuzminski <marcin@python-works.com>
parents:
2148
diff
changeset
|
180 My code Html Formatter for source codes |
966
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
181 """ |
281
cd2ee462fc2c
implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents:
278
diff
changeset
|
182 |
505
5aba7adff196
little gui change for file source
Marcin Kuzminski <marcin@python-works.com>
parents:
494
diff
changeset
|
183 def wrap(self, source, outfile): |
5aba7adff196
little gui change for file source
Marcin Kuzminski <marcin@python-works.com>
parents:
494
diff
changeset
|
184 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
|
185 |
5aba7adff196
little gui change for file source
Marcin Kuzminski <marcin@python-works.com>
parents:
494
diff
changeset
|
186 def _wrap_code(self, source): |
740
9279dfedcf93
fixed python2.5 incompatible enumerate calls
Marcin Kuzminski <marcin@python-works.com>
parents:
735
diff
changeset
|
187 for cnt, it in enumerate(source): |
505
5aba7adff196
little gui change for file source
Marcin Kuzminski <marcin@python-works.com>
parents:
494
diff
changeset
|
188 i, t = it |
966
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
189 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
|
190 yield i, t |
966
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
191 |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
192 def _wrap_tablelinenos(self, inner): |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
193 dummyoutfile = StringIO.StringIO() |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
194 lncount = 0 |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
195 for t, line in inner: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
196 if t: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
197 lncount += 1 |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
198 dummyoutfile.write(line) |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
199 |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
200 fl = self.linenostart |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
201 mw = len(str(lncount + fl - 1)) |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
202 sp = self.linenospecial |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
203 st = self.linenostep |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
204 la = self.lineanchors |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
205 aln = self.anchorlinenos |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
206 nocls = self.noclasses |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
207 if sp: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
208 lines = [] |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
209 |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
210 for i in range(fl, fl + lncount): |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
211 if i % st == 0: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
212 if i % sp == 0: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
213 if aln: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
214 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
|
215 (la, i, mw, i)) |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
216 else: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
217 lines.append('<span class="special">%*d</span>' % (mw, i)) |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
218 else: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
219 if aln: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
220 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
|
221 else: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
222 lines.append('%*d' % (mw, i)) |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
223 else: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
224 lines.append('') |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
225 ls = '\n'.join(lines) |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
226 else: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
227 lines = [] |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
228 for i in range(fl, fl + lncount): |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
229 if i % st == 0: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
230 if aln: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
231 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
|
232 else: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
233 lines.append('%*d' % (mw, i)) |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
234 else: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
235 lines.append('') |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
236 ls = '\n'.join(lines) |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
237 |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
238 # 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
|
239 # 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
|
240 # some configurations seem to mess up the formatting... |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
241 if nocls: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
242 yield 0, ('<table class="%stable">' % self.cssclass + |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
243 '<tr><td><div class="linenodiv" ' |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
244 'style="background-color: #f0f0f0; padding-right: 10px">' |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
245 '<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
|
246 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
|
247 else: |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
248 yield 0, ('<table class="%stable">' % self.cssclass + |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
249 '<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
|
250 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
|
251 yield 0, dummyoutfile.getvalue() |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
252 yield 0, '</td></tr></table>' |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
253 |
63c91390853c
fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents:
965
diff
changeset
|
254 |
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
|
255 def pygmentize(filenode, **kwargs): |
3375
7000fc4aa569
Add option to define custom lexers for custom extensions for code highlight in rcextension module
Marcin Kuzminski <marcin@python-works.com>
parents:
3367
diff
changeset
|
256 """ |
7000fc4aa569
Add option to define custom lexers for custom extensions for code highlight in rcextension module
Marcin Kuzminski <marcin@python-works.com>
parents:
3367
diff
changeset
|
257 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
|
258 |
604
5cc96df705b9
fixed @repo into :repo for docs
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
259 :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
|
260 """ |
3375
7000fc4aa569
Add option to define custom lexers for custom extensions for code highlight in rcextension module
Marcin Kuzminski <marcin@python-works.com>
parents:
3367
diff
changeset
|
261 lexer = get_custom_lexer(filenode.extension) or filenode.lexer |
7000fc4aa569
Add option to define custom lexers for custom extensions for code highlight in rcextension module
Marcin Kuzminski <marcin@python-works.com>
parents:
3367
diff
changeset
|
262 return literal(code_highlight(filenode.content, lexer, |
7000fc4aa569
Add option to define custom lexers for custom extensions for code highlight in rcextension module
Marcin Kuzminski <marcin@python-works.com>
parents:
3367
diff
changeset
|
263 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
|
264 |
1781
089c81cf04d9
fixes #326 some html special chars where not escaped in diffs + code garden in helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1776
diff
changeset
|
265 |
1171
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
266 def pygmentize_annotation(repo_name, filenode, **kwargs): |
1781
089c81cf04d9
fixes #326 some html special chars where not escaped in diffs + code garden in helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1776
diff
changeset
|
267 """ |
089c81cf04d9
fixes #326 some html special chars where not escaped in diffs + code garden in helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1776
diff
changeset
|
268 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
|
269 |
604
5cc96df705b9
fixed @repo into :repo for docs
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
270 :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
|
271 """ |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
604
diff
changeset
|
272 |
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
|
273 color_dict = {} |
1781
089c81cf04d9
fixes #326 some html special chars where not escaped in diffs + code garden in helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1776
diff
changeset
|
274 |
947
99850ac883d1
Fixed whoosh daemon, for depracated walk method
Marcin Kuzminski <marcin@python-works.com>
parents:
946
diff
changeset
|
275 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
|
276 """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
|
277 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
|
278 |
947
99850ac883d1
Fixed whoosh daemon, for depracated walk method
Marcin Kuzminski <marcin@python-works.com>
parents:
946
diff
changeset
|
279 :returns: RGB tuple |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
604
diff
changeset
|
280 """ |
1461
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
281 |
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
282 def hsv_to_rgb(h, s, v): |
1781
089c81cf04d9
fixes #326 some html special chars where not escaped in diffs + code garden in helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1776
diff
changeset
|
283 if s == 0.0: |
089c81cf04d9
fixes #326 some html special chars where not escaped in diffs + code garden in helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1776
diff
changeset
|
284 return v, v, v |
089c81cf04d9
fixes #326 some html special chars where not escaped in diffs + code garden in helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1776
diff
changeset
|
285 i = int(h * 6.0) # XXX assume int() truncates! |
1461
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
286 f = (h * 6.0) - i |
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
287 p = v * (1.0 - s) |
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
288 q = v * (1.0 - s * f) |
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
289 t = v * (1.0 - s * (1.0 - f)) |
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
290 i = i % 6 |
1781
089c81cf04d9
fixes #326 some html special chars where not escaped in diffs + code garden in helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1776
diff
changeset
|
291 if i == 0: |
089c81cf04d9
fixes #326 some html special chars where not escaped in diffs + code garden in helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1776
diff
changeset
|
292 return v, t, p |
089c81cf04d9
fixes #326 some html special chars where not escaped in diffs + code garden in helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1776
diff
changeset
|
293 if i == 1: |
089c81cf04d9
fixes #326 some html special chars where not escaped in diffs + code garden in helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1776
diff
changeset
|
294 return q, v, p |
089c81cf04d9
fixes #326 some html special chars where not escaped in diffs + code garden in helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1776
diff
changeset
|
295 if i == 2: |
089c81cf04d9
fixes #326 some html special chars where not escaped in diffs + code garden in helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1776
diff
changeset
|
296 return p, v, t |
089c81cf04d9
fixes #326 some html special chars where not escaped in diffs + code garden in helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1776
diff
changeset
|
297 if i == 3: |
089c81cf04d9
fixes #326 some html special chars where not escaped in diffs + code garden in helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1776
diff
changeset
|
298 return p, q, v |
089c81cf04d9
fixes #326 some html special chars where not escaped in diffs + code garden in helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1776
diff
changeset
|
299 if i == 4: |
089c81cf04d9
fixes #326 some html special chars where not escaped in diffs + code garden in helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1776
diff
changeset
|
300 return t, p, v |
089c81cf04d9
fixes #326 some html special chars where not escaped in diffs + code garden in helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1776
diff
changeset
|
301 if i == 5: |
089c81cf04d9
fixes #326 some html special chars where not escaped in diffs + code garden in helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1776
diff
changeset
|
302 return v, p, q |
1461
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
303 |
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
|
304 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
|
305 h = 0.22717784590367374 |
947
99850ac883d1
Fixed whoosh daemon, for depracated walk method
Marcin Kuzminski <marcin@python-works.com>
parents:
946
diff
changeset
|
306 |
1320
09c3fb460fcb
Fixed problem with anchor link positioning when passed in ranges.
Marcin Kuzminski <marcin@python-works.com>
parents:
1312
diff
changeset
|
307 for _ in xrange(n): |
450
c3236d7febad
fixed, empty cs bug.
Marcin Kuzminski <marcin@python-works.com>
parents:
448
diff
changeset
|
308 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
|
309 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
|
310 HSV_tuple = [h, 0.95, 0.95] |
1461
e7d9d543364d
removed colorsys import
Marcin Kuzminski <marcin@python-works.com>
parents:
1438
diff
changeset
|
311 RGB_tuple = hsv_to_rgb(*HSV_tuple) |
1781
089c81cf04d9
fixes #326 some html special chars where not escaped in diffs + code garden in helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1776
diff
changeset
|
312 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
|
313 |
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
|
314 cgenerator = gen_color() |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
604
diff
changeset
|
315 |
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
|
316 def get_color_string(cs): |
1781
089c81cf04d9
fixes #326 some html special chars where not escaped in diffs + code garden in helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1776
diff
changeset
|
317 if cs in color_dict: |
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
|
318 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
|
319 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
|
320 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
|
321 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
|
322 |
1171
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
323 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
|
324 |
1171
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
325 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
|
326 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
|
327 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
|
328 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
|
329 |
1352
79041f2d16f4
wrap_paragraph was to slow for toolip generation and was removed.
Marcin Kuzminski <marcin@python-works.com>
parents:
1342
diff
changeset
|
330 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
|
331 " %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
|
332 "</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
|
333 |
79041f2d16f4
wrap_paragraph was to slow for toolip generation and was removed.
Marcin Kuzminski <marcin@python-works.com>
parents:
1342
diff
changeset
|
334 tooltip_html = tooltip_html % (author, date, message) |
1171
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
335 lnk_format = '%5s:%s' % ('r%s' % changeset.revision, |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
336 short_id(changeset.raw_id)) |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
337 uri = link_to( |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
338 lnk_format, |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
339 url('changeset_home', repo_name=repo_name, |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
340 revision=changeset.raw_id), |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
341 style=get_color_string(changeset.raw_id), |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
342 class_='tooltip', |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
343 title=tooltip_html |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
344 ) |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
604
diff
changeset
|
345 |
1171
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
346 uri += '\n' |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
347 return uri |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
348 return _url_func |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
349 |
2ab211e0aecd
changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents:
1159
diff
changeset
|
350 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
|
351 |
1781
089c81cf04d9
fixes #326 some html special chars where not escaped in diffs + code garden in helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1776
diff
changeset
|
352 |
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
|
353 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
|
354 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
|
355 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
|
356 |
3924
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
357 class _Message(object): |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
358 """A message returned by ``Flash.pop_messages()``. |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
359 |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
360 Converting the message to a string returns the message text. Instances |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
361 also have the following attributes: |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
362 |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
363 * ``message``: the message text. |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
364 * ``category``: the category specified when the message was created. |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
365 """ |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
366 |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
367 def __init__(self, category, message): |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
368 self.category=category |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
369 self.message=message |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
370 |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
371 def __str__(self): |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
372 return self.message |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
373 |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
374 __unicode__ = __str__ |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
375 |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
376 def __html__(self): |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
377 return escape(safe_unicode(self.message)) |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
378 |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
379 class Flash(_Flash): |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
380 |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
381 def pop_messages(self): |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
382 """Return all accumulated messages and delete them from the session. |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
383 |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
384 The return value is a list of ``Message`` objects. |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
385 """ |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
386 from pylons import session |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
387 messages = session.pop(self.session_key, []) |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
388 session.save() |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
389 return [_Message(*m) for m in messages] |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
390 |
14afe4d1363d
Fixes #852, created custom Flash() class and Message
Marcin Kuzminski <marcin@python-works.com>
parents:
3915
diff
changeset
|
391 flash = Flash() |
282
237470e64bb8
switched filters into webhelpers for easy of usage.
Marcin Kuzminski <marcin@python-works.com>
parents:
281
diff
changeset
|
392 |
635
fd63782c4426
Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents:
631
diff
changeset
|
393 #============================================================================== |
1356
eec4defdf2b8
Make rhodecode use author/username filter from vcs instead of mercurial
Marcin Kuzminski <marcin@python-works.com>
parents:
1352
diff
changeset
|
394 # 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
|
395 #============================================================================== |
2007
324ac367a4da
Added VCS into rhodecode core for faster and easier deployments of new versions
Marcin Kuzminski <marcin@python-works.com>
parents:
1979
diff
changeset
|
396 from rhodecode.lib.vcs.utils import author_name, author_email |
2109 | 397 from rhodecode.lib.utils2 import credentials_filter, age as _age |
2239
493e03a4d268
added changeset status into changelog view
Marcin Kuzminski <marcin@python-works.com>
parents:
2217
diff
changeset
|
398 from rhodecode.model.db import User, ChangesetStatus |
282
237470e64bb8
switched filters into webhelpers for easy of usage.
Marcin Kuzminski <marcin@python-works.com>
parents:
281
diff
changeset
|
399 |
3557
58dcef7eef03
Implemented show_id function that is a configurable way to display sha hashes in the changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3540
diff
changeset
|
400 age = lambda x, y=False: _age(x, y) |
282
237470e64bb8
switched filters into webhelpers for easy of usage.
Marcin Kuzminski <marcin@python-works.com>
parents:
281
diff
changeset
|
401 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
|
402 email = author_email |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
635
diff
changeset
|
403 short_id = lambda x: x[:12] |
1373
66f03a87141c
Fixes issue #201
Marcin Kuzminski <marcin@python-works.com>
parents:
1366
diff
changeset
|
404 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
|
405 |
1764
39b49c999efb
fixes issue #320.
Marcin Kuzminski <marcin@python-works.com>
parents:
1753
diff
changeset
|
406 |
3557
58dcef7eef03
Implemented show_id function that is a configurable way to display sha hashes in the changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3540
diff
changeset
|
407 def show_id(cs): |
58dcef7eef03
Implemented show_id function that is a configurable way to display sha hashes in the changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3540
diff
changeset
|
408 """ |
58dcef7eef03
Implemented show_id function that is a configurable way to display sha hashes in the changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3540
diff
changeset
|
409 Configurable function that shows ID |
58dcef7eef03
Implemented show_id function that is a configurable way to display sha hashes in the changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3540
diff
changeset
|
410 by default it's r123:fffeeefffeee |
58dcef7eef03
Implemented show_id function that is a configurable way to display sha hashes in the changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3540
diff
changeset
|
411 |
58dcef7eef03
Implemented show_id function that is a configurable way to display sha hashes in the changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3540
diff
changeset
|
412 :param cs: changeset instance |
58dcef7eef03
Implemented show_id function that is a configurable way to display sha hashes in the changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3540
diff
changeset
|
413 """ |
58dcef7eef03
Implemented show_id function that is a configurable way to display sha hashes in the changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3540
diff
changeset
|
414 from rhodecode import CONFIG |
3651
659bd922520e
config: rename options to show_revision_number and show_sha_length
Mads Kiilerich <madski@unity3d.com>
parents:
3631
diff
changeset
|
415 def_len = safe_int(CONFIG.get('show_sha_length', 12)) |
659bd922520e
config: rename options to show_revision_number and show_sha_length
Mads Kiilerich <madski@unity3d.com>
parents:
3631
diff
changeset
|
416 show_rev = str2bool(CONFIG.get('show_revision_number', True)) |
3557
58dcef7eef03
Implemented show_id function that is a configurable way to display sha hashes in the changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3540
diff
changeset
|
417 |
58dcef7eef03
Implemented show_id function that is a configurable way to display sha hashes in the changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3540
diff
changeset
|
418 raw_id = cs.raw_id[:def_len] |
58dcef7eef03
Implemented show_id function that is a configurable way to display sha hashes in the changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3540
diff
changeset
|
419 if show_rev: |
58dcef7eef03
Implemented show_id function that is a configurable way to display sha hashes in the changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3540
diff
changeset
|
420 return 'r%s:%s' % (cs.revision, raw_id) |
58dcef7eef03
Implemented show_id function that is a configurable way to display sha hashes in the changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3540
diff
changeset
|
421 else: |
58dcef7eef03
Implemented show_id function that is a configurable way to display sha hashes in the changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3540
diff
changeset
|
422 return '%s' % (raw_id) |
58dcef7eef03
Implemented show_id function that is a configurable way to display sha hashes in the changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3540
diff
changeset
|
423 |
58dcef7eef03
Implemented show_id function that is a configurable way to display sha hashes in the changelog.
Marcin Kuzminski <marcin@python-works.com>
parents:
3540
diff
changeset
|
424 |
2416
44f328d6f209
Added a translatable date formatter for every date displayed.
Vincent Duvert <vincent@duvert.net>
parents:
2376
diff
changeset
|
425 def fmt_date(date): |
44f328d6f209
Added a translatable date formatter for every date displayed.
Vincent Duvert <vincent@duvert.net>
parents:
2376
diff
changeset
|
426 if date: |
3947
ff78716ab3fa
removed bad translation string
Marcin Kuzminski <marcin@python-works.com>
parents:
3924
diff
changeset
|
427 _fmt = u"%a, %d %b %Y %H:%M:%S".encode('utf8') |
2445
9b623dcddb02
Format datetime in notifications according to unified function
Marcin Kuzminski <marcin@python-works.com>
parents:
2427
diff
changeset
|
428 return date.strftime(_fmt).decode('utf8') |
2427
f467c75544af
Added h.tooltip to all places that tooltip_title is used.
Marcin Kuzminski <marcin@python-works.com>
parents:
2416
diff
changeset
|
429 |
2416
44f328d6f209
Added a translatable date formatter for every date displayed.
Vincent Duvert <vincent@duvert.net>
parents:
2376
diff
changeset
|
430 return "" |
44f328d6f209
Added a translatable date formatter for every date displayed.
Vincent Duvert <vincent@duvert.net>
parents:
2376
diff
changeset
|
431 |
44f328d6f209
Added a translatable date formatter for every date displayed.
Vincent Duvert <vincent@duvert.net>
parents:
2376
diff
changeset
|
432 |
1959
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
433 def is_git(repository): |
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
434 if hasattr(repository, 'alias'): |
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
435 _type = repository.alias |
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
436 elif hasattr(repository, 'repo_type'): |
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
437 _type = repository.repo_type |
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
438 else: |
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
439 _type = repository |
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
440 return _type == 'git' |
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
441 |
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
442 |
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
443 def is_hg(repository): |
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
444 if hasattr(repository, 'alias'): |
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
445 _type = repository.alias |
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
446 elif hasattr(repository, 'repo_type'): |
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
447 _type = repository.repo_type |
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
448 else: |
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
449 _type = repository |
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
450 return _type == 'hg' |
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
451 |
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
452 |
1767 | 453 def email_or_none(author): |
2725
3853e37db97c
fixes issue #531, when extracting user email, we check it against the database,
Marcin Kuzminski <marcin@python-works.com>
parents:
2686
diff
changeset
|
454 # extract email from the commit string |
1767 | 455 _email = email(author) |
456 if _email != '': | |
2725
3853e37db97c
fixes issue #531, when extracting user email, we check it against the database,
Marcin Kuzminski <marcin@python-works.com>
parents:
2686
diff
changeset
|
457 # check it against RhodeCode database, and use the MAIN email for this |
3853e37db97c
fixes issue #531, when extracting user email, we check it against the database,
Marcin Kuzminski <marcin@python-works.com>
parents:
2686
diff
changeset
|
458 # user |
3853e37db97c
fixes issue #531, when extracting user email, we check it against the database,
Marcin Kuzminski <marcin@python-works.com>
parents:
2686
diff
changeset
|
459 user = User.get_by_email(_email, case_insensitive=True, cache=True) |
3853e37db97c
fixes issue #531, when extracting user email, we check it against the database,
Marcin Kuzminski <marcin@python-works.com>
parents:
2686
diff
changeset
|
460 if user is not None: |
3853e37db97c
fixes issue #531, when extracting user email, we check it against the database,
Marcin Kuzminski <marcin@python-works.com>
parents:
2686
diff
changeset
|
461 return user.email |
1767 | 462 return _email |
1764
39b49c999efb
fixes issue #320.
Marcin Kuzminski <marcin@python-works.com>
parents:
1753
diff
changeset
|
463 |
39b49c999efb
fixes issue #320.
Marcin Kuzminski <marcin@python-works.com>
parents:
1753
diff
changeset
|
464 # See if it contains a username we can get an email from |
1767 | 465 user = User.get_by_username(author_name(author), case_insensitive=True, |
1764
39b49c999efb
fixes issue #320.
Marcin Kuzminski <marcin@python-works.com>
parents:
1753
diff
changeset
|
466 cache=True) |
39b49c999efb
fixes issue #320.
Marcin Kuzminski <marcin@python-works.com>
parents:
1753
diff
changeset
|
467 if user is not None: |
39b49c999efb
fixes issue #320.
Marcin Kuzminski <marcin@python-works.com>
parents:
1753
diff
changeset
|
468 return user.email |
39b49c999efb
fixes issue #320.
Marcin Kuzminski <marcin@python-works.com>
parents:
1753
diff
changeset
|
469 |
39b49c999efb
fixes issue #320.
Marcin Kuzminski <marcin@python-works.com>
parents:
1753
diff
changeset
|
470 # No valid email, not a valid user in the system, none! |
39b49c999efb
fixes issue #320.
Marcin Kuzminski <marcin@python-works.com>
parents:
1753
diff
changeset
|
471 return None |
39b49c999efb
fixes issue #320.
Marcin Kuzminski <marcin@python-works.com>
parents:
1753
diff
changeset
|
472 |
1781
089c81cf04d9
fixes #326 some html special chars where not escaped in diffs + code garden in helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1776
diff
changeset
|
473 |
2731
09d8fec02954
Implemented #532.
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
474 def person(author, show_attr="username_and_name"): |
1764
39b49c999efb
fixes issue #320.
Marcin Kuzminski <marcin@python-works.com>
parents:
1753
diff
changeset
|
475 # attr to return from fetched user |
2731
09d8fec02954
Implemented #532.
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
476 person_getter = lambda usr: getattr(usr, show_attr) |
1781
089c81cf04d9
fixes #326 some html special chars where not escaped in diffs + code garden in helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1776
diff
changeset
|
477 |
1767 | 478 # Valid email in the attribute passed, see if they're in the system |
479 _email = email(author) | |
480 if _email != '': | |
481 user = User.get_by_email(_email, case_insensitive=True, cache=True) | |
1764
39b49c999efb
fixes issue #320.
Marcin Kuzminski <marcin@python-works.com>
parents:
1753
diff
changeset
|
482 if user is not None: |
39b49c999efb
fixes issue #320.
Marcin Kuzminski <marcin@python-works.com>
parents:
1753
diff
changeset
|
483 return person_getter(user) |
39b49c999efb
fixes issue #320.
Marcin Kuzminski <marcin@python-works.com>
parents:
1753
diff
changeset
|
484 |
39b49c999efb
fixes issue #320.
Marcin Kuzminski <marcin@python-works.com>
parents:
1753
diff
changeset
|
485 # Maybe it's a username? |
1767 | 486 _author = author_name(author) |
487 user = User.get_by_username(_author, case_insensitive=True, | |
1764
39b49c999efb
fixes issue #320.
Marcin Kuzminski <marcin@python-works.com>
parents:
1753
diff
changeset
|
488 cache=True) |
39b49c999efb
fixes issue #320.
Marcin Kuzminski <marcin@python-works.com>
parents:
1753
diff
changeset
|
489 if user is not None: |
39b49c999efb
fixes issue #320.
Marcin Kuzminski <marcin@python-works.com>
parents:
1753
diff
changeset
|
490 return person_getter(user) |
39b49c999efb
fixes issue #320.
Marcin Kuzminski <marcin@python-works.com>
parents:
1753
diff
changeset
|
491 |
3766
848492e2aafa
h.person, if author name is empty, use email as a fallback
Marcin Kuzminski <marcin@python-works.com>
parents:
3740
diff
changeset
|
492 # Still nothing? Just pass back the author name if any, else the email |
848492e2aafa
h.person, if author name is empty, use email as a fallback
Marcin Kuzminski <marcin@python-works.com>
parents:
3740
diff
changeset
|
493 return _author or _email |
1764
39b49c999efb
fixes issue #320.
Marcin Kuzminski <marcin@python-works.com>
parents:
1753
diff
changeset
|
494 |
1959
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
495 |
2731
09d8fec02954
Implemented #532.
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
496 def person_by_id(id_, show_attr="username_and_name"): |
2726
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2725
diff
changeset
|
497 # attr to return from fetched user |
2731
09d8fec02954
Implemented #532.
Marcin Kuzminski <marcin@python-works.com>
parents:
2726
diff
changeset
|
498 person_getter = lambda usr: getattr(usr, show_attr) |
2726
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2725
diff
changeset
|
499 |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2725
diff
changeset
|
500 #maybe it's an ID ? |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2725
diff
changeset
|
501 if str(id_).isdigit() or isinstance(id_, int): |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2725
diff
changeset
|
502 id_ = int(id_) |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2725
diff
changeset
|
503 user = User.get(id_) |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2725
diff
changeset
|
504 if user is not None: |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2725
diff
changeset
|
505 return person_getter(user) |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2725
diff
changeset
|
506 return id_ |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2725
diff
changeset
|
507 |
aa17c7a1b8a5
Implemented basic locking functionality.
Marcin Kuzminski <marcin@python-works.com>
parents:
2725
diff
changeset
|
508 |
2674
a221706dab50
merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents:
2609
diff
changeset
|
509 def desc_stylize(value): |
a221706dab50
merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents:
2609
diff
changeset
|
510 """ |
a221706dab50
merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents:
2609
diff
changeset
|
511 converts tags from value into html equivalent |
a221706dab50
merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents:
2609
diff
changeset
|
512 |
a221706dab50
merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents:
2609
diff
changeset
|
513 :param value: |
a221706dab50
merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents:
2609
diff
changeset
|
514 """ |
a221706dab50
merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents:
2609
diff
changeset
|
515 value = re.sub(r'\[see\ \=\>\ *([a-zA-Z0-9\/\=\?\&\ \:\/\.\-]*)\]', |
a221706dab50
merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents:
2609
diff
changeset
|
516 '<div class="metatag" tag="see">see => \\1 </div>', value) |
a221706dab50
merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents:
2609
diff
changeset
|
517 value = re.sub(r'\[license\ \=\>\ *([a-zA-Z0-9\/\=\?\&\ \:\/\.\-]*)\]', |
a221706dab50
merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents:
2609
diff
changeset
|
518 '<div class="metatag" tag="license"><a href="http:\/\/www.opensource.org/licenses/\\1">\\1</a></div>', value) |
3156
1ab01549f1f8
fixes issue #715 Meta-Tagging [requires => Repo-123] not working
Marcin Kuzminski <marcin@python-works.com>
parents:
3149
diff
changeset
|
519 value = re.sub(r'\[(requires|recommends|conflicts|base)\ \=\>\ *([a-zA-Z0-9\-\/]*)\]', |
2674
a221706dab50
merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents:
2609
diff
changeset
|
520 '<div class="metatag" tag="\\1">\\1 => <a href="/\\2">\\2</a></div>', value) |
2965
d0553004e73d
fixed #623: Lang meta-tag doesn't work with C#/C++
Marcin Kuzminski <marcin@python-works.com>
parents:
2958
diff
changeset
|
521 value = re.sub(r'\[(lang|language)\ \=\>\ *([a-zA-Z\-\/\#\+]*)\]', |
2674
a221706dab50
merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents:
2609
diff
changeset
|
522 '<div class="metatag" tag="lang">\\2</div>', value) |
a221706dab50
merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents:
2609
diff
changeset
|
523 value = re.sub(r'\[([a-z]+)\]', |
a221706dab50
merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents:
2609
diff
changeset
|
524 '<div class="metatag" tag="\\1">\\1</div>', value) |
a221706dab50
merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents:
2609
diff
changeset
|
525 |
a221706dab50
merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents:
2609
diff
changeset
|
526 return value |
a221706dab50
merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents:
2609
diff
changeset
|
527 |
a221706dab50
merged + fixed pull request #62: Implemented metatags and visualisation options.
Marcin Kuzminski <marcin@python-works.com>
parents:
2609
diff
changeset
|
528 |
3627
32cb8d45f330
helpers: show boolean value of value as icon, not just the True and False singletons
Mads Kiilerich <madski@unity3d.com>
parents:
3599
diff
changeset
|
529 def boolicon(value): |
32cb8d45f330
helpers: show boolean value of value as icon, not just the True and False singletons
Mads Kiilerich <madski@unity3d.com>
parents:
3599
diff
changeset
|
530 """Returns boolean value of a value, 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
|
531 icons |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1187
diff
changeset
|
532 |
3627
32cb8d45f330
helpers: show boolean value of value as icon, not just the True and False singletons
Mads Kiilerich <madski@unity3d.com>
parents:
3599
diff
changeset
|
533 :param value: value |
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
|
534 """ |
131c1e335fa7
Added ldap info on admin users, added bool2icon helper for nicer representation of
Marcin Kuzminski <marcin@python-works.com>
parents:
698
diff
changeset
|
535 |
3627
32cb8d45f330
helpers: show boolean value of value as icon, not just the True and False singletons
Mads Kiilerich <madski@unity3d.com>
parents:
3599
diff
changeset
|
536 if value: |
1050
cabe887a9829
removed obsolete _static flag from url, and fixed urls in webhelpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1045
diff
changeset
|
537 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
|
538 alt=_('True')) |
3627
32cb8d45f330
helpers: show boolean value of value as icon, not just the True and False singletons
Mads Kiilerich <madski@unity3d.com>
parents:
3599
diff
changeset
|
539 else: |
1050
cabe887a9829
removed obsolete _static flag from url, and fixed urls in webhelpers
Marcin Kuzminski <marcin@python-works.com>
parents:
1045
diff
changeset
|
540 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
|
541 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
|
542 |
131c1e335fa7
Added ldap info on admin users, added bool2icon helper for nicer representation of
Marcin Kuzminski <marcin@python-works.com>
parents:
698
diff
changeset
|
543 |
2958
c0a6a2e6bb2e
Use lightweight revisions in journal by default
Marcin Kuzminski <marcin@python-works.com>
parents:
2956
diff
changeset
|
544 def action_parser(user_log, feed=False, parse_cs=False): |
2012
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
545 """ |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
546 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
|
547 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
|
548 |
899
d65843e07d3c
Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents:
864
diff
changeset
|
549 :param user_log: user log instance |
1087
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
550 :param feed: use output for feeds (no html and fancy icons) |
2950
528c7f210b12
added experimental lightweight param to journal
Marcin Kuzminski <marcin@python-works.com>
parents:
2936
diff
changeset
|
551 :param parse_cs: parse Changesets into VCS instances |
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
|
552 """ |
2958
c0a6a2e6bb2e
Use lightweight revisions in journal by default
Marcin Kuzminski <marcin@python-works.com>
parents:
2956
diff
changeset
|
553 |
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
|
554 action = user_log.action |
840
ee6f345736a6
action logger upgrade, for working with migrations
Marcin Kuzminski <marcin@python-works.com>
parents:
817
diff
changeset
|
555 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
|
556 |
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
|
557 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
|
558 |
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
|
559 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
|
560 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
|
561 |
718
7df3855bf6c7
Added fork name to journal
Marcin Kuzminski <marcin@python-works.com>
parents:
714
diff
changeset
|
562 def get_cs_links(): |
2012
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
563 revs_limit = 3 # display this amount always |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
564 revs_top_limit = 50 # show upto this amount of changesets hidden |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
565 revs_ids = action_params.split(',') |
2014
8ccac2b0fcf3
fixed cs_links for deleted repos
Marcin Kuzminski <marcin@python-works.com>
parents:
2012
diff
changeset
|
566 deleted = user_log.repository is None |
8ccac2b0fcf3
fixed cs_links for deleted repos
Marcin Kuzminski <marcin@python-works.com>
parents:
2012
diff
changeset
|
567 if deleted: |
8ccac2b0fcf3
fixed cs_links for deleted repos
Marcin Kuzminski <marcin@python-works.com>
parents:
2012
diff
changeset
|
568 return ','.join(revs_ids) |
8ccac2b0fcf3
fixed cs_links for deleted repos
Marcin Kuzminski <marcin@python-works.com>
parents:
2012
diff
changeset
|
569 |
953
def3578dac8c
fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents:
947
diff
changeset
|
570 repo_name = user_log.repository.repo_name |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1041
diff
changeset
|
571 |
2323
6c0f76330d91
fix for issue #450. Rhodecode no longer will crash when bad revision is present in journal data.
Marcin Kuzminski <marcin@python-works.com>
parents:
2203
diff
changeset
|
572 def lnk(rev, repo_name): |
2950
528c7f210b12
added experimental lightweight param to journal
Marcin Kuzminski <marcin@python-works.com>
parents:
2936
diff
changeset
|
573 if isinstance(rev, BaseChangeset) or isinstance(rev, AttributeDict): |
2998
433428ffd13b
fixes #645 Fix git handler when doing delete remote branch
Marcin Kuzminski <marcin@python-works.com>
parents:
2995
diff
changeset
|
574 lazy_cs = True |
433428ffd13b
fixes #645 Fix git handler when doing delete remote branch
Marcin Kuzminski <marcin@python-works.com>
parents:
2995
diff
changeset
|
575 if getattr(rev, 'op', None) and getattr(rev, 'ref_name', None): |
433428ffd13b
fixes #645 Fix git handler when doing delete remote branch
Marcin Kuzminski <marcin@python-works.com>
parents:
2995
diff
changeset
|
576 lazy_cs = False |
433428ffd13b
fixes #645 Fix git handler when doing delete remote branch
Marcin Kuzminski <marcin@python-works.com>
parents:
2995
diff
changeset
|
577 lbl = '?' |
433428ffd13b
fixes #645 Fix git handler when doing delete remote branch
Marcin Kuzminski <marcin@python-works.com>
parents:
2995
diff
changeset
|
578 if rev.op == 'delete_branch': |
433428ffd13b
fixes #645 Fix git handler when doing delete remote branch
Marcin Kuzminski <marcin@python-works.com>
parents:
2995
diff
changeset
|
579 lbl = '%s' % _('Deleted branch: %s') % rev.ref_name |
433428ffd13b
fixes #645 Fix git handler when doing delete remote branch
Marcin Kuzminski <marcin@python-works.com>
parents:
2995
diff
changeset
|
580 title = '' |
433428ffd13b
fixes #645 Fix git handler when doing delete remote branch
Marcin Kuzminski <marcin@python-works.com>
parents:
2995
diff
changeset
|
581 elif rev.op == 'tag': |
433428ffd13b
fixes #645 Fix git handler when doing delete remote branch
Marcin Kuzminski <marcin@python-works.com>
parents:
2995
diff
changeset
|
582 lbl = '%s' % _('Created tag: %s') % rev.ref_name |
433428ffd13b
fixes #645 Fix git handler when doing delete remote branch
Marcin Kuzminski <marcin@python-works.com>
parents:
2995
diff
changeset
|
583 title = '' |
433428ffd13b
fixes #645 Fix git handler when doing delete remote branch
Marcin Kuzminski <marcin@python-works.com>
parents:
2995
diff
changeset
|
584 _url = '#' |
433428ffd13b
fixes #645 Fix git handler when doing delete remote branch
Marcin Kuzminski <marcin@python-works.com>
parents:
2995
diff
changeset
|
585 |
433428ffd13b
fixes #645 Fix git handler when doing delete remote branch
Marcin Kuzminski <marcin@python-works.com>
parents:
2995
diff
changeset
|
586 else: |
433428ffd13b
fixes #645 Fix git handler when doing delete remote branch
Marcin Kuzminski <marcin@python-works.com>
parents:
2995
diff
changeset
|
587 lbl = '%s' % (rev.short_id[:8]) |
433428ffd13b
fixes #645 Fix git handler when doing delete remote branch
Marcin Kuzminski <marcin@python-works.com>
parents:
2995
diff
changeset
|
588 _url = url('changeset_home', repo_name=repo_name, |
433428ffd13b
fixes #645 Fix git handler when doing delete remote branch
Marcin Kuzminski <marcin@python-works.com>
parents:
2995
diff
changeset
|
589 revision=rev.raw_id) |
433428ffd13b
fixes #645 Fix git handler when doing delete remote branch
Marcin Kuzminski <marcin@python-works.com>
parents:
2995
diff
changeset
|
590 title = tooltip(rev.message) |
2323
6c0f76330d91
fix for issue #450. Rhodecode no longer will crash when bad revision is present in journal data.
Marcin Kuzminski <marcin@python-works.com>
parents:
2203
diff
changeset
|
591 else: |
2958
c0a6a2e6bb2e
Use lightweight revisions in journal by default
Marcin Kuzminski <marcin@python-works.com>
parents:
2956
diff
changeset
|
592 ## changeset cannot be found/striped/removed etc. |
2952
029a40c58df7
Added lightweight journal option for visual
Marcin Kuzminski <marcin@python-works.com>
parents:
2950
diff
changeset
|
593 lbl = ('%s' % rev)[:12] |
2323
6c0f76330d91
fix for issue #450. Rhodecode no longer will crash when bad revision is present in journal data.
Marcin Kuzminski <marcin@python-works.com>
parents:
2203
diff
changeset
|
594 _url = '#' |
6c0f76330d91
fix for issue #450. Rhodecode no longer will crash when bad revision is present in journal data.
Marcin Kuzminski <marcin@python-works.com>
parents:
2203
diff
changeset
|
595 title = _('Changeset not found') |
2958
c0a6a2e6bb2e
Use lightweight revisions in journal by default
Marcin Kuzminski <marcin@python-works.com>
parents:
2956
diff
changeset
|
596 if parse_cs: |
c0a6a2e6bb2e
Use lightweight revisions in journal by default
Marcin Kuzminski <marcin@python-works.com>
parents:
2956
diff
changeset
|
597 return link_to(lbl, _url, title=title, class_='tooltip') |
2971
2bfcec6a3985
new tooltip implementation
Marcin Kuzminski <marcin@python-works.com>
parents:
2966
diff
changeset
|
598 return link_to(lbl, _url, raw_id=rev.raw_id, repo_name=repo_name, |
2998
433428ffd13b
fixes #645 Fix git handler when doing delete remote branch
Marcin Kuzminski <marcin@python-works.com>
parents:
2995
diff
changeset
|
599 class_='lazy-cs' if lazy_cs else '') |
2203
d9972f76322e
added emulation of pull hook for git-backend, and dummy git-push hook
Marcin Kuzminski <marcin@python-works.com>
parents:
2162
diff
changeset
|
600 |
3507
71fa9a198ac3
show correct values for compare view when multiple git tags are pushed
Marcin Kuzminski <marcin@python-works.com>
parents:
3415
diff
changeset
|
601 def _get_op(rev_txt): |
71fa9a198ac3
show correct values for compare view when multiple git tags are pushed
Marcin Kuzminski <marcin@python-works.com>
parents:
3415
diff
changeset
|
602 _op = None |
71fa9a198ac3
show correct values for compare view when multiple git tags are pushed
Marcin Kuzminski <marcin@python-works.com>
parents:
3415
diff
changeset
|
603 _name = rev_txt |
71fa9a198ac3
show correct values for compare view when multiple git tags are pushed
Marcin Kuzminski <marcin@python-works.com>
parents:
3415
diff
changeset
|
604 if len(rev_txt.split('=>')) == 2: |
71fa9a198ac3
show correct values for compare view when multiple git tags are pushed
Marcin Kuzminski <marcin@python-works.com>
parents:
3415
diff
changeset
|
605 _op, _name = rev_txt.split('=>') |
71fa9a198ac3
show correct values for compare view when multiple git tags are pushed
Marcin Kuzminski <marcin@python-works.com>
parents:
3415
diff
changeset
|
606 return _op, _name |
71fa9a198ac3
show correct values for compare view when multiple git tags are pushed
Marcin Kuzminski <marcin@python-works.com>
parents:
3415
diff
changeset
|
607 |
2203
d9972f76322e
added emulation of pull hook for git-backend, and dummy git-push hook
Marcin Kuzminski <marcin@python-works.com>
parents:
2162
diff
changeset
|
608 revs = [] |
d9972f76322e
added emulation of pull hook for git-backend, and dummy git-push hook
Marcin Kuzminski <marcin@python-works.com>
parents:
2162
diff
changeset
|
609 if len(filter(lambda v: v != '', revs_ids)) > 0: |
2958
c0a6a2e6bb2e
Use lightweight revisions in journal by default
Marcin Kuzminski <marcin@python-works.com>
parents:
2956
diff
changeset
|
610 repo = None |
2323
6c0f76330d91
fix for issue #450. Rhodecode no longer will crash when bad revision is present in journal data.
Marcin Kuzminski <marcin@python-works.com>
parents:
2203
diff
changeset
|
611 for rev in revs_ids[:revs_top_limit]: |
3507
71fa9a198ac3
show correct values for compare view when multiple git tags are pushed
Marcin Kuzminski <marcin@python-works.com>
parents:
3415
diff
changeset
|
612 _op, _name = _get_op(rev) |
2998
433428ffd13b
fixes #645 Fix git handler when doing delete remote branch
Marcin Kuzminski <marcin@python-works.com>
parents:
2995
diff
changeset
|
613 |
2958
c0a6a2e6bb2e
Use lightweight revisions in journal by default
Marcin Kuzminski <marcin@python-works.com>
parents:
2956
diff
changeset
|
614 # we want parsed changesets, or new log store format is bad |
2950
528c7f210b12
added experimental lightweight param to journal
Marcin Kuzminski <marcin@python-works.com>
parents:
2936
diff
changeset
|
615 if parse_cs: |
528c7f210b12
added experimental lightweight param to journal
Marcin Kuzminski <marcin@python-works.com>
parents:
2936
diff
changeset
|
616 try: |
2958
c0a6a2e6bb2e
Use lightweight revisions in journal by default
Marcin Kuzminski <marcin@python-works.com>
parents:
2956
diff
changeset
|
617 if repo is None: |
c0a6a2e6bb2e
Use lightweight revisions in journal by default
Marcin Kuzminski <marcin@python-works.com>
parents:
2956
diff
changeset
|
618 repo = user_log.repository.scm_instance |
c0a6a2e6bb2e
Use lightweight revisions in journal by default
Marcin Kuzminski <marcin@python-works.com>
parents:
2956
diff
changeset
|
619 _rev = repo.get_changeset(rev) |
c0a6a2e6bb2e
Use lightweight revisions in journal by default
Marcin Kuzminski <marcin@python-works.com>
parents:
2956
diff
changeset
|
620 revs.append(_rev) |
2950
528c7f210b12
added experimental lightweight param to journal
Marcin Kuzminski <marcin@python-works.com>
parents:
2936
diff
changeset
|
621 except ChangesetDoesNotExistError: |
528c7f210b12
added experimental lightweight param to journal
Marcin Kuzminski <marcin@python-works.com>
parents:
2936
diff
changeset
|
622 log.error('cannot find revision %s in this repo' % rev) |
528c7f210b12
added experimental lightweight param to journal
Marcin Kuzminski <marcin@python-works.com>
parents:
2936
diff
changeset
|
623 revs.append(rev) |
528c7f210b12
added experimental lightweight param to journal
Marcin Kuzminski <marcin@python-works.com>
parents:
2936
diff
changeset
|
624 continue |
528c7f210b12
added experimental lightweight param to journal
Marcin Kuzminski <marcin@python-works.com>
parents:
2936
diff
changeset
|
625 else: |
2958
c0a6a2e6bb2e
Use lightweight revisions in journal by default
Marcin Kuzminski <marcin@python-works.com>
parents:
2956
diff
changeset
|
626 _rev = AttributeDict({ |
2950
528c7f210b12
added experimental lightweight param to journal
Marcin Kuzminski <marcin@python-works.com>
parents:
2936
diff
changeset
|
627 'short_id': rev[:12], |
528c7f210b12
added experimental lightweight param to journal
Marcin Kuzminski <marcin@python-works.com>
parents:
2936
diff
changeset
|
628 'raw_id': rev, |
2958
c0a6a2e6bb2e
Use lightweight revisions in journal by default
Marcin Kuzminski <marcin@python-works.com>
parents:
2956
diff
changeset
|
629 'message': '', |
2998
433428ffd13b
fixes #645 Fix git handler when doing delete remote branch
Marcin Kuzminski <marcin@python-works.com>
parents:
2995
diff
changeset
|
630 'op': _op, |
433428ffd13b
fixes #645 Fix git handler when doing delete remote branch
Marcin Kuzminski <marcin@python-works.com>
parents:
2995
diff
changeset
|
631 'ref_name': _name |
2950
528c7f210b12
added experimental lightweight param to journal
Marcin Kuzminski <marcin@python-works.com>
parents:
2936
diff
changeset
|
632 }) |
2958
c0a6a2e6bb2e
Use lightweight revisions in journal by default
Marcin Kuzminski <marcin@python-works.com>
parents:
2956
diff
changeset
|
633 revs.append(_rev) |
3890
f5a1314886ec
replace list appends with list literals when possible
Marcin Kuzminski <marcin@python-works.com>
parents:
3868
diff
changeset
|
634 cs_links = [" " + ', '.join( |
2012
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
635 [lnk(rev, repo_name) for rev in revs[:revs_limit]] |
3890
f5a1314886ec
replace list appends with list literals when possible
Marcin Kuzminski <marcin@python-works.com>
parents:
3868
diff
changeset
|
636 )] |
3507
71fa9a198ac3
show correct values for compare view when multiple git tags are pushed
Marcin Kuzminski <marcin@python-works.com>
parents:
3415
diff
changeset
|
637 _op1, _name1 = _get_op(revs_ids[0]) |
71fa9a198ac3
show correct values for compare view when multiple git tags are pushed
Marcin Kuzminski <marcin@python-works.com>
parents:
3415
diff
changeset
|
638 _op2, _name2 = _get_op(revs_ids[-1]) |
71fa9a198ac3
show correct values for compare view when multiple git tags are pushed
Marcin Kuzminski <marcin@python-works.com>
parents:
3415
diff
changeset
|
639 |
71fa9a198ac3
show correct values for compare view when multiple git tags are pushed
Marcin Kuzminski <marcin@python-works.com>
parents:
3415
diff
changeset
|
640 _rev = '%s...%s' % (_name1, _name2) |
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
|
641 |
2012
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
642 compare_view = ( |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
643 ' <div class="compare_view tooltip" title="%s">' |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
644 '<a href="%s">%s</a> </div>' % ( |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
645 _('Show all combined changesets %s->%s') % ( |
2954
9282b4f38277
shorten the journal compare tooltip
Marcin Kuzminski <marcin@python-works.com>
parents:
2952
diff
changeset
|
646 revs_ids[0][:12], revs_ids[-1][:12] |
2012
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
647 ), |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
648 url('changeset_home', repo_name=repo_name, |
3507
71fa9a198ac3
show correct values for compare view when multiple git tags are pushed
Marcin Kuzminski <marcin@python-works.com>
parents:
3415
diff
changeset
|
649 revision=_rev |
2012
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
650 ), |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
651 _('compare view') |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
652 ) |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
653 ) |
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
|
654 |
2012
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
655 # if we have exactly one more than normally displayed |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
656 # just display it, takes less space than displaying |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
657 # "and 1 more revisions" |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
658 if len(revs_ids) == revs_limit + 1: |
1979 | 659 rev = revs[revs_limit] |
2012
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
660 cs_links.append(", " + lnk(rev, repo_name)) |
1979 | 661 |
662 # hidden-by-default ones | |
2012
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
663 if len(revs_ids) > revs_limit + 1: |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
664 uniq_id = revs_ids[0] |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
665 html_tmpl = ( |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
666 '<span> %s <a class="show_more" id="_%s" ' |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
667 'href="#more">%s</a> %s</span>' |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
668 ) |
1087
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
669 if not feed: |
2012
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
670 cs_links.append(html_tmpl % ( |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
671 _('and'), |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
672 uniq_id, _('%s more') % (len(revs_ids) - revs_limit), |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
673 _('revisions') |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
674 ) |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
675 ) |
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
|
676 |
1087
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
677 if not feed: |
1979 | 678 html_tmpl = '<span id="%s" style="display:none">, %s </span>' |
1087
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
679 else: |
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
680 html_tmpl = '<span id="%s"> %s </span>' |
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
681 |
2012
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
682 morelinks = ', '.join( |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
683 [lnk(rev, repo_name) for rev in revs[revs_limit:]] |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
684 ) |
1979 | 685 |
2012
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
686 if len(revs_ids) > revs_top_limit: |
1979 | 687 morelinks += ', ...' |
688 | |
689 cs_links.append(html_tmpl % (uniq_id, morelinks)) | |
1024
22c147726ea6
hidden compare view link for single revision push
Marcin Kuzminski <marcin@python-works.com>
parents:
1022
diff
changeset
|
690 if len(revs) > 1: |
1359
54fc83f2192c
Removed all string concat for exchange of ''.join()
Marcin Kuzminski <marcin@python-works.com>
parents:
1356
diff
changeset
|
691 cs_links.append(compare_view) |
54fc83f2192c
Removed all string concat for exchange of ''.join()
Marcin Kuzminski <marcin@python-works.com>
parents:
1356
diff
changeset
|
692 return ''.join(cs_links) |
734
49eb69d78988
implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents:
718
diff
changeset
|
693 |
718
7df3855bf6c7
Added fork name to journal
Marcin Kuzminski <marcin@python-works.com>
parents:
714
diff
changeset
|
694 def get_fork_name(): |
953
def3578dac8c
fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents:
947
diff
changeset
|
695 repo_name = action_params |
2914
1cd1cbe6cdcc
formatting change on helper, remove str() call
Marcin Kuzminski <marcin@python-works.com>
parents:
2866
diff
changeset
|
696 _url = url('summary_home', repo_name=repo_name) |
1cd1cbe6cdcc
formatting change on helper, remove str() call
Marcin Kuzminski <marcin@python-works.com>
parents:
2866
diff
changeset
|
697 return _('fork name %s') % link_to(action_params, _url) |
953
def3578dac8c
fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents:
947
diff
changeset
|
698 |
2375
bc2d8c03c050
Implemented #467 Journal logs comments on changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2367
diff
changeset
|
699 def get_user_name(): |
bc2d8c03c050
Implemented #467 Journal logs comments on changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2367
diff
changeset
|
700 user_name = action_params |
bc2d8c03c050
Implemented #467 Journal logs comments on changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2367
diff
changeset
|
701 return user_name |
bc2d8c03c050
Implemented #467 Journal logs comments on changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2367
diff
changeset
|
702 |
bc2d8c03c050
Implemented #467 Journal logs comments on changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2367
diff
changeset
|
703 def get_users_group(): |
bc2d8c03c050
Implemented #467 Journal logs comments on changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2367
diff
changeset
|
704 group_name = action_params |
bc2d8c03c050
Implemented #467 Journal logs comments on changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2367
diff
changeset
|
705 return group_name |
bc2d8c03c050
Implemented #467 Journal logs comments on changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2367
diff
changeset
|
706 |
2609
200a5b747e69
- added action when someone closes pull request in journal
Marcin Kuzminski <marcin@python-works.com>
parents:
2532
diff
changeset
|
707 def get_pull_request(): |
200a5b747e69
- added action when someone closes pull request in journal
Marcin Kuzminski <marcin@python-works.com>
parents:
2532
diff
changeset
|
708 pull_request_id = action_params |
3063
ca2b21819dfd
Implemented better support for Wildcard queries
Marcin Kuzminski <marcin@python-works.com>
parents:
3012
diff
changeset
|
709 deleted = user_log.repository is None |
ca2b21819dfd
Implemented better support for Wildcard queries
Marcin Kuzminski <marcin@python-works.com>
parents:
3012
diff
changeset
|
710 if deleted: |
ca2b21819dfd
Implemented better support for Wildcard queries
Marcin Kuzminski <marcin@python-works.com>
parents:
3012
diff
changeset
|
711 repo_name = user_log.repository_name |
ca2b21819dfd
Implemented better support for Wildcard queries
Marcin Kuzminski <marcin@python-works.com>
parents:
3012
diff
changeset
|
712 else: |
ca2b21819dfd
Implemented better support for Wildcard queries
Marcin Kuzminski <marcin@python-works.com>
parents:
3012
diff
changeset
|
713 repo_name = user_log.repository.repo_name |
2609
200a5b747e69
- added action when someone closes pull request in journal
Marcin Kuzminski <marcin@python-works.com>
parents:
2532
diff
changeset
|
714 return link_to(_('Pull request #%s') % pull_request_id, |
200a5b747e69
- added action when someone closes pull request in journal
Marcin Kuzminski <marcin@python-works.com>
parents:
2532
diff
changeset
|
715 url('pullrequest_show', repo_name=repo_name, |
200a5b747e69
- added action when someone closes pull request in journal
Marcin Kuzminski <marcin@python-works.com>
parents:
2532
diff
changeset
|
716 pull_request_id=pull_request_id)) |
200a5b747e69
- added action when someone closes pull request in journal
Marcin Kuzminski <marcin@python-works.com>
parents:
2532
diff
changeset
|
717 |
3868
e262494ca099
store download archive actions in journal
Marcin Kuzminski <marcin@python-works.com>
parents:
3821
diff
changeset
|
718 def get_archive_name(): |
e262494ca099
store download archive actions in journal
Marcin Kuzminski <marcin@python-works.com>
parents:
3821
diff
changeset
|
719 archive_name = action_params |
e262494ca099
store download archive actions in journal
Marcin Kuzminski <marcin@python-works.com>
parents:
3821
diff
changeset
|
720 return archive_name |
e262494ca099
store download archive actions in journal
Marcin Kuzminski <marcin@python-works.com>
parents:
3821
diff
changeset
|
721 |
2375
bc2d8c03c050
Implemented #467 Journal logs comments on changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2367
diff
changeset
|
722 # action : translated str, callback(extractor), icon |
bc2d8c03c050
Implemented #467 Journal logs comments on changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2367
diff
changeset
|
723 action_map = { |
2491
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
724 'user_deleted_repo': (_('[deleted] repository'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
725 None, 'database_delete.png'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
726 'user_created_repo': (_('[created] repository'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
727 None, 'database_add.png'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
728 'user_created_fork': (_('[created] repository as fork'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
729 None, 'arrow_divide.png'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
730 'user_forked_repo': (_('[forked] repository'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
731 get_fork_name, 'arrow_divide.png'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
732 'user_updated_repo': (_('[updated] repository'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
733 None, 'database_edit.png'), |
3868
e262494ca099
store download archive actions in journal
Marcin Kuzminski <marcin@python-works.com>
parents:
3821
diff
changeset
|
734 'user_downloaded_archive': (_('[downloaded] archive from repository'), |
e262494ca099
store download archive actions in journal
Marcin Kuzminski <marcin@python-works.com>
parents:
3821
diff
changeset
|
735 get_archive_name, 'page_white_compressed.png'), |
2491
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
736 'admin_deleted_repo': (_('[delete] repository'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
737 None, 'database_delete.png'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
738 'admin_created_repo': (_('[created] repository'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
739 None, 'database_add.png'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
740 'admin_forked_repo': (_('[forked] repository'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
741 None, 'arrow_divide.png'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
742 'admin_updated_repo': (_('[updated] repository'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
743 None, 'database_edit.png'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
744 'admin_created_user': (_('[created] user'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
745 get_user_name, 'user_add.png'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
746 'admin_updated_user': (_('[updated] user'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
747 get_user_name, 'user_edit.png'), |
3415
b8f929bff7e3
fixed tests and missing replacements from 5f1850e4712a
Marcin Kuzminski <marcin@python-works.com>
parents:
3405
diff
changeset
|
748 'admin_created_users_group': (_('[created] user group'), |
2491
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
749 get_users_group, 'group_add.png'), |
3415
b8f929bff7e3
fixed tests and missing replacements from 5f1850e4712a
Marcin Kuzminski <marcin@python-works.com>
parents:
3405
diff
changeset
|
750 'admin_updated_users_group': (_('[updated] user group'), |
2491
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
751 get_users_group, 'group_edit.png'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
752 'user_commented_revision': (_('[commented] on revision in repository'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
753 get_cs_links, 'comment_add.png'), |
2609
200a5b747e69
- added action when someone closes pull request in journal
Marcin Kuzminski <marcin@python-works.com>
parents:
2532
diff
changeset
|
754 'user_commented_pull_request': (_('[commented] on pull request for'), |
200a5b747e69
- added action when someone closes pull request in journal
Marcin Kuzminski <marcin@python-works.com>
parents:
2532
diff
changeset
|
755 get_pull_request, 'comment_add.png'), |
200a5b747e69
- added action when someone closes pull request in journal
Marcin Kuzminski <marcin@python-works.com>
parents:
2532
diff
changeset
|
756 'user_closed_pull_request': (_('[closed] pull request for'), |
200a5b747e69
- added action when someone closes pull request in journal
Marcin Kuzminski <marcin@python-works.com>
parents:
2532
diff
changeset
|
757 get_pull_request, 'tick.png'), |
2491
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
758 'push': (_('[pushed] into'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
759 get_cs_links, 'script_add.png'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
760 'push_local': (_('[committed via RhodeCode] into repository'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
761 get_cs_links, 'script_edit.png'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
762 'push_remote': (_('[pulled from remote] into repository'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
763 get_cs_links, 'connect.png'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
764 'pull': (_('[pulled] from'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
765 None, 'down_16.png'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
766 'started_following_repo': (_('[started following] repository'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
767 None, 'heart_add.png'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
768 'stopped_following_repo': (_('[stopped following] repository'), |
9fad28af93bd
fixed ico for pull request comment
Marcin Kuzminski <marcin@python-works.com>
parents:
2466
diff
changeset
|
769 None, 'heart_delete.png'), |
2375
bc2d8c03c050
Implemented #467 Journal logs comments on changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2367
diff
changeset
|
770 } |
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
|
771 |
1087
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
772 action_str = action_map.get(action, action) |
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
773 if feed: |
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
774 action = action_str[0].replace('[', '').replace(']', '') |
51076a2a2b64
fixed unicode problems with file paths.
Marcin Kuzminski <marcin@python-works.com>
parents:
1055
diff
changeset
|
775 else: |
2012
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
776 action = action_str[0]\ |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
777 .replace('[', '<span class="journal_highlight">')\ |
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
778 .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
|
779 |
2012
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
780 action_params_func = lambda: "" |
1052
c96651aebd8a
fixed journal look & feel
Marcin Kuzminski <marcin@python-works.com>
parents:
1050
diff
changeset
|
781 |
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
|
782 if callable(action_str[1]): |
1052
c96651aebd8a
fixed journal look & feel
Marcin Kuzminski <marcin@python-works.com>
parents:
1050
diff
changeset
|
783 action_params_func = action_str[1] |
953
def3578dac8c
fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents:
947
diff
changeset
|
784 |
2375
bc2d8c03c050
Implemented #467 Journal logs comments on changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2367
diff
changeset
|
785 def action_parser_icon(): |
bc2d8c03c050
Implemented #467 Journal logs comments on changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2367
diff
changeset
|
786 action = user_log.action |
bc2d8c03c050
Implemented #467 Journal logs comments on changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2367
diff
changeset
|
787 action_params = None |
bc2d8c03c050
Implemented #467 Journal logs comments on changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2367
diff
changeset
|
788 x = action.split(':') |
1959
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
789 |
2375
bc2d8c03c050
Implemented #467 Journal logs comments on changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2367
diff
changeset
|
790 if len(x) > 1: |
bc2d8c03c050
Implemented #467 Journal logs comments on changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2367
diff
changeset
|
791 action, action_params = x |
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
|
792 |
2375
bc2d8c03c050
Implemented #467 Journal logs comments on changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2367
diff
changeset
|
793 tmpl = """<img src="%s%s" alt="%s"/>""" |
bc2d8c03c050
Implemented #467 Journal logs comments on changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2367
diff
changeset
|
794 ico = action_map.get(action, ['', '', ''])[2] |
bc2d8c03c050
Implemented #467 Journal logs comments on changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2367
diff
changeset
|
795 return literal(tmpl % ((url('/images/icons/')), ico, action)) |
bc2d8c03c050
Implemented #467 Journal logs comments on changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2367
diff
changeset
|
796 |
bc2d8c03c050
Implemented #467 Journal logs comments on changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2367
diff
changeset
|
797 # returned callbacks we need to call to get |
bc2d8c03c050
Implemented #467 Journal logs comments on changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2367
diff
changeset
|
798 return [lambda: literal(action), action_params_func, action_parser_icon] |
bc2d8c03c050
Implemented #467 Journal logs comments on changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2367
diff
changeset
|
799 |
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
|
800 |
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
|
801 |
635
fd63782c4426
Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents:
631
diff
changeset
|
802 #============================================================================== |
307
504feff57b49
added permission functions to webhelpers, updated dbmanage permissions
Marcin Kuzminski <marcin@python-works.com>
parents:
293
diff
changeset
|
803 # PERMS |
635
fd63782c4426
Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents:
631
diff
changeset
|
804 #============================================================================== |
547
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
512
diff
changeset
|
805 from rhodecode.lib.auth import HasPermissionAny, HasPermissionAll, \ |
3222
b4daef4cc26d
Group management delegation:
Marcin Kuzminski <marcin@python-works.com>
parents:
3156
diff
changeset
|
806 HasRepoPermissionAny, HasRepoPermissionAll, HasReposGroupPermissionAll, \ |
b4daef4cc26d
Group management delegation:
Marcin Kuzminski <marcin@python-works.com>
parents:
3156
diff
changeset
|
807 HasReposGroupPermissionAny |
282
237470e64bb8
switched filters into webhelpers for easy of usage.
Marcin Kuzminski <marcin@python-works.com>
parents:
281
diff
changeset
|
808 |
1959
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
809 |
635
fd63782c4426
Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents:
631
diff
changeset
|
810 #============================================================================== |
398
8c50b164fb58
Implemented basic gravatar support on admin pages only for now
Marcin Kuzminski <marcin@python-works.com>
parents:
307
diff
changeset
|
811 # 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
|
812 #============================================================================== |
282
237470e64bb8
switched filters into webhelpers for easy of usage.
Marcin Kuzminski <marcin@python-works.com>
parents:
281
diff
changeset
|
813 |
3905
f7bf0cebe391
Switch gravatar to always use ssl.
Marcin Kuzminski <marcin@python-works.com>
parents:
3890
diff
changeset
|
814 def gravatar_url(email_address, size=30, ssl_enabled=True): |
3080
39bbe5d31a54
fixes issue #674, alternative gravatar url had an error when there was no valid email in commit data
Marcin Kuzminski <marcin@python-works.com>
parents:
3070
diff
changeset
|
815 from pylons import url # doh, we need to re-import url to mock it later |
3905
f7bf0cebe391
Switch gravatar to always use ssl.
Marcin Kuzminski <marcin@python-works.com>
parents:
3890
diff
changeset
|
816 from rhodecode import CONFIG |
f7bf0cebe391
Switch gravatar to always use ssl.
Marcin Kuzminski <marcin@python-works.com>
parents:
3890
diff
changeset
|
817 |
f7bf0cebe391
Switch gravatar to always use ssl.
Marcin Kuzminski <marcin@python-works.com>
parents:
3890
diff
changeset
|
818 _def = 'anonymous@rhodecode.org' # default gravatar |
f7bf0cebe391
Switch gravatar to always use ssl.
Marcin Kuzminski <marcin@python-works.com>
parents:
3890
diff
changeset
|
819 use_gravatar = str2bool(CONFIG.get('use_gravatar')) |
f7bf0cebe391
Switch gravatar to always use ssl.
Marcin Kuzminski <marcin@python-works.com>
parents:
3890
diff
changeset
|
820 alternative_gravatar_url = CONFIG.get('alternative_gravatar_url', '') |
3367
e6c551663a54
#763 gravatar helper function should fallback into default image if somehow email provided is empty.
Marcin Kuzminski <marcin@python-works.com>
parents:
3222
diff
changeset
|
821 email_address = email_address or _def |
3905
f7bf0cebe391
Switch gravatar to always use ssl.
Marcin Kuzminski <marcin@python-works.com>
parents:
3890
diff
changeset
|
822 if not use_gravatar or not email_address or email_address == _def: |
3080
39bbe5d31a54
fixes issue #674, alternative gravatar url had an error when there was no valid email in commit data
Marcin Kuzminski <marcin@python-works.com>
parents:
3070
diff
changeset
|
823 f = lambda a, l: min(l, key=lambda x: abs(x - a)) |
39bbe5d31a54
fixes issue #674, alternative gravatar url had an error when there was no valid email in commit data
Marcin Kuzminski <marcin@python-works.com>
parents:
3070
diff
changeset
|
824 return url("/images/user%s.png" % f(size, [14, 16, 20, 24, 30])) |
39bbe5d31a54
fixes issue #674, alternative gravatar url had an error when there was no valid email in commit data
Marcin Kuzminski <marcin@python-works.com>
parents:
3070
diff
changeset
|
825 |
3905
f7bf0cebe391
Switch gravatar to always use ssl.
Marcin Kuzminski <marcin@python-works.com>
parents:
3890
diff
changeset
|
826 if use_gravatar and alternative_gravatar_url: |
f7bf0cebe391
Switch gravatar to always use ssl.
Marcin Kuzminski <marcin@python-works.com>
parents:
3890
diff
changeset
|
827 tmpl = alternative_gravatar_url |
2836
819eb7f8a555
Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents:
2751
diff
changeset
|
828 parsed_url = urlparse.urlparse(url.current(qualified=True)) |
2751
e291f25ea87f
fixes issue #543, un-broken alternative gravatar option
Marcin Kuzminski <marcin@python-works.com>
parents:
2735
diff
changeset
|
829 tmpl = tmpl.replace('{email}', email_address)\ |
2836
819eb7f8a555
Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents:
2751
diff
changeset
|
830 .replace('{md5email}', hashlib.md5(email_address.lower()).hexdigest()) \ |
819eb7f8a555
Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents:
2751
diff
changeset
|
831 .replace('{netloc}', parsed_url.netloc)\ |
819eb7f8a555
Implemented patch from andrewsh ref #565 Add support for {netloc} and {scheme}
Marcin Kuzminski <marcin@python-works.com>
parents:
2751
diff
changeset
|
832 .replace('{scheme}', parsed_url.scheme)\ |
2751
e291f25ea87f
fixes issue #543, un-broken alternative gravatar option
Marcin Kuzminski <marcin@python-works.com>
parents:
2735
diff
changeset
|
833 .replace('{size}', str(size)) |
e291f25ea87f
fixes issue #543, un-broken alternative gravatar option
Marcin Kuzminski <marcin@python-works.com>
parents:
2735
diff
changeset
|
834 return tmpl |
e291f25ea87f
fixes issue #543, un-broken alternative gravatar option
Marcin Kuzminski <marcin@python-works.com>
parents:
2735
diff
changeset
|
835 |
398
8c50b164fb58
Implemented basic gravatar support on admin pages only for now
Marcin Kuzminski <marcin@python-works.com>
parents:
307
diff
changeset
|
836 default = 'identicon' |
8c50b164fb58
Implemented basic gravatar support on admin pages only for now
Marcin Kuzminski <marcin@python-works.com>
parents:
307
diff
changeset
|
837 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
|
838 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
|
839 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
|
840 |
1101
c1080b42a7cb
fixed problem with int. chars in gravatars
Marcin Kuzminski <marcin@python-works.com>
parents:
1100
diff
changeset
|
841 if isinstance(email_address, unicode): |
c1080b42a7cb
fixed problem with int. chars in gravatars
Marcin Kuzminski <marcin@python-works.com>
parents:
1100
diff
changeset
|
842 #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
|
843 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
|
844 # construct the url |
401
b1debb6c5a09
implemented gravatars to changesets, updated styling for changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
400
diff
changeset
|
845 gravatar_url = baseurl + hashlib.md5(email_address.lower()).hexdigest() + "?" |
2012
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
846 gravatar_url += urllib.urlencode({'d': default, 's': str(size)}) |
398
8c50b164fb58
Implemented basic gravatar support on admin pages only for now
Marcin Kuzminski <marcin@python-works.com>
parents:
307
diff
changeset
|
847 |
8c50b164fb58
Implemented basic gravatar support on admin pages only for now
Marcin Kuzminski <marcin@python-works.com>
parents:
307
diff
changeset
|
848 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
|
849 |
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
|
850 |
3776
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
851 class Page(_Page): |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
852 """ |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
853 Custom pager to match rendering style with YUI paginator |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
854 """ |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
855 |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
856 def _get_pos(self, cur_page, max_page, items): |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
857 edge = (items / 2) + 1 |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
858 if (cur_page <= edge): |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
859 radius = max(items / 2, items - cur_page) |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
860 elif (max_page - cur_page) < edge: |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
861 radius = (items - 1) - (max_page - cur_page) |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
862 else: |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
863 radius = items / 2 |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
864 |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
865 left = max(1, (cur_page - (radius))) |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
866 right = min(max_page, cur_page + (radius)) |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
867 return left, cur_page, right |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
868 |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
869 def _range(self, regexp_match): |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
870 """ |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
871 Return range of linked pages (e.g. '1 2 [3] 4 5 6 7 8'). |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
872 |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
873 Arguments: |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
874 |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
875 regexp_match |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
876 A "re" (regular expressions) match object containing the |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
877 radius of linked pages around the current page in |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
878 regexp_match.group(1) as a string |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
879 |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
880 This function is supposed to be called as a callable in |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
881 re.sub. |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
882 |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
883 """ |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
884 radius = int(regexp_match.group(1)) |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
885 |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
886 # Compute the first and last page number within the radius |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
887 # e.g. '1 .. 5 6 [7] 8 9 .. 12' |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
888 # -> leftmost_page = 5 |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
889 # -> rightmost_page = 9 |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
890 leftmost_page, _cur, rightmost_page = self._get_pos(self.page, |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
891 self.last_page, |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
892 (radius * 2) + 1) |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
893 nav_items = [] |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
894 |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
895 # Create a link to the first page (unless we are on the first page |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
896 # or there would be no need to insert '..' spacers) |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
897 if self.page != self.first_page and self.first_page < leftmost_page: |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
898 nav_items.append(self._pagerlink(self.first_page, self.first_page)) |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
899 |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
900 # Insert dots if there are pages between the first page |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
901 # and the currently displayed page range |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
902 if leftmost_page - self.first_page > 1: |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
903 # Wrap in a SPAN tag if nolink_attr is set |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
904 text = '..' |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
905 if self.dotdot_attr: |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
906 text = HTML.span(c=text, **self.dotdot_attr) |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
907 nav_items.append(text) |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
908 |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
909 for thispage in xrange(leftmost_page, rightmost_page + 1): |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
910 # Hilight the current page number and do not use a link |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
911 if thispage == self.page: |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
912 text = '%s' % (thispage,) |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
913 # Wrap in a SPAN tag if nolink_attr is set |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
914 if self.curpage_attr: |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
915 text = HTML.span(c=text, **self.curpage_attr) |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
916 nav_items.append(text) |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
917 # Otherwise create just a link to that page |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
918 else: |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
919 text = '%s' % (thispage,) |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
920 nav_items.append(self._pagerlink(thispage, text)) |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
921 |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
922 # Insert dots if there are pages between the displayed |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
923 # page numbers and the end of the page range |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
924 if self.last_page - rightmost_page > 1: |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
925 text = '..' |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
926 # Wrap in a SPAN tag if nolink_attr is set |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
927 if self.dotdot_attr: |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
928 text = HTML.span(c=text, **self.dotdot_attr) |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
929 nav_items.append(text) |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
930 |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
931 # Create a link to the very last page (unless we are on the last |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
932 # page or there would be no need to insert '..' spacers) |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
933 if self.page != self.last_page and rightmost_page < self.last_page: |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
934 nav_items.append(self._pagerlink(self.last_page, self.last_page)) |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
935 |
3915
a42bfe8a9335
moved make-index command to paster_commands module
Marcin Kuzminski <marcin@python-works.com>
parents:
3905
diff
changeset
|
936 ## prerender links |
a42bfe8a9335
moved make-index command to paster_commands module
Marcin Kuzminski <marcin@python-works.com>
parents:
3905
diff
changeset
|
937 nav_items.append(literal('<link rel="prerender" href="/rhodecode/changelog/1?page=%s">' % str(int(self.page)+1))) |
3776
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
938 return self.separator.join(nav_items) |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
939 |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
940 def pager(self, format='~2~', page_param='page', partial_param='partial', |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
941 show_if_single_page=False, separator=' ', onclick=None, |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
942 symbol_first='<<', symbol_last='>>', |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
943 symbol_previous='<', symbol_next='>', |
3915
a42bfe8a9335
moved make-index command to paster_commands module
Marcin Kuzminski <marcin@python-works.com>
parents:
3905
diff
changeset
|
944 link_attr={'class': 'pager_link', 'rel': 'prerender'}, |
3776
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
945 curpage_attr={'class': 'pager_curpage'}, |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
946 dotdot_attr={'class': 'pager_dotdot'}, **kwargs): |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
947 |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
948 self.curpage_attr = curpage_attr |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
949 self.separator = separator |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
950 self.pager_kwargs = kwargs |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
951 self.page_param = page_param |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
952 self.partial_param = partial_param |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
953 self.onclick = onclick |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
954 self.link_attr = link_attr |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
955 self.dotdot_attr = dotdot_attr |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
956 |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
957 # Don't show navigator if there is no more than one page |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
958 if self.page_count == 0 or (self.page_count == 1 and not show_if_single_page): |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
959 return '' |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
960 |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
961 from string import Template |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
962 # Replace ~...~ in token format by range of pages |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
963 result = re.sub(r'~(\d+)~', self._range, format) |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
964 |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
965 # Interpolate '%' variables |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
966 result = Template(result).safe_substitute({ |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
967 'first_page': self.first_page, |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
968 'last_page': self.last_page, |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
969 'page': self.page, |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
970 'page_count': self.page_count, |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
971 'items_per_page': self.items_per_page, |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
972 'first_item': self.first_item, |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
973 'last_item': self.last_item, |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
974 'item_count': self.item_count, |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
975 'link_first': self.page > self.first_page and \ |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
976 self._pagerlink(self.first_page, symbol_first) or '', |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
977 'link_last': self.page < self.last_page and \ |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
978 self._pagerlink(self.last_page, symbol_last) or '', |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
979 'link_previous': self.previous_page and \ |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
980 self._pagerlink(self.previous_page, symbol_previous) \ |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
981 or HTML.span(symbol_previous, class_="yui-pg-previous"), |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
982 'link_next': self.next_page and \ |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
983 self._pagerlink(self.next_page, symbol_next) \ |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
984 or HTML.span(symbol_next, class_="yui-pg-next") |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
985 }) |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
986 |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
987 return literal(result) |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
988 |
13241a4075e9
Unified the paginators for pylons and YUI.
Marcin Kuzminski <marcin@python-works.com>
parents:
3766
diff
changeset
|
989 |
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
|
990 #============================================================================== |
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
|
991 # 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
|
992 #============================================================================== |
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
|
993 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
|
994 |
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
|
995 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
|
996 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
|
997 |
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
|
998 """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
|
999 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
|
1000 """ |
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
|
1001 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
|
1002 |
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
|
1003 # 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
|
1004 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
|
1005 |
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
|
1006 # 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
|
1007 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
|
1008 |
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
|
1009 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
|
1010 |
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
|
1011 # 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
|
1012 # 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
|
1013 try: |
2012
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
1014 self.page = int(page) # make it int() if we get it as a string |
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
|
1015 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
|
1016 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
|
1017 |
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
|
1018 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
|
1019 |
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
|
1020 # 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
|
1021 # 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
|
1022 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
|
1023 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
|
1024 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
|
1025 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
|
1026 |
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
|
1027 # 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
|
1028 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
|
1029 self.first_page = 1 |
1422
e69da281e235
fixed issues with repo pager
Marcin Kuzminski <marcin@python-works.com>
parents:
1421
diff
changeset
|
1030 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
|
1031 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
|
1032 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
|
1033 |
1818
cf51bbfb120e
auto white-space removal
Marcin Kuzminski <marcin@python-works.com>
parents:
1789
diff
changeset
|
1034 # Make sure that the requested page number is the range of |
1766 | 1035 # valid pages |
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
|
1036 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
|
1037 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
|
1038 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
|
1039 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
|
1040 |
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
|
1041 # 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
|
1042 # 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
|
1043 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
|
1044 items_per_page)) |
e69da281e235
fixed issues with repo pager
Marcin Kuzminski <marcin@python-works.com>
parents:
1421
diff
changeset
|
1045 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
|
1046 (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
|
1047 |
1670
d2de0c2f02cd
#77 code review
Marcin Kuzminski <marcin@python-works.com>
parents:
1656
diff
changeset
|
1048 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
|
1049 |
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
|
1050 # 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
|
1051 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
|
1052 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
|
1053 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
|
1054 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
|
1055 |
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
|
1056 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
|
1057 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
|
1058 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
|
1059 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
|
1060 |
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
|
1061 # 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
|
1062 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
|
1063 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
|
1064 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
|
1065 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
|
1066 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
|
1067 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
|
1068 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
|
1069 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
|
1070 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
|
1071 |
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
|
1072 # 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
|
1073 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
|
1074 |
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
|
1075 |
990
7a1df0130533
moved tooltip function from the for loop and from templates to helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
966
diff
changeset
|
1076 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
|
1077 """ |
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
|
1078 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
|
1079 It limits the output to 30 entries |
1818
cf51bbfb120e
auto white-space removal
Marcin Kuzminski <marcin@python-works.com>
parents:
1789
diff
changeset
|
1080 |
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
|
1081 :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
|
1082 """ |
990
7a1df0130533
moved tooltip function from the for loop and from templates to helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
966
diff
changeset
|
1083 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
|
1084 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
|
1085 suf = '' |
7a1df0130533
moved tooltip function from the for loop and from templates to helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
966
diff
changeset
|
1086 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
|
1087 suf = '<br/>' + _(' and %s more') % (len(nodes) - 30) |
1257
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
1088 return literal(pref + '<br/> '.join([safe_unicode(x.path) |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
1089 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
|
1090 else: |
7a1df0130533
moved tooltip function from the for loop and from templates to helpers
Marcin Kuzminski <marcin@python-works.com>
parents:
966
diff
changeset
|
1091 return ': ' + _('No Files') |
1159
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1154
diff
changeset
|
1092 |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1154
diff
changeset
|
1093 |
3599
8087731920d8
breadcrumbs: make repo names link to summary pages
Mads Kiilerich <madski@unity3d.com>
parents:
3588
diff
changeset
|
1094 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
|
1095 """ |
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
|
1096 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
|
1097 joins » on each group to create a fancy link |
1818
cf51bbfb120e
auto white-space removal
Marcin Kuzminski <marcin@python-works.com>
parents:
1789
diff
changeset
|
1098 |
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
|
1099 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
|
1100 group >> subgroup >> repo |
1818
cf51bbfb120e
auto white-space removal
Marcin Kuzminski <marcin@python-works.com>
parents:
1789
diff
changeset
|
1101 |
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
|
1102 :param groups_and_repos: |
3012
58f3bba0ddc1
extend helper for better breadcrumbs for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
2998
diff
changeset
|
1103 :param last_url: |
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
|
1104 """ |
3599
8087731920d8
breadcrumbs: make repo names link to summary pages
Mads Kiilerich <madski@unity3d.com>
parents:
3588
diff
changeset
|
1105 groups, just_name, repo_name = groups_and_repos |
8087731920d8
breadcrumbs: make repo names link to summary pages
Mads Kiilerich <madski@unity3d.com>
parents:
3588
diff
changeset
|
1106 last_url = url('summary_home', repo_name=repo_name) |
8087731920d8
breadcrumbs: make repo names link to summary pages
Mads Kiilerich <madski@unity3d.com>
parents:
3588
diff
changeset
|
1107 last_link = link_to(just_name, last_url) |
1159
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1154
diff
changeset
|
1108 |
3599
8087731920d8
breadcrumbs: make repo names link to summary pages
Mads Kiilerich <madski@unity3d.com>
parents:
3588
diff
changeset
|
1109 def make_link(group): |
8087731920d8
breadcrumbs: make repo names link to summary pages
Mads Kiilerich <madski@unity3d.com>
parents:
3588
diff
changeset
|
1110 return link_to(group.name, |
8087731920d8
breadcrumbs: make repo names link to summary pages
Mads Kiilerich <madski@unity3d.com>
parents:
3588
diff
changeset
|
1111 url('repos_group_home', group_name=group.group_name)) |
8087731920d8
breadcrumbs: make repo names link to summary pages
Mads Kiilerich <madski@unity3d.com>
parents:
3588
diff
changeset
|
1112 return literal(' » '.join(map(make_link, groups) + ['<span>%s</span>' % last_link])) |
1257
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
1113 |
1959
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
1114 |
1257
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
1115 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
|
1116 """ |
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
|
1117 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
|
1118 lines of code on file |
1818
cf51bbfb120e
auto white-space removal
Marcin Kuzminski <marcin@python-works.com>
parents:
1789
diff
changeset
|
1119 |
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
|
1120 :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
|
1121 """ |
3821
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1122 from rhodecode.lib.diffs import NEW_FILENODE, DEL_FILENODE, \ |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1123 MOD_FILENODE, RENAMED_FILENODE, CHMOD_FILENODE, BIN_FILENODE |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1124 |
2995
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1125 def cgen(l_type, a_v, d_v): |
2118 | 1126 mapping = {'tr': 'top-right-rounded-corner-mid', |
1127 'tl': 'top-left-rounded-corner-mid', | |
1128 'br': 'bottom-right-rounded-corner-mid', | |
1129 'bl': 'bottom-left-rounded-corner-mid'} | |
1959
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
1130 map_getter = lambda x: mapping[x] |
1257
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
1131 |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
1132 if l_type == 'a' and d_v: |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
1133 #case when added and deleted are present |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
1134 return ' '.join(map(map_getter, ['tl', 'bl'])) |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
1135 |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
1136 if l_type == 'a' and not d_v: |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
1137 return ' '.join(map(map_getter, ['tr', 'br', 'tl', 'bl'])) |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
1138 |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
1139 if l_type == 'd' and a_v: |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
1140 return ' '.join(map(map_getter, ['tr', 'br'])) |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
1141 |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
1142 if l_type == 'd' and not a_v: |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
1143 return ' '.join(map(map_getter, ['tr', 'br', 'tl', 'bl'])) |
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
1144 |
3821
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1145 a, d = stats['added'], stats['deleted'] |
2995
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1146 width = 100 |
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1147 |
3821
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1148 if stats['binary']: |
2995
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1149 #binary mode |
3821
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1150 lbl = '' |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1151 bin_op = 1 |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1152 |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1153 if BIN_FILENODE in stats['ops']: |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1154 lbl = 'bin+' |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1155 |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1156 if NEW_FILENODE in stats['ops']: |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1157 lbl += _('new file') |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1158 bin_op = NEW_FILENODE |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1159 elif MOD_FILENODE in stats['ops']: |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1160 lbl += _('mod') |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1161 bin_op = MOD_FILENODE |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1162 elif DEL_FILENODE in stats['ops']: |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1163 lbl += _('del') |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1164 bin_op = DEL_FILENODE |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1165 elif RENAMED_FILENODE in stats['ops']: |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1166 lbl += _('rename') |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1167 bin_op = RENAMED_FILENODE |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1168 |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1169 #chmod can go with other operations |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1170 if CHMOD_FILENODE in stats['ops']: |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1171 _org_lbl = _('chmod') |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1172 lbl += _org_lbl if lbl.endswith('+') else '+%s' % _org_lbl |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1173 |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1174 #import ipdb;ipdb.set_trace() |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1175 b_d = '<div class="bin bin%s %s" style="width:100%%">%s</div>' % (bin_op, cgen('a', a_v='', d_v=0), lbl) |
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1176 b_a = '<div class="bin bin1" style="width:0%%"></div>' |
2995
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1177 return literal('<div style="width:%spx">%s%s</div>' % (width, b_a, b_d)) |
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1178 |
3821
ce4b7023a492
diff parser: redefined operations stats for changes
Marcin Kuzminski <marcin@python-works.com>
parents:
3776
diff
changeset
|
1179 t = stats['added'] + stats['deleted'] |
2995
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1180 unit = float(width) / (t or 1) |
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1181 |
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1182 # needs > 9% of width to be visible or 0 to be hidden |
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1183 a_p = max(9, unit * a) if a > 0 else 0 |
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1184 d_p = max(9, unit * d) if d > 0 else 0 |
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1185 p_sum = a_p + d_p |
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1186 |
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1187 if p_sum > width: |
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1188 #adjust the percentage to be == 100% since we adjusted to 9 |
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1189 if a_p > d_p: |
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1190 a_p = a_p - (p_sum - width) |
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1191 else: |
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1192 d_p = d_p - (p_sum - width) |
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1193 |
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1194 a_v = a if a > 0 else '' |
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1195 d_v = d if d > 0 else '' |
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1196 |
1959
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
1197 d_a = '<div class="added %s" style="width:%s%%">%s</div>' % ( |
2995
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1198 cgen('a', a_v, d_v), a_p, a_v |
1959
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
1199 ) |
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
1200 d_d = '<div class="deleted %s" style="width:%s%%">%s</div>' % ( |
2995
32471bd1f4ee
Implemented generation of changesets based
Marcin Kuzminski <marcin@python-works.com>
parents:
2971
diff
changeset
|
1201 cgen('d', a_v, d_v), d_p, d_v |
1959
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
1202 ) |
1257
0a2a10a1912f
Implemented --stat for changelog
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
1203 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
|
1204 |
002f4f465b58
Links in summary page are now active
Marcin Kuzminski <marcin@python-works.com>
parents:
1422
diff
changeset
|
1205 |
3399
5ff79fad209c
don't use double literal() calls on urlify functions
Marcin Kuzminski <marcin@python-works.com>
parents:
3398
diff
changeset
|
1206 def urlify_text(text_, safe=True): |
3398
1ca82b6a6349
urlify commit function also should extract normal links
Marcin Kuzminski <marcin@python-works.com>
parents:
3385
diff
changeset
|
1207 """ |
1ca82b6a6349
urlify commit function also should extract normal links
Marcin Kuzminski <marcin@python-works.com>
parents:
3385
diff
changeset
|
1208 Extrac urls from text and make html links out of them |
1ca82b6a6349
urlify commit function also should extract normal links
Marcin Kuzminski <marcin@python-works.com>
parents:
3385
diff
changeset
|
1209 |
1ca82b6a6349
urlify commit function also should extract normal links
Marcin Kuzminski <marcin@python-works.com>
parents:
3385
diff
changeset
|
1210 :param text_: |
1ca82b6a6349
urlify commit function also should extract normal links
Marcin Kuzminski <marcin@python-works.com>
parents:
3385
diff
changeset
|
1211 """ |
1438
002f4f465b58
Links in summary page are now active
Marcin Kuzminski <marcin@python-works.com>
parents:
1422
diff
changeset
|
1212 |
1766 | 1213 url_pat = re.compile(r'''(http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]''' |
1214 '''|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+)''') | |
1438
002f4f465b58
Links in summary page are now active
Marcin Kuzminski <marcin@python-works.com>
parents:
1422
diff
changeset
|
1215 |
002f4f465b58
Links in summary page are now active
Marcin Kuzminski <marcin@python-works.com>
parents:
1422
diff
changeset
|
1216 def url_func(match_obj): |
002f4f465b58
Links in summary page are now active
Marcin Kuzminski <marcin@python-works.com>
parents:
1422
diff
changeset
|
1217 url_full = match_obj.groups()[0] |
1868
f26acc1b27e2
added repository name into issue tracker link to support different projects issues tracker mapping
Marcin Kuzminski <marcin@python-works.com>
parents:
1865
diff
changeset
|
1218 return '<a href="%(url)s">%(url)s</a>' % ({'url': url_full}) |
3399
5ff79fad209c
don't use double literal() calls on urlify functions
Marcin Kuzminski <marcin@python-works.com>
parents:
3398
diff
changeset
|
1219 _newtext = url_pat.sub(url_func, text_) |
5ff79fad209c
don't use double literal() calls on urlify functions
Marcin Kuzminski <marcin@python-works.com>
parents:
3398
diff
changeset
|
1220 if safe: |
5ff79fad209c
don't use double literal() calls on urlify functions
Marcin Kuzminski <marcin@python-works.com>
parents:
3398
diff
changeset
|
1221 return literal(_newtext) |
5ff79fad209c
don't use double literal() calls on urlify functions
Marcin Kuzminski <marcin@python-works.com>
parents:
3398
diff
changeset
|
1222 return _newtext |
1656
833f9dec0a06
implemented #44 - branch filtering in changelog, aka branch browser
Marcin Kuzminski <marcin@python-works.com>
parents:
1629
diff
changeset
|
1223 |
1959
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
1224 |
1913
08344d037ba1
added links to revisions in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1912
diff
changeset
|
1225 def urlify_changesets(text_, repository): |
2111
122f15a8f6ec
fixed issue with escaping < and > in changeset commits
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
1226 """ |
122f15a8f6ec
fixed issue with escaping < and > in changeset commits
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
1227 Extract revision ids from changeset and make link from them |
2125
097327aaf2ad
more detailed logging on auth system
Marcin Kuzminski <marcin@python-works.com>
parents:
2118
diff
changeset
|
1228 |
2111
122f15a8f6ec
fixed issue with escaping < and > in changeset commits
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
1229 :param text_: |
3398
1ca82b6a6349
urlify commit function also should extract normal links
Marcin Kuzminski <marcin@python-works.com>
parents:
3385
diff
changeset
|
1230 :param repository: repo name to build the URL with |
2111
122f15a8f6ec
fixed issue with escaping < and > in changeset commits
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
1231 """ |
3385
d21c762f5c4b
revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents:
3382
diff
changeset
|
1232 from pylons import url # doh, we need to re-import url to mock it later |
3405
a9adca4ba3c9
fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents:
3399
diff
changeset
|
1233 URL_PAT = re.compile(r'(^|\s)([0-9a-fA-F]{12,40})($|\s)') |
1913
08344d037ba1
added links to revisions in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1912
diff
changeset
|
1234 |
08344d037ba1
added links to revisions in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1912
diff
changeset
|
1235 def url_func(match_obj): |
3405
a9adca4ba3c9
fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents:
3399
diff
changeset
|
1236 rev = match_obj.groups()[1] |
a9adca4ba3c9
fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents:
3399
diff
changeset
|
1237 pref = match_obj.groups()[0] |
a9adca4ba3c9
fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents:
3399
diff
changeset
|
1238 suf = match_obj.groups()[2] |
a9adca4ba3c9
fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents:
3399
diff
changeset
|
1239 |
1913
08344d037ba1
added links to revisions in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1912
diff
changeset
|
1240 tmpl = ( |
08344d037ba1
added links to revisions in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1912
diff
changeset
|
1241 '%(pref)s<a class="%(cls)s" href="%(url)s">' |
3405
a9adca4ba3c9
fixed urlify changesets regex + tests
Marcin Kuzminski <marcin@python-works.com>
parents:
3399
diff
changeset
|
1242 '%(rev)s</a>%(suf)s' |
1913
08344d037ba1
added links to revisions in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1912
diff
changeset
|
1243 ) |
08344d037ba1
added links to revisions in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1912
diff
changeset
|
1244 return tmpl % { |
08344d037ba1
added links to revisions in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1912
diff
changeset
|
1245 'pref': pref, |
08344d037ba1
added links to revisions in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1912
diff
changeset
|
1246 'cls': 'revision-link', |
08344d037ba1
added links to revisions in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1912
diff
changeset
|
1247 'url': url('changeset_home', repo_name=repository, revision=rev), |
08344d037ba1
added links to revisions in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1912
diff
changeset
|
1248 'rev': rev, |
3385
d21c762f5c4b
revision extraction function shouldn't be so eager, just extract commits that are
Marcin Kuzminski <marcin@python-works.com>
parents:
3382
diff
changeset
|
1249 'suf': suf |
1913
08344d037ba1
added links to revisions in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1912
diff
changeset
|
1250 } |
08344d037ba1
added links to revisions in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1912
diff
changeset
|
1251 |
08344d037ba1
added links to revisions in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1912
diff
changeset
|
1252 newtext = URL_PAT.sub(url_func, text_) |
08344d037ba1
added links to revisions in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1912
diff
changeset
|
1253 |
08344d037ba1
added links to revisions in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1912
diff
changeset
|
1254 return newtext |
1868
f26acc1b27e2
added repository name into issue tracker link to support different projects issues tracker mapping
Marcin Kuzminski <marcin@python-works.com>
parents:
1865
diff
changeset
|
1255 |
1959
7a7ffe24b82c
optimized speed for browsing git changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
1944
diff
changeset
|
1256 |
1878
287eff9614fa
changelog: make messages be links again, and somewhat co-exist with issue tracker links (those are bold now)
Aras Pranckevicius <aras@unity3d.com>
parents:
1868
diff
changeset
|
1257 def urlify_commit(text_, repository=None, link_=None): |
2028
ef3114b01c7c
fixed issues when urlify commit created empty links when link_ param was empty
Marcin Kuzminski <marcin@python-works.com>
parents:
2014
diff
changeset
|
1258 """ |
ef3114b01c7c
fixed issues when urlify commit created empty links when link_ param was empty
Marcin Kuzminski <marcin@python-works.com>
parents:
2014
diff
changeset
|
1259 Parses given text message and makes proper links. |
ef3114b01c7c
fixed issues when urlify commit created empty links when link_ param was empty
Marcin Kuzminski <marcin@python-works.com>
parents:
2014
diff
changeset
|
1260 issues are linked to given issue-server, and rest is a changeset link |
ef3114b01c7c
fixed issues when urlify commit created empty links when link_ param was empty
Marcin Kuzminski <marcin@python-works.com>
parents:
2014
diff
changeset
|
1261 if link_ is given, in other case it's a plain text |
ef3114b01c7c
fixed issues when urlify commit created empty links when link_ param was empty
Marcin Kuzminski <marcin@python-works.com>
parents:
2014
diff
changeset
|
1262 |
ef3114b01c7c
fixed issues when urlify commit created empty links when link_ param was empty
Marcin Kuzminski <marcin@python-works.com>
parents:
2014
diff
changeset
|
1263 :param text_: |
ef3114b01c7c
fixed issues when urlify commit created empty links when link_ param was empty
Marcin Kuzminski <marcin@python-works.com>
parents:
2014
diff
changeset
|
1264 :param repository: |
ef3114b01c7c
fixed issues when urlify commit created empty links when link_ param was empty
Marcin Kuzminski <marcin@python-works.com>
parents:
2014
diff
changeset
|
1265 :param link_: changeset link |
ef3114b01c7c
fixed issues when urlify commit created empty links when link_ param was empty
Marcin Kuzminski <marcin@python-works.com>
parents:
2014
diff
changeset
|
1266 """ |
1837
a6a30c919513
#73 mapping of commited issues from commit message into issue tracker url.
Marcin Kuzminski <marcin@python-works.com>
parents:
1832
diff
changeset
|
1267 import traceback |
3398
1ca82b6a6349
urlify commit function also should extract normal links
Marcin Kuzminski <marcin@python-works.com>
parents:
3385
diff
changeset
|
1268 from pylons import url # doh, we need to re-import url to mock it later |
2125
097327aaf2ad
more detailed logging on auth system
Marcin Kuzminski <marcin@python-works.com>
parents:
2118
diff
changeset
|
1269 |
2111
122f15a8f6ec
fixed issue with escaping < and > in changeset commits
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
1270 def escaper(string): |
122f15a8f6ec
fixed issue with escaping < and > in changeset commits
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
1271 return string.replace('<', '<').replace('>', '>') |
2125
097327aaf2ad
more detailed logging on auth system
Marcin Kuzminski <marcin@python-works.com>
parents:
2118
diff
changeset
|
1272 |
2012
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
1273 def linkify_others(t, l): |
1913
08344d037ba1
added links to revisions in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1912
diff
changeset
|
1274 urls = re.compile(r'(\<a.*?\<\/a\>)',) |
08344d037ba1
added links to revisions in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1912
diff
changeset
|
1275 links = [] |
08344d037ba1
added links to revisions in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1912
diff
changeset
|
1276 for e in urls.split(t): |
08344d037ba1
added links to revisions in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1912
diff
changeset
|
1277 if not urls.match(e): |
2012
ca39c02c7c3e
speed up generating changesets in journal log
Marcin Kuzminski <marcin@python-works.com>
parents:
2007
diff
changeset
|
1278 links.append('<a class="message-link" href="%s">%s</a>' % (l, e)) |
1913
08344d037ba1
added links to revisions in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1912
diff
changeset
|
1279 else: |
1944
5fc9c92025c1
white space cleanup
Marcin Kuzminski <marcin@python-works.com>
parents:
1933
diff
changeset
|
1280 links.append(e) |
5fc9c92025c1
white space cleanup
Marcin Kuzminski <marcin@python-works.com>
parents:
1933
diff
changeset
|
1281 |
1913
08344d037ba1
added links to revisions in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1912
diff
changeset
|
1282 return ''.join(links) |
2125
097327aaf2ad
more detailed logging on auth system
Marcin Kuzminski <marcin@python-works.com>
parents:
2118
diff
changeset
|
1283 |
2111
122f15a8f6ec
fixed issue with escaping < and > in changeset commits
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
1284 # urlify changesets - extrac revisions and make link out of them |
2865
6d9b3ade3051
Allowing multiple issue servers to be autolinked in the changeset view;
Zachary Auclair <zach101@gmail.com>
parents:
2836
diff
changeset
|
1285 newtext = urlify_changesets(escaper(text_), repository) |
2111
122f15a8f6ec
fixed issue with escaping < and > in changeset commits
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
1286 |
3398
1ca82b6a6349
urlify commit function also should extract normal links
Marcin Kuzminski <marcin@python-works.com>
parents:
3385
diff
changeset
|
1287 # extract http/https links and make them real urls |
3399
5ff79fad209c
don't use double literal() calls on urlify functions
Marcin Kuzminski <marcin@python-works.com>
parents:
3398
diff
changeset
|
1288 newtext = urlify_text(newtext, safe=False) |
3398
1ca82b6a6349
urlify commit function also should extract normal links
Marcin Kuzminski <marcin@python-works.com>
parents:
3385
diff
changeset
|
1289 |
1837
a6a30c919513
#73 mapping of commited issues from commit message into issue tracker url.
Marcin Kuzminski <marcin@python-works.com>
parents:
1832
diff
changeset
|
1290 try: |
3382
b8cb1fe622e9
don't use global pylons config
Marcin Kuzminski <marcin@python-works.com>
parents:
3375
diff
changeset
|
1291 from rhodecode import CONFIG |
b8cb1fe622e9
don't use global pylons config
Marcin Kuzminski <marcin@python-works.com>
parents:
3375
diff
changeset
|
1292 conf = CONFIG |
1868
f26acc1b27e2
added repository name into issue tracker link to support different projects issues tracker mapping
Marcin Kuzminski <marcin@python-works.com>
parents:
1865
diff
changeset
|
1293 |
2865
6d9b3ade3051
Allowing multiple issue servers to be autolinked in the changeset view;
Zachary Auclair <zach101@gmail.com>
parents:
2836
diff
changeset
|
1294 # allow multiple issue servers to be used |
6d9b3ade3051
Allowing multiple issue servers to be autolinked in the changeset view;
Zachary Auclair <zach101@gmail.com>
parents:
2836
diff
changeset
|
1295 valid_indices = [ |
2866
736678a8c881
#518 multiple issues patterns
Marcin Kuzminski <marcin@python-works.com>
parents:
2865
diff
changeset
|
1296 x.group(1) |
736678a8c881
#518 multiple issues patterns
Marcin Kuzminski <marcin@python-works.com>
parents:
2865
diff
changeset
|
1297 for x in map(lambda x: re.match(r'issue_pat(.*)', x), conf.keys()) |
736678a8c881
#518 multiple issues patterns
Marcin Kuzminski <marcin@python-works.com>
parents:
2865
diff
changeset
|
1298 if x and 'issue_server_link%s' % x.group(1) in conf |
736678a8c881
#518 multiple issues patterns
Marcin Kuzminski <marcin@python-works.com>
parents:
2865
diff
changeset
|
1299 and 'issue_prefix%s' % x.group(1) in conf |
736678a8c881
#518 multiple issues patterns
Marcin Kuzminski <marcin@python-works.com>
parents:
2865
diff
changeset
|
1300 ] |
2865
6d9b3ade3051
Allowing multiple issue servers to be autolinked in the changeset view;
Zachary Auclair <zach101@gmail.com>
parents:
2836
diff
changeset
|
1301 |
2866
736678a8c881
#518 multiple issues patterns
Marcin Kuzminski <marcin@python-works.com>
parents:
2865
diff
changeset
|
1302 log.debug('found issue server suffixes `%s` during valuation of: %s' |
736678a8c881
#518 multiple issues patterns
Marcin Kuzminski <marcin@python-works.com>
parents:
2865
diff
changeset
|
1303 % (','.join(valid_indices), newtext)) |
1868
f26acc1b27e2
added repository name into issue tracker link to support different projects issues tracker mapping
Marcin Kuzminski <marcin@python-works.com>
parents:
1865
diff
changeset
|
1304 |
2865
6d9b3ade3051
Allowing multiple issue servers to be autolinked in the changeset view;
Zachary Auclair <zach101@gmail.com>
parents:
2836
diff
changeset
|
1305 for pattern_index in valid_indices: |
2866
736678a8c881
#518 multiple issues patterns
Marcin Kuzminski <marcin@python-works.com>
parents:
2865
diff
changeset
|
1306 ISSUE_PATTERN = conf.get('issue_pat%s' % pattern_index) |
736678a8c881
#518 multiple issues patterns
Marcin Kuzminski <marcin@python-works.com>
parents:
2865
diff
changeset
|
1307 ISSUE_SERVER_LNK = conf.get('issue_server_link%s' % pattern_index) |
736678a8c881
#518 multiple issues patterns
Marcin Kuzminski <marcin@python-works.com>
parents:
2865
diff
changeset
|
1308 ISSUE_PREFIX = conf.get('issue_prefix%s' % pattern_index) |
2865
6d9b3ade3051
Allowing multiple issue servers to be autolinked in the changeset view;
Zachary Auclair <zach101@gmail.com>
parents:
2836
diff
changeset
|
1309 |
2866
736678a8c881
#518 multiple issues patterns
Marcin Kuzminski <marcin@python-works.com>
parents:
2865
diff
changeset
|
1310 log.debug('pattern suffix `%s` PAT:%s SERVER_LINK:%s PREFIX:%s' |
736678a8c881
#518 multiple issues patterns
Marcin Kuzminski <marcin@python-works.com>
parents:
2865
diff
changeset
|
1311 % (pattern_index, ISSUE_PATTERN, ISSUE_SERVER_LNK, |
736678a8c881
#518 multiple issues patterns
Marcin Kuzminski <marcin@python-works.com>
parents:
2865
diff
changeset
|
1312 ISSUE_PREFIX)) |
2865
6d9b3ade3051
Allowing multiple issue servers to be autolinked in the changeset view;
Zachary Auclair <zach101@gmail.com>
parents:
2836
diff
changeset
|
1313 |
6d9b3ade3051
Allowing multiple issue servers to be autolinked in the changeset view;
Zachary Auclair <zach101@gmail.com>
parents:
2836
diff
changeset
|
1314 URL_PAT = re.compile(r'%s' % ISSUE_PATTERN) |
1868
f26acc1b27e2
added repository name into issue tracker link to support different projects issues tracker mapping
Marcin Kuzminski <marcin@python-works.com>
parents:
1865
diff
changeset
|
1315 |
1837
a6a30c919513
#73 mapping of commited issues from commit message into issue tracker url.
Marcin Kuzminski <marcin@python-works.com>
parents:
1832
diff
changeset
|
1316 def url_func(match_obj): |
1912
32e1e0745d3c
fixes issue with whitespace for referenced tasks in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1884
diff
changeset
|
1317 pref = '' |
32e1e0745d3c
fixes issue with whitespace for referenced tasks in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1884
diff
changeset
|
1318 if match_obj.group().startswith(' '): |
32e1e0745d3c
fixes issue with whitespace for referenced tasks in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1884
diff
changeset
|
1319 pref = ' ' |
32e1e0745d3c
fixes issue with whitespace for referenced tasks in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1884
diff
changeset
|
1320 |
1933
3da456a3a211
changed default issue tracker links pattern
Marcin Kuzminski <marcin@python-works.com>
parents:
1927
diff
changeset
|
1321 issue_id = ''.join(match_obj.groups()) |
1840
87920d4f58c5
added class into issue tracker link
Marcin Kuzminski <marcin@python-works.com>
parents:
1837
diff
changeset
|
1322 tmpl = ( |
1912
32e1e0745d3c
fixes issue with whitespace for referenced tasks in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1884
diff
changeset
|
1323 '%(pref)s<a class="%(cls)s" href="%(url)s">' |
1865 | 1324 '%(issue-prefix)s%(id-repr)s' |
1840
87920d4f58c5
added class into issue tracker link
Marcin Kuzminski <marcin@python-works.com>
parents:
1837
diff
changeset
|
1325 '</a>' |
87920d4f58c5
added class into issue tracker link
Marcin Kuzminski <marcin@python-works.com>
parents:
1837
diff
changeset
|
1326 ) |
1868
f26acc1b27e2
added repository name into issue tracker link to support different projects issues tracker mapping
Marcin Kuzminski <marcin@python-works.com>
parents:
1865
diff
changeset
|
1327 url = ISSUE_SERVER_LNK.replace('{id}', issue_id) |
f26acc1b27e2
added repository name into issue tracker link to support different projects issues tracker mapping
Marcin Kuzminski <marcin@python-works.com>
parents:
1865
diff
changeset
|
1328 if repository: |
f26acc1b27e2
added repository name into issue tracker link to support different projects issues tracker mapping
Marcin Kuzminski <marcin@python-works.com>
parents:
1865
diff
changeset
|
1329 url = url.replace('{repo}', repository) |
2339
79b3c9c66c54
Added optional repo_name into issue tracker url to get just the name of repo without group prefix
Marcin Kuzminski <marcin@python-works.com>
parents:
2323
diff
changeset
|
1330 repo_name = repository.split(URL_SEP)[-1] |
79b3c9c66c54
Added optional repo_name into issue tracker url to get just the name of repo without group prefix
Marcin Kuzminski <marcin@python-works.com>
parents:
2323
diff
changeset
|
1331 url = url.replace('{repo_name}', repo_name) |
2865
6d9b3ade3051
Allowing multiple issue servers to be autolinked in the changeset view;
Zachary Auclair <zach101@gmail.com>
parents:
2836
diff
changeset
|
1332 |
1913
08344d037ba1
added links to revisions in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1912
diff
changeset
|
1333 return tmpl % { |
1912
32e1e0745d3c
fixes issue with whitespace for referenced tasks in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1884
diff
changeset
|
1334 'pref': pref, |
1868
f26acc1b27e2
added repository name into issue tracker link to support different projects issues tracker mapping
Marcin Kuzminski <marcin@python-works.com>
parents:
1865
diff
changeset
|
1335 'cls': 'issue-tracker-link', |
f26acc1b27e2
added repository name into issue tracker link to support different projects issues tracker mapping
Marcin Kuzminski <marcin@python-works.com>
parents:
1865
diff
changeset
|
1336 'url': url, |
f26acc1b27e2
added repository name into issue tracker link to support different projects issues tracker mapping
Marcin Kuzminski <marcin@python-works.com>
parents:
1865
diff
changeset
|
1337 'id-repr': issue_id, |
f26acc1b27e2
added repository name into issue tracker link to support different projects issues tracker mapping
Marcin Kuzminski <marcin@python-works.com>
parents:
1865
diff
changeset
|
1338 'issue-prefix': ISSUE_PREFIX, |
f26acc1b27e2
added repository name into issue tracker link to support different projects issues tracker mapping
Marcin Kuzminski <marcin@python-works.com>
parents:
1865
diff
changeset
|
1339 'serv': ISSUE_SERVER_LNK, |
1913
08344d037ba1
added links to revisions in commit messages
Marcin Kuzminski <marcin@python-works.com>
parents:
1912
diff
changeset
|
1340 } |
2865
6d9b3ade3051
Allowing multiple issue servers to be autolinked in the changeset view;
Zachary Auclair <zach101@gmail.com>
parents:
2836
diff
changeset
|
1341 newtext = URL_PAT.sub(url_func, newtext) |
2866
736678a8c881
#518 multiple issues patterns
Marcin Kuzminski <marcin@python-works.com>
parents:
2865
diff
changeset
|
1342 log.debug('processed prefix:`%s` => %s' % (pattern_index, newtext)) |
1944
5fc9c92025c1
white space cleanup
Marcin Kuzminski <marcin@python-works.com>
parents:
1933
diff
changeset
|
1343 |
2865
6d9b3ade3051
Allowing multiple issue servers to be autolinked in the changeset view;
Zachary Auclair <zach101@gmail.com>
parents:
2836
diff
changeset
|
1344 # if we actually did something above |
2956
a2ecf8a530b9
don't check for url issue links, since we always want to linkify changeset into a repo link, fixes issue
Marcin Kuzminski <marcin@python-works.com>
parents:
2954
diff
changeset
|
1345 if link_: |
a2ecf8a530b9
don't check for url issue links, since we always want to linkify changeset into a repo link, fixes issue
Marcin Kuzminski <marcin@python-works.com>
parents:
2954
diff
changeset
|
1346 # wrap not links into final link => link_ |
a2ecf8a530b9
don't check for url issue links, since we always want to linkify changeset into a repo link, fixes issue
Marcin Kuzminski <marcin@python-works.com>
parents:
2954
diff
changeset
|
1347 newtext = linkify_others(newtext, link_) |
3631
10b4e34841a4
Don't catch all exceptions
Marcin Kuzminski <marcin@python-works.com>
parents:
3627
diff
changeset
|
1348 except Exception: |
1837
a6a30c919513
#73 mapping of commited issues from commit message into issue tracker url.
Marcin Kuzminski <marcin@python-works.com>
parents:
1832
diff
changeset
|
1349 log.error(traceback.format_exc()) |
a6a30c919513
#73 mapping of commited issues from commit message into issue tracker url.
Marcin Kuzminski <marcin@python-works.com>
parents:
1832
diff
changeset
|
1350 pass |
a6a30c919513
#73 mapping of commited issues from commit message into issue tracker url.
Marcin Kuzminski <marcin@python-works.com>
parents:
1832
diff
changeset
|
1351 |
2966
566f0166f21e
yet another fix for commit linkifications
Marcin Kuzminski <marcin@python-works.com>
parents:
2965
diff
changeset
|
1352 return literal(newtext) |
1670
d2de0c2f02cd
#77 code review
Marcin Kuzminski <marcin@python-works.com>
parents:
1656
diff
changeset
|
1353 |
1868
f26acc1b27e2
added repository name into issue tracker link to support different projects issues tracker mapping
Marcin Kuzminski <marcin@python-works.com>
parents:
1865
diff
changeset
|
1354 |
1670
d2de0c2f02cd
#77 code review
Marcin Kuzminski <marcin@python-works.com>
parents:
1656
diff
changeset
|
1355 def rst(source): |
1789
17caf4efe15c
implements #308 rewrote diffs to enable displaying full diff on each file
Marcin Kuzminski <marcin@python-works.com>
parents:
1781
diff
changeset
|
1356 return literal('<div class="rst-block">%s</div>' % |
1766 | 1357 MarkupRenderer.rst(source)) |
1789
17caf4efe15c
implements #308 rewrote diffs to enable displaying full diff on each file
Marcin Kuzminski <marcin@python-works.com>
parents:
1781
diff
changeset
|
1358 |
1868
f26acc1b27e2
added repository name into issue tracker link to support different projects issues tracker mapping
Marcin Kuzminski <marcin@python-works.com>
parents:
1865
diff
changeset
|
1359 |
1769
025f3333c769
@mention highlighting
Marcin Kuzminski <marcin@python-works.com>
parents:
1767
diff
changeset
|
1360 def rst_w_mentions(source): |
025f3333c769
@mention highlighting
Marcin Kuzminski <marcin@python-works.com>
parents:
1767
diff
changeset
|
1361 """ |
025f3333c769
@mention highlighting
Marcin Kuzminski <marcin@python-works.com>
parents:
1767
diff
changeset
|
1362 Wrapped rst renderer with @mention highlighting |
1818
cf51bbfb120e
auto white-space removal
Marcin Kuzminski <marcin@python-works.com>
parents:
1789
diff
changeset
|
1363 |
1769
025f3333c769
@mention highlighting
Marcin Kuzminski <marcin@python-works.com>
parents:
1767
diff
changeset
|
1364 :param source: |
025f3333c769
@mention highlighting
Marcin Kuzminski <marcin@python-works.com>
parents:
1767
diff
changeset
|
1365 """ |
1789
17caf4efe15c
implements #308 rewrote diffs to enable displaying full diff on each file
Marcin Kuzminski <marcin@python-works.com>
parents:
1781
diff
changeset
|
1366 return literal('<div class="rst-block">%s</div>' % |
17caf4efe15c
implements #308 rewrote diffs to enable displaying full diff on each file
Marcin Kuzminski <marcin@python-works.com>
parents:
1781
diff
changeset
|
1367 MarkupRenderer.rst_with_mentions(source)) |
2217
76947224bf27
Implemented initial code-review status of changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2203
diff
changeset
|
1368 |
76947224bf27
Implemented initial code-review status of changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2203
diff
changeset
|
1369 |
76947224bf27
Implemented initial code-review status of changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2203
diff
changeset
|
1370 def changeset_status(repo, revision): |
76947224bf27
Implemented initial code-review status of changesets
Marcin Kuzminski <marcin@python-works.com>
parents:
2203
diff
changeset
|
1371 return ChangesetStatusModel().get_status(repo, revision) |
2239
493e03a4d268
added changeset status into changelog view
Marcin Kuzminski <marcin@python-works.com>
parents:
2217
diff
changeset
|
1372 |
493e03a4d268
added changeset status into changelog view
Marcin Kuzminski <marcin@python-works.com>
parents:
2217
diff
changeset
|
1373 |
493e03a4d268
added changeset status into changelog view
Marcin Kuzminski <marcin@python-works.com>
parents:
2217
diff
changeset
|
1374 def changeset_status_lbl(changeset_status): |
493e03a4d268
added changeset status into changelog view
Marcin Kuzminski <marcin@python-works.com>
parents:
2217
diff
changeset
|
1375 return dict(ChangesetStatus.STATUSES).get(changeset_status) |
2532
19de74e33fb0
Better descriptions of given permission overview in edit user view
Marcin Kuzminski <marcin@python-works.com>
parents:
2491
diff
changeset
|
1376 |
19de74e33fb0
Better descriptions of given permission overview in edit user view
Marcin Kuzminski <marcin@python-works.com>
parents:
2491
diff
changeset
|
1377 |
19de74e33fb0
Better descriptions of given permission overview in edit user view
Marcin Kuzminski <marcin@python-works.com>
parents:
2491
diff
changeset
|
1378 def get_permission_name(key): |
19de74e33fb0
Better descriptions of given permission overview in edit user view
Marcin Kuzminski <marcin@python-works.com>
parents:
2491
diff
changeset
|
1379 return dict(Permission.PERMS).get(key) |
3070
cc7eedb5323c
final implementation of #210 journal filtering.
Marcin Kuzminski <marcin@python-works.com>
parents:
3063
diff
changeset
|
1380 |
cc7eedb5323c
final implementation of #210 journal filtering.
Marcin Kuzminski <marcin@python-works.com>
parents:
3063
diff
changeset
|
1381 |
cc7eedb5323c
final implementation of #210 journal filtering.
Marcin Kuzminski <marcin@python-works.com>
parents:
3063
diff
changeset
|
1382 def journal_filter_help(): |
cc7eedb5323c
final implementation of #210 journal filtering.
Marcin Kuzminski <marcin@python-works.com>
parents:
3063
diff
changeset
|
1383 return _(textwrap.dedent(''' |
cc7eedb5323c
final implementation of #210 journal filtering.
Marcin Kuzminski <marcin@python-works.com>
parents:
3063
diff
changeset
|
1384 Example filter terms: |
cc7eedb5323c
final implementation of #210 journal filtering.
Marcin Kuzminski <marcin@python-works.com>
parents:
3063
diff
changeset
|
1385 repository:vcs |
cc7eedb5323c
final implementation of #210 journal filtering.
Marcin Kuzminski <marcin@python-works.com>
parents:
3063
diff
changeset
|
1386 username:marcin |
cc7eedb5323c
final implementation of #210 journal filtering.
Marcin Kuzminski <marcin@python-works.com>
parents:
3063
diff
changeset
|
1387 action:*push* |
cc7eedb5323c
final implementation of #210 journal filtering.
Marcin Kuzminski <marcin@python-works.com>
parents:
3063
diff
changeset
|
1388 ip:127.0.0.1 |
cc7eedb5323c
final implementation of #210 journal filtering.
Marcin Kuzminski <marcin@python-works.com>
parents:
3063
diff
changeset
|
1389 date:20120101 |
cc7eedb5323c
final implementation of #210 journal filtering.
Marcin Kuzminski <marcin@python-works.com>
parents:
3063
diff
changeset
|
1390 date:[20120101100000 TO 20120102] |
cc7eedb5323c
final implementation of #210 journal filtering.
Marcin Kuzminski <marcin@python-works.com>
parents:
3063
diff
changeset
|
1391 |
cc7eedb5323c
final implementation of #210 journal filtering.
Marcin Kuzminski <marcin@python-works.com>
parents:
3063
diff
changeset
|
1392 Generate wildcards using '*' character: |
cc7eedb5323c
final implementation of #210 journal filtering.
Marcin Kuzminski <marcin@python-works.com>
parents:
3063
diff
changeset
|
1393 "repositroy:vcs*" - search everything starting with 'vcs' |
cc7eedb5323c
final implementation of #210 journal filtering.
Marcin Kuzminski <marcin@python-works.com>
parents:
3063
diff
changeset
|
1394 "repository:*vcs*" - search for repository containing 'vcs' |
cc7eedb5323c
final implementation of #210 journal filtering.
Marcin Kuzminski <marcin@python-works.com>
parents:
3063
diff
changeset
|
1395 |
cc7eedb5323c
final implementation of #210 journal filtering.
Marcin Kuzminski <marcin@python-works.com>
parents:
3063
diff
changeset
|
1396 Optional AND / OR operators in queries |
cc7eedb5323c
final implementation of #210 journal filtering.
Marcin Kuzminski <marcin@python-works.com>
parents:
3063
diff
changeset
|
1397 "repository:vcs OR repository:test" |
cc7eedb5323c
final implementation of #210 journal filtering.
Marcin Kuzminski <marcin@python-works.com>
parents:
3063
diff
changeset
|
1398 "username:test AND repository:test*" |
cc7eedb5323c
final implementation of #210 journal filtering.
Marcin Kuzminski <marcin@python-works.com>
parents:
3063
diff
changeset
|
1399 ''')) |
3110
144128efc6ab
- #683 fixed difference between messages about not mapped repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3080
diff
changeset
|
1400 |
144128efc6ab
- #683 fixed difference between messages about not mapped repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3080
diff
changeset
|
1401 |
144128efc6ab
- #683 fixed difference between messages about not mapped repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3080
diff
changeset
|
1402 def not_mapped_error(repo_name): |
144128efc6ab
- #683 fixed difference between messages about not mapped repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3080
diff
changeset
|
1403 flash(_('%s repository is not mapped to db perhaps' |
144128efc6ab
- #683 fixed difference between messages about not mapped repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3080
diff
changeset
|
1404 ' it was created or renamed from the filesystem' |
144128efc6ab
- #683 fixed difference between messages about not mapped repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3080
diff
changeset
|
1405 ' please run the application again' |
144128efc6ab
- #683 fixed difference between messages about not mapped repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
3080
diff
changeset
|
1406 ' in order to rescan repositories') % repo_name, category='error') |
3125
9b92cf5a0cca
Added UserIpMap interface for allowed IP addresses and IP restriction access
Marcin Kuzminski <marcin@python-works.com>
parents:
3110
diff
changeset
|
1407 |
9b92cf5a0cca
Added UserIpMap interface for allowed IP addresses and IP restriction access
Marcin Kuzminski <marcin@python-works.com>
parents:
3110
diff
changeset
|
1408 |
9b92cf5a0cca
Added UserIpMap interface for allowed IP addresses and IP restriction access
Marcin Kuzminski <marcin@python-works.com>
parents:
3110
diff
changeset
|
1409 def ip_range(ip_addr): |
9b92cf5a0cca
Added UserIpMap interface for allowed IP addresses and IP restriction access
Marcin Kuzminski <marcin@python-works.com>
parents:
3110
diff
changeset
|
1410 from rhodecode.model.db import UserIpMap |
9b92cf5a0cca
Added UserIpMap interface for allowed IP addresses and IP restriction access
Marcin Kuzminski <marcin@python-works.com>
parents:
3110
diff
changeset
|
1411 s, e = UserIpMap._get_ip_range(ip_addr) |
9b92cf5a0cca
Added UserIpMap interface for allowed IP addresses and IP restriction access
Marcin Kuzminski <marcin@python-works.com>
parents:
3110
diff
changeset
|
1412 return '%s - %s' % (s, e) |