[limb-svn] r6946 - in syncman/trunk: . lib settings src/controller src/model template template/projects www www/js

svn at limb-project.com svn at limb-project.com
Tue Apr 22 19:43:18 MSD 2008


Author: wiliam
Date: 2008-04-22 19:43:18 +0400 (Tue, 22 Apr 2008)
New Revision: 6946
URL: http://fisheye.limb-project.com/changelog/limb/?cs=6946

Added:
   syncman/trunk/settings/default_value.ini
Removed:
   syncman/trunk/lib/JsHttpRequest/
   syncman/trunk/src/controller/MainPageController.class.php
   syncman/trunk/template/main_page/
   syncman/trunk/www/js/JsHttpRequest.js
Modified:
   syncman/trunk/settings/routes.conf.php
   syncman/trunk/setup.php
   syncman/trunk/src/controller/ProjectsController.class.php
   syncman/trunk/src/model/Project.class.php
   syncman/trunk/template/projects/detail.phtml
   syncman/trunk/template/projects/display.phtml
   syncman/trunk/www/index.php
   syncman/trunk/www/js/getDetailForCategory.js
   syncman/trunk/www/js/main.js
Log:
-- fixed some js bugs
-- fixed minor model bugs with default attributes assignment

Added: syncman/trunk/settings/default_value.ini
===================================================================
--- syncman/trunk/settings/default_value.ini	                        (rev 0)
+++ syncman/trunk/settings/default_value.ini	2008-04-22 15:43:18 UTC (rev 6946)
@@ -0,0 +1,2 @@
+host=localhost
+category=no_category
\ No newline at end of file

Modified: syncman/trunk/settings/routes.conf.php
===================================================================
--- syncman/trunk/settings/routes.conf.php	2008-04-22 09:04:06 UTC (rev 6945)
+++ syncman/trunk/settings/routes.conf.php	2008-04-22 15:43:18 UTC (rev 6946)
@@ -3,7 +3,7 @@
 $conf = array(
 'HomePage' =>
   array('path' => '/',
-        'defaults' => array('controller' => 'main_page', 'action' => 'display')),
+    'defaults' => array('controller' => 'projects', 'action' => 'display')),
 
 'ServiceActionId' =>
   array('path' => '/:controller/:action/:id',

Modified: syncman/trunk/setup.php
===================================================================
--- syncman/trunk/setup.php	2008-04-22 09:04:06 UTC (rev 6945)
+++ syncman/trunk/setup.php	2008-04-22 15:43:18 UTC (rev 6946)
@@ -15,11 +15,14 @@
 @define('WACT_CONFIG_DIRECTORY', dirname(__FILE__) . '/settings/wact/');
 
 define('SYNCMAN_VERSION', trim(file_get_contents(dirname(__FILE__) . '/VERSION')));
+
+ at define('SYNCMAN_PROJECTS_SETTINGS_DIR', dirname(__FILE__) . '/projects/');
 @define('SYNCMAN_KEY', '/home/syncman/.ssh/id_dsa');
 @define('SYNCMAN_SVN_BIN', 'svn');
 @define('SYNCMAN_RSYNC_BIN', 'rsync');
 @define('SYNCMAN_SSH_BIN', 'ssh');
- at define('SYNCMAN_PROJECTS_SETTINGS_DIR', dirname(__FILE__) . '/projects/');
 
+ at define('LIMB_CONF_INCLUDE_PATH', dirname(__FILE__) . '/settings/');
+
 require_once(dirname(__FILE__) . '/common.inc.php');
 ?>

Deleted: syncman/trunk/src/controller/MainPageController.class.php
===================================================================
--- syncman/trunk/src/controller/MainPageController.class.php	2008-04-22 09:04:06 UTC (rev 6945)
+++ syncman/trunk/src/controller/MainPageController.class.php	2008-04-22 15:43:18 UTC (rev 6946)
@@ -1,13 +0,0 @@
-<?php
-
-lmb_require('limb/web_app/src/controller/lmbController.class.php');
-
-class MainPageController extends lmbController
-{
-  function doDisplay()
-  {
-    $this->redirect(array('controller' => 'projects'));
-  }
-}
-
-?>

Modified: syncman/trunk/src/controller/ProjectsController.class.php
===================================================================
--- syncman/trunk/src/controller/ProjectsController.class.php	2008-04-22 09:04:06 UTC (rev 6945)
+++ syncman/trunk/src/controller/ProjectsController.class.php	2008-04-22 15:43:18 UTC (rev 6946)
@@ -9,6 +9,7 @@
   {
     //$this->view->findChild('categories')->registerDataset(Category :: findAllCategories());
     $this->view->set('category', Category :: findAllCategories());
+    
 
     if(isset($_COOKIE['category_detail']))
       $this->view->set('category_detail', $_COOKIE['category_detail']);
@@ -40,18 +41,33 @@
 
   function doStartSync()
   {
-    if($ids = $this->request->getArray('ids'))
+    $id_href = '';
+    if($ids = $this->request->getArray('ids')) {}
+    elseif($id = $this->request->get('id'))
     {
+      $ids = array(0 => $id);
+      $id_href = $id;
+    }
+
+    if(is_array($ids))
+    {
       foreach($ids as $id)
       {
         $this->_syncProject($id);
       }
     }
-    elseif($id = $this->request->get('id'))
-      $this->_syncProject($id);
 
     $this->_out("<hr><b>Done!(check logs for errors)</b><br><br>");
-    $this->_out("<script>window.top.opener.location.reload()</script>");
+    $this->_out("<script>
+     window.top.opener.location.reload();
+     window.top.opener.location =
+      window.top.opener.location.protocol + '//' +
+      window.top.opener.location.host + ':' +
+      window.top.opener.location.port + 
+      window.top.opener.location.pathname + 
+      '?' + window.top.opener.location.search +
+      '#' + '{$id_href}';
+    </script>");
   }
 
   protected function _syncProject($id)
@@ -76,27 +92,23 @@
       $value = isset($_COOKIE['category_detail'][$category]) ? $_COOKIE['category_detail'][$category] : 0;
 
       $value = (int) (! $value);
-      $this->_setCookie($category, $value);
+      $this->response->setcookie("category_detail[{$category}]", $value, $value ? time()+3600*24*30 : time(), "/");
 
       if($this->request->getInteger('js') !== 1)
         $this->redirect(array('controller' => 'projects', 'action' => 'display'));
       else
       {
-        require_once "lib/JsHttpRequest/JsHttpRequest.php";
-        $JsHttpRequest = new JsHttpRequest("utf-8");
         if($value == 1)
           $this->view->set('item', Category :: findCategory($category));
         else
+        {
+          $this->response->commit();
           exit();
+        }
       }
     }
   }
 
-  protected function _setCookie($category, $value)
-  {
-    setcookie("category_detail[{$category}]", $value, $value ? time()+3600*24*30: time(), "/");
-  }
-
   function notify($project, $cmd, $log)
   {
     static $cmds = array();

Modified: syncman/trunk/src/model/Project.class.php
===================================================================
--- syncman/trunk/src/model/Project.class.php	2008-04-22 09:04:06 UTC (rev 6945)
+++ syncman/trunk/src/model/Project.class.php	2008-04-22 15:43:18 UTC (rev 6946)
@@ -2,21 +2,23 @@
 lmb_require('limb/classkit/src/lmbObject.class.php');
 lmb_require('limb/util/src/system/lmbFs.class.php');
 
- at define('SYNCMAN_PROJECTS_SETTINGS_DIR', dirname(__FILE__) . '/../../projects/');
- at define('SYNCMAN_KEY', '/home/syncman/.ssh/id_dsa');
- at define('SYNCMAN_SVN_BIN', 'svn');
- at define('SYNCMAN_RSYNC_BIN', 'rsync');
- at define('SYNCMAN_SSH_BIN', 'ssh');
-
 class Project extends lmbObject
 {
   protected $listener;
   protected $sync_date;
   protected $sync_rev;
+  protected static $default_value;
 
   function __construct($name)
   {
     $this->setName($name);
+
+    if(!isset(self::$default_value))
+      self::$default_value = lmbToolkit :: instance()->getConf('default_value.ini');
+
+    foreach(self::$default_value as $key => $value)
+      if(!isset($this[$key]))
+        $this->set($key, $value);
   }
 
   static function createFromIni($name, $ini)
@@ -296,7 +298,8 @@
     $log = '';
     while(!feof($proc))
     {
-     $log = fread($proc, 1000);
+     $t_log = fread($proc, 8192);
+     $log .= $t_log;
      fwrite($fh, $log);
      if($this->listener)
        $this->listener->notify($this, $cmd, $log);
@@ -307,6 +310,8 @@
 
     if($res != 0)
       throw new Exception("Command '$cmd' execution failed, return status is '$res'");
+
+    return $log;
   }
 
   protected function _getFileContents($file)

Modified: syncman/trunk/template/projects/detail.phtml
===================================================================
--- syncman/trunk/template/projects/detail.phtml	2008-04-22 09:04:06 UTC (rev 6945)
+++ syncman/trunk/template/projects/detail.phtml	2008-04-22 15:43:18 UTC (rev 6946)
@@ -15,6 +15,7 @@
   <tr class='list'>
     <td class='selector'>{{input type='checkbox' name='ids[]' value='{$project.name}' class='input' /}}</td>
     <td class='project_name'>
+      <a name="project_{$project->name}"></a>
       <?php $project_class = $project->is_changed ? 'changed' : 'not_changed'; ?>
       <span class="{$project_class}" onclick='info_toggle("{$project.name}_info"); return false;'>
           {$project->name}

Modified: syncman/trunk/template/projects/display.phtml
===================================================================
--- syncman/trunk/template/projects/display.phtml	2008-04-22 09:04:06 UTC (rev 6945)
+++ syncman/trunk/template/projects/display.phtml	2008-04-22 15:43:18 UTC (rev 6946)
@@ -14,7 +14,6 @@
   <script src="/shared/js/scriptaculous/scriptaculous.js"></script>
   <script src="/js/jquery.js"></script>
   <script src="/js/main.js"></script>
-  <script src="/js/JsHttpRequest.js"></script>
   <script src="/js/getDetailForCategory.js"></script>
 </head>
 <body>
@@ -48,8 +47,7 @@
          </a>
          </legend>
 
-         <?php $state = $open == 0 ? 'none' : 'block'; ?>
-         <div id='{$item.name}_category' style="display: {$state};">
+         <div id='{$item.name}_category'>
          <?php if($open == 1) { ?>
           <?php $this->item = $item; ?>
           {{include file='projects/detail.phtml' /}}
@@ -69,6 +67,5 @@
     </div>
 
   </div>
-
 </body>
 </html>

Modified: syncman/trunk/www/index.php
===================================================================
--- syncman/trunk/www/index.php	2008-04-22 09:04:06 UTC (rev 6945)
+++ syncman/trunk/www/index.php	2008-04-22 15:43:18 UTC (rev 6946)
@@ -6,4 +6,4 @@
 $application = new SyncmanApplication();
 $application->process();
 
-?>
+?>
\ No newline at end of file

Deleted: syncman/trunk/www/js/JsHttpRequest.js
===================================================================
--- syncman/trunk/www/js/JsHttpRequest.js	2008-04-22 09:04:06 UTC (rev 6945)
+++ syncman/trunk/www/js/JsHttpRequest.js	2008-04-22 15:43:18 UTC (rev 6946)
@@ -1,576 +0,0 @@
-/**
- * JsHttpRequest: JavaScript "AJAX" data loader
- * Minimized version: see debug directory for the complete one.
- *
- * @license LGPL
- * @author Dmitry Koterov, http://en.dklab.ru/lib/JsHttpRequest/
- * @version 5.x $Id$
- */
-function JsHttpRequest(){
-var t=this;
-t.onreadystatechange=null;
-t.readyState=0;
-t.responseText=null;
-t.responseXML=null;
-t.status=200;
-t.statusText="OK";
-t.responseJS=null;
-t.caching=false;
-t.loader=null;
-t.session_name="PHPSESSID";
-t._ldObj=null;
-t._reqHeaders=[];
-t._openArgs=null;
-t._errors={inv_form_el:"Invalid FORM element detected: name=%, tag=%",must_be_single_el:"If used, <form> must be a single HTML element in the list.",js_invalid:"JavaScript code generated by backend is invalid!\n%",url_too_long:"Cannot use so long query with GET request (URL is larger than % bytes)",unk_loader:"Unknown loader: %",no_loaders:"No loaders registered at all, please check JsHttpRequest.LOADERS array",no_loader_matched:"Cannot find a loader which may process the request. Notices are:\n%"};
-t.abort=function(){
-with(this){
-if(_ldObj&&_ldObj.abort){
-_ldObj.abort();
-}
-_cleanup();
-if(readyState==0){
-return;
-}
-if(readyState==1&&!_ldObj){
-readyState=0;
-return;
-}
-_changeReadyState(4,true);
-}
-};
-t.open=function(_2,_3,_4,_5,_6){
-with(this){
-if(_3.match(/^((\w+)\.)?(GET|POST)\s+(.*)/i)){
-this.loader=RegExp.$2?RegExp.$2:null;
-_2=RegExp.$3;
-_3=RegExp.$4;
-}
-try{
-if(document.location.search.match(new RegExp("[&?]"+session_name+"=([^&?]*)"))||document.cookie.match(new RegExp("(?:;|^)\\s*"+session_name+"=([^;]*)"))){
-_3+=(_3.indexOf("?")>=0?"&":"?")+session_name+"="+this.escape(RegExp.$1);
-}
-}
-catch(e){
-}
-_openArgs={method:(_2||"").toUpperCase(),url:_3,asyncFlag:_4,username:_5!=null?_5:"",password:_6!=null?_6:""};
-_ldObj=null;
-_changeReadyState(1,true);
-return true;
-}
-};
-t.send=function(_7){
-if(!this.readyState){
-return;
-}
-this._changeReadyState(1,true);
-this._ldObj=null;
-var _8=[];
-var _9=[];
-if(!this._hash2query(_7,null,_8,_9)){
-return;
-}
-var _a=null;
-if(this.caching&&!_9.length){
-_a=this._openArgs.username+":"+this._openArgs.password+"@"+this._openArgs.url+"|"+_8+"#"+this._openArgs.method;
-var _b=JsHttpRequest.CACHE[_a];
-if(_b){
-this._dataReady(_b[0],_b[1]);
-return false;
-}
-}
-var _c=(this.loader||"").toLowerCase();
-if(_c&&!JsHttpRequest.LOADERS[_c]){
-return this._error("unk_loader",_c);
-}
-var _d=[];
-var _e=JsHttpRequest.LOADERS;
-for(var _f in _e){
-var ldr=_e[_f].loader;
-if(!ldr){
-continue;
-}
-if(_c&&_f!=_c){
-continue;
-}
-var _11=new ldr(this);
-JsHttpRequest.extend(_11,this._openArgs);
-JsHttpRequest.extend(_11,{queryText:_8.join("&"),queryElem:_9,id:(new Date().getTime())+""+JsHttpRequest.COUNT++,hash:_a,span:null});
-var _12=_11.load();
-if(!_12){
-this._ldObj=_11;
-JsHttpRequest.PENDING[_11.id]=this;
-return true;
-}
-if(!_c){
-_d[_d.length]="- "+_f.toUpperCase()+": "+this._l(_12);
-}else{
-return this._error(_12);
-}
-}
-return _f?this._error("no_loader_matched",_d.join("\n")):this._error("no_loaders");
-};
-t.getAllResponseHeaders=function(){
-with(this){
-return _ldObj&&_ldObj.getAllResponseHeaders?_ldObj.getAllResponseHeaders():[];
-}
-};
-t.getResponseHeader=function(_13){
-with(this){
-return _ldObj&&_ldObj.getResponseHeader?_ldObj.getResponseHeader(_13):null;
-}
-};
-t.setRequestHeader=function(_14,_15){
-with(this){
-_reqHeaders[_reqHeaders.length]=[_14,_15];
-}
-};
-t._dataReady=function(_16,js){
-with(this){
-if(caching&&_ldObj){
-JsHttpRequest.CACHE[_ldObj.hash]=[_16,js];
-}
-responseText=responseXML=_16;
-responseJS=js;
-if(js!==null){
-status=200;
-statusText="OK";
-}else{
-status=500;
-statusText="Internal Server Error";
-}
-_changeReadyState(2);
-_changeReadyState(3);
-_changeReadyState(4);
-_cleanup();
-}
-};
-t._l=function(_18){
-var i=0,p=0,msg=this._errors[_18[0]];
-while((p=msg.indexOf("%",p))>=0){
-var a=_18[++i]+"";
-msg=msg.substring(0,p)+a+msg.substring(p+1,msg.length);
-p+=1+a.length;
-}
-return msg;
-};
-t._error=function(msg){
-msg=this._l(typeof (msg)=="string"?arguments:msg);
-msg="JsHttpRequest: "+msg;
-if(!window.Error){
-throw msg;
-}else{
-if((new Error(1,"test")).description=="test"){
-throw new Error(1,msg);
-}else{
-throw new Error(msg);
-}
-}
-};
-t._hash2query=function(_1e,_1f,_20,_21){
-if(_1f==null){
-_1f="";
-}
-if((""+typeof (_1e)).toLowerCase()=="object"){
-var _22=false;
-if(_1e&&_1e.parentNode&&_1e.parentNode.appendChild&&_1e.tagName&&_1e.tagName.toUpperCase()=="FORM"){
-_1e={form:_1e};
-}
-for(var k in _1e){
-var v=_1e[k];
-if(v instanceof Function){
-continue;
-}
-var _25=_1f?_1f+"["+this.escape(k)+"]":this.escape(k);
-var _26=v&&v.parentNode&&v.parentNode.appendChild&&v.tagName;
-if(_26){
-var tn=v.tagName.toUpperCase();
-if(tn=="FORM"){
-_22=true;
-}else{
-if(tn=="INPUT"||tn=="TEXTAREA"||tn=="SELECT"){
-}else{
-return this._error("inv_form_el",(v.name||""),v.tagName);
-}
-}
-_21[_21.length]={name:_25,e:v};
-}else{
-if(v instanceof Object){
-this._hash2query(v,_25,_20,_21);
-}else{
-if(v===null){
-continue;
-}
-if(v===true){
-v=1;
-}
-if(v===false){
-v="";
-}
-_20[_20.length]=_25+"="+this.escape(""+v);
-}
-}
-if(_22&&_21.length>1){
-return this._error("must_be_single_el");
-}
-}
-}else{
-_20[_20.length]=_1e;
-}
-return true;
-};
-t._cleanup=function(){
-var _28=this._ldObj;
-if(!_28){
-return;
-}
-JsHttpRequest.PENDING[_28.id]=false;
-var _29=_28.span;
-if(!_29){
-return;
-}
-_28.span=null;
-var _2a=function(){
-_29.parentNode.removeChild(_29);
-};
-JsHttpRequest.setTimeout(_2a,50);
-};
-t._changeReadyState=function(s,_2c){
-with(this){
-if(_2c){
-status=statusText=responseJS=null;
-responseText="";
-}
-readyState=s;
-if(onreadystatechange){
-onreadystatechange();
-}
-}
-};
-t.escape=function(s){
-return escape(s).replace(new RegExp("\\+","g"),"%2B");
-};
-}
-JsHttpRequest.COUNT=0;
-JsHttpRequest.MAX_URL_LEN=2000;
-JsHttpRequest.CACHE={};
-JsHttpRequest.PENDING={};
-JsHttpRequest.LOADERS={};
-JsHttpRequest._dummy=function(){
-};
-JsHttpRequest.TIMEOUTS={s:window.setTimeout,c:window.clearTimeout};
-JsHttpRequest.setTimeout=function(_2e,dt){
-window.JsHttpRequest_tmp=JsHttpRequest.TIMEOUTS.s;
-if(typeof (_2e)=="string"){
-id=window.JsHttpRequest_tmp(_2e,dt);
-}else{
-var id=null;
-var _31=function(){
-_2e();
-delete JsHttpRequest.TIMEOUTS[id];
-};
-id=window.JsHttpRequest_tmp(_31,dt);
-JsHttpRequest.TIMEOUTS[id]=_31;
-}
-window.JsHttpRequest_tmp=null;
-return id;
-};
-JsHttpRequest.clearTimeout=function(id){
-window.JsHttpRequest_tmp=JsHttpRequest.TIMEOUTS.c;
-delete JsHttpRequest.TIMEOUTS[id];
-var r=window.JsHttpRequest_tmp(id);
-window.JsHttpRequest_tmp=null;
-return r;
-};
-JsHttpRequest.query=function(url,_35,_36,_37){
-var req=new this();
-req.caching=!_37;
-req.onreadystatechange=function(){
-if(req.readyState==4){
-_36(req.responseJS,req.responseText);
-}
-};
-req.open(null,url,true);
-req.send(_35);
-};
-JsHttpRequest.dataReady=function(d){
-var th=this.PENDING[d.id];
-delete this.PENDING[d.id];
-if(th){
-th._dataReady(d.text,d.js);
-}else{
-if(th!==false){
-throw "dataReady(): unknown pending id: "+d.id;
-}
-}
-};
-JsHttpRequest.extend=function(_3b,src){
-for(var k in src){
-_3b[k]=src[k];
-}
-};
-JsHttpRequest.LOADERS.xml={loader:function(req){
-JsHttpRequest.extend(req._errors,{xml_no:"Cannot use XMLHttpRequest or ActiveX loader: not supported",xml_no_diffdom:"Cannot use XMLHttpRequest to load data from different domain %",xml_no_headers:"Cannot use XMLHttpRequest loader or ActiveX loader, POST method: headers setting is not supported, needed to work with encodings correctly",xml_no_form_upl:"Cannot use XMLHttpRequest loader: direct form elements using and uploading are not implemented"});
-this.load=function(){
-if(this.queryElem.length){
-return ["xml_no_form_upl"];
-}
-if(this.url.match(new RegExp("^([a-z]+://[^\\/]+)(.*)","i"))){
-if(RegExp.$1.toLowerCase()!=document.location.protocol+"//"+document.location.hostname.toLowerCase()){
-return ["xml_no_diffdom",RegExp.$1];
-}
-}
-var xr=null;
-if(window.XMLHttpRequest){
-try{
-xr=new XMLHttpRequest();
-}
-catch(e){
-}
-}else{
-if(window.ActiveXObject){
-try{
-xr=new ActiveXObject("Microsoft.XMLHTTP");
-}
-catch(e){
-}
-if(!xr){
-try{
-xr=new ActiveXObject("Msxml2.XMLHTTP");
-}
-catch(e){
-}
-}
-}
-}
-if(!xr){
-return ["xml_no"];
-}
-var _40=window.ActiveXObject||xr.setRequestHeader;
-if(!this.method){
-this.method=_40&&this.queryText.length?"POST":"GET";
-}
-if(this.method=="GET"){
-if(this.queryText){
-this.url+=(this.url.indexOf("?")>=0?"&":"?")+this.queryText;
-}
-this.queryText="";
-if(this.url.length>JsHttpRequest.MAX_URL_LEN){
-return ["url_too_long",JsHttpRequest.MAX_URL_LEN];
-}
-}else{
-if(this.method=="POST"&&!_40){
-return ["xml_no_headers"];
-}
-}
-this.url+=(this.url.indexOf("?")>=0?"&":"?")+"JsHttpRequest="+(req.caching?"0":this.id)+"-xml";
-var id=this.id;
-xr.onreadystatechange=function(){
-if(xr.readyState!=4){
-return;
-}
-xr.onreadystatechange=JsHttpRequest._dummy;
-req.status=null;
-try{
-req.status=xr.status;
-req.responseText=xr.responseText;
-}
-catch(e){
-}
-if(!req.status){
-return;
-}
-try{
-eval("JsHttpRequest._tmp = function(id) { var d = "+req.responseText+"; d.id = id; JsHttpRequest.dataReady(d); }");
-}
-catch(e){
-return req._error("js_invalid",req.responseText);
-}
-JsHttpRequest._tmp(id);
-JsHttpRequest._tmp=null;
-};
-xr.open(this.method,this.url,true,this.username,this.password);
-if(_40){
-for(var i=0;i<req._reqHeaders.length;i++){
-xr.setRequestHeader(req._reqHeaders[i][0],req._reqHeaders[i][1]);
-}
-xr.setRequestHeader("Content-Type","application/octet-stream");
-}
-xr.send(this.queryText);
-this.span=null;
-this.xr=xr;
-return null;
-};
-this.getAllResponseHeaders=function(){
-return this.xr.getAllResponseHeaders();
-};
-this.getResponseHeader=function(_43){
-return this.xr.getResponseHeader(_43);
-};
-this.abort=function(){
-this.xr.abort();
-this.xr=null;
-};
-}};
-JsHttpRequest.LOADERS.script={loader:function(req){
-JsHttpRequest.extend(req._errors,{script_only_get:"Cannot use SCRIPT loader: it supports only GET method",script_no_form:"Cannot use SCRIPT loader: direct form elements using and uploading are not implemented"});
-this.load=function(){
-if(this.queryText){
-this.url+=(this.url.indexOf("?")>=0?"&":"?")+this.queryText;
-}
-this.url+=(this.url.indexOf("?")>=0?"&":"?")+"JsHttpRequest="+this.id+"-"+"script";
-this.queryText="";
-if(!this.method){
-this.method="GET";
-}
-if(this.method!=="GET"){
-return ["script_only_get"];
-}
-if(this.queryElem.length){
-return ["script_no_form"];
-}
-if(this.url.length>JsHttpRequest.MAX_URL_LEN){
-return ["url_too_long",JsHttpRequest.MAX_URL_LEN];
-}
-var th=this,d=document,s=null,b=d.body;
-if(!window.opera){
-this.span=s=d.createElement("SCRIPT");
-var _49=function(){
-s.language="JavaScript";
-if(s.setAttribute){
-s.setAttribute("src",th.url);
-}else{
-s.src=th.url;
-}
-b.insertBefore(s,b.lastChild);
-};
-}else{
-this.span=s=d.createElement("SPAN");
-s.style.display="none";
-b.insertBefore(s,b.lastChild);
-s.innerHTML="Workaround for IE.<s"+"cript></"+"script>";
-var _49=function(){
-s=s.getElementsByTagName("SCRIPT")[0];
-s.language="JavaScript";
-if(s.setAttribute){
-s.setAttribute("src",th.url);
-}else{
-s.src=th.url;
-}
-};
-}
-JsHttpRequest.setTimeout(_49,10);
-return null;
-};
-}};
-JsHttpRequest.LOADERS.form={loader:function(req){
-JsHttpRequest.extend(req._errors,{form_el_not_belong:"Element \"%\" does not belong to any form!",form_el_belong_diff:"Element \"%\" belongs to a different form. All elements must belong to the same form!",form_el_inv_enctype:"Attribute \"enctype\" of the form must be \"%\" (for IE), \"%\" given."});
-this.load=function(){
-var th=this;
-if(!th.method){
-th.method="POST";
-}
-th.url+=(th.url.indexOf("?")>=0?"&":"?")+"JsHttpRequest="+th.id+"-"+"form";
-if(th.method=="GET"){
-if(th.queryText){
-th.url+=(th.url.indexOf("?")>=0?"&":"?")+th.queryText;
-}
-if(th.url.length>JsHttpRequest.MAX_URL_LEN){
-return ["url_too_long",JsHttpRequest.MAX_URL_LEN];
-}
-var p=th.url.split("?",2);
-th.url=p[0];
-th.queryText=p[1]||"";
-}
-var _4d=null;
-var _4e=false;
-if(th.queryElem.length){
-if(th.queryElem[0].e.tagName.toUpperCase()=="FORM"){
-_4d=th.queryElem[0].e;
-_4e=true;
-th.queryElem=[];
-}else{
-_4d=th.queryElem[0].e.form;
-for(var i=0;i<th.queryElem.length;i++){
-var e=th.queryElem[i].e;
-if(!e.form){
-return ["form_el_not_belong",e.name];
-}
-if(e.form!=_4d){
-return ["form_el_belong_diff",e.name];
-}
-}
-}
-if(th.method=="POST"){
-var _51="multipart/form-data";
-var _52=(_4d.attributes.encType&&_4d.attributes.encType.nodeValue)||(_4d.attributes.enctype&&_4d.attributes.enctype.value)||_4d.enctype;
-if(_52!=_51){
-return ["form_el_inv_enctype",_51,_52];
-}
-}
-}
-var d=_4d&&(_4d.ownerDocument||_4d.document)||document;
-var _54="jshr_i_"+th.id;
-var s=th.span=d.createElement("DIV");
-s.style.position="absolute";
-s.style.display="none";
-s.style.visibility="hidden";
-s.innerHTML=(_4d?"":"<form"+(th.method=="POST"?" enctype=\"multipart/form-data\" method=\"post\"":"")+"></form>")+"<iframe name=\""+_54+"\" id=\""+_54+"\" style=\"width:0px; height:0px; overflow:hidden; border:none\"></iframe>";
-if(!_4d){
-_4d=th.span.firstChild;
-}
-d.body.insertBefore(s,d.body.lastChild);
-var _56=function(e,_58){
-var sv=[];
-var _5a=e;
-if(e.mergeAttributes){
-var _5a=d.createElement("form");
-_5a.mergeAttributes(e,false);
-}
-for(var i=0;i<_58.length;i++){
-var k=_58[i][0],v=_58[i][1];
-sv[sv.length]=[k,_5a.getAttribute(k)];
-_5a.setAttribute(k,v);
-}
-if(e.mergeAttributes){
-e.mergeAttributes(_5a,false);
-}
-return sv;
-};
-var _5e=function(){
-top.JsHttpRequestGlobal=JsHttpRequest;
-var _5f=[];
-if(!_4e){
-for(var i=0,n=_4d.elements.length;i<n;i++){
-_5f[i]=_4d.elements[i].name;
-_4d.elements[i].name="";
-}
-}
-var qt=th.queryText.split("&");
-for(var i=qt.length-1;i>=0;i--){
-var _63=qt[i].split("=",2);
-var e=d.createElement("INPUT");
-e.type="hidden";
-e.name=unescape(_63[0]);
-e.value=_63[1]!=null?unescape(_63[1]):"";
-_4d.appendChild(e);
-}
-for(var i=0;i<th.queryElem.length;i++){
-th.queryElem[i].e.name=th.queryElem[i].name;
-}
-var sv=_56(_4d,[["action",th.url],["method",th.method],["onsubmit",null],["target",_54]]);
-_4d.submit();
-_56(_4d,sv);
-for(var i=0;i<qt.length;i++){
-_4d.lastChild.parentNode.removeChild(_4d.lastChild);
-}
-if(!_4e){
-for(var i=0,n=_4d.elements.length;i<n;i++){
-_4d.elements[i].name=_5f[i];
-}
-}
-};
-JsHttpRequest.setTimeout(_5e,100);
-return null;
-};
-}};
-

Modified: syncman/trunk/www/js/getDetailForCategory.js
===================================================================
--- syncman/trunk/www/js/getDetailForCategory.js	2008-04-22 09:04:06 UTC (rev 6945)
+++ syncman/trunk/www/js/getDetailForCategory.js	2008-04-22 15:43:18 UTC (rev 6946)
@@ -1,25 +1,17 @@
 function getDetailForCategory(category) {
-  aOnClick = document.getElementById(category + '_toggle').onclick;
-  aHref = document.getElementById(category + '_toggle').href;
+  aOnClick = jQuery('a#' + category + '_toggle').attr('onclick');
+  aHref = jQuery('a#' + category + '_toggle').attr('href');
 
-  document.getElementById(category + '_toggle').onclick = function onclick(event) {return false;};
-  document.getElementById(category + '_toggle').href = '#';
-  document.getElementById(category).innerHTML = "Loading..."
-  // Create new JsHttpRequest object.
-  var req = new JsHttpRequest();
-  // Code automatically called on load finishing.
-  req.onreadystatechange = function() {
-      if (req.readyState == 4) {
-          // Write debug information too (output becomes responseText).
-          document.getElementById(category).innerHTML = req.responseText;
-          document.getElementById(category + '_toggle').onclick = aOnClick;
-          document.getElementById(category + '_toggle').href = aHref;
-          category_toggle(category);
-          on_load();
-        }
-  }
-  // Prepare request object (automatically choose GET or POST).
-  req.open('GET', aHref + '&js=1', true);
-  // Send data to backend.
-  req.send( );
+  jQuery('a#' + category + '_toggle').attr('onclick', 'return false;');
+  jQuery('a#' + category + '_toggle').attr('href', '#');
+  jQuery('div#' + category).html("Loading...");
+  
+  jQuery.get(aHref + '&js=1',
+    function (data) { 
+      //jQuery('div#' + category).html(data);
+      document.getElementById(category).innerHTML = data;
+      on_load();
+    });
+  jQuery('a#' + category + '_toggle').attr('onclick', aOnClick);
+  jQuery('a#' + category + '_toggle').attr('href', aHref);
 }
\ No newline at end of file

Modified: syncman/trunk/www/js/main.js
===================================================================
--- syncman/trunk/www/js/main.js	2008-04-22 09:04:06 UTC (rev 6945)
+++ syncman/trunk/www/js/main.js	2008-04-22 15:43:18 UTC (rev 6946)
@@ -16,11 +16,9 @@
 
 on_load();
 
-function category_toggle (elem_selector){
-  var elem = document.getElementById(elem_selector);
-  var toggle = jQuery(elem).toggle();    
+function category_toggle (elem_selector, display){
   var name_toggle = document.getElementById(elem_selector + '_toggle');
-  if (toggle.css('display') != 'block')
+  if (jQuery(name_toggle).find('img').attr('src') != '/images/icon/open.gif')
       jQuery(name_toggle).find('img').attr('src','/images/icon/open.gif');
   else 
       jQuery(name_toggle).find('img').attr('src','/images/icon/close.gif');



More information about the limb-svn mailing list