Plugin Directory

Changeset 2315667


Ignore:
Timestamp:
06/01/2020 09:24:27 AM (6 years ago)
Author:
image4io
Message:

Version 0.3.4

Location:
image4io
Files:
6 edited
33 copied

Legend:

Unmodified
Added
Removed
  • image4io/tags/0.3.4/inc/Api/Image4IOManager.php

    r2315282 r2315667  
    1717    public function setup(){
    1818        if(!$this->isValidOptions()){
    19             return; //redirect to options page?
     19            return "Please set API Key, API Secret and Cloudname from image4io Console";
    2020        }
    2121        $values=get_option( "image4io_settings" );
     
    2929
    3030
    31     public function validateCredentials(){
     31    public function validateCredentialsWithOptions(){
    3232        if(!$this->isValidOptions()){
    33             return; //redirect to options page?
     33            return "Please set API Key, API Secret and Cloudname from image4io Console";
    3434        }
    35         return $this->apiClient->connect();
     35        $values=get_option( "image4io_settings" );
     36        $res=$this->apiClient->getSubscription();
     37        $response=json_decode($res);
     38        if($response->cloudname!=$values['cloudname']){
     39            return "Cloudname is not valid. Please check your image4io cloudname.";
     40        }
     41    }
     42    public function validateCredentials($key,$secret,$cloudname){
     43        if((empty($key)||empty($secret)||empty($cloudname))){
     44            return "Please set API Key, API Secret and Cloudname from image4io Console.";
     45        }
     46        $client=new Image4IOApi($key,$secret);
     47        $canClientConnect=$client->connect();
     48        if(!$canClientConnect){
     49            return "API Key or API Secret is invalid. Cannot establish any connection.";
     50        }
     51        $res=$client->getSubscription();
     52        $response=json_decode($res);
     53        if($response->cloudname!=$cloudname){
     54            return "Cloudname is not valid. Please check your image4io cloudname.";
     55        }
    3656    }
    3757/*
  • image4io/tags/0.3.4/inc/Manager/MediaManager.php

    r2315282 r2315667  
    4444        add_action('admin_notices',array($this,'image4io_upload_notices'));
    4545        add_action('admin_enqueue_scripts', array($this,'mediaButtonEnqueue'));
     46
     47        add_action('pre_update_option_image4io_settings',array($this,'check_image4io_options'),1,3);
    4648       
    4749        //add_action('media_buttons', array($this, 'mediaImage4io'), 11);
     
    138140            $manager = new Image4IOManager;
    139141            $manager->setup();
     142            $error=$manager->validateCredentialsWithOptions();
     143            if(isset($error)){
     144                return $error;
     145            }
    140146            $result = $manager->getImagesByFolder($folder);
    141147            try {
     
    357363        $manager = new Image4IOManager;
    358364        $manager->setup();
     365        $error=$manager->validateCredentialsWithOptions();
     366        if(isset($error)){
     367            return $error;
     368        }
    359369        $result = $manager->deleteImage($name);
    360370
     
    397407        $manager = new Image4IOManager;
    398408        $manager->setup();
     409        $error=$manager->validateCredentialsWithOptions();
     410        if(isset($error)){
     411            return $error;
     412        }
    399413        $result = $manager->uploadToImage4ioFromUrl($full_path,$target_path);
    400414       
     
    769783            $manager = new Image4IOManager;
    770784            $manager->setup();
     785            $error=$manager->validateCredentialsWithOptions();
     786            if(isset($error)){
     787                return $error;
     788            }
    771789            $result = $manager->uploadToImage4ioFromUrl($full_path,"/");
    772790           
     
    814832        return $protocol.'://'.$uri;
    815833    }
     834
     835    public function check_image4io_options($value,$old_value,$option){
     836       
     837        $manager = new Image4IOManager();
     838        $error=$manager->validateCredentials($value['api_key'],$value['api_secret'],$value['cloudname']);
     839        if(isset($error)){
     840            add_settings_error( $option, 1, $error );
     841            return $old_value;
     842        }else{
     843            return $value;
     844        }
     845    }
    816846 }
  • image4io/tags/0.3.4/package-lock.json

    r2315282 r2315667  
    11{
    22  "name": "image4io",
    3   "version": "0.3.3",
     3  "version": "0.3.4",
    44  "lockfileVersion": 1,
    55  "requires": true,
  • image4io/tags/0.3.4/package.json

    r2315282 r2315667  
    11{
    22  "name": "image4io",
    3   "version": "0.3.3",
     3  "version": "0.3.4",
    44  "description": "image4io Wordpress Plugin. Speeds up the images' load time: image optimization, image CDN and image storage, all-in-one platform.",
    55  "main": "index.js",
  • image4io/tags/0.3.4/readme.txt

    r2315282 r2315667  
    128128* Added an option of "Target Folder". It will configure your target folder of the image4io Storage.
    129129
     130= 0.3.4 =
     131* Fixed a bug when uploading images to image4io servers.
     132
    130133== UPGRADE NOTICE ==
    131134
  • image4io/tags/0.3.4/templates/admin.php

    r2292451 r2315667  
    1212</div>
    1313<style>
    14 [data-tooltip] {
    15   position: relative;
    16   z-index: 10;
    17 }
     14  [data-tooltip] {
     15    position: relative;
     16    z-index: 10;
     17  }
    1818
    19 /* Positioning and visibility settings of the tooltip */
    20 [data-tooltip]:before,
    21 [data-tooltip]:after {
    22   position: absolute;
    23   visibility: hidden;
    24   opacity: 0;
    25   left: 50%;
    26   bottom: calc(100% + 5px);
    27   pointer-events: none;
    28   transition: 0.2s;
    29   will-change: transform;
    30 }
     19  /* Positioning and visibility settings of the tooltip */
     20  [data-tooltip]:before,
     21  [data-tooltip]:after {
     22    position: absolute;
     23    visibility: hidden;
     24    opacity: 0;
     25    left: 50%;
     26    bottom: calc(100% + 5px);
     27    pointer-events: none;
     28    transition: 0.2s;
     29    will-change: transform;
     30  }
    3131
    32 /* The actual tooltip with a dynamic width */
    33 [data-tooltip]:before {
    34   content: attr(data-tooltip);
    35   padding: 10px 18px;
    36   min-width: 50px;
    37   max-width: 300px;
    38   width: max-content;
    39   width: -moz-max-content;
    40   border-radius: 6px;
    41   font-size: 14px;
    42 /*   font-size: 0.73rem; */
    43   background-color: rgba(59, 72, 80, 0.9);
    44   background-image: linear-gradient(30deg,
    45     rgba(59, 72, 80, 0.44),
    46     rgba(59, 68, 75, 0.44),
    47     rgba(60, 82, 88, 0.44));
    48   box-shadow: 0px 0px 24px rgba(0, 0, 0, 0.2);
    49   color: #fff;
    50   text-align: center;
    51   white-space: pre-wrap;
    52   transform: translate(-50%, -5px) scale(0.5);
    53 }
     32  /* The actual tooltip with a dynamic width */
     33  [data-tooltip]:before {
     34    content: attr(data-tooltip);
     35    padding: 10px 18px;
     36    min-width: 50px;
     37    max-width: 300px;
     38    width: max-content;
     39    width: -moz-max-content;
     40    border-radius: 6px;
     41    font-size: 14px;
     42  /*   font-size: 0.73rem; */
     43    background-color: rgba(59, 72, 80, 0.9);
     44    background-image: linear-gradient(30deg,
     45      rgba(59, 72, 80, 0.44),
     46      rgba(59, 68, 75, 0.44),
     47      rgba(60, 82, 88, 0.44));
     48    box-shadow: 0px 0px 24px rgba(0, 0, 0, 0.2);
     49    color: #fff;
     50    text-align: center;
     51    white-space: pre-wrap;
     52    transform: translate(-50%, -5px) scale(0.5);
     53  }
    5454
    55 /* Tooltip arrow */
    56 [data-tooltip]:after {
    57   content: '';
    58   border-style: solid;
    59   border-width: 5px 5px 0px 5px;
    60   border-color: rgba(55, 64, 70, 0.9) transparent transparent transparent;
    61   transition-duration: 0s; /* If the mouse leaves the element,
    62                               the transition effects for the
    63                               tooltip arrow are "turned off" */
    64   transform-origin: top;   /* Orientation setting for the
    65                               slide-down effect */
    66   transform: translateX(-50%) scaleY(0);
    67 }
     55  /* Tooltip arrow */
     56  [data-tooltip]:after {
     57    content: '';
     58    border-style: solid;
     59    border-width: 5px 5px 0px 5px;
     60    border-color: rgba(55, 64, 70, 0.9) transparent transparent transparent;
     61    transition-duration: 0s; /* If the mouse leaves the element,
     62                                the transition effects for the
     63                                tooltip arrow are "turned off" */
     64    transform-origin: top;   /* Orientation setting for the
     65                                slide-down effect */
     66    transform: translateX(-50%) scaleY(0);
     67  }
    6868
    69 /* Tooltip becomes visible at hover */
    70 [data-tooltip]:hover:before,
    71 [data-tooltip]:hover:after {
    72   visibility: visible;
    73   opacity: 1;
    74 }
    75 /* Scales from 0.5 to 1 -> grow effect */
    76 [data-tooltip]:hover:before {
    77   transition-delay: 0.3s;
    78   transform: translate(-50%, -5px) scale(1);
    79 }
    80 /* Slide down effect only on mouseenter (NOT on mouseleave) */
    81 [data-tooltip]:hover:after {
    82   transition-delay: 0.5s; /* Starting after the grow effect */
    83   transition-duration: 0.2s;
    84   transform: translateX(-50%) scaleY(1);
    85 }
     69  /* Tooltip becomes visible at hover */
     70  [data-tooltip]:hover:before,
     71  [data-tooltip]:hover:after {
     72    visibility: visible;
     73    opacity: 1;
     74  }
     75  /* Scales from 0.5 to 1 -> grow effect */
     76  [data-tooltip]:hover:before {
     77    transition-delay: 0.3s;
     78    transform: translate(-50%, -5px) scale(1);
     79  }
     80  /* Slide down effect only on mouseenter (NOT on mouseleave) */
     81  [data-tooltip]:hover:after {
     82    transition-delay: 0.5s; /* Starting after the grow effect */
     83    transition-duration: 0.2s;
     84    transform: translateX(-50%) scaleY(1);
     85  }
    8686
    87 /* RIGHT */
    88 [data-tooltip-location="right"]:before,
    89 [data-tooltip-location="right"]:after {
    90   left: calc(100% + 5px);
    91   bottom: 50%;
    92 }
     87  /* RIGHT */
     88  [data-tooltip-location="right"]:before,
     89  [data-tooltip-location="right"]:after {
     90    left: calc(100% + 5px);
     91    bottom: 50%;
     92  }
    9393
    94 [data-tooltip-location="right"]:before {
    95   transform: translate(5px, 50%) scale(0.5);
    96 }
    97 [data-tooltip-location="right"]:hover:before {
    98   transform: translate(5px, 50%) scale(1);
    99 }
     94  [data-tooltip-location="right"]:before {
     95    transform: translate(5px, 50%) scale(0.5);
     96  }
     97  [data-tooltip-location="right"]:hover:before {
     98    transform: translate(5px, 50%) scale(1);
     99  }
    100100
    101 [data-tooltip-location="right"]:after {
    102   border-width: 5px 5px 5px 0px;
    103   border-color: transparent rgba(55, 64, 70, 0.9) transparent transparent;
    104   transform-origin: right;
    105   transform: translateY(50%) scaleX(0);
    106 }
    107 [data-tooltip-location="right"]:hover:after {
    108   transform: translateY(50%) scaleX(1);
    109 }
     101  [data-tooltip-location="right"]:after {
     102    border-width: 5px 5px 5px 0px;
     103    border-color: transparent rgba(55, 64, 70, 0.9) transparent transparent;
     104    transform-origin: right;
     105    transform: translateY(50%) scaleX(0);
     106  }
     107  [data-tooltip-location="right"]:hover:after {
     108    transform: translateY(50%) scaleX(1);
     109  }
    110110
    111111</style>
  • image4io/trunk/inc/Api/Image4IOManager.php

    r2315282 r2315667  
    1717    public function setup(){
    1818        if(!$this->isValidOptions()){
    19             return; //redirect to options page?
     19            return "Please set API Key, API Secret and Cloudname from image4io Console";
    2020        }
    2121        $values=get_option( "image4io_settings" );
     
    2929
    3030
    31     public function validateCredentials(){
     31    public function validateCredentialsWithOptions(){
    3232        if(!$this->isValidOptions()){
    33             return; //redirect to options page?
     33            return "Please set API Key, API Secret and Cloudname from image4io Console";
    3434        }
    35         return $this->apiClient->connect();
     35        $values=get_option( "image4io_settings" );
     36        $res=$this->apiClient->getSubscription();
     37        $response=json_decode($res);
     38        if($response->cloudname!=$values['cloudname']){
     39            return "Cloudname is not valid. Please check your image4io cloudname.";
     40        }
     41    }
     42    public function validateCredentials($key,$secret,$cloudname){
     43        if((empty($key)||empty($secret)||empty($cloudname))){
     44            return "Please set API Key, API Secret and Cloudname from image4io Console.";
     45        }
     46        $client=new Image4IOApi($key,$secret);
     47        $canClientConnect=$client->connect();
     48        if(!$canClientConnect){
     49            return "API Key or API Secret is invalid. Cannot establish any connection.";
     50        }
     51        $res=$client->getSubscription();
     52        $response=json_decode($res);
     53        if($response->cloudname!=$cloudname){
     54            return "Cloudname is not valid. Please check your image4io cloudname.";
     55        }
    3656    }
    3757/*
  • image4io/trunk/inc/Manager/MediaManager.php

    r2315282 r2315667  
    4444        add_action('admin_notices',array($this,'image4io_upload_notices'));
    4545        add_action('admin_enqueue_scripts', array($this,'mediaButtonEnqueue'));
     46
     47        add_action('pre_update_option_image4io_settings',array($this,'check_image4io_options'),1,3);
    4648       
    4749        //add_action('media_buttons', array($this, 'mediaImage4io'), 11);
     
    138140            $manager = new Image4IOManager;
    139141            $manager->setup();
     142            $error=$manager->validateCredentialsWithOptions();
     143            if(isset($error)){
     144                return $error;
     145            }
    140146            $result = $manager->getImagesByFolder($folder);
    141147            try {
     
    357363        $manager = new Image4IOManager;
    358364        $manager->setup();
     365        $error=$manager->validateCredentialsWithOptions();
     366        if(isset($error)){
     367            return $error;
     368        }
    359369        $result = $manager->deleteImage($name);
    360370
     
    397407        $manager = new Image4IOManager;
    398408        $manager->setup();
     409        $error=$manager->validateCredentialsWithOptions();
     410        if(isset($error)){
     411            return $error;
     412        }
    399413        $result = $manager->uploadToImage4ioFromUrl($full_path,$target_path);
    400414       
     
    769783            $manager = new Image4IOManager;
    770784            $manager->setup();
     785            $error=$manager->validateCredentialsWithOptions();
     786            if(isset($error)){
     787                return $error;
     788            }
    771789            $result = $manager->uploadToImage4ioFromUrl($full_path,"/");
    772790           
     
    814832        return $protocol.'://'.$uri;
    815833    }
     834
     835    public function check_image4io_options($value,$old_value,$option){
     836       
     837        $manager = new Image4IOManager();
     838        $error=$manager->validateCredentials($value['api_key'],$value['api_secret'],$value['cloudname']);
     839        if(isset($error)){
     840            add_settings_error( $option, 1, $error );
     841            return $old_value;
     842        }else{
     843            return $value;
     844        }
     845    }
    816846 }
  • image4io/trunk/package-lock.json

    r2315282 r2315667  
    11{
    22  "name": "image4io",
    3   "version": "0.3.3",
     3  "version": "0.3.4",
    44  "lockfileVersion": 1,
    55  "requires": true,
  • image4io/trunk/package.json

    r2315282 r2315667  
    11{
    22  "name": "image4io",
    3   "version": "0.3.3",
     3  "version": "0.3.4",
    44  "description": "image4io Wordpress Plugin. Speeds up the images' load time: image optimization, image CDN and image storage, all-in-one platform.",
    55  "main": "index.js",
  • image4io/trunk/readme.txt

    r2315282 r2315667  
    128128* Added an option of "Target Folder". It will configure your target folder of the image4io Storage.
    129129
     130= 0.3.4 =
     131* Fixed a bug when uploading images to image4io servers.
     132
    130133== UPGRADE NOTICE ==
    131134
  • image4io/trunk/templates/admin.php

    r2292451 r2315667  
    1212</div>
    1313<style>
    14 [data-tooltip] {
    15   position: relative;
    16   z-index: 10;
    17 }
     14  [data-tooltip] {
     15    position: relative;
     16    z-index: 10;
     17  }
    1818
    19 /* Positioning and visibility settings of the tooltip */
    20 [data-tooltip]:before,
    21 [data-tooltip]:after {
    22   position: absolute;
    23   visibility: hidden;
    24   opacity: 0;
    25   left: 50%;
    26   bottom: calc(100% + 5px);
    27   pointer-events: none;
    28   transition: 0.2s;
    29   will-change: transform;
    30 }
     19  /* Positioning and visibility settings of the tooltip */
     20  [data-tooltip]:before,
     21  [data-tooltip]:after {
     22    position: absolute;
     23    visibility: hidden;
     24    opacity: 0;
     25    left: 50%;
     26    bottom: calc(100% + 5px);
     27    pointer-events: none;
     28    transition: 0.2s;
     29    will-change: transform;
     30  }
    3131
    32 /* The actual tooltip with a dynamic width */
    33 [data-tooltip]:before {
    34   content: attr(data-tooltip);
    35   padding: 10px 18px;
    36   min-width: 50px;
    37   max-width: 300px;
    38   width: max-content;
    39   width: -moz-max-content;
    40   border-radius: 6px;
    41   font-size: 14px;
    42 /*   font-size: 0.73rem; */
    43   background-color: rgba(59, 72, 80, 0.9);
    44   background-image: linear-gradient(30deg,
    45     rgba(59, 72, 80, 0.44),
    46     rgba(59, 68, 75, 0.44),
    47     rgba(60, 82, 88, 0.44));
    48   box-shadow: 0px 0px 24px rgba(0, 0, 0, 0.2);
    49   color: #fff;
    50   text-align: center;
    51   white-space: pre-wrap;
    52   transform: translate(-50%, -5px) scale(0.5);
    53 }
     32  /* The actual tooltip with a dynamic width */
     33  [data-tooltip]:before {
     34    content: attr(data-tooltip);
     35    padding: 10px 18px;
     36    min-width: 50px;
     37    max-width: 300px;
     38    width: max-content;
     39    width: -moz-max-content;
     40    border-radius: 6px;
     41    font-size: 14px;
     42  /*   font-size: 0.73rem; */
     43    background-color: rgba(59, 72, 80, 0.9);
     44    background-image: linear-gradient(30deg,
     45      rgba(59, 72, 80, 0.44),
     46      rgba(59, 68, 75, 0.44),
     47      rgba(60, 82, 88, 0.44));
     48    box-shadow: 0px 0px 24px rgba(0, 0, 0, 0.2);
     49    color: #fff;
     50    text-align: center;
     51    white-space: pre-wrap;
     52    transform: translate(-50%, -5px) scale(0.5);
     53  }
    5454
    55 /* Tooltip arrow */
    56 [data-tooltip]:after {
    57   content: '';
    58   border-style: solid;
    59   border-width: 5px 5px 0px 5px;
    60   border-color: rgba(55, 64, 70, 0.9) transparent transparent transparent;
    61   transition-duration: 0s; /* If the mouse leaves the element,
    62                               the transition effects for the
    63                               tooltip arrow are "turned off" */
    64   transform-origin: top;   /* Orientation setting for the
    65                               slide-down effect */
    66   transform: translateX(-50%) scaleY(0);
    67 }
     55  /* Tooltip arrow */
     56  [data-tooltip]:after {
     57    content: '';
     58    border-style: solid;
     59    border-width: 5px 5px 0px 5px;
     60    border-color: rgba(55, 64, 70, 0.9) transparent transparent transparent;
     61    transition-duration: 0s; /* If the mouse leaves the element,
     62                                the transition effects for the
     63                                tooltip arrow are "turned off" */
     64    transform-origin: top;   /* Orientation setting for the
     65                                slide-down effect */
     66    transform: translateX(-50%) scaleY(0);
     67  }
    6868
    69 /* Tooltip becomes visible at hover */
    70 [data-tooltip]:hover:before,
    71 [data-tooltip]:hover:after {
    72   visibility: visible;
    73   opacity: 1;
    74 }
    75 /* Scales from 0.5 to 1 -> grow effect */
    76 [data-tooltip]:hover:before {
    77   transition-delay: 0.3s;
    78   transform: translate(-50%, -5px) scale(1);
    79 }
    80 /* Slide down effect only on mouseenter (NOT on mouseleave) */
    81 [data-tooltip]:hover:after {
    82   transition-delay: 0.5s; /* Starting after the grow effect */
    83   transition-duration: 0.2s;
    84   transform: translateX(-50%) scaleY(1);
    85 }
     69  /* Tooltip becomes visible at hover */
     70  [data-tooltip]:hover:before,
     71  [data-tooltip]:hover:after {
     72    visibility: visible;
     73    opacity: 1;
     74  }
     75  /* Scales from 0.5 to 1 -> grow effect */
     76  [data-tooltip]:hover:before {
     77    transition-delay: 0.3s;
     78    transform: translate(-50%, -5px) scale(1);
     79  }
     80  /* Slide down effect only on mouseenter (NOT on mouseleave) */
     81  [data-tooltip]:hover:after {
     82    transition-delay: 0.5s; /* Starting after the grow effect */
     83    transition-duration: 0.2s;
     84    transform: translateX(-50%) scaleY(1);
     85  }
    8686
    87 /* RIGHT */
    88 [data-tooltip-location="right"]:before,
    89 [data-tooltip-location="right"]:after {
    90   left: calc(100% + 5px);
    91   bottom: 50%;
    92 }
     87  /* RIGHT */
     88  [data-tooltip-location="right"]:before,
     89  [data-tooltip-location="right"]:after {
     90    left: calc(100% + 5px);
     91    bottom: 50%;
     92  }
    9393
    94 [data-tooltip-location="right"]:before {
    95   transform: translate(5px, 50%) scale(0.5);
    96 }
    97 [data-tooltip-location="right"]:hover:before {
    98   transform: translate(5px, 50%) scale(1);
    99 }
     94  [data-tooltip-location="right"]:before {
     95    transform: translate(5px, 50%) scale(0.5);
     96  }
     97  [data-tooltip-location="right"]:hover:before {
     98    transform: translate(5px, 50%) scale(1);
     99  }
    100100
    101 [data-tooltip-location="right"]:after {
    102   border-width: 5px 5px 5px 0px;
    103   border-color: transparent rgba(55, 64, 70, 0.9) transparent transparent;
    104   transform-origin: right;
    105   transform: translateY(50%) scaleX(0);
    106 }
    107 [data-tooltip-location="right"]:hover:after {
    108   transform: translateY(50%) scaleX(1);
    109 }
     101  [data-tooltip-location="right"]:after {
     102    border-width: 5px 5px 5px 0px;
     103    border-color: transparent rgba(55, 64, 70, 0.9) transparent transparent;
     104    transform-origin: right;
     105    transform: translateY(50%) scaleX(0);
     106  }
     107  [data-tooltip-location="right"]:hover:after {
     108    transform: translateY(50%) scaleX(1);
     109  }
    110110
    111111</style>
Note: See TracChangeset for help on using the changeset viewer.