annotate rhodecode/lib/helpers.py @ 966:63c91390853c beta

fixed line number look
author Marcin Kuzminski <marcin@python-works.com>
date Fri, 28 Jan 2011 10:49:06 +0100
parents 5da1286ddd28
children 7a1df0130533
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1 """Helper functions
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
3 Consists of functions to typically be used within templates, but also
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
4 available to Controllers. This module is available to both as 'h'.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
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
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
9 from pygments.formatters import HtmlFormatter
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
10 from pygments import highlight as code_highlight
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
11 from pylons import url, app_globals as g
97
be0096a02772 added helper for filesize
Marcin Kuzminski <marcin@python-works.com>
parents: 94
diff changeset
12 from pylons.i18n.translation import _, ungettext
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
13 from vcs.utils.annotate import annotate_highlight
be4621c6de58 Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
Marcin Kuzminski <marcin@python-works.com>
parents: 165
diff changeset
14 from 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
15 from webhelpers.html.tools import *
98
01d0f363f36d added pygments webhelper
Marcin Kuzminski <marcin@python-works.com>
parents: 97
diff changeset
16 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
17 from webhelpers.html.tags import auto_discovery_link, checkbox, css_classes, \
be4621c6de58 Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
Marcin Kuzminski <marcin@python-works.com>
parents: 165
diff changeset
18 end_form, file, form, hidden, image, javascript_link, link_to, link_to_if, \
be4621c6de58 Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
Marcin Kuzminski <marcin@python-works.com>
parents: 165
diff changeset
19 link_to_unless, ol, required_legend, select, stylesheet_link, submit, text, \
281
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
20 password, textarea, title, ul, xml_declaration, radio
250
be4621c6de58 Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
Marcin Kuzminski <marcin@python-works.com>
parents: 165
diff changeset
21 from webhelpers.html.tools import auto_link, button_to, highlight, js_obfuscate, \
be4621c6de58 Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
Marcin Kuzminski <marcin@python-works.com>
parents: 165
diff changeset
22 mail_to, strip_links, strip_tags, tag_re
be4621c6de58 Pygments code coloring rewrite, annotation was moved to vcs whitch had much better lib for that. Fixed code recognition based on mimetypes of filenodes, for better coloring.
Marcin Kuzminski <marcin@python-works.com>
parents: 165
diff changeset
23 from webhelpers.number import format_byte_size, format_bit_size
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
24 from webhelpers.pylonslib import Flash as _Flash
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
25 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
26 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
27 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
28 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
29 from webhelpers.date import time_ago_in_words
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
30
698
4cd0709b6d4b fixes #65, Added reset buttons to edit forms
Marcin Kuzminski <marcin@python-works.com>
parents: 668
diff changeset
31 from webhelpers.html.tags import _set_input_attrs, _set_id_attr, \
4cd0709b6d4b fixes #65, Added reset buttons to edit forms
Marcin Kuzminski <marcin@python-works.com>
parents: 668
diff changeset
32 convert_boolean_attrs, NotGiven
4cd0709b6d4b fixes #65, Added reset buttons to edit forms
Marcin Kuzminski <marcin@python-works.com>
parents: 668
diff changeset
33
4cd0709b6d4b fixes #65, Added reset buttons to edit forms
Marcin Kuzminski <marcin@python-works.com>
parents: 668
diff changeset
34 def _reset(name, value=None, id=NotGiven, type="reset", **attrs):
899
d65843e07d3c Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents: 864
diff changeset
35 """Reset button
d65843e07d3c Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents: 864
diff changeset
36 """
698
4cd0709b6d4b fixes #65, Added reset buttons to edit forms
Marcin Kuzminski <marcin@python-works.com>
parents: 668
diff changeset
37 _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
38 _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
39 convert_boolean_attrs(attrs, ["disabled"])
4cd0709b6d4b fixes #65, Added reset buttons to edit forms
Marcin Kuzminski <marcin@python-works.com>
parents: 668
diff changeset
40 return HTML.input(**attrs)
4cd0709b6d4b fixes #65, Added reset buttons to edit forms
Marcin Kuzminski <marcin@python-works.com>
parents: 668
diff changeset
41
4cd0709b6d4b fixes #65, Added reset buttons to edit forms
Marcin Kuzminski <marcin@python-works.com>
parents: 668
diff changeset
42 reset = _reset
4cd0709b6d4b fixes #65, Added reset buttons to edit forms
Marcin Kuzminski <marcin@python-works.com>
parents: 668
diff changeset
43
734
49eb69d78988 implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents: 718
diff changeset
44
49eb69d78988 implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents: 718
diff changeset
45 def get_token():
49eb69d78988 implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents: 718
diff changeset
46 """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
47 already exist.
49eb69d78988 implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents: 718
diff changeset
48 """
49eb69d78988 implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents: 718
diff changeset
49 token_key = "_authentication_token"
49eb69d78988 implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents: 718
diff changeset
50 from pylons import session
49eb69d78988 implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents: 718
diff changeset
51 if not token_key in session:
49eb69d78988 implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents: 718
diff changeset
52 try:
49eb69d78988 implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents: 718
diff changeset
53 token = hashlib.sha1(str(random.getrandbits(128))).hexdigest()
49eb69d78988 implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents: 718
diff changeset
54 except AttributeError: # Python < 2.4
49eb69d78988 implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents: 718
diff changeset
55 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
56 session[token_key] = token
49eb69d78988 implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents: 718
diff changeset
57 if hasattr(session, 'save'):
49eb69d78988 implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents: 718
diff changeset
58 session.save()
49eb69d78988 implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents: 718
diff changeset
59 return session[token_key]
49eb69d78988 implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents: 718
diff changeset
60
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
61 class _GetError(object):
899
d65843e07d3c Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents: 864
diff changeset
62 """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
63 message
d65843e07d3c Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents: 864
diff changeset
64
d65843e07d3c Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents: 864
diff changeset
65 :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
66 :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
67 """
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
68
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
69 def __call__(self, field_name, form_errors):
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
70 tmpl = """<span class="error_msg">%s</span>"""
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
71 if form_errors and form_errors.has_key(field_name):
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
72 return literal(tmpl % form_errors.get(field_name))
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
73
281
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
74 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
75
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
76 def recursive_replace(str, replace=' '):
899
d65843e07d3c Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents: 864
diff changeset
77 """Recursive replace of given sign to just one instance
d65843e07d3c Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents: 864
diff changeset
78
604
5cc96df705b9 fixed @repo into :repo for docs
Marcin Kuzminski <marcin@python-works.com>
parents: 547
diff changeset
79 :param str: given string
899
d65843e07d3c Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents: 864
diff changeset
80 :param replace: char to find and replace multiple instances
281
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
81
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
82 Examples::
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
83 >>> recursive_replace("Mighty---Mighty-Bo--sstones",'-')
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
84 'Mighty-Mighty-Bo-sstones'
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
85 """
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
86
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
87 if str.find(replace * 2) == -1:
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
88 return str
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
89 else:
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
90 str = str.replace(replace * 2, replace)
631
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 604
diff changeset
91 return recursive_replace(str, replace)
281
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
92
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
93 class _ToolTip(object):
631
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 604
diff changeset
94
281
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
95 def __call__(self, tooltip_title, trim_at=50):
905
1294f2baf2bc added wrapping of long tooltips in index page
Marcin Kuzminski <marcin@python-works.com>
parents: 904
diff changeset
96 """Special function just to wrap our text into nice formatted
1294f2baf2bc added wrapping of long tooltips in index page
Marcin Kuzminski <marcin@python-works.com>
parents: 904
diff changeset
97 autowrapped text
1294f2baf2bc added wrapping of long tooltips in index page
Marcin Kuzminski <marcin@python-works.com>
parents: 904
diff changeset
98
604
5cc96df705b9 fixed @repo into :repo for docs
Marcin Kuzminski <marcin@python-works.com>
parents: 547
diff changeset
99 :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
100 """
631
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 604
diff changeset
101
444
0668919c307c fixed escaping in tooltip
Marcin Kuzminski <marcin@python-works.com>
parents: 443
diff changeset
102 return wrap_paragraphs(escape(tooltip_title), trim_at)\
0668919c307c fixed escaping in tooltip
Marcin Kuzminski <marcin@python-works.com>
parents: 443
diff changeset
103 .replace('\n', '<br/>')
631
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 604
diff changeset
104
281
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
105 def activate(self):
904
82aaf4e71817 reimplemented tooltip, refactored tooltip_title into title for proper html,
Marcin Kuzminski <marcin@python-works.com>
parents: 899
diff changeset
106 """Adds tooltip mechanism to the given Html all tooltips have to have
82aaf4e71817 reimplemented tooltip, refactored tooltip_title into title for proper html,
Marcin Kuzminski <marcin@python-works.com>
parents: 899
diff changeset
107 set class `tooltip` and set attribute `tooltip_title`.
82aaf4e71817 reimplemented tooltip, refactored tooltip_title into title for proper html,
Marcin Kuzminski <marcin@python-works.com>
parents: 899
diff changeset
108 Then a tooltip will be generated based on that. All with yui js tooltip
281
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
109 """
631
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 604
diff changeset
110
281
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
111 js = '''
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
112 YAHOO.util.Event.onDOMReady(function(){
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
113 function toolTipsId(){
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
114 var ids = [];
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
115 var tts = YAHOO.util.Dom.getElementsByClassName('tooltip');
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
116
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
117 for (var i = 0; i < tts.length; i++) {
904
82aaf4e71817 reimplemented tooltip, refactored tooltip_title into title for proper html,
Marcin Kuzminski <marcin@python-works.com>
parents: 899
diff changeset
118 //if element doesn't not have and id autogenerate one for tooltip
281
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
119
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
120 if (!tts[i].id){
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
121 tts[i].id='tt'+i*100;
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
122 }
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
123 ids.push(tts[i].id);
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
124 }
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
125 return ids
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
126 };
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
127 var myToolTips = new YAHOO.widget.Tooltip("tooltip", {
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
128 context: toolTipsId(),
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
129 monitorresize:false,
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
130 xyoffset :[0,0],
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
131 autodismissdelay:300000,
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
132 hidedelay:5,
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
133 showdelay:20,
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
134 });
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
135
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
136 // Set the text for the tooltip just before we display it. Lazy method
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
137 myToolTips.contextTriggerEvent.subscribe(
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
138 function(type, args) {
292
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
139
281
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
140 var context = args[0];
292
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
141
904
82aaf4e71817 reimplemented tooltip, refactored tooltip_title into title for proper html,
Marcin Kuzminski <marcin@python-works.com>
parents: 899
diff changeset
142 //positioning of tooltip
82aaf4e71817 reimplemented tooltip, refactored tooltip_title into title for proper html,
Marcin Kuzminski <marcin@python-works.com>
parents: 899
diff changeset
143 var tt_w = this.element.clientWidth;//tooltip width
82aaf4e71817 reimplemented tooltip, refactored tooltip_title into title for proper html,
Marcin Kuzminski <marcin@python-works.com>
parents: 899
diff changeset
144 var tt_h = this.element.clientHeight;//tooltip height
292
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
145
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
146 var context_w = context.offsetWidth;
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
147 var context_h = context.offsetHeight;
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
148
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
149 var pos_x = YAHOO.util.Dom.getX(context);
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
150 var pos_y = YAHOO.util.Dom.getY(context);
286
6603c9891b91 tooltip display bugfix
Marcin Kuzminski <marcin@python-works.com>
parents: 284
diff changeset
151
904
82aaf4e71817 reimplemented tooltip, refactored tooltip_title into title for proper html,
Marcin Kuzminski <marcin@python-works.com>
parents: 899
diff changeset
152 var display_strategy = 'right';
293
68dc70295a76 Ie graph support.
Marcin Kuzminski <marcin@python-works.com>
parents: 292
diff changeset
153 var xy_pos = [0,0];
292
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
154 switch (display_strategy){
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
155
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
156 case 'top':
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
157 var cur_x = (pos_x+context_w/2)-(tt_w/2);
904
82aaf4e71817 reimplemented tooltip, refactored tooltip_title into title for proper html,
Marcin Kuzminski <marcin@python-works.com>
parents: 899
diff changeset
158 var cur_y = (pos_y-tt_h-4);
292
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
159 xy_pos = [cur_x,cur_y];
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
160 break;
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
161 case 'bottom':
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
162 var cur_x = (pos_x+context_w/2)-(tt_w/2);
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
163 var cur_y = pos_y+context_h+4;
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
164 xy_pos = [cur_x,cur_y];
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
165 break;
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
166 case 'left':
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
167 var cur_x = (pos_x-tt_w-4);
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
168 var cur_y = pos_y-((tt_h/2)-context_h/2);
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
169 xy_pos = [cur_x,cur_y];
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
170 break;
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
171 case 'right':
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
172 var cur_x = (pos_x+context_w+4);
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
173 var cur_y = pos_y-((tt_h/2)-context_h/2);
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
174 xy_pos = [cur_x,cur_y];
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
175 break;
293
68dc70295a76 Ie graph support.
Marcin Kuzminski <marcin@python-works.com>
parents: 292
diff changeset
176 default:
68dc70295a76 Ie graph support.
Marcin Kuzminski <marcin@python-works.com>
parents: 292
diff changeset
177 var cur_x = (pos_x+context_w/2)-(tt_w/2);
68dc70295a76 Ie graph support.
Marcin Kuzminski <marcin@python-works.com>
parents: 292
diff changeset
178 var cur_y = pos_y-tt_h-4;
68dc70295a76 Ie graph support.
Marcin Kuzminski <marcin@python-works.com>
parents: 292
diff changeset
179 xy_pos = [cur_x,cur_y];
68dc70295a76 Ie graph support.
Marcin Kuzminski <marcin@python-works.com>
parents: 292
diff changeset
180 break;
68dc70295a76 Ie graph support.
Marcin Kuzminski <marcin@python-works.com>
parents: 292
diff changeset
181
292
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
182 }
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
183
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
184 this.cfg.setProperty("xy",xy_pos);
286
6603c9891b91 tooltip display bugfix
Marcin Kuzminski <marcin@python-works.com>
parents: 284
diff changeset
185
281
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
186 });
292
d7aeae23c56d tooltip updates, added display layout managment inspired by jQuerys tipsy.
Marcin Kuzminski <marcin@python-works.com>
parents: 287
diff changeset
187
286
6603c9891b91 tooltip display bugfix
Marcin Kuzminski <marcin@python-works.com>
parents: 284
diff changeset
188 //Mouse out
6603c9891b91 tooltip display bugfix
Marcin Kuzminski <marcin@python-works.com>
parents: 284
diff changeset
189 myToolTips.contextMouseOutEvent.subscribe(
6603c9891b91 tooltip display bugfix
Marcin Kuzminski <marcin@python-works.com>
parents: 284
diff changeset
190 function(type, args) {
6603c9891b91 tooltip display bugfix
Marcin Kuzminski <marcin@python-works.com>
parents: 284
diff changeset
191 var context = args[0];
6603c9891b91 tooltip display bugfix
Marcin Kuzminski <marcin@python-works.com>
parents: 284
diff changeset
192
6603c9891b91 tooltip display bugfix
Marcin Kuzminski <marcin@python-works.com>
parents: 284
diff changeset
193 });
281
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
194 });
631
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 604
diff changeset
195 '''
281
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
196 return literal(js)
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
197
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
198 tooltip = _ToolTip()
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
199
102
2dc0c8e4f384 Updated tempaltes, added file browser breadcrumbs, and feed icons
Marcin Kuzminski <marcin@python-works.com>
parents: 98
diff changeset
200 class _FilesBreadCrumbs(object):
631
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 604
diff changeset
201
102
2dc0c8e4f384 Updated tempaltes, added file browser breadcrumbs, and feed icons
Marcin Kuzminski <marcin@python-works.com>
parents: 98
diff changeset
202 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
203 if isinstance(paths, str):
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
204 paths = paths.decode('utf-8')
287
5827c739b0bd webhelpers breadcrumbs bugfix
Marcin Kuzminski <marcin@python-works.com>
parents: 286
diff changeset
205 url_l = [link_to(repo_name, url('files_home',
5827c739b0bd webhelpers breadcrumbs bugfix
Marcin Kuzminski <marcin@python-works.com>
parents: 286
diff changeset
206 repo_name=repo_name,
5827c739b0bd webhelpers breadcrumbs bugfix
Marcin Kuzminski <marcin@python-works.com>
parents: 286
diff changeset
207 revision=rev, f_path=''))]
5827c739b0bd webhelpers breadcrumbs bugfix
Marcin Kuzminski <marcin@python-works.com>
parents: 286
diff changeset
208 paths_l = paths.split('/')
740
9279dfedcf93 fixed python2.5 incompatible enumerate calls
Marcin Kuzminski <marcin@python-works.com>
parents: 735
diff changeset
209 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
210 if p != '':
287
5827c739b0bd webhelpers breadcrumbs bugfix
Marcin Kuzminski <marcin@python-works.com>
parents: 286
diff changeset
211 url_l.append(link_to(p, url('files_home',
5827c739b0bd webhelpers breadcrumbs bugfix
Marcin Kuzminski <marcin@python-works.com>
parents: 286
diff changeset
212 repo_name=repo_name,
5827c739b0bd webhelpers breadcrumbs bugfix
Marcin Kuzminski <marcin@python-works.com>
parents: 286
diff changeset
213 revision=rev,
740
9279dfedcf93 fixed python2.5 incompatible enumerate calls
Marcin Kuzminski <marcin@python-works.com>
parents: 735
diff changeset
214 f_path='/'.join(paths_l[:cnt + 1]))))
97
be0096a02772 added helper for filesize
Marcin Kuzminski <marcin@python-works.com>
parents: 94
diff changeset
215
448
4679105ef03e more css html fixes (+cleanups), rewrote definition list for files
Marcin Kuzminski <marcin@python-works.com>
parents: 444
diff changeset
216 return literal('/'.join(url_l))
98
01d0f363f36d added pygments webhelper
Marcin Kuzminski <marcin@python-works.com>
parents: 97
diff changeset
217
281
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
218 files_breadcrumbs = _FilesBreadCrumbs()
899
d65843e07d3c Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents: 864
diff changeset
219
505
5aba7adff196 little gui change for file source
Marcin Kuzminski <marcin@python-works.com>
parents: 494
diff changeset
220 class CodeHtmlFormatter(HtmlFormatter):
966
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
221 """My code Html Formatter for source codes
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
222 """
281
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
223
505
5aba7adff196 little gui change for file source
Marcin Kuzminski <marcin@python-works.com>
parents: 494
diff changeset
224 def wrap(self, source, outfile):
5aba7adff196 little gui change for file source
Marcin Kuzminski <marcin@python-works.com>
parents: 494
diff changeset
225 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
226
5aba7adff196 little gui change for file source
Marcin Kuzminski <marcin@python-works.com>
parents: 494
diff changeset
227 def _wrap_code(self, source):
740
9279dfedcf93 fixed python2.5 incompatible enumerate calls
Marcin Kuzminski <marcin@python-works.com>
parents: 735
diff changeset
228 for cnt, it in enumerate(source):
505
5aba7adff196 little gui change for file source
Marcin Kuzminski <marcin@python-works.com>
parents: 494
diff changeset
229 i, t = it
966
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
230 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
231 yield i, t
966
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
232
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
233 def _wrap_tablelinenos(self, inner):
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
234 dummyoutfile = StringIO.StringIO()
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
235 lncount = 0
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
236 for t, line in inner:
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
237 if t:
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
238 lncount += 1
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
239 dummyoutfile.write(line)
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
240
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
241 fl = self.linenostart
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
242 mw = len(str(lncount + fl - 1))
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
243 sp = self.linenospecial
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
244 st = self.linenostep
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
245 la = self.lineanchors
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
246 aln = self.anchorlinenos
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
247 nocls = self.noclasses
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
248 if sp:
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
249 lines = []
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
250
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
251 for i in range(fl, fl + lncount):
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
252 if i % st == 0:
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
253 if i % sp == 0:
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
254 if aln:
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
255 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
256 (la, i, mw, i))
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
257 else:
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
258 lines.append('<span class="special">%*d</span>' % (mw, i))
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
259 else:
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
260 if aln:
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
261 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
262 else:
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
263 lines.append('%*d' % (mw, i))
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
264 else:
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
265 lines.append('')
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
266 ls = '\n'.join(lines)
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
267 else:
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
268 lines = []
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
269 for i in range(fl, fl + lncount):
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
270 if i % st == 0:
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
271 if aln:
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
272 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
273 else:
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
274 lines.append('%*d' % (mw, i))
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
275 else:
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
276 lines.append('')
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
277 ls = '\n'.join(lines)
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
278
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
279 # 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
280 # 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
281 # some configurations seem to mess up the formatting...
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
282 if nocls:
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
283 yield 0, ('<table class="%stable">' % self.cssclass +
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
284 '<tr><td><div class="linenodiv" '
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
285 'style="background-color: #f0f0f0; padding-right: 10px">'
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
286 '<pre style="line-height: 125%">' +
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
287 ls + '</pre></div></td><td class="code">')
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
288 else:
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
289 yield 0, ('<table class="%stable">' % self.cssclass +
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
290 '<tr><td class="linenos"><div class="linenodiv"><pre>' +
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
291 ls + '</pre></div></td><td class="code">')
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
292 yield 0, dummyoutfile.getvalue()
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
293 yield 0, '</td></tr></table>'
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
294
63c91390853c fixed line number look
Marcin Kuzminski <marcin@python-works.com>
parents: 965
diff changeset
295
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
296 def pygmentize(filenode, **kwargs):
899
d65843e07d3c Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents: 864
diff changeset
297 """pygmentize function using pygments
d65843e07d3c Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents: 864
diff changeset
298
604
5cc96df705b9 fixed @repo into :repo for docs
Marcin Kuzminski <marcin@python-works.com>
parents: 547
diff changeset
299 :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
300 """
899
d65843e07d3c Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents: 864
diff changeset
301
450
c3236d7febad fixed, empty cs bug.
Marcin Kuzminski <marcin@python-works.com>
parents: 448
diff changeset
302 return literal(code_highlight(filenode.content,
505
5aba7adff196 little gui change for file source
Marcin Kuzminski <marcin@python-works.com>
parents: 494
diff changeset
303 filenode.lexer, CodeHtmlFormatter(**kwargs)))
165
ea893ffb7f00 implemented pygmentize codes into webhelpers. Together with color_dict caching into pylons globals
Marcin Kuzminski <marcin@python-works.com>
parents: 104
diff changeset
304
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
305 def pygmentize_annotation(filenode, **kwargs):
899
d65843e07d3c Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents: 864
diff changeset
306 """pygmentize function for annotation
d65843e07d3c Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents: 864
diff changeset
307
604
5cc96df705b9 fixed @repo into :repo for docs
Marcin Kuzminski <marcin@python-works.com>
parents: 547
diff changeset
308 :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
309 """
631
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 604
diff changeset
310
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
311 color_dict = {}
947
99850ac883d1 Fixed whoosh daemon, for depracated walk method
Marcin Kuzminski <marcin@python-works.com>
parents: 946
diff changeset
312 def gen_color(n=10000):
99850ac883d1 Fixed whoosh daemon, for depracated walk method
Marcin Kuzminski <marcin@python-works.com>
parents: 946
diff changeset
313 """generator for getting n of evenly distributed colors using
99850ac883d1 Fixed whoosh daemon, for depracated walk method
Marcin Kuzminski <marcin@python-works.com>
parents: 946
diff changeset
314 hsv color and golden ratio. It always return same order of colors
99850ac883d1 Fixed whoosh daemon, for depracated walk method
Marcin Kuzminski <marcin@python-works.com>
parents: 946
diff changeset
315
99850ac883d1 Fixed whoosh daemon, for depracated walk method
Marcin Kuzminski <marcin@python-works.com>
parents: 946
diff changeset
316 :returns: RGB tuple
631
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 604
diff changeset
317 """
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
318 import colorsys
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
319 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
320 h = 0.22717784590367374
947
99850ac883d1 Fixed whoosh daemon, for depracated walk method
Marcin Kuzminski <marcin@python-works.com>
parents: 946
diff changeset
321
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
322 for c in xrange(n):
450
c3236d7febad fixed, empty cs bug.
Marcin Kuzminski <marcin@python-works.com>
parents: 448
diff changeset
323 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
324 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
325 HSV_tuple = [h, 0.95, 0.95]
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
326 RGB_tuple = colorsys.hsv_to_rgb(*HSV_tuple)
631
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 604
diff changeset
327 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
328
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
329 cgenerator = gen_color()
631
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 604
diff changeset
330
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
331 def get_color_string(cs):
ea893ffb7f00 implemented pygmentize codes into webhelpers. Together with color_dict caching into pylons globals
Marcin Kuzminski <marcin@python-works.com>
parents: 104
diff changeset
332 if color_dict.has_key(cs):
ea893ffb7f00 implemented pygmentize codes into webhelpers. Together with color_dict caching into pylons globals
Marcin Kuzminski <marcin@python-works.com>
parents: 104
diff changeset
333 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
334 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
335 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
336 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
337
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
338 def url_func(changeset):
450
c3236d7febad fixed, empty cs bug.
Marcin Kuzminski <marcin@python-works.com>
parents: 448
diff changeset
339 tooltip_html = "<div style='font-size:0.8em'><b>Author:</b>" + \
631
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 604
diff changeset
340 " %s<br/><b>Date:</b> %s</b><br/><b>Message:</b> %s<br/></div>"
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 604
diff changeset
341
281
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
342 tooltip_html = tooltip_html % (changeset.author,
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
343 changeset.date,
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
344 tooltip(changeset.message))
662
373ee7031003 fixed annotation bug, added history to annotation.
Marcin Kuzminski <marcin@python-works.com>
parents: 660
diff changeset
345 lnk_format = '%5s:%s' % ('r%s' % changeset.revision,
373ee7031003 fixed annotation bug, added history to annotation.
Marcin Kuzminski <marcin@python-works.com>
parents: 660
diff changeset
346 short_id(changeset.raw_id))
281
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
347 uri = link_to(
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
348 lnk_format,
428
dee0e7eb0370 removed decodes, thus it should be implemented on vcs side
*** failed to import extension hggit: No module named hggit
parents: 401
diff changeset
349 url('changeset_home', repo_name=changeset.repository.name,
636
ffd07396d315 Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents: 635
diff changeset
350 revision=changeset.raw_id),
ffd07396d315 Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents: 635
diff changeset
351 style=get_color_string(changeset.raw_id),
281
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
352 class_='tooltip',
904
82aaf4e71817 reimplemented tooltip, refactored tooltip_title into title for proper html,
Marcin Kuzminski <marcin@python-works.com>
parents: 899
diff changeset
353 title=tooltip_html
281
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
354 )
631
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 604
diff changeset
355
281
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
356 uri += '\n'
631
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 604
diff changeset
357 return uri
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
358 return literal(annotate_highlight(filenode, url_func, **kwargs))
631
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 604
diff changeset
359
260
6ada8c223374 made global funcion to clean repo names, and remove all special chars from the name.
Marcin Kuzminski <marcin@python-works.com>
parents: 250
diff changeset
360 def repo_name_slug(value):
481
4187d93c7c04 reimplemented name slug to accept capitalized repositories names
Marcin Kuzminski <marcin@python-works.com>
parents: 450
diff changeset
361 """Return slug of name of repository
4187d93c7c04 reimplemented name slug to accept capitalized repositories names
Marcin Kuzminski <marcin@python-works.com>
parents: 450
diff changeset
362 This function is called on each creation/modification
4187d93c7c04 reimplemented name slug to accept capitalized repositories names
Marcin Kuzminski <marcin@python-works.com>
parents: 450
diff changeset
363 of repository to prevent bad names in repo
260
6ada8c223374 made global funcion to clean repo names, and remove all special chars from the name.
Marcin Kuzminski <marcin@python-works.com>
parents: 250
diff changeset
364 """
899
d65843e07d3c Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents: 864
diff changeset
365
481
4187d93c7c04 reimplemented name slug to accept capitalized repositories names
Marcin Kuzminski <marcin@python-works.com>
parents: 450
diff changeset
366 slug = remove_formatting(value)
4187d93c7c04 reimplemented name slug to accept capitalized repositories names
Marcin Kuzminski <marcin@python-works.com>
parents: 450
diff changeset
367 slug = strip_tags(slug)
631
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 604
diff changeset
368
481
4187d93c7c04 reimplemented name slug to accept capitalized repositories names
Marcin Kuzminski <marcin@python-works.com>
parents: 450
diff changeset
369 for c in """=[]\;'"<>,/~!@#$%^&*()+{}|: """:
260
6ada8c223374 made global funcion to clean repo names, and remove all special chars from the name.
Marcin Kuzminski <marcin@python-works.com>
parents: 250
diff changeset
370 slug = slug.replace(c, '-')
6ada8c223374 made global funcion to clean repo names, and remove all special chars from the name.
Marcin Kuzminski <marcin@python-works.com>
parents: 250
diff changeset
371 slug = recursive_replace(slug, '-')
481
4187d93c7c04 reimplemented name slug to accept capitalized repositories names
Marcin Kuzminski <marcin@python-works.com>
parents: 450
diff changeset
372 slug = collapse(slug, '-')
260
6ada8c223374 made global funcion to clean repo names, and remove all special chars from the name.
Marcin Kuzminski <marcin@python-works.com>
parents: 250
diff changeset
373 return slug
281
cd2ee462fc2c implemented yui tooltip, and added it into annotation and main page.
Marcin Kuzminski <marcin@python-works.com>
parents: 278
diff changeset
374
450
c3236d7febad fixed, empty cs bug.
Marcin Kuzminski <marcin@python-works.com>
parents: 448
diff changeset
375 def get_changeset_safe(repo, rev):
c3236d7febad fixed, empty cs bug.
Marcin Kuzminski <marcin@python-works.com>
parents: 448
diff changeset
376 from vcs.backends.base import BaseRepository
c3236d7febad fixed, empty cs bug.
Marcin Kuzminski <marcin@python-works.com>
parents: 448
diff changeset
377 from vcs.exceptions import RepositoryError
c3236d7febad fixed, empty cs bug.
Marcin Kuzminski <marcin@python-works.com>
parents: 448
diff changeset
378 if not isinstance(repo, BaseRepository):
c3236d7febad fixed, empty cs bug.
Marcin Kuzminski <marcin@python-works.com>
parents: 448
diff changeset
379 raise Exception('You must pass an Repository '
c3236d7febad fixed, empty cs bug.
Marcin Kuzminski <marcin@python-works.com>
parents: 448
diff changeset
380 'object as first argument got %s', type(repo))
631
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 604
diff changeset
381
450
c3236d7febad fixed, empty cs bug.
Marcin Kuzminski <marcin@python-works.com>
parents: 448
diff changeset
382 try:
c3236d7febad fixed, empty cs bug.
Marcin Kuzminski <marcin@python-works.com>
parents: 448
diff changeset
383 cs = repo.get_changeset(rev)
c3236d7febad fixed, empty cs bug.
Marcin Kuzminski <marcin@python-works.com>
parents: 448
diff changeset
384 except RepositoryError:
547
1e757ac98988 renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 512
diff changeset
385 from rhodecode.lib.utils import EmptyChangeset
450
c3236d7febad fixed, empty cs bug.
Marcin Kuzminski <marcin@python-works.com>
parents: 448
diff changeset
386 cs = EmptyChangeset()
c3236d7febad fixed, empty cs bug.
Marcin Kuzminski <marcin@python-works.com>
parents: 448
diff changeset
387 return cs
c3236d7febad fixed, empty cs bug.
Marcin Kuzminski <marcin@python-works.com>
parents: 448
diff changeset
388
c3236d7febad fixed, empty cs bug.
Marcin Kuzminski <marcin@python-works.com>
parents: 448
diff changeset
389
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
390 flash = _Flash()
282
237470e64bb8 switched filters into webhelpers for easy of usage.
Marcin Kuzminski <marcin@python-works.com>
parents: 281
diff changeset
391
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 #==============================================================================
282
237470e64bb8 switched filters into webhelpers for easy of usage.
Marcin Kuzminski <marcin@python-works.com>
parents: 281
diff changeset
394 # MERCURIAL 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 #==============================================================================
282
237470e64bb8 switched filters into webhelpers for easy of usage.
Marcin Kuzminski <marcin@python-works.com>
parents: 281
diff changeset
396 from mercurial import util
635
fd63782c4426 Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents: 631
diff changeset
397 from mercurial.templatefilters import person as _person
fd63782c4426 Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents: 631
diff changeset
398
fd63782c4426 Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents: 631
diff changeset
399 def _age(curdate):
fd63782c4426 Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents: 631
diff changeset
400 """turns a datetime into an age string."""
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
401
643
9dc1d92d82ed updated setup for all newest versions
Marcin Kuzminski <marcin@python-works.com>
parents: 636
diff changeset
402 if not curdate:
9dc1d92d82ed updated setup for all newest versions
Marcin Kuzminski <marcin@python-works.com>
parents: 636
diff changeset
403 return ''
282
237470e64bb8 switched filters into webhelpers for easy of usage.
Marcin Kuzminski <marcin@python-works.com>
parents: 281
diff changeset
404
635
fd63782c4426 Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents: 631
diff changeset
405 from datetime import timedelta, datetime
643
9dc1d92d82ed updated setup for all newest versions
Marcin Kuzminski <marcin@python-works.com>
parents: 636
diff changeset
406
635
fd63782c4426 Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents: 631
diff changeset
407 agescales = [("year", 3600 * 24 * 365),
653
4a3291628f09 fixed a bug when age of last change is less than one minute
Marcin Kuzminski <marcin@python-works.com>
parents: 643
diff changeset
408 ("month", 3600 * 24 * 30),
4a3291628f09 fixed a bug when age of last change is less than one minute
Marcin Kuzminski <marcin@python-works.com>
parents: 643
diff changeset
409 ("day", 3600 * 24),
4a3291628f09 fixed a bug when age of last change is less than one minute
Marcin Kuzminski <marcin@python-works.com>
parents: 643
diff changeset
410 ("hour", 3600),
4a3291628f09 fixed a bug when age of last change is less than one minute
Marcin Kuzminski <marcin@python-works.com>
parents: 643
diff changeset
411 ("minute", 60),
4a3291628f09 fixed a bug when age of last change is less than one minute
Marcin Kuzminski <marcin@python-works.com>
parents: 643
diff changeset
412 ("second", 1), ]
635
fd63782c4426 Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents: 631
diff changeset
413
fd63782c4426 Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents: 631
diff changeset
414 age = datetime.now() - curdate
fd63782c4426 Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents: 631
diff changeset
415 age_seconds = (age.days * agescales[2][1]) + age.seconds
fd63782c4426 Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents: 631
diff changeset
416 pos = 1
fd63782c4426 Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents: 631
diff changeset
417 for scale in agescales:
fd63782c4426 Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents: 631
diff changeset
418 if scale[1] <= age_seconds:
653
4a3291628f09 fixed a bug when age of last change is less than one minute
Marcin Kuzminski <marcin@python-works.com>
parents: 643
diff changeset
419 if pos == 6:pos = 5
668
dff6d5cb8bba fixed deletion of repository on filesystem, works based on scm type for git and hg.
Marcin Kuzminski <marcin@python-works.com>
parents: 662
diff changeset
420 return time_ago_in_words(curdate, agescales[pos][0]) + ' ' + _('ago')
635
fd63782c4426 Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents: 631
diff changeset
421 pos += 1
fd63782c4426 Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents: 631
diff changeset
422
668
dff6d5cb8bba fixed deletion of repository on filesystem, works based on scm type for git and hg.
Marcin Kuzminski <marcin@python-works.com>
parents: 662
diff changeset
423 return _('just now')
dff6d5cb8bba fixed deletion of repository on filesystem, works based on scm type for git and hg.
Marcin Kuzminski <marcin@python-works.com>
parents: 662
diff changeset
424
635
fd63782c4426 Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents: 631
diff changeset
425 age = lambda x:_age(x)
282
237470e64bb8 switched filters into webhelpers for easy of usage.
Marcin Kuzminski <marcin@python-works.com>
parents: 281
diff changeset
426 capitalize = lambda x: x.capitalize()
237470e64bb8 switched filters into webhelpers for easy of usage.
Marcin Kuzminski <marcin@python-works.com>
parents: 281
diff changeset
427 email = util.email
401
b1debb6c5a09 implemented gravatars to changesets, updated styling for changesets
Marcin Kuzminski <marcin@python-works.com>
parents: 400
diff changeset
428 email_or_none = lambda x: util.email(x) if util.email(x) != x else None
282
237470e64bb8 switched filters into webhelpers for easy of usage.
Marcin Kuzminski <marcin@python-works.com>
parents: 281
diff changeset
429 person = lambda x: _person(x)
636
ffd07396d315 Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents: 635
diff changeset
430 short_id = lambda x: x[:12]
282
237470e64bb8 switched filters into webhelpers for easy of usage.
Marcin Kuzminski <marcin@python-works.com>
parents: 281
diff changeset
431
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
432
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
433 def bool2icon(value):
899
d65843e07d3c Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents: 864
diff changeset
434 """Returns True/False values represented as small html image of true/false
712
131c1e335fa7 Added ldap info on admin users, added bool2icon helper for nicer representation of
Marcin Kuzminski <marcin@python-works.com>
parents: 698
diff changeset
435 icons
899
d65843e07d3c Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents: 864
diff changeset
436
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
437 :param value: bool value
131c1e335fa7 Added ldap info on admin users, added bool2icon helper for nicer representation of
Marcin Kuzminski <marcin@python-works.com>
parents: 698
diff changeset
438 """
131c1e335fa7 Added ldap info on admin users, added bool2icon helper for nicer representation of
Marcin Kuzminski <marcin@python-works.com>
parents: 698
diff changeset
439
131c1e335fa7 Added ldap info on admin users, added bool2icon helper for nicer representation of
Marcin Kuzminski <marcin@python-works.com>
parents: 698
diff changeset
440 if value is True:
714
e002951ba66d html w3c fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 712
diff changeset
441 return HTML.tag('img', src="/images/icons/accept.png", alt=_('True'))
712
131c1e335fa7 Added ldap info on admin users, added bool2icon helper for nicer representation of
Marcin Kuzminski <marcin@python-works.com>
parents: 698
diff changeset
442
131c1e335fa7 Added ldap info on admin users, added bool2icon helper for nicer representation of
Marcin Kuzminski <marcin@python-works.com>
parents: 698
diff changeset
443 if value is False:
714
e002951ba66d html w3c fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 712
diff changeset
444 return HTML.tag('img', src="/images/icons/cancel.png", 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
445
131c1e335fa7 Added ldap info on admin users, added bool2icon helper for nicer representation of
Marcin Kuzminski <marcin@python-works.com>
parents: 698
diff changeset
446 return value
131c1e335fa7 Added ldap info on admin users, added bool2icon helper for nicer representation of
Marcin Kuzminski <marcin@python-works.com>
parents: 698
diff changeset
447
131c1e335fa7 Added ldap info on admin users, added bool2icon helper for nicer representation of
Marcin Kuzminski <marcin@python-works.com>
parents: 698
diff changeset
448
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
449 def action_parser(user_log):
899
d65843e07d3c Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents: 864
diff changeset
450 """This helper will 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
451 fancy names with icons and links
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
452
899
d65843e07d3c Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents: 864
diff changeset
453 :param user_log: user log instance
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
454 """
899
d65843e07d3c Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents: 864
diff changeset
455
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
456 action = user_log.action
840
ee6f345736a6 action logger upgrade, for working with migrations
Marcin Kuzminski <marcin@python-works.com>
parents: 817
diff changeset
457 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
458
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
459 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
460
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
461 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
462 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
463
718
7df3855bf6c7 Added fork name to journal
Marcin Kuzminski <marcin@python-works.com>
parents: 714
diff changeset
464 def get_cs_links():
953
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
465 revs_limit = 5 #display this amount always
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
466 revs_top_limit = 50 #show upto this amount of changesets hidden
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
467 revs = action_params.split(',')
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
468 repo_name = user_log.repository.repo_name
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
469 from rhodecode.model.scm import ScmModel
899
d65843e07d3c Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents: 864
diff changeset
470
953
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
471 message = lambda rev: get_changeset_safe(ScmModel().get(repo_name),
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
472 rev).message
899
d65843e07d3c Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents: 864
diff changeset
473
953
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
474 cs_links = " " + ', '.join ([link_to(rev,
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
475 url('changeset_home',
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
476 repo_name=repo_name,
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
477 revision=rev), title=tooltip(message(rev)),
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
478 class_='tooltip') for rev in revs[:revs_limit] ])
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
479 if len(revs) > revs_limit:
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
480 uniq_id = revs[0]
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
481 html_tmpl = ('<span> %s '
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
482 '<a class="show_more" id="_%s" href="#">%s</a> '
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
483 '%s</span>')
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
484 cs_links += html_tmpl % (_('and'), uniq_id, _('%s more') \
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
485 % (len(revs) - revs_limit),
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
486 _('revisions'))
808
1af15d66838f added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents: 790
diff changeset
487
953
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
488 html_tmpl = '<span id="%s" style="display:none"> %s </span>'
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
489 cs_links += html_tmpl % (uniq_id, ', '.join([link_to(rev,
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
490 url('changeset_home',
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
491 repo_name=repo_name, revision=rev),
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
492 title=message(rev), class_='tooltip')
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
493 for rev in revs[revs_limit:revs_top_limit]]))
734
49eb69d78988 implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents: 718
diff changeset
494
953
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
495 return cs_links
734
49eb69d78988 implemented user dashboards, and following system.
Marcin Kuzminski <marcin@python-works.com>
parents: 718
diff changeset
496
718
7df3855bf6c7 Added fork name to journal
Marcin Kuzminski <marcin@python-works.com>
parents: 714
diff changeset
497 def get_fork_name():
953
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
498 from rhodecode.model.scm import ScmModel
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
499 repo_name = action_params
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
500 repo = ScmModel().get(repo_name)
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
501 if repo is None:
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
502 return repo_name
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
503 return link_to(action_params, url('summary_home',
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
504 repo_name=repo.name,),
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
505 title=repo.dbrepo.description)
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
506
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
507 map = {'user_deleted_repo':(_('User [deleted] repository'), None),
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
508 'user_created_repo':(_('User [created] repository'), None),
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
509 'user_forked_repo':(_('User [forked] repository as:'), get_fork_name),
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
510 'user_updated_repo':(_('User [updated] repository'), None),
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
511 'admin_deleted_repo':(_('Admin [delete] repository'), None),
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
512 'admin_created_repo':(_('Admin [created] repository'), None),
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
513 'admin_forked_repo':(_('Admin [forked] repository'), None),
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
514 'admin_updated_repo':(_('Admin [updated] repository'), None),
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
515 'push':(_('[Pushed]'), get_cs_links),
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
516 'pull':(_('[Pulled]'), None),
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
517 'started_following_repo':(_('User [started following] repository'), None),
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
518 'stopped_following_repo':(_('User [stopped following] repository'), None),
735
dbec976d9975 added action loggers to following repositories,
Marcin Kuzminski <marcin@python-works.com>
parents: 734
diff changeset
519 }
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
520
764
5c87d5ad1b5e some stylings to journal
Marcin Kuzminski <marcin@python-works.com>
parents: 740
diff changeset
521 action_str = map.get(action, action)
953
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
522 action = action_str[0].replace('[', '<span class="journal_highlight">')\
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
523 .replace(']', '</span>')
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
524 if action_str[1] is not None:
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
525 action = action + " " + action_str[1]()
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
526
def3578dac8c fixed vcs import.
Marcin Kuzminski <marcin@python-works.com>
parents: 947
diff changeset
527 return literal(action)
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
528
1af15d66838f added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents: 790
diff changeset
529 def action_parser_icon(user_log):
1af15d66838f added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents: 790
diff changeset
530 action = user_log.action
1af15d66838f added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents: 790
diff changeset
531 action_params = None
1af15d66838f added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents: 790
diff changeset
532 x = action.split(':')
1af15d66838f added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents: 790
diff changeset
533
1af15d66838f added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents: 790
diff changeset
534 if len(x) > 1:
1af15d66838f added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents: 790
diff changeset
535 action, action_params = x
1af15d66838f added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents: 790
diff changeset
536
817
09e58532d4f7 fixed some w3c html
Marcin Kuzminski <marcin@python-works.com>
parents: 808
diff changeset
537 tmpl = """<img src="/images/icons/%s" alt="%s"/>"""
808
1af15d66838f added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents: 790
diff changeset
538 map = {'user_deleted_repo':'database_delete.png',
1af15d66838f added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents: 790
diff changeset
539 'user_created_repo':'database_add.png',
1af15d66838f added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents: 790
diff changeset
540 'user_forked_repo':'arrow_divide.png',
1af15d66838f added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents: 790
diff changeset
541 'user_updated_repo':'database_edit.png',
1af15d66838f added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents: 790
diff changeset
542 'admin_deleted_repo':'database_delete.png',
899
d65843e07d3c Added message tooltip into journal revisions in push.
Marcin Kuzminski <marcin@python-works.com>
parents: 864
diff changeset
543 'admin_created_repo':'database_add.png',
808
1af15d66838f added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents: 790
diff changeset
544 'admin_forked_repo':'arrow_divide.png',
1af15d66838f added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents: 790
diff changeset
545 'admin_updated_repo':'database_edit.png',
1af15d66838f added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents: 790
diff changeset
546 'push':'script_add.png',
1af15d66838f added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents: 790
diff changeset
547 'pull':'down_16.png',
1af15d66838f added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents: 790
diff changeset
548 'started_following_repo':'heart_add.png',
1af15d66838f added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents: 790
diff changeset
549 'stopped_following_repo':'heart_delete.png',
1af15d66838f added icons to journal, extend show more to actually show more pushed revisions,
Marcin Kuzminski <marcin@python-works.com>
parents: 790
diff changeset
550 }
817
09e58532d4f7 fixed some w3c html
Marcin Kuzminski <marcin@python-works.com>
parents: 808
diff changeset
551 return literal(tmpl % (map.get(action, action), action))
660
df61378032f3 #48 rewrote action logger, translated action logger messages, added some extra messages. Linked and showed pushed revisions in logs
Marcin Kuzminski <marcin@python-works.com>
parents: 653
diff changeset
552
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
553
635
fd63782c4426 Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents: 631
diff changeset
554 #==============================================================================
307
504feff57b49 added permission functions to webhelpers, updated dbmanage permissions
Marcin Kuzminski <marcin@python-works.com>
parents: 293
diff changeset
555 # PERMS
635
fd63782c4426 Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents: 631
diff changeset
556 #==============================================================================
547
1e757ac98988 renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 512
diff changeset
557 from rhodecode.lib.auth import HasPermissionAny, HasPermissionAll, \
307
504feff57b49 added permission functions to webhelpers, updated dbmanage permissions
Marcin Kuzminski <marcin@python-works.com>
parents: 293
diff changeset
558 HasRepoPermissionAny, HasRepoPermissionAll
282
237470e64bb8 switched filters into webhelpers for easy of usage.
Marcin Kuzminski <marcin@python-works.com>
parents: 281
diff changeset
559
635
fd63782c4426 Fixed age, for new vcs implementation. Removed all obsolete date formatters
Marcin Kuzminski <marcin@python-works.com>
parents: 631
diff changeset
560 #==============================================================================
398
8c50b164fb58 Implemented basic gravatar support on admin pages only for now
Marcin Kuzminski <marcin@python-works.com>
parents: 307
diff changeset
561 # 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
562 #==============================================================================
398
8c50b164fb58 Implemented basic gravatar support on admin pages only for now
Marcin Kuzminski <marcin@python-works.com>
parents: 307
diff changeset
563 import hashlib
8c50b164fb58 Implemented basic gravatar support on admin pages only for now
Marcin Kuzminski <marcin@python-works.com>
parents: 307
diff changeset
564 import urllib
400
7eba3d1e4227 webhelpers import bugfix for gravatar
Marcin Kuzminski <marcin@python-works.com>
parents: 398
diff changeset
565 from pylons import request
282
237470e64bb8 switched filters into webhelpers for easy of usage.
Marcin Kuzminski <marcin@python-works.com>
parents: 281
diff changeset
566
401
b1debb6c5a09 implemented gravatars to changesets, updated styling for changesets
Marcin Kuzminski <marcin@python-works.com>
parents: 400
diff changeset
567 def gravatar_url(email_address, size=30):
946
f12cd4707301 patched gravatar url generation to properly support new https force flag from settings.
Marcin Kuzminski <marcin@python-works.com>
parents: 911
diff changeset
568 ssl_enabled = 'https' == request.environ.get('wsgi.url_scheme')
398
8c50b164fb58 Implemented basic gravatar support on admin pages only for now
Marcin Kuzminski <marcin@python-works.com>
parents: 307
diff changeset
569 default = 'identicon'
8c50b164fb58 Implemented basic gravatar support on admin pages only for now
Marcin Kuzminski <marcin@python-works.com>
parents: 307
diff changeset
570 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
571 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
572 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
573
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 604
diff changeset
574
398
8c50b164fb58 Implemented basic gravatar support on admin pages only for now
Marcin Kuzminski <marcin@python-works.com>
parents: 307
diff changeset
575 # construct the url
401
b1debb6c5a09 implemented gravatars to changesets, updated styling for changesets
Marcin Kuzminski <marcin@python-works.com>
parents: 400
diff changeset
576 gravatar_url = baseurl + hashlib.md5(email_address.lower()).hexdigest() + "?"
398
8c50b164fb58 Implemented basic gravatar support on admin pages only for now
Marcin Kuzminski <marcin@python-works.com>
parents: 307
diff changeset
577 gravatar_url += urllib.urlencode({'d':default, 's':str(size)})
8c50b164fb58 Implemented basic gravatar support on admin pages only for now
Marcin Kuzminski <marcin@python-works.com>
parents: 307
diff changeset
578
8c50b164fb58 Implemented basic gravatar support on admin pages only for now
Marcin Kuzminski <marcin@python-works.com>
parents: 307
diff changeset
579 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
580
e5157e2a530e added safe unicode funtion, and implemented it in whoosh indexer
Marcin Kuzminski <marcin@python-works.com>
parents: 438
diff changeset
581 def safe_unicode(str):
e5157e2a530e added safe unicode funtion, and implemented it in whoosh indexer
Marcin Kuzminski <marcin@python-works.com>
parents: 438
diff changeset
582 """safe unicode function. In case of UnicodeDecode error we try to return
e5157e2a530e added safe unicode funtion, and implemented it in whoosh indexer
Marcin Kuzminski <marcin@python-works.com>
parents: 438
diff changeset
583 unicode with errors replace, if this failes we return unicode with
e5157e2a530e added safe unicode funtion, and implemented it in whoosh indexer
Marcin Kuzminski <marcin@python-works.com>
parents: 438
diff changeset
584 string_escape decoding """
631
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 604
diff changeset
585
443
e5157e2a530e added safe unicode funtion, and implemented it in whoosh indexer
Marcin Kuzminski <marcin@python-works.com>
parents: 438
diff changeset
586 try:
e5157e2a530e added safe unicode funtion, and implemented it in whoosh indexer
Marcin Kuzminski <marcin@python-works.com>
parents: 438
diff changeset
587 u_str = unicode(str)
e5157e2a530e added safe unicode funtion, and implemented it in whoosh indexer
Marcin Kuzminski <marcin@python-works.com>
parents: 438
diff changeset
588 except UnicodeDecodeError:
e5157e2a530e added safe unicode funtion, and implemented it in whoosh indexer
Marcin Kuzminski <marcin@python-works.com>
parents: 438
diff changeset
589 try:
e5157e2a530e added safe unicode funtion, and implemented it in whoosh indexer
Marcin Kuzminski <marcin@python-works.com>
parents: 438
diff changeset
590 u_str = unicode(str, 'utf-8', 'replace')
e5157e2a530e added safe unicode funtion, and implemented it in whoosh indexer
Marcin Kuzminski <marcin@python-works.com>
parents: 438
diff changeset
591 except UnicodeDecodeError:
e5157e2a530e added safe unicode funtion, and implemented it in whoosh indexer
Marcin Kuzminski <marcin@python-works.com>
parents: 438
diff changeset
592 #incase we have a decode error just represent as byte string
e5157e2a530e added safe unicode funtion, and implemented it in whoosh indexer
Marcin Kuzminski <marcin@python-works.com>
parents: 438
diff changeset
593 u_str = unicode(str(str).encode('string_escape'))
631
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 604
diff changeset
594
450
c3236d7febad fixed, empty cs bug.
Marcin Kuzminski <marcin@python-works.com>
parents: 448
diff changeset
595 return u_str