From d860d255657958d01bfb67ac88079aee4c34559d Mon Sep 17 00:00:00 2001 From: Marco Pereirinha Date: Fri, 17 Jul 2020 12:23:23 +0100 Subject: [PATCH 01/12] Add new icons --- .../css/cloudinary.svg | 2 ++ .../css/fonts/cloudinary.eot | Bin 2548 -> 3368 bytes .../css/fonts/cloudinary.ttf | Bin 2372 -> 3192 bytes .../css/fonts/cloudinary.woff | Bin 2448 -> 3268 bytes 4 files changed, 2 insertions(+) diff --git a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/css/cloudinary.svg b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/css/cloudinary.svg index 0b2a81765..fdb8419c8 100644 --- a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/css/cloudinary.svg +++ b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/css/cloudinary.svg @@ -10,4 +10,6 @@ + + \ No newline at end of file diff --git a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/css/fonts/cloudinary.eot b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/css/fonts/cloudinary.eot index 8a843affcefc16ddb9e3d3cf7d3b2e0163499071..912895d47a9b3d0d4cddd33e47ddbd61f2204462 100644 GIT binary patch delta 1063 zcmZuvU5Fc16u#%qY-T2#WG0jOar4*hOftzP>ozkdP`O;S5CD`(}FAZMAj!9{=z;O{$C z(bJ%74XB!iRjs%UsI5ZTb`GP*pys$`M^lwR5!9UbCC$w*LmhmxOOAbih2Utl3?;|= zg~pxxgrlXvMApD#w6d-_Em(zI#VP{c$1EB45$Vs~Z&aJw0Y$YHO{ddq-7Due!imJj z;$o?g%RQDz%6Zc$i(*u&TUK#AZf$S3VqEftwS}y;qN>8oLzJcN=B9h?I{+ahQwp#R z3>pBXvK)d}afRQHgKp;%`>!vv0wQJvrl?W_mN3Qjo8V~2KvS?7hW&QfRh_G1DIBJ8*h_z- zzqRH*=-AN#MW8q73|LHClhH3^-8;4LA~^u=u2lFA0;@s+3PjU zDNsrL-=v_-xrJ<|CP|mNaw2}pvKCGh3v2Oscy0G$rvn1Zv%VS`EGin&L^-DDur(fS z!SQ5jBOidyL~9@J l2@-{*;U0a4UT5B9Pac*Mya@j*KEi)^73XjHv{x2B{};I^+lNN3nv4E3+F^OGnVaJh1w=M1Th*+^p~EvPPBdv0|UbzAWlfmO)L-(yVS|R zz$gRchomPK7XWDiARk0?q~}zoWm|N90`e;u7+51RQWH~zcI~caU|_odlsC%&3b1!E zpI~5M=K%6mGIC2Qgcul;fqWexUnVC%IgzP_Wfzd|0ptthCRP+M@aQqs0|g?00t$JF zxvA1K%9Vh8paqPp3i69f7?^=F44f(;c?M?YhRFqt_KZxEH!ylLGHw3D*vhKR2$TZi zHleNC`b*FML@tbS&&zFay<8CaRY`hhE#?khGK?HhJ1!RprZ^K^cV~#bMeSc IPUkrY04Q!t!2kdN diff --git a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/css/fonts/cloudinary.ttf b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/css/fonts/cloudinary.ttf index 71b6556b5af1c4fbede5021b7090da8e22a5d512..44c8eb0aa9edda6e6bb34c7d0383b17a943effe8 100644 GIT binary patch delta 1054 zcmZuwOK%fb6u#%q*fV~_Gak=__(hnpXA(Okp0Pc4nm8s1n#7J3B!ZPlRf`oK;bDkm z3#C$3qdwHqcGG%O^(Pb-NJt0?7NE9^c8P=pV$oGMm5{ms3BiUl32adB+;h+U&g))% z=g#la%Y6d^gpd%qN*GdDJwELSlJ5yx?xCFA>~^-b_QUT9fh6L!vz^{HY7w!g`Lh>4 zJ#+K(fAWZT5MJFn-8nUS;_f$u1YV-w-9iKR9rG6c6PQ&gbon@fOzaur+Yg2^Nx=A1|IV3_T^q5FN!0)?)eGBT>tTY9oV0s z3GA&E_}aHYNsV-v-^W*0!Mb^@wsk2ZvbhBJ? zXQ46=Mcdi6?uUxw79CZQ{drKVp-io@8K{CMcEPdV?hx$lW}x5<>oo4XbvSAY4D{-F zj9S!Grw;RAmCQWgeT;%`?>W77xIoo`?Uxl>Ry8`f*1B|Nc_fioo}4V?EbB-jDUBO? zQ4peH)im?{etmtt9^;Z%7ALaioT3DL`zTA@l@<5eV}L+dq7+~q7!&|XB`FMF;10*% z-B$Agd(bppK?sNP>2#KnqSZ`hBA*?YGoo1Cn6Ga{7mh_D1^vLd2GDZdmFk}({4<6E zGY2q-RVjTImawolu`Q%QK4fk)ACRvQAgd8TGN-{TA(tNW$h%@y6eKzg$R)Se5F-Z$ zhd%6xU%(9i09l%aDNJ#_COGPTP-QHJX0IJ~S>wuB3a6p(_ReEv@|&0!NWM9SIBBztbDdER^d z-aiYYzdV|K^2aB_+zS$7Ju7)ynY!~%51;!h5ExE!NgbUvl*VpMkjNwrujohg2JSSPGlmYTX(i4jd zfV2RR5288Jb1KuaEjm8|`4tQdtPvThi77(6c2_enuw4Mkn`Hn6*t?idFfg!l0Qo8z zxg`}s42;P@z7CKtlart9n8?(^vI{8S0Td9(O{^$j;9;r<@*{wJg}lVvROuPzN)JZ`NbtbhXMho3P_%TnYm%&0eeQKNsQi%Oq+ceTUnJs{sH1Pp{?8F`E9;3aI=8a zGhBbU8)z(qo-D&_K@CmA$NbdeWho+-1lgEPas^m z@y=!Bj*xoK#l3fbFYN91E)n8Ck1>{u_^aQ2w1*^ehiGSAaGx+g@AU^m>l`3pc;(B6Vk|+&r)c_%&bt8^_>^ zVZL&L&;ZtHLkrk%?!bo=+mzHvkNJU_ChO#HLUKmQv?^sy*YtVNHPukK5O5xR-ARhd z8IWU3P*D}FQnr?$x&kG`9J6PjYFZ^TCPh63kaXt_sym0&Cl^hl28&PwoK9AYP&A#} zG_i2vFk@*@(W~GNv637!8?XX;St|e@MJ+1Eu~T)P(!|IUm5gXirlVV({mUDZ$>he| zTrscf=aVUMMpa5Y9~NqwRu~K#TU(6?mwIb$Hm5C1l5b*)veas~ty>QPd_j>?fGuDU z0F;Vi5Z=cXK9BpI)^+wdO|y7D7${^iIYtcEvf0@}P8%%>LT!7cu^oQlVklHp&d$gH z9m{Ihewy??VJI-m0LxgF(kDR?3%djRLYicidB8kRK0pJ-3;}Am09qL(bOlGbCA})4 zz8OFXx#K>lc~Cj@VIw>|W_YAg6!o9S6wB4#jGcj46pNv7ZWoM-%vG=y4pkYq&<%7$ ztJZ0wjyEU(eLyGhxIh`mQt*1Ck%*DB?V0sdGDD$OZZ^xPmpliIYC&g+~3WOfsp|SI43Z0gJ~BA#>pFbgePi>)vrm;O)OwwV9WqYgn+Pk*rm?& z#A1-x9w46siUrbhD${^sM;I7bBS1LYqVrQmYGMil1G@}RjTs0F?b=5=*`Hqc?M%Et1=@{ z0*Kp$wr-E-xB1Gz%>oo)V7UHrcRh@roWW(z$Ub=imy8%#j*CHrL5}ekQw-A@kX8ov Y$@jQEFd9rg&n*fhmvPHYX688v08g7oBme*a From a51faa98a025a82a38b535f13504f3729d25cc43 Mon Sep 17 00:00:00 2001 From: Marco Pereirinha Date: Fri, 17 Jul 2020 12:23:51 +0100 Subject: [PATCH 02/12] Update Cloudinary blue --- .../css/src/_variables.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/css/src/_variables.scss b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/css/src/_variables.scss index 78f9b9443..3e520e8fa 100644 --- a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/css/src/_variables.scss +++ b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/css/src/_variables.scss @@ -3,5 +3,5 @@ $color-green : #558b2f; $color-red : #dd2c00; $color-light-grey : #e5e5e5; $color-white : #ffffff; -$color-blue : #0078ff; +$color-blue : #0071ba; $color-orange : #fd9d2c; From 845d085b945b0851dbd84ed40ecd5ef9229f648f Mon Sep 17 00:00:00 2001 From: Marco Pereirinha Date: Fri, 17 Jul 2020 12:24:04 +0100 Subject: [PATCH 03/12] Bust font cache --- .../css/src/components/_brand.scss | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/css/src/components/_brand.scss b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/css/src/components/_brand.scss index 34f384d33..2faa623c9 100755 --- a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/css/src/components/_brand.scss +++ b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/css/src/components/_brand.scss @@ -1,10 +1,10 @@ @font-face { font-family : 'cloudinary'; - src : url('fonts/cloudinary.eot?fj77m5'); - src : url('fonts/cloudinary.eot?fj77m5#iefix') format('embedded-opentype'), - url('fonts/cloudinary.ttf?fj77m5') format('truetype'), - url('fonts/cloudinary.woff?fj77m5') format('woff'), - url('fonts/cloudinary.svg?fj77m5#cloudinary') format('svg'); + src : url('fonts/cloudinary.eot?xr4567gh'); + src : url('fonts/cloudinary.eot?xr4567gh#iefix') format('embedded-opentype'), + url('fonts/cloudinary.ttf?xr4567gh') format('truetype'), + url('fonts/cloudinary.woff?xr4567gh') format('woff'), + url('fonts/cloudinary.svg?xr4567gh#cloudinary') format('svg'); font-weight : normal; font-style : normal; } From e7460bea6e94f1855ae8ae01d4950ce5182e70c1 Mon Sep 17 00:00:00 2001 From: Marco Pereirinha Date: Fri, 17 Jul 2020 12:24:28 +0100 Subject: [PATCH 04/12] Styling informative status --- .../css/src/components/_brand.scss | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/css/src/components/_brand.scss b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/css/src/components/_brand.scss index 2faa623c9..f210c857e 100755 --- a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/css/src/components/_brand.scss +++ b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/css/src/components/_brand.scss @@ -48,12 +48,20 @@ } } - &.warning { - color : $color-orange; + &.info { + color : $color-blue; } - &.warning { - color : $color-orange; + &.downloading { + &:before { + content: '\e903'; + } + } + + &.syncing { + &:before { + content: '\e904'; + } } } } From 9f9e5df1dcd30852657e207e0ac203020193af14 Mon Sep 17 00:00:00 2001 From: Marco Pereirinha Date: Fri, 17 Jul 2020 12:25:47 +0100 Subject: [PATCH 05/12] Introduce new meta keys --- .../php/class-sync.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/class-sync.php b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/class-sync.php index 7f2c9816e..774dc76ea 100644 --- a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/class-sync.php +++ b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/class-sync.php @@ -49,6 +49,8 @@ class Sync implements Setup, Assets { 'sync_error' => '_sync_error', 'cloudinary' => '_cloudinary_v2', 'folder_sync' => '_folder_sync', + 'syncing' => '_cloudinary_syncing', + 'downloading' => '_cloudinary_downloading', ); /** From ad4b226abb61f414f6b1bb021bb8f2239aa8ed6f Mon Sep 17 00:00:00 2001 From: Marco Pereirinha Date: Fri, 17 Jul 2020 12:26:27 +0100 Subject: [PATCH 06/12] Shortcircuit to enabling flag syncing status --- .../php/class-media.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/class-media.php b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/class-media.php index f555a1924..2ffd89d18 100644 --- a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/class-media.php +++ b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/class-media.php @@ -1096,6 +1096,7 @@ public function media_column_value( $column_name, $attachment_id ) { 'state' => 'inactive', 'note' => esc_html__( 'Not Synced', 'cloudinary' ), ); + add_filter( 'cloudinary_flag_sync', '__return_true' ); if ( false === $this->cloudinary_id( $attachment_id ) ) { // If false, lets check why by seeing if the file size is too large. $file = get_attached_file( $attachment_id ); // Get the file size to make sure it can exist in cloudinary. @@ -1112,6 +1113,7 @@ public function media_column_value( $column_name, $attachment_id ) { 'note' => esc_html__( 'Synced', 'cloudinary' ), ); } + remove_filter( 'cloudinary_flag_sync', '__return_true' ); // filter status. $status = apply_filters( 'cloudinary_media_status', $status, $attachment_id ); ?> From 080284d3c9ed1339f23230bf637335851d945542 Mon Sep 17 00:00:00 2001 From: Marco Pereirinha Date: Fri, 17 Jul 2020 12:26:40 +0100 Subject: [PATCH 07/12] Flag the syncing status --- .../php/class-sync.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/class-sync.php b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/class-sync.php index 774dc76ea..be7d04329 100644 --- a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/class-sync.php +++ b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/class-sync.php @@ -102,14 +102,18 @@ public function is_active() { * @return bool */ public function is_synced( $post_id ) { - $return = false; $signature = $this->get_signature( $post_id ); $expecting = $this->generate_signature( $post_id ); + if ( ! empty( $signature ) && ! empty( $expecting ) && $expecting === $signature ) { - $return = $signature; + return true; } - return $return; + if ( apply_filters( 'cloudinary_flag_sync', '__return_false' ) ) { + update_post_meta( $post_id, Sync::META_KEYS['syncing'], true ); + } + + return false; } /** From 9c31993c489e235175dc71b423ac4cf9b2cb3701 Mon Sep 17 00:00:00 2001 From: Marco Pereirinha Date: Fri, 17 Jul 2020 12:27:04 +0100 Subject: [PATCH 08/12] Informative status for assets --- .../php/media/class-upgrade.php | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/media/class-upgrade.php b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/media/class-upgrade.php index 83f37c492..63eefa06f 100644 --- a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/media/class-upgrade.php +++ b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/media/class-upgrade.php @@ -96,6 +96,29 @@ public function check_cloudinary_version( $cloudinary_id, $attachment_id ) { return $cloudinary_id; } + /** + * Checks the status of the media item. + * + * @param array $status Array of state and note. + * @param int $attachment_id The attachment id. + * + * @return array + */ + public function filter_status( $status, $attachment_id ) { + + if ( get_post_meta( $attachment_id, Sync::META_KEYS['downloading'] ) ) { + $status['state'] = 'info downloading'; + $status['note'] = __( 'Downloading', 'cloudinary' ); + } + + if ( get_post_meta( $attachment_id, Sync::META_KEYS['syncing'] ) ) { + $status['state'] = 'info syncing'; + $status['note'] = __( 'Syncing metadata', 'cloudinary' ); + } + + return $status; + } + /** * Convert an image post that was created from Cloudinary v1. * @@ -152,6 +175,9 @@ function ( $val ) use ( $media ) { public function setup_hooks() { add_filter( 'validate_cloudinary_id', array( $this, 'check_cloudinary_version' ), 10, 2 ); // Priority 10, to allow prep_on_demand_upload. + // Show sync status. + add_filter( 'cloudinary_media_status', array( $this, 'filter_status' ), 20, 2 ); + // Add a redirection to the new plugin settings, from the old plugin. if ( is_admin() ) { add_action( 'admin_menu', function () { From 8d5796a626e8f5b09d70ac4cd11e3c3cd70b711b Mon Sep 17 00:00:00 2001 From: Marco Pereirinha Date: Fri, 17 Jul 2020 12:28:14 +0100 Subject: [PATCH 09/12] Flag the downloading status --- .../php/media/class-upgrade.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/media/class-upgrade.php b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/media/class-upgrade.php index 63eefa06f..9fc1a6315 100644 --- a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/media/class-upgrade.php +++ b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/media/class-upgrade.php @@ -162,6 +162,10 @@ function ( $val ) use ( $media ) { $path = pathinfo( $public_id ); $public_id = strstr( $public_id, '.' . $path['extension'], true ); $this->media->update_post_meta( $attachment_id, Sync::META_KEYS['public_id'], $public_id ); + + // Flag the download + update_post_meta( $attachment_id, Sync::META_KEYS['downloading'], true ); + if ( ! defined( 'DOING_BULK_SYNC' ) ) { $this->sync->managers['upload']->add_to_sync( $attachment_id ); // Auto sync if upgrading outside of bulk sync. } From 40be42f51711c019b15f5290ca45abf8c5540f6b Mon Sep 17 00:00:00 2001 From: Marco Pereirinha Date: Fri, 17 Jul 2020 12:28:28 +0100 Subject: [PATCH 10/12] Cleanup flags --- .../php/sync/class-push-sync.php | 9 +++++++++ .../php/sync/class-upload-sync.php | 2 ++ 2 files changed, 11 insertions(+) diff --git a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/sync/class-push-sync.php b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/sync/class-push-sync.php index e01ccc794..09ef6f25d 100644 --- a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/sync/class-push-sync.php +++ b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/sync/class-push-sync.php @@ -391,6 +391,10 @@ public function prepare_upload( $post, $down_sync = false ) { $error = sprintf( __( 'File size exceeds the maximum of %s. This media asset will be served from WordPress.', 'cloudinary' ), $max_size_hr ); $media->delete_post_meta( $post->ID, Sync::META_KEYS['pending'] ); // Remove Flag. + // Cleanup flags + delete_post_meta( $post->ID, Sync::META_KEYS['syncing'] ); + delete_post_meta( $post->ID, Sync::META_KEYS['downloading'] ); + return new \WP_Error( 'upload_error', $error ); } @@ -629,6 +633,11 @@ public function push_attachments( $attachments ) { $meta_data[ Sync::META_KEYS['version'] ] = $result['version']; } $media->delete_post_meta( $attachment->ID, Sync::META_KEYS['pending'] ); + + // Cleanup flags + delete_post_meta( $attachment->ID, Sync::META_KEYS['downloading'] ); + delete_post_meta( $attachment->ID, Sync::META_KEYS['syncing'] ); + $media->delete_post_meta( $attachment->ID, Sync::META_KEYS['sync_error'], false ); if ( ! empty( $this->plugin->config['settings']['global_transformations']['enable_breakpoints'] ) ) { if ( ! empty( $result['responsive_breakpoints'] ) ) { // Images only. diff --git a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/sync/class-upload-sync.php b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/sync/class-upload-sync.php index 0c267672b..420f78224 100644 --- a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/sync/class-upload-sync.php +++ b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/sync/class-upload-sync.php @@ -145,6 +145,8 @@ public function handle_bulk_actions( $location, $action, $post_ids ) { delete_post_meta( $post_id, Sync::META_KEYS['sync_error'] ); delete_post_meta( $post_id, Sync::META_KEYS['public_id'] ); delete_post_meta( $post_id, Sync::META_KEYS['pending'] ); + delete_post_meta( $post_id, Sync::META_KEYS['downloading'] ); + delete_post_meta( $post_id, Sync::META_KEYS['syncing'] ); $file = get_attached_file( $post_id ); wp_generate_attachment_metadata( $post_id, $file ); $this->prep_upload( $post_id ); From 351dbf7acfd4679474685dc944db70c636a43c33 Mon Sep 17 00:00:00 2001 From: Marco Pereirinha Date: Fri, 17 Jul 2020 12:28:48 +0100 Subject: [PATCH 11/12] Add consistency --- .../php/sync/class-upload-sync.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/sync/class-upload-sync.php b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/sync/class-upload-sync.php index 420f78224..b7a6022d7 100644 --- a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/sync/class-upload-sync.php +++ b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/php/sync/class-upload-sync.php @@ -306,14 +306,14 @@ public function filter_status( $status, $attachment_id ) { if ( $this->is_pending( $attachment_id ) ) { $status['state'] = 'warning'; - $status['note'] = esc_html__( 'Upload sync pending', 'cloudinary' ); + $status['note'] = __( 'Upload sync pending', 'cloudinary' ); } // Check if there's an error. $has_error = $this->plugin->components['media']->get_post_meta( $attachment_id, Sync::META_KEYS['sync_error'], true ); if ( ! empty( $has_error ) ) { - $status['note'] = $has_error; $status['state'] = 'error'; + $status['note'] = $has_error; } return $status; From aa9c4fe6d51a62ef34ef241ed7d1b9b1d44a4bbb Mon Sep 17 00:00:00 2001 From: Marco Pereirinha Date: Fri, 17 Jul 2020 12:29:06 +0100 Subject: [PATCH 12/12] Add compiled assets --- .../css/cloudinary.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/css/cloudinary.css b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/css/cloudinary.css index 828916641..52fc32452 100644 --- a/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/css/cloudinary.css +++ b/cloudinary-image-management-and-manipulation-in-the-cloud-cdn/css/cloudinary.css @@ -1 +1 @@ -@font-face{font-family:cloudinary;src:url(../css/fonts/cloudinary.eot);src:url(../css/fonts/cloudinary.eot#iefix) format("embedded-opentype"),url(../css/fonts/cloudinary.ttf) format("truetype"),url(../css/fonts/cloudinary.woff) format("woff"),url(../css/cloudinary.svg#cloudinary) format("svg");font-weight:400;font-style:normal}.dashicons-cloudinary{speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dashicons-cloudinary:before{font-family:cloudinary!important;content:"\e900"}.dashicons-cloudinary.success{color:#558b2f}.dashicons-cloudinary.error{color:#dd2c00}.dashicons-cloudinary.error:before{content:"\e901"}.dashicons-cloudinary.warning:before{content:"\e902"}.dashicons-cloudinary.warning{color:#fd9d2c}.column-cld_status{width:5.5em}.column-cld_status .dashicons-cloudinary{display:inline-block}.column-cld_status .dashicons-cloudinary:before{font-size:1.8rem}.form-field .error-notice,.form-table .error-notice{display:none;color:#dd2c00}.form-field input.cld-field:invalid,.form-table input.cld-field:invalid{border-color:#dd2c00}.form-field input.cld-field:invalid+.error-notice,.form-table input.cld-field:invalid+.error-notice{display:inline-block}.cloudinary-welcome{background-image:url(../css/logo.svg);background-repeat:no-repeat;background-size:153px;background-position:top 12px right 20px}.cloudinary-stats{display:inline-block;margin-left:25px}.cloudinary-stat{cursor:help}.cloudinary-percent{font-size:.8em;vertical-align:top;color:#0078ff}.settings-image{max-width:100%;padding-top:5px}.settings-tabs>li{display:inline-block}.settings-tabs>li a{padding:.6em}.settings-tabs>li a.active{background-color:#fff}.settings-tab-section{padding:20px 0 0;max-width:1030px;position:relative}.settings-tab-section.cloudinary-welcome .settings-tab-section-fields-dashboard{display:flex;align-items:flex-start;align-content:flex-start;margin-top:40px}.settings-tab-section.cloudinary-welcome .settings-tab-section-fields-dashboard-description{width:55%;margin:0 auto 0 0}.settings-tab-section.cloudinary-welcome .settings-tab-section-fields-dashboard-content{width:35%;margin:0 auto}.settings-tab-section.cloudinary-welcome .settings-tab-section-fields-dashboard-content .dashicons{color:#9ea3a8}.settings-tab-section.cloudinary-welcome .settings-tab-section-card{margin-top:0}.settings-tab-section-fields .field-heading th{display:block;width:auto;color:#23282d;font-size:1.1em;margin:1em 0}.settings-tab-section-fields .field-heading td{display:none;visibility:hidden}.settings-tab-section-fields .regular-textarea{width:100%;height:60px}.settings-tab-section-fields .dashicons{text-decoration:none;vertical-align:middle}.settings-tab-section-fields a .dashicons{color:#5f5f5f}.settings-tab-section-fields-dashboard-error{font-size:1.2em;color:#5f5f5f}.settings-tab-section-fields-dashboard-error .dashicons{color:#ac0000}.settings-tab-section-fields-dashboard-error .button{font-size:1.1em;height:40px;line-height:40px;padding-right:40px;padding-left:40px}.settings-tab-section-fields-dashboard-success{font-size:1.2em;color:#23282d}.settings-tab-section-fields-dashboard-success.expanded{padding-top:40px}.settings-tab-section-fields-dashboard-success .dashicons{color:#4fb651}.settings-tab-section-fields-dashboard-success .button{font-size:1.1em;height:40px;line-height:40px;padding-right:40px;padding-left:40px}.settings-tab-section-fields-dashboard-success .description{color:#5f5f5f;font-weight:400;margin-top:12px}.settings-tab-section-card{box-sizing:border-box;border:1px solid #e5e5e5;background-color:#fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.07);padding:20px 23px;margin-top:12px}.settings-tab-section-card .dashicons{font-size:1.4em}.settings-tab-section-card h2{font-size:1.8em;font-weight:400;margin-top:0}.settings-tab-section-card.pull-right{width:450px;padding:12px;float:right;position:relative;z-index:10}.settings-tab-section-card.pull-right img.settings-image{box-shadow:0 2px 4px 0 rgba(0,0,0,.5);border:1px solid #979797;margin-top:12px}.settings-tab-section-card.pull-right h3,.settings-tab-section-card.pull-right h4{margin-top:0}.settings-tab-section .field-row-cloudinary_url,.settings-tab-section .field-row-signup{display:block}.settings-tab-section .field-row-cloudinary_url td,.settings-tab-section .field-row-cloudinary_url th,.settings-tab-section .field-row-signup td,.settings-tab-section .field-row-signup th{display:block;width:auto;padding:10px 0 0}.settings-tab-section .field-row-cloudinary_url td .sign-up,.settings-tab-section .field-row-cloudinary_url th .sign-up,.settings-tab-section .field-row-signup td .sign-up,.settings-tab-section .field-row-signup th .sign-up{vertical-align:baseline}.settings-tab-section.connect .form-table{display:inline-block;width:auto;max-width:580px}.settings-valid{color:#558b2f;font-size:30px}.settings-valid-field{border-color:#558b2f!important}.settings-invalid-field{border-color:#dd2c00!important}.settings-warning{display:inline-block;padding:5px 7px;background-color:#e9faff;border:1px solid #ccd0d4;border-left:4px solid #00a0d2;box-shadow:0 1px 1px rgba(0,0,0,.04)}.sync .spinner{display:inline-block;visibility:visible;float:none;margin:0 5px 0 0}.sync-media,.sync-media-progress{display:none}.sync-media-progress-outer{height:20px;margin:20px 0 10px;width:500px;background-color:#e5e5e5;position:relative}.sync-media-progress-outer .progress-bar{width:0;height:20px;background-color:#558b2f;transition:width .25s}.sync-media-progress-notice{color:#dd2c00}.sync-media-resource{width:100px;display:inline-block}.sync-media-error{color:#dd2c00}.sync-count{font-weight:700}.sync-details{margin-top:10px}.sync .button.start-sync,.sync .button.stop-sync{display:none;padding:0 16px}.sync .button.start-sync .dashicons,.sync .button.stop-sync .dashicons{line-height:2.2em}.sync .progress-text{padding:12px 4px 12px 12px;display:inline-block;font-weight:700}.sync .completed{max-width:300px;display:none}.sync-status-disabled{color:#dd2c00}.sync-status-enabled{color:#558b2f}.sync-status-button.button{vertical-align:baseline}.cloudinary-widget{height:100%}.cloudinary-widget-wrapper{height:100%;overflow:hidden;background-image:url("data:image/svg+xml;base64,PHN2ZyBjbGFzcz0ic3Bpbm5lciIgdmlld0JveD0iLTQgLTQgMTUxIDEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48c3R5bGU+QGtleWZyYW1lcyBjb2xvcnN7MCUsdG97c3Ryb2tlOiMwMDc4ZmZ9NTAle3N0cm9rZTojMGUyZjVhfX1Aa2V5ZnJhbWVzIGRhc2h7MCUsdG97c3Ryb2tlLWRhc2hvZmZzZXQ6NTYwfTUwJXtzdHJva2UtZGFzaG9mZnNldDowfX1ALXdlYmtpdC1rZXlmcmFtZXMgY29sb3JzezAlLHRve3N0cm9rZTojMDA3OGZmfTUwJXtzdHJva2U6IzBlMmY1YX19QC13ZWJraXQta2V5ZnJhbWVzIGRhc2h7MCUsdG97c3Ryb2tlLWRhc2hvZmZzZXQ6NTYwfTUwJXtzdHJva2UtZGFzaG9mZnNldDowfX08L3N0eWxlPjxwYXRoIGQ9Ik0xMjEuNjYzIDkwLjYzOGMtMS43OTYgMC05OS4zMy0uNDk4LTEwMS40NzQtMS40NzhDOC42ODUgODMuODc3IDEuMjUgNzIuMTk2IDEuMjUgNTkuMzk2YzAtMTYuNjU2IDEyLjc5Ny0zMC42MSAyOS4wNTItMzIuMzIzIDcuNDktMTUuNzA2IDIzLjE4Ni0yNS43MDcgNDAuNzE0LTI1LjcwNyAyMC45OCAwIDM5LjIxNSAxNC43NTIgNDMuOTQ1IDM0LjkwNyAxNS4wOS4yNDUgMjcuMjkgMTIuNjMgMjcuMjkgMjcuODIyIDAgMTEuOTY4LTcuNzM4IDIyLjU1LTE5LjI1NiAyNi4zMyIgc3Ryb2tlLXdpZHRoPSI5IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3R5bGU9InRyYW5zZm9ybS1vcmlnaW46Y2VudGVyOy13ZWJraXQtYW5pbWF0aW9uOmRhc2ggMnMgZWFzZS1pbi1vdXQgaW5maW5pdGUsY29sb3JzIDhzIGVhc2UtaW4tb3V0IGluZmluaXRlO2FuaW1hdGlvbjpkYXNoIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlLGNvbG9ycyA4cyBlYXNlLWluLW91dCBpbmZpbml0ZSIgc3Ryb2tlLWRhc2hhcnJheT0iMjgwIi8+PC9zdmc+");background-repeat:no-repeat;background-position:50%;background-size:150px}.attachment-actions .button.edit-attachment,.attachment-info .edit-attachment{display:none}.global-transformations-preview{position:relative;max-width:600px}.global-transformations-spinner{display:none}.global-transformations-button.button-primary{display:none;position:absolute;z-index:100}.global-transformations-url{margin-bottom:5px;margin-top:5px}.global-transformations-url-transformation{max-width:100px;overflow:hidden;text-overflow:ellipsis;color:#51a3ff}.global-transformations-url-file{color:#f2d864}.global-transformations-url-link{display:block;padding:16px;background-color:#262c35;text-decoration:none;color:#fff;border-radius:6px;overflow:hidden;text-overflow:ellipsis}.global-transformations-url-link:hover{color:#888;text-decoration:underline}.cld-tax-order-list-item{border:1px solid #efefef;padding:4px;margin:0 0 -1px;background-color:#fff}.cld-tax-order-list-item.no-items{color:#888;text-align:center;display:none}.cld-tax-order-list-item.no-items:last-child{display:block}.cld-tax-order-list-item.ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,.2)}.cld-tax-order-list-item-placeholder{background-color:#efefef;height:45px;margin:0}.cld-tax-order-list-item-handle{cursor:grab;margin-right:4px;color:#999}.cld-tax-order-list-type{width:45%;display:inline-block;margin-right:8px}.cld-tax-order-list-type input{margin-right:4px!important}.cloudinary-media-library{position:relative;margin-left:-20px}@media screen and (max-width:782px){.cloudinary-media-library{margin-left:-10px}} \ No newline at end of file +@font-face{font-family:cloudinary;src:url(../css/fonts/cloudinary.eot);src:url(../css/fonts/cloudinary.eot#iefix) format("embedded-opentype"),url(../css/fonts/cloudinary.ttf) format("truetype"),url(../css/fonts/cloudinary.woff) format("woff"),url(../css/cloudinary.svg#cloudinary) format("svg");font-weight:400;font-style:normal}.dashicons-cloudinary{speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dashicons-cloudinary:before{font-family:cloudinary!important;content:"\e900"}.dashicons-cloudinary.success{color:#558b2f}.dashicons-cloudinary.error{color:#dd2c00}.dashicons-cloudinary.error:before{content:"\e901"}.dashicons-cloudinary.warning{color:#fd9d2c}.dashicons-cloudinary.warning:before{content:"\e902"}.dashicons-cloudinary.info{color:#0071ba}.dashicons-cloudinary.downloading:before{content:"\e903"}.dashicons-cloudinary.syncing:before{content:"\e904"}.column-cld_status{width:5.5em}.column-cld_status .dashicons-cloudinary{display:inline-block}.column-cld_status .dashicons-cloudinary:before{font-size:1.8rem}.form-field .error-notice,.form-table .error-notice{display:none;color:#dd2c00}.form-field input.cld-field:invalid,.form-table input.cld-field:invalid{border-color:#dd2c00}.form-field input.cld-field:invalid+.error-notice,.form-table input.cld-field:invalid+.error-notice{display:inline-block}.cloudinary-welcome{background-image:url(../css/logo.svg);background-repeat:no-repeat;background-size:153px;background-position:top 12px right 20px}.cloudinary-stats{display:inline-block;margin-left:25px}.cloudinary-stat{cursor:help}.cloudinary-percent{font-size:.8em;vertical-align:top;color:#0071ba}.settings-image{max-width:100%;padding-top:5px}.settings-tabs>li{display:inline-block}.settings-tabs>li a{padding:.6em}.settings-tabs>li a.active{background-color:#fff}.settings-tab-section{padding:20px 0 0;max-width:1030px;position:relative}.settings-tab-section.cloudinary-welcome .settings-tab-section-fields-dashboard{display:flex;align-items:flex-start;align-content:flex-start;margin-top:40px}.settings-tab-section.cloudinary-welcome .settings-tab-section-fields-dashboard-description{width:55%;margin:0 auto 0 0}.settings-tab-section.cloudinary-welcome .settings-tab-section-fields-dashboard-content{width:35%;margin:0 auto}.settings-tab-section.cloudinary-welcome .settings-tab-section-fields-dashboard-content .dashicons{color:#9ea3a8}.settings-tab-section.cloudinary-welcome .settings-tab-section-card{margin-top:0}.settings-tab-section-fields .field-heading th{display:block;width:auto;color:#23282d;font-size:1.1em;margin:1em 0}.settings-tab-section-fields .field-heading td{display:none;visibility:hidden}.settings-tab-section-fields .regular-textarea{width:100%;height:60px}.settings-tab-section-fields .dashicons{text-decoration:none;vertical-align:middle}.settings-tab-section-fields a .dashicons{color:#5f5f5f}.settings-tab-section-fields-dashboard-error{font-size:1.2em;color:#5f5f5f}.settings-tab-section-fields-dashboard-error .dashicons{color:#ac0000}.settings-tab-section-fields-dashboard-error .button{font-size:1.1em;height:40px;line-height:40px;padding-right:40px;padding-left:40px}.settings-tab-section-fields-dashboard-success{font-size:1.2em;color:#23282d}.settings-tab-section-fields-dashboard-success.expanded{padding-top:40px}.settings-tab-section-fields-dashboard-success .dashicons{color:#4fb651}.settings-tab-section-fields-dashboard-success .button{font-size:1.1em;height:40px;line-height:40px;padding-right:40px;padding-left:40px}.settings-tab-section-fields-dashboard-success .description{color:#5f5f5f;font-weight:400;margin-top:12px}.settings-tab-section-card{box-sizing:border-box;border:1px solid #e5e5e5;background-color:#fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.07);padding:20px 23px;margin-top:12px}.settings-tab-section-card .dashicons{font-size:1.4em}.settings-tab-section-card h2{font-size:1.8em;font-weight:400;margin-top:0}.settings-tab-section-card.pull-right{width:450px;padding:12px;float:right;position:relative;z-index:10}.settings-tab-section-card.pull-right img.settings-image{box-shadow:0 2px 4px 0 rgba(0,0,0,.5);border:1px solid #979797;margin-top:12px}.settings-tab-section-card.pull-right h3,.settings-tab-section-card.pull-right h4{margin-top:0}.settings-tab-section .field-row-cloudinary_url,.settings-tab-section .field-row-signup{display:block}.settings-tab-section .field-row-cloudinary_url td,.settings-tab-section .field-row-cloudinary_url th,.settings-tab-section .field-row-signup td,.settings-tab-section .field-row-signup th{display:block;width:auto;padding:10px 0 0}.settings-tab-section .field-row-cloudinary_url td .sign-up,.settings-tab-section .field-row-cloudinary_url th .sign-up,.settings-tab-section .field-row-signup td .sign-up,.settings-tab-section .field-row-signup th .sign-up{vertical-align:baseline}.settings-tab-section.connect .form-table{display:inline-block;width:auto;max-width:580px}.settings-valid{color:#558b2f;font-size:30px}.settings-valid-field{border-color:#558b2f!important}.settings-invalid-field{border-color:#dd2c00!important}.settings-warning{display:inline-block;padding:5px 7px;background-color:#e9faff;border:1px solid #ccd0d4;border-left:4px solid #00a0d2;box-shadow:0 1px 1px rgba(0,0,0,.04)}.sync .spinner{display:inline-block;visibility:visible;float:none;margin:0 5px 0 0}.sync-media,.sync-media-progress{display:none}.sync-media-progress-outer{height:20px;margin:20px 0 10px;width:500px;background-color:#e5e5e5;position:relative}.sync-media-progress-outer .progress-bar{width:0;height:20px;background-color:#558b2f;transition:width .25s}.sync-media-progress-notice{color:#dd2c00}.sync-media-resource{width:100px;display:inline-block}.sync-media-error{color:#dd2c00}.sync-count{font-weight:700}.sync-details{margin-top:10px}.sync .button.start-sync,.sync .button.stop-sync{display:none;padding:0 16px}.sync .button.start-sync .dashicons,.sync .button.stop-sync .dashicons{line-height:2.2em}.sync .progress-text{padding:12px 4px 12px 12px;display:inline-block;font-weight:700}.sync .completed{max-width:300px;display:none}.sync-status-disabled{color:#dd2c00}.sync-status-enabled{color:#558b2f}.sync-status-button.button{vertical-align:baseline}.cloudinary-widget{height:100%}.cloudinary-widget-wrapper{height:100%;overflow:hidden;background-image:url("data:image/svg+xml;base64,PHN2ZyBjbGFzcz0ic3Bpbm5lciIgdmlld0JveD0iLTQgLTQgMTUxIDEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48c3R5bGU+QGtleWZyYW1lcyBjb2xvcnN7MCUsdG97c3Ryb2tlOiMwMDc4ZmZ9NTAle3N0cm9rZTojMGUyZjVhfX1Aa2V5ZnJhbWVzIGRhc2h7MCUsdG97c3Ryb2tlLWRhc2hvZmZzZXQ6NTYwfTUwJXtzdHJva2UtZGFzaG9mZnNldDowfX1ALXdlYmtpdC1rZXlmcmFtZXMgY29sb3JzezAlLHRve3N0cm9rZTojMDA3OGZmfTUwJXtzdHJva2U6IzBlMmY1YX19QC13ZWJraXQta2V5ZnJhbWVzIGRhc2h7MCUsdG97c3Ryb2tlLWRhc2hvZmZzZXQ6NTYwfTUwJXtzdHJva2UtZGFzaG9mZnNldDowfX08L3N0eWxlPjxwYXRoIGQ9Ik0xMjEuNjYzIDkwLjYzOGMtMS43OTYgMC05OS4zMy0uNDk4LTEwMS40NzQtMS40NzhDOC42ODUgODMuODc3IDEuMjUgNzIuMTk2IDEuMjUgNTkuMzk2YzAtMTYuNjU2IDEyLjc5Ny0zMC42MSAyOS4wNTItMzIuMzIzIDcuNDktMTUuNzA2IDIzLjE4Ni0yNS43MDcgNDAuNzE0LTI1LjcwNyAyMC45OCAwIDM5LjIxNSAxNC43NTIgNDMuOTQ1IDM0LjkwNyAxNS4wOS4yNDUgMjcuMjkgMTIuNjMgMjcuMjkgMjcuODIyIDAgMTEuOTY4LTcuNzM4IDIyLjU1LTE5LjI1NiAyNi4zMyIgc3Ryb2tlLXdpZHRoPSI5IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3R5bGU9InRyYW5zZm9ybS1vcmlnaW46Y2VudGVyOy13ZWJraXQtYW5pbWF0aW9uOmRhc2ggMnMgZWFzZS1pbi1vdXQgaW5maW5pdGUsY29sb3JzIDhzIGVhc2UtaW4tb3V0IGluZmluaXRlO2FuaW1hdGlvbjpkYXNoIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlLGNvbG9ycyA4cyBlYXNlLWluLW91dCBpbmZpbml0ZSIgc3Ryb2tlLWRhc2hhcnJheT0iMjgwIi8+PC9zdmc+");background-repeat:no-repeat;background-position:50%;background-size:150px}.attachment-actions .button.edit-attachment,.attachment-info .edit-attachment{display:none}.global-transformations-preview{position:relative;max-width:600px}.global-transformations-spinner{display:none}.global-transformations-button.button-primary{display:none;position:absolute;z-index:100}.global-transformations-url{margin-bottom:5px;margin-top:5px}.global-transformations-url-transformation{max-width:100px;overflow:hidden;text-overflow:ellipsis;color:#51a3ff}.global-transformations-url-file{color:#f2d864}.global-transformations-url-link{display:block;padding:16px;background-color:#262c35;text-decoration:none;color:#fff;border-radius:6px;overflow:hidden;text-overflow:ellipsis}.global-transformations-url-link:hover{color:#888;text-decoration:underline}.cld-tax-order-list-item{border:1px solid #efefef;padding:4px;margin:0 0 -1px;background-color:#fff}.cld-tax-order-list-item.no-items{color:#888;text-align:center;display:none}.cld-tax-order-list-item.no-items:last-child{display:block}.cld-tax-order-list-item.ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,.2)}.cld-tax-order-list-item-placeholder{background-color:#efefef;height:45px;margin:0}.cld-tax-order-list-item-handle{cursor:grab;margin-right:4px;color:#999}.cld-tax-order-list-type{width:45%;display:inline-block;margin-right:8px}.cld-tax-order-list-type input{margin-right:4px!important}.cloudinary-media-library{position:relative;margin-left:-20px}@media screen and (max-width:782px){.cloudinary-media-library{margin-left:-10px}} \ No newline at end of file