issue112, enhanced preload functions for photo-index
[phpfspot.git] / rpc.php
diff --git a/rpc.php b/rpc.php
index 4a8ca7c0e6a5f2af35dabed57d3f976e5bbd6b36..786bc7d56103b28e0fd44b58c43ad52d491735d5 100644 (file)
--- a/rpc.php
+++ b/rpc.php
@@ -31,7 +31,7 @@ class PHPFSPOT_RPC {
 
    } // __construct()
 
-   function process_ajax_request()
+   public function process_ajax_request()
    {
       require_once 'HTML/AJAX/Server.php';
 
@@ -43,46 +43,56 @@ class PHPFSPOT_RPC {
       /* if no action is specified, no need to further process this
        * function here.
        */
-      if(!isset($_GET['action']))
+      if(!isset($_GET['action']) && !isset($_POST['action']))
          return;
 
-      switch($_GET['action']) {
+      if(isset($_GET['action']))
+         $action = $_GET['action'];
+      if(isset($_POST['action']))
+         $action = $_POST['action'];
+
+      switch($action) {
          case 'showphoto':
             if(isset($_GET['id']) && is_numeric($_GET['id'])) {
                $fspot->showPhoto($_GET['id']);
             }
             break;
    
+         case 'getxmltaglist':
+            print $fspot->get_xml_tag_list();
+            break;
+
          case 'show_available_tags':
-            $fspot->getAvailableTags();
+            print $fspot->getAvailableTags();
             break;
 
          case 'show_selected_tags':
-            $fspot->getSelectedTags();
+            print $fspot->getSelectedTags();
             break;
 
          case 'addtag':
-            if(isset($_GET['id']) && is_numeric($_GET['id'])) {
-               $fspot->addTag($_GET['id']);
+            if(isset($_POST['id']) && is_numeric($_POST['id'])) {
+               print $fspot->addTag($_POST['id']);
             }
             break;
 
          case 'deltag':
-            if(isset($_GET['id']) && is_numeric($_GET['id'])) {
-               $fspot->delTag($_GET['id']);
+            if(isset($_POST['id']) && is_numeric($_POST['id'])) {
+               print $fspot->delTag($_POST['id']);
             }
             break;
 
          case 'reset':
             $fspot->resetTagSearch();
+            $fspot->resetNameSearch();
             $fspot->resetTags();
             $fspot->resetDateSearch();
             $fspot->resetPhotoView();
             break;
 
          case 'tagcondition':
-            if(isset($_GET['mode']) && in_array($_GET['mode'], Array('or', 'and'))) {
-               $fspot->setTagCondition($_GET['mode']);
+            if(isset($_POST['mode']) && in_array($_POST['mode'], Array('or', 'and'))) {
+               print $fspot->setTagCondition($_POST['mode']);
             }
             break;
 
@@ -93,6 +103,9 @@ class PHPFSPOT_RPC {
             else {
                unset($_SESSION['begin_with']);
             }
+            if(isset($_GET['last_photo']) && is_numeric($_GET['last_photo']))
+               $_SESSION['last_photo'] = $_GET['last_photo'];
+
             $fspot->showPhotoIndex();
             break;
    
@@ -101,13 +114,12 @@ class PHPFSPOT_RPC {
             break;
 
          case 'search':
-               $fspot->startSearch($_GET['for'], $_GET['sort_order'], $_GET['from'], $_GET['to']);
-            
-            if((isset($_GET['from']) && $fspot->isValidDate($_GET['from'])) &&
-               (isset($_GET['to']) && $fspot->isValidDate($_GET['to']))) {
-            }
-            else {
-               $fspot->startSearch($_GET['for'], $_GET['sort_order']);
+            print $fspot->startSearch();
+            break;
+
+         case 'update_sort_order':
+            if(isset($_POST['value']) && is_string($_POST['value'])) {
+               print $fspot->updateSortOrder($_POST['value']);
             }
             break;