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&full">$(gettext "More activity")</a> |
pankso@16 | 72 <a href="$script?cloudlog&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&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&name=${f}&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 |