[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