###########################################
# Aliases and functions for doc mechanics #
###########################################

# just to ease bg's paranoia
alias dmprio >& /dev/null && unalias dmprio

#----------
# Functions
#----------

# generic sort function for all aliases - prints the table head
# and does the sorting with the rest of the output takes a sort parameter as optional
function sort_after_head () {
  for ((x=5 ; x-- ; )); do
    read line;
    echo $line;
  done;
  sort -k2 $1;
} 

# files sorted by priority, takes a list of filenames as optional parameter
function dmprio () {
  if [ $1 ]; then
    dm.py dg -q "%{name} %{priority} %{status} %{deadline} %{maintainer}\n" $* |  sort_after_head
  else
    dm.py dg -P -q "%{name} %{priority} %{status} %{deadline} %{maintainer}\n" |  sort_after_head
  fi
}

# lets have an overview over the current priority files...
# this takes the priority as first argument.
function dmpriooverview () {
  dm.py dg -P -q "%{name} %{status} %{priority} %{prelim} %{maintainer} %{deadline} \n" --include="doc:status=editing" --include="doc:priority=$1" -s
}

function dmygraphics () {
  for i in $(dm.py dg -P -A -H --include="doc:maintainer=${LOGNAME}" -q "%{name} "); do
    xsltproc --nonet ${DTDROOT}/xslt/misc/get-graphics.xsl $i;
  done 2> /dev/null
}

#--------
# Aliases
#--------

# docmanager Aliases
#-------------------

#list files that are ready for rwalter
alias dmedited='dm.py dg -P --include="doc:status=edited"'

#list files that are ready for rwalter sorted by priority
alias dmeditedp='dm.py dg -P -q "%{name} %{priority} %{prelim} %{maintainer}\n" --include="doc:status=edited" | sort_after_head -n'

#list files that are ready for rwalter sorted by deadline
alias dmeditedd='dm.py dg -P -q "%{name} %{deadline} %{prelim} %{maintainer}\n" --include="doc:status=edited" | sort_after_head'

#list files that are flagged with "prelim" 
alias dmprelim='dm.py dg -P -q "%{name} %{maintainer} %{status} %{prelim} %{deadline} \n" --include "doc:prelim=yes"'

#list files set to proofing
alias dmproofing='dm.py dg -P --include="doc:status=proofing"'

#list files set to proofed
alias dmproofed='dm.py dg -P -q "%{name} %{priority} %{status} %{revprop} %{maintainer}\n" --include="doc:status=proofed"'

#list files set to comments
alias dmcomments='dm.py dg -P --include="doc:status=comments"'

#list all files owned by $LOGNAME
alias dmwork='dm.py dg -P --include="doc:maintainer=${LOGNAME}"'

#list all files owned by $LOGNAME sorted by priority
alias dmworkp='dm.py dg -P --include="doc:maintainer=${LOGNAME}" -q "%{name} %{priority} %{modified} %{maintainer} %{release} %{trans} %{status} %{prelim}\n" | sort_after_head'

#list all files owned by $LOGNAME that still need to be worked on
alias dmtodo='dm.py dg -P --include="doc:maintainer=${LOGNAME}" --include="doc:status=editing" -q "%{name} %{priority} %{modified} %{maintainer} %{release} %{trans} %{status} %{prelim}\n" | sort_after_head' 

#set files to comments
alias dscomments='dm.py ds -C'

#set files to proofed
alias dsproofed='dm.py ds -R'

#set files to proofing
alias dsproofing='dm.py ds -P'

#set files to edited
alias dsedited='dm.py ds -D'

#set prelim to no
alias dsrmprelim='dm.py ds -y'

#project statistics
#equals dm dg-P, including prios and deadlines
alias dmstat='dm.py dg -P -q "%{name} %{maintainer} %{trans} %{status} %{priority} %{deadline} \n"'

#to be defined by toms
alias dmrevprop='dm.py dg -P -q "%{name} _%{modified}_ %{maintainer} %{release} %{trans} %{status} %{prelim} %{revprop}\n"'

# list the files which have to be translated
alias dmtrans='dm.py dg -P -q  "%{name} %{trans} %{maintainer}\n" --include "doc:trans=yes"'

#list files which have to be translated and are set to locdrop
alias dmplocdrop='dm.py dg -P -q "%{name} %{trans} %{status} %{revprop} %{maintainer}\n" --include="doc:status=locdrop"'

# other Aliases
#--------------

# TOC with filenames, headlines and IDs
alias TOC='xsltproc --xinclude --nonet ../../novdoc/xslt/misc/get-headlines-ids.xsl'

