diff --git a/orgas/gen.sh b/orgas/gen.sh
index 93e9cba..181b23b 100755
--- a/orgas/gen.sh
+++ b/orgas/gen.sh
@@ -3,11 +3,24 @@
# Generate a dot file to create graph of RERO-ils data (orga, lib and users)
#
+# CONFIG
RERO_DIR="${HOME}/projets/rero/rero-ils"
+ORGA_COLOR="#bcafff"
+LIB_COLOR="#49afff"
+# Built variables
output="$1"
SRC_DIR="${RERO_DIR}/data/"
+# TESTS
+if [[ -z "${output}" ]]; then
+ echo "No output file given"
+ exit 1
+elif [[ -f "${output}" ]]; then
+ echo "File already exists!"
+ exit 1
+fi
+
# start of file
echo "digraph {" > "$output"
echo "rankdir = RL;" >> "$output"
@@ -25,7 +38,7 @@ do
code=$(echo $orga|jq -r .code)
name=$(echo $orga|jq -r .name)
# write result in output
- echo "Orga${pid} [shape=box color=\"transparent\" style=filled fillcolor=\"#bcafff\" label=<${name}
(code: ${code})>]" >> "$output"
+ echo "Orga${pid} [shape=box color=\"transparent\" style=filled fillcolor=\"${ORGA_COLOR}\" label=<${name}
(code: ${code})>]" >> "$output"
done
# LIBRARIES
@@ -43,7 +56,7 @@ do
orga_pid=$(echo $orga|rev|cut -d "/" -f 1|rev)
# write result in output
l_id="Lib${pid}"
- echo "${l_id} [shape=house color=transparent style=filled fillcolor=\"#49afff\" label=<${name}
(code: ${code})>]" >> "$output"
+ echo "${l_id} [shape=house color=transparent style=filled fillcolor=\"${LIB_COLOR}\" label=<${name}
(code: ${code})>]" >> "$output"
echo "${l_id} -> Orga${orga_pid}" >> "$output"
done
@@ -53,17 +66,49 @@ cat "${user_file}"|jq -c '.[] | {
email,
first_name,
last_name,
- library: .library."$ref"} | select(.library |length >= 1)'|while read user
+ barcode,
+ roles,
+ library: .library."$ref"}'|while read user
do
email=$(echo $user|jq -r .email)
first_name=$(echo $user|jq -r .first_name)
last_name=$(echo $user|jq -r .last_name)
+ barcode=$(echo $user|jq -r .barcode)
+ roles=$(echo $user|jq -r .roles[])
library=$(echo $user|jq -r .library)
library_pid=$(echo $library|rev|cut -d "/" -f 1|rev)
+
+ if [[ "${roles}" != "null" ]]; then
+ displayed_roles=""
+ for role in ${roles}; do
+ color="black"
+ if [[ "${role}" == "system_librarian" ]]; then
+ color="${ORGA_COLOR}"
+ elif [[ "${role}" == "librarian" ]]; then
+ color="${LIB_COLOR}"
+ fi
+ displayed_roles="${displayed_roles}${role} "
+ done
+ fi
# write result in output
u_id="User_${email}"
- echo "\"${u_id}\" [label=<${first_name} ${last_name}
${email}>]" >> "$output"
- echo "\"${u_id}\" -> Lib${library_pid}" >> "$output"
+
+ # Don't display barcode if no one
+ info=""
+ if [[ "${barcode}" != "null" ]]; then
+ info="${info}
${barcode}"
+ fi
+ # Same for roles
+ if [[ -n "${displayed_roles}" ]]; then
+ info="${info}
${displayed_roles}"
+ fi
+
+ echo "\"${u_id}\" [label=<${first_name} ${last_name}
${email}${info}>]" >> "$output"
+
+ # Display a link if library_pid is not null
+ if [[ "${library_pid}" != "null" ]]; then
+ echo "\"${u_id}\" -> Lib${library_pid}" >> "$output"
+ fi
done
# end of file