From 2aa2342e185bf683303ba8ea8e444f84c313ffcb Mon Sep 17 00:00:00 2001 From: Ryan Cramer Date: Tue, 19 Mar 2019 09:09:44 -0400 Subject: [PATCH] Fix issue processwire/processwire-issues#768 --- wire/modules/Inputfield/InputfieldImage/InputfieldImage.css | 2 +- wire/modules/Inputfield/InputfieldImage/InputfieldImage.js | 4 +++- .../modules/Inputfield/InputfieldImage/InputfieldImage.min.js | 2 +- wire/modules/Inputfield/InputfieldImage/InputfieldImage.scss | 2 ++ 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/wire/modules/Inputfield/InputfieldImage/InputfieldImage.css b/wire/modules/Inputfield/InputfieldImage/InputfieldImage.css index d8b09ebc..1f9397d0 100755 --- a/wire/modules/Inputfield/InputfieldImage/InputfieldImage.css +++ b/wire/modules/Inputfield/InputfieldImage/InputfieldImage.css @@ -1 +1 @@ -.InputfieldImage .InputfieldHeader .InputfieldImageListToggle{float:right;padding-right:.75em;position:relative}.InputfieldImage .InputfieldHeader .InputfieldImageListToggle--active{opacity:.5}.InputfieldImage .InputfieldHeader .InputfieldImageListToggle:first-child{padding-right:1em}.InputfieldImage .InputfieldHeader .InputfieldImageSizeSlider{float:right;width:100px;position:relative;top:8px;right:1em}.InputfieldImage .InputfieldHeader .InputfieldImageSizeSlider .ui-slider-handle{outline:none}.InputfieldImage.InputfieldFileEmpty .InputfieldImageListToggle,.InputfieldImage.InputfieldFileEmpty .InputfieldImageSizeSlider,.InputfieldImage.InputfieldStateCollapsed .InputfieldImageListToggle,.InputfieldImage.InputfieldStateCollapsed .InputfieldImageSizeSlider{display:none}.InputfieldImageErrors li{margin-bottom:.5em;margin-top:0;color:#fff;background-color:#fc3a3f;padding:.3em .5em}.gridImages{list-style:none;padding-left:0;position:relative;margin:0;margin-right:-0.6em;display:block;list-style:none}.gridImage{list-style:none;position:relative;display:inline-block;box-shadow:0 1px 3px rgba(0,0,0,.2);border-radius:2px;background:#fff;padding:.4em;vertical-align:top;border:1px dashed transparent}li.gridImage{display:inline-block;margin:0 .6em .6em 0}.gridImage__overflow{width:100%;height:100%;overflow:hidden;position:relative;background-color:#fefefe;background-image:linear-gradient(45deg, #cbcbcb 25%, transparent 25%, transparent 75%, #cbcbcb 75%, #cbcbcb),linear-gradient(45deg, #cbcbcb 25%, transparent 25%, transparent 75%, #cbcbcb 75%, #cbcbcb);background-size:16px 16px;background-position:0 0,8px 8px}.gridImage__overflow>img{position:absolute;top:50%;left:50%;-ms-transform:translate3d(-50%, -50%, 0);transform:translate3d(-50%, -50%, 0)}.gridImage.gridImagePlaceholder .gridImage__overflow{background:#fff}.gridImage.ui-sortable-placeholder{display:inline-block;border-radius:2px;border:1px dashed #ccc;padding:.4em;visibility:visible !important;vertical-align:top;background-color:transparent;box-shadow:none}.gridImage.ui-sortable-placeholder::after{content:" ";display:block}.gridImage__hover{position:absolute;top:0;left:0;width:100%;height:100%;padding:.4em}.gridImage__inner{position:relative;width:100%;height:100%}.gridImage:hover .gridImage__inner{background:rgba(62,185,152,.7)}.gridImage__resize{position:absolute;display:block;height:100%;width:100%;line-height:130px;text-align:center;color:#fff;font-size:1.3em;cursor:move;text-shadow:0 0 7px rgba(62,185,152,.7)}.gridImage__resize.pw-resizing{text-shadow:none;background:rgba(0,0,0,.7)}.gridImage__progress{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;color:#3eb998;width:100%;height:10px;background:transparent;position:absolute;bottom:0;left:0}.gridImage__progress::-webkit-progress-bar{background-color:inherit}.gridImage__progress[value]::-webkit-progress-value{background-color:#3eb998}.gridImage__progress[value]::-moz-progress-bar{background-color:#3eb998}.gridImage__progress[value="-1"]{background-color:#e83561}.gridImage__trash{position:absolute;background:#fff;padding:.2em .6em;color:#aaa;z-index:2;cursor:pointer}label.gridImage__trash{display:none}.gridImage__trash--single{display:block !important;position:static}.gridImage__trash>input{display:none}.gridImage:hover .gridImage__trash{display:block}.gridImage:hover label.gridImage__trash:hover{display:block;color:#e83561;background-color:#fff}.gridImage__edit{position:absolute;display:block;height:100%;width:100%;line-height:130px;text-align:center;color:#fff !important;font-size:1.3em;cursor:move;text-shadow:0 0 7px rgba(62,185,152,.7);display:none}.gridImage__edit span{cursor:pointer}.gridImage:hover .gridImage__edit{display:block}.gridImage__edit:hover{color:#fff}.gridImage__tooltip{pointer-events:none;position:absolute;bottom:100%;padding:20px;-webkit-filter:drop-shadow(0 0 5px rgba(0, 0, 0, 0.1));filter:drop-shadow(0 0 5px rgba(0, 0, 0, 0.1));left:50%;transform:translate(-50%, 0);margin-bottom:12px;background:#fff;z-index:110;box-shadow:0 0 1px rgba(0,0,0,.25);opacity:0;transition:opacity .2s 2}.gridImage:hover .gridImage__tooltip{display:block;opacity:1;transition:opacity .2s 1s}.InputfieldImageSorting .gridImage__tooltip{display:none !important}.gridImage__tooltip input{pointer-events:none}.gridImage__tooltip table{margin:0;border-spacing:10px 0;border-collapse:separate}.gridImage__tooltip table th{color:#000;font-weight:bold;text-align:right}.gridImage__tooltip table th,.gridImage__tooltip table td{border:none !important;background:#fff !important}.gridImage__tooltip:after{top:100%;left:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-color:rgba(255,255,255,0);border-top-color:#fff;border-width:10px;margin-left:-10px}.gridImage.gridImageEditing .gridImage__inner{background:rgba(62,185,152,.5)}.gridImage--active{background-color:#3eb998}.gridImage--active .gridImage__inner{background:rgba(62,185,152,.5)}.gridImage--active .gridImage__trash{background-color:#3eb998;color:#fff}.gridImage--active .gridImage__trash:hover{background-color:#3eb998}.gridImage--active:hover .gridImage__trash:hover{background-color:#3eb998}.gridImage--delete{background-color:#e83561}.InputfieldImageEditSingle.gridImage--delete{background-color:transparent}.InputfieldImageEditSingle.gridImage--delete .InputfieldImageEdit__inner{outline:3px solid #e83561}.gridImage--delete .gridImage__trash{background-color:#e83561;color:#fff;display:block}.gridImage--delete .gridImage__trash:hover{background-color:#e83561}.gridImage--delete:hover .gridImage__edit{display:none}.gridImage--delete:hover .gridImage__trash:hover{background-color:#e83561}.gridImage--delete:hover .gridImage__inner{background:rgba(232,53,97,.3)}.InputfieldImageEdit{position:relative;display:none}.InputfieldImageEdit--active,.InputfieldImageEditSingle{display:block}.InputfieldImageEdit__inner{position:relative;display:flex;flex-flow:row;margin:1em .6em 1em 0;-webkit-filter:drop-shadow(0 1px 3px rgba(0, 0, 0, 0.2));filter:drop-shadow(0 1px 3px rgba(0, 0, 0, 0.2));background-color:#fff}.InputfieldImageEdit__close{cursor:pointer;position:absolute;font-size:1.4em;right:.5em;top:0;color:#ccc !important;text-decoration:none !important}.InputfieldFileSingle .InputfieldImageEdit__close{display:none}.InputfieldImageEdit__trash-single{cursor:pointer;position:absolute;font-size:1.4em;right:0;top:0;color:#aaa !important;text-decoration:none !important}.InputfieldImageEdit__trash-single:hover{color:#e83561}.InputfieldImageEdit__arrow{bottom:100%;content:" ";height:0;width:0;position:absolute;pointer-events:none;border:.5em solid rgba(255,255,255,0);border-bottom-color:#fff;transform:translate(-50%, 0)}.InputfieldImageEdit__imagewrapper{display:inline-block;display:flex;vertical-align:top;align-items:center;justify-content:space-around;width:300px;border-right:1px solid #eee;min-height:1em;padding:20px}.InputfieldImageEdit__imagewrapper>div{width:100%;position:relative}.InputfieldImageEdit__imagewrapper .detail{text-align:center;margin-top:2px}.InputfieldImageEdit__imagewrapper .detail-upload{display:block;opacity:0}.InputfieldImageEdit__imagewrapper .detail-focus{display:none}.InputfieldImageEdit__imagewrapper:hover .detail-upload{opacity:.7}.InputfieldImageEdit__imagewrapper>div.focusWrap .detail-upload{display:none}.InputfieldImageEdit__imagewrapper>div.focusWrap .detail-focus{display:block;opacity:.7}.InputfieldImageEdit__replace img{opacity:.5}.InputfieldImageEdit__edit{display:inline-block;vertical-align:top;min-height:100%;padding:20px;flex-grow:1}.InputfieldImageEdit__edit input{width:100%}.InputfieldImageEdit__image{position:relative;margin:0 auto;height:auto;cursor:zoom-in;max-width:100%}.InputfieldImageEdit__name{font-weight:bold;display:inline-block;margin-right:.5em !important;overflow-wrap:break-word;word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;cursor:pointer}.InputfieldImageEdit__info{font-size:.9em;color:#ccc;white-space:nowrap}.InputfieldImageEdit__buttons{margin:1em 0 .5em 0}.InputfieldImageEdit__buttons button{margin-bottom:.5em}.InputfieldImageEdit .InputfieldFileDescription+.InputfieldFileTags{margin-top:.5em}.gridImage__overflow .focusArea,.InputfieldImageEdit .focusArea{display:none;position:absolute;top:0;left:0;width:100%;height:100%;color:#fff;cursor:default}.gridImage__overflow .focusArea.focusActive,.InputfieldImageEdit .focusArea.focusActive{display:block;overflow:hidden}.gridImage__overflow .focusArea .focusCircle,.InputfieldImageEdit .focusArea .focusCircle{cursor:move;width:40px;height:40px;margin:-20px !important;border:3px solid #eb1d61;border-radius:50%;background-color:rgba(255,255,255,.6);background-image:url(data:image/gif;base64,R0lGODlhBAAEAIAAAOsdYQAAACH5BAAAAAAALAAAAAAEAAQAAAIEhI8JBQA7);background-position:15px 15px;background-repeat:no-repeat}.InputfieldImage .ImageData{display:none}.InputfieldImageValidExtensions{margin-left:1em}.InputfieldImageUpload{position:relative;margin:1em 0 0}.InputfieldImageUpload .AjaxUploadDropHere{display:none;position:absolute;top:0;right:0;opacity:.75;cursor:pointer}.ie-no-drop .InputfieldImageUpload .AjaxUploadDropHere{display:none;visibility:hidden}.InputfieldImageUpload .InputfieldImageRefresh{margin-bottom:0}.InputfieldImageNarrow .InputfieldHeader .InputfieldImageSizeSlider{width:50px}.InputfieldImageNarrow .InputfieldImageEdit__inner{display:block;padding-top:.5em}.InputfieldImageNarrow .InputfieldImageEdit__imagewrapper{display:block;width:100%;padding-bottom:0}.InputfieldImageNarrow .InputfieldImageEdit__edit{width:100%;padding-top:0}.InputfieldImageNarrow .InputfieldImageEdit__edit .InputfieldImageEdit__buttons,.InputfieldImageNarrow .InputfieldImageEdit__edit .InputfieldImageEdit__info{display:block;text-align:center}.InputfieldImageNarrow .InputfieldImageEdit__name{margin:0;display:block;text-align:center}.InputfieldImageNarrow .InputfieldImageUpload .AjaxUploadDropHere{display:none !important}.InputfieldFileSingle .gridImages .gridImage img,.InputfieldRenderValueMode .gridImages .gridImage img{cursor:zoom-in}.InputfieldImageEditAll .gridImage{display:block;width:100%}.InputfieldImageEditAll .gridImage:before,.InputfieldImageEditAll .gridImage:after{content:"";display:table;border-collapse:collapse}.InputfieldImageEditAll .gridImage:after{clear:both}.InputfieldImageEditAll .gridImage__overflow{position:relative;z-index:2;top:0;left:0;float:left;background:initial;display:block;height:auto !important;width:23%;overflow:visible;cursor:move;padding:10px;padding-right:0}.InputfieldImageEditAll .gridImage__overflow>img{display:block;position:static !important;top:0;left:0;transition:none;-ms-transform:none;transform:none;width:100%;max-width:100% important;height:initial !important;cursor:move}.InputfieldImageEditAll .gridImage__overflow>.focusArea{position:absolute;top:10px;left:10px}.InputfieldImageEditAll .gridImage .ImageData{position:relative;float:left;display:block;width:77%;padding-left:20px;padding-right:10px;z-index:3}.InputfieldImageEditAll .gridImage .ImageData .InputfieldFileDescription{margin-bottom:.5em}.InputfieldImageEditAll .gridImage .ImageData .InputfieldImageEdit__name{margin-bottom:0;margin-top:1em;position:relative;z-index:100;cursor:pointer}.InputfieldImageEditAll .gridImage .ImageData .InputfieldFileSort{display:none}.InputfieldImageEditAll .gridImage .ImageData input{position:relative;z-index:4}.InputfieldImageEditAll .gridImage.gridImagePlaceholder .gridImage__overflow{background:#fff}.InputfieldImageEditAll .gridImage__inner .gridImage__edit{display:none}.InputfieldImageEditAll .gridImage:hover .gridImage__inner{background:initial}.InputfieldImageEditAll .gridImage .InputfieldImageEdit__core input{width:100%}.InputfieldImageEditAll .gridImage__resize{margin-top:10px;color:#e83561;text-shadow:none}.InputfieldImageEditAll .gridImage__progress{bottom:10px;margin-left:10px}.InputfieldImageEditAll .gridImage.gridImageUploading .gridImage__overflow{margin-bottom:10px}.InputfieldImageEditAll .gridImage.gridImageUploading .gridImage__inner{overflow:hidden}.InputfieldImageEditAll .gridImage__trash{z-index:5;display:block !important;top:0;right:0}.InputfieldImageEditAll .gridImage__edit{display:none}.InputfieldImageEditAll .gridImage__tooltip{display:none !important}.InputfieldImageEditAll .gridImage--delete{background-color:#e83561;border-bottom:8px solid transparent;height:45px;overflow:hidden}.InputfieldImageEditAll .gridImage--delete .gridImage__overflow{display:none}.InputfieldImageEditAll .gridImage--delete .ImageData{padding-left:10px;width:100%}.InputfieldImageEditAll .gridImage--delete .ImageData .InputfieldImageEdit__name{color:rgba(255,255,255,.6);margin-top:3px;text-decoration:line-through}.InputfieldImageEditAll .gridImage--delete .InputfieldImageEdit__info{color:rgba(255,255,255,.4)}.InputfieldImageEditAll .gridImage--delete .InputfieldImageEdit__buttons,.InputfieldImageEditAll .gridImage--delete .InputfieldImageEdit__core,.InputfieldImageEditAll .gridImage--delete .InputfieldImageEdit__additional{display:none}.InputfieldImageEditAll .gridImage--delete:hover .gridImage__trash:hover{color:#fff;background-color:#e83561}.InputfieldImageEditAll .gridImage--delete:hover .gridImage__hover,.InputfieldImageEditAll .gridImage--delete .gridImage__hover{background:rgba(255,255,255,0)}.InputfieldImageEditAll.InputfieldImageNarrow .gridImage__overflow{display:block;width:100% !important;height:auto !important;padding:0}.InputfieldImageEditAll.InputfieldImageNarrow .gridImage__overflow img{width:100% important;height:auto !important}.InputfieldImageEditAll.InputfieldImageNarrow .gridImage__overflow>.focusArea{top:0;left:0}.InputfieldImageEditAll.InputfieldImageNarrow .gridImage .ImageData{padding:0;width:100% !important;display:block}.InputfieldImageEditAll.InputfieldImageNarrow .gridImage .ImageData .InputfieldImageEdit__name{margin-top:.5em}.InputfieldImageEditAll.InputfieldImageNarrow .gridImage .ImageData .InputfieldImageEdit__name,.InputfieldImageEditAll.InputfieldImageNarrow .gridImage .ImageData .InputfieldImageEdit__buttons,.InputfieldImageEditAll.InputfieldImageNarrow .gridImage .ImageData .InputfieldImageEdit__info{text-align:center;display:block}.InputfieldFileActionNote{display:none;white-space:nowrap} +.InputfieldImage .InputfieldHeader .InputfieldImageListToggle{float:right;padding-right:.75em;position:relative}.InputfieldImage .InputfieldHeader .InputfieldImageListToggle--active{opacity:.5}.InputfieldImage .InputfieldHeader .InputfieldImageListToggle:first-child{padding-right:1em}.InputfieldImage .InputfieldHeader .InputfieldImageSizeSlider{float:right;width:100px;position:relative;top:8px;right:1em}.InputfieldImage .InputfieldHeader .InputfieldImageSizeSlider .ui-slider-handle{outline:none}.InputfieldImage.InputfieldFileEmpty .InputfieldImageListToggle,.InputfieldImage.InputfieldFileEmpty .InputfieldImageSizeSlider,.InputfieldImage.InputfieldStateCollapsed .InputfieldImageListToggle,.InputfieldImage.InputfieldStateCollapsed .InputfieldImageSizeSlider{display:none}.InputfieldImageErrors{padding-left:0;margin-left:0}.InputfieldImageErrors li{margin-bottom:.5em;margin-top:0;color:#fff;background-color:#fc3a3f;padding:.3em .5em}.gridImages{list-style:none;padding-left:0;position:relative;margin:0;margin-right:-0.6em;display:block;list-style:none}.gridImage{list-style:none;position:relative;display:inline-block;box-shadow:0 1px 3px rgba(0,0,0,.2);border-radius:2px;background:#fff;padding:.4em;vertical-align:top;border:1px dashed transparent}li.gridImage{display:inline-block;margin:0 .6em .6em 0}.gridImage__overflow{width:100%;height:100%;overflow:hidden;position:relative;background-color:#fefefe;background-image:linear-gradient(45deg, #cbcbcb 25%, transparent 25%, transparent 75%, #cbcbcb 75%, #cbcbcb),linear-gradient(45deg, #cbcbcb 25%, transparent 25%, transparent 75%, #cbcbcb 75%, #cbcbcb);background-size:16px 16px;background-position:0 0,8px 8px}.gridImage__overflow>img{position:absolute;top:50%;left:50%;-ms-transform:translate3d(-50%, -50%, 0);transform:translate3d(-50%, -50%, 0)}.gridImage.gridImagePlaceholder .gridImage__overflow{background:#fff}.gridImage.ui-sortable-placeholder{display:inline-block;border-radius:2px;border:1px dashed #ccc;padding:.4em;visibility:visible !important;vertical-align:top;background-color:transparent;box-shadow:none}.gridImage.ui-sortable-placeholder::after{content:" ";display:block}.gridImage__hover{position:absolute;top:0;left:0;width:100%;height:100%;padding:.4em}.gridImage__inner{position:relative;width:100%;height:100%}.gridImage:hover .gridImage__inner{background:rgba(62,185,152,.7)}.gridImage__resize{position:absolute;display:block;height:100%;width:100%;line-height:130px;text-align:center;color:#fff;font-size:1.3em;cursor:move;text-shadow:0 0 7px rgba(62,185,152,.7)}.gridImage__resize.pw-resizing{text-shadow:none;background:rgba(0,0,0,.7)}.gridImage__progress{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;color:#3eb998;width:100%;height:10px;background:transparent;position:absolute;bottom:0;left:0}.gridImage__progress::-webkit-progress-bar{background-color:inherit}.gridImage__progress[value]::-webkit-progress-value{background-color:#3eb998}.gridImage__progress[value]::-moz-progress-bar{background-color:#3eb998}.gridImage__progress[value="-1"]{background-color:#e83561}.gridImage__trash{position:absolute;background:#fff;padding:.2em .6em;color:#aaa;z-index:2;cursor:pointer}label.gridImage__trash{display:none}.gridImage__trash--single{display:block !important;position:static}.gridImage__trash>input{display:none}.gridImage:hover .gridImage__trash{display:block}.gridImage:hover label.gridImage__trash:hover{display:block;color:#e83561;background-color:#fff}.gridImage__edit{position:absolute;display:block;height:100%;width:100%;line-height:130px;text-align:center;color:#fff !important;font-size:1.3em;cursor:move;text-shadow:0 0 7px rgba(62,185,152,.7);display:none}.gridImage__edit span{cursor:pointer}.gridImage:hover .gridImage__edit{display:block}.gridImage__edit:hover{color:#fff}.gridImage__tooltip{pointer-events:none;position:absolute;bottom:100%;padding:20px;-webkit-filter:drop-shadow(0 0 5px rgba(0, 0, 0, 0.1));filter:drop-shadow(0 0 5px rgba(0, 0, 0, 0.1));left:50%;transform:translate(-50%, 0);margin-bottom:12px;background:#fff;z-index:110;box-shadow:0 0 1px rgba(0,0,0,.25);opacity:0;transition:opacity .2s 2}.gridImage:hover .gridImage__tooltip{display:block;opacity:1;transition:opacity .2s 1s}.InputfieldImageSorting .gridImage__tooltip{display:none !important}.gridImage__tooltip input{pointer-events:none}.gridImage__tooltip table{margin:0;border-spacing:10px 0;border-collapse:separate}.gridImage__tooltip table th{color:#000;font-weight:bold;text-align:right}.gridImage__tooltip table th,.gridImage__tooltip table td{border:none !important;background:#fff !important}.gridImage__tooltip:after{top:100%;left:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-color:rgba(255,255,255,0);border-top-color:#fff;border-width:10px;margin-left:-10px}.gridImage.gridImageEditing .gridImage__inner{background:rgba(62,185,152,.5)}.gridImage--active{background-color:#3eb998}.gridImage--active .gridImage__inner{background:rgba(62,185,152,.5)}.gridImage--active .gridImage__trash{background-color:#3eb998;color:#fff}.gridImage--active .gridImage__trash:hover{background-color:#3eb998}.gridImage--active:hover .gridImage__trash:hover{background-color:#3eb998}.gridImage--delete{background-color:#e83561}.InputfieldImageEditSingle.gridImage--delete{background-color:transparent}.InputfieldImageEditSingle.gridImage--delete .InputfieldImageEdit__inner{outline:3px solid #e83561}.gridImage--delete .gridImage__trash{background-color:#e83561;color:#fff;display:block}.gridImage--delete .gridImage__trash:hover{background-color:#e83561}.gridImage--delete:hover .gridImage__edit{display:none}.gridImage--delete:hover .gridImage__trash:hover{background-color:#e83561}.gridImage--delete:hover .gridImage__inner{background:rgba(232,53,97,.3)}.InputfieldImageEdit{position:relative;display:none}.InputfieldImageEdit--active,.InputfieldImageEditSingle{display:block}.InputfieldImageEdit__inner{position:relative;display:flex;flex-flow:row;margin:1em .6em 1em 0;-webkit-filter:drop-shadow(0 1px 3px rgba(0, 0, 0, 0.2));filter:drop-shadow(0 1px 3px rgba(0, 0, 0, 0.2));background-color:#fff}.InputfieldImageEdit__close{cursor:pointer;position:absolute;font-size:1.4em;right:.5em;top:0;color:#ccc !important;text-decoration:none !important}.InputfieldFileSingle .InputfieldImageEdit__close{display:none}.InputfieldImageEdit__trash-single{cursor:pointer;position:absolute;font-size:1.4em;right:0;top:0;color:#aaa !important;text-decoration:none !important}.InputfieldImageEdit__trash-single:hover{color:#e83561}.InputfieldImageEdit__arrow{bottom:100%;content:" ";height:0;width:0;position:absolute;pointer-events:none;border:.5em solid rgba(255,255,255,0);border-bottom-color:#fff;transform:translate(-50%, 0)}.InputfieldImageEdit__imagewrapper{display:inline-block;display:flex;vertical-align:top;align-items:center;justify-content:space-around;width:300px;border-right:1px solid #eee;min-height:1em;padding:20px}.InputfieldImageEdit__imagewrapper>div{width:100%;position:relative}.InputfieldImageEdit__imagewrapper .detail{text-align:center;margin-top:2px}.InputfieldImageEdit__imagewrapper .detail-upload{display:block;opacity:0}.InputfieldImageEdit__imagewrapper .detail-focus{display:none}.InputfieldImageEdit__imagewrapper:hover .detail-upload{opacity:.7}.InputfieldImageEdit__imagewrapper>div.focusWrap .detail-upload{display:none}.InputfieldImageEdit__imagewrapper>div.focusWrap .detail-focus{display:block;opacity:.7}.InputfieldImageEdit__replace img{opacity:.5}.InputfieldImageEdit__edit{display:inline-block;vertical-align:top;min-height:100%;padding:20px;flex-grow:1}.InputfieldImageEdit__edit input{width:100%}.InputfieldImageEdit__image{position:relative;margin:0 auto;height:auto;cursor:zoom-in;max-width:100%}.InputfieldImageEdit__name{font-weight:bold;display:inline-block;margin-right:.5em !important;overflow-wrap:break-word;word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;cursor:pointer}.InputfieldImageEdit__info{font-size:.9em;color:#ccc;white-space:nowrap}.InputfieldImageEdit__buttons{margin:1em 0 .5em 0}.InputfieldImageEdit__buttons button{margin-bottom:.5em}.InputfieldImageEdit .InputfieldFileDescription+.InputfieldFileTags{margin-top:.5em}.gridImage__overflow .focusArea,.InputfieldImageEdit .focusArea{display:none;position:absolute;top:0;left:0;width:100%;height:100%;color:#fff;cursor:default}.gridImage__overflow .focusArea.focusActive,.InputfieldImageEdit .focusArea.focusActive{display:block;overflow:hidden}.gridImage__overflow .focusArea .focusCircle,.InputfieldImageEdit .focusArea .focusCircle{cursor:move;width:40px;height:40px;margin:-20px !important;border:3px solid #eb1d61;border-radius:50%;background-color:rgba(255,255,255,.6);background-image:url(data:image/gif;base64,R0lGODlhBAAEAIAAAOsdYQAAACH5BAAAAAAALAAAAAAEAAQAAAIEhI8JBQA7);background-position:15px 15px;background-repeat:no-repeat}.InputfieldImage .ImageData{display:none}.InputfieldImageValidExtensions{margin-left:1em}.InputfieldImageUpload{position:relative;margin:1em 0 0}.InputfieldImageUpload .AjaxUploadDropHere{display:none;position:absolute;top:0;right:0;opacity:.75;cursor:pointer}.ie-no-drop .InputfieldImageUpload .AjaxUploadDropHere{display:none;visibility:hidden}.InputfieldImageUpload .InputfieldImageRefresh{margin-bottom:0}.InputfieldImageNarrow .InputfieldHeader .InputfieldImageSizeSlider{width:50px}.InputfieldImageNarrow .InputfieldImageEdit__inner{display:block;padding-top:.5em}.InputfieldImageNarrow .InputfieldImageEdit__imagewrapper{display:block;width:100%;padding-bottom:0}.InputfieldImageNarrow .InputfieldImageEdit__edit{width:100%;padding-top:0}.InputfieldImageNarrow .InputfieldImageEdit__edit .InputfieldImageEdit__buttons,.InputfieldImageNarrow .InputfieldImageEdit__edit .InputfieldImageEdit__info{display:block;text-align:center}.InputfieldImageNarrow .InputfieldImageEdit__name{margin:0;display:block;text-align:center}.InputfieldImageNarrow .InputfieldImageUpload .AjaxUploadDropHere{display:none !important}.InputfieldFileSingle .gridImages .gridImage img,.InputfieldRenderValueMode .gridImages .gridImage img{cursor:zoom-in}.InputfieldImageEditAll .gridImage{display:block;width:100%}.InputfieldImageEditAll .gridImage:before,.InputfieldImageEditAll .gridImage:after{content:"";display:table;border-collapse:collapse}.InputfieldImageEditAll .gridImage:after{clear:both}.InputfieldImageEditAll .gridImage__overflow{position:relative;z-index:2;top:0;left:0;float:left;background:initial;display:block;height:auto !important;width:23%;overflow:visible;cursor:move;padding:10px;padding-right:0}.InputfieldImageEditAll .gridImage__overflow>img{display:block;position:static !important;top:0;left:0;transition:none;-ms-transform:none;transform:none;width:100%;max-width:100% important;height:initial !important;cursor:move}.InputfieldImageEditAll .gridImage__overflow>.focusArea{position:absolute;top:10px;left:10px}.InputfieldImageEditAll .gridImage .ImageData{position:relative;float:left;display:block;width:77%;padding-left:20px;padding-right:10px;z-index:3}.InputfieldImageEditAll .gridImage .ImageData .InputfieldFileDescription{margin-bottom:.5em}.InputfieldImageEditAll .gridImage .ImageData .InputfieldImageEdit__name{margin-bottom:0;margin-top:1em;position:relative;z-index:100;cursor:pointer}.InputfieldImageEditAll .gridImage .ImageData .InputfieldFileSort{display:none}.InputfieldImageEditAll .gridImage .ImageData input{position:relative;z-index:4}.InputfieldImageEditAll .gridImage.gridImagePlaceholder .gridImage__overflow{background:#fff}.InputfieldImageEditAll .gridImage__inner .gridImage__edit{display:none}.InputfieldImageEditAll .gridImage:hover .gridImage__inner{background:initial}.InputfieldImageEditAll .gridImage .InputfieldImageEdit__core input{width:100%}.InputfieldImageEditAll .gridImage__resize{margin-top:10px;color:#e83561;text-shadow:none}.InputfieldImageEditAll .gridImage__progress{bottom:10px;margin-left:10px}.InputfieldImageEditAll .gridImage.gridImageUploading .gridImage__overflow{margin-bottom:10px}.InputfieldImageEditAll .gridImage.gridImageUploading .gridImage__inner{overflow:hidden}.InputfieldImageEditAll .gridImage__trash{z-index:5;display:block !important;top:0;right:0}.InputfieldImageEditAll .gridImage__edit{display:none}.InputfieldImageEditAll .gridImage__tooltip{display:none !important}.InputfieldImageEditAll .gridImage--delete{background-color:#e83561;border-bottom:8px solid transparent;height:45px;overflow:hidden}.InputfieldImageEditAll .gridImage--delete .gridImage__overflow{display:none}.InputfieldImageEditAll .gridImage--delete .ImageData{padding-left:10px;width:100%}.InputfieldImageEditAll .gridImage--delete .ImageData .InputfieldImageEdit__name{color:rgba(255,255,255,.6);margin-top:3px;text-decoration:line-through}.InputfieldImageEditAll .gridImage--delete .InputfieldImageEdit__info{color:rgba(255,255,255,.4)}.InputfieldImageEditAll .gridImage--delete .InputfieldImageEdit__buttons,.InputfieldImageEditAll .gridImage--delete .InputfieldImageEdit__core,.InputfieldImageEditAll .gridImage--delete .InputfieldImageEdit__additional{display:none}.InputfieldImageEditAll .gridImage--delete:hover .gridImage__trash:hover{color:#fff;background-color:#e83561}.InputfieldImageEditAll .gridImage--delete:hover .gridImage__hover,.InputfieldImageEditAll .gridImage--delete .gridImage__hover{background:rgba(255,255,255,0)}.InputfieldImageEditAll.InputfieldImageNarrow .gridImage__overflow{display:block;width:100% !important;height:auto !important;padding:0}.InputfieldImageEditAll.InputfieldImageNarrow .gridImage__overflow img{width:100% important;height:auto !important}.InputfieldImageEditAll.InputfieldImageNarrow .gridImage__overflow>.focusArea{top:0;left:0}.InputfieldImageEditAll.InputfieldImageNarrow .gridImage .ImageData{padding:0;width:100% !important;display:block}.InputfieldImageEditAll.InputfieldImageNarrow .gridImage .ImageData .InputfieldImageEdit__name{margin-top:.5em}.InputfieldImageEditAll.InputfieldImageNarrow .gridImage .ImageData .InputfieldImageEdit__name,.InputfieldImageEditAll.InputfieldImageNarrow .gridImage .ImageData .InputfieldImageEdit__buttons,.InputfieldImageEditAll.InputfieldImageNarrow .gridImage .ImageData .InputfieldImageEdit__info{text-align:center;display:block}.InputfieldFileActionNote{display:none;white-space:nowrap} diff --git a/wire/modules/Inputfield/InputfieldImage/InputfieldImage.js b/wire/modules/Inputfield/InputfieldImage/InputfieldImage.js index 5714ab48..f812372c 100755 --- a/wire/modules/Inputfield/InputfieldImage/InputfieldImage.js +++ b/wire/modules/Inputfield/InputfieldImage/InputfieldImage.js @@ -1676,7 +1676,8 @@ function InputfieldImage($) { */ function errorItem(message, filename) { if(typeof filename !== "undefined") message = '' + filename + ': ' + message; - return '
  • ' + message + '
  • '; + var icon = " "; + return '
  • ' + icon + message + '
  • '; } /** @@ -1986,6 +1987,7 @@ function InputfieldImage($) { if(r.error) { $errorParent.append(errorItem(r.message)); + if(n == (response.length-1)) $progressItem.hide(); continue; } diff --git a/wire/modules/Inputfield/InputfieldImage/InputfieldImage.min.js b/wire/modules/Inputfield/InputfieldImage/InputfieldImage.min.js index 30d9ab30..8914e834 100644 --- a/wire/modules/Inputfield/InputfieldImage/InputfieldImage.min.js +++ b/wire/modules/Inputfield/InputfieldImage/InputfieldImage.min.js @@ -1 +1 @@ -function InputfieldImage($){var $uploadBeforeItem=null;var uploadReplace={file:"",item:null,edit:null};var magnificOptions={type:"image",closeOnContentClick:true,closeBtnInside:true};var cookieData=null;var retryGridItems=[];var gridSliding=false;function useAjaxUpload(){var isFileReaderSupport=window.File&&window.FileList&&window.FileReader;var isAjaxUpload=$(".InputfieldAllowAjaxUpload").length>0;var isPageIDIndicator=$("#PageIDIndicator").length>0;return isFileReaderSupport&&(isPageIDIndicator||isAjaxUpload)}function throttle(fn,threshhold,scope){threshhold||(threshhold=250);var last,deferTimer;return function(){var context=scope||this;var now=+new Date,args=arguments;if(last&&now .gridImage",start:function(e,ui){var size=getCookieData($el.closest(".Inputfield"),"size");ui.placeholder.append($("
    ").css({display:"block",height:size+"px",width:size+"px"}));timer=window.setTimeout(function(){closeEdit($el,null)},100);$el.addClass("InputfieldImageSorting")},stop:function(e,ui){var $this=$(this);if(timer!==null){ui.item.find(".InputfieldImageEdit__edit").click();clearTimeout(timer)}$this.children("li").each(function(n){var $sort=$(this).find(".InputfieldFileSort");if($sort.val()!=n)$sort.val(n).change()});$el.removeClass("InputfieldImageSorting")},cancel:".InputfieldImageEdit,.focusArea,input,textarea,button,select,option"};$el.sortable(sortableOptions)}function setupMagnificForRenderValue($el){var options=$.extend(true,{},magnificOptions);options.callbacks={elementParse:function(item){var src=$(item.el).attr("data-original");if(typeof src=="undefined"||!src)src=$(item.el).attr("src");item.src=src}};options.gallery={enabled:true};$el.find("img").magnificPopup(options)}function setupMagnificForSingle($el){var options=$.extend(true,{},magnificOptions);options.callbacks={elementParse:function(item){item.src=$(item.el).attr("src")}};options.gallery={enabled:false};$el.find("img").magnificPopup(options)}function findEditedElement($parent){return $parent.find(".InputfieldImageEdit--active")}function findEditMarkup($edit){return $("#"+$edit.find(".InputfieldImageEdit__edit").attr("data-current"))}function setDeleteStateOnAllItems($input){var checked=$input.is(":checked");var $items=$input.parents(".gridImages").find(".gridImage__deletebox");if(checked){$items.prop("checked","checked").change()}else{$items.removeAttr("checked").change()}}function updateGrid($inputfield){if(typeof $inputfield=="undefined"){var $gridImages=$(".gridImages")}else{var $gridImages=$inputfield.find(".gridImages")}$gridImages.each(function(){var $grid=$(this),$edit=findEditedElement($grid);if($edit.length){moveEdit(findEditMarkup($edit),$edit)}})}function checkInputfieldWidth($inputfield){var narrowItems=[];var mediumItems=[];var wideItems=[];var ni=0,mi=0,wi=0;var $inputfields;if(typeof $inputfield=="undefined"){$inputfields=$(".InputfieldImage.Inputfield")}else{$inputfields=$inputfield}$inputfields.removeClass("InputfieldImageNarrow InputfieldImageMedium InputfieldImageWide");$inputfields.each(function(){var $item=$(this);var width=$item.width();if(width<1)return;if(width<=500){narrowItems[ni]=$item;ni++}else if(width<=900){mediumItems[mi]=$item;mi++}else{wideItems[wi]=$item;wi++}});for(var n=0;n100?100:top,left:left>100?100:left,zoom:zoom>100?0:zoom};return focusData}function getFocusStr(focusObj){if(typeof focusObj=="undefined")focusObj=getFocus();return focusObj.top+" "+focusObj.left+" "+focusObj.zoom}function getFocusProperty(property){var focus=getFocus();return focus[property]}function setFocus(focusObj){focusData=focusObj;var focusStr=focusObj.top+" "+focusObj.left+" "+focusObj.zoom;$thumb.attr("data-focus",focusStr);$input=$edit.find(".InputfieldImageFocus");if(focusStr!=$input.val()){$input.val(focusStr).trigger("change")}}function setFocusProperty(property,value){var focus=getFocus();focus[property]=value;setFocus(focus)}function setFocusDragPosition(){var focus=getFocus();var $overlay=$focusCircle.parent();var w=$overlay.width();var h=$overlay.height();var x=Math.round(focus.left/100*w);var y=Math.round(focus.top/100*h);if(x<0)x=0;if(y<0)y=0;if(x>w)x=w;if(y>h)y=h;$focusCircle.css({top:y+"px",left:x+"px"})}$focusArea=$img.siblings(".focusArea");if(!$focusArea.length){$focusArea=$("
    ").addClass("focusArea");$img.after($focusArea)}$focusArea.css({height:$img.height()+"px",width:$img.width()+"px","background-color":"rgba(0,0,0,0.7)"}).addClass("focusActive");$focusCircle=$focusArea.find(".focusCircle");if(!$focusCircle.length){$focusCircle=$("
    ").addClass("focusCircle");$focusArea.append($focusCircle)}$img.parent().addClass("focusWrap");setFocusDragPosition();var zoomSlide=function(zoomPercent){var zoomBoxSize,focus,faWidth,faHeight;if(typeof zoomPercent=="undefined")zoomPercent=lastZoomPercent;lastZoomPercent=zoomPercent;faWidth=$focusArea.width();faHeight=$focusArea.height();if(faWidth>faHeight){$zoomBox.height(100-zoomPercent+"%");zoomBoxSize=$zoomBox.height();$zoomBox.width(zoomBoxSize)}else{$zoomBox.width(100-zoomPercent+"%");zoomBoxSize=$zoomBox.width();$zoomBox.height(zoomBoxSize)}focus=getFocus();var crop=getFocusZoomCropDimensions(focus.left,focus.top,zoomPercent,faWidth,faHeight,zoomBoxSize);$zoomBox.css({top:crop.top+"px",left:crop.left+"px","background-position":"-"+crop.left+"px -"+crop.top+"px","background-size":faWidth+"px "+faHeight+"px"});focus.zoom=zoomPercent;setFocusProperty("zoom",focus.zoom);if(mode=="grid")setGridSizeItem($thumb.parent(),gridSize,false,focus)};var dragEvent=function(event,ui){var $this=$(this);var circleSize=$this.outerHeight();var w=$this.parent().width();var h=$this.parent().height();var top=ui.position.top>0?ui.position.top:0;var left=ui.position.left>0?ui.position.left:0;top=top>0?top/h*100:0;left=left>0?left/w*100:0;var newFocus={top:top,left:left,zoom:getFocusProperty("zoom")};setFocus(newFocus);if(useZoomFocus){zoomSlide(newFocus.zoom)}else if(mode=="grid"){setGridSizeItem($thumb.parent(),gridSize,false,newFocus)}};$focusCircle.draggable({containment:"parent",drag:dragEvent,stop:dragEvent});if(useZoomFocus){var zoom=getFocusProperty("zoom");$zoomSlider=$("
    ").addClass("focusZoomSlider").css({"margin-top":"5px"});$zoomBox=$("
    ").addClass("focusZoomBox").css({position:"absolute",background:"transparent","background-image":"url("+$img.attr("src")+")"});$focusArea.prepend($zoomBox);$img.after($zoomSlider);$thumb.attr("src",$img.attr("src"));$zoomSlider.slider({min:0,max:50,value:zoom,range:"max",slide:function(event,ui){zoomSlide(ui.value)}});zoomSlide(zoom)}else{$focusArea.css("background-color","rgba(0,0,0,0.5)")}}function stopFocus($edit){$focusCircle=$edit.find(".focusCircle");if($focusCircle.length){var $focusWrap=$focusCircle.closest(".focusWrap");$focusWrap.find(".focusZoomSlider").slider("destroy").remove();$focusWrap.find(".focusZoomBox").remove();$focusWrap.removeClass("focusWrap");$focusCircle.draggable("destroy");$focusCircle.parent().removeClass("focusActive");$focusCircle.remove();var $button=$edit.find(".InputfieldImageButtonFocus");if($button.length){$icon=$button.find("i");$icon.removeClass("focusIconActive").toggleClass($icon.attr("data-toggle"))}}}function getFocusZoomPosition(focusPercent,sourceDimension,cropDimension){var focusPX=parseInt(sourceDimension*focusPercent/100);var position=parseInt(focusPX-cropDimension/2);var maxPosition=parseInt(sourceDimension-cropDimension);if(0>position)position=0;if(maxPosition=percentH?faWidth:faHeight;var cropDimension=maxDimension-maxDimension*zoomPercent/100;var posLeft=getFocusZoomPosition(focusLeft,faWidth,cropDimension);var posTop=getFocusZoomPosition(focusTop,faHeight,cropDimension);return{left:posLeft,top:posTop,width:cropDimension,height:cropDimension}}function getFocusZoomPosition4GridviewSquare(focusPercent,sourceDimPX,gridViewPX,zoomPercent,scale,smallestSidePX){var sourceDimPX=sourceDimPX*scale;var gridViewPercent=gridViewPX/sourceDimPX*100;var adjustPercent=gridViewPercent/2;var posPercent=focusPercent-adjustPercent;var posMinVal=0;var posMaxVal=100-gridViewPercent;if(posPercent<=posMinVal)posPercent=0;if(posPercent>=posMaxVal)posPercent=posMaxVal;var posPX=sourceDimPX/100*posPercent/scale;posPX=-1*parseInt(posPX);return posPX}function getFocusZoomCropDimensions4GridviewSquare(focusLeft,focusTop,zoomPercent,w,h,gridViewSize,scale){var smallestSidePX=w>=h?h:w;var posLeft=getFocusZoomPosition4GridviewSquare(focusLeft,w,gridViewSize,zoomPercent,scale,smallestSidePX);var posTop=getFocusZoomPosition4GridviewSquare(focusTop,h,gridViewSize,zoomPercent,scale,smallestSidePX);var transformLeft=parseInt(posLeft);var transformTop=parseInt(posTop);return{transformLeft:transformLeft,transformTop:transformTop,scale:scale}}function tearDownEdit($edit){stopFocus($edit);$edit.off("click",".InputfieldImageButtonFocus");$inputArea=$edit.find(".InputfieldImageEdit__edit");if($inputArea.children().not(".InputfieldFileSort").length){var $items=$inputArea.children();$("#"+$inputArea.attr("data-current")).find(".ImageData").append($items)}}function closeEdit($parent,$not){var $edit;if($parent){$edit=$parent.find(".InputfieldImageEdit--active")}else if($not){$edit=$(".InputfieldImageEdit--active").not($not.find(".InputfieldImageEdit--active"))}else{$edit=$(".InputfieldImageEdit--active")}if($edit.length){tearDownEdit($edit);$edit.removeClass("InputfieldImageEdit--active").removeAttr("id");$("#"+$edit.attr("data-for")).removeClass("gridImageEditing")}$(".InputfieldImageEdit__replace").removeClass("InputfieldImageEdit__replace")}function moveEdit($el,$edit){if(!$el||!$el.length)return;var $children=$el.parent().children().not(".InputfieldImageEdit");var lastTop=0;var found=false;var $insertBeforeItem=null;$children.each(function(){if($insertBeforeItem)return;var $item=$(this);var top=$item.offset().top;if(found&&top!=lastTop){$insertBeforeItem=$item}else if($item.attr("id")==$el.attr("id")){found=true}lastTop=top});if($insertBeforeItem){$edit.insertBefore($insertBeforeItem)}else{$edit.insertAfter($children.eq($children.length-1))}var $arrow=$edit.find(".InputfieldImageEdit__arrow");if($arrow.length)$arrow.css("left",$el.position().left+$el.outerWidth()/2+"px")}function initGridEvents(){$(window).resize(throttle(windowResize,200));$(document).on("click dblclick",".gridImage__trash",function(e){var $input=$(this).find("input");$input.prop("checked",inverseState).change();if(e.type=="dblclick"){setDeleteStateOnAllItems($input);e.preventDefault();e.stopPropagation()}});$(document).on("change",".gridImage__deletebox",function(){updateDeleteClass($(this))});$(document).on("click",".gridImage__edit",function(e){var $el=$(this).closest(".gridImage");if(!$el.length)return;if($el.closest(".InputfieldImageEditAll").length)return false;var $all=$el.closest(".gridImages");var $edit=$all.find(".InputfieldImageEdit");if($el.hasClass("gridImageEditing")){$edit.find(".InputfieldImageEdit__close").click()}else{moveEdit($el,$edit);tearDownEdit($edit);setupEdit($el,$edit);$edit.addClass("InputfieldImageEdit--active").attr("data-for",$el.attr("id"));$all.find(".gridImageEditing").removeClass("gridImageEditing");$el.addClass("gridImageEditing")}}).on("click",".InputfieldImageEditAll img",function(e){e.stopPropagation();e.preventDefault();$.magnificPopup.close();var options=$.extend(true,{},magnificOptions);var $img=$(this);options["items"]={src:$img.attr("data-original"),title:$img.attr("alt")};$.magnificPopup.open(options);return true}).on("click",".InputfieldImageButtonFocus",function(){var $button=$(this);var $icon=$button.find("i");var $edit=$button.closest(".InputfieldImageEdit, .gridImage");var $focusCircle=$edit.find(".focusCircle");if($focusCircle.length){stopFocus($edit)}else{startFocus($edit);$icon.addClass("focusIconActive");$icon.toggleClass($icon.attr("data-toggle"))}});$(document).on("click",function(e){var $el=$(e.target);if($el.closest(".InputfieldImageEdit").length){closeEdit(null,$el.parents(".gridImages"))}else if($el.is("input, textarea")&&$el.closest(".InputfieldImageEditAll").length){$el.focus().one("blur",function(){$el.closest(".gridImages").sortable("enable")});$el.closest(".gridImages").sortable("disable")}else if($el.closest(".gridImage__inner").length){closeEdit(null,$el.parents(".gridImages"))}else if($el.closest(".mfp-container").length){return}else if($el.closest(".ui-dialog").length){return}else if($el.is(".mfp-close")){return}else if($el.is("a.remove")){return}else{closeEdit(null,null)}});$(document).on("click",".InputfieldImageEdit__close",function(e){closeEdit($(this).parents(".gridImages"),null)});$(document).on("change",".InputfieldImage",function(){$(this).find(".InputfieldImageButtonCrop:not(.pw-modal-dblclick)").addClass("pw-modal-dblclick ui-state-disabled")}).on("click",".InputfieldImageButtonCrop.ui-state-disabled",function(e){var $button=$(this);var $list=$button.closest(".gridImages");if(!$list.hasClass("gridImagesAlerted")){ProcessWire.alert(ProcessWire.config.InputfieldImage.labels.changes);$list.addClass("gridImagesAlerted")}setTimeout(function(){$button.removeClass("ui-state-active")},500);return false});$(".ImagesGrid").on("click","button.pw-modal",function(e){e.preventDefault()});setupEditableFilename();checkInputfieldWidth()}function setupEditableFilename(){$(document).on("click",".InputfieldImageEdit__name",function(e){var $span=$(this).children("span");var $input=$span.closest(".gridImage, .InputfieldImageEdit").find(".InputfieldFileRename");var $list=$span.closest(".gridImages");$list.sortable("disable");$input.val($span.text());$span.on("keypress",function(e){if(e.which==13){$span.blur();return false}return true});$span.attr("autocomplete","off").attr("autocorrect","off").attr("autocapitalize","off").attr("spellcheck","false");$span.focus().on("blur",function(){var val=$(this).text();if($.trim(val).length<1){$span.text($input.val())}else if(val!=$input.val()){$input.val(val).change();$list.closest(".Inputfield").trigger("change")}$span.off("keypress");$list.sortable("enable")})})}function setListSize($inputfield,pct){pct=Math.floor(pct);$inputfield.find(".gridImage__overflow").each(function(){var dataPct=100-pct;var $this=$(this);$this.css("width",pct+"%");$this.siblings(".ImageData").css("width",dataPct+"%");$this.find("img").css({top:0,left:0,transform:"none"})});setCookieData($inputfield,"listSize",pct)}function setGridSize($inputfield,gridSize,ragged){if(!gridSize)return;var size=gridSize+"px";var $gridImages=$inputfield.find(".gridImages");if(typeof ragged=="undefined"||ragged==null)ragged=$gridImages.attr("data-ragged")?true:false;if(ragged){$gridImages.attr("data-ragged",1)}else{$gridImages.removeAttr("data-ragged")}$gridImages.find(".gridImage__overflow").each(function(){setGridSizeItem($(this),gridSize,ragged)});$gridImages.find(".gridImage__edit, .gridImage__resize").css("line-height",size);$gridImages.attr("data-size",gridSize);setCookieData($inputfield,"size",gridSize);if(retryGridItems.length)setTimeout(function(){while(retryGridItems.length){var item=retryGridItems.pop();setGridSizeItem(item.item,item.gridSize,ragged)}},150)}function setGridSizeItem($item,gridSize,ragged,focus){if($item.hasClass("gridImage__overflow")){var $img=$item.children("img")}else if($item.is("img")){var $img=$item;$item=$img.closest(".gridImage__overflow")}else{return}if(!gridSize){$img.removeAttr("width").removeAttr("height");$item.width("auto").height("auto");return}var zoom=0;var w=$img.width();var h=$img.height();var dataW=parseInt($img.attr("data-w"));var dataH=parseInt($img.attr("data-h"));if(!w)w=dataW;if(!h)h=dataH;if(!ragged&&typeof focus=="undefined"){var focusStr=$img.attr("data-focus");if(typeof focusStr=="undefined")focusStr="50.0 50.0 0";var focusArray=focusStr.split(" ");focus={top:parseFloat(focusArray[0]),left:parseFloat(focusArray[1]),zoom:parseInt(focusArray[2])}}if(!ragged)zoom=focus.zoom;if(ragged){$img.attr("height",gridSize).removeAttr("width");$img.css({"max-height":"100%","max-width":"none",top:"50%",left:"50%",transform:"translate3d(-50%, -50%, 0)"})}else if(zoom>0&&$item.closest(".InputfieldImageFocusZoom").length&&!gridSliding){if(w>=h){var maxHeight="100%";var maxWidth="none";if(w==dataW){h=gridSize;w=h/dataH*dataW}}else{var maxHeight="none";var maxWidth="100%";if(h==dataH){w=gridSize;h=w/dataW*dataH}}var scale=1+zoom/100*2;var crop=getFocusZoomCropDimensions4GridviewSquare(focus.left,focus.top,zoom,w,h,gridSize,scale);$img.css({left:"0px",top:"0px","transform-origin":"0px 0px",transform:"scale("+crop.scale+") translate3d("+crop.transformLeft+"px, "+crop.transformTop+"px, 0)","max-width":maxWidth,"max-height":maxHeight})}else if(w>=h){$img.attr("height",gridSize).removeAttr("width");if(focus.left<1)focus.left=.001;$img.css({"max-height":"100%","max-width":"none",top:"50%",left:focus.left+"%",transform:"translate3d(-"+focus.left+"%, -50%, 0)"})}else if(h>w){$img.attr("width",gridSize).removeAttr("height");if(focus.top<1)focus.top=.001;$img.css({"max-height":"none","max-width":"100%",top:focus.top+"%",left:"50%",transform:"translate3d(-50%, -"+focus.top+"%, 0)"})}else{$img.css({"max-height":"100%","max-width":"none",top:"50%",left:"50%",transform:"translate3d(-50%, -50%, 0)"});$img.removeAttr("width").attr("height",gridSize)}var w=$img.width();if(w){$item.css({width:ragged?w+"px":gridSize+"px",height:gridSize+"px"})}else{var tries=$item.attr("data-tries");if(!tries)tries=0;if(typeof tries=="undefined")tries=0;tries=parseInt(tries);if(tries>3){$item.css({width:gridSize+"px",height:gridSize+"px"})}else{retryGridItems.push({item:$item,gridSize:gridSize});$item.attr("data-tries",tries+1)}}}function setupImageListToggle($target){if($target.find(".InputfieldImageListToggle").length)return;var $list=$("").append("");var $left=$("").append("");var $grid=$("").append("");var activeClass="InputfieldImageListToggle--active";var defaultMode="";var toggleClick=function(e){var $a=$(this);var $inputfield=$a.closest(".Inputfield");var href=$a.attr("href");var size;var $aPrev=$a.parent().children("."+activeClass);var hrefPrev=$aPrev.attr("href");$aPrev.removeClass(activeClass);$a.addClass(activeClass);stopFocus($inputfield);if(href=="list"){if(!$inputfield.hasClass("InputfieldImageEditAll")){$inputfield.find(".InputfieldImageEdit--active .InputfieldImageEdit__close").click();$inputfield.addClass("InputfieldImageEditAll")}size=getCookieData($inputfield,"listSize");setListSize($inputfield,size);setCookieData($inputfield,"mode","list")}else if(href=="left"){$inputfield.removeClass("InputfieldImageEditAll");size=getCookieData($inputfield,"size");setGridSize($inputfield,size,true);setCookieData($inputfield,"mode","left");updateGrid()}else if(href=="grid"){$inputfield.removeClass("InputfieldImageEditAll");size=getCookieData($inputfield,"size");setGridSize($inputfield,size,false);setCookieData($inputfield,"mode","grid");if(hrefPrev=="left")setTimeout(function(){setGridSize($inputfield,size,false)},100)}setupSortable($inputfield.find(".gridImages"));$a.blur();return false};$list.click(toggleClick);$left.click(toggleClick);$grid.click(toggleClick);if($target.hasClass("InputfieldImage")){$target.find(".InputfieldHeader").append($list).append($left).append($grid);defaultMode=getCookieData($target,"mode")}else{$(".InputfieldImage .InputfieldHeader",$target).append($list).append($left).append($grid)}if(defaultMode=="list"){$list.click()}else if(defaultMode=="left"){$left.click()}else{}}function setupSizeSlider($inputfield){var $header=$inputfield.children(".InputfieldHeader");if($header.children(".InputfieldImageSizeSlider").length)return;var $gridImages=$inputfield.find(".gridImages");var gridSize=$gridImages.attr("data-gridsize");var min=gridSize/2;var max=gridSize*2;var $slider=$('');$header.append($slider);var sizeSlide=function(event,ui){var value=ui.value;var minPct=15;var divisor=Math.floor(gridSize/minPct);var v=value-min;var listSize=Math.floor(minPct+v/divisor);if($inputfield.hasClass("InputfieldImageEditAll")){setCookieData($inputfield,"size",value);setListSize($inputfield,listSize)}else{setCookieData($inputfield,"listSize",listSize);setGridSize($inputfield,value)}};$slider.slider({min:min,max:max,value:getCookieData($inputfield,"size"),range:"min",slide:sizeSlide,start:function(event,ui){gridSliding=true;if($inputfield.find(".InputfieldImageEdit:visible").length){$inputfield.find(".InputfieldImageEdit__close").click()}},stop:function(event,ui){gridSliding=false;sizeSlide(event,ui);updateGrid($inputfield)}})}function setCookieData($inputfield,property,value){var data=getCookieData($inputfield);var id=$inputfield.attr("id");var name=id?id.replace("wrap_Inputfield_",""):"";if(!name.length||typeof value=="undefined")return;if(data[name][property]==value)return;data[name][property]=value;$.cookie("InputfieldImage",data,{secure:window.location.protocol.indexOf("https:")===0});cookieData=data}function getCookieData($inputfield,property){if(cookieData&&typeof property=="undefined")return cookieData;var id=$inputfield.attr("id");var name=id?id.replace("wrap_Inputfield_",""):"na";var data=cookieData?cookieData:$.cookie("InputfieldImage");var value=null;if(!data)var data={};if(typeof data[name]=="undefined")data[name]={};if(typeof data[name].size=="undefined")data[name].size=parseInt($inputfield.find(".gridImages").attr("data-size"));if(typeof data[name].listSize=="undefined")data[name].listSize=23;if(typeof data[name].mode=="undefined")data[name].mode=$inputfield.find(".gridImages").attr("data-gridMode");if(cookieData==null)cookieData=data;if(typeof property=="undefined"){value=data}else if(property===true){value=data[name]}else if(typeof data[name][property]!="undefined"){value=data[name][property]}return value}function initInputfield($inputfield){if($inputfield.hasClass("InputfieldStateCollapsed"))return;var maxFiles=parseInt($inputfield.find(".InputfieldImageMaxFiles").val());var $gridImages=$inputfield.find(".gridImages");var size=getCookieData($inputfield,"size");var mode=getCookieData($inputfield,"mode");var ragged=mode=="left"?true:false;if(!size)size=$gridImages.attr("data-gridsize");size=parseInt(size);if($inputfield.hasClass("InputfieldImageEditAll")||mode=="list"){var listSize=getCookieData($inputfield,"listSize");setListSize($inputfield,listSize)}else{setGridSize($inputfield,size,ragged)}if(!$inputfield.hasClass("InputfieldImageInit")){$inputfield.addClass("InputfieldImageInit");if($inputfield.hasClass("InputfieldRenderValueMode")){return setupMagnificForRenderValue($inputfield)}else if(maxFiles==1){$inputfield.addClass("InputfieldImageMax1");setupMagnificForSingle($inputfield)}else{setupSortable($gridImages)}setupImageListToggle($inputfield);setupSizeSlider($inputfield)}checkInputfieldWidth($inputfield);$inputfield.on("change",".InputfieldFileActionSelect",function(){var $note=$(this).next(".InputfieldFileActionNote");if($(this).val().length){$note.fadeIn()}else{$note.hide()}})}function initUploadOldSchool(){$("body").addClass("ie-no-drop");$(".InputfieldImage.InputfieldFileMultiple").each(function(){var $field=$(this),maxFiles=parseInt($field.find(".InputfieldFileMaxFiles").val()),$list=$field.find(".gridImages"),$uploadArea=$field.find(".InputfieldImageUpload");$uploadArea.on("change","input[type=file]",function(){var $t=$(this),$mask=$t.parent(".InputMask");if($t.val().length>1)$mask.addClass("ui-state-disabled");else $mask.removeClass("ui-state-disabled");if($t.next("input.InputfieldFile").length>0)return;var numFiles=$list.children("li").length+$uploadArea.find("input[type=file]").length+1;if(maxFiles>0&&numFiles>=maxFiles)return;$uploadArea.find(".InputMask").not(":last").each(function(){var $m=$(this);if($m.find("input[type=file]").val()<1)$m.remove()});var $i=$mask.clone().removeClass("ui-state-disabled");$i.children("input[type=file]").val("");$i.insertAfter($mask)})})}function initUploadHTML5($inputfield){var $target;if($inputfield.length>0){$target=$inputfield.find(".InputfieldImageUpload")}else{$target=$(".InputfieldImageUpload")}$target.each(function(i){var $this=$(this);var $content=$this.closest(".InputfieldContent");if($this.hasClass("InputfieldImageInitUpload"))return;initHTML5Item($content,i);$this.addClass("InputfieldImageInitUpload")});function initHTML5Item($this,i){var $form=$this.parents("form");var $repeaterItem=$this.closest(".InputfieldRepeaterItem");var postUrl=$repeaterItem.length?$repeaterItem.attr("data-editUrl"):$form.attr("action");postUrl+=(postUrl.indexOf("?")>-1?"&":"?")+"InputfieldFileAjax=1";var $postToken=$form.find("input._post_token");var postTokenName=$postToken.attr("name");var postTokenValue=$postToken.val();var $errorParent=$this.find(".InputfieldImageErrors").first();var fieldName=$this.find(".InputfieldImageUpload").data("fieldname");fieldName=fieldName.slice(0,-2);var $inputfield=$this.closest(".Inputfield.InputfieldImage");var extensions=$this.find(".InputfieldImageUpload").data("extensions").toLowerCase();var maxFilesize=$this.find(".InputfieldImageUpload").data("maxfilesize");var filesUpload=$this.find("input[type=file]").get(0);var $fileList=$this.find(".gridImages");var fileList=$fileList.get(0);var gridSize=$fileList.data("gridsize");var doneTimer=null;var maxFiles=parseInt($this.find(".InputfieldImageMaxFiles").val());var resizeSettings=getClientResizeSettings($inputfield);var useClientResize=resizeSettings.maxWidth>0||resizeSettings.maxHeight>0||resizeSettings.maxSize>0;setupDropzone($this);if(maxFiles!=1)setupDropInPlace($fileList);$fileList.children().addClass("InputfieldFileItemExisting");$inputfield.on("pwimageupload",function(event,data){traverseFiles([data.file],data.xhr)});function errorItem(message,filename){if(typeof filename!=="undefined")message=""+filename+": "+message;return"
  • "+message+"
  • "}function basename(str){var base=new String(str).substring(str.lastIndexOf("/")+1);if(base.lastIndexOf(".")!=-1)base=base.substring(0,base.lastIndexOf("."));return base}function setupDropzone($el){if($el.hasClass("InputfieldImageDropzoneInit"))return;var el=$el.get(0);var $inputfield=$el.closest(".Inputfield");function dragStart(){if($inputfield.hasClass("pw-drag-in-file"))return;$el.addClass("ui-state-hover");$inputfield.addClass("pw-drag-in-file")}function dragStop(){if(!$inputfield.hasClass("pw-drag-in-file"))return;$el.removeClass("ui-state-hover");$inputfield.removeClass("pw-drag-in-file")}el.addEventListener("dragleave",function(){dragStop()},false);el.addEventListener("dragenter",function(evt){evt.preventDefault();dragStart()},false);el.addEventListener("dragover",function(evt){if(!$el.is("ui-state-hover"))dragStart();evt.preventDefault();evt.stopPropagation();return false},false);el.addEventListener("drop",function(evt){traverseFiles(evt.dataTransfer.files);dragStop();evt.preventDefault();evt.stopPropagation();return false},false);$el.addClass("InputfieldImageDropzoneInit")}function setupDropInPlace($gridImages){var $i=null;var haltDrag=false;var timer=null;var $inputfield=$gridImages.closest(".Inputfield");function addInputfieldClass(){$inputfield.addClass("pw-drag-in-file")}function removeInputfieldClass(){$inputfield.removeClass("pw-drag-in-file")}function getCenterCoordinates($el){var offset=$el.offset();var width=$el.width();var height=$el.height();var centerX=offset.left+width/2;var centerY=offset.top+height/2;return{clientX:centerX,clientY:centerY}}function noDropInPlace(){return $gridImages.find(".InputfieldImageEdit--active").length>0}function dragEnter(evt){if(noDropInPlace())return;evt.preventDefault();evt.stopPropagation();addInputfieldClass();haltDrag=false;if($i==null){var gridSize=$gridImages.attr("data-size")+"px";var $o=$("
    ").addClass("gridImage__overflow");if($gridImages.closest(".InputfieldImageEditAll").length){$o.css({width:"100%",height:gridSize})}else{$o.css({width:gridSize,height:gridSize})}$i=$("
  • ").addClass("ImageOuter gridImage gridImagePlaceholder").append($o);$gridImages.append($i)}var coords=getCenterCoordinates($i);$i.simulate("mousedown",coords)}function dragOver(evt){if(noDropInPlace())return;evt.preventDefault();evt.stopPropagation();addInputfieldClass();haltDrag=false;if($i==null)return;var coords={clientX:evt.originalEvent.clientX,clientY:evt.originalEvent.clientY};$i.simulate("mousemove",coords)}function dragEnd(evt){if(noDropInPlace())return;evt.preventDefault();evt.stopPropagation();if($i==null)return false;haltDrag=true;if(timer)clearTimeout(timer);timer=setTimeout(function(){if(!haltDrag||$i==null)return;$i.remove();$i=null;removeInputfieldClass()},1e3)}function drop(evt){if(noDropInPlace())return;removeInputfieldClass();haltDrag=false;var coords={clientX:evt.clientX,clientY:evt.clientY};$i.simulate("mouseup",coords);$uploadBeforeItem=$i.next(".gridImage");$i.remove();$i=null}if($gridImages.length&&!$gridImages.hasClass("gridImagesInitDropInPlace")){$gridImages.on("dragenter",dragEnter);$gridImages.on("dragover",dragOver);$gridImages.on("dragleave",dragEnd);$gridImages.on("drop",drop);$gridImages.addClass("gridImagesInitDropInPlace")}}function uploadFile(file,extension,xhrsub){var labels=ProcessWire.config.InputfieldImage.labels;var filesizeStr=parseInt(file.size/1024,10)+" kB";var tooltipMarkup=""+'
    '+""+""+'"+""+""+""+""+""+""+"
    "+labels.dimensions+"'+labels.na+"
    "+labels.filesize+""+filesizeStr+"
    "+labels.variations+"0
    "+"
    ";var $progressItem=$('
  • '),$tooltip=$(tooltipMarkup),$imgWrapper=$('
    '),$imageData=$('
    '),$hover=$("
    "),$progressBar=$(""),$edit=$(' '),$spinner=$('
    '),reader,xhr,fileData,fileUrl=URL.createObjectURL(file),$fileList=$inputfield.find(".gridImages"),singleMode=maxFiles==1,size=getCookieData($inputfield,"size"),listSize=getCookieData($inputfield,"listSize"),listMode=$inputfield.hasClass("InputfieldImageEditAll"),$img=$('');$imgWrapper.append($img);$hover.find(".gridImage__inner").append($edit);$hover.find(".gridImage__inner").append($spinner.css("display","none"));$hover.find(".gridImage__inner").append($progressBar);$imageData.append($(""+'

    '+file.name+"

    "+''+filesizeStr+""));if(listMode){$imgWrapper.css("width",listSize+"%");$imageData.css("width",100-listSize+"%")}else{$imgWrapper.css({width:size+"px",height:size+"px"})}$progressItem.append($tooltip).append($imgWrapper).append($hover).append($imageData);$img.attr({src:fileUrl,"data-original":fileUrl});img=new Image;img.addEventListener("load",function(){$tooltip.find(".dimensions").html(this.width+" × "+this.height);var factor=Math.min(this.width,this.height)/size;$img.attr({width:this.width/factor,height:this.height/factor})},false);img.src=fileUrl;if(typeof xhrsub!="undefined"){xhr=xhrsub}else{xhr=new XMLHttpRequest}function updateProgress(evt){if(typeof evt!="undefined"){if(!evt.lengthComputable)return;$progressBar.attr("value",parseInt(evt.loaded/evt.total*100))}$("body").addClass("pw-uploading");$spinner.css("display","block")}xhr.upload.addEventListener("progress",updateProgress,false);xhr.addEventListener("load",function(){xhr.getAllResponseHeaders();var response=$.parseJSON(xhr.responseText);if(typeof response.ajaxResponse!="undefined")response=response.ajaxResponse;var wasZipFile=response.length>1;if(response.error!==undefined)response=[response];for(var n=0;n-1){uploadReplaceName=uploadReplaceName.substring(0,uploadReplaceName.indexOf("?"))}var uploadReplaceExt=uploadReplaceName.substring(uploadReplaceName.lastIndexOf(".")+1).toLowerCase();uploadReplaceName=uploadReplaceName.substring(0,uploadReplaceName.lastIndexOf("."));if(uploadReplaceExt==uploadNewExt){$imageEditName.children("span").text(uploadReplaceName).removeAttr("contenteditable")}$markup.find(".gridImage__edit").click()}uploadReplace.file="";uploadReplace.item=null;uploadReplace.edit=null}if(doneTimer)clearTimeout(doneTimer);$uploadBeforeItem=null;doneTimer=setTimeout(function(){if(maxFiles!=1){setupSortable($fileList)}else{setupMagnificForSingle($inputfield)}$("body").removeClass("pw-uploading");$fileList.trigger("AjaxUploadDone")},500);$inputfield.trigger("change").removeClass("InputfieldFileEmpty")},false);if(uploadReplace.edit){uploadReplace.edit.find(".InputfieldImageEdit__close").click()}else if($inputfield.find(".InputfieldImageEdit:visible").length){$inputfield.find(".InputfieldImageEdit__close").click()}if(uploadReplace.item){uploadReplace.item.replaceWith($progressItem);uploadReplace.item=$progressItem}else if($uploadBeforeItem&&$uploadBeforeItem.length){$uploadBeforeItem.before($progressItem)}else{$fileList.append($progressItem)}function sendUpload(file,imageData){if(typeof xhrsub=="undefined"){xhr.open("POST",postUrl,true)}xhr.setRequestHeader("X-FILENAME",encodeURIComponent(file.name));xhr.setRequestHeader("X-FIELDNAME",fieldName);if(uploadReplace.item)xhr.setRequestHeader("X-REPLACENAME",uploadReplace.file);xhr.setRequestHeader("Content-Type","application/octet-stream");xhr.setRequestHeader("X-"+postTokenName,postTokenValue);xhr.setRequestHeader("X-REQUESTED-WITH","XMLHttpRequest");if(typeof imageData!="undefined"&&imageData!=false){xhr.send(imageData)}else{xhr.send(file)}updateGrid();$inputfield.trigger("change");var numFiles=$inputfield.find(".InputfieldFileItem").length;if(numFiles==1){$inputfield.removeClass("InputfieldFileEmpty").removeClass("InputfieldFileMultiple").addClass("InputfieldFileSingle")}else if(numFiles>1){$inputfield.removeClass("InputfieldFileEmpty").removeClass("InputfieldFileSingle").addClass("InputfieldFileMultiple")}}updateProgress();var ext=file.name.substring(file.name.lastIndexOf(".")+1).toLowerCase();if(useClientResize&&(ext=="jpg"||ext=="jpeg"||ext=="png"||ext=="gif")){var resizer=new PWImageResizer(resizeSettings);$spinner.addClass("pw-resizing");resizer.resize(file,function(imageData){$spinner.removeClass("pw-resizing");sendUpload(file,imageData)})}else{sendUpload(file)}}function traverseFiles(files,xhr){var toKilobyte=function(i){return parseInt(i/1024,10)};if(typeof files==="undefined"){fileList.innerHTML="No support for the File API in this web browser";return}for(var i=0,l=files.length;imaxFilesize&&maxFilesize>2e6){var filesizeKB=toKilobyte(files[i].size),maxFilesizeKB=toKilobyte(maxFilesize);message="Filesize "+filesizeKB+" kb is too big. Maximum allowed is "+maxFilesizeKB+" kb";$errorParent.append(errorItem(message,files[i].name))}else if(typeof xhr!="undefined"){uploadFile(files[i],extension,xhr)}else{uploadFile(files[i],extension)}if(maxFiles==1)break}}filesUpload.addEventListener("change",function(evt){traverseFiles(this.files);evt.preventDefault();evt.stopPropagation();this.value=""},false)}function setupEnlargementDropzones(){var sel=".InputfieldImageEdit__imagewrapper img";$(document).on("dragenter",sel,function(){var $this=$(this);if($this.closest(".InputfieldImageMax1").length)return;var src=$this.attr("src");var $edit=$this.closest(".InputfieldImageEdit");var $parent=$this.closest(".InputfieldImageEdit__imagewrapper");$parent.addClass("InputfieldImageEdit__replace");uploadReplace.file=new String(src).substring(src.lastIndexOf("/")+1);uploadReplace.item=$("#"+$edit.attr("data-for"));uploadReplace.edit=$edit}).on("dragleave",sel,function(){var $this=$(this);if($this.closest(".InputfieldImageMax1").length)return;var $parent=$this.closest(".InputfieldImageEdit__imagewrapper");$parent.removeClass("InputfieldImageEdit__replace");uploadReplace.file="";uploadReplace.item=null;uploadReplace.edit=null})}setupEnlargementDropzones()}function getClientResizeSettings($inputfield){var settings={maxWidth:0,maxHeight:0,maxSize:0,quality:1,autoRotate:true,debug:ProcessWire.config.debug};var data=$inputfield.attr("data-resize");if(typeof data!="undefined"&&data.length){data=data.split(";");settings.maxWidth=data[0].length?parseInt(data[0]):0;settings.maxHeight=data[1].length?parseInt(data[1]):0;settings.maxSize=data[2].length?parseFloat(data[2]):0;settings.quality=parseFloat(data[3])}return settings}function init(){$(".InputfieldImage.Inputfield").each(function(){initInputfield($(this))});initGridEvents();if(useAjaxUpload()){initUploadHTML5("")}else{initUploadOldSchool()}$(document).on("reloaded",".InputfieldImage",function(){var $inputfield=$(this);initInputfield($inputfield);initUploadHTML5($inputfield)}).on("wiretabclick",function(e,$newTab,$oldTab){$newTab.find(".InputfieldImage").each(function(){initInputfield($(this))})}).on("opened",".InputfieldImage",function(){initInputfield($(this))})}init()}jQuery(document).ready(function($){InputfieldImage($)}); \ No newline at end of file +function InputfieldImage($){var $uploadBeforeItem=null;var uploadReplace={file:"",item:null,edit:null};var magnificOptions={type:"image",closeOnContentClick:true,closeBtnInside:true};var cookieData=null;var retryGridItems=[];var gridSliding=false;function useAjaxUpload(){var isFileReaderSupport=window.File&&window.FileList&&window.FileReader;var isAjaxUpload=$(".InputfieldAllowAjaxUpload").length>0;var isPageIDIndicator=$("#PageIDIndicator").length>0;return isFileReaderSupport&&(isPageIDIndicator||isAjaxUpload)}function throttle(fn,threshhold,scope){threshhold||(threshhold=250);var last,deferTimer;return function(){var context=scope||this;var now=+new Date,args=arguments;if(last&&now .gridImage",start:function(e,ui){var size=getCookieData($el.closest(".Inputfield"),"size");ui.placeholder.append($("
    ").css({display:"block",height:size+"px",width:size+"px"}));timer=window.setTimeout(function(){closeEdit($el,null)},100);$el.addClass("InputfieldImageSorting")},stop:function(e,ui){var $this=$(this);if(timer!==null){ui.item.find(".InputfieldImageEdit__edit").click();clearTimeout(timer)}$this.children("li").each(function(n){var $sort=$(this).find(".InputfieldFileSort");if($sort.val()!=n)$sort.val(n).change()});$el.removeClass("InputfieldImageSorting")},cancel:".InputfieldImageEdit,.focusArea,input,textarea,button,select,option"};$el.sortable(sortableOptions)}function setupMagnificForRenderValue($el){var options=$.extend(true,{},magnificOptions);options.callbacks={elementParse:function(item){var src=$(item.el).attr("data-original");if(typeof src=="undefined"||!src)src=$(item.el).attr("src");item.src=src}};options.gallery={enabled:true};$el.find("img").magnificPopup(options)}function setupMagnificForSingle($el){var options=$.extend(true,{},magnificOptions);options.callbacks={elementParse:function(item){item.src=$(item.el).attr("src")}};options.gallery={enabled:false};$el.find("img").magnificPopup(options)}function findEditedElement($parent){return $parent.find(".InputfieldImageEdit--active")}function findEditMarkup($edit){return $("#"+$edit.find(".InputfieldImageEdit__edit").attr("data-current"))}function setDeleteStateOnAllItems($input){var checked=$input.is(":checked");var $items=$input.parents(".gridImages").find(".gridImage__deletebox");if(checked){$items.prop("checked","checked").change()}else{$items.removeAttr("checked").change()}}function updateGrid($inputfield){if(typeof $inputfield=="undefined"){var $gridImages=$(".gridImages")}else{var $gridImages=$inputfield.find(".gridImages")}$gridImages.each(function(){var $grid=$(this),$edit=findEditedElement($grid);if($edit.length){moveEdit(findEditMarkup($edit),$edit)}})}function checkInputfieldWidth($inputfield){var narrowItems=[];var mediumItems=[];var wideItems=[];var ni=0,mi=0,wi=0;var $inputfields;if(typeof $inputfield=="undefined"){$inputfields=$(".InputfieldImage.Inputfield")}else{$inputfields=$inputfield}$inputfields.removeClass("InputfieldImageNarrow InputfieldImageMedium InputfieldImageWide");$inputfields.each(function(){var $item=$(this);var width=$item.width();if(width<1)return;if(width<=500){narrowItems[ni]=$item;ni++}else if(width<=900){mediumItems[mi]=$item;mi++}else{wideItems[wi]=$item;wi++}});for(var n=0;n100?100:top,left:left>100?100:left,zoom:zoom>100?0:zoom};return focusData}function getFocusStr(focusObj){if(typeof focusObj=="undefined")focusObj=getFocus();return focusObj.top+" "+focusObj.left+" "+focusObj.zoom}function getFocusProperty(property){var focus=getFocus();return focus[property]}function setFocus(focusObj){focusData=focusObj;var focusStr=focusObj.top+" "+focusObj.left+" "+focusObj.zoom;$thumb.attr("data-focus",focusStr);$input=$edit.find(".InputfieldImageFocus");if(focusStr!=$input.val()){$input.val(focusStr).trigger("change")}}function setFocusProperty(property,value){var focus=getFocus();focus[property]=value;setFocus(focus)}function setFocusDragPosition(){var focus=getFocus();var $overlay=$focusCircle.parent();var w=$overlay.width();var h=$overlay.height();var x=Math.round(focus.left/100*w);var y=Math.round(focus.top/100*h);if(x<0)x=0;if(y<0)y=0;if(x>w)x=w;if(y>h)y=h;$focusCircle.css({top:y+"px",left:x+"px"})}$focusArea=$img.siblings(".focusArea");if(!$focusArea.length){$focusArea=$("
    ").addClass("focusArea");$img.after($focusArea)}$focusArea.css({height:$img.height()+"px",width:$img.width()+"px","background-color":"rgba(0,0,0,0.7)"}).addClass("focusActive");$focusCircle=$focusArea.find(".focusCircle");if(!$focusCircle.length){$focusCircle=$("
    ").addClass("focusCircle");$focusArea.append($focusCircle)}$img.parent().addClass("focusWrap");setFocusDragPosition();var zoomSlide=function(zoomPercent){var zoomBoxSize,focus,faWidth,faHeight;if(typeof zoomPercent=="undefined")zoomPercent=lastZoomPercent;lastZoomPercent=zoomPercent;faWidth=$focusArea.width();faHeight=$focusArea.height();if(faWidth>faHeight){$zoomBox.height(100-zoomPercent+"%");zoomBoxSize=$zoomBox.height();$zoomBox.width(zoomBoxSize)}else{$zoomBox.width(100-zoomPercent+"%");zoomBoxSize=$zoomBox.width();$zoomBox.height(zoomBoxSize)}focus=getFocus();var crop=getFocusZoomCropDimensions(focus.left,focus.top,zoomPercent,faWidth,faHeight,zoomBoxSize);$zoomBox.css({top:crop.top+"px",left:crop.left+"px","background-position":"-"+crop.left+"px -"+crop.top+"px","background-size":faWidth+"px "+faHeight+"px"});focus.zoom=zoomPercent;setFocusProperty("zoom",focus.zoom);if(mode=="grid")setGridSizeItem($thumb.parent(),gridSize,false,focus)};var dragEvent=function(event,ui){var $this=$(this);var circleSize=$this.outerHeight();var w=$this.parent().width();var h=$this.parent().height();var top=ui.position.top>0?ui.position.top:0;var left=ui.position.left>0?ui.position.left:0;top=top>0?top/h*100:0;left=left>0?left/w*100:0;var newFocus={top:top,left:left,zoom:getFocusProperty("zoom")};setFocus(newFocus);if(useZoomFocus){zoomSlide(newFocus.zoom)}else if(mode=="grid"){setGridSizeItem($thumb.parent(),gridSize,false,newFocus)}};$focusCircle.draggable({containment:"parent",drag:dragEvent,stop:dragEvent});if(useZoomFocus){var zoom=getFocusProperty("zoom");$zoomSlider=$("
    ").addClass("focusZoomSlider").css({"margin-top":"5px"});$zoomBox=$("
    ").addClass("focusZoomBox").css({position:"absolute",background:"transparent","background-image":"url("+$img.attr("src")+")"});$focusArea.prepend($zoomBox);$img.after($zoomSlider);$thumb.attr("src",$img.attr("src"));$zoomSlider.slider({min:0,max:50,value:zoom,range:"max",slide:function(event,ui){zoomSlide(ui.value)}});zoomSlide(zoom)}else{$focusArea.css("background-color","rgba(0,0,0,0.5)")}}function stopFocus($edit){$focusCircle=$edit.find(".focusCircle");if($focusCircle.length){var $focusWrap=$focusCircle.closest(".focusWrap");$focusWrap.find(".focusZoomSlider").slider("destroy").remove();$focusWrap.find(".focusZoomBox").remove();$focusWrap.removeClass("focusWrap");$focusCircle.draggable("destroy");$focusCircle.parent().removeClass("focusActive");$focusCircle.remove();var $button=$edit.find(".InputfieldImageButtonFocus");if($button.length){$icon=$button.find("i");$icon.removeClass("focusIconActive").toggleClass($icon.attr("data-toggle"))}}}function getFocusZoomPosition(focusPercent,sourceDimension,cropDimension){var focusPX=parseInt(sourceDimension*focusPercent/100);var position=parseInt(focusPX-cropDimension/2);var maxPosition=parseInt(sourceDimension-cropDimension);if(0>position)position=0;if(maxPosition=percentH?faWidth:faHeight;var cropDimension=maxDimension-maxDimension*zoomPercent/100;var posLeft=getFocusZoomPosition(focusLeft,faWidth,cropDimension);var posTop=getFocusZoomPosition(focusTop,faHeight,cropDimension);return{left:posLeft,top:posTop,width:cropDimension,height:cropDimension}}function getFocusZoomPosition4GridviewSquare(focusPercent,sourceDimPX,gridViewPX,zoomPercent,scale,smallestSidePX){var sourceDimPX=sourceDimPX*scale;var gridViewPercent=gridViewPX/sourceDimPX*100;var adjustPercent=gridViewPercent/2;var posPercent=focusPercent-adjustPercent;var posMinVal=0;var posMaxVal=100-gridViewPercent;if(posPercent<=posMinVal)posPercent=0;if(posPercent>=posMaxVal)posPercent=posMaxVal;var posPX=sourceDimPX/100*posPercent/scale;posPX=-1*parseInt(posPX);return posPX}function getFocusZoomCropDimensions4GridviewSquare(focusLeft,focusTop,zoomPercent,w,h,gridViewSize,scale){var smallestSidePX=w>=h?h:w;var posLeft=getFocusZoomPosition4GridviewSquare(focusLeft,w,gridViewSize,zoomPercent,scale,smallestSidePX);var posTop=getFocusZoomPosition4GridviewSquare(focusTop,h,gridViewSize,zoomPercent,scale,smallestSidePX);var transformLeft=parseInt(posLeft);var transformTop=parseInt(posTop);return{transformLeft:transformLeft,transformTop:transformTop,scale:scale}}function tearDownEdit($edit){stopFocus($edit);$edit.off("click",".InputfieldImageButtonFocus");$inputArea=$edit.find(".InputfieldImageEdit__edit");if($inputArea.children().not(".InputfieldFileSort").length){var $items=$inputArea.children();$("#"+$inputArea.attr("data-current")).find(".ImageData").append($items)}}function closeEdit($parent,$not){var $edit;if($parent){$edit=$parent.find(".InputfieldImageEdit--active")}else if($not){$edit=$(".InputfieldImageEdit--active").not($not.find(".InputfieldImageEdit--active"))}else{$edit=$(".InputfieldImageEdit--active")}if($edit.length){tearDownEdit($edit);$edit.removeClass("InputfieldImageEdit--active").removeAttr("id");$("#"+$edit.attr("data-for")).removeClass("gridImageEditing")}$(".InputfieldImageEdit__replace").removeClass("InputfieldImageEdit__replace")}function moveEdit($el,$edit){if(!$el||!$el.length)return;var $children=$el.parent().children().not(".InputfieldImageEdit");var lastTop=0;var found=false;var $insertBeforeItem=null;$children.each(function(){if($insertBeforeItem)return;var $item=$(this);var top=$item.offset().top;if(found&&top!=lastTop){$insertBeforeItem=$item}else if($item.attr("id")==$el.attr("id")){found=true}lastTop=top});if($insertBeforeItem){$edit.insertBefore($insertBeforeItem)}else{$edit.insertAfter($children.eq($children.length-1))}var $arrow=$edit.find(".InputfieldImageEdit__arrow");if($arrow.length)$arrow.css("left",$el.position().left+$el.outerWidth()/2+"px")}function initGridEvents(){$(window).resize(throttle(windowResize,200));$(document).on("click dblclick",".gridImage__trash",function(e){var $input=$(this).find("input");$input.prop("checked",inverseState).change();if(e.type=="dblclick"){setDeleteStateOnAllItems($input);e.preventDefault();e.stopPropagation()}});$(document).on("change",".gridImage__deletebox",function(){updateDeleteClass($(this))});$(document).on("click",".gridImage__edit",function(e){var $el=$(this).closest(".gridImage");if(!$el.length)return;if($el.closest(".InputfieldImageEditAll").length)return false;var $all=$el.closest(".gridImages");var $edit=$all.find(".InputfieldImageEdit");if($el.hasClass("gridImageEditing")){$edit.find(".InputfieldImageEdit__close").click()}else{moveEdit($el,$edit);tearDownEdit($edit);setupEdit($el,$edit);$edit.addClass("InputfieldImageEdit--active").attr("data-for",$el.attr("id"));$all.find(".gridImageEditing").removeClass("gridImageEditing");$el.addClass("gridImageEditing")}}).on("click",".InputfieldImageEditAll img",function(e){e.stopPropagation();e.preventDefault();$.magnificPopup.close();var options=$.extend(true,{},magnificOptions);var $img=$(this);options["items"]={src:$img.attr("data-original"),title:$img.attr("alt")};$.magnificPopup.open(options);return true}).on("click",".InputfieldImageButtonFocus",function(){var $button=$(this);var $icon=$button.find("i");var $edit=$button.closest(".InputfieldImageEdit, .gridImage");var $focusCircle=$edit.find(".focusCircle");if($focusCircle.length){stopFocus($edit)}else{startFocus($edit);$icon.addClass("focusIconActive");$icon.toggleClass($icon.attr("data-toggle"))}});$(document).on("click",function(e){var $el=$(e.target);if($el.closest(".InputfieldImageEdit").length){closeEdit(null,$el.parents(".gridImages"))}else if($el.is("input, textarea")&&$el.closest(".InputfieldImageEditAll").length){$el.focus().one("blur",function(){$el.closest(".gridImages").sortable("enable")});$el.closest(".gridImages").sortable("disable")}else if($el.closest(".gridImage__inner").length){closeEdit(null,$el.parents(".gridImages"))}else if($el.closest(".mfp-container").length){return}else if($el.closest(".ui-dialog").length){return}else if($el.is(".mfp-close")){return}else if($el.is("a.remove")){return}else{closeEdit(null,null)}});$(document).on("click",".InputfieldImageEdit__close",function(e){closeEdit($(this).parents(".gridImages"),null)});$(document).on("change",".InputfieldImage",function(){$(this).find(".InputfieldImageButtonCrop:not(.pw-modal-dblclick)").addClass("pw-modal-dblclick ui-state-disabled")}).on("click",".InputfieldImageButtonCrop.ui-state-disabled",function(e){var $button=$(this);var $list=$button.closest(".gridImages");if(!$list.hasClass("gridImagesAlerted")){ProcessWire.alert(ProcessWire.config.InputfieldImage.labels.changes);$list.addClass("gridImagesAlerted")}setTimeout(function(){$button.removeClass("ui-state-active")},500);return false});$(".ImagesGrid").on("click","button.pw-modal",function(e){e.preventDefault()});setupEditableFilename();checkInputfieldWidth()}function setupEditableFilename(){$(document).on("click",".InputfieldImageEdit__name",function(e){var $span=$(this).children("span");var $input=$span.closest(".gridImage, .InputfieldImageEdit").find(".InputfieldFileRename");var $list=$span.closest(".gridImages");$list.sortable("disable");$input.val($span.text());$span.on("keypress",function(e){if(e.which==13){$span.blur();return false}return true});$span.attr("autocomplete","off").attr("autocorrect","off").attr("autocapitalize","off").attr("spellcheck","false");$span.focus().on("blur",function(){var val=$(this).text();if($.trim(val).length<1){$span.text($input.val())}else if(val!=$input.val()){$input.val(val).change();$list.closest(".Inputfield").trigger("change")}$span.off("keypress");$list.sortable("enable")})})}function setListSize($inputfield,pct){pct=Math.floor(pct);$inputfield.find(".gridImage__overflow").each(function(){var dataPct=100-pct;var $this=$(this);$this.css("width",pct+"%");$this.siblings(".ImageData").css("width",dataPct+"%");$this.find("img").css({top:0,left:0,transform:"none"})});setCookieData($inputfield,"listSize",pct)}function setGridSize($inputfield,gridSize,ragged){if(!gridSize)return;var size=gridSize+"px";var $gridImages=$inputfield.find(".gridImages");if(typeof ragged=="undefined"||ragged==null)ragged=$gridImages.attr("data-ragged")?true:false;if(ragged){$gridImages.attr("data-ragged",1)}else{$gridImages.removeAttr("data-ragged")}$gridImages.find(".gridImage__overflow").each(function(){setGridSizeItem($(this),gridSize,ragged)});$gridImages.find(".gridImage__edit, .gridImage__resize").css("line-height",size);$gridImages.attr("data-size",gridSize);setCookieData($inputfield,"size",gridSize);if(retryGridItems.length)setTimeout(function(){while(retryGridItems.length){var item=retryGridItems.pop();setGridSizeItem(item.item,item.gridSize,ragged)}},150)}function setGridSizeItem($item,gridSize,ragged,focus){if($item.hasClass("gridImage__overflow")){var $img=$item.children("img")}else if($item.is("img")){var $img=$item;$item=$img.closest(".gridImage__overflow")}else{return}if(!gridSize){$img.removeAttr("width").removeAttr("height");$item.width("auto").height("auto");return}var zoom=0;var w=$img.width();var h=$img.height();var dataW=parseInt($img.attr("data-w"));var dataH=parseInt($img.attr("data-h"));if(!w)w=dataW;if(!h)h=dataH;if(!ragged&&typeof focus=="undefined"){var focusStr=$img.attr("data-focus");if(typeof focusStr=="undefined")focusStr="50.0 50.0 0";var focusArray=focusStr.split(" ");focus={top:parseFloat(focusArray[0]),left:parseFloat(focusArray[1]),zoom:parseInt(focusArray[2])}}if(!ragged)zoom=focus.zoom;if(ragged){$img.attr("height",gridSize).removeAttr("width");$img.css({"max-height":"100%","max-width":"none",top:"50%",left:"50%",transform:"translate3d(-50%, -50%, 0)"})}else if(zoom>0&&$item.closest(".InputfieldImageFocusZoom").length&&!gridSliding){if(w>=h){var maxHeight="100%";var maxWidth="none";if(w==dataW){h=gridSize;w=h/dataH*dataW}}else{var maxHeight="none";var maxWidth="100%";if(h==dataH){w=gridSize;h=w/dataW*dataH}}var scale=1+zoom/100*2;var crop=getFocusZoomCropDimensions4GridviewSquare(focus.left,focus.top,zoom,w,h,gridSize,scale);$img.css({left:"0px",top:"0px","transform-origin":"0px 0px",transform:"scale("+crop.scale+") translate3d("+crop.transformLeft+"px, "+crop.transformTop+"px, 0)","max-width":maxWidth,"max-height":maxHeight})}else if(w>=h){$img.attr("height",gridSize).removeAttr("width");if(focus.left<1)focus.left=.001;$img.css({"max-height":"100%","max-width":"none",top:"50%",left:focus.left+"%",transform:"translate3d(-"+focus.left+"%, -50%, 0)"})}else if(h>w){$img.attr("width",gridSize).removeAttr("height");if(focus.top<1)focus.top=.001;$img.css({"max-height":"none","max-width":"100%",top:focus.top+"%",left:"50%",transform:"translate3d(-50%, -"+focus.top+"%, 0)"})}else{$img.css({"max-height":"100%","max-width":"none",top:"50%",left:"50%",transform:"translate3d(-50%, -50%, 0)"});$img.removeAttr("width").attr("height",gridSize)}var w=$img.width();if(w){$item.css({width:ragged?w+"px":gridSize+"px",height:gridSize+"px"})}else{var tries=$item.attr("data-tries");if(!tries)tries=0;if(typeof tries=="undefined")tries=0;tries=parseInt(tries);if(tries>3){$item.css({width:gridSize+"px",height:gridSize+"px"})}else{retryGridItems.push({item:$item,gridSize:gridSize});$item.attr("data-tries",tries+1)}}}function setupImageListToggle($target){if($target.find(".InputfieldImageListToggle").length)return;var $list=$("").append("");var $left=$("").append("");var $grid=$("").append("");var activeClass="InputfieldImageListToggle--active";var defaultMode="";var toggleClick=function(e){var $a=$(this);var $inputfield=$a.closest(".Inputfield");var href=$a.attr("href");var size;var $aPrev=$a.parent().children("."+activeClass);var hrefPrev=$aPrev.attr("href");$aPrev.removeClass(activeClass);$a.addClass(activeClass);stopFocus($inputfield);if(href=="list"){if(!$inputfield.hasClass("InputfieldImageEditAll")){$inputfield.find(".InputfieldImageEdit--active .InputfieldImageEdit__close").click();$inputfield.addClass("InputfieldImageEditAll")}size=getCookieData($inputfield,"listSize");setListSize($inputfield,size);setCookieData($inputfield,"mode","list")}else if(href=="left"){$inputfield.removeClass("InputfieldImageEditAll");size=getCookieData($inputfield,"size");setGridSize($inputfield,size,true);setCookieData($inputfield,"mode","left");updateGrid()}else if(href=="grid"){$inputfield.removeClass("InputfieldImageEditAll");size=getCookieData($inputfield,"size");setGridSize($inputfield,size,false);setCookieData($inputfield,"mode","grid");if(hrefPrev=="left")setTimeout(function(){setGridSize($inputfield,size,false)},100)}setupSortable($inputfield.find(".gridImages"));$a.blur();return false};$list.click(toggleClick);$left.click(toggleClick);$grid.click(toggleClick);if($target.hasClass("InputfieldImage")){$target.find(".InputfieldHeader").append($list).append($left).append($grid);defaultMode=getCookieData($target,"mode")}else{$(".InputfieldImage .InputfieldHeader",$target).append($list).append($left).append($grid)}if(defaultMode=="list"){$list.click()}else if(defaultMode=="left"){$left.click()}else{}}function setupSizeSlider($inputfield){var $header=$inputfield.children(".InputfieldHeader");if($header.children(".InputfieldImageSizeSlider").length)return;var $gridImages=$inputfield.find(".gridImages");var gridSize=$gridImages.attr("data-gridsize");var min=gridSize/2;var max=gridSize*2;var $slider=$('');$header.append($slider);var sizeSlide=function(event,ui){var value=ui.value;var minPct=15;var divisor=Math.floor(gridSize/minPct);var v=value-min;var listSize=Math.floor(minPct+v/divisor);if($inputfield.hasClass("InputfieldImageEditAll")){setCookieData($inputfield,"size",value);setListSize($inputfield,listSize)}else{setCookieData($inputfield,"listSize",listSize);setGridSize($inputfield,value)}};$slider.slider({min:min,max:max,value:getCookieData($inputfield,"size"),range:"min",slide:sizeSlide,start:function(event,ui){gridSliding=true;if($inputfield.find(".InputfieldImageEdit:visible").length){$inputfield.find(".InputfieldImageEdit__close").click()}},stop:function(event,ui){gridSliding=false;sizeSlide(event,ui);updateGrid($inputfield)}})}function setCookieData($inputfield,property,value){var data=getCookieData($inputfield);var id=$inputfield.attr("id");var name=id?id.replace("wrap_Inputfield_",""):"";if(!name.length||typeof value=="undefined")return;if(data[name][property]==value)return;data[name][property]=value;$.cookie("InputfieldImage",data,{secure:window.location.protocol.indexOf("https:")===0});cookieData=data}function getCookieData($inputfield,property){if(cookieData&&typeof property=="undefined")return cookieData;var id=$inputfield.attr("id");var name=id?id.replace("wrap_Inputfield_",""):"na";var data=cookieData?cookieData:$.cookie("InputfieldImage");var value=null;if(!data)var data={};if(typeof data[name]=="undefined")data[name]={};if(typeof data[name].size=="undefined")data[name].size=parseInt($inputfield.find(".gridImages").attr("data-size"));if(typeof data[name].listSize=="undefined")data[name].listSize=23;if(typeof data[name].mode=="undefined")data[name].mode=$inputfield.find(".gridImages").attr("data-gridMode");if(cookieData==null)cookieData=data;if(typeof property=="undefined"){value=data}else if(property===true){value=data[name]}else if(typeof data[name][property]!="undefined"){value=data[name][property]}return value}function initInputfield($inputfield){if($inputfield.hasClass("InputfieldStateCollapsed"))return;var maxFiles=parseInt($inputfield.find(".InputfieldImageMaxFiles").val());var $gridImages=$inputfield.find(".gridImages");var size=getCookieData($inputfield,"size");var mode=getCookieData($inputfield,"mode");var ragged=mode=="left"?true:false;if(!size)size=$gridImages.attr("data-gridsize");size=parseInt(size);if($inputfield.hasClass("InputfieldImageEditAll")||mode=="list"){var listSize=getCookieData($inputfield,"listSize");setListSize($inputfield,listSize)}else{setGridSize($inputfield,size,ragged)}if(!$inputfield.hasClass("InputfieldImageInit")){$inputfield.addClass("InputfieldImageInit");if($inputfield.hasClass("InputfieldRenderValueMode")){return setupMagnificForRenderValue($inputfield)}else if(maxFiles==1){$inputfield.addClass("InputfieldImageMax1");setupMagnificForSingle($inputfield)}else{setupSortable($gridImages)}setupImageListToggle($inputfield);setupSizeSlider($inputfield)}checkInputfieldWidth($inputfield);$inputfield.on("change",".InputfieldFileActionSelect",function(){var $note=$(this).next(".InputfieldFileActionNote");if($(this).val().length){$note.fadeIn()}else{$note.hide()}})}function initUploadOldSchool(){$("body").addClass("ie-no-drop");$(".InputfieldImage.InputfieldFileMultiple").each(function(){var $field=$(this),maxFiles=parseInt($field.find(".InputfieldFileMaxFiles").val()),$list=$field.find(".gridImages"),$uploadArea=$field.find(".InputfieldImageUpload");$uploadArea.on("change","input[type=file]",function(){var $t=$(this),$mask=$t.parent(".InputMask");if($t.val().length>1)$mask.addClass("ui-state-disabled");else $mask.removeClass("ui-state-disabled");if($t.next("input.InputfieldFile").length>0)return;var numFiles=$list.children("li").length+$uploadArea.find("input[type=file]").length+1;if(maxFiles>0&&numFiles>=maxFiles)return;$uploadArea.find(".InputMask").not(":last").each(function(){var $m=$(this);if($m.find("input[type=file]").val()<1)$m.remove()});var $i=$mask.clone().removeClass("ui-state-disabled");$i.children("input[type=file]").val("");$i.insertAfter($mask)})})}function initUploadHTML5($inputfield){var $target;if($inputfield.length>0){$target=$inputfield.find(".InputfieldImageUpload")}else{$target=$(".InputfieldImageUpload")}$target.each(function(i){var $this=$(this);var $content=$this.closest(".InputfieldContent");if($this.hasClass("InputfieldImageInitUpload"))return;initHTML5Item($content,i);$this.addClass("InputfieldImageInitUpload")});function initHTML5Item($this,i){var $form=$this.parents("form");var $repeaterItem=$this.closest(".InputfieldRepeaterItem");var postUrl=$repeaterItem.length?$repeaterItem.attr("data-editUrl"):$form.attr("action");postUrl+=(postUrl.indexOf("?")>-1?"&":"?")+"InputfieldFileAjax=1";var $postToken=$form.find("input._post_token");var postTokenName=$postToken.attr("name");var postTokenValue=$postToken.val();var $errorParent=$this.find(".InputfieldImageErrors").first();var fieldName=$this.find(".InputfieldImageUpload").data("fieldname");fieldName=fieldName.slice(0,-2);var $inputfield=$this.closest(".Inputfield.InputfieldImage");var extensions=$this.find(".InputfieldImageUpload").data("extensions").toLowerCase();var maxFilesize=$this.find(".InputfieldImageUpload").data("maxfilesize");var filesUpload=$this.find("input[type=file]").get(0);var $fileList=$this.find(".gridImages");var fileList=$fileList.get(0);var gridSize=$fileList.data("gridsize");var doneTimer=null;var maxFiles=parseInt($this.find(".InputfieldImageMaxFiles").val());var resizeSettings=getClientResizeSettings($inputfield);var useClientResize=resizeSettings.maxWidth>0||resizeSettings.maxHeight>0||resizeSettings.maxSize>0;setupDropzone($this);if(maxFiles!=1)setupDropInPlace($fileList);$fileList.children().addClass("InputfieldFileItemExisting");$inputfield.on("pwimageupload",function(event,data){traverseFiles([data.file],data.xhr)});function errorItem(message,filename){if(typeof filename!=="undefined")message=""+filename+": "+message;var icon=" ";return"
  • "+icon+message+"
  • "}function basename(str){var base=new String(str).substring(str.lastIndexOf("/")+1);if(base.lastIndexOf(".")!=-1)base=base.substring(0,base.lastIndexOf("."));return base}function setupDropzone($el){if($el.hasClass("InputfieldImageDropzoneInit"))return;var el=$el.get(0);var $inputfield=$el.closest(".Inputfield");function dragStart(){if($inputfield.hasClass("pw-drag-in-file"))return;$el.addClass("ui-state-hover");$inputfield.addClass("pw-drag-in-file")}function dragStop(){if(!$inputfield.hasClass("pw-drag-in-file"))return;$el.removeClass("ui-state-hover");$inputfield.removeClass("pw-drag-in-file")}el.addEventListener("dragleave",function(){dragStop()},false);el.addEventListener("dragenter",function(evt){evt.preventDefault();dragStart()},false);el.addEventListener("dragover",function(evt){if(!$el.is("ui-state-hover"))dragStart();evt.preventDefault();evt.stopPropagation();return false},false);el.addEventListener("drop",function(evt){traverseFiles(evt.dataTransfer.files);dragStop();evt.preventDefault();evt.stopPropagation();return false},false);$el.addClass("InputfieldImageDropzoneInit")}function setupDropInPlace($gridImages){var $i=null;var haltDrag=false;var timer=null;var $inputfield=$gridImages.closest(".Inputfield");function addInputfieldClass(){$inputfield.addClass("pw-drag-in-file")}function removeInputfieldClass(){$inputfield.removeClass("pw-drag-in-file")}function getCenterCoordinates($el){var offset=$el.offset();var width=$el.width();var height=$el.height();var centerX=offset.left+width/2;var centerY=offset.top+height/2;return{clientX:centerX,clientY:centerY}}function noDropInPlace(){return $gridImages.find(".InputfieldImageEdit--active").length>0}function dragEnter(evt){if(noDropInPlace())return;evt.preventDefault();evt.stopPropagation();addInputfieldClass();haltDrag=false;if($i==null){var gridSize=$gridImages.attr("data-size")+"px";var $o=$("
    ").addClass("gridImage__overflow");if($gridImages.closest(".InputfieldImageEditAll").length){$o.css({width:"100%",height:gridSize})}else{$o.css({width:gridSize,height:gridSize})}$i=$("
  • ").addClass("ImageOuter gridImage gridImagePlaceholder").append($o);$gridImages.append($i)}var coords=getCenterCoordinates($i);$i.simulate("mousedown",coords)}function dragOver(evt){if(noDropInPlace())return;evt.preventDefault();evt.stopPropagation();addInputfieldClass();haltDrag=false;if($i==null)return;var coords={clientX:evt.originalEvent.clientX,clientY:evt.originalEvent.clientY};$i.simulate("mousemove",coords)}function dragEnd(evt){if(noDropInPlace())return;evt.preventDefault();evt.stopPropagation();if($i==null)return false;haltDrag=true;if(timer)clearTimeout(timer);timer=setTimeout(function(){if(!haltDrag||$i==null)return;$i.remove();$i=null;removeInputfieldClass()},1e3)}function drop(evt){if(noDropInPlace())return;removeInputfieldClass();haltDrag=false;var coords={clientX:evt.clientX,clientY:evt.clientY};$i.simulate("mouseup",coords);$uploadBeforeItem=$i.next(".gridImage");$i.remove();$i=null}if($gridImages.length&&!$gridImages.hasClass("gridImagesInitDropInPlace")){$gridImages.on("dragenter",dragEnter);$gridImages.on("dragover",dragOver);$gridImages.on("dragleave",dragEnd);$gridImages.on("drop",drop);$gridImages.addClass("gridImagesInitDropInPlace")}}function uploadFile(file,extension,xhrsub){var labels=ProcessWire.config.InputfieldImage.labels;var filesizeStr=parseInt(file.size/1024,10)+" kB";var tooltipMarkup=""+'
    '+""+""+'"+""+""+""+""+""+""+"
    "+labels.dimensions+"'+labels.na+"
    "+labels.filesize+""+filesizeStr+"
    "+labels.variations+"0
    "+"
    ";var $progressItem=$('
  • '),$tooltip=$(tooltipMarkup),$imgWrapper=$('
    '),$imageData=$('
    '),$hover=$("
    "),$progressBar=$(""),$edit=$(' '),$spinner=$('
    '),reader,xhr,fileData,fileUrl=URL.createObjectURL(file),$fileList=$inputfield.find(".gridImages"),singleMode=maxFiles==1,size=getCookieData($inputfield,"size"),listSize=getCookieData($inputfield,"listSize"),listMode=$inputfield.hasClass("InputfieldImageEditAll"),$img=$('');$imgWrapper.append($img);$hover.find(".gridImage__inner").append($edit);$hover.find(".gridImage__inner").append($spinner.css("display","none"));$hover.find(".gridImage__inner").append($progressBar);$imageData.append($(""+'

    '+file.name+"

    "+''+filesizeStr+""));if(listMode){$imgWrapper.css("width",listSize+"%");$imageData.css("width",100-listSize+"%")}else{$imgWrapper.css({width:size+"px",height:size+"px"})}$progressItem.append($tooltip).append($imgWrapper).append($hover).append($imageData);$img.attr({src:fileUrl,"data-original":fileUrl});img=new Image;img.addEventListener("load",function(){$tooltip.find(".dimensions").html(this.width+" × "+this.height);var factor=Math.min(this.width,this.height)/size;$img.attr({width:this.width/factor,height:this.height/factor})},false);img.src=fileUrl;if(typeof xhrsub!="undefined"){xhr=xhrsub}else{xhr=new XMLHttpRequest}function updateProgress(evt){if(typeof evt!="undefined"){if(!evt.lengthComputable)return;$progressBar.attr("value",parseInt(evt.loaded/evt.total*100))}$("body").addClass("pw-uploading");$spinner.css("display","block")}xhr.upload.addEventListener("progress",updateProgress,false);xhr.addEventListener("load",function(){xhr.getAllResponseHeaders();var response=$.parseJSON(xhr.responseText);if(typeof response.ajaxResponse!="undefined")response=response.ajaxResponse;var wasZipFile=response.length>1;if(response.error!==undefined)response=[response];for(var n=0;n-1){uploadReplaceName=uploadReplaceName.substring(0,uploadReplaceName.indexOf("?"))}var uploadReplaceExt=uploadReplaceName.substring(uploadReplaceName.lastIndexOf(".")+1).toLowerCase();uploadReplaceName=uploadReplaceName.substring(0,uploadReplaceName.lastIndexOf("."));if(uploadReplaceExt==uploadNewExt){$imageEditName.children("span").text(uploadReplaceName).removeAttr("contenteditable")}$markup.find(".gridImage__edit").click()}uploadReplace.file="";uploadReplace.item=null;uploadReplace.edit=null}if(doneTimer)clearTimeout(doneTimer);$uploadBeforeItem=null;doneTimer=setTimeout(function(){if(maxFiles!=1){setupSortable($fileList)}else{setupMagnificForSingle($inputfield)}$("body").removeClass("pw-uploading");$fileList.trigger("AjaxUploadDone")},500);$inputfield.trigger("change").removeClass("InputfieldFileEmpty")},false);if(uploadReplace.edit){uploadReplace.edit.find(".InputfieldImageEdit__close").click()}else if($inputfield.find(".InputfieldImageEdit:visible").length){$inputfield.find(".InputfieldImageEdit__close").click()}if(uploadReplace.item){uploadReplace.item.replaceWith($progressItem);uploadReplace.item=$progressItem}else if($uploadBeforeItem&&$uploadBeforeItem.length){$uploadBeforeItem.before($progressItem)}else{$fileList.append($progressItem)}function sendUpload(file,imageData){if(typeof xhrsub=="undefined"){xhr.open("POST",postUrl,true)}xhr.setRequestHeader("X-FILENAME",encodeURIComponent(file.name));xhr.setRequestHeader("X-FIELDNAME",fieldName);if(uploadReplace.item)xhr.setRequestHeader("X-REPLACENAME",uploadReplace.file);xhr.setRequestHeader("Content-Type","application/octet-stream");xhr.setRequestHeader("X-"+postTokenName,postTokenValue);xhr.setRequestHeader("X-REQUESTED-WITH","XMLHttpRequest");if(typeof imageData!="undefined"&&imageData!=false){xhr.send(imageData)}else{xhr.send(file)}updateGrid();$inputfield.trigger("change");var numFiles=$inputfield.find(".InputfieldFileItem").length;if(numFiles==1){$inputfield.removeClass("InputfieldFileEmpty").removeClass("InputfieldFileMultiple").addClass("InputfieldFileSingle")}else if(numFiles>1){$inputfield.removeClass("InputfieldFileEmpty").removeClass("InputfieldFileSingle").addClass("InputfieldFileMultiple")}}updateProgress();var ext=file.name.substring(file.name.lastIndexOf(".")+1).toLowerCase();if(useClientResize&&(ext=="jpg"||ext=="jpeg"||ext=="png"||ext=="gif")){var resizer=new PWImageResizer(resizeSettings);$spinner.addClass("pw-resizing");resizer.resize(file,function(imageData){$spinner.removeClass("pw-resizing");sendUpload(file,imageData)})}else{sendUpload(file)}}function traverseFiles(files,xhr){var toKilobyte=function(i){return parseInt(i/1024,10)};if(typeof files==="undefined"){fileList.innerHTML="No support for the File API in this web browser";return}for(var i=0,l=files.length;imaxFilesize&&maxFilesize>2e6){var filesizeKB=toKilobyte(files[i].size),maxFilesizeKB=toKilobyte(maxFilesize);message="Filesize "+filesizeKB+" kb is too big. Maximum allowed is "+maxFilesizeKB+" kb";$errorParent.append(errorItem(message,files[i].name))}else if(typeof xhr!="undefined"){uploadFile(files[i],extension,xhr)}else{uploadFile(files[i],extension)}if(maxFiles==1)break}}filesUpload.addEventListener("change",function(evt){traverseFiles(this.files);evt.preventDefault();evt.stopPropagation();this.value=""},false)}function setupEnlargementDropzones(){var sel=".InputfieldImageEdit__imagewrapper img";$(document).on("dragenter",sel,function(){var $this=$(this);if($this.closest(".InputfieldImageMax1").length)return;var src=$this.attr("src");var $edit=$this.closest(".InputfieldImageEdit");var $parent=$this.closest(".InputfieldImageEdit__imagewrapper");$parent.addClass("InputfieldImageEdit__replace");uploadReplace.file=new String(src).substring(src.lastIndexOf("/")+1);uploadReplace.item=$("#"+$edit.attr("data-for"));uploadReplace.edit=$edit}).on("dragleave",sel,function(){var $this=$(this);if($this.closest(".InputfieldImageMax1").length)return;var $parent=$this.closest(".InputfieldImageEdit__imagewrapper");$parent.removeClass("InputfieldImageEdit__replace");uploadReplace.file="";uploadReplace.item=null;uploadReplace.edit=null})}setupEnlargementDropzones()}function getClientResizeSettings($inputfield){var settings={maxWidth:0,maxHeight:0,maxSize:0,quality:1,autoRotate:true,debug:ProcessWire.config.debug};var data=$inputfield.attr("data-resize");if(typeof data!="undefined"&&data.length){data=data.split(";");settings.maxWidth=data[0].length?parseInt(data[0]):0;settings.maxHeight=data[1].length?parseInt(data[1]):0;settings.maxSize=data[2].length?parseFloat(data[2]):0;settings.quality=parseFloat(data[3])}return settings}function init(){$(".InputfieldImage.Inputfield").each(function(){initInputfield($(this))});initGridEvents();if(useAjaxUpload()){initUploadHTML5("")}else{initUploadOldSchool()}$(document).on("reloaded",".InputfieldImage",function(){var $inputfield=$(this);initInputfield($inputfield);initUploadHTML5($inputfield)}).on("wiretabclick",function(e,$newTab,$oldTab){$newTab.find(".InputfieldImage").each(function(){initInputfield($(this))})}).on("opened",".InputfieldImage",function(){initInputfield($(this))})}init()}jQuery(document).ready(function($){InputfieldImage($)}); \ No newline at end of file diff --git a/wire/modules/Inputfield/InputfieldImage/InputfieldImage.scss b/wire/modules/Inputfield/InputfieldImage/InputfieldImage.scss index edd04947..125e7f9c 100755 --- a/wire/modules/Inputfield/InputfieldImage/InputfieldImage.scss +++ b/wire/modules/Inputfield/InputfieldImage/InputfieldImage.scss @@ -48,6 +48,8 @@ $focusPointCircleSize: 40px; // error listing .InputfieldImageErrors { + padding-left: 0; + margin-left: 0; li { margin-bottom: .5em; margin-top: 0;