]> source.dussan.org Git - nextcloud-server.git/commitdiff
using new image backend, moving ajax calls to one file, using generated thumnails...
authorBartek Przybylski <bart.p.pl@gmail.com>
Wed, 11 Jan 2012 21:06:23 +0000 (22:06 +0100)
committerBartek Przybylski <bart.p.pl@gmail.com>
Wed, 11 Jan 2012 21:06:54 +0000 (22:06 +0100)
apps/gallery/ajax/galleryOp.php
apps/gallery/ajax/getCovers.php [deleted file]
apps/gallery/ajax/scanForAlbums.php [deleted file]
apps/gallery/css/styles.css
apps/gallery/js/album_cover.js
apps/gallery/js/albums.js

index 3d1ed1f33cbc26e063be9ddc976e2d9efc144741..5686c0faa78251f94fa05cb010faf0ea7c493c3a 100644 (file)
 
 require_once('../../../lib/base.php');
 require_once(OC::$CLASSPATH['OC_Gallery_Album']);
-OC_JSON::checkLoggedIn();
+require_once(OC::$CLASSPATH['OC_Gallery_Scanner']);
 OC_JSON::checkAppEnabled('gallery');
 
 function handleRename($oldname, $newname) {
+  OC_JSON::checkLoggedIn();
   OC_Gallery_Album::rename($oldname, $newname, OC_User::getUser());
 }
 
 function handleRemove($name) {
+  OC_JSON::checkLoggedIn();
   OC_Gallery_Album::remove(OC_User::getUser(), $name);
 }
 
+function handleGetThumbnails($albumname)
+{
+  OC_JSON::checkLoggedIn();
+  $photo = new OC_Image();
+  $photo->loadFromFile(OC::$CONFIG_DATADIRECTORY.'/../gallery/'.$albumname.'.png');
+  $photo->show();
+}
+
+function handleGalleryScanning()
+{
+  OC_JSON::checkLoggedIn();
+  OC_Gallery_Scanner::cleanup();
+  OC_JSON::success(array('albums' => OC_Gallery_Scanner::scan('/')));
+}
+
 if ($_GET['operation']) {
   switch($_GET['operation']) {
        case "rename":
@@ -43,8 +60,14 @@ if ($_GET['operation']) {
        case "remove":
          handleRemove($_GET['name']);
          OC_JSON::success();
-         break;
-    default:
+    break;
+  case "get_covers":
+    handleGetThumbnails($_GET['albumname']);
+    break;
+  case "scan":
+    handleGalleryScanning();
+    break;
+  default:
      OC_JSON::error(array('cause' => "Unknown operation"));
   }
 }
diff --git a/apps/gallery/ajax/getCovers.php b/apps/gallery/ajax/getCovers.php
deleted file mode 100644 (file)
index 4db73d0..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-
-/**
-* ownCloud - gallery application
-*
-* @author Bartek Przybylski
-* @copyright 2012 Bartek Przybylski bart.p.pl@gmail.com
-* 
-* This library is free software; you can redistribute it and/or
-* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-* License as published by the Free Software Foundation; either 
-* version 3 of the License, or any later version.
-* 
-* This library is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-*  
-* You should have received a copy of the GNU Lesser General Public 
-* License along with this library.  If not, see <http://www.gnu.org/licenses/>.
-* 
-*/
-
-require_once('../../../lib/base.php');
-OC_JSON::checkLoggedIn();
-OC_JSON::checkAppEnabled('gallery');
-
-function CroppedThumbnail($imgSrc,$thumbnail_width,$thumbnail_height, $tgtImg, $shift) { 
-    //getting the image dimensions
-    list($width_orig, $height_orig) = getimagesize($imgSrc); 
-    switch (strtolower(substr($imgSrc, strrpos($imgSrc, '.')+1))) {
-      case "jpeg":
-      case "jpg":
-      case "tiff":
-        $myImage = imagecreatefromjpeg($imgSrc);
-        break;
-      case "png":
-        $myImage = imagecreatefrompng($imgSrc);
-        break;
-      default:
-        exit();
-    }
-    if(!$myImage) exit();
-    $ratio_orig = $width_orig/$height_orig;
-    
-    if ($thumbnail_width/$thumbnail_height > $ratio_orig) {
-       $new_height = $thumbnail_width/$ratio_orig;
-       $new_width = $thumbnail_width;
-    } else {
-       $new_width = $thumbnail_height*$ratio_orig;
-       $new_height = $thumbnail_height;
-    }
-    
-    $x_mid = $new_width/2;  //horizontal middle
-    $y_mid = $new_height/2; //vertical middle
-    
-    $process = imagecreatetruecolor(round($new_width), round($new_height)); 
-
-    imagecopyresampled($process, $myImage, 0, 0, 0, 0, $new_width, $new_height, $width_orig, $height_orig);
-    imagecopyresampled($tgtImg, $process, $shift, 0, ($x_mid-($thumbnail_width/2)), ($y_mid-($thumbnail_height/2)), $thumbnail_width, $thumbnail_height, $thumbnail_width, $thumbnail_height);
-
-    imagedestroy($process);
-    imagedestroy($myImage);
-}
-
-$box_size = 200;
-$album_name= $_GET['album_name'];
-
-$result = OC_Gallery_Photo::findForAlbum(OC_User::getUser(), $album_name);
-
-$numOfItems = min($result->numRows(),10);
-
-if ($numOfItems){
-       $targetImg = imagecreatetruecolor($numOfItems*$box_size, $box_size);
-}
-else{
-       $targetImg = imagecreatetruecolor($box_size, $box_size);
-}
-$counter = 0;
-while (($i = $result->fetchRow()) && $counter < $numOfItems) {
-       $imagePath = OC_Filesystem::getLocalFile($i['file_path']);
-       if(file_exists($imagePath))
-       {
-               CroppedThumbnail($imagePath, $box_size, $box_size, $targetImg, $counter*$box_size);
-               $counter++;
-       }
-}
-
-header('Content-Type: image/png');
-
-$offset = 3600 * 24;
-// calc the string in GMT not localtime and add the offset
-header("Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT");
-header('Cache-Control: max-age='.$offset.', must-revalidate');
-header('Pragma: public');
-
-imagepng($targetImg);
-imagedestroy($targetImg);
-?>
diff --git a/apps/gallery/ajax/scanForAlbums.php b/apps/gallery/ajax/scanForAlbums.php
deleted file mode 100644 (file)
index b8ed639..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-/**
-* ownCloud - gallery application
-*
-* @author Bartek Przybylski
-* @copyright 2012 Bartek Przybylski bart.p.pl@gmail.com
-* 
-* This library is free software; you can redistribute it and/or
-* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-* License as published by the Free Software Foundation; either 
-* version 3 of the License, or any later version.
-* 
-* This library is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-*  
-* You should have received a copy of the GNU Lesser General Public 
-* License along with this library.  If not, see <http://www.gnu.org/licenses/>.
-* 
-*/
-
-require_once('../../../lib/base.php');
-OC_JSON::checkLoggedIn();
-OC_JSON::checkAppEnabled('gallery');
-
-OC_Gallery_Scanner::cleanUp();
-OC_JSON::success(array('albums' => OC_Gallery_Scanner::scan('/')));
-
-?>
index cc343ba0d08515ffe3eff87cde109d03cc2433a4..b253eeef22393301407e8497ecb7eee58caa1e9c 100644 (file)
@@ -1,5 +1,5 @@
 div#gallery_list { margin: 90pt 20pt; }
-div#gallery_list.leftcontent { padding-top: 15px; margin: 0; text-align: center; }
+div#gallery_list.leftcontent { padding-top: 15pt; margin: 0; height: 80%; text-align: center; overflow: scroll; }
 div#gallery_album_box { width: 200px; text-align: center; border: 0; display: inline-block; margin: 5pt; vertical-align: top; padding: 10px; border: solid 1px black; position: relative; overflow: hidden; color: #999; }
 div#gallery_album_box:hover { color: black; }
 .leftcontent div#gallery_album_box { margin: 5px; }
index f6cb2da3103fb739049240f1e8804a46f9eb5b91..84a89c5a91f69c5b8b508781751dd5ef73986acc 100644 (file)
@@ -33,7 +33,7 @@ function createNewAlbum() {
 function scanForAlbums() {
   $("#notification").fadeIn();
   $("#notification").slideDown();
-  $.getJSON('ajax/scanForAlbums.php', function(r) {
+  $.getJSON('ajax/galleryOp.php?operation=scan', function(r) {
     $("#notification").fadeOut();
     $("#notification").slideUp();
     if (r.status == 'success') {
index ae7d1fac500a2a16f6fdf5c1809a71bc65a0f69d..2fb1ac89bab4918a3a1c5858414776289dd15c96 100644 (file)
@@ -63,7 +63,7 @@ Albums={
       var local = $(displayTemplate.replace(/\*NAME\*/g, a.name));
       $("#gallery_album_cover", local).css('background-repeat', 'no-repeat');
       $("#gallery_album_cover", local).css('background-position', '0');
-      $("#gallery_album_cover", local).css('background-image','url("ajax/getCovers.php?album_name='+a.name+'")');
+      $("#gallery_album_cover", local).css('background-image','url("ajax/galleryOp.php?operation=get_covers&albumname='+a.name+'")');
       local.mouseover(function(e) {
            $("#gallery_control_overlay", this).css('visibility','visible');
       });