You can subscribe to this list here.
| 2002 | 
          Jan
           | 
        
        
        
        
          Feb
           | 
        
        
        
        
          Mar
           | 
        
        
        
        
          Apr
           | 
        
        
        
        
          May
           | 
        
        
        
        
          Jun
           | 
        
        
        
        
          Jul
           | 
        
        
        
        
          Aug
           | 
        
        
        
        
          Sep
           (36)  | 
        
        
        
        
          Oct
           (16)  | 
        
        
        
        
          Nov
           (4)  | 
        
        
        
        
          Dec
           (1)  | 
        
      
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 | 
          Jan
           (13)  | 
        
        
        
        
          Feb
           | 
        
        
        
        
          Mar
           | 
        
        
        
        
          Apr
           | 
        
        
        
        
          May
           | 
        
        
        
        
          Jun
           | 
        
        
        
        
          Jul
           | 
        
        
        
        
          Aug
           | 
        
        
        
        
          Sep
           | 
        
        
        
        
          Oct
           | 
        
        
        
        
          Nov
           | 
        
        
        
        
          Dec
           | 
        
      
| 
     
      
      
      From: <jfi...@us...> - 2003-01-09 01:53:42
      
     
   | 
Update of /cvsroot/modus/org/bacfug/modus/persistence
In directory sc8-pr-cvs1:/tmp/cvs-serv5475/persistence
Modified Files:
	basepersister.cfc 
Log Message:
Whoops, these were the old files - pardon my CVS skills. The new files are now there.
Index: basepersister.cfc
===================================================================
RCS file: /cvsroot/modus/org/bacfug/modus/persistence/basepersister.cfc,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** basepersister.cfc	30 Oct 2002 03:00:29 -0000	1.11
--- basepersister.cfc	9 Jan 2003 01:53:39 -0000	1.12
***************
*** 1,42 ****
! <cfcomponent displayname="basePersister" hint="The base component for persistence objects">
! 	<cfparam name="instance" default="#structNew()#">
! 	<cffunction name="init" access="public" hint="The initializer" returnType="org.bacfug.modus.persistence.basePersister" output="no">
! 		<cfset var cachePathToUse = getCachePath()>
! 		<cfscript>
! 			//the cache we should use
! 			//if it has been cached, use the cached version
! 			
! 			/*******************************
! 			THIS REALLY IS A GOOD CANDIDATE FOR THE CONFIG DATA!
! 			********************************/
! 			
! 			if(NOT structKeyExists(server.modus,cachePathToUse)){
! 				instance.cache = createObject("component",getCachePath()).init();
! 				server.modus[cachePathToUse] = instance.cache;
  			}
! 			//otherwise, make a new one
! 			else{
! 				instance.cache = server.modus[cachePathToUse];
! 			}	
! 		</cfscript>
! 		<cfreturn this>
! 	</cffunction>
  	
! 	<cffunction name="getCachePath" access="private" returntype="string" output="no" hint="returns a string with the path to the cache component to use.  you can override this function in a persister implementation if you want to use a different caching mechanism other than the default.">
! 		<cfreturn "org.bacfug.modus.caching.serverScopeCache">
! 	</cffunction>
  	
! 	<cffunction name="save" access="public" output="no" hint="The method to save data">
! 		<cfthrow message="save() method not implemented!" detail="You must defined a save() method for #getMetaData(this).name#.">
! 	</cffunction>
  
- 	<cffunction name="get" access="public" output="no" hint="The method to get a particular data instance">
- 		<cfthrow message="get() method not implemented!" detail="You must defined a get() method for #getMetaData(this).name#.">
- 	</cffunction>
- 	
- 	<cffunction name="getAll" access="public" output="no" hint="The method to get all data instances of a particular type.  Should return an array of contentObjects.">
- 		<cfthrow message="getAll() method not implemented!" detail="You must defined a getAll() method for #getMetaData(this).name#.">
- 	</cffunction>
- 		
  	<!--- a package function to determine if an object passed is, indeed, a baseContentObject --->
  	<cffunction name="isContentObject"  access="package" returnType="boolean" output="no" hint="determines if something is a content object">
--- 1,207 ----
! <cfcomponent displayname="basePersister" hint="
! Namespace: org.bacfug.modus.persistence
! 	XML Declararation (modus_settings.cfm): /modus/contenttypes/contenttype/persister
! 	Responsibilites: The base component for persistence objects. Moves content objects on and off disk as well as maintains a memory-based cache to speed up response times.
! ">
! <cfparam name="instance" default="#structNew()#">
! <cffunction name="init" access="public" hint="The initializer" returnType="struct" output="no">
! 	<cfargument name="contentType" type="org.bacfug.modus.contenttypes.basecontenttype" required="Yes">
! 	<cfargument name="descriptor" required="Yes">
! 	<cfargument name="globals" type="struct" required="Yes">
! 	<cfargument name="cache" type="org.bacfug.modus.caching.basecache" required="Yes">
! 	<cfscript>
! 		//the contentType component instance
! 		instance.contentType = arguments.contentType;
! 		//datasource
! 		instance.datasource = globals.datasource;
! 		//cache for this instance
! 		instance.cache = arguments.cache;
! 		//utility component reference
! 		instance.util = server._modus.core[arguments.globals.util];
! 		//set field metadata
! 		instance.fields = instance.contentType.getFields();
! 		//set collection metadata
! 		instance.collections = instance.contentType.getCollections();
! 		//get a default object
! 		instance.defaultObject = initObject(arguments.descriptor);
! 	</cfscript>
! 	<cfreturn this>
! </cffunction>
! <!--- 
! 
! ACCESSORS 
! 
! --->
! <cffunction name="get" access="public" output="no" hint="The method to get a particular data instance">
! 	<cfthrow message="get() method not implemented!" detail="You must define a get() method for #getMetaData(this).name#.">
! </cffunction>
! <cffunction name="getAll" access="public" output="no" hint="The method to get all data instances of a particular type.  Should return an array of contentObjects.">
! 	<cfthrow message="getAll() method not implemented!" detail="You must defined a getAll() method for #getMetaData(this).name#.">
! </cffunction>
! <cffunction name="getAllSorted" access="package" returntype="array" output="no" hint="The method to get all data instances of a particular type sorted - this method works for the simplefilesystempersister and simpledbpersister. It should be overriden by other implementations.">
! 	<cfargument name="contentObjects" type="array" required="Yes">
! 	<cfargument name="sortFields" type="string" required="yes">
! 	<cfset var tempQuery = "">
! 	<cfset var sortQuery = "">
! 	<cfset var sortedArray = arrayNew(1)>
! 	<cfset var objectCount = arrayLen(arguments.contentObjects)>
! 	<cfset var sortFieldsArray = listToArray(arguments.sortFields)>
! 	<cfset var ii = 0>
! 	<cfset var ff = 0>
! 	<cfset var thisObject = "">
! 	<cfset var thisFieldName = "">
! 	<cfscript>
! 		//clean the sortFieldsArray, so we can have the sort order in there too
! 		for(ii = 1; ii LTE arrayLen(sortFieldsArray); ii = ii + 1){
! 			sortFieldsArray[ii] = getToken(sortFieldsArray[ii],1);
! 		}
! 		//prime the tempQuery
! 		tempQuery = queryNew("index," & arrayToList(sortFieldsArray));
! 		//if there any objects, then loop through and make them
! 		if(objectCount){
! 			//resize the query to however many objects there are
! 			queryAddRow(tempQuery,objectCount);
! 			//loop through all objects, populating the appropriate columns of the query
! 			for(ii = 1; ii LTE objectCount; ii = ii + 1){
! 				thisObject = arguments.contentObjects[ii];
! 				querySetCell(tempQuery,"index",ii,ii);
! 				//loop through whatever fields we are sorting on, adding the values of those fields to the query
! 				for(ff = 1; ff LTE arrayLen(sortFieldsArray); ff = ff + 1){
! 					thisFieldName = getToken(sortFieldsArray[ff],1);
! 					querySetCell(tempQuery,thisFieldName,lcase(thisObject[thisFieldName]),ii);
! 				}
  			}
! 		}
! 	</cfscript>
  	
! 	<!--- if there are objects to sort, query them, then build the new array --->
! 	<cfif objectCount>
! 		<!--- ok, now let's get the sortedQuery --->
! 		<cfquery name="sortQuery" dbtype="query">
! 			SELECT	*
! 			FROM	tempQuery
! 			ORDER BY #arguments.sortFields#
! 		</cfquery>	
! 		<!--- and now, we'll populate the sortedArray --->
! 		<cfscript>
! 			//resize the array, so it doesn't have to keep allocating more memory
! 			arrayResize(sortedArray,objectCount);
! 			for(ii = 1; ii LTE objectCount; ii = ii + 1){
! 				sortedArray[ii] = arguments.contentObjects[sortQuery.index[ii]];
! 			}
! 		</cfscript>	
! 	</cfif>
  	
! 	<!--- return the sorted Array --->
! 	<cfreturn sortedArray>	
! </cffunction>
! <!--- 
! 
! MUTATORS 
! 
! --->
! <cffunction name="save" access="public" output="no" hint="The method to save data">
! 	<cfthrow message="save() method not implemented!" detail="You must defined a save() method for #getMetaData(this).name#.">
! </cffunction>
! <!--- 
! 
! Simple accessors for internal use by Modus components - public but not part of the API 
! 
!  --->
! <cffunction name="getName" access="public" returntype="string" output="No" hint="get this instance name">
! 	<cfreturn instance.contentType.getName()>
! </cffunction>
! <cffunction name="getTableName" access="public" output="No" returnType="string" hint="get the name of the table associated with this content type">
! 	<cfreturn instance.tablename>
! </cffunction>
! <!--- 
! 
! PACKAGE AND PRIVATE METHODS FOR INTERNAL WORK
! 
!  --->
! <cffunction name="getNewObject" access="package" returntype="struct" output="No" hint="I construct a new contentObject.">
! 	<cfset var object = duplicate(instance.defaultObject)>
! 	<cfset var now = now()>
! 	<cfscript>	
! 		object.ID = makeID();
! 		object.dateModified = createODBCDate(now);
! 		object.dateCreated = createODBCDate(now);
! 		//Modus Lib needs to be able to find the contentType, but cfc's can't be cached so just use the component name
! 		object._modus.contentType = getMetaData(instance.contentType).name;
! 		//boolean error flag for content object
! 		object._modus.hasErrors = false;
! 		//boolean new flag
! 		object._modus.isNew = true;
! 		//boolean cache flag - used by collections to determine if the content object has changed
! 		object._modus.fromCache = false;
! 	</cfscript>
! 	<cfreturn object>
! </cffunction>
! <cffunction name="initObject" access="package" returntype="struct" output="No" hint="Create default object, initializing collections and fields.">
! 	<cfargument name="descriptor" required="Yes">
! 	<!--- Local default object to return --->
! 	<cfset var object = structNew()>
! 	<!--- "Private" container for internal reference --->
! 	<cfset object._modus = structNew()>
! 	<!--- Collections container --->
! 	<cfset object._modus.collections = structNew()>
! 	<!--- Append each collection to the default object for internal reference --->
! 	<cfset structAppend(object._modus.collections, initCollections())>
! 	<!--- Append each field to the default object --->
! 	<cfset structAppend(object, initFields())>
! 	<!--- Append each collection to the default object for external reference (new objects have empty collections) --->
! 	<cfset structAppend(object, object._modus.collections)>
! 	<cfreturn object>
! </cffunction>
! <cffunction name="initCollections" access="package" returntype="struct" output="No" hint="Initialize collections. For the default implementation return an empty struct.">
! 	<cfreturn structNew()>
! </cffunction>
! <cffunction name="initFields" access="package" returntype="struct" output="No" hint="Set up fields and populate default object with default values.">
! 	<!--- Local struct to hold fields --->
! 	<cfset var object = structNew()>
! 	<cfscript>
! 		//loop over each field
! 		for(field in instance.fields){
! 			//set each field in the default object to a default value
! 			object[field] = instance.fields[field].defaultValue;
! 		}
! 	</cfscript>
! 	<cfreturn object>
! </cffunction>
! <cffunction name="makeID" access="package" output="no" returnType="uuid" hint="The mechanism to make a new id.  Used in the init() and can be overridden in specific object types to have a different kind of default id">
! 	<cfreturn createUUID()>
! </cffunction>
! <cffunction name="wddxToContentObject" access="package" output="no" returnType="struct" hint="takes a WDDX packet and returns a contentObject">
! 	<!--- the packet --->
! 	<cfargument name="packet" required="yes">
! 	<cfset var deserializedObject = "">
! 	<!--- deserialize the object packet --->
! 	<cftry>
! 		<cfwddx action="wddx2cfml" input="#arguments.packet#" output="deserializedObject">
! 		<cfcatch>
! 			<cfthrow type="modus.corruptObject" message="object could not be deserialized" detail="The contentObject storage packet appears to be corrupt and could not be deserialized in #getMetaData(this).name#">
! 		</cfcatch>
! 	</cftry>	
! 	<cfreturn deserializedObject>
! </cffunction>	
! <cffunction name="contentObjectToWDDX" access="package" output="No" hint="Transform a content object into a wddx packet">
! 	<cfargument name="contentObject" type="struct" required="Yes">
! 	<cfset arguments.contentObject._modus.isNew = false>
! 	<cfset arguments.contentObject.dateModified = now()>
! 	<!--- serialize the contentObject struct --->
! 	<cfwddx action="cfml2wddx" input="#arguments.contentObject#" output="packet">
! 	<cfreturn packet>
! </cffunction>
! <cffunction name="getUtil" access="package" output="No">
! 	<cfreturn instance.util>
! </cffunction>
! </cfcomponent> 
! 
! <!--- 		
! 
! ************
! ORIGINAL CODE - may still be useful
! ************
  
  	<!--- a package function to determine if an object passed is, indeed, a baseContentObject --->
  	<cffunction name="isContentObject"  access="package" returnType="boolean" output="no" hint="determines if something is a content object">
***************
*** 154,176 ****
  		<cfreturn packet>
  	</cffunction>
! 	<!--- go from WDDX back to a contentObject --->
! 	<cffunction name="wddxToContentObject" access="package" output="no" returnType="org.bacfug.modus.baseContentObject" hint="takes a WDDX packet and returns a contentObject (loaded or created)">
! 		<!--- the packet --->
! 		<cfargument name="packet" required="yes">
! 		<cfset var deserializedObject = "">
! 		<!--- deserialize the object packet --->
! 		<cftry>
! 			<cfwddx action="wddx2cfml" input="#arguments.packet#" output="deserializedObject">
! 			<cfcatch>
! 				<cfthrow type="modus.corruptObject" message="object could not be deserialized" detail="The contentObject storage packet appears to be corrupt and could not be deserialized in #getMetaData(this).name#">
! 			</cfcatch>
! 		</cftry>	
! 		
! 		<cfif structCount(arguments) GT 1>
! 			<cfreturn contentObjectFromSerializable(deserializedObject,arguments[2])>
! 		<cfelse>
! 			<cfreturn contentObjectFromSerializable(deserializedObject)>
! 		</cfif>
! 	</cffunction>	
! </cfcomponent> 
! 
--- 319,321 ----
  		<cfreturn packet>
  	</cffunction>
! 	 --->
 | 
Update of /cvsroot/modus/org/bacfug/modus/fields
In directory sc8-pr-cvs1:/tmp/cvs-serv5475/fields
Modified Files:
	basefield.cfc basefile.cfc hidden.cfc longtext.cfc text.cfc 
	webimage.cfc yesno.cfc 
Log Message:
Whoops, these were the old files - pardon my CVS skills. The new files are now there.
Index: basefield.cfc
===================================================================
RCS file: /cvsroot/modus/org/bacfug/modus/fields/basefield.cfc,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** basefield.cfc	3 Oct 2002 05:42:22 -0000	1.7
--- basefield.cfc	9 Jan 2003 01:53:39 -0000	1.8
***************
*** 2,115 ****
  	<cfparam name="instance" default="#structNew()#">
  	<cffunction name="init" access="public" output="no" returnType="org.bacfug.modus.fields.baseField" hint="initialize this instance, creating the instance variables">
- 		<cfargument name="defaultValue" required="no" default="">
  		<cfscript>
- 			//the label is blank by default
- 			instance.label = "";
- 			//instance to hold the error
- 			instance.errors = arrayNew(1);
- 			//instane rules
- 			instance.rules = "";
- 			//instance metaData
- 			instance.metaData = getMetaData(this);
- 			//the name is whatever the name in the meta data is
- 			instance.name = instance.metaData.name;
- 			//the default value
- 			instance.defaultValue = arguments.defaultValue;
- 			//the value is blank by default
- 			setValue(instance.defaultValue);
  			//if necessary, create a form field factory
! 			if(NOT isDefined("server.modus.formFieldFactory")){
! 				server.modus.formFieldFactory = createObject("component","org.bacfug.modus.form.formFieldFactory").init();
  			}
  			//set the form field factory to this instance
! 			//instance.formFieldFactory = server.modus.formFieldFactory;
! 			instance.formFieldFactory = createObject("component","org.bacfug.modus.form.formFieldFactory").init();
  		</cfscript>	
  		<cfreturn this>
  	</cffunction>
! 
! 	<!--- a way to set the label --->
! 	<cffunction name="setLabel" access="public" output="no" returnType="void" hint="sets the value of the label">
! 		<cfargument name="label" required="yes">
! 		<cfset instance.label = arguments.label>
! 	</cffunction>
! 	<!--- a way to get the label --->
! 	<cffunction name="getLabel" access="public" output="no" returnType="string" hint="get the value of the label">
! 		<cfreturn instance.label>
! 	</cffunction>
! 	<!--- a method for setting the value --->
! 	<cffunction name="setValue" access="public" output="no" returnType="void" hint="sets the value of the instance value -- also validates internally to set the error state">
  		<cfargument name="value" required="yes">
! 		<cfscript>
! 			instance.value = arguments.value;
! 			validate();
! 		</cfscript>
! 	</cffunction>
! 	<!--- a method to get the type of CFC --->
! 	<cffunction name="getType" access="public" output="no" returnType="string" hint="get the type of field (based on the name key in the metaData">
! 		<cfreturn instance.metaData["NAME"]>
! 	</cffunction>
! 	<!--- a method to get the value --->
! 	<cffunction name="getValue" access="public" output="no" returnType="any" hint="get whatever the value of this instance is">
! 		<cfreturn instance.value>
! 	</cffunction>
! 	<!--- a method to get the name --->
! 	<cffunction name="getName" access="public" output="no" returnType="string" hint="get the name assigned to this instance">
! 		<cfreturn instance.name>
  	</cffunction>
  	<!--- to render it by default, just spit it out --->
! 	<cffunction name="toHTML" access="public" output="no" returnType="string" hint="renders the value to HTML.">
! 		<cfreturn toString(instance.value)>
  	</cffunction>
  	<!--- render a form field --->
  	<cffunction name="toFormField" access="public" output="no" returnType="string" hint="returns a simple text form widget.  Typically overridden in any implementation of a field">
! 		<cfreturn instance.formFieldFactory.makeText(getName(),getValue())>
! 	</cffunction>
! 	<!--- a method the package can use to set the attributes of this field with a short-hand --->
! 	<cffunction name="setAttributes" access="public" returnType="void" output="no" hint="a convenience method.  given a struct, sets private data members (instance variables) to the value in the struct, overriding any existing values.">
! 		<cfargument name="attributesToAdd" required="yes" type="struct" output="no">
! 		<!--- an iterator --->
! 		<cfset structAppend(instance,attributesToAdd,true)>
! 	</cffunction>
! 	<!--- a method to validate --->
! 	<cffunction name="validate" access="package" output="no" returnType="void" hint="runs through any rules and sets the error state and adds any error messages necessary">
! 		<cfset var ruleArray = listToArray(instance.rules)>
! 		<cfset var ii = 1>
! 		<cfset var ruleToRun = "">
! 		<cfscript>
! 			for(ii = 1; ii LTE arrayLen(ruleArray); ii = ii + 1){
! 				ruleToRun = createObject("component",ruleArray[ii]).init();
! 				//if it's not OK, add an error
! 				if(NOT ruleToRun.isOK(instance.value)){
! 					addError(newError(ruleArray[ii],ruleToRun.errorMessage(getLabel(),getValue())));
! 				}
! 			}
! 		</cfscript>
! 	</cffunction>
! 	<!--- a method to get the errors --->
! 	<cffunction name="getErrors" access="public" returntype="array" output="no" hint="returns an array of fieldError objects">
! 		<cfreturn instance.errors>
! 	</cffunction>
! 	<!--- a method to return a boolean to know if there are any errors --->
! 	<cffunction name="hasErrors" access="public" returnType="boolean" output="no" hint="returns a boolean value for whether any errors exist for this instance">
! 		<cfreturn yesNoFormat(arrayLen(getErrors()))>
! 	</cffunction>
! 	<!--- a method to add an error --->
! 	<cffunction name="addError" access="package" output="no" hint="internal method to add an error to this instance">
! 		<cfargument name="error" required="yes" type="org.bacfug.modus.errors.fieldError">
! 		<cfscript>
! 			arrayAppend(instance.errors,arguments.error);
! 		</cfscript>
! 	</cffunction>
! 	<!--- a method to create an error --->
! 	<cffunction name="newError" access="package" output="no" returnType="org.bacfug.modus.errors.fieldError" hint="generates an error object, used primarily inside of addError()">
! 		<cfargument name="type" required="no" default="modus.field">
! 		<cfargument name="message" required="no" default="A general error occurred in #instance.name#">
! 		<cfargument name="detail" required="no" default="#arguments.message#">
! 		<cfset var error = createObject("component","org.bacfug.modus.errors.fieldError")>
! 		<cfscript>
! 			error.init(arguments.message,arguments.type,arguments.detail);
! 		</cfscript>
! 		<cfreturn error>
  	</cffunction>
  </cfcomponent>
--- 2,30 ----
  	<cfparam name="instance" default="#structNew()#">
  	<cffunction name="init" access="public" output="no" returnType="org.bacfug.modus.fields.baseField" hint="initialize this instance, creating the instance variables">
  		<cfscript>
  			//if necessary, create a form field factory
! 			if(NOT isDefined("server._modus.core.formFieldFactory")){
! 				server._modus.core.formFieldFactory = createObject("component","org.bacfug.modus.rendering.form.formFieldFactory").init();
  			}
  			//set the form field factory to this instance
! 			instance.formFieldFactory = server._modus.core.formFieldFactory;
  		</cfscript>	
  		<cfreturn this>
  	</cffunction>
! 	<cffunction name="setValue" access="public" output="no" returnType="string" hint="default implementation returns the value sent. Children may override this method for more complicated form fields, e.g.:file uploads">
  		<cfargument name="value" required="yes">
! 		<cfreturn arguments.value>
  	</cffunction>
  	<!--- to render it by default, just spit it out --->
! 	<cffunction name="renderField" access="public" output="no" returnType="string" hint="renders the value to a simple string.">
! 		<cfargument name="name" type="string" required="Yes">
! 		<cfargument name="value" required="Yes">
! 		<cfreturn toString(arguments.value)>
  	</cffunction>
  	<!--- render a form field --->
  	<cffunction name="toFormField" access="public" output="no" returnType="string" hint="returns a simple text form widget.  Typically overridden in any implementation of a field">
! 		<cfargument name="name" type="string" required="Yes">
! 		<cfargument name="value" required="Yes">
! 		<cfreturn instance.formFieldFactory.makeText(arguments.name,arguments.value)>
  	</cffunction>
  </cfcomponent>
Index: basefile.cfc
===================================================================
RCS file: /cvsroot/modus/org/bacfug/modus/fields/basefile.cfc,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** basefile.cfc	3 Sep 2002 23:47:37 -0000	1.4
--- basefile.cfc	9 Jan 2003 01:53:39 -0000	1.5
***************
*** 1,40 ****
! <cfcomponent extends="org.bacfug.modus.fields.baseField" displayname="baseFile" hint="The base field for a file.  Typically, this would not be used by itself, but extended by specific types of files -- that is primarily because each type of file (image, flash, doc) will want to define a different toHTML() method.">
  	
  	<cfparam name="instance.directory" default="#expandPath("/")#">
  	
! 	<!--- override the toFormField method to make a TEXTAREA --->
  	<cffunction name="toFormField" access="public" output="no" returntype="string">
! 		<cfreturn instance.formFieldFactory.makeFile(getName())>
  	</cffunction>
  	
  	<!--- a method for setting the value --->
! 	<cffunction name="setValue" access="public" output="no" returnType="void">
  		<cfargument name="value" required="yes">
  		<!--- if there is a form element with this name and it has the same value of as the arguments.value then we assume we're trying to upload the file --->
! 		<cfif structKeyExists(form,getName()) AND len(trim(form[getName()])) AND arguments.value is form[getName()]>
  			<!--- try the upload of the file --->
! 			<cffile action="upload" fileField="#getName()#" destination="#getDirectory()#" nameconflict="MAKEUNIQUE">
! 			<cfscript>
! 				//set the instance.value to the full path to the file
! 				instance.value = getDirectory() & file.serverFile;						
  				//validate the upload, if it returns false, delete the file and blank out the value
! 				if(NOT fileValidate(argumentCollection=file)){
! 					deleteFile();
  				}
  			</cfscript>		
  		<!--- if the form field is there, but it is blank and the arguments.value is the same, then just set the instance.value to whatever the value already is --->
! 		<cfelseif structKeyExists(form,getName()) AND NOT len(trim(form[getName()])) AND arguments.value is form[getName()]>
! 			<cfscript>
! 				instance.value = getValue();
! 			</cfscript>
! 		<!--- if we're not uploading the file, then the value is just the value --->
  		<cfelse>
! 			<cfscript>
! 				instance.value = arguments.value;
! 			</cfscript>	
  		</cfif>
- 		<cfscript>
- 			validate();
- 		</cfscript>
  	</cffunction>
  	
--- 1,35 ----
! <cfcomponent extends="org.bacfug.modus.fields.baseField" displayname="baseFile" hint="The base field for a file.  Typically, this would not be used by itself, but extended by specific types of files -- that is primarily because each type of file (image, flash, doc) will want to define a different renderField() method.">
  	
  	<cfparam name="instance.directory" default="#expandPath("/")#">
  	
! 	<!--- override the toFormField method to make a File Upload Field --->
  	<cffunction name="toFormField" access="public" output="no" returntype="string">
! 		<cfargument name="name" type="string" required="Yes">
! 		<cfreturn instance.formFieldFactory.makeFile(arguments.name)>
  	</cffunction>
  	
  	<!--- a method for setting the value --->
! 	<cffunction name="setValue" access="public" output="no" returnType="string">
  		<cfargument name="value" required="yes">
+ 		<cfargument name="name" type="string" required="Yes">
  		<!--- if there is a form element with this name and it has the same value of as the arguments.value then we assume we're trying to upload the file --->
! 		<cfif len(arguments.value)>
  			<!--- try the upload of the file --->
! 			<cffile action="upload" fileField="#arguments.name#" destination="C:\" nameconflict="MAKEUNIQUE">
! 			
! 			<cfscript>				
  				//validate the upload, if it returns false, delete the file and blank out the value
! 				if(NOT fileValidate(argumentCollection=cffile)){
! 					deleteFile(arguments.value);
  				}
+ 				return getDirectory() & file.serverFile;
  			</cfscript>		
  		<!--- if the form field is there, but it is blank and the arguments.value is the same, then just set the instance.value to whatever the value already is --->
! 		<cfelseif structKeyExists(form,arguments.name) AND NOT len(trim(form[arguments.name])) AND arguments.value is form[arguments.name]>
! 			<cfreturn "">
! 		<!--- if we're not uploading the file, then the value is blank --->
  		<cfelse>
! 			<cfreturn "">
  		</cfif>
  	</cffunction>
  	
***************
*** 59,65 ****
  	<!--- a method for getting the web root relative path to this file (if possible) --->
  	<cffunction name="getWebRootRelativePath" access="public" output="no" returnType="string">
  		<cfset var webRootAbsolutePath = expandPath("/")>
  		<cfset var webRootRelativePath = "">
! 		<cfset var thisPath = getValue()>
  		<cfset var webInfPath = webRootAbsolutePath & "WEB-INF">
  		<cfscript>
--- 54,61 ----
  	<!--- a method for getting the web root relative path to this file (if possible) --->
  	<cffunction name="getWebRootRelativePath" access="public" output="no" returnType="string">
+ 		<cfargument name="value" type="string" required="Yes">
  		<cfset var webRootAbsolutePath = expandPath("/")>
  		<cfset var webRootRelativePath = "">
! 		<cfset var thisPath = arguments.value>
  		<cfset var webInfPath = webRootAbsolutePath & "WEB-INF">
  		<cfscript>
***************
*** 79,86 ****
  	<!--- a method to delete the file --->
  	<cffunction name="deleteFile" access="public" output="no" returnType="void">
! 		<cfset var thisPath = getValue()>
  		<!--- if there is a path, and it exists, delete the file --->
! 		<cfif len(trim(thisPath)) AND fileExists(thisPath)>
! 			<cffile action="delete" file="#getValue()#">
  		</cfif>
  		<cfscript>
--- 75,82 ----
  	<!--- a method to delete the file --->
  	<cffunction name="deleteFile" access="public" output="no" returnType="void">
! 		<cfargument name="value" type="string" required="Yes">
  		<!--- if there is a path, and it exists, delete the file --->
! 		<cfif len(trim(arguments.value)) AND fileExists(arguments.value)>
! 			<cffile action="delete" file="#arguments.value#">
  		</cfif>
  		<cfscript>
***************
*** 89,93 ****
  		</cfscript>
  	</cffunction>
! 	<cffunction name="toHTML" access="public" output="no">
  		<cfreturn "BBBB" & toString(instance.value)>
  	</cffunction>	
--- 85,89 ----
  		</cfscript>
  	</cffunction>
! 	<cffunction name="renderField" access="public" output="no">
  		<cfreturn "BBBB" & toString(instance.value)>
  	</cffunction>	
Index: hidden.cfc
===================================================================
RCS file: /cvsroot/modus/org/bacfug/modus/fields/hidden.cfc,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** hidden.cfc	24 Oct 2002 00:56:47 -0000	1.1
--- hidden.cfc	9 Jan 2003 01:53:39 -0000	1.2
***************
*** 2,6 ****
  	<!--- override the toFormField method to make a hidden field --->
  	<cffunction name="toFormField" access="public" output="no" hint="returns a simple hidden form widget" returnType="string">
! 		<cfreturn instance.formFieldFactory.makeHidden(getName(),getValue())>
  	</cffunction>
  </cfcomponent> 
--- 2,8 ----
  	<!--- override the toFormField method to make a hidden field --->
  	<cffunction name="toFormField" access="public" output="no" hint="returns a simple hidden form widget" returnType="string">
! 		<cfargument name="name" type="string" required="Yes">
! 		<cfargument name="value" required="Yes">
! 		<cfreturn instance.formFieldFactory.makeHidden(arguments.name,arguments.value)>
  	</cffunction>
  </cfcomponent> 
Index: longtext.cfc
===================================================================
RCS file: /cvsroot/modus/org/bacfug/modus/fields/longtext.cfc,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** longtext.cfc	3 Sep 2002 22:29:05 -0000	1.3
--- longtext.cfc	9 Jan 2003 01:53:39 -0000	1.4
***************
*** 3,7 ****
  	<!--- override the toFormField method to make a TEXTAREA --->
  	<cffunction name="toFormField" access="public" output="no" returnType="string" hint="returns a textarea form widget">
! 		<cfreturn instance.formFieldFactory.makeTextArea(getName(),getValue())>
  	</cffunction>
  </cfcomponent> 
--- 3,9 ----
  	<!--- override the toFormField method to make a TEXTAREA --->
  	<cffunction name="toFormField" access="public" output="no" returnType="string" hint="returns a textarea form widget">
! 		<cfargument name="name" type="string" required="Yes">
! 		<cfargument name="value" required="Yes">
! 		<cfreturn instance.formFieldFactory.makeTextArea(arguments.name,arguments.value)>
  	</cffunction>
  </cfcomponent> 
Index: text.cfc
===================================================================
RCS file: /cvsroot/modus/org/bacfug/modus/fields/text.cfc,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** text.cfc	3 Sep 2002 22:29:05 -0000	1.3
--- text.cfc	9 Jan 2003 01:53:39 -0000	1.4
***************
*** 2,6 ****
  	<!--- override the toFormField method to make a TEXTAREA --->
  	<cffunction name="toFormField" access="public" output="no" hint="returns a simple text form widget" returnType="string">
! 		<cfreturn instance.formFieldFactory.makeText(getName(),getValue())>
  	</cffunction>
  </cfcomponent> 
--- 2,8 ----
  	<!--- override the toFormField method to make a TEXTAREA --->
  	<cffunction name="toFormField" access="public" output="no" hint="returns a simple text form widget" returnType="string">
! 		<cfargument name="name" type="string" required="Yes">
! 		<cfargument name="value" required="Yes">
! 		<cfreturn instance.formFieldFactory.makeText(arguments.name,arguments.value)>
  	</cffunction>
  </cfcomponent> 
Index: webimage.cfc
===================================================================
RCS file: /cvsroot/modus/org/bacfug/modus/fields/webimage.cfc,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** webimage.cfc	3 Sep 2002 00:33:20 -0000	1.2
--- webimage.cfc	9 Jan 2003 01:53:39 -0000	1.3
***************
*** 1,6 ****
  <cfcomponent extends="org.bacfug.modus.fields.baseFile" displayname="webImage" hint="The field for a web image">
! 	<!--- toHTML() should show an image tag if we can get a web root relative path --->
! 	<cffunction name="toHTML" access="public" output="no" returnType="string" hint="Draws an IMG tag if a web root relative path can be determined">
! 		<cfset var imgPath = getWebRootRelativePath()>
  		<cfif len(trim(imgPath))>
  			<cfreturn "<img src=""" & imgPath & """ border=""0"">">
--- 1,8 ----
  <cfcomponent extends="org.bacfug.modus.fields.baseFile" displayname="webImage" hint="The field for a web image">
! 	<!--- renderField() should show an image tag if we can get a web root relative path --->
! 	<cffunction name="renderField" access="public" output="no" returnType="string" hint="Draws an IMG tag if a web root relative path can be determined">
! 		<cfargument name="name" type="string">
! 		<cfargument name="value" type="string" required="Yes"> 
! 		<cfset var imgPath = getWebRootRelativePath(arguments.value)>
  		<cfif len(trim(imgPath))>
  			<cfreturn "<img src=""" & imgPath & """ border=""0"">">
Index: yesno.cfc
===================================================================
RCS file: /cvsroot/modus/org/bacfug/modus/fields/yesno.cfc,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** yesno.cfc	3 Sep 2002 22:29:05 -0000	1.5
--- yesno.cfc	9 Jan 2003 01:53:39 -0000	1.6
***************
*** 2,10 ****
  	<!--- override the toFormField method to make a TEXTAREA --->
  	<cffunction name="toFormField" access="public" output="no" returnType="string" hint="Renders two radio buttons with values ""yes"" and ""no""">
! 		<cfreturn 	instance.formFieldFactory.makeRadio(getName(),"yes",getValue())
  					&
  					" Yes"
  					&
! 					instance.formFieldFactory.makeRadio(getName(),"no",getValue())
  					&
  					" No">	
--- 2,12 ----
  	<!--- override the toFormField method to make a TEXTAREA --->
  	<cffunction name="toFormField" access="public" output="no" returnType="string" hint="Renders two radio buttons with values ""yes"" and ""no""">
! 		<cfargument name="name" type="string" required="Yes">
! 		<cfargument name="value" required="Yes">
! 		<cfreturn 	instance.formFieldFactory.makeRadio(arguments.name,1,arguments.value)
  					&
  					" Yes"
  					&
! 					instance.formFieldFactory.makeRadio(arguments.name,0,arguments.value)
  					&
  					" No">	
 | 
| 
     
      
      
      From: <jfi...@us...> - 2003-01-09 01:53:42
      
     
   | 
Update of /cvsroot/modus/org/bacfug/modus/caching In directory sc8-pr-cvs1:/tmp/cvs-serv5475/caching Modified Files: basecache.cfc serverscopecache.cfc Log Message: Whoops, these were the old files - pardon my CVS skills. The new files are now there. Index: basecache.cfc =================================================================== RCS file: /cvsroot/modus/org/bacfug/modus/caching/basecache.cfc,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** basecache.cfc 29 Oct 2002 00:04:58 -0000 1.2 --- basecache.cfc 9 Jan 2003 01:53:39 -0000 1.3 *************** *** 8,31 **** <cfreturn this> </cffunction> ! <!--- is the cache primed ---> ! <cffunction name="isCacheInitialized" access="package" output="no" returnType="boolean" hint="Returns a boolean for whether the cache is initialized"> <cfthrow message="isCacheInitialized() not implemented in #getMetaData(this).name#"> </cffunction> - <!--- initialize the cache ---> <cffunction name="cacheInit" access="package" output="no" returnType="void" hint="Initializes the cache"> <cfthrow message="cacheInit() not implemented in #getMetaData(this).name#"> </cffunction> ! <!--- is a particular object instance in the cache? ---> ! <cffunction name="isObjectCached" access="package" output="no" returnType="boolean" hint="Returns a boolean for whether a particular object (Based on ID) is cached"> <cfthrow message="isObjectCached not implemented in #getMetaData(this).name#"> </cffunction> ! ! <!--- put an object in the cache ---> ! <cffunction name="putObject" access="package" output="no" returnType="void" hint="Put a contentObject instance into the cache"> <cfthrow message="putObject not implemented in #getMetaData(this).name#"> </cffunction> ! ! <!--- get an object from the cache ---> ! <cffunction name="getObject" access="package" output="no" returnType="org.bacfug.modus.baseContentObject" hint="get an object instance from the cache"> <cfthrow message="getObject not implemented in #getMetaData(this).name#"> </cffunction> --- 8,24 ---- <cfreturn this> </cffunction> ! <cffunction name="isCacheInitialized" access="public" output="no" returnType="boolean" hint="Returns a boolean for whether the cache is initialized"> <cfthrow message="isCacheInitialized() not implemented in #getMetaData(this).name#"> </cffunction> <cffunction name="cacheInit" access="package" output="no" returnType="void" hint="Initializes the cache"> <cfthrow message="cacheInit() not implemented in #getMetaData(this).name#"> </cffunction> ! <cffunction name="isObjectCached" access="public" output="no" returnType="boolean" hint="Returns a boolean for whether a particular object (Based on ID) is cached"> <cfthrow message="isObjectCached not implemented in #getMetaData(this).name#"> </cffunction> ! <cffunction name="putObject" access="public" output="no" returnType="void" hint="Put a contentObject instance into the cache"> <cfthrow message="putObject not implemented in #getMetaData(this).name#"> </cffunction> ! <cffunction name="getObject" access="public" output="no" returnType="org.bacfug.modus.baseContentObject" hint="get an object instance from the cache"> <cfthrow message="getObject not implemented in #getMetaData(this).name#"> </cffunction> Index: serverscopecache.cfc =================================================================== RCS file: /cvsroot/modus/org/bacfug/modus/caching/serverscopecache.cfc,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** serverscopecache.cfc 18 Nov 2002 20:29:16 -0000 1.2 --- serverscopecache.cfc 9 Jan 2003 01:53:39 -0000 1.3 *************** *** 1,42 **** <cfcomponent hint="Uses the server scope for caching" extends="org.bacfug.modus.caching.baseCache"> - <!--- is the cache primed ---> - <cffunction name="isCacheInitialized" access="public" output="no" returnType="boolean" hint="Returns a boolean for whether the cache is initialized"> - <cfreturn structKeyExists(server,"modus") AND structKeyExists(server.modus,"contentObjectCache") AND structKeyExists(server.modus.contentObjectCache,"objectInstances")> - </cffunction> - <!--- initialize the cache ---> - <cffunction name="cacheInit" access="public" output="no" returnType="void" hint="Initializes the in-memory cache"> - <cfparam name="server.modus" default="#structNew()#"> - <cfparam name="server.modus.contentObjectCache" default="#structNew()#"> - <cfparam name="server.modus.contentObjectCache.objectInstances" default="#structNew()#"> - <cfparam name="server.modus.contentObjectCache.objectTypes" default="#structNew()#"> - - <!--- <cfscript> - server.modus.contentObjectCache = structNew(); - server.modus.contentObjectCache.objectInstances = structNew(); - server.modus.contentObjectCache.objectTypes = structNew(); - </cfscript> ---> - </cffunction> ! <!--- is a particular object instance in the cache? ---> ! <cffunction name="isObjectCached" access="public" output="no" returnType="boolean" hint="Returns a boolean for whether a particular object (Based on ID) is cached"> ! <cfargument name="id" required="yes" type="string"> ! <cfreturn structKeyExists(server.modus.contentObjectCache.objectInstances,arguments.id)> ! </cffunction> ! ! <!--- put an object in the cache ---> ! <cffunction name="putObject" access="public" output="no" returnType="void" hint="Put a contentObject instance into the cache"> ! <cfargument name="contentObject" required="yes" type="org.bacfug.modus.baseContentObject"> <cfscript> ! server.modus.contentObjectCache.objectInstances[arguments.contentObject.getID()] = arguments.contentObject.makeClone(); ! </cfscript> ! </cffunction> ! ! <!--- get an object from the cache ---> ! <cffunction name="getObject" access="public" output="no" returnType="org.bacfug.modus.baseContentObject" hint="get an object instance from the cache"> ! <cfargument name="id" required="yes" type="string"> ! <cfif NOT isObjectCached(arguments.id)> ! <cfthrow type="modus.badCacheRequest" message="Object does not exist in the cache" detail="The contentObject with ID ""#arguments.id#"" does not exist in the cache. You may not request an object that is not cached."> ! </cfif> ! <cfreturn server.modus.contentObjectCache.objectInstances[arguments.id]> ! </cffunction> </cfcomponent> --- 1,103 ---- <cfcomponent hint="Uses the server scope for caching" extends="org.bacfug.modus.caching.baseCache"> ! <cffunction name="cacheInit" access="public" output="no" returnType="void" hint="Initializes the in-memory cache"> ! <cflock scope="SERVER" timeout="10" type="EXCLUSIVE"> ! <cfparam name="server._modus" default="#structNew()#"> <cfscript> ! server._modus.core.cache.objectInstances = structNew(); ! server._modus.core.cache.objectTypes = structNew(); ! server._modus.core.cache.collections = structNew(); ! </cfscript> ! </cflock> ! </cffunction> ! <cffunction name="isCacheInitialized" access="public" output="no" returnType="boolean" hint="Returns a boolean for whether the cache is initialized"> ! <cflock scope="SERVER" timeout="10" type="READONLY"> ! <cfreturn structKeyExists(server,"modus") AND structKeyExists(server._modus,"contentObjectCache") AND structKeyExists(server._modus.core.cache,"objectInstances")> ! </cflock> ! </cffunction> ! <cffunction name="isObjectCached" access="public" output="no" returnType="boolean" hint="Returns a boolean for whether a particular object (Based on ID) is cached"> ! <cfargument name="id" required="yes" type="string"> ! <cfargument name="type" required="Yes" type="string"> ! <cflock scope="SERVER" timeout="10" type="READONLY"> ! <cfreturn structKeyExists(server._modus.core.cache.objectInstances,arguments.type & arguments.id)> ! </cflock> ! </cffunction> ! <cffunction name="getObject" access="public" output="no" returnType="struct" hint="get an object instance from the cache"> ! <cfargument name="id" required="yes" type="string"> ! <cfargument name="type" required="Yes" type="string"> ! <cfif NOT isObjectCached(arguments.id, arguments.type)> ! <cfthrow type="modus.badCacheRequest" message="Object does not exist in the cache" detail="The contentObject with ID ""#arguments.id#"" does not exist in the cache. You may not request an object that is not cached."> ! </cfif> ! <cflock scope="SERVER" timeout="10" type="READONLY"> ! <cfreturn duplicate(server._modus.core.cache.objectInstances[arguments.type & arguments.id])> ! </cflock> ! </cffunction> ! <cffunction name="getObjectRef" access="public" output="no" returnType="struct" hint="get a reference to an object instance in the cache"> ! <cfargument name="id" required="yes" type="string"> ! <cfargument name="type" required="Yes" type="string"> ! <cfif NOT isObjectCached(arguments.id, arguments.type)> ! <cfthrow type="modus.badCacheRequest" message="Object does not exist in the cache" detail="The contentObject with ID ""#arguments.id#"" does not exist in the cache. You may not request an object that is not cached."> ! </cfif> ! <cflock scope="SERVER" timeout="10" type="READONLY"> ! <cfreturn server._modus.core.cache.objectInstances[arguments.type & arguments.id]> ! </cflock> ! </cffunction> ! <cffunction name="putObject" access="public" output="no" returnType="void" hint="Put a contentObject instance into the cache"> ! <cfargument name="contentObject" required="yes" type="struct"> ! <cfargument name="type" required="Yes" type="string"> ! <cflock scope="SERVER" timeout="10" type="EXCLUSIVE"> ! <cfscript> ! server._modus.core.cache.objectInstances[arguments.type & arguments.contentObject.id] = duplicate(arguments.contentObject); ! </cfscript> ! </cflock> ! </cffunction> ! <cffunction name="flushObject" access="public" output="no" returnType="void" hint="remove an object instance from the cache"> ! <cfargument name="id" required="yes" type="string"> ! <cfargument name="type" type="string" required="Yes"> ! <!--- Clear object from cache - no need to check if it exists with structClear function ---> ! <cfset structDelete(server._modus.core.cache.objectInstances,arguments.type & arguments.id)> ! </cffunction> ! <cffunction name="isCollectionCached" access="public" output="no" returnType="boolean" hint="Returns a boolean for whether a particular collection (Based on ID) is cached"> ! <cfargument name="id" required="yes" type="string"> ! <cfargument name="type" type="string" required="Yes"> ! <cflock scope="SERVER" timeout="10" type="READONLY"> ! <cfreturn structKeyExists(server._modus.core.cache.collections, arguments.type & arguments.id)> ! </cflock> ! </cffunction> ! <cffunction name="getCollection" access="public" returntype="array" output="no" hint="get a collection of collections instance from the cache"> ! <cfargument name="id" type="string" required="yes"> ! <cfargument name="type" type="string" required="Yes"> ! <cfif NOT isCollectionCached(arguments.id, arguments.type)> ! <cfthrow type="modus.badCacheRequest" message="Collection does not exist in the cache" detail="The collection with ID ""#arguments.id#"" does not exist in the cache. You may not request a collection that is not cached."> ! </cfif> ! <cflock scope="SERVER" timeout="10" type="READONLY"> ! <cfreturn duplicate(server._modus.core.cache.collections[arguments.type & arguments.id])> ! </cflock> ! </cffunction> ! <cffunction name="getCollectionRef" access="public" output="no" returnType="array" hint="get a reference to a collection instance in the cache"> ! <cfargument name="id" required="yes" type="string"> ! <cfargument name="type" type="string" required="Yes"> ! <cfif NOT isCollectionCached(arguments.id, arguments.type)> ! <cfthrow type="modus.badCacheRequest" message="Collection does not exist in the cache" detail="The contentCollection with ID ""#arguments.id#"" does not exist in the cache. You may not request an collection that is not cached."> ! </cfif> ! <cflock scope="SERVER" timeout="10" type="READONLY"> ! <cfreturn server._modus.core.cache.collections[arguments.type & arguments.id]> ! </cflock> ! </cffunction> ! <cffunction name="putCollection" access="public" output="no" returnType="void" hint="Put a collection of collections instance into the cache"> ! <cfargument name="id" type="string" required="Yes"> ! <cfargument name="collection" type="array" required="yes"> ! <cfargument name="type" type="string" required="Yes"> ! <cflock scope="SERVER" timeout="10" type="EXCLUSIVE"> ! <cfscript> ! server._modus.core.cache.collections[arguments.type & arguments.id] = duplicate(arguments.collection); ! </cfscript> ! </cflock> ! </cffunction> ! <cffunction name="flushCollection" access="public" output="no" returnType="void" hint="remove a collection from the cache"> ! <cfargument name="id" required="yes" type="string"> ! <cfargument name="type" type="string" required="Yes"> ! <!--- Clear object from cache - no need to check if it exists with structClear function ---> ! <cfset structDelete(server._modus.core.cache.collections,arguments.type & arguments.id)> ! </cffunction> </cfcomponent>  | 
| 
     
      
      
      From: <jfi...@us...> - 2003-01-09 01:51:45
      
     
   | 
Update of /cvsroot/modus/org/bacfug/sampleapps/pressrelease In directory sc8-pr-cvs1:/tmp/cvs-serv5190 Modified Files: specialrelease.cfc Log Message: Fixed xml descriptor variable name Index: specialrelease.cfc =================================================================== RCS file: /cvsroot/modus/org/bacfug/sampleapps/pressrelease/specialrelease.cfc,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** specialrelease.cfc 8 Jan 2003 16:14:37 -0000 1.1.1.1 --- specialrelease.cfc 9 Jan 2003 01:51:42 -0000 1.2 *************** *** 1,4 **** ! <cfcomponent extends="sampleapps.pressrelease.contenttypes.pressrelease"> ! <cfxml variable="sampleapps.pressrelease.contenttypes.specialrelease"> <contentType tablename="specialrelease" label="Press Release" labelPlural="Press Releases"> <fields> --- 1,4 ---- ! <cfcomponent extends="org.bacfug.sampleapps.pressrelease.pressrelease"> ! <cfxml variable="#getMetaData(this).name#"> <contentType tablename="specialrelease" label="Press Release" labelPlural="Press Releases"> <fields>  | 
| 
     
      
      
      From: <jfi...@us...> - 2003-01-09 01:50:42
      
     
   | 
Update of /cvsroot/modus/sampleapps/pressrelease
In directory sc8-pr-cvs1:/tmp/cvs-serv5060
Modified Files:
	index.cfm modus_settings.cfm 
Log Message:
content types had the wrong path - now set to org.bacfug.sampleapps
Index: index.cfm
===================================================================
RCS file: /cvsroot/modus/sampleapps/pressrelease/index.cfm,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** index.cfm	8 Jan 2003 16:09:21 -0000	1.1.1.1
--- index.cfm	9 Jan 2003 01:50:39 -0000	1.2
***************
*** 5,12 ****
  		if(form.isNew){
  			//Load a new pressrelease
! 			pr = server.modus.get("sampleapps.pressrelease.contenttypes.pressrelease");
  		}else{
  			//Load an existing pressrelease
! 			pr = server.modus.get("sampleapps.pressrelease.contenttypes.pressrelease",form.id);
  		}
  		// persist the changes - this calls the contentobject which will validate as required by the descriptor
--- 5,12 ----
  		if(form.isNew){
  			//Load a new pressrelease
! 			pr = server.modus.get("org.bacfug.sampleapps.pressrelease.pressrelease");
  		}else{
  			//Load an existing pressrelease
! 			pr = server.modus.get("org.bacfug.sampleapps.pressrelease.pressrelease",form.id);
  		}
  		// persist the changes - this calls the contentobject which will validate as required by the descriptor
***************
*** 15,30 ****
  		if(NOT server.modus.hasErrors(pr)){
  			//reinitialize it
! 			pr = server.modus.get("sampleapps.pressrelease.contenttypes.pressrelease");
  		}
  	}
  	//all releases
! 	all = server.modus.getAll("sampleapps.pressrelease.contenttypes.pressrelease", "featured desc,title");
  	
  	//if a URL id exists
  	if(isDefined("url.id")){
! 		pr = server.modus.get("sampleapps.pressrelease.contenttypes.pressrelease",url.id);		
  	//otherwise, server.modus.get a new pressrelease if one does not exist
  	}else if(NOT isDefined('pr')){
! 		pr = server.modus.get("sampleapps.pressrelease.contenttypes.pressrelease");
  	}
  	//get all the errors
--- 15,30 ----
  		if(NOT server.modus.hasErrors(pr)){
  			//reinitialize it
! 			pr = server.modus.get("org.bacfug.sampleapps.pressrelease.pressrelease");
  		}
  	}
  	//all releases
! 	all = server.modus.getAll("org.bacfug.sampleapps.pressrelease.pressrelease", "featured desc,title");
  	
  	//if a URL id exists
  	if(isDefined("url.id")){
! 		pr = server.modus.get("org.bacfug.sampleapps.pressrelease.pressrelease",url.id);		
  	//otherwise, server.modus.get a new pressrelease if one does not exist
  	}else if(NOT isDefined('pr')){
! 		pr = server.modus.get("org.bacfug.sampleapps.pressrelease.pressrelease");
  	}
  	//get all the errors
Index: modus_settings.cfm
===================================================================
RCS file: /cvsroot/modus/sampleapps/pressrelease/modus_settings.cfm,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** modus_settings.cfm	8 Jan 2003 16:09:21 -0000	1.1.1.1
--- modus_settings.cfm	9 Jan 2003 01:50:39 -0000	1.2
***************
*** 9,14 ****
  	<!--- Content type descriptors --->
  		<contentTypes>
! 			<contentType name="sampleapps.pressrelease.contenttypes.pressrelease"/>
! 			<contentType name="sampleapps.pressrelease.contenttypes.specialrelease"/>
  		</contentTypes>
  	</modus>
--- 9,14 ----
  	<!--- Content type descriptors --->
  		<contentTypes>
! 			<contentType name="org.bacfug.sampleapps.pressrelease.pressrelease"/>
! 			<contentType name="org.bacfug.sampleapps.pressrelease.specialrelease"/>
  		</contentTypes>
  	</modus>
 | 
| 
     
      
      
      From: <jfi...@us...> - 2003-01-08 16:53:18
      
     
   | 
Update of /cvsroot/modus/sampleapps/db In directory sc8-pr-cvs1:/tmp/cvs-serv4636 Added Files: modus_Data.MDF Log Message: The SQL Server db. --- NEW FILE: modus_Data.MDF --- (This appears to be a binary file; contents omitted.)  | 
| 
     
      
      
      From: <jfi...@us...> - 2003-01-08 16:51:33
      
     
   | 
Update of /cvsroot/modus/sampleapps/db In directory sc8-pr-cvs1:/tmp/cvs-serv3888/db Log Message: Directory /cvsroot/modus/sampleapps/db added to the repository  | 
| 
     
      
      
      From: <jfi...@us...> - 2003-01-08 16:37:43
      
     
   | 
Update of /cvsroot/modus/sampleapps In directory sc8-pr-cvs1:/tmp/cvs-serv31352 Removed Files: Modus.apf Log Message: Don't need my Homesite+ project definition file. --- Modus.apf DELETED ---  | 
Update of /cvsroot/modus/org/bacfug/modus/validation In directory sc8-pr-cvs1:/tmp/cvs-serv30859 Removed Files: baserule.cfc boolean.cfc date.cfc email.cfc full.cfc integer.cfc numeric.cfc required.cfc url.cfc uuid.cfc Log Message: Still cleaning out the old code base. Rules have moved into their own directory. --- baserule.cfc DELETED --- --- boolean.cfc DELETED --- --- date.cfc DELETED --- --- email.cfc DELETED --- --- full.cfc DELETED --- --- integer.cfc DELETED --- --- numeric.cfc DELETED --- --- required.cfc DELETED --- --- url.cfc DELETED --- --- uuid.cfc DELETED ---  | 
| 
     
      
      
      From: <jfi...@us...> - 2003-01-08 16:34:20
      
     
   | 
Update of /cvsroot/modus/org/bacfug/modus/persistence
In directory sc8-pr-cvs1:/tmp/cvs-serv30120
Modified Files:
	simplefilesystempersister.cfc 
Removed Files:
	simpleobjectinstance.cfc 
Log Message:
Still cleaning out the old code base and adding pieces that didn't make it.
Index: simplefilesystempersister.cfc
===================================================================
RCS file: /cvsroot/modus/org/bacfug/modus/persistence/simplefilesystempersister.cfc,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** simplefilesystempersister.cfc	5 Oct 2002 01:05:12 -0000	1.3
--- simplefilesystempersister.cfc	8 Jan 2003 16:34:16 -0000	1.4
***************
*** 1,62 ****
  <cfcomponent extends="org.bacfug.modus.persistence.basePersister" displayname="fileSytemByType" hint="The basic component for storing object instances under the WEB-INF directory on the file system.">
! 	<!--- information about the base directory --->
! 	<!--- this should really be in the config!! --->
! 	<cfparam name="instance.baseModusDir" default="#expandPath("/WEB-INF/modus/")#">
! 	<cfparam name="instance.objectStoreDir" default="#instance.baseModusDir#objectstore/">
! 	
! 	<!--- make sure the base directory exists --->
! 	<cfif NOT directoryExists(instance.objectStoreDir)>
! 		<cfdirectory action="create" directory="#instance.objectStoreDir#">
! 	</cfif>
! 	
! 	<cffunction name="save" access="public" output="no" returnType="void" hint="The method to save data">
! 		<cfargument name="contentObject" required="yes">
! 		<cfset var objectToSave = "">
! 		<cfset var packet = "">
! 		<!--- make sure we're dealing with a contentObject --->
! 		<cfif isContentObject(arguments.contentObject)>
! 			<cfscript>
! 				//make the storage struct 
! 				packet = contentObjectToWddx(arguments.contentObject);
! 			</cfscript>
! 			<!--- write the file --->
! 			<cffile action="write" file="#getPathFromObject(arguments.contentObject)#" output="#packet#">
! 			<!--- put the object in the cache --->
! 			<cfset instance.cache.putObject(arguments.contentObject)>
! 		<!--- if it's not a good contentObject --->
! 		<cfelse>
! 			<cfthrow type="modus.badContentObject" message="Bad ContentObject" detail="A bad contentObject was passed to save() in #getMetaData(this).name#">
! 		</cfif>
! 	</cffunction>
  
! 	<cffunction name="get" access="public"  output="no" returnType="org.bacfug.modus.baseContentObject" hint="The method to get a particular data instance">
! 		<cfargument name="id" type="string" required="yes">
! 		<cfset var objectRetrieved = "">
! 		<cfset var getQuery = "">
! 		<cfset var packet = "">
! 		<cfset var dirToCheck = getBaseStorageDirectory()>
! 		
  		<!--- if this object is cached, return that one --->
  		<cfscript>
! 			if(instance.cache.isObjectCached(arguments.id)){
! 				objectRetrieved = instance.cache.getObject(arguments.id);
! 				if(structCount(arguments) GT 1)
! 					return contentObjectPopulateFromInstance(arguments[2],objectRetrieved);
! 				else
! 					return objectRetrieved;	
  			}
  		</cfscript>
- 		
  		<!--- try getting this instance --->
  		<cfdirectory action="list" directory="#dirToCheck#" name="getQuery" filter="#arguments.id#*">
- 		
  		<cfscript>
  			//if we found one, grab the object
  			if(getQuery.recordCount){
  				objectRetrieved = getObjectFromFile(getQuery.name[1]);
- 				//if there is a second argument, it means we need to load that instance
- 				if(structCount(arguments) GT 1){
- 					contentObjectPopulateFromInstance(arguments[2],objectRetrieved);
- 				}	
  			}
  			//if none found, that's a bad error
--- 1,35 ----
  <cfcomponent extends="org.bacfug.modus.persistence.basePersister" displayname="fileSytemByType" hint="The basic component for storing object instances under the WEB-INF directory on the file system.">
! <!--- information about the base directory --->
! <!--- this should really be in the config!! --->
! <cfparam name="instance.baseModusDir" default="#expandPath("/WEB-INF/modus/")#">
! <cfparam name="instance.objectStoreDir" default="#instance.baseModusDir#objectstore/">
! <!--- make sure the base directory exists --->
! <cfif NOT directoryExists(instance.objectStoreDir)>
! 	<cfdirectory action="create" directory="#instance.objectStoreDir#">
! </cfif>
! <!--- 
  
! ACCESSORS
! 
! --->
! <cffunction name="get" access="public"  output="no" returnType="struct" hint="The method to get a particular data instance">
! 	<cfargument name="id" type="string" required="yes">
! 	<cfset var objectRetrieved = "">
! 	<cfset var getQuery = "">
! 	<cfset var packet = "">
! 	<cfset var dirToCheck = getBaseStorageDirectory()>
! 	<cfif len(arguments.id)>
  		<!--- if this object is cached, return that one --->
  		<cfscript>
! 			if(instance.cache.isObjectCached(arguments.id, getName())){
! 				return instance.cache.getObject(arguments.id, getName());
  			}
  		</cfscript>
  		<!--- try getting this instance --->
  		<cfdirectory action="list" directory="#dirToCheck#" name="getQuery" filter="#arguments.id#*">
  		<cfscript>
  			//if we found one, grab the object
  			if(getQuery.recordCount){
  				objectRetrieved = getObjectFromFile(getQuery.name[1]);
  			}
  			//if none found, that's a bad error
***************
*** 65,161 ****
  			}
  		</cfscript>
! 		<cfset instance.cache.putObject(objectRetrieved)>
  		<cfreturn objectRetrieved>
! 	</cffunction>
! 	
! 	<cffunction name="getAll" access="public" returntype="array" output="no" hint="The method to get all data instances of a particular type">
! 		<cfargument name="type" required="no" default="">
! 		<cfset var getQuery = "">
! 		<cfset var objectArray = arrayNew(1)>
! 		<cfset var packet = "">
! 		<cfset var filter = "*">
! 		<cfset var dirToCheck = getBaseStorageDirectory()>
! 		<cfset var objectID = "">
! 		<cfset var objectInstance = "">
! 		<cfscript>
! 			//if a type is passed, set the filter
! 			if(len(trim(arguments.type))){
! 				filter = "*." & arguments.type;
! 			}
! 		</cfscript>
! 		<!--- get the appropriate files into a query --->
! 		<cfdirectory action="list" directory="#dirToCheck#" name="getQuery" filter="#filter#">
! 		<!--- loop through files, parsing them and putting the contents into the objectArray --->
! 		<cfloop query="getQuery">
! 			<cfset objectID = getObjectIDFromFileName(name)>
! 			<cfif instance.cache.isObjectCached(objectID)>
! 				<cfset objectInstance = instance.cache.getObject(objectID)>
! 			<cfelse>
! 				<cfset objectInstance = getObjectFromFile(name)>
! 				<cfset instance.cache.putObject(objectInstance)>
! 			</cfif>
! 			<cfset objectArray[currentRow] = objectInstance>
! 		</cfloop>
! 		<!--- return the array of objects --->
! 		<cfreturn objectArray>
! 	</cffunction>	
! 	
! 	<!--- a method to get an object from the name of its storage file --->
! 	<cffunction name="getObjectFromFile" access="private" returnType="org.bacfug.modus.baseContentObject" output="no" hint="returns an object instance based on the name of the file">
! 		<cfargument name="fileName" type="string" required="yes">
! 		<cfset var packet = "">
! 		<cftry>
! 			<cffile action="read" file="#getBaseStorageDirectory()##arguments.fileName#" variable="packet">	
! 			<cfcatch>
! 				<cfthrow type="modus.badFile" message="File does not exist" detail="The requested file ""#arguments.fileName#"" does not exist.">
! 			</cfcatch>
! 		</cftry>
! 		<!--- if there is a second argument, it means we're loading an existing object --->
! 		<cfif structCount(arguments) GT 1>
! 			<cfreturn wddxToContentObject(packet,arguments[2])>
! 		<!--- otherwise, just return the object --->
  		<cfelse>
! 			<cfreturn wddxToContentObject(packet)>
! 		</cfif>				
! 	</cffunction>
! 	
! 	<!--- a method to get the directory path based on an object --->
! 	<cffunction name="getPathFromObject" access="private" returnType="string" output="no" hint="returns a full path based on an object">
! 		<cfargument name="contentObject" type="org.bacfug.modus.baseContentObject" required="yes">
! 		<cfset var directoryPath = getBaseStorageDirectory()>
! 		<cfset var fullPath = "">
! 		<cfscript>
! 			//make sure the directory exists
! 			directoryInit(directoryPath);
! 			//set the full path
! 			fullPath = directoryPath & arguments.contentObject.getID() & "." & arguments.contentObject.getType();
! 		</cfscript>
! 		<!--- now, be sure  --->
! 		<cfreturn fullPath> 
! 	</cffunction>
! 	<!--- gets the ID from a file name --->
! 	<cffunction name="getObjectIDFromFileName" access="private" returnType="string" output="no" hint="returns the ID of an object based on the file in the persistence">
! 		<cfargument name="fileName" required="yes" type="string">
! 		<cfreturn listFirst(fileName,".")>
! 	</cffunction>
! 	<!--- a method to get the base directory for storage --->
! 	<cffunction name="getBaseStorageDirectory" access="private" returnType="string" output="no" hint="returns the path to the base storage directory">
! 		<cfreturn instance.objectStoreDir>
! 	</cffunction>
! 	<!--- a method for make sure directories exist in the storage directory --->
! 	<cffunction name="directoryInit" access="private" returnType="void" output="no" hint="a method for make sure directories exist in the storage directory">
! 		<cfargument name="directory" required="yes" type="string">
! 		<!--- if the directory does not exist, create it --->
! 		<cfif NOT directoryExists(arguments.directory)>
! 			<cfdirectory action="create" directory="#arguments.directory#">
  		</cfif>
! 	</cffunction>
! 	<!--- a method to throw an error (DAMN YOU CFSCRIPT FOR NOT HAVING THIS FUNCTION ALREADY! --->
! 	<cffunction name="throwError" access="private" returnType="void" output="no">
! 		<cfargument name="type" required="yes">
! 		<cfargument name="message" requied="yes">
! 		<cfargument name="detail" required="no" default="">
! 		<cfthrow type="#arguments.type#" message="#arguments.message#" detail="#arguments.detail#">
! 	</cffunction>
  </cfcomponent> 
  
--- 38,141 ----
  			}
  		</cfscript>
! 		<!--- put the object in the cache --->
! 		<cfset instance.cache.putObject(objectRetrieved, getName())>
! 		<!--- return the object --->
  		<cfreturn objectRetrieved>
! 	<!--- Return a new object --->
! 	<cfelse>
! 		<cfreturn getNewObject()>
! 	</cfif>
! </cffunction>
! <cffunction name="getAll" access="public" returntype="array" output="no" hint="The method to get all data instances of a particular type">
! 	<cfset var getQuery = "">
! 	<cfset var objectArray = arrayNew(1)>
! 	<cfset var packet = "">
! 	<cfset var filter = "*." & getName()>
! 	<cfset var dirToCheck = getBaseStorageDirectory()>
! 	<cfset var objectID = "">
! 	<cfset var objectInstance = "">
! 	<!--- get the appropriate files into a query --->
! 	<cfdirectory action="list" directory="#dirToCheck#" name="getQuery" filter="#filter#">
! 	<!--- loop through files, parsing them and putting the contents into the objectArray --->
! 	<cfloop query="getQuery">
! 		<cfset objectID = getObjectIDFromFileName(name)>
! 		<cfif instance.cache.isObjectCached(objectID, getName())>
! 			<cfset objectInstance = instance.cache.getObject(objectID, getName())>
  		<cfelse>
! 			<cfset objectInstance = getObjectFromFile(name)>
! 			<cfset instance.cache.putObject(objectInstance, getName())>
  		</cfif>
! 		<cfset objectArray[currentRow] = objectInstance>
! 	</cfloop>
! 	<!--- return the array of objects --->
! 	<cfreturn objectArray>
! </cffunction>	
! <!--- 
! 
! MUTATORS
! 
! --->
! <cffunction name="save" access="public" output="no" returnType="void" hint="The method to save data">
! 	<cfargument name="contentObject" required="yes">
! 	<cfset var objectToSave = "">
! 	<cfset var packet = contentObjectToWDDX(arguments.contentobject)>
! 	<!--- write the file --->
! 	<cffile action="write" file="#getPathFromObject(arguments.contentObject)#" output="#packet#">
! 	<!--- put the object in the cache --->
! 	<cfset instance.cache.putObject(arguments.contentObject, getName())>
! </cffunction>
! <!--- 
! 
! PACKAGE AND PRIVATE METHODS FOR INTERNAL WORK
! 
!  --->
! <cffunction name="getObjectFromFile" access="private" returnType="struct" output="no" hint="returns an object instance based on the name of the file">
! 	<cfargument name="fileName" type="string" required="yes">
! 	<cfset var packet = "">
! 	<cftry>
! 		<cffile action="read" file="#getBaseStorageDirectory()##arguments.fileName#" variable="packet">	
! 		<cfcatch>
! 			<cfthrow type="modus.badFile" message="File does not exist" detail="The requested file ""#arguments.fileName#"" does not exist.">
! 		</cfcatch>
! 	</cftry>
! 	<cfreturn wddxToContentObject(packet)>		
! </cffunction>
! <cffunction name="getPathFromObject" access="private" returnType="string" output="no" hint="returns a full path based on an object">
! 	<cfargument name="contentObject" type="struct" required="yes">
! 	<cfset var directoryPath = getBaseStorageDirectory()>
! 	<cfset var fullPath = "">
! 	<cfscript>
! 		//make sure the directory exists
! 		directoryInit(directoryPath);
! 		//set the full path
! 		fullPath = directoryPath & arguments.contentObject.id & "." & getName();
! 	</cfscript>
! 	<!--- now, be sure  --->
! 	<cfreturn fullPath> 
! </cffunction>
! <!--- gets the ID from a file name --->
! <cffunction name="getObjectIDFromFileName" access="private" returnType="string" output="no" hint="returns the ID of an object based on the file in the persistence">
! 	<cfargument name="fileName" required="yes" type="string">
! 	<cfreturn listFirst(fileName,".")>
! </cffunction>
! <!--- a method to get the base directory for storage --->
! <cffunction name="getBaseStorageDirectory" access="private" returnType="string" output="no" hint="returns the path to the base storage directory">
! 	<cfreturn instance.objectStoreDir>
! </cffunction>
! <!--- a method for make sure directories exist in the storage directory --->
! <cffunction name="directoryInit" access="private" returnType="void" output="no" hint="a method for make sure directories exist in the storage directory">
! 	<cfargument name="directory" required="yes" type="string">
! 	<!--- if the directory does not exist, create it --->
! 	<cfif NOT directoryExists(arguments.directory)>
! 		<cfdirectory action="create" directory="#arguments.directory#">
! 	</cfif>
! </cffunction>
! <!--- a method to throw an error (DAMN YOU CFSCRIPT FOR NOT HAVING THIS FUNCTION ALREADY! --->
! <cffunction name="throwError" access="private" returnType="void" output="no">
! 	<cfargument name="type" required="yes">
! 	<cfargument name="message" requied="yes">
! 	<cfargument name="detail" required="no" default="">
! 	<cfthrow type="#arguments.type#" message="#arguments.message#" detail="#arguments.detail#">
! </cffunction>
  </cfcomponent> 
  
--- simpleobjectinstance.cfc DELETED ---
 | 
| 
     
      
      
      From: <jfi...@us...> - 2003-01-08 16:26:13
      
     
   | 
Update of /cvsroot/modus/org/bacfug/modus/lib In directory sc8-pr-cvs1:/tmp/cvs-serv27693 Removed Files: baselibWapp.cfc Log Message: Whoops - this wasn't meant to be there. --- baselibWapp.cfc DELETED ---  | 
| 
     
      
      
      From: <jfi...@us...> - 2003-01-08 16:23:48
      
     
   | 
Update of /cvsroot/modus/org/bacfug/modus In directory sc8-pr-cvs1:/tmp/cvs-serv26744 Removed Files: basecontentobject.cfc modusinit.cfm Log Message: Removing remnants of the old code base. --- basecontentobject.cfc DELETED --- --- modusinit.cfm DELETED ---  | 
| 
     
      
      
      From: <jfi...@us...> - 2003-01-08 16:22:54
      
     
   | 
Update of /cvsroot/modus/org/bacfug/modus/form In directory sc8-pr-cvs1:/tmp/cvs-serv26259 Removed Files: formfieldfactory.cfc Log Message: Removing remnants of the old code base. --- formfieldfactory.cfc DELETED ---  | 
| 
     
      
      
      From: <ndi...@us...> - 2002-12-17 16:37:09
      
     
   | 
Update of /cvsroot/modus/org/bacfug/modus In directory sc8-pr-cvs1:/tmp/cvs-serv4118/bacfug/modus Added Files: modusinit.cfm Log Message:  | 
| 
     
      
      
      From: <ndi...@pr...> - 2002-11-18 21:11:32
      
     
   | 
Update of /cvsroot/modus/org/bacfug/modus In directory sc8-pr-cvs1:/tmp/cvs-serv7834/bacfug/modus Removed Files: modusinit.cfm Log Message: removing modusinit --- modusinit.cfm DELETED ---  | 
| 
     
      
      
      From: <ndi...@pr...> - 2002-11-18 20:29:39
      
     
   | 
Update of /cvsroot/modus/org/bacfug/modus In directory sc8-pr-cvs1:/tmp/cvs-serv20696/bacfug/modus Added Files: modusinit.cfm Log Message: (just cleaning up before we move to the new service-based model -- this is more for posterity than anything else). --- NEW FILE: modusinit.cfm --- <cfset request.initModusMemory = false> <cfscript> //if the in-memory storage is not made, make it if(NOT structKeyExists(server,"modus")) request.initModusMemory = true; </cfscript> <cfif request.initModusMemory> <cflock scope="server" type="exclusive" timeout="30"> <cfscript> //build the in-memory storage server.modus = structNew(); server.modus.contentObjectCache = structNew(); server.modus.contentObjectCache.objectInstances = structNew(); server.modus.contentObjectCache.objectTypes = structNew(); </cfscript> </cflock> </cfif>  | 
| 
     
      
      
      From: <ndi...@pr...> - 2002-11-18 20:29:19
      
     
   | 
Update of /cvsroot/modus/org/bacfug/modus/caching In directory sc8-pr-cvs1:/tmp/cvs-serv20530/bacfug/modus/caching Modified Files: serverscopecache.cfc Log Message: (just cleaning up before we move to the new service-based model -- this is more for posterity than anything else). moved the server. stuff into another file Index: serverscopecache.cfc =================================================================== RCS file: /cvsroot/modus/org/bacfug/modus/caching/serverscopecache.cfc,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** serverscopecache.cfc 5 Oct 2002 00:51:43 -0000 1.1 --- serverscopecache.cfc 18 Nov 2002 20:29:16 -0000 1.2 *************** *** 7,15 **** <cffunction name="cacheInit" access="public" output="no" returnType="void" hint="Initializes the in-memory cache"> <cfparam name="server.modus" default="#structNew()#"> ! <cfscript> server.modus.contentObjectCache = structNew(); server.modus.contentObjectCache.objectInstances = structNew(); server.modus.contentObjectCache.objectTypes = structNew(); ! </cfscript> </cffunction> --- 7,19 ---- <cffunction name="cacheInit" access="public" output="no" returnType="void" hint="Initializes the in-memory cache"> <cfparam name="server.modus" default="#structNew()#"> ! <cfparam name="server.modus.contentObjectCache" default="#structNew()#"> ! <cfparam name="server.modus.contentObjectCache.objectInstances" default="#structNew()#"> ! <cfparam name="server.modus.contentObjectCache.objectTypes" default="#structNew()#"> ! ! <!--- <cfscript> server.modus.contentObjectCache = structNew(); server.modus.contentObjectCache.objectInstances = structNew(); server.modus.contentObjectCache.objectTypes = structNew(); ! </cfscript> ---> </cffunction>  | 
| 
     
      
      
      From: <ndi...@us...> - 2002-11-05 23:08:10
      
     
   | 
Update of /cvsroot/modus/org/bacfug/modus
In directory usw-pr-cvs1:/tmp/cvs-serv14693/bacfug/modus
Modified Files:
	basecontentobject.cfc 
Log Message:
no need to instantiate a persister every time, just put it in the server scope.  We need a cleaner way to do this, but for now it proves that it works to put the persister in memory and reuse it.
Index: basecontentobject.cfc
===================================================================
RCS file: /cvsroot/modus/org/bacfug/modus/basecontentobject.cfc,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** basecontentobject.cfc	5 Oct 2002 00:54:06 -0000	1.14
--- basecontentobject.cfc	5 Nov 2002 23:08:05 -0000	1.15
***************
*** 23,28 ****
  		instance.wasLoadedFlag = false;
  		//create an instance of the persister for this object if we need to, to avoid unnecessary createObject() calls later
! 		if(NOT structKeyExists(instance,"persister"))
! 			instance.persister = createObject("component",instance.persisterComponent).init();
  		//initialize the properties of this instance
  		initProperties();
--- 23,35 ----
  		instance.wasLoadedFlag = false;
  		//create an instance of the persister for this object if we need to, to avoid unnecessary createObject() calls later
! 		if(NOT structKeyExists(instance,"persister")){
! 			if(structKeyExists(server.modus,instance.persisterComponent)){
! 				instance.persister = server.modus[instance.persisterComponent];
! 			}
! 			else{
! 				instance.persister = createObject("component",instance.persisterComponent).init();
! 				server.modus[instance.persisterComponent] = instance.persister;
! 			}
! 		}
  		//initialize the properties of this instance
  		initProperties();
 | 
| 
     
      
      
      From: <ndi...@us...> - 2002-10-30 03:00:32
      
     
   | 
Update of /cvsroot/modus/org/bacfug/modus/persistence
In directory usw-pr-cvs1:/tmp/cvs-serv5127/bacfug/modus/persistence
Modified Files:
	basepersister.cfc 
Log Message:
a nicer way to deal with the cache, though it will need to change in the final -- it shows that we can reuse a memory-based component for caching when it will have no instance data.
Index: basepersister.cfc
===================================================================
RCS file: /cvsroot/modus/org/bacfug/modus/persistence/basepersister.cfc,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** basepersister.cfc	29 Oct 2002 00:06:07 -0000	1.10
--- basepersister.cfc	30 Oct 2002 03:00:29 -0000	1.11
***************
*** 2,8 ****
  	<cfparam name="instance" default="#structNew()#">
  	<cffunction name="init" access="public" hint="The initializer" returnType="org.bacfug.modus.persistence.basePersister" output="no">
  		<cfscript>
  			//the cache we should use
! 			instance.cache = createObject("component",getCachePath()).init();
  		</cfscript>
  		<cfreturn this>
--- 2,22 ----
  	<cfparam name="instance" default="#structNew()#">
  	<cffunction name="init" access="public" hint="The initializer" returnType="org.bacfug.modus.persistence.basePersister" output="no">
+ 		<cfset var cachePathToUse = getCachePath()>
  		<cfscript>
  			//the cache we should use
! 			//if it has been cached, use the cached version
! 			
! 			/*******************************
! 			THIS REALLY IS A GOOD CANDIDATE FOR THE CONFIG DATA!
! 			********************************/
! 			
! 			if(NOT structKeyExists(server.modus,cachePathToUse)){
! 				instance.cache = createObject("component",getCachePath()).init();
! 				server.modus[cachePathToUse] = instance.cache;
! 			}
! 			//otherwise, make a new one
! 			else{
! 				instance.cache = server.modus[cachePathToUse];
! 			}	
  		</cfscript>
  		<cfreturn this>
 | 
| 
     
      
      
      From: <ndi...@us...> - 2002-10-29 00:06:09
      
     
   | 
Update of /cvsroot/modus/org/bacfug/modus/persistence
In directory usw-pr-cvs1:/tmp/cvs-serv20261/bacfug/modus/persistence
Modified Files:
	basepersister.cfc 
Log Message:
whoops, forgot to init() the cache -- this really needs to not happen for every instance of the persister, but for now it works.
Index: basepersister.cfc
===================================================================
RCS file: /cvsroot/modus/org/bacfug/modus/persistence/basepersister.cfc,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** basepersister.cfc	5 Oct 2002 00:52:28 -0000	1.9
--- basepersister.cfc	29 Oct 2002 00:06:07 -0000	1.10
***************
*** 4,8 ****
  		<cfscript>
  			//the cache we should use
! 			instance.cache = createObject("component",getCachePath());
  		</cfscript>
  		<cfreturn this>
--- 4,8 ----
  		<cfscript>
  			//the cache we should use
! 			instance.cache = createObject("component",getCachePath()).init();
  		</cfscript>
  		<cfreturn this>
 | 
| 
     
      
      
      From: <ndi...@us...> - 2002-10-29 00:05:01
      
     
   | 
Update of /cvsroot/modus/org/bacfug/modus/caching In directory usw-pr-cvs1:/tmp/cvs-serv19867/bacfug/modus/caching Modified Files: basecache.cfc Log Message: formatting only Index: basecache.cfc =================================================================== RCS file: /cvsroot/modus/org/bacfug/modus/caching/basecache.cfc,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** basecache.cfc 5 Oct 2002 00:51:20 -0000 1.1 --- basecache.cfc 29 Oct 2002 00:04:58 -0000 1.2 *************** *** 16,20 **** <cfthrow message="cacheInit() not implemented in #getMetaData(this).name#"> </cffunction> - <!--- is a particular object instance in the cache? ---> <cffunction name="isObjectCached" access="package" output="no" returnType="boolean" hint="Returns a boolean for whether a particular object (Based on ID) is cached"> --- 16,19 ----  | 
| 
     
      
      
      From: <ndi...@us...> - 2002-10-24 00:56:50
      
     
   | 
Update of /cvsroot/modus/org/bacfug/modus/fields In directory usw-pr-cvs1:/tmp/cvs-serv20519/bacfug/modus/fields Added Files: hidden.cfc Log Message: a field for hidden fields (thanks to Jeremy Firsenbaum for this). This probably needs to also deal with the label, etc. at some point. --- NEW FILE: hidden.cfc --- <cfcomponent extends="org.bacfug.modus.fields.baseField" displayname="hiddenField" hint="The hidden field"> <!--- override the toFormField method to make a hidden field ---> <cffunction name="toFormField" access="public" output="no" hint="returns a simple hidden form widget" returnType="string"> <cfreturn instance.formFieldFactory.makeHidden(getName(),getValue())> </cffunction> </cfcomponent>  | 
| 
     
      
      
      From: <ndi...@us...> - 2002-10-24 00:55:15
      
     
   | 
Update of /cvsroot/modus/org/bacfug/modus/form In directory usw-pr-cvs1:/tmp/cvs-serv18770/bacfug/modus/form Modified Files: formfieldfactory.cfc Log Message: added makeHidden (thanks to Jeremy Firsenbaum for this) Index: formfieldfactory.cfc =================================================================== RCS file: /cvsroot/modus/org/bacfug/modus/form/formfieldfactory.cfc,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** formfieldfactory.cfc 3 Oct 2002 05:45:19 -0000 1.5 --- formfieldfactory.cfc 24 Oct 2002 00:55:12 -0000 1.6 *************** *** 99,102 **** <cfreturn "<input type=""file"" name=""" & arguments.name & """>"> </cffunction> ! </cfcomponent> --- 99,107 ---- <cfreturn "<input type=""file"" name=""" & arguments.name & """>"> </cffunction> ! <!--- Make hidden ---> ! <cffunction name="makeHidden" access="public" output="no" returntype="string" hint="makes a hidden field"> ! <cfargument name="name" required="yes" type="variableName"> ! <cfargument name="value" required="yes" type="string"> ! <cfreturn "<input type=""hidden"" name=""" & arguments.name & """ value=""" & htmlEditFormat(arguments.value)& """>"> ! </cffunction> </cfcomponent>  | 
| 
     
      
      
      From: <ndi...@us...> - 2002-10-05 01:05:14
      
     
   | 
Update of /cvsroot/modus/org/bacfug/modus/persistence In directory usw-pr-cvs1:/tmp/cvs-serv2786/bacfug/modus/persistence Modified Files: simplefilesystempersister.cfc Log Message: put the caching in the getAll() method. It is now MUCH faster!! Index: simplefilesystempersister.cfc =================================================================== RCS file: /cvsroot/modus/org/bacfug/modus/persistence/simplefilesystempersister.cfc,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** simplefilesystempersister.cfc 5 Oct 2002 00:53:01 -0000 1.2 --- simplefilesystempersister.cfc 5 Oct 2002 01:05:12 -0000 1.3 *************** *** 76,79 **** --- 76,81 ---- <cfset var filter = "*"> <cfset var dirToCheck = getBaseStorageDirectory()> + <cfset var objectID = ""> + <cfset var objectInstance = ""> <cfscript> //if a type is passed, set the filter *************** *** 86,90 **** <!--- loop through files, parsing them and putting the contents into the objectArray ---> <cfloop query="getQuery"> ! <cfset objectArray[currentRow] = getObjectFromFile(name)> </cfloop> <!--- return the array of objects ---> --- 88,99 ---- <!--- loop through files, parsing them and putting the contents into the objectArray ---> <cfloop query="getQuery"> ! <cfset objectID = getObjectIDFromFileName(name)> ! <cfif instance.cache.isObjectCached(objectID)> ! <cfset objectInstance = instance.cache.getObject(objectID)> ! <cfelse> ! <cfset objectInstance = getObjectFromFile(name)> ! <cfset instance.cache.putObject(objectInstance)> ! </cfif> ! <cfset objectArray[currentRow] = objectInstance> </cfloop> <!--- return the array of objects ---> *************** *** 124,127 **** --- 133,141 ---- <!--- now, be sure ---> <cfreturn fullPath> + </cffunction> + <!--- gets the ID from a file name ---> + <cffunction name="getObjectIDFromFileName" access="private" returnType="string" output="no" hint="returns the ID of an object based on the file in the persistence"> + <cfargument name="fileName" required="yes" type="string"> + <cfreturn listFirst(fileName,".")> </cffunction> <!--- a method to get the base directory for storage --->  | 
| 
     
      
      
      From: <ndi...@us...> - 2002-10-05 00:54:08
      
     
   | 
Update of /cvsroot/modus/org/bacfug/modus
In directory usw-pr-cvs1:/tmp/cvs-serv32222/bacfug/modus
Modified Files:
	basecontentobject.cfc 
Log Message:
removing the config struct, as it is inconsistent with all other components.  We'll stick with "instance" since there does not appear to be any good reason to have a separate config struct.
Index: basecontentobject.cfc
===================================================================
RCS file: /cvsroot/modus/org/bacfug/modus/basecontentobject.cfc,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** basecontentobject.cfc	14 Sep 2002 01:22:30 -0000	1.13
--- basecontentobject.cfc	5 Oct 2002 00:54:06 -0000	1.14
***************
*** 2,6 ****
  <!--- the intialization method to be used when the cfc is instantiated --->
  <cffunction name="init" access="public" output="no" returnType="org.bacfug.modus.baseContentObject" hint="The initialization method to be used when a contentObject is instantiated">
! 	<cfparam name="config" default="#structNew()#">
  	<cfparam name="instance" default="#structNew()#">
  	<!--- set up some of the basics for a content object --->
--- 2,6 ----
  <!--- the intialization method to be used when the cfc is instantiated --->
  <cffunction name="init" access="public" output="no" returnType="org.bacfug.modus.baseContentObject" hint="The initialization method to be used when a contentObject is instantiated">
! 	<!--- <cfparam name="config" default="#structNew()#"> --->
  	<cfparam name="instance" default="#structNew()#">
  	<!--- set up some of the basics for a content object --->
***************
*** 15,19 ****
  		instance.id = makeID();
  		//which persister will we use?  Set a default.
! 		config.persister = "org.bacfug.modus.persistence.simpleFileSystemPersister";
  		//by default the instance.dateCreated is now()
  		instance.dateCreated = now();
--- 15,19 ----
  		instance.id = makeID();
  		//which persister will we use?  Set a default.
! 		instance.persisterComponent = "org.bacfug.modus.persistence.simpleFileSystemPersister";
  		//by default the instance.dateCreated is now()
  		instance.dateCreated = now();
***************
*** 24,32 ****
  		//create an instance of the persister for this object if we need to, to avoid unnecessary createObject() calls later
  		if(NOT structKeyExists(instance,"persister"))
! 			instance.persister = createObject("component",config.persister).init();
  		//initialize the properties of this instance
  		initProperties();
  	</cfscript>
! 	<!--- be sure we have an instance.label and instance.labelPlural it a instance.label and a config.plurallabel --->
  	<cfparam name="instance.label" default="Content Object">
  	<cfparam name="instance.labelPlural" default="#instance.label#s">		
--- 24,32 ----
  		//create an instance of the persister for this object if we need to, to avoid unnecessary createObject() calls later
  		if(NOT structKeyExists(instance,"persister"))
! 			instance.persister = createObject("component",instance.persisterComponent).init();
  		//initialize the properties of this instance
  		initProperties();
  	</cfscript>
! 	<!--- be sure we have an instance.label and instance.labelPlural --->
  	<cfparam name="instance.label" default="Content Object">
  	<cfparam name="instance.labelPlural" default="#instance.label#s">		
***************
*** 410,417 ****
  				break;
  			}
! 			//if it's a "config" variable, just pop the value into the config
  			case "config":{
  				config[arguments.property.name] = arguments.property.value;
  			}
  		}	
  	</cfscript>
--- 410,418 ----
  				break;
  			}
! /*			//if it's a "config" variable, just pop the value into the config
  			case "config":{
  				config[arguments.property.name] = arguments.property.value;
  			}
+ */
  		}	
  	</cfscript>
 |