Changeset 30:e58076c42f50 in livinglogic.python.pycoco

Show
Ignore:
Timestamp:
10/19/06 23:49:14 (13 years ago)
Author:
Walter Doerwald <walter@…>
Branch:
default
Message:

Move CSS rules that will be modified by sorting into a second stylesheet,
so that addressing is simpler. Add a special sort color to the headers.
Remove old CSS rule for sort color.

Location:
src/pycoco
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • src/pycoco/__init__.py

    r28 r30  
    198198            e.write(u.openwrite(), base="root:%s.html" % filename, encoding="utf-8") 
    199199 
    200         # Copy CSS/JS file 
    201         for filename in ("coverage.css", "coverage.js"): 
     200        # Copy CSS/JS files 
     201        for filename in ("coverage.css", "coverage_sortfilelist.css", "coverage.js"): 
    202202            self.logProgress("### copying %s" % filename) 
    203203            try: 
    204204                import pkg_resources 
    205205            except ImportError: 
    206                 css = open(os.path.join(os.path.dirname(__file__), filename), "rb").read() 
     206                data = open(os.path.join(os.path.dirname(__file__), filename), "rb").read() 
    207207            else: 
    208                 css = pkg_resources.resource_string(__name__, filename) 
    209             (self.outputdir/filename).openwrite().write(css) 
     208                data = pkg_resources.resource_string(__name__, filename) 
     209            (self.outputdir/filename).openwrite().write(data) 
    210210 
    211211    def execute(self): 
  • src/pycoco/coverage.css

    r29 r30  
    136136} 
    137137 
    138 table.files tbody td.sorted 
    139 { 
    140     background-color: #eee; 
    141 } 
    142  
    143138table.file 
    144139{ 
  • src/pycoco/coverage.js

    r29 r30  
    105105    button.innerHTML = "A-Z"; 
    106106    if (document.all) 
    107         button.onclick = function(){return files_sort(files_cmpbyfilename_asc);} 
    108     else 
    109         button.setAttribute("onclick", "return files_sort(files_cmpbyfilename_asc);"); 
     107        button.onclick = function(){return files_sort(files_cmpbyfilename_asc, "filename");} 
     108    else 
     109        button.setAttribute("onclick", "return files_sort(files_cmpbyfilename_asc, 'filename');"); 
    110110    document.getElementById("filename").appendChild(button); 
    111111 
     
    113113    button.innerHTML = "Z-A"; 
    114114    if (document.all) 
    115         button.onclick = function(){return files_sort(files_cmpbyfilename_desc);} 
    116     else 
    117         button.setAttribute("onclick", "return files_sort(files_cmpbyfilename_desc);"); 
     115        button.onclick = function(){return files_sort(files_cmpbyfilename_desc, "filename");} 
     116    else 
     117        button.setAttribute("onclick", "return files_sort(files_cmpbyfilename_desc, 'filename');"); 
    118118    document.getElementById("filename").appendChild(button); 
    119119     
     
    185185function files_sort(sorter, id) 
    186186{ 
     187    // Set wait cursor 
    187188    document.body.className = "wait"; 
    188189 
    189190    function dosort() 
    190191    { 
     192        // Sort rows 
    191193        rows.sort(sorter); 
    192      
     194 
     195        // Rearrange DOM according to sort result 
    193196        var tbody = document.getElementById("files"); 
    194197        for (var i = 0; i < rows.length; ++i) 
    195198            tbody.appendChild(rows[i]); 
    196      
     199 
     200        // Highlight sort column 
     201        var ids = ["filename", "nroflines", "coverablelines", "coveredlines", "coverage"]; 
     202        var css = document.styleSheets[1]; 
     203        for (var i = 0; i < ids.length; ++i) 
     204        { 
     205            css.cssRules[i].style.backgroundColor = (ids[i] == id ? "#2f5a7e" : "#376a94"); 
     206            css.cssRules[i+5].style.backgroundColor = (ids[i] == id ? "#f2f2f2" : "#fff"); 
     207        } 
     208 
     209        // Remove wait cursor 
    197210        document.body.className = "nowait"; 
    198211    } 
     212 
     213    // Start sort with timeout, so that new cursor can kick in 
    199214    window.setTimeout(dosort, 0.01); 
    200215    return false; 
     
    205220    var fn1 = tr1.filename; 
    206221    var fn2 = tr2.filename; 
    207     if (fn1>fn2) 
    208         return 1; 
    209     else if (fn1<fn2) 
    210         return -1; 
    211     return 0; 
     222    return (fn1>fn2?1:0)-(fn1<fn2?1:0); 
    212223} 
    213224 
     
    216227    var fn1 = tr1.filename; 
    217228    var fn2 = tr2.filename; 
    218     if (fn1<fn2) 
    219         return 1; 
    220     else if (fn1>fn2) 
    221         return -1; 
    222     return 0; 
     229    return (fn1<fn2?1:0)-(fn1>fn2?1:0); 
    223230} 
    224231 
  • src/pycoco/xmlns.py

    r29 r30  
    2727                    html.title(self.attrs.title), 
    2828                    meta.stylesheet(href="root:coverage.css"), 
     29                    meta.stylesheet(href="root:coverage_sortfilelist.css"), 
    2930                    htmlspecials.javascript(src="root:coverage.js"), 
    3031                ), 
     
    151152            html.td( 
    152153                lines, 
    153                 class_="noroflines", 
     154                class_="nroflines", 
    154155            ), 
    155156            html.td(