tinycm annotate plugins/cloud/cloud.cgi @ rev 82

Some small fixes and improvments
author Christophe Lincoln <pankso@slitaz.org>
date Sat Feb 11 17:04:56 2017 +0100 (2017-02-11)
parents 8d24e0cbcdab
children 97dca04ea0fa
rev   line source
pankso@16 1 #!/bin/sh
pankso@16 2 #
paul@22 3 # TinyCM Plugin - Upload files to the Cloud
pankso@16 4 #
pankso@16 5 . /usr/lib/slitaz/httphelper
pankso@16 6
pankso@16 7 cloud="$tiny/$content/cloud"
pankso@28 8 cloudlog="$tiny/$cache/log/cloud.log"
pankso@16 9
pankso@16 10 case " $(GET) " in
pankso@16 11 *\ upcloud\ *)
pankso@16 12 # Have a variable in config file for the content/cloud path ?
pankso@16 13 [ ! check_auth ] && header "Location: $HTTP_REFERER"
pankso@16 14 [ ! "$(FILE datafile name)" ] && header "Location: $HTTP_REFERER"
pankso@16 15 user="$(GET user)"
pankso@16 16 cloud="../../content/cloud"
pankso@28 17 cloudlog="../../cache/log/cloud.log"
pankso@16 18 name=$(FILE datafile name)
pankso@16 19 tmpname=$(FILE datafile tmpname)
pankso@16 20 # Sanity check
pankso@16 21 [ ! -d "$cloud" ] && mkdir -p ${cloud}
pankso@16 22 [ ! -f "$cloudlog" ] && touch ${cloudlog}
paul@22 23 # Move/Overwrite files to the cloud and set permissions
pankso@16 24 if ! mv -f ${tmpname} ${cloud}/${name}; then
pankso@16 25 echo "ERROR: ${name}" && exit 1
pankso@16 26 fi
pankso@16 27 chmod a+r ${cloud}/${name}
pankso@16 28 # Log activity
pankso@16 29 cat >> ${cloudlog} << EOT
pankso@16 30 $(date '+%Y-%m-%d %H:%M') : <a href="content/cloud/${name}">${name}</a> \
pankso@16 31 $(gettext "uploaded by:") <a href="index.cgi?user=$user">$user</a>
pankso@16 32 EOT
pankso@16 33 # Back to the cloud
pankso@16 34 header "Location: $HTTP_REFERER" ;;
pankso@16 35
pankso@16 36 *\ rmcloud\ *)
pankso@16 37 user="$(GET user)"
pankso@16 38 name="$(GET name)"
pankso@16 39 rm -f "$cloud/$name"
pankso@16 40 # Log activity
pankso@16 41 cat >> ${cloudlog} << EOT
pankso@16 42 $(date '+%Y-%m-%d %H:%M') : $name $(gettext "removed by:") \
pankso@16 43 <a href="index.cgi?user=$user">$user</a>
pankso@16 44 EOT
pankso@16 45 # Back to the cloud
pankso@16 46 header "Location: $HTTP_REFERER" ;;
pankso@16 47
pankso@16 48 *\ cloudlog\ *)
pankso@16 49 # Display Cloud activity
pankso@16 50 d="Cloud activity"
pankso@48 51 [ ! check_auth ] && header "Location: $script"
pankso@16 52 # Clean-up logfile
pankso@16 53 if [ "$(GET clean)" ]; then
pankso@16 54 rm -f ${cloudlog} && touch ${cloudlog}
pankso@16 55 header "Location: $HTTP_REFERER"
pankso@16 56 fi
pankso@16 57 header
pankso@16 58 html_header
pankso@16 59 user_box
pankso@16 60 echo "<h2>$(gettext "Cloud activity")</h2>"
pankso@16 61 echo '<pre>'
pankso@16 62 if [ "$(GET full)" ]; then
pankso@16 63 tac ${cloudlog}
pankso@16 64 else
pankso@16 65 tac ${cloudlog} | head -n 20
pankso@16 66 fi
pankso@16 67 echo '</pre>'
pankso@16 68 cat << EOT
pankso@16 69 <div id="tools">
pankso@16 70 <a href="$script?cloud">Cloud files</a>
pankso@16 71 <a href="$script?cloudlog&amp;full">$(gettext "More activity")</a>
pankso@16 72 <a href="$script?cloudlog&amp;clean">$(gettext "Clean logfile")</a>
pankso@16 73 </div>
pankso@16 74 EOT
pankso@16 75 html_footer && exit 0 ;;
pankso@16 76
pankso@16 77 *\ cloud\ *)
pankso@16 78 # The dashboard
pankso@16 79 d="Cloud files"
pankso@16 80 files=$(ls -1 $cloud | wc -l)
pankso@16 81 size=$(du -sh $cloud | awk '{print $1}')
pankso@16 82 header
pankso@16 83 html_header
pankso@16 84 user_box
pankso@16 85 # Security check
pankso@16 86 if ! check_auth; then
pankso@16 87 gettext "You must be logged in to use the Cloud."
pankso@16 88 exit 1
pankso@16 89 fi
pankso@82 90 [ -f "$cloudlog" ] || mkdir -p $(dirname $cloudlog)
pankso@52 91 cat << EOT
pankso@52 92 <div id="tools">
pankso@59 93 <a href="$script?cloudlog">Cloud activity</a>
pankso@52 94 <a href="$content/cloud">Raw files</a>
pankso@59 95 <a href="$script?dashboard">Dashboard</a>
pankso@52 96 </div>
pankso@52 97
pankso@16 98 <h2>Cloud files</h2>
pankso@52 99
pankso@16 100 <p>
pankso@16 101 $(gettext "Upload files on the cloud to share them with some other people
paul@53 102 or use them in your documents content. Tip: Drag and Drop files from your
pankso@52 103 desktop.")
pankso@16 104 </p>
pankso@82 105 <div id="cloud-upload">
pankso@16 106 <form method="post" action="plugins/cloud/cloud.cgi?upcloud&amp;user=$user"
pankso@16 107 enctype="multipart/form-data">
pankso@16 108 <input type="file" name="datafile" size="50" />
pankso@16 109 <input type="submit" value="Upload" />
pankso@16 110 </form>
pankso@16 111 </div>
pankso@52 112 <p>
pankso@16 113 <b>Files:</b> $files | <b>Size:</b> $size
pankso@52 114 </p>
pankso@16 115 EOT
pankso@16 116 echo '<pre>'
pankso@16 117 # List all Cloud files
pankso@16 118 for f in $(ls ${cloud})
pankso@16 119 do
pankso@16 120 case $f in
pankso@37 121 *.png|*.jpg|*.gif) image="images/image.png" ;;
pankso@16 122 *) image="images/empty.png" ;;
pankso@16 123 esac
pankso@16 124 cat << EOT
pankso@16 125 <a href="$content/cloud/${f}" title="${WEB_URL}$content/cloud/${f}">\
pankso@16 126 <img src="$image" />${f}</a> : \
pankso@16 127 <a href="$script?rmcloud&amp;name=${f}&amp;user=$user">$(gettext "Remove")</a>
pankso@16 128 EOT
pankso@16 129 done
pankso@16 130 echo '</pre>'
pankso@16 131 html_footer
pankso@16 132 exit 0
pankso@16 133 esac