Files @ b293ec74ef98
Branch filter:

Location: kallithea/scripts/validate-commits - annotation

Thomas De Schampheleire
files: restore 'Show Authors' functionality

Commit d66201a7ce6e ("files: change "callbacks" function to the more
descriptive name "post_load_state" and let it take an actual state data
object") broke the 'Show Authors' button when visiting a file
in the files browser. The button normally shows a count of authors and their
avatars, but after the aforementioned commit it did nothing.

Following patch would have fixed the problems in commit d66201a7ce6e:

diff --git a/kallithea/templates/files/files_source.html b/kallithea/templates/files/files_source.html
--- a/kallithea/templates/files/files_source.html
+++ b/kallithea/templates/files/files_source.html
@@ -81,11 +81,13 @@
<script>
$(document).ready(function(){
var state = {
+ data: {
node_list_url: node_list_url.replace('__REV__',${h.js(c.changeset.raw_id)}).replace('__FPATH__', ${h.js(h.safe_unicode(c.file.path))}),
url_base: url_base.replace('__REV__',${h.js(c.changeset.raw_id)}),
rev: ${h.js(c.changeset.raw_id)},
f_path: ${h.js(h.safe_unicode(c.file.path))}
+ }
}
- post_load_state(State.data); // defined in files.html
+ post_load_state(state.data); // defined in files.html
});
</script>


But, later the code got refactored more, and commit 006d68c4d7b9 ("files:
use the web browsers built-in js history instead of native.history.js")
broke the feature further: the click handler for the button no longer got
installed on the 'document-ready' event, but only when a new 'state' is
loaded. And it seems there is never a situation where a new state preserves
the button, so it makes no sense installing the click handler at that
moment.

Instead, move the click handler back to the 'document-ready' event.
#!/usr/bin/env bash
# Validate the specified commits against test suite and other checks.

if [ -n "$VIRTUAL_ENV" ]; then
    echo "Please run this script from outside a virtualenv."
    exit 1
fi

if ! hg update --check -q .; then
    echo "Working dir is not clean, please commit/revert changes first."
    exit 1
fi

venv=$(mktemp -d kallithea-validatecommits-env-XXXXXX)
resultfile=$(mktemp kallithea-validatecommits-result-XXXXXX)
echo > "$resultfile"

cleanup()
{
    rm -rf /tmp/kallithea-test*
    rm -rf "$venv"
}
finish()
{
    cleanup
    # print (possibly intermediate) results
    cat "$resultfile"
    rm "$resultfile"
}
trap finish EXIT

for rev in $(hg log -r "$1" -T '{node}\n'); do
    hg log -r "$rev"
    hg update "$rev"

    cleanup
    virtualenv -p "$(command -v python2)" "$venv"
    source "$venv/bin/activate"
    pip install --upgrade pip setuptools
    pip install -e .
    pip install -r dev_requirements.txt
    pip install python-ldap python-pam

    # run-all-cleanup
    scripts/run-all-cleanup
    if ! hg update --check -q .; then
        echo "run-all-cleanup did not give clean results!"
        result="NOK"
        hg diff
        hg revert -a
    else
        result=" OK"
    fi
    echo "$result: $rev (run-all-cleanup)" >> "$resultfile"

    # pytest
    if py.test; then
        result=" OK"
    else
        result="NOK"
    fi
    echo "$result: $rev (pytest)" >> "$resultfile"

    deactivate
    echo
done