Advertisement
timcunningham

Quest for foo

Nov 11th, 2011
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <cfset fileName = expandPath("./") & "data.json">
  2. <cfif isDefined("form.btnSubmit")>
  3.     <cfset jsonData = readFile(fileName)>
  4.     <cfset newData = setData(form)>
  5. </cfif>
  6. <!doctype html>
  7. <html xmlns:ng="http://angularjs.org">
  8.  <script src="http://code.angularjs.org/0.9.15/angular-0.9.15.min.js" ng:autobind></script>
  9.  <body>
  10.     <cfoutput>
  11.     <div STYLE="font-size: x-large; color: ##000000">Here is a random quest for you: <br><br>#randomQuest()#
  12.     </div><hr><br><br></cfoutput>
  13.     Add your story the quest database:<br>
  14.     <form name="Story" method="post">
  15.     <input type="text" name="dangerousPlace" size=50 placeHolder="A dangerous place" ng:validate="textRequired" ng:required onblur="showSubmit(form);"><br>
  16.     <input type="text" name="evilPerson" size=50 placeHolder="An evil sounding person / entity" ng:validate="textRequired" ng:required onblur="showSubmit(form);"><br>
  17.     <input type="text" name="powerObject" size=50 placeHolder="An object of great power" ng:validate="textRequired" ng:required onblur="showSubmit(form);"><br>
  18.     <input type="text" name="idealPlace" size=50 placeHolder="An idealic sounding place" ng:validate="textRequired" ng:required onblur="showSubmit(form);"><br>
  19.      <br>
  20.         <button name="btnSubmit" style="display:none;">Submit</button><br>
  21.      <br>
  22.      Preview:<br>
  23.      Travel to the  <i>{{dangerousPlace}}</i> and slay <i>{{evilPerson}}</i>. Retrieve the <i>{{powerObject}}</i> and restore balance to <i>{{idealPlace}}</i><br>
  24.  
  25.     </form>
  26.      <hr/>
  27.  
  28.  <br>
  29.  
  30.     <script>
  31.         angular.validator('textRequired', function(input) {
  32.             if (input.length > 2){
  33.                 return false;
  34.             } else {return "Text should be longer than 2 characters";}
  35.         });
  36.        
  37.         function showSubmit(form){
  38.         if (form.dangerousPlace.value.length > 2
  39.             && form.evilPerson.value.length > 2
  40.             && form.powerObject.value.length > 2
  41.             && form.idealPlace.value.length > 2){
  42.                 form.btnSubmit.style.display ='';
  43.             } else {
  44.                 form.btnSubmit.style.display ='none';
  45.                 }
  46.         return
  47.         }
  48.     </script>
  49.  </body>
  50. </html>
  51.  
  52.  
  53. <!--- Functions ---->
  54.  
  55. <cffunction name="readFile">
  56.     <cfset checkFile(fileName)>
  57.     <cffile action="read" file="#fileName#" variable="jsondata">
  58.     <cfreturn deserializeJSON(jsonData)>
  59.     <cfreturn>
  60. </cffunction>
  61. <cffunction name="writeFile">
  62.     <cfargument name="data">
  63.     <cfset checkFile(fileName)>
  64.     <cffile action="write" file="#fileName#" output="#serializeJSON(data)#" >
  65.     <cfreturn>     
  66. </cffunction>
  67.  
  68. <cffunction name="checkFile">
  69.     <cfargument name="fileName" type="string" required="true" >
  70.     <cfif fileExists(fileName) IS False>
  71.         <cffile action="write" file="#fileName#" output="" addnewline="false">
  72.     </cfif>
  73.     <cfreturn>
  74. </cffunction>
  75.  
  76. <cffunction name="setData">
  77.     <cfargument name="data" type="struct" required="true">
  78.     <cfset var json = readFile(filename)>
  79.     <cfset json.dangerousPlace = addToArray(json.dangerousPlace, data.dangerousPlace)>
  80.     <cfset json.evilPerson = addToArray(json.evilPerson, data.evilPerson)>
  81.     <cfset json.idealPlace = addToArray(json.idealPlace, data.idealPlace)>
  82.     <cfset json.powerObject = addToArray(json.powerObject, data.powerObject)>
  83.     <cfset writeFile(json)>
  84.     <cfreturn>
  85. </cffunction>
  86.  
  87. <cffunction name="addToArray">
  88.     <cfargument name="myArray" >
  89.     <cfargument name="value">
  90.    
  91.     <cfif arrayFindNoCase(myArray,value) IS False>
  92.         <cfset arrayAppend(myArray,value)>
  93.     </cfif>
  94.     <cfreturn myArray>
  95. </cffunction>
  96.  
  97. <cffunction name="randomQuest">
  98.     <cfset var json = readFile(filename)>
  99.     <cfset maxrand = arraylen(json.dangerousPlace)>
  100.     <cfset var quest = "">
  101.     <cfset quest = quest & "Travel to the ">
  102.     <cfset quest = quest & json.dangerousPlace[randRange(1,maxrand)]>
  103.     <cfset quest = quest & " and slay " & json.evilPerson[randRange(1,maxrand)]>
  104.     <cfset quest = quest & ".<br>Retrieve the " & json.powerObject[randRange(1,maxrand)]>
  105.     <cfset quest = quest & " restore balance to  " & json.idealPlace[randRange(1,maxrand)] & "!">
  106.     <cfreturn quest>
  107.  
  108.    
  109. </cffunction>
  110.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement