Changeset 1318107
- Timestamp:
- 12/29/2015 07:14:33 PM (10 years ago)
- Location:
- design-feedback
- Files:
-
- 11 edited
-
assets/icon-128x128.png (modified) (previous)
-
assets/icon-256x256.png (modified) (previous)
-
assets/icon.svg (modified) (1 diff)
-
trunk/README.txt (modified) (5 diffs)
-
trunk/addons/approvals/assets/css/main.css (modified) (1 diff)
-
trunk/addons/approvals/assets/js/main.js (modified) (2 diffs)
-
trunk/addons/approvals/index.php (modified) (2 diffs)
-
trunk/cycles.php (modified) (1 diff)
-
trunk/public/class-design-feedback-public.php (modified) (3 diffs)
-
trunk/public/js/design-feedback-public.js (modified) (2 diffs)
-
trunk/public/templates/single-designfeedback.php (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
design-feedback/assets/icon.svg
r1282469 r1318107 1 1 <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 2 <svg width="128px" height="128px" viewBox="0 0 128 128" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> 3 <!-- Generator: Sketch 3.4 (15575) - http://www.bohemiancoding.com/sketch -->3 <!-- Generator: Sketch 3.4.2 (15855) - http://www.bohemiancoding.com/sketch --> 4 4 <title>icon</title> 5 5 <desc>Created with Sketch.</desc> 6 <defs> 7 <rect id="path-1" x="0" y="0" width="128" height="100" rx="3"></rect> 8 <rect id="path-3" x="0" y="0" width="128" height="128" rx="3"></rect> 9 <filter x="-50%" y="-50%" width="200%" height="200%" filterUnits="objectBoundingBox" id="filter-5"> 10 <feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset> 11 <feGaussianBlur stdDeviation="1.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur> 12 <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.35 0" in="shadowBlurOuter1" type="matrix" result="shadowMatrixOuter1"></feColorMatrix> 13 <feMerge> 14 <feMergeNode in="shadowMatrixOuter1"></feMergeNode> 15 <feMergeNode in="SourceGraphic"></feMergeNode> 16 </feMerge> 17 </filter> 18 </defs> 6 <defs></defs> 19 7 <g id="plugin-repo" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> 20 8 <g id="icon" sketch:type="MSArtboardGroup"> 21 <g id="unmistakable-approvals" sketch:type="MSLayerGroup"> 22 <mask id="mask-2" sketch:name="Mask" fill="white"> 23 <use xlink:href="#path-1"></use> 24 </mask> 25 <use id="Mask" fill="#F5F5F5" sketch:type="MSShapeGroup" xlink:href="#path-1"></use> 26 <rect id="Rectangle-43-Copy" fill="#E3E3E3" sketch:type="MSShapeGroup" mask="url(#mask-2)" x="-0.463768116" y="-0.531914894" width="128.927536" height="9.04255319"></rect> 27 <g id="Oval-19-+-Oval-19-Copy-+-Oval-19-Copy-2" mask="url(#mask-2)" sketch:type="MSShapeGroup"> 28 <g transform="translate(3.246377, 2.659574)"> 29 <ellipse id="Oval-19" fill="#F05B51" cx="1.15942029" cy="1.32978723" rx="1.15942029" ry="1.32978723"></ellipse> 30 <ellipse id="Oval-19-Copy" fill="#FABD15" cx="4.86956522" cy="1.32978723" rx="1.15942029" ry="1.32978723"></ellipse> 31 <ellipse id="Oval-19-Copy-2" fill="#5ECD38" cx="8.57971014" cy="1.32978723" rx="1.15942029" ry="1.32978723"></ellipse> 9 <g id="#3---Green-Checked-Copy-+-ic_question_answer_black_48px-+-Shape-Copy" sketch:type="MSLayerGroup" transform="translate(1.000000, 1.000000)"> 10 <g id="#3---Green-Checked-Copy" fill="#00C853" sketch:type="MSShapeGroup"> 11 <ellipse id="Oval-1" cx="63" cy="63" rx="63" ry="63"></ellipse> 12 </g> 13 <g id="ic_question_answer_black_48px-+-Shape-Copy" transform="translate(29.000000, 34.000000)" sketch:type="MSShapeGroup"> 14 <g id="ic_question_answer_black_48px" transform="translate(0.546479, 0.501664)"> 15 <path d="M0,0 L67.8482005,0 L67.8482005,62.5649238 L0,62.5649238 L0,0 Z" id="Shape"></path> 16 <path d="M59.3671754,15.6412309 L53.7131587,15.6412309 L53.7131587,39.1030774 L16.9620501,39.1030774 L16.9620501,44.316821 C16.9620501,45.7506005 18.2342039,46.9236928 19.7890585,46.9236928 L50.8861504,46.9236928 L62.1941838,57.3511801 L62.1941838,18.2481028 C62.1941838,16.8143233 60.92203,15.6412309 59.3671754,15.6412309 L59.3671754,15.6412309 Z M48.059142,31.2824619 L48.059142,7.82061547 C48.059142,6.38683597 46.7869883,5.21374365 45.2321337,5.21374365 L8.48102506,5.21374365 C6.92617047,5.21374365 5.65401671,6.38683597 5.65401671,7.82061547 L5.65401671,44.316821 L16.9620501,33.8893337 L45.2321337,33.8893337 C46.7869883,33.8893337 48.059142,32.7162414 48.059142,31.2824619 L48.059142,31.2824619 Z" id="Shape" fill="#FEFEFE"></path> 32 17 </g> 18 <path d="M24.0957857,24.0992014 L18.698057,19.8271172 L16.8988141,21.2511453 L24.0957857,26.9472576 L39.5178675,14.7413025 L37.7186246,13.3172744 L24.0957857,24.0992014 L24.0957857,24.0992014 Z" id="Shape-Copy" stroke="#00C853" fill="#00C853"></path> 33 19 </g> 34 <mask id="mask-4" sketch:name="Mask Copy" fill="white">35 <use xlink:href="#path-3"></use>36 </mask>37 <use id="Mask-Copy" fill="#F5F5F5" sketch:type="MSShapeGroup" xlink:href="#path-3"></use>38 <rect id="Rectangle-43-Copy-2" fill="#E3E3E3" sketch:type="MSShapeGroup" mask="url(#mask-4)" x="-0.463768116" y="-0.531914894" width="128.927536" height="9.04255319"></rect>39 <g id="Oval-19-+-Oval-19-Copy-+-Oval-19-Copy-2-Copy" mask="url(#mask-4)" sketch:type="MSShapeGroup">40 <g transform="translate(3.246377, 2.659574)">41 <circle id="Oval-19" fill="#F05B51" cx="1.5" cy="1.5" r="1.5"></circle>42 <circle id="Oval-19-Copy" fill="#FABD15" cx="6.21014493" cy="1.5" r="1.5"></circle>43 <circle id="Oval-19-Copy-2" fill="#5ECD38" cx="10.9202899" cy="1.5" r="1.5"></circle>44 </g>45 </g>46 <g id="ic_check_circle_black_48px" mask="url(#mask-4)" sketch:type="MSShapeGroup">47 <g transform="translate(43.130435, 18.617021)" id="Shape">48 <path d="M0,0 L41.7391304,0 L41.7391304,47.8723404 L0,47.8723404 L0,0 Z"></path>49 </g>50 </g>51 </g>52 <g id="#3---Green-Checked-Copy" sketch:type="MSLayerGroup" transform="translate(22.000000, 22.000000)" filter="url(#filter-5)" fill="#00C853">53 <ellipse id="Oval-1" sketch:type="MSShapeGroup" cx="42" cy="42" rx="42" ry="42"></ellipse>54 </g>55 <g id="ic_question_answer_black_48px-+-Shape-Copy" sketch:type="MSLayerGroup" transform="translate(41.000000, 43.000000)">56 <g id="ic_question_answer_black_48px" transform="translate(0.361111, 0.331497)" sketch:type="MSShapeGroup">57 <path d="M0,0 L44.833811,0 L44.833811,41.3426435 L0,41.3426435 L0,0 Z" id="Shape"></path>58 <path d="M39.2295846,10.3356609 L35.4934337,10.3356609 L35.4934337,25.8391522 L11.2084527,25.8391522 L11.2084527,29.2843725 C11.2084527,30.2318081 12.0490867,31.0069827 13.0765282,31.0069827 L33.6253582,31.0069827 L41.0976601,37.8974232 L41.0976601,12.058271 C41.0976601,11.1108355 40.2570261,10.3356609 39.2295846,10.3356609 L39.2295846,10.3356609 Z M31.7572828,20.6713218 L31.7572828,5.16783044 C31.7572828,4.22039486 30.9166488,3.4452203 29.8892073,3.4452203 L5.60422637,3.4452203 C4.57678487,3.4452203 3.73615092,4.22039486 3.73615092,5.16783044 L3.73615092,29.2843725 L11.2084527,22.3939319 L29.8892073,22.3939319 C30.9166488,22.3939319 31.7572828,21.6187574 31.7572828,20.6713218 L31.7572828,20.6713218 Z" id="Shape" fill="#FEFEFE"></path>59 </g>60 <path d="M15.9223958,15.9246529 L12.3555989,13.1016772 L11.1666667,14.0426691 L15.9223958,17.8066367 L26.1132438,9.74099189 L24.9243115,8.8 L15.9223958,15.9246529 L15.9223958,15.9246529 Z" id="Shape-Copy" fill="#00C853" sketch:type="MSShapeGroup"></path>61 20 </g> 62 21 </g> -
design-feedback/trunk/README.txt
r1297129 r1318107 1 1 === Cycles === 2 2 Contributors: Cycles 3 Tags: design, feedback, mockup, client, wireframe, approvals, design review, comment, webdesign, freelancer, freelancers, graphic artists, graphic designers, graphics, image, logo, mood boards, infographics, project, cycles, approval, sign-off3 Tags: design, feedback, mockup, client, wireframe, approvals, design review, comment, webdesign, freelancer, studio, agency, graphic designers, graphics, image, logo, mood boards, infographics, project, cycles, approval, sign-off 4 4 Requires at least: 4.0 5 Tested up to: 4. 3.16 Stable tag: 1.4 5 Tested up to: 4.4 6 Stable tag: 1.4.1 7 7 License: GPLv2 or later 8 8 … … 10 10 11 11 == Description == 12 13 **NOV 2015: MAJOR UPDATE + NEW FEATURE**14 _We've been busy overhauling the look/feel and rewriting the feedback engine to change how mockups display, so presenting designs and receiving feedback is faster and more intuitive. Plus, we added an "approvals" feature for easier client sign-offs._15 12 16 13 [Cycles](http://getCycles.io/) allows you to share any design (mockups, wireframes, sitemaps) without the complexity of email attachments or third-party services. Clients and colleagues view your work in their browser and post feedback directly on your designs. When they're ready, they approve designs so the project can move to the next phase. … … 107 104 == Change Log == 108 105 106 = 1.4.1 = 107 December 29th, 2015 108 * Enhanced: Clients can view approval details on designs by hovering over the approval button 109 * Enhanced: Approval confirmation dialog look and feel 110 * Enhanced: Cycles CSS no longer loads on non-design posts 111 * Enhanced: How Cycles saves feedback when designs by more one clients 112 * Fixed: feedback dialog display overlap bug for very small image designs (like logos) 113 * Fixed: A bug allowing feedback on some approved designs 114 * Tested: 4.4 115 109 116 = 1.4 = 110 117 November 30th, 2015 … … 123 130 * Enhanced: Better open/close click behavior when viewing comments 124 131 * Enhanced: Cycles now updates comment numbers when another comment is deleted 125 * Fixed: bug with "inverted" feedback on the edge of some designs132 * Fixed: Bug with "inverted" feedback on the edge of some designs 126 133 * Fixed: Image loading animation appears before image begins to load 127 134 * Fixed: Removed superfluous styling on the comment box that'd appear in some browsers … … 173 180 == Upgrade Notice == 174 181 175 = 1.4 =176 New "Approvals" feature 182 = 1.4.1 = 183 Bug fixes and minor enhancements -
design-feedback/trunk/addons/approvals/assets/css/main.css
r1297129 r1318107 1 .cycles_approve_confirm { 2 text-align: center; 3 width: auto; 4 padding:0; 5 min-width: 0px; 6 min-height: 0px; 7 } 8 .cycles_help-outer { 9 min-height:0; 10 overflow:hidden; 11 } 12 .cycles_approve_confirm .loader-dismiss01 {right:5px;} 13 14 #feedback_confirm_loading_message, 15 #feedback_confirm_message { 16 color:#fff; 17 background:#4CAF50; 18 padding:30px 40px 45px 40px; 19 box-sizing:border-box; 20 } 21 22 #feedback_confirm_loading_message h4, 23 #feedback_confirm_message h4 { 24 color:#fff; 25 } 26 27 .cycles-approved-button, 28 .cycles-approved-button[disabled][disabled] { 29 color:#FFF !important; 30 background: #4CAF50 !important; 31 border:none; 32 height: 24px; 33 width: 24px; 34 min-width: 24px; 35 } 36 37 .cycles-approved-button i{ 38 font-size:16px !important; 39 color:#000; 40 line-height: 14px; 41 } 42 .cycles-approved-button span{ 43 float:left; 44 } 45 .cycles_approved_content { 46 position:relative; 47 cursor:pointer; 48 } 49 .cycles_approved_content.active .cycles-feedback-info, 50 .cycles_approved_content:hover .cycles-feedback-info { 51 opacity:1; 52 visibility:visible; 53 } 54 .cycles-feedback-info{ 55 opacity:0; 56 visibility:hidden; 57 position:absolute; 58 top:44px; 59 right:0px; 60 display: block; 61 background:rgba(50,50,50,0.6); 62 padding:20px; 63 text-align:center; 64 color:#fff; 65 font-size:14px; 66 line-height:18px; 67 min-width:160px; 68 -webkit-border-radius: 4px; 69 -moz-border-radius: 4px; 70 border-radius: 4px; 71 72 -webkit-transition: all 500ms ease-in-out; 73 -moz-transition: all 500ms ease-in-out; 74 -o-transition: all 500ms ease-in-out; 75 transition: all 500ms ease-in-out; 76 } 77 .cycles-feedback-info{} -
design-feedback/trunk/addons/approvals/assets/js/main.js
r1297129 r1318107 47 47 $.post(ajaxurl, data) 48 48 .always(function(response) { 49 if (response == 0) { 49 json = $.parseJSON( response ); 50 if (json.status == "OK") { 50 51 $('#feedback_confirm_loading_message').hide(); 51 52 $('#feedback_confirm_message').show(); 52 $('.fab-01').html('APPROVED').attr('disabled',true); 53 $('.fab-01').html('APPROVED').attr('disabled',true); 54 $('.fab-01').fadeOut(300,function() { 55 $(".cycles-feedback-info").html(json.text); 56 $(".cycles_approved_content").fadeIn(300); 57 }) 53 58 design.setApprove(false); 54 59 } else { … … 57 62 }) 58 63 ; 59 }) 60 ; 64 }); 65 $(".cycles_approved_content").on("click",function() { 66 $(this).toggleClass("active"); 67 }); 61 68 }); -
design-feedback/trunk/addons/approvals/index.php
r1297129 r1318107 133 133 $can_approve = $meta[ 'approvals_enabled' ]; 134 134 if($can_approve){ 135 if ( $approved ){?> 136 <button class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--colored mdl-button--green" disabled="disabled"> 137 Approved 135 ?> 136 <div class="cycles_approved_content" <?php if(!$approved) { echo 'style="display:none";' ;} ?>> 137 <button class="mdl-button mdl-button--icon cycles-approved-button" disabled="disabled"> 138 <i class="material-icons">done</i> 138 139 </button> 139 <?php }else{ ?> 140 <button class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--colored mdl-button--green fab-01"> 140 <span>Approved</span> 141 <div class="cycles-feedback-info"> 142 Approved on <br /><?php echo stripslashes(date('F j, Y',strtotime($meta['approved_at']))); ?> <br /> by <?php echo stripslashes($meta['approved_by'])?> 143 </div> 144 </div> 145 <button class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--colored mdl-button--green fab-01" <?php if($approved) { echo 'style="display:none";' ;} ?>> 141 146 Approve 142 147 </button> 143 <?php144 }}148 <?php 149 } 145 150 } 146 151 … … 243 248 $post_ID = get_the_ID(); 244 249 $approved = array( 250 'status' => get_post_meta( $post_ID, 'approved', true ), 245 251 'by' => get_post_meta( $post_ID, 'approved_by', true ), 246 252 'at' => get_post_meta( $post_ID, 'approved_at', true ), 247 253 ); 248 254 249 if ( $approved['by'] ) { 250 $datetime = strtotime( esc_html( $approved['at'] ) ); 251 $date = date( get_option( 'date_format' ), $datetime ); 252 $time = date( get_option( 'time_format' ), $datetime ); 253 printf('<div id="cycles_approval_details">Approved on %s at %s by %s</div>' 254 , esc_html( $date ) 255 , esc_html( $time ) 256 , esc_html( $approved['by'] ) 257 ); 258 } 255 if($approved['status']){ 256 if ( $approved['by'] ) { 257 $datetime = strtotime( esc_html( $approved['at'] ) ); 258 $date = date( get_option( 'date_format' ), $datetime ); 259 $time = date( get_option( 'time_format' ), $datetime ); 260 printf('<div id="cycles_approval_details">Approved on %s at %s by %s</div>' 261 , esc_html( $date ) 262 , esc_html( $time ) 263 , esc_html( $approved['by'] ) 264 ); 265 } 266 } 267 259 268 } 260 269 -
design-feedback/trunk/cycles.php
r1297113 r1318107 16 16 * Plugin URI: https://getCycles.io 17 17 * Description: Instant design feedback and approvals from your clients, all in one place. 18 * Version: 1.4 18 * Version: 1.4.1 19 19 * Author: Cycles 20 20 * Author URI: https://getCycles.io -
design-feedback/trunk/public/class-design-feedback-public.php
r1297113 r1318107 26 26 27 27 public function enqueue_styles() { 28 29 wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/design-feedback-public.css', array(), $this->version, 'all' ); 28 // wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/design-feedback-public.css', array(), $this->version, 'all' ); 30 29 31 30 } … … 42 41 * class. 43 42 */ 44 45 wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/design-feedback-public.js', array( 'jquery' ), $this->version, false ); 43 // wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/design-feedback-public.js', array( 'jquery' ), $this->version, false ); 46 44 47 45 } … … 353 351 add_post_meta( $post_ID, 'approved_by', $signature, true ); 354 352 353 $response = array( 354 'status' => "OK", 355 'text' => "Approved on <br /> ".stripslashes(date('F j, Y'))."<br /> by ".stripslashes($signature) 356 ); 357 echo json_encode($response); 355 358 // Success 356 die( '0');359 die(); 357 360 } 358 361 -
design-feedback/trunk/public/js/design-feedback-public.js
r1297113 r1318107 59 59 _create_tooltips_functionality(); 60 60 _create_inputs_counter(plugin.settings.feedback_dialog, false); 61 62 if($(".img-container").height() < 351) { 63 $(".page-content").css("overflow",'visible'); 64 } 61 65 }; 62 66 … … 109 113 } 110 114 } 111 if(vBreakPoint >= windowH ) {115 if(vBreakPoint >= windowH && $(".img-container").height() > 350) { 112 116 if(!item.hasClass("invert-vertical-bottom")) { 113 117 item.addClass("invert-vertical-bottom") -
design-feedback/trunk/public/templates/single-designfeedback.php
r1297113 r1318107 6 6 $meta = array(); 7 7 $meta['image_design'] = get_post_meta( $post_ID, 'image_design', true ); 8 $meta['approved_by'] = get_post_meta( $post_ID, 'approved_by', true ); 9 $meta['approved_at'] = get_post_meta( $post_ID, 'approved_at', true ); 8 10 $meta['feedback_enabled'] = get_post_meta( $post_ID, 'feedback_enabled', true ); 9 11 $meta = apply_filters( 'cycles_single_post_meta', $meta, $post_ID ); … … 11 13 // Capabilities 12 14 $capabilities = array(); 13 if(has_filter( ' the_content', 'cycles_single_post_capabilities' )){15 if(has_filter( 'cycles_single_post_capabilities' )){ 14 16 $capabilities = apply_filters( 'cycles_single_post_capabilities', $meta, $capabilities ); 15 17 }else{ … … 30 32 $show_select = true; 31 33 } 32 //print_r($names);33 34 34 35 ?>
Note: See TracChangeset
for help on using the changeset viewer.