Plugin Directory

Changeset 1318107


Ignore:
Timestamp:
12/29/2015 07:14:33 PM (10 years ago)
Author:
cycles
Message:

v1.4.1

Location:
design-feedback
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • design-feedback/assets/icon.svg

    r1282469 r1318107  
    11<?xml version="1.0" encoding="UTF-8" standalone="no"?>
    22<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 -->
    44    <title>icon</title>
    55    <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>
    197    <g id="plugin-repo" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
    208        <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>
    3217                    </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>
    3319                </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>
    6120            </g>
    6221        </g>
  • design-feedback/trunk/README.txt

    r1297129 r1318107  
    11=== Cycles ===
    22Contributors: 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-off
     3Tags: 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
    44Requires at least: 4.0
    5 Tested up to: 4.3.1
    6 Stable tag: 1.4
     5Tested up to: 4.4
     6Stable tag: 1.4.1
    77License: GPLv2 or later
    88
     
    1010
    1111== 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._
    1512
    1613[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.
     
    107104== Change Log ==
    108105
     106= 1.4.1 =
     107December 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
    109116= 1.4 =
    110117November 30th, 2015
     
    123130* Enhanced: Better open/close click behavior when viewing comments
    124131* Enhanced: Cycles now updates comment numbers when another comment is deleted
    125 * Fixed: bug with "inverted" feedback on the edge of some designs
     132* Fixed: Bug with "inverted" feedback on the edge of some designs
    126133* Fixed: Image loading animation appears before image begins to load
    127134* Fixed: Removed superfluous styling on the comment box that'd appear in some browsers
     
    173180== Upgrade Notice ==
    174181
    175 = 1.4 =
    176 New "Approvals" feature
     182= 1.4.1 =
     183Bug 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  
    4747            $.post(ajaxurl, data)
    4848                .always(function(response) {
    49                     if (response == 0) {
     49                    json = $.parseJSON( response );
     50                    if (json.status == "OK") {
    5051                        $('#feedback_confirm_loading_message').hide();
    5152                        $('#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                        })
    5358                        design.setApprove(false);
    5459                    } else {
     
    5762                })
    5863            ;
    59         })
    60     ;
     64        });
     65        $(".cycles_approved_content").on("click",function() {
     66            $(this).toggleClass("active");
     67        });
    6168});
  • design-feedback/trunk/addons/approvals/index.php

    r1297129 r1318107  
    133133        $can_approve = $meta[ 'approvals_enabled' ];
    134134        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>     
    138139            </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";' ;} ?>>
    141146                 Approve
    142147            </button>
    143         <?php
    144         } }
     148            <?php
     149        }
    145150    }
    146151
     
    243248        $post_ID = get_the_ID();
    244249        $approved = array(
     250            'status' => get_post_meta( $post_ID, 'approved', true ),
    245251            'by' => get_post_meta( $post_ID, 'approved_by', true ),
    246252            'at' => get_post_meta( $post_ID, 'approved_at', true ),
    247253        );
    248254
    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       
    259268    }
    260269
  • design-feedback/trunk/cycles.php

    r1297113 r1318107  
    1616 * Plugin URI:        https://getCycles.io
    1717 * Description:       Instant design feedback and approvals from your clients, all in one place.
    18  * Version:           1.4
     18 * Version:           1.4.1
    1919 * Author:            Cycles
    2020 * Author URI:        https://getCycles.io
  • design-feedback/trunk/public/class-design-feedback-public.php

    r1297113 r1318107  
    2626
    2727    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' );
    3029
    3130    }
     
    4241        * class.
    4342        */
    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 );
    4644
    4745    }
     
    353351        add_post_meta( $post_ID, 'approved_by', $signature, true );
    354352
     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);
    355358        // Success
    356         die( '0' );
     359        die();
    357360    }
    358361
  • design-feedback/trunk/public/js/design-feedback-public.js

    r1297113 r1318107  
    5959            _create_tooltips_functionality();
    6060            _create_inputs_counter(plugin.settings.feedback_dialog, false);
     61           
     62            if($(".img-container").height() < 351) {
     63                $(".page-content").css("overflow",'visible');
     64            }
    6165        };
    6266
     
    109113                }
    110114            }
    111             if(vBreakPoint >= windowH) {
     115            if(vBreakPoint >= windowH && $(".img-container").height() > 350) {
    112116                if(!item.hasClass("invert-vertical-bottom")) {
    113117                    item.addClass("invert-vertical-bottom")
  • design-feedback/trunk/public/templates/single-designfeedback.php

    r1297113 r1318107  
    66$meta = array();
    77$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 );
    810$meta['feedback_enabled'] = get_post_meta( $post_ID, 'feedback_enabled', true );
    911$meta = apply_filters( 'cycles_single_post_meta', $meta, $post_ID );
     
    1113// Capabilities
    1214$capabilities = array();
    13 if(has_filter( 'the_content', 'cycles_single_post_capabilities' )){
     15if(has_filter( 'cycles_single_post_capabilities' )){
    1416    $capabilities = apply_filters( 'cycles_single_post_capabilities', $meta, $capabilities );
    1517}else{
     
    3032    $show_select = true;
    3133}
    32 //print_r($names);
    3334
    3435?>
Note: See TracChangeset for help on using the changeset viewer.