|
23 | 23 | <!--- NOTE: this function needs to be able to handle non-ajax responses ---> |
24 | 24 | <!--- The main purpose of this override is to fix the result["filename"] value ---> |
25 | 25 |
|
26 | | - <cfset var result = super.ajax(argumentCollection=arguments) /> |
| 26 | + <cfset var result = "" /> |
27 | 27 | <cfset var callback = "" /> |
28 | 28 | <cfset var data = {} /> |
29 | 29 | <cfset var sourcePath = {} /> |
| 30 | + <cfset var stSource = "" /> |
| 31 | + <cfset var sourceField = "" /> |
| 32 | + <cfset var stInfo = "" /> |
| 33 | + <cfset var prefix = left(arguments.fieldname,len(arguments.fieldname)-len(arguments.stMetadata.name)) /> |
| 34 | + |
| 35 | + <cfif structkeyexists(url,"crop")> |
| 36 | + <cfset stSource = arguments.stObject /> |
| 37 | + <cfset sourceField = listfirst(arguments.stMetadata.ftSourceField,":") /> |
| 38 | + <cfif isArray(stSource[sourceField]) and arrayLen(stSource[sourceField])> |
| 39 | + <cfset stSource = application.fapi.getContentObject(objectid=stSource[sourceField][1]) /> |
| 40 | + <cfset sourceField = listlast(arguments.stMetadata.ftSourceField,":") /> |
| 41 | + <cfelseif issimplevalue(stSource[sourceField]) and isvalid("uuid",stSource[sourceField])> |
| 42 | + <cfset stSource = application.fapi.getContentObject(objectid=stSource[sourceField]) /> |
| 43 | + <cfset sourceField = listlast(arguments.stMetadata.ftSourceField,":") /> |
| 44 | + </cfif> |
| 45 | + |
| 46 | + <cfif not structkeyexists(arguments.stMetadata,"ftImageWidth") or not isnumeric(arguments.stMetadata.ftImageWidth)><cfset arguments.stMetadata.ftImageWidth = 0 /></cfif> |
| 47 | + <cfif not structkeyexists(arguments.stMetadata,"ftImageHeight") or not isnumeric(arguments.stMetadata.ftImageHeight)><cfset arguments.stMetadata.ftImageHeight = 0 /></cfif> |
| 48 | + <cfparam name="arguments.stMetadata.ftAllowResizeQuality" default="false"> |
| 49 | + <cfparam name="url.allowcancel" default="1" /> |
| 50 | + |
| 51 | + <cfif len(sourceField)> |
| 52 | + <cfset stInfo = application.fc.lib.cloudinary.getURLInformation(stSource[sourceField]) /> |
| 53 | + |
| 54 | + <cfsavecontent variable="html"><cfoutput> |
| 55 | + <div style="float:left;background-color:##cccccc;height:100%;width:65%;margin-right:1%;"> |
| 56 | + <img id="cropable-image" src="#stInfo.untransformed#" style="max-width:none;" /> |
| 57 | + </div> |
| 58 | + <div style="float:left;width:33%;"> |
| 59 | + <div class="image-crop-instructions" style="overflow-y:auto;overlow-y:hidden;"> |
| 60 | + <p class="image-resize-information alert alert-info"> |
| 61 | + <strong style="font-weight:bold">Selection:</strong><br> |
| 62 | + Coordinates: (<span id="image-crop-a-x">?</span>,<span id="image-crop-a-y">?</span>) to (<span id="image-crop-b-x">?</span>,<span id="image-crop-b-y">?</span>)<br> |
| 63 | + <span id="image-crop-dimensions">Dimensions: <span id="image-crop-width">?</span>px x <span id="image-crop-height">?</span>px</span><br> |
| 64 | + <cfif arguments.stMetadata.ftImageWidth gt 0 and arguments.stMetadata.ftImageHeight gt 0> |
| 65 | + Ratio: |
| 66 | + <cfif arguments.stMetadata.ftImageWidth gt arguments.stMetadata.ftImageHeight> |
| 67 | + #numberformat(arguments.stMetadata.ftImageWidth/arguments.stMetadata.ftImageHeight,"9.99")#:1 |
| 68 | + <cfelseif arguments.stMetadata.ftImageWidth lt arguments.stMetadata.ftImageHeight> |
| 69 | + 1:#numberformat(arguments.stMetadata.ftImageHeight/arguments.stMetadata.ftImageWidth,"9.99")# |
| 70 | + <cfelse><!--- Equal ---> |
| 71 | + 1:1 |
| 72 | + </cfif> <span style="font-style:italic;">(Fixed aspect ratio)</span><br> |
| 73 | + <cfelse> |
| 74 | + Ratio: <span id="image-crop-ratio-num">?</span>:<span id="image-crop-ratio-den">?</span><br> |
| 75 | + </cfif> |
| 76 | + <strong style="font-weight:bold">Output:</strong><br> |
| 77 | + Dimensions: <span id="image-crop-width-final">#arguments.stMetadata.ftImageWidth#</span>px x <span id="image-crop-height-final">#arguments.stMetadata.ftImageHeight#</span>px<br> |
| 78 | + Quality: <cfif arguments.stMetadata.ftAllowResizeQuality><input id="image-crop-quality" value="#arguments.stMetadata.ftQuality#" /><cfelse>#round(arguments.stMetadata.ftQuality*100)#%<input type="hidden" id="image-crop-quality" value="#arguments.stMetadata.ftQuality#" /></cfif> |
| 79 | + </p> |
| 80 | + <p id="image-crop-warning" class="alert alert-warning" style="display:none;"> |
| 81 | + <strong style="font-weight:bold">Warning:</strong> The selected crop area is smaller than the output size. To avoid poor image quality choose a larger crop or use a higher resolution source image. |
| 82 | + </p> |
| 83 | + <p style="margin-top: 0.7em">To select a crop area:</p> |
| 84 | + <ol style="padding-left:10px;padding-top:0.7em"> |
| 85 | + <li style="list-style:decimal outside;">Click and drag from the point on the image where the top left corner of the crop will start to the bottom right corner where the crop will finish.</li> |
| 86 | + <li style="list-style:decimal outside;">You can drag the selection box around the image if it isn't in the right place, or drag the edges and corners if the box isn't the right shape.</li> |
| 87 | + <li style="list-style:decimal outside;">Click "Crop and Resize" when you're done.</li> |
| 88 | + </ol> |
| 89 | + </div> |
| 90 | + <div class="image-crop-actions"> |
| 91 | + <button id="image-crop-finalize" class="btn btn-large btn-primary" onclick="$fc.imageformtool('#prefix#','#arguments.stMetadata.name#').finalizeCrop();return false;">Crop and Resize</button> |
| 92 | + <cfif url.allowcancel> |
| 93 | + <a href="##" id="image-crop-cancel" class="btn btn-link" style="border:none;box-shadow:none;background:none">Cancel</a> |
| 94 | + </cfif> |
| 95 | + </div> |
| 96 | + </div> |
| 97 | + </cfoutput></cfsavecontent> |
| 98 | +
|
| 99 | + <cfreturn html /> |
| 100 | + <cfelse> |
| 101 | + <cfreturn "<p>The source field is empty. <a href='##' onclick='$fc.imageformtool('#prefix#','#arguments.stMetadata.name#').endCrop();return false;'>Close</a></p>" /> |
| 102 | + </cfif> |
| 103 | + </cfif> |
| 104 | +
|
| 105 | + <cfset result = super.ajax(argumentCollection=arguments) /> |
30 | 106 |
|
31 | 107 | <!--- Parse data produced by ajax ---> |
32 | 108 | <cfif refind("^([^\(]+)\((.*)\)$", result)> |
|
0 commit comments