Mercurial > kallithea
comparison kallithea/lib/helpers.py @ 6427:71acaf87e5a2
templates: use bootstrap for progress bars
Based on work form Andrew Shadura <andrew@shadura.me>.
Further modified by Mads Kiilerich.
author | domruf <dominikruf@gmail.com> |
---|---|
date | Wed, 21 Sep 2016 19:58:44 +0200 |
parents | 65b6797b102d |
children | 1ab38cd72704 |
comparison
equal
deleted
inserted
replaced
6424:990eb49eac0d | 6427:71acaf87e5a2 |
---|---|
881 :param stats: two element list of added/deleted lines of code | 881 :param stats: two element list of added/deleted lines of code |
882 """ | 882 """ |
883 from kallithea.lib.diffs import NEW_FILENODE, DEL_FILENODE, \ | 883 from kallithea.lib.diffs import NEW_FILENODE, DEL_FILENODE, \ |
884 MOD_FILENODE, RENAMED_FILENODE, CHMOD_FILENODE, BIN_FILENODE | 884 MOD_FILENODE, RENAMED_FILENODE, CHMOD_FILENODE, BIN_FILENODE |
885 | 885 |
886 def cgen(l_type, a_v, d_v): | |
887 mapping = {'tr': 'top-right-rounded-corner-mid', | |
888 'tl': 'top-left-rounded-corner-mid', | |
889 'br': 'bottom-right-rounded-corner-mid', | |
890 'bl': 'bottom-left-rounded-corner-mid'} | |
891 map_getter = lambda x: mapping[x] | |
892 | |
893 if l_type == 'a' and d_v: | |
894 #case when added and deleted are present | |
895 return ' '.join(map(map_getter, ['tl', 'bl'])) | |
896 | |
897 if l_type == 'a' and not d_v: | |
898 return ' '.join(map(map_getter, ['tr', 'br', 'tl', 'bl'])) | |
899 | |
900 if l_type == 'd' and a_v: | |
901 return ' '.join(map(map_getter, ['tr', 'br'])) | |
902 | |
903 if l_type == 'd' and not a_v: | |
904 return ' '.join(map(map_getter, ['tr', 'br', 'tl', 'bl'])) | |
905 | |
906 a, d = stats['added'], stats['deleted'] | 886 a, d = stats['added'], stats['deleted'] |
907 width = 100 | 887 width = 100 |
908 | 888 |
909 if stats['binary']: | 889 if stats['binary']: |
910 #binary mode | 890 #binary mode |
931 if CHMOD_FILENODE in stats['ops']: | 911 if CHMOD_FILENODE in stats['ops']: |
932 _org_lbl = _('chmod') | 912 _org_lbl = _('chmod') |
933 lbl += _org_lbl if lbl.endswith('+') else '+%s' % _org_lbl | 913 lbl += _org_lbl if lbl.endswith('+') else '+%s' % _org_lbl |
934 | 914 |
935 #import ipdb;ipdb.set_trace() | 915 #import ipdb;ipdb.set_trace() |
936 b_d = '<div class="bin bin%s %s" style="width:100%%">%s</div>' % (bin_op, cgen('a', a_v='', d_v=0), lbl) | 916 b_d = '<div class="bin bin%s progress-bar" style="width:100%%">%s</div>' % (bin_op, lbl) |
937 b_a = '<div class="bin bin1" style="width:0%"></div>' | 917 b_a = '<div class="bin bin1" style="width:0%"></div>' |
938 return literal('<div style="width:%spx">%s%s</div>' % (width, b_a, b_d)) | 918 return literal('<div style="width:%spx" class="progress">%s%s</div>' % (width, b_a, b_d)) |
939 | 919 |
940 t = stats['added'] + stats['deleted'] | 920 t = stats['added'] + stats['deleted'] |
941 unit = float(width) / (t or 1) | 921 unit = float(width) / (t or 1) |
942 | 922 |
943 # needs > 9% of width to be visible or 0 to be hidden | 923 # needs > 9% of width to be visible or 0 to be hidden |
953 d_p = d_p - (p_sum - width) | 933 d_p = d_p - (p_sum - width) |
954 | 934 |
955 a_v = a if a > 0 else '' | 935 a_v = a if a > 0 else '' |
956 d_v = d if d > 0 else '' | 936 d_v = d if d > 0 else '' |
957 | 937 |
958 d_a = '<div class="added %s" style="width:%s%%">%s</div>' % ( | 938 d_a = '<div class="added progress-bar" style="width:%s%%">%s</div>' % ( |
959 cgen('a', a_v, d_v), a_p, a_v | 939 a_p, a_v |
960 ) | 940 ) |
961 d_d = '<div class="deleted %s" style="width:%s%%">%s</div>' % ( | 941 d_d = '<div class="deleted progress-bar" style="width:%s%%">%s</div>' % ( |
962 cgen('d', a_v, d_v), d_p, d_v | 942 d_p, d_v |
963 ) | 943 ) |
964 return literal('<div style="width:%spx">%s%s</div>' % (width, d_a, d_d)) | 944 return literal('<div class="pull-right progress" style="width:%spx">%s%s</div>' % (width, d_a, d_d)) |
965 | 945 |
966 | 946 |
967 _URLIFY_RE = re.compile(r''' | 947 _URLIFY_RE = re.compile(r''' |
968 # URL markup | 948 # URL markup |
969 (?P<url>%s) | | 949 (?P<url>%s) | |