fix export, web_path was not set correctly
[phpfspot.git] / phpfspot.js
index 7dfdcc84c74f1f59f252b9083459c1fcb5cedc33..ebe124225f169a182530acda770bdccc46c22f72 100644 (file)
  ***************************************************************************/
 
 /**
- * display image
+ * show photo
  *
  * this function will be called by client and fetches
  * the single-photo view via AJAX from the server.
  * Furthermore it will scrollup the browser to the top
  * position so the image become visibile immediatley.
  */
-function showImage(id, scrollup)
+function showPhoto(id, scrollup)
 {
    /* is phpfspot skeleton really displayed? */
    if(!document.getElementById('content'))
@@ -54,7 +54,7 @@ function showImage(id, scrollup)
    delete(origWidth); origWidth = undefined;
    delete(photo_details_pos); photo_details_pos = undefined;
 
-} // showImage()
+} // showPhoto()
 
 /**
  * scroll browser to the last shown photo
@@ -277,16 +277,24 @@ function startSearch()
    var objTemp = new Object();
    objTemp['action'] = 'search';
 
-   if(document.getElementsByName('searchfor_tag')[0].value != "") {
+   if(document.getElementsByName('searchfor_tag')[0] != undefined &&
+      document.getElementsByName('searchfor_tag')[0].value != "") {
       objTemp['for_tag'] = document.getElementsByName('searchfor_tag')[0].value;
    }
-   if(document.getElementsByName('searchfor_name')[0].value != "") {
+   if(document.getElementsByName('searchfor_name')[0] != undefined &&
+      document.getElementsByName('searchfor_name')[0].value != "") {
       objTemp['for_name'] = document.getElementsByName('searchfor_name')[0].value;
    }
-   if(document.getElementsByName('consider_date')[0].checked == true) {
+   if(document.getElementsByName('consider_date')[0] != undefined &&
+      document.getElementsByName('consider_date')[0].checked == true) {
       objTemp['from'] = from;
       objTemp['to'] = to;
    }
+   if(document.getElementsByName('consider_rate')[0] != undefined &&
+      document.getElementsByName('consider_rate')[0].checked == true) {
+      objTemp['rate_from'] = rate_search['from'];
+      objTemp['rate_to'] = rate_search['to'];
+   }
 
    var retr = HTML_AJAX.post(web_path + '/rpc.php', objTemp);
    if(retr == "ok") {
@@ -329,8 +337,13 @@ function datesearch()
  * called for photo-index export. will return the
  * selected mode via AJAX from the server.
  */
-function setViewMode(mode)
+function setViewMode(srv_webpath, mode)
 {
+   if(srv_webpath != undefined)
+      web_path = srv_webpath;
+   else
+      web_path = '';
+
    var exprt = document.getElementById('output');
    exprt.innerHTML = "Loading...";
    exprt.innerHTML = HTML_AJAX.grab(encodeURI(web_path + '/rpc.php?action=get_export&mode=' + mode));
@@ -342,13 +355,20 @@ function setViewMode(mode)
  */
 function clearSearch()
 {
-   document.getElementsByName('searchfor_tag')[0].value = '';
-   document.getElementsByName('searchfor_name')[0].value = '';
+   if(document.getElementsByName('searchfor_tag')[0] != undefined)
+      document.getElementsByName('searchfor_tag')[0].value = '';
+   if(document.getElementsByName('searchfor_name')[0] != undefined)
+      document.getElementsByName('searchfor_name')[0].value = '';
 
-   if(document.getElementsByName('consider_date')[0].checked == true) {
+   if(document.getElementsByName('consider_date')[0] != undefined &&
+      document.getElementsByName('consider_date')[0].checked == true) {
       document.getElementsByName('consider_date')[0].checked = false;
       datesearch();
-   }  
+   }
+   if(document.getElementsByName('consider_rate')[0] != undefined &&
+      document.getElementsByName('consider_rate')[0].checked == true) {
+      document.getElementsByName('consider_rate')[0].checked = false;
+   }
 
 } // clearSearch()
 
@@ -383,13 +403,12 @@ function init_phpfspot(srv_webpath)
       web_path = '';
 
    /* always load list of available tags */
-   refreshAvailableTags();
+   //this should not be more necessary since 4.5.08
+   //refreshAvailableTags();
 
    /* ask the server what we are currently displaying */
    whattodo = AskServerWhatToDo();
 
-   window.alert(whattodo);
-
    if(whattodo == 'showpi' || whattodo == 'showpi_date') {
       showPhotoIndex();
    }
@@ -399,7 +418,7 @@ function init_phpfspot(srv_webpath)
    }
    if(whattodo == 'show_photo') {
       if(photo = getPhotoToShow()) {
-         showImage(photo);
+         showPhoto(photo);
          refreshSelectedTags();
       }
    }
@@ -664,8 +683,13 @@ function noop() {}
 /**
  * start slideshow
  */
-function startSlideShow()
+function startSlideShow(srv_webpath)
 {
+   if(srv_webpath != undefined)
+      web_path = srv_webpath;
+   else
+      web_path = '';
+
    if(!sliding) {
       HTML_AJAX.grab(encodeURI(web_path + '/rpc.php?action=reset_slideshow'));
       nextSlide();
@@ -800,6 +824,64 @@ function update_sort_order(obj)
 
 } // update_sort_order()
 
+/**
+ * show rate stars
+ *
+ * this function will show the requested amount of
+ * rate-stars.
+ *
+ * @param string mode
+ * @param int level
+ */
+function show_rate(mode, level)
+{
+   var i;
+
+   for(i = 1; i <= 5; i++) {
+      if(i <= level) {
+         document.getElementById('rate_' + mode + '_' + i).src = web_path + '/resources/star.png';
+      }
+      else {
+         document.getElementById('rate_' + mode + '_' + i).src = web_path + '/resources/empty_rate.png';
+      }
+   }
+
+} // show_rate()
+
+/**
+ * set rate stars
+ *
+ *
+ * this function will set the requested rate-stars-amount into a global
+ * variable (which will then later be used on form-submit) and will also
+ * update the display.
+ *
+ * @param string mode
+ * @param int level
+ */
+function set_rate(mode, level)
+{
+   rate_search[mode] = level;
+   show_rate(mode, level);
+
+} // set_rate()
+
+/**
+ * reset rate stars
+ *
+ * this function will reset the rate-star to their initial value.
+ *
+ * @param string mode
+ */
+function reset_rate(mode)
+{
+   if(rate_search[mode] == undefined)
+      rate_search[mode] = 0;
+
+   show_rate(mode, rate_search[mode]);
+
+} // reset_rate()
+
 /**
  * handle key events
  */
@@ -859,3 +941,4 @@ var origWidth;
 // position of the last shown photo in photo-index
 var photo_details_pos;
 var web_path;
+var rate_search = new Array();