Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <cfset fileName = expandPath("./") & "data.json">
- <cfif isDefined("form.btnSubmit")>
- <cfset jsonData = readFile(fileName)>
- <cfset newData = setData(form)>
- </cfif>
- <!doctype html>
- <html xmlns:ng="http://angularjs.org">
- <script src="http://code.angularjs.org/0.9.15/angular-0.9.15.min.js" ng:autobind></script>
- <body>
- <cfoutput>
- <div STYLE="font-size: x-large; color: ##000000">Here is a random quest for you: <br><br>#randomQuest()#
- </div><hr><br><br></cfoutput>
- Add your story the quest database:<br>
- <form name="Story" method="post">
- <input type="text" name="dangerousPlace" size=50 placeHolder="A dangerous place" ng:validate="textRequired" ng:required onblur="showSubmit(form);"><br>
- <input type="text" name="evilPerson" size=50 placeHolder="An evil sounding person / entity" ng:validate="textRequired" ng:required onblur="showSubmit(form);"><br>
- <input type="text" name="powerObject" size=50 placeHolder="An object of great power" ng:validate="textRequired" ng:required onblur="showSubmit(form);"><br>
- <input type="text" name="idealPlace" size=50 placeHolder="An idealic sounding place" ng:validate="textRequired" ng:required onblur="showSubmit(form);"><br>
- <br>
- <button name="btnSubmit" style="display:none;">Submit</button><br>
- <br>
- Preview:<br>
- Travel to the <i>{{dangerousPlace}}</i> and slay <i>{{evilPerson}}</i>. Retrieve the <i>{{powerObject}}</i> and restore balance to <i>{{idealPlace}}</i><br>
- </form>
- <hr/>
- <br>
- <script>
- angular.validator('textRequired', function(input) {
- if (input.length > 2){
- return false;
- } else {return "Text should be longer than 2 characters";}
- });
- function showSubmit(form){
- if (form.dangerousPlace.value.length > 2
- && form.evilPerson.value.length > 2
- && form.powerObject.value.length > 2
- && form.idealPlace.value.length > 2){
- form.btnSubmit.style.display ='';
- } else {
- form.btnSubmit.style.display ='none';
- }
- return
- }
- </script>
- </body>
- </html>
- <!--- Functions ---->
- <cffunction name="readFile">
- <cfset checkFile(fileName)>
- <cffile action="read" file="#fileName#" variable="jsondata">
- <cfreturn deserializeJSON(jsonData)>
- <cfreturn>
- </cffunction>
- <cffunction name="writeFile">
- <cfargument name="data">
- <cfset checkFile(fileName)>
- <cffile action="write" file="#fileName#" output="#serializeJSON(data)#" >
- <cfreturn>
- </cffunction>
- <cffunction name="checkFile">
- <cfargument name="fileName" type="string" required="true" >
- <cfif fileExists(fileName) IS False>
- <cffile action="write" file="#fileName#" output="" addnewline="false">
- </cfif>
- <cfreturn>
- </cffunction>
- <cffunction name="setData">
- <cfargument name="data" type="struct" required="true">
- <cfset var json = readFile(filename)>
- <cfset json.dangerousPlace = addToArray(json.dangerousPlace, data.dangerousPlace)>
- <cfset json.evilPerson = addToArray(json.evilPerson, data.evilPerson)>
- <cfset json.idealPlace = addToArray(json.idealPlace, data.idealPlace)>
- <cfset json.powerObject = addToArray(json.powerObject, data.powerObject)>
- <cfset writeFile(json)>
- <cfreturn>
- </cffunction>
- <cffunction name="addToArray">
- <cfargument name="myArray" >
- <cfargument name="value">
- <cfif arrayFindNoCase(myArray,value) IS False>
- <cfset arrayAppend(myArray,value)>
- </cfif>
- <cfreturn myArray>
- </cffunction>
- <cffunction name="randomQuest">
- <cfset var json = readFile(filename)>
- <cfset maxrand = arraylen(json.dangerousPlace)>
- <cfset var quest = "">
- <cfset quest = quest & "Travel to the ">
- <cfset quest = quest & json.dangerousPlace[randRange(1,maxrand)]>
- <cfset quest = quest & " and slay " & json.evilPerson[randRange(1,maxrand)]>
- <cfset quest = quest & ".<br>Retrieve the " & json.powerObject[randRange(1,maxrand)]>
- <cfset quest = quest & " restore balance to " & json.idealPlace[randRange(1,maxrand)] & "!">
- <cfreturn quest>
- </cffunction>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement