Changeset - ceaa65df5add
[Not reviewed]
default
0 6 0
domruf - 8 years ago 2017-10-25 22:57:31
dominikruf@gmail.com
diff: use fontello icon-diff-* names in generated html

This way we need less style code ... but generate slightly bigger html.

Also move the style code to kallithea-diff.less and remove the now obsolete
comment.
6 files changed with 96 insertions and 98 deletions:
0 comments (0 inline, 0 general)
kallithea/lib/diffs.py
Show inline comments
 
@@ -327,49 +327,49 @@ class DiffProcessor(object):
 
            }
 

	
 
            if head['deleted_file_mode']:
 
                op = 'D'
 
                op = 'removed'
 
                stats['binary'] = True
 
                stats['ops'][DEL_FILENODE] = 'deleted file'
 

	
 
            elif head['new_file_mode']:
 
                op = 'A'
 
                op = 'added'
 
                stats['binary'] = True
 
                stats['ops'][NEW_FILENODE] = 'new file %s' % head['new_file_mode']
 
            else:  # modify operation, can be cp, rename, chmod
 
                # CHMOD
 
                if head['new_mode'] and head['old_mode']:
 
                    op = 'M'
 
                    op = 'modified'
 
                    stats['binary'] = True
 
                    stats['ops'][CHMOD_FILENODE] = ('modified file chmod %s => %s'
 
                                        % (head['old_mode'], head['new_mode']))
 
                # RENAME
 
                if (head['rename_from'] and head['rename_to']
 
                      and head['rename_from'] != head['rename_to']):
 
                    op = 'R'
 
                    op = 'renamed'
 
                    stats['binary'] = True
 
                    stats['ops'][RENAMED_FILENODE] = ('file renamed from %s to %s'
 
                                    % (head['rename_from'], head['rename_to']))
 
                # COPY
 
                if head.get('copy_from') and head.get('copy_to'):
 
                    op = 'M'
 
                    op = 'modified'
 
                    stats['binary'] = True
 
                    stats['ops'][COPIED_FILENODE] = ('file copied from %s to %s'
 
                                        % (head['copy_from'], head['copy_to']))
 
                # FALL BACK: detect missed old style add or remove
 
                if op is None:
 
                    if not head['a_file'] and head['b_file']:
 
                        op = 'A'
 
                        op = 'added'
 
                        stats['binary'] = True
 
                        stats['ops'][NEW_FILENODE] = 'new file'
 

	
 
                    elif head['a_file'] and not head['b_file']:
 
                        op = 'D'
 
                        op = 'removed'
 
                        stats['binary'] = True
 
                        stats['ops'][DEL_FILENODE] = 'deleted file'
 

	
 
                # it's not ADD not DELETE
 
                if op is None:
 
                    op = 'M'
 
                    op = 'modified'
 
                    stats['binary'] = True
 
                    stats['ops'][MOD_FILENODE] = 'modified file'
 

	
 
@@ -380,7 +380,7 @@ class DiffProcessor(object):
 
                stats['added'] = added
 
                stats['deleted'] = deleted
 
                # explicit mark that it's a modified file
 
                if op == 'M':
 
                if op == 'modified':
 
                    stats['ops'][MOD_FILENODE] = 'modified file'
 
            else:  # Git binary patch (or empty diff)
 
                # Git binary patch
 
@@ -388,7 +388,7 @@ class DiffProcessor(object):
 
                    stats['ops'][BIN_FILENODE] = 'binary diff not shown'
 
                chunks = []
 

	
 
            if op == 'D' and chunks:
 
            if op == 'removed' and chunks:
 
                # a way of seeing deleted content could perhaps be nice - but
 
                # not with the current UI
 
                chunks = []
kallithea/public/css/contextbar.css
Show inline comments
 
@@ -11,29 +11,6 @@ i[class^='icon-'] {
 
  /* background-color: red; /* for debugging */
 
}
 
/* Note: class 'icon-empty' or 'icon-gravatar' can be used to get icon styling without an actual glyph */
 
/* css classes for diff file status ... it'd be nice if css had a way to
 
   inherit from another class but alas, we must make sure this content is the
 
   same from the icon font file */
 
.icon-diff-M:before {
 
  font-family: 'kallithea';
 
  content: '\22a1';
 
  color: #d0b44c;
 
}
 
.icon-diff-D:before {
 
  font-family: 'kallithea';
 
  content: '\229f';
 
  color: #bd2c00;
 
}
 
.icon-diff-A:before {
 
  font-family: 'kallithea';
 
  content: '\229e';
 
  color: #6cc644;
 
}
 
.icon-diff-R:before {
 
  font-family: 'kallithea';
 
  content: '\e81f';
 
  color: #677a85;
 
}
 
nav.navbar #quick a,
 
#content #context-bar,
 
#content #context-bar a {
kallithea/public/css/style.css
Show inline comments
 
@@ -1989,26 +1989,23 @@ BIN_FILENODE = 6
 
.cs_files .changes .bin.bin5 {
 
  background-color: #6D99FF;
 
}
 
.cs_files .cs_added,
 
.cs_files .cs_A {
 
.cs_files .cs_added {
 
  height: 16px;
 
  margin-top: 7px;
 
  text-align: left;
 
}
 
.cs_files .cs_changed,
 
.cs_files .cs_M {
 
.cs_files .cs_modified {
 
  height: 16px;
 
  margin-top: 7px;
 
  text-align: left;
 
}
 
.cs_files .cs_removed,
 
.cs_files .cs_D {
 
.cs_files .cs_removed {
 
  height: 16px;
 
  margin-top: 7px;
 
  text-align: left;
 
}
 
.cs_files .cs_renamed,
 
.cs_files .cs_R {
 
.cs_files .cs_renamed {
 
  height: 16px;
 
  margin-top: 7px;
 
  text-align: left;
 
@@ -2174,6 +2171,19 @@ table.code-difftable .unmod .code pre:be
 
.add-bubble div:hover {
 
  transform: scale(1.2, 1.2);
 
}
 
/* file diff icons */
 
.icon-diff-modified:before {
 
  color: #d0b44c;
 
}
 
.icon-diff-removed:before {
 
  color: #bd2c00;
 
}
 
.icon-diff-added:before {
 
  color: #6cc644;
 
}
 
.icon-diff-renamed:before {
 
  color: #677a85;
 
}
 
/* show some context of link targets - but only works when the link target
 
   can be extended with any visual difference */
 
div.comment:target:before {
kallithea/public/less/kallithea-diff.less
Show inline comments
 
@@ -54,26 +54,23 @@ BIN_FILENODE = 6
 
.cs_files .changes .bin.bin5 {
 
  background-color: #6D99FF;
 
}
 
.cs_files .cs_added,
 
.cs_files .cs_A {
 
.cs_files .cs_added {
 
  height: 16px;
 
  margin-top: 7px;
 
  text-align: left;
 
}
 
.cs_files .cs_changed,
 
.cs_files .cs_M {
 
.cs_files .cs_modified {
 
  height: 16px;
 
  margin-top: 7px;
 
  text-align: left;
 
}
 
.cs_files .cs_removed,
 
.cs_files .cs_D {
 
.cs_files .cs_removed {
 
  height: 16px;
 
  margin-top: 7px;
 
  text-align: left;
 
}
 
.cs_files .cs_renamed,
 
.cs_files .cs_R {
 
.cs_files .cs_renamed {
 
  height: 16px;
 
  margin-top: 7px;
 
  text-align: left;
 
@@ -239,3 +236,17 @@ table.code-difftable .unmod .code pre:be
 
.add-bubble div:hover {
 
  transform: scale(1.2, 1.2);
 
}
 

	
 
/* file diff icons */
 
.icon-diff-modified:before {
 
  color: #d0b44c;
 
}
 
.icon-diff-removed:before {
 
  color: #bd2c00;
 
}
 
.icon-diff-added:before {
 
  color: #6cc644;
 
}
 
.icon-diff-renamed:before {
 
  color: #677a85;
 
}
kallithea/tests/functional/test_compare_local.py
Show inline comments
 
@@ -31,48 +31,48 @@ class TestCompareController(TestControll
 
        ## files diff
 
        response.mustcontain(
 
                   '''<span class="node">
 
                          <i class="icon-diff-A"></i>
 
                          <i class="icon-diff-added"></i>
 
                          <a href="#C--1c5cf9e91c12">docs/api/utils/index.rst</a>
 
                      </span>''')
 
        response.mustcontain(
 
                   '''<span class="node">
 
                          <i class="icon-diff-A"></i>
 
                          <i class="icon-diff-added"></i>
 
                          <a href="#C--e3305437df55">test_and_report.sh</a>''')
 
        response.mustcontain(
 
                   '''<span class="node">
 
                          <i class="icon-diff-M"></i>
 
                          <i class="icon-diff-modified"></i>
 
                          <a href="#C--c8e92ef85cd1">.hgignore</a>''')
 
        response.mustcontain(
 
                   '''<span class="node">
 
                          <i class="icon-diff-M"></i>
 
                          <i class="icon-diff-modified"></i>
 
                          <a href="#C--6e08b694d687">.hgtags</a>''')
 
        response.mustcontain(
 
                   '''<span class="node">
 
                          <i class="icon-diff-M"></i>
 
                          <i class="icon-diff-modified"></i>
 
                          <a href="#C--2c14b00f3393">docs/api/index.rst</a>''')
 
        response.mustcontain(
 
                   '''<span class="node">
 
                          <i class="icon-diff-M"></i>
 
                          <i class="icon-diff-modified"></i>
 
                          <a href="#C--430ccbc82bdf">vcs/__init__.py</a>''')
 
        response.mustcontain(
 
                   '''<span class="node">
 
                          <i class="icon-diff-M"></i>
 
                          <i class="icon-diff-modified"></i>
 
                          <a href="#C--9c390eb52cd6">vcs/backends/hg.py</a>''')
 
        response.mustcontain(
 
                   '''<span class="node">
 
                          <i class="icon-diff-M"></i>
 
                          <i class="icon-diff-modified"></i>
 
                          <a href="#C--ebb592c595c0">vcs/utils/__init__.py</a>''')
 
        response.mustcontain(
 
                   '''<span class="node">
 
                          <i class="icon-diff-M"></i>
 
                          <i class="icon-diff-modified"></i>
 
                          <a href="#C--7abc741b5052">vcs/utils/annotate.py</a>''')
 
        response.mustcontain(
 
                   '''<span class="node">
 
                          <i class="icon-diff-M"></i>
 
                          <i class="icon-diff-modified"></i>
 
                          <a href="#C--2ef0ef106c56">vcs/utils/diffs.py</a>''')
 
        response.mustcontain(
 
                   '''<span class="node">
 
                          <i class="icon-diff-M"></i>
 
                          <i class="icon-diff-modified"></i>
 
                          <a href="#C--3150cb87d4b7">vcs/utils/lazy.py</a>''')
 

	
 
    def test_compare_tag_git(self):
kallithea/tests/models/test_diff_parsers.py
Show inline comments
 
@@ -8,7 +8,7 @@ fixture = Fixture()
 

	
 
DIFF_FIXTURES = {
 
    'hg_diff_add_single_binary_file.diff': [
 
        ('US Warszawa.jpg', 'A',
 
        ('US Warszawa.jpg', 'added',
 
         {'added': 0,
 
          'deleted': 0,
 
          'binary': True,
 
@@ -16,7 +16,7 @@ DIFF_FIXTURES = {
 
                  BIN_FILENODE: 'binary diff not shown'}}),
 
    ],
 
    'hg_diff_mod_single_binary_file.diff': [
 
        ('US Warszawa.jpg', 'M',
 
        ('US Warszawa.jpg', 'modified',
 
         {'added': 0,
 
          'deleted': 0,
 
          'binary': True,
 
@@ -25,7 +25,7 @@ DIFF_FIXTURES = {
 
    ],
 

	
 
    'hg_diff_mod_single_file_and_rename_and_chmod.diff': [
 
        ('README', 'R',
 
        ('README', 'renamed',
 
         {'added': 3,
 
          'deleted': 0,
 
          'binary': False,
 
@@ -33,14 +33,14 @@ DIFF_FIXTURES = {
 
                  CHMOD_FILENODE: 'modified file chmod 100755 => 100644'}}),
 
    ],
 
    'hg_diff_mod_file_and_rename.diff': [
 
        ('README.rst', 'R',
 
        ('README.rst', 'renamed',
 
         {'added': 3,
 
          'deleted': 0,
 
          'binary': False,
 
          'ops': {RENAMED_FILENODE: 'file renamed from README to README.rst'}}),
 
    ],
 
    'hg_diff_del_single_binary_file.diff': [
 
        ('US Warszawa.jpg', 'D',
 
        ('US Warszawa.jpg', 'removed',
 
         {'added': 0,
 
          'deleted': 0,
 
          'binary': True,
 
@@ -48,7 +48,7 @@ DIFF_FIXTURES = {
 
                  BIN_FILENODE: 'binary diff not shown'}}),
 
    ],
 
    'hg_diff_chmod_and_mod_single_binary_file.diff': [
 
        ('gravatar.png', 'M',
 
        ('gravatar.png', 'modified',
 
         {'added': 0,
 
          'deleted': 0,
 
          'binary': True,
 
@@ -56,21 +56,21 @@ DIFF_FIXTURES = {
 
                  BIN_FILENODE: 'binary diff not shown'}}),
 
    ],
 
    'hg_diff_chmod.diff': [
 
        ('file', 'M',
 
        ('file', 'modified',
 
         {'added': 0,
 
          'deleted': 0,
 
          'binary': True,
 
          'ops': {CHMOD_FILENODE: 'modified file chmod 100755 => 100644'}}),
 
    ],
 
    'hg_diff_rename_file.diff': [
 
        ('file_renamed', 'R',
 
        ('file_renamed', 'renamed',
 
         {'added': 0,
 
          'deleted': 0,
 
          'binary': True,
 
          'ops': {RENAMED_FILENODE: 'file renamed from file to file_renamed'}}),
 
    ],
 
    'hg_diff_rename_and_chmod_file.diff': [
 
        ('README', 'R',
 
        ('README', 'renamed',
 
         {'added': 0,
 
          'deleted': 0,
 
          'binary': True,
 
@@ -78,64 +78,64 @@ DIFF_FIXTURES = {
 
                  RENAMED_FILENODE: 'file renamed from README.rst to README'}}),
 
    ],
 
    'hg_diff_binary_and_normal.diff': [
 
        ('img/baseline-10px.png', 'A',
 
        ('img/baseline-10px.png', 'added',
 
         {'added': 0,
 
          'deleted': 0,
 
          'binary': True,
 
          'ops': {NEW_FILENODE: 'new file 100644',
 
                  BIN_FILENODE: 'binary diff not shown'}}),
 
        ('img/baseline-20px.png', 'D',
 
        ('img/baseline-20px.png', 'removed',
 
         {'added': 0,
 
          'deleted': 0,
 
          'binary': True,
 
          'ops': {DEL_FILENODE: 'deleted file',
 
                  BIN_FILENODE: 'binary diff not shown'}}),
 
        ('index.html', 'M',
 
        ('index.html', 'modified',
 
         {'added': 3,
 
          'deleted': 2,
 
          'binary': False,
 
          'ops': {MOD_FILENODE: 'modified file'}}),
 
        ('js/global.js', 'D',
 
        ('js/global.js', 'removed',
 
         {'added': 0,
 
          'deleted': 75,
 
          'binary': False,
 
          'ops': {DEL_FILENODE: 'deleted file'}}),
 
        ('js/jquery/hashgrid.js', 'A',
 
        ('js/jquery/hashgrid.js', 'added',
 
         {'added': 340,
 
          'deleted': 0,
 
          'binary': False,
 
          'ops': {NEW_FILENODE: 'new file 100755'}}),
 
        ('less/docs.less', 'M',
 
        ('less/docs.less', 'modified',
 
         {'added': 34,
 
          'deleted': 0,
 
          'binary': False,
 
          'ops': {MOD_FILENODE: 'modified file'}}),
 
        ('less/scaffolding.less', 'M',
 
        ('less/scaffolding.less', 'modified',
 
         {'added': 1,
 
          'deleted': 3,
 
          'binary': False,
 
          'ops': {MOD_FILENODE: 'modified file'}}),
 
        ('readme.markdown', 'M',
 
        ('readme.markdown', 'modified',
 
         {'added': 1,
 
          'deleted': 10,
 
          'binary': False,
 
          'ops': {MOD_FILENODE: 'modified file'}}),
 
    ],
 
    'git_diff_chmod.diff': [
 
        ('work-horus.xls', 'M',
 
        ('work-horus.xls', 'modified',
 
         {'added': 0,
 
          'deleted': 0,
 
          'binary': True,
 
          'ops': {CHMOD_FILENODE: 'modified file chmod 100644 => 100755'}})
 
    ],
 
    'git_diff_rename_file.diff': [
 
        ('file.xls', 'R',
 
        ('file.xls', 'renamed',
 
         {'added': 0,
 
          'deleted': 0,
 
          'binary': True,
 
          'ops': {RENAMED_FILENODE: 'file renamed from work-horus.xls to file.xls'}}),
 
        ('files/var/www/favicon.ico/DEFAULT',
 
         'R',
 
         'renamed',
 
         {'added': 0,
 
          'binary': True,
 
          'deleted': 0,
 
@@ -143,7 +143,7 @@ DIFF_FIXTURES = {
 
                  6: 'modified file chmod 100644 => 100755'}})
 
    ],
 
    'git_diff_mod_single_binary_file.diff': [
 
        ('US Warszawa.jpg', 'M',
 
        ('US Warszawa.jpg', 'modified',
 
         {'added': 0,
 
          'deleted': 0,
 
          'binary': True,
 
@@ -151,78 +151,78 @@ DIFF_FIXTURES = {
 
                  BIN_FILENODE: 'binary diff not shown'}})
 
    ],
 
    'git_diff_binary_and_normal.diff': [
 
        ('img/baseline-10px.png', 'A',
 
        ('img/baseline-10px.png', 'added',
 
         {'added': 0,
 
          'deleted': 0,
 
          'binary': True,
 
          'ops': {NEW_FILENODE: 'new file 100644',
 
                  BIN_FILENODE: 'binary diff not shown'}}),
 
        ('img/baseline-20px.png', 'D',
 
        ('img/baseline-20px.png', 'removed',
 
         {'added': 0,
 
          'deleted': 0,
 
          'binary': True,
 
          'ops': {DEL_FILENODE: 'deleted file',
 
                  BIN_FILENODE: 'binary diff not shown'}}),
 
        ('index.html', 'M',
 
        ('index.html', 'modified',
 
         {'added': 3,
 
          'deleted': 2,
 
          'binary': False,
 
          'ops': {MOD_FILENODE: 'modified file'}}),
 
        ('js/global.js', 'D',
 
        ('js/global.js', 'removed',
 
         {'added': 0,
 
          'deleted': 75,
 
          'binary': False,
 
          'ops': {DEL_FILENODE: 'deleted file'}}),
 
        ('js/jquery/hashgrid.js', 'A',
 
        ('js/jquery/hashgrid.js', 'added',
 
         {'added': 340,
 
          'deleted': 0,
 
          'binary': False,
 
          'ops': {NEW_FILENODE: 'new file 100755'}}),
 
        ('less/docs.less', 'M',
 
        ('less/docs.less', 'modified',
 
         {'added': 34,
 
          'deleted': 0,
 
          'binary': False,
 
          'ops': {MOD_FILENODE: 'modified file'}}),
 
        ('less/scaffolding.less', 'M',
 
        ('less/scaffolding.less', 'modified',
 
         {'added': 1,
 
          'deleted': 3,
 
          'binary': False,
 
          'ops': {MOD_FILENODE: 'modified file'}}),
 
        ('readme.markdown', 'M',
 
        ('readme.markdown', 'modified',
 
         {'added': 1,
 
          'deleted': 10,
 
          'binary': False,
 
          'ops': {MOD_FILENODE: 'modified file'}}),
 
    ],
 
    'diff_with_diff_data.diff': [
 
        ('vcs/backends/base.py', 'M',
 
        ('vcs/backends/base.py', 'modified',
 
         {'added': 18,
 
          'deleted': 2,
 
          'binary': False,
 
          'ops': {MOD_FILENODE: 'modified file'}}),
 
        ('vcs/backends/git/repository.py', 'M',
 
        ('vcs/backends/git/repository.py', 'modified',
 
         {'added': 46,
 
          'deleted': 15,
 
          'binary': False,
 
          'ops': {MOD_FILENODE: 'modified file'}}),
 
        ('vcs/backends/hg.py', 'M',
 
        ('vcs/backends/hg.py', 'modified',
 
         {'added': 22,
 
          'deleted': 3,
 
          'binary': False,
 
          'ops': {MOD_FILENODE: 'modified file'}}),
 
        ('vcs/tests/test_git.py', 'M',
 
        ('vcs/tests/test_git.py', 'modified',
 
         {'added': 5,
 
          'deleted': 5,
 
          'binary': False,
 
          'ops': {MOD_FILENODE: 'modified file'}}),
 
        ('vcs/tests/test_repository.py', 'M',
 
        ('vcs/tests/test_repository.py', 'modified',
 
         {'added': 174,
 
          'deleted': 2,
 
          'binary': False,
 
          'ops': {MOD_FILENODE: 'modified file'}}),
 
    ],
 
    'git_diff_modify_binary_file.diff': [
 
        ('file.name', 'M',
 
        ('file.name', 'modified',
 
         {'added': 0,
 
          'deleted': 0,
 
          'binary': True,
 
@@ -230,14 +230,14 @@ DIFF_FIXTURES = {
 
                  BIN_FILENODE: 'binary diff not shown'}})
 
    ],
 
    'hg_diff_copy_file.diff': [
 
        ('file2', 'M',
 
        ('file2', 'modified',
 
         {'added': 0,
 
          'deleted': 0,
 
          'binary': True,
 
          'ops': {COPIED_FILENODE: 'file copied from file1 to file2'}}),
 
    ],
 
    'hg_diff_copy_and_modify_file.diff': [
 
        ('file3', 'M',
 
        ('file3', 'modified',
 
         {'added': 1,
 
          'deleted': 0,
 
          'binary': False,
 
@@ -245,7 +245,7 @@ DIFF_FIXTURES = {
 
                  MOD_FILENODE: 'modified file'}}),
 
    ],
 
    'hg_diff_copy_and_chmod_file.diff': [
 
        ('file4', 'M',
 
        ('file4', 'modified',
 
         {'added': 0,
 
          'deleted': 0,
 
          'binary': True,
 
@@ -253,7 +253,7 @@ DIFF_FIXTURES = {
 
                  CHMOD_FILENODE: 'modified file chmod 100644 => 100755'}}),
 
    ],
 
    'hg_diff_copy_chmod_and_edit_file.diff': [
 
        ('file5', 'M',
 
        ('file5', 'modified',
 
         {'added': 2,
 
          'deleted': 1,
 
          'binary': False,
 
@@ -262,7 +262,7 @@ DIFF_FIXTURES = {
 
                  MOD_FILENODE: 'modified file'}}),
 
    ],
 
    'hg_diff_rename_space_cr.diff': [
 
        ('oh yes', 'R',
 
        ('oh yes', 'renamed',
 
         {'added': 3,
 
          'deleted': 2,
 
          'binary': False,
0 comments (0 inline, 0 general)