tinycm annotate plugins/cloud/cloud.cgi @ rev 28
Bunch of improvments and fixes
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Mon Jan 06 14:49:12 2014 +0000 (2014-01-06) |
parents | 75c2b9d58c4e |
children | 2f4b9f31ee08 |
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@16 | 51 [ ! check_auth ] && header "Location: $WEB_URL" |
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@16 | 90 cat << EOT |
pankso@16 | 91 <h2>Cloud files</h2> |
pankso@16 | 92 <p> |
pankso@16 | 93 $(gettext "Upload files on the cloud to share them with some other people |
pankso@16 | 94 or use them in your documents content.") |
pankso@16 | 95 </p> |
pankso@28 | 96 <div style="text-align: center;"> |
pankso@16 | 97 <form method="post" action="plugins/cloud/cloud.cgi?upcloud&user=$user" |
pankso@16 | 98 enctype="multipart/form-data"> |
pankso@16 | 99 <input type="file" name="datafile" size="50" /> |
pankso@16 | 100 <input type="submit" value="Upload" /> |
pankso@16 | 101 </form> |
pankso@16 | 102 </div> |
pankso@16 | 103 <div id="tools"> |
pankso@16 | 104 <a href="$script?cloudlog">Activity</a> |
pankso@16 | 105 <a href="$content/cloud">Raw files</a> |
pankso@16 | 106 <b>Files:</b> $files | <b>Size:</b> $size |
pankso@16 | 107 </div> |
pankso@16 | 108 EOT |
pankso@16 | 109 echo '<pre>' |
pankso@16 | 110 # List all Cloud files |
pankso@16 | 111 for f in $(ls ${cloud}) |
pankso@16 | 112 do |
pankso@16 | 113 case $f in |
pankso@16 | 114 *.png|*.jpg) image="images/image.png" ;; |
pankso@16 | 115 *) image="images/empty.png" ;; |
pankso@16 | 116 esac |
pankso@16 | 117 cat << EOT |
pankso@16 | 118 <a href="$content/cloud/${f}" title="${WEB_URL}$content/cloud/${f}">\ |
pankso@16 | 119 <img src="$image" />${f}</a> : \ |
pankso@16 | 120 <a href="$script?rmcloud&name=${f}&user=$user">$(gettext "Remove")</a> |
pankso@16 | 121 EOT |
pankso@16 | 122 done |
pankso@16 | 123 echo '</pre>' |
pankso@16 | 124 html_footer |
pankso@16 | 125 exit 0 |
pankso@16 | 126 esac |