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) |