Files @ b293ec74ef98
Branch filter:

Location: kallithea/init.d/kallithea-daemon-debian

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.
#!/bin/sh -e
########################################
#### THIS IS A DEBIAN INIT.D SCRIPT ####
########################################

### BEGIN INIT INFO
# Provides:          kallithea
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts instance of kallithea
# Description:       starts instance of kallithea using start-stop-daemon
### END INIT INFO

APP_NAME="kallithea"
APP_HOMEDIR="opt"
APP_PATH="/$APP_HOMEDIR/$APP_NAME"

CONF_NAME="production.ini"

PID_PATH="$APP_PATH/$APP_NAME.pid"
LOG_PATH="$APP_PATH/$APP_NAME.log"

PYTHON_PATH="/$APP_HOMEDIR/$APP_NAME-venv"

RUN_AS="root"

DAEMON="$PYTHON_PATH/bin/gearbox"

DAEMON_OPTS="serve --daemon \
 --user=$RUN_AS \
 --group=$RUN_AS \
 --pid-file=$PID_PATH \
 --log-file=$LOG_PATH -c $APP_PATH/$CONF_NAME"


start() {
  echo "Starting $APP_NAME"
  PYTHON_EGG_CACHE="/tmp" start-stop-daemon -d $APP_PATH \
      --start --quiet \
      --pidfile $PID_PATH \
      --user $RUN_AS \
      --exec $DAEMON -- $DAEMON_OPTS
}

stop() {
  echo "Stopping $APP_NAME"
  start-stop-daemon -d $APP_PATH \
      --stop --quiet \
      --pidfile $PID_PATH || echo "$APP_NAME - Not running!"

  if [ -f $PID_PATH ]; then
    rm $PID_PATH
  fi
}

status() {
  echo -n "Checking status of $APP_NAME ... "
  pid=`cat $PID_PATH`
  status=`ps ax | grep $pid | grep -ve grep`
  if [ "$?" -eq 0 ]; then
    echo "running"
  else
    echo "NOT running"
  fi
}

case "$1" in
  status)
   status
    ;;
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    echo "Restarting $APP_NAME"
    ### stop ###
    stop
    wait
    ### start ###
    start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
esac