* Fixed compatible rendering of search box * Marked calls for navigation_macro() with FIXME * Renamed Site's type.properties to Site.properties
		
			
				
	
	
		
			117 lines
		
	
	
	
		
			3.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
	
		
			3.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
//
 | 
						|
// The Antville Project
 | 
						|
// http://code.google.com/p/antville
 | 
						|
//
 | 
						|
// Copyright 2001-2007 by The Antville People
 | 
						|
//
 | 
						|
// Licensed under the Apache License, Version 2.0 (the ``License'');
 | 
						|
// you may not use this file except in compliance with the License.
 | 
						|
// You may obtain a copy of the License at
 | 
						|
//
 | 
						|
//    http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
//
 | 
						|
// Unless required by applicable law or agreed to in writing, software
 | 
						|
// distributed under the License is distributed on an ``AS IS'' BASIS,
 | 
						|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
// See the License for the specific language governing permissions and
 | 
						|
// limitations under the License.
 | 
						|
//
 | 
						|
// $Revision$
 | 
						|
// $LastChangedBy$
 | 
						|
// $LastChangedDate$
 | 
						|
// $URL$
 | 
						|
//
 | 
						|
 | 
						|
(function() {
 | 
						|
   var renderSkin = HopObject.prototype.renderSkin;
 | 
						|
   HopObject.prototype.renderSkin = function(name, param) {
 | 
						|
      var constraint = res.contentType === "text/html" && 
 | 
						|
            name.constructor === String;
 | 
						|
      if (constraint) {
 | 
						|
         var prototype = this.constructor === Root ? 
 | 
						|
               "Site" : this.constructor.name;
 | 
						|
         var skin = name.replace(/.*#/, "");
 | 
						|
         res.write('<div class="debug skin">');
 | 
						|
         res.write('<div class="debug title">');
 | 
						|
         skin = new Skin(prototype, skin);
 | 
						|
         html.link({href: skin.href()}, skin.prototype + "." + skin.name);
 | 
						|
         res.write("</div>");
 | 
						|
      }
 | 
						|
      renderSkin.call(this, name, param);
 | 
						|
      constraint && (res.write("</div>"));
 | 
						|
   }
 | 
						|
})();
 | 
						|
 | 
						|
HopObject.prototype.renderSkinAsString = function(name) {
 | 
						|
   res.push();
 | 
						|
   this.renderSkin(name);
 | 
						|
   return res.pop();
 | 
						|
}
 | 
						|
 | 
						|
HopObject.prototype.createtime_macro = function(param) {
 | 
						|
   return this.created_macro.apply(this, arguments);
 | 
						|
};
 | 
						|
 | 
						|
HopObject.prototype.modifytime_macro = function() {
 | 
						|
   return this.modified_macro.apply(this, arguments);
 | 
						|
};
 | 
						|
 | 
						|
HopObject.prototype.url_macro = function(param) {
 | 
						|
   return this.href_macro(param);
 | 
						|
};
 | 
						|
 | 
						|
HopObject.prototype.createInputParam = function(propName, param) {
 | 
						|
   param.name = propName;
 | 
						|
   // submitted values override property value
 | 
						|
   // but only if there were not multiple form elements
 | 
						|
   // with the same name submitted
 | 
						|
   var multiple = req.data[propName + "_array"];
 | 
						|
   if ((!multiple || multiple.length < 2) && req.data[propName] != null) {
 | 
						|
      param.value = req.data[propName];
 | 
						|
   } else {
 | 
						|
      param.value = this[propName];
 | 
						|
   }
 | 
						|
   delete param.as;
 | 
						|
   return param;
 | 
						|
};
 | 
						|
 | 
						|
HopObject.prototype.createCheckBoxParam = function(propName, param) {
 | 
						|
   param.name = propName;
 | 
						|
   param.value = 1;
 | 
						|
   if (req.data[propName] == 1 || this[propName]) {
 | 
						|
      param.checked = "checked";
 | 
						|
   }
 | 
						|
   delete param.as;
 | 
						|
   return param;
 | 
						|
};
 | 
						|
 | 
						|
HopObject.prototype.createLinkParam = function(param) {
 | 
						|
   // clone the param object since known non-html
 | 
						|
   // attributes are going to be deleted
 | 
						|
   var linkParam = Object.clone(param);
 | 
						|
   var url = param.to ? param.to : param.linkto;
 | 
						|
   if (!url || url == "main") {
 | 
						|
      if (this._prototype != "Comment")
 | 
						|
         linkParam.href = this.href();
 | 
						|
      else
 | 
						|
         linkParam.href = this.story.href() + "#" + this._id;
 | 
						|
   } else if (url.contains("://") || url.startsWith("javascript"))
 | 
						|
      linkParam.href = url;
 | 
						|
   else {
 | 
						|
      // check if link points to a subcollection
 | 
						|
      if (url.contains("/"))
 | 
						|
         linkParam.href = this.href() + url;
 | 
						|
      else
 | 
						|
         linkParam.href = this.href(url);
 | 
						|
   }
 | 
						|
   if (param.urlparam)
 | 
						|
      linkParam.href += "?" + param.urlparam;
 | 
						|
   if (param.anchor)
 | 
						|
      linkParam.href += "#" + param.anchor;
 | 
						|
   delete linkParam.to;
 | 
						|
   delete linkParam.linkto;
 | 
						|
   delete linkParam.urlparam;
 | 
						|
   delete linkParam.anchor;
 | 
						|
   delete linkParam.text;
 | 
						|
   return linkParam;
 | 
						|
};
 |