From c632fc6976ca908ee16e910f9d214980bf29c43d Mon Sep 17 00:00:00 2001
From: Andreas Gohr <andi@splitbrain.org>
Date: Thu, 26 Jan 2006 22:29:26 +0100
Subject: [PATCH] scroll__here support

This adds a simple JavaScript behavior. When an element with the id
'scroll__here' is found in the document the browser will scroll this
element into view. Useful to scroll to some output after form submitting.

darcs-hash:20060126212926-7ad00-b359915a5d6a299652134d8dfa64015786283b6b.gz
---
 lib/exe/js.php                    |  1 +
 lib/plugins/usermanager/admin.php |  2 +-
 lib/scripts/script.js             | 22 ++++++++++------------
 3 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/lib/exe/js.php b/lib/exe/js.php
index 56fa8575a..488320ddd 100644
--- a/lib/exe/js.php
+++ b/lib/exe/js.php
@@ -79,6 +79,7 @@ function js_out(){
     js_runonstart("ajax_qsearch.init('qsearch_in','qsearch_out')");
     js_runonstart("addEvent(document,'click',closePopups)");
     js_runonstart('addTocToggle()');
+    js_runonstart('scrollToMarker()');
 
     if($edit){
         // size controls
diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php
index 64ef0f5ff..b7ee03215 100644
--- a/lib/plugins/usermanager/admin.php
+++ b/lib/plugins/usermanager/admin.php
@@ -226,7 +226,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin {
         }
 
         if($this->_edit_user  && $this->_auth->canDo('modifyUser')){
-          ptln("<div".$style.">");
+          ptln("<div".$style." id=\"scroll__here\">");
           print $this->locale_xhtml('edit');
           ptln("  <div class=\"level2\">");
 
diff --git a/lib/scripts/script.js b/lib/scripts/script.js
index a8c6fe3fd..d2fbc35bf 100644
--- a/lib/scripts/script.js
+++ b/lib/scripts/script.js
@@ -47,12 +47,7 @@ function $() {
  */
 function findPosX(object){
   var curleft = 0;
-  var obj;
-  if(typeof(object) == 'object'){
-    obj = object;
-  }else{
-    obj = $(object);
-  }
+  var obj = $(object);
   if (obj.offsetParent){
     while (obj.offsetParent){
       curleft += obj.offsetLeft;
@@ -72,12 +67,7 @@ function findPosX(object){
  */
 function findPosY(object){
   var curtop = 0;
-  var obj;
-  if(typeof(object) == 'object'){
-    obj = object;
-  }else{
-    obj = $(object);
-  }
+  var obj = $(object);
   if (obj.offsetParent){
     while (obj.offsetParent){
       curtop += obj.offsetTop;
@@ -392,3 +382,11 @@ function closePopups(){
     }
   }
 }
+
+/**
+ * Looks for an element with the ID scroll__here at scrolls to it
+ */
+function scrollToMarker(){
+	var obj = $('scroll__here');
+	if(obj) obj.scrollIntoView();
+}
-- 
GitLab