aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Kuzminski <marcin@python-works.com>2012-03-23 23:52:12 +0200
committerMarcin Kuzminski <marcin@python-works.com>2012-03-23 23:52:12 +0200
commitb93b5904f18a8bb21e62cabb8e51b8fdd9c9eada (patch)
tree2d5987bd1e932564e6544ea3eb453b19c0dda2f3
parent7eabcc0cb5957bbe0e48f29b03c013888678d64c (diff)
added hidden fulldiff GET param for disabling big diff cut off limit.
fixed context toggle options on single file diff --HG-- branch : beta
-rw-r--r--rhodecode/controllers/changeset.py38
-rwxr-xr-xrhodecode/model/db.py4
-rw-r--r--rhodecode/templates/changeset/changeset.html8
-rw-r--r--rhodecode/templates/changeset/diff_block.html4
4 files changed, 31 insertions, 23 deletions
diff --git a/rhodecode/controllers/changeset.py b/rhodecode/controllers/changeset.py
index 277da96c..d29031ed 100644
--- a/rhodecode/controllers/changeset.py
+++ b/rhodecode/controllers/changeset.py
@@ -51,13 +51,18 @@ from rhodecode.lib.diffs import wrapped_diff
log = logging.getLogger(__name__)
-def anchor_url(revision, path):
+def _update_with_GET(params, GET):
+ for k in ['diff1', 'diff2', 'diff']:
+ params[k] += GET.getall(k)
+
+
+def anchor_url(revision, path, GET):
fid = h.FID(revision, path)
- return h.url.current(anchor=fid, **dict(request.GET))
+ return h.url.current(anchor=fid, **dict(GET))
def get_ignore_ws(fid, GET):
- ig_ws_global = request.GET.get('ignorews')
+ ig_ws_global = GET.get('ignorews')
ig_ws = filter(lambda k: k.startswith('WS'), GET.getall(fid))
if ig_ws:
try:
@@ -67,12 +72,13 @@ def get_ignore_ws(fid, GET):
return ig_ws_global
-def _ignorews_url(fileid=None):
- fileid = str(fileid)
+def _ignorews_url(GET, fileid=None):
+ fileid = str(fileid) if fileid else None
params = defaultdict(list)
+ _update_with_GET(params, GET)
lbl = _('show white space')
- ig_ws = get_ignore_ws(fileid, request.GET)
- ln_ctx = get_line_ctx(fileid, request.GET)
+ ig_ws = get_ignore_ws(fileid, GET)
+ ln_ctx = get_line_ctx(fileid, GET)
# global option
if fileid is None:
if ig_ws is None:
@@ -98,7 +104,7 @@ def _ignorews_url(fileid=None):
def get_line_ctx(fid, GET):
- ln_ctx_global = request.GET.get('context')
+ ln_ctx_global = GET.get('context')
ln_ctx = filter(lambda k: k.startswith('C'), GET.getall(fid))
if ln_ctx:
@@ -112,17 +118,19 @@ def get_line_ctx(fid, GET):
return
-def _context_url(fileid=None):
+def _context_url(GET, fileid=None):
"""
Generates url for context lines
:param fileid:
"""
- fileid = str(fileid)
- ig_ws = get_ignore_ws(fileid, request.GET)
- ln_ctx = (get_line_ctx(fileid, request.GET) or 3) * 2
+
+ fileid = str(fileid) if fileid else None
+ ig_ws = get_ignore_ws(fileid, GET)
+ ln_ctx = (get_line_ctx(fileid, GET) or 3) * 2
params = defaultdict(list)
+ _update_with_GET(params, GET)
# global option
if fileid is None:
@@ -163,7 +171,7 @@ class ChangesetController(BaseRepoController):
c.anchor_url = anchor_url
c.ignorews_url = _ignorews_url
c.context_url = _context_url
-
+ limit_off = request.GET.get('fulldiff')
#get ranges of revisions if preset
rev_range = revision.split('...')[:2]
enable_comments = True
@@ -221,7 +229,7 @@ class ChangesetController(BaseRepoController):
ign_whitespace_lcl = get_ignore_ws(fid, request.GET)
lim = self.cut_off_limit
if cumulative_diff > self.cut_off_limit:
- lim = -1
+ lim = -1 if limit_off is None else None
size, cs1, cs2, diff, st = wrapped_diff(
filenode_old=None,
filenode_new=node,
@@ -252,7 +260,7 @@ class ChangesetController(BaseRepoController):
ign_whitespace_lcl = get_ignore_ws(fid, request.GET)
lim = self.cut_off_limit
if cumulative_diff > self.cut_off_limit:
- lim = -1
+ lim = -1 if limit_off is None else None
size, cs1, cs2, diff, st = wrapped_diff(
filenode_old=filenode_old,
filenode_new=node,
diff --git a/rhodecode/model/db.py b/rhodecode/model/db.py
index 737039b9..278cbf4c 100755
--- a/rhodecode/model/db.py
+++ b/rhodecode/model/db.py
@@ -145,7 +145,7 @@ class BaseModel(object):
def delete(cls, id_):
obj = cls.query().get(id_)
Session.delete(obj)
-
+
def __repr__(self):
if hasattr(self, '__unicode__'):
# python repr needs to return str
@@ -518,7 +518,7 @@ class Repository(Base, BaseModel):
logs = relationship('UserLog')
def __unicode__(self):
- return u"<%s('%s:%s')>" % (self.__class__.__name__,self.repo_id,
+ return u"<%s('%s:%s')>" % (self.__class__.__name__,self.repo_id,
self.repo_name)
@classmethod
diff --git a/rhodecode/templates/changeset/changeset.html b/rhodecode/templates/changeset/changeset.html
index 35676eb4..1a15232f 100644
--- a/rhodecode/templates/changeset/changeset.html
+++ b/rhodecode/templates/changeset/changeset.html
@@ -36,8 +36,8 @@
<div class="diff-actions">
<a href="${h.url('raw_changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id,diff='show')}" title="${_('raw diff')}" class="tooltip"><img class="icon" src="${h.url('/images/icons/page_white.png')}"/></a>
<a href="${h.url('raw_changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id,diff='download')}" title="${_('download diff')}" class="tooltip"><img class="icon" src="${h.url('/images/icons/page_white_get.png')}"/></a>
- ${c.ignorews_url()}
- ${c.context_url()}
+ ${c.ignorews_url(request.GET)}
+ ${c.context_url(request.GET)}
</div>
<div class="comments-number" style="float:right;padding-right:5px">${len(c.comments)} comment(s) (${c.inline_cnt} ${_('inline')})</div>
</div>
@@ -91,14 +91,14 @@
</div>
</div>
<span>
- ${_('%s files affected with %s additions and %s deletions:') % (len(c.changeset.affected_files),c.lines_added,c.lines_deleted)}
+ ${_('%s files affected with %s insertions and %s deletions:') % (len(c.changeset.affected_files),c.lines_added,c.lines_deleted)}
</span>
<div class="cs_files">
%for change,filenode,diff,cs1,cs2,stat in c.changes:
<div class="cs_${change}">
<div class="node">
%if change != 'removed':
- ${h.link_to(h.safe_unicode(filenode.path),c.anchor_url(filenode.changeset.raw_id,filenode.path)+"_target")}
+ ${h.link_to(h.safe_unicode(filenode.path),c.anchor_url(filenode.changeset.raw_id,filenode.path,request.GET)+"_target")}
%else:
${h.link_to(h.safe_unicode(filenode.path),h.url.current(anchor=h.FID('',filenode.path)))}
%endif
diff --git a/rhodecode/templates/changeset/diff_block.html b/rhodecode/templates/changeset/diff_block.html
index ba92c73f..3168ebf1 100644
--- a/rhodecode/templates/changeset/diff_block.html
+++ b/rhodecode/templates/changeset/diff_block.html
@@ -19,8 +19,8 @@
<a href="${h.url('files_diff_home',repo_name=c.repo_name,f_path=h.safe_unicode(filenode.path),diff2=cs2,diff1=cs1,diff='diff',fulldiff=1)}" title="${_('diff')}" class="tooltip"><img class="icon" src="${h.url('/images/icons/page_white_go.png')}"/></a>
<a href="${h.url('files_diff_home',repo_name=c.repo_name,f_path=h.safe_unicode(filenode.path),diff2=cs2,diff1=cs1,diff='raw')}" title="${_('raw diff')}" class="tooltip"><img class="icon" src="${h.url('/images/icons/page_white.png')}"/></a>
<a href="${h.url('files_diff_home',repo_name=c.repo_name,f_path=h.safe_unicode(filenode.path),diff2=cs2,diff1=cs1,diff='download')}" title="${_('download diff')}" class="tooltip"><img class="icon" src="${h.url('/images/icons/page_white_get.png')}"/></a>
- ${c.ignorews_url(h.FID(filenode.changeset.raw_id,filenode.path))}
- ${c.context_url(h.FID(filenode.changeset.raw_id,filenode.path))}
+ ${c.ignorews_url(request.GET, h.FID(filenode.changeset.raw_id,filenode.path))}
+ ${c.context_url(request.GET, h.FID(filenode.changeset.raw_id,filenode.path))}
</div>
<span style="float:right;margin-top:-3px">
<label>