From fb4aafdf22d5d5da58272dc4e60732978dac923a Mon Sep 17 00:00:00 2001 From: Jesse Pollak Date: Tue, 9 Feb 2016 19:15:15 -0800 Subject: [PATCH 1/3] adds bulk action for inviting users to Clef --- includes/class.clef-admin.php | 65 +++++++++++++++++++++++----------- includes/class.clef-invite.php | 28 ++++++++++++++- 2 files changed, 72 insertions(+), 21 deletions(-) diff --git a/includes/class.clef-admin.php b/includes/class.clef-admin.php index b57f1a3..0434ef2 100644 --- a/includes/class.clef-admin.php +++ b/includes/class.clef-admin.php @@ -45,6 +45,9 @@ public function initialize_hooks() { add_action('admin_enqueue_scripts', array($this, "admin_enqueue_scripts")); + add_action('admin_footer-users.php', array($this, "add_invite_bulk_action_to_dropdown")); + add_action('admin_action_invite_to_clef', array($this, "handle_invite_bulk_action")); + add_action('admin_notices', array($this, 'display_messages') ); add_action('clef_onboarding_after_first_login', array($this, 'disable_passwords_for_clef_users')); @@ -365,6 +368,44 @@ public function disable_passwords_for_clef_users() { $this->settings->generate_and_send_override_link(wp_get_current_user()); } + public function add_invite_bulk_action_to_dropdown() { + ?> + + $_REQUEST['users'])); + if (empty($users)) { + return new WP_Error('no_users', __("No users were invited to use Clef.")); + } + + try { + ClefInvite::invite_users($users, false); + + add_settings_error( + CLEF_OPTIONS_NAME, + "clef_invite_success", + sprintf(__("%s users successfully invited to Clef."), count($users)), + "success" + ); + } catch (Exception $e) { + add_settings_error( + CLEF_OPTIONS_NAME, + "clef_invite_error", + sprintf(__("There was an error inviting users to Clef: %s"), $e->getMessage()), + "error" + ); + } + } + } + /**** BEGIN AJAX HANDLERS ******/ public function ajax_invite_users() { @@ -394,27 +435,11 @@ public function ajax_invite_users() { return new WP_Error('no_users', __("there are no other users without Clef with this role or greater", "wpclef")); } - $errors = array(); - foreach ($filtered_users as &$user) { - $invite = new ClefInvite($user, $is_network_admin); - $invite->persist(); - $success = $invite->send_email($from_email); - if (!$success) { - $errors[] = $user->user_email; - } - } - - if (count($errors) > 0) { - if (count($errors) == count($filtered_users)) { - $message = __("there was an error sending the invite email to all users. Copy and paste the preview email to your users and they'll be walked through a tutorial to connect with Clef", 'wpclef'); - } else { - $message = __("unable to send emails to the following users: ", 'wpclef'); - $message .= join(", ", $errors); - $message .= __(". Copy and paste the preview email to your users and they'll be walked through a tutorial to connect with Clef", 'wpclef'); - } - return new WP_Error('clef_mail_error', $message); - } else { + try { + ClefInvite::invite_users($users, $is_network_admin); return array("success" => true); + } catch (Exception $e) { + return $e; } } diff --git a/includes/class.clef-invite.php b/includes/class.clef-invite.php index fbed771..f104e4c 100644 --- a/includes/class.clef-invite.php +++ b/includes/class.clef-invite.php @@ -4,6 +4,7 @@ class ClefInvite { public $code; public $created_at; private $user_email; + function __construct($user, $is_network_admin=false) { $this->code = md5(uniqid(mt_rand(), true)); $this->user_email = $user->user_email; @@ -33,7 +34,7 @@ function get_link() { '&clef_invite_id=' . urlencode(base64_encode($this->user_email))); } - function send_email($from_email) { + function send_email() { if (empty($this->user_email)) return true; $subject = '['. $this->site_name . '] ' . __('Set up Clef for your account', "wpclef"); @@ -50,6 +51,31 @@ function send_email($from_email) { $vars ); } + + public static function invite_users($users, $is_network_admin) { + $errors = array(); + foreach ($users as &$user) { + $invite = new ClefInvite($user, $is_network_admin); + $invite->persist(); + $success = $invite->send_email(); + if (!$success) { + $errors[] = $user->user_email; + } + } + + if (count($errors) > 0) { + if (count($errors) == count($filtered_users)) { + $message = __("there was an error sending the invite email to all users. Copy and paste the preview email to your users and they'll be walked through a tutorial to connect with Clef", 'wpclef'); + } else { + $message = __("unable to send emails to the following users: ", 'wpclef'); + $message .= join(", ", $errors); + $message .= __(". Copy and paste the preview email to your users and they'll be walked through a tutorial to connect with Clef", 'wpclef'); + } + throw new Exception($message); + } else { + return true; + } + } } ?> From bf816c74f6b0b9936cb94e6d1836fc8dc5da4d13 Mon Sep 17 00:00:00 2001 From: Jesse Pollak Date: Tue, 9 Feb 2016 23:05:55 -0800 Subject: [PATCH 2/3] add validation logic and success & error messages for inviting users --- includes/class.clef-admin.php | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/includes/class.clef-admin.php b/includes/class.clef-admin.php index 0434ef2..44c0837 100644 --- a/includes/class.clef-admin.php +++ b/includes/class.clef-admin.php @@ -48,6 +48,7 @@ public function initialize_hooks() { add_action('admin_footer-users.php', array($this, "add_invite_bulk_action_to_dropdown")); add_action('admin_action_invite_to_clef', array($this, "handle_invite_bulk_action")); + add_action('admin_notices', array($this, 'handle_invite_bulk_action_admin_notices') ); add_action('admin_notices', array($this, 'display_messages') ); add_action('clef_onboarding_after_first_login', array($this, 'disable_passwords_for_clef_users')); @@ -380,7 +381,10 @@ public function add_invite_bulk_action_to_dropdown() { } public function handle_invite_bulk_action () { - if (isset($_REQUEST['users'])) { + $user_is_admin = current_user_can('manage_options'); + if (isset($_REQUEST['users']) && isset($_REQUEST['_wpnonce']) && $user_is_admin) { + check_admin_referer('bulk-users'); + $users = get_users(array("include" => $_REQUEST['users'])); if (empty($users)) { return new WP_Error('no_users', __("No users were invited to use Clef.")); @@ -389,12 +393,10 @@ public function handle_invite_bulk_action () { try { ClefInvite::invite_users($users, false); - add_settings_error( - CLEF_OPTIONS_NAME, - "clef_invite_success", - sprintf(__("%s users successfully invited to Clef."), count($users)), - "success" - ); + $redirect_to = remove_query_arg('action', wp_get_referer()); + wp_redirect(add_query_arg('clef_invite_success', count($users), $redirect_to)); + exit(); + } catch (Exception $e) { add_settings_error( CLEF_OPTIONS_NAME, @@ -402,7 +404,20 @@ public function handle_invite_bulk_action () { sprintf(__("There was an error inviting users to Clef: %s"), $e->getMessage()), "error" ); + unset($_GET['_wp_http_referer']); } + + } + } + + public function handle_invite_bulk_action_admin_notices() { + if (isset($_GET['clef_invite_success'])) { + add_settings_error( + CLEF_OPTIONS_NAME, + "clef_invite_success", + sprintf(__("%d users successfully invited to Clef."), (int) $_GET['clef_invite_success']), + "updated" + ); } } @@ -439,7 +454,7 @@ public function ajax_invite_users() { ClefInvite::invite_users($users, $is_network_admin); return array("success" => true); } catch (Exception $e) { - return $e; + return new WP_Error('clef_email_error', $e->getMessage()); } } From e408b242c3fe91a7994f0f03e0ef95d8fcaa7bc7 Mon Sep 17 00:00:00 2001 From: Jesse Pollak Date: Wed, 10 Feb 2016 10:07:12 -0800 Subject: [PATCH 3/3] add callout to invite users individually or in bulk to settings page --- assets/dist/css/admin.css | 27 ++++++++++--- assets/dist/css/admin.min.css | 2 +- assets/dist/img/invite.png | Bin 0 -> 21743 bytes assets/dist/js/badge.min.js | 2 +- assets/dist/js/clef_heartbeat.min.js | 2 +- assets/dist/js/connect.min.js | 2 +- assets/dist/js/login.min.js | 2 +- assets/dist/js/settings.js | 7 +++- assets/dist/js/settings.min.js | 4 +- assets/src/coffee/settings/invite.coffee | 10 ++++- assets/src/img/invite.png | Bin 0 -> 31777 bytes assets/src/sass/_settings-page.scss | 49 ++++++++++++++++++----- includes/class.clef-admin.php | 12 +++--- includes/class.clef-translation.php | 1 - templates/js-templates/invite.tpl.php | 22 +++++++--- 15 files changed, 103 insertions(+), 39 deletions(-) create mode 100644 assets/dist/img/invite.png create mode 100644 assets/src/img/invite.png diff --git a/assets/dist/css/admin.css b/assets/dist/css/admin.css index 9666950..ea90ee6 100644 --- a/assets/dist/css/admin.css +++ b/assets/dist/css/admin.css @@ -328,14 +328,31 @@ Styles float: none; } #clef-settings-container .sync iframe, #connect-clef-account .sync iframe { display: none; } + #clef-settings-container .invite-users h3, #connect-clef-account .invite-users h3 { + margin-bottom: 20px; } #clef-settings-container .invite-users .invite-users-message, #connect-clef-account .invite-users .invite-users-message { margin: 10px 0 0 0; clear: both; } - #clef-settings-container .invite-users .header h3, #clef-settings-container .invite-users .header h4, #connect-clef-account .invite-users .header h3, #connect-clef-account .invite-users .header h4 { - margin-top: 0; - margin-bottom: 5px; } - #clef-settings-container .invite-users .button, #connect-clef-account .invite-users .button { - margin-top: 20px; } + #clef-settings-container .invite-users .invite-users__img, #connect-clef-account .invite-users .invite-users__img { + width: 50%; + float: left; } + #clef-settings-container .invite-users .invite-users__individually-container, #connect-clef-account .invite-users .invite-users__individually-container { + padding-bottom: 25px; + margin-bottom: 25px; + border-bottom: 1px solid #eee; } + #clef-settings-container .invite-users .invite-users__individually, #connect-clef-account .invite-users .invite-users__individually { + float: left; + width: 50%; + padding-left: 20px; } + #clef-settings-container .invite-users .invite-users__individually .button, #connect-clef-account .invite-users .invite-users__individually .button { + margin-top: 0; } + #clef-settings-container .invite-users .invite-users__individually p, #connect-clef-account .invite-users .invite-users__individually p { + margin-top: 5px; } + #clef-settings-container .invite-users .invite-role-button, #connect-clef-account .invite-users .invite-role-button { + margin-top: 15px; } + #clef-settings-container .invite-users .next, #connect-clef-account .invite-users .next { + float: right; + cursor: pointer; } #clef-tutorial { width: 100%; diff --git a/assets/dist/css/admin.min.css b/assets/dist/css/admin.min.css index cf21b35..5f5a70b 100644 --- a/assets/dist/css/admin.min.css +++ b/assets/dist/css/admin.min.css @@ -1 +1 @@ -.clef-badge-prompt{position:relative;min-height:170px}.clef-badge-prompt *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.clef-badge-prompt .link-fade{display:none}.clef-badge-prompt .dismiss{position:absolute;top:5px;right:10px;font-weight:700;color:#AAA;font-size:20px}.clef-badge-prompt .dismiss:hover{color:#888}.clef-badge{width:100%;text-align:center;display:inline-block;margin:10px auto}.clef-badge *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.clef-badge.pretty{display:block;overflow:hidden;text-indent:-579px;height:50px;width:140px;background:url(https://bit.ly/clef-wordpress-badge);background-size:100% 100%;opacity:.8}.clef-badge.pretty:hover{opacity:1}.clef-login-form .clef-button-container{width:188px;height:35px;margin:auto}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp) .clef-login-container .clef-button-container{margin-bottom:30px}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp) .clef-login-container .close-overlay,.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp) .clef-login-container .overlay-info,.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp) .clef-login-container .open-overlay{display:none}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-hidden:not(.clef-login-form-embed):not(.clef-override-or-invite) #login form#loginform{padding:40px 20px}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-hidden:not(.clef-login-form-embed):not(.clef-override-or-invite) #login form#loginform input,.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-hidden:not(.clef-login-form-embed):not(.clef-override-or-invite) #login form#loginform label{display:none}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password):not(.interim-login) #login{padding-top:50px}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) #login{width:400px;max-width:100%;margin:auto}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) #login input,.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) #login label{visibility:hidden}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) #login form{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:100%;height:520px;position:relative!important}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) #login .clef-embed-wrapper{margin:auto!important}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .clef-login-container{position:absolute;top:0;left:0;width:100%;height:100%;background:#fff;overflow:visible}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .clef-login-container .clef-button-container{padding-top:5px}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password):not(.clef-closed) p#nav{display:none}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password).clef-closed #login{width:320px}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password).clef-closed #login input,.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password).clef-closed #login label{visibility:visible}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password).clef-closed #login form{height:auto}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password).clef-closed .clef-login-container{height:25px;top:auto;bottom:0}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password).clef-closed .clef-button-container{display:none}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password).clef-closed .overlay-info,.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password).clef-closed .close-overlay{display:none}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password).clef-closed .open-overlay{display:block;margin:0}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .clef-button-container{margin:0 auto;position:absolute;top:0;left:0;width:100%;height:100%}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .clef-button-container .spinner-container{display:none;text-align:center;position:absolute;top:175px;left:0;width:100%;height:100%}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .clef-button-container .spinner-container .spinner{margin-top:25px;display:inline-block;float:none;width:50px;height:50px;background-image:url(../img/loading.gif);background-size:100%;background-position:center;background-repeat:no-repeat}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .overlay-text{position:absolute;width:100%;bottom:12px;margin-top:5px;text-align:center;display:block;color:#aaa;cursor:pointer;text-decoration:none}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .overlay-text:hover{color:#999}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .overlay-text:active{outline:0}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .or-container,.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .open-overlay{display:none}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .overlay-info{display:block;position:absolute;bottom:10px;left:0}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .overlay-info .info{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:90%;margin:auto;border:1px solid #eee;padding:10px;background:#fff;color:#999}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .overlay-info .info p{font-size:11px;line-height:15px}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .overlay-info .info p a{color:#999}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .overlay-info .info p:not(:last-child){margin-bottom:5px!important}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .overlay-info .open{height:15px;width:15px;font-size:10px;text-align:center;line-height:15px;border-radius:15px;color:#ccc;border:1px solid #ccc;cursor:pointer;margin-left:10px;display:none}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .overlay-info .open:hover{color:#b3b3b3;border-color:#b3b3b3}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .overlay-info.closed .info{display:none}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .overlay-info.closed .open{display:block}@media screen and (max-width:400px){.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite) #login{width:320px;padding:0}}.login-action-register.clef-login-form .clef-register-container{padding-top:20px}#clef-settings-container,#connect-clef-account{width:100%;height:100%;position:relative}#clef-settings-container *,#connect-clef-account *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#clef-settings-container .message,#connect-clef-account .message{margin-top:20px;margin-left:0;display:none}#clef-settings-container #clef-settings,#connect-clef-account #clef-settings{position:aboslute;top:0;left:0}#clef-settings-container .settings-section,#connect-clef-account .settings-section{background:#fff;padding:20px;margin:20px 0;margin-left:0!important;*zoom:1;max-width:75em;margin-left:auto;margin-right:auto}#clef-settings-container .settings-section h3,#clef-settings-container .settings-section h4,#connect-clef-account .settings-section h3,#connect-clef-account .settings-section h4{margin:0}#clef-settings-container .settings-section:before,#clef-settings-container .settings-section:after,#connect-clef-account .settings-section:before,#connect-clef-account .settings-section:after{content:" ";display:table}#clef-settings-container .settings-section:after,#connect-clef-account .settings-section:after{clear:both}#clef-settings-container .settings-section .error.form-error,#connect-clef-account .settings-section .error.form-error{float:left}#clef-settings-container .settings-section .inputs-container,#connect-clef-account .settings-section .inputs-container{display:block;float:left;margin-right:1.85185%;width:59.25926%}#clef-settings-container .settings-section .inputs-container:last-child,#connect-clef-account .settings-section .inputs-container:last-child{margin-right:0}@media screen and (max-width:768px){#clef-settings-container .settings-section .inputs-container,#connect-clef-account .settings-section .inputs-container{display:block;float:left;margin-right:1.85185%;width:100%}#clef-settings-container .settings-section .inputs-container:last-child,#connect-clef-account .settings-section .inputs-container:last-child{margin-right:0}}#clef-settings-container .settings-section .inputs-container .input-container,#connect-clef-account .settings-section .inputs-container .input-container{background:#EEE;padding:10px;margin:10px 0;display:block;float:left;margin-right:1.85185%;width:100%}#clef-settings-container .settings-section .inputs-container .input-container:last-child,#connect-clef-account .settings-section .inputs-container .input-container:last-child{margin-right:0}#clef-settings-container .settings-section .inputs-container .input-container label,#connect-clef-account .settings-section .inputs-container .input-container label{display:block;float:left;margin-right:1.85185%;width:49.07407%;margin-right:0!important}#clef-settings-container .settings-section .inputs-container .input-container label:last-child,#connect-clef-account .settings-section .inputs-container .input-container label:last-child{margin-right:0}@media screen and (max-width:768px){#clef-settings-container .settings-section .inputs-container .input-container label,#connect-clef-account .settings-section .inputs-container .input-container label{display:block;float:left;margin-right:1.85185%;width:100%}#clef-settings-container .settings-section .inputs-container .input-container label:last-child,#connect-clef-account .settings-section .inputs-container .input-container label:last-child{margin-right:0}}#clef-settings-container .settings-section .inputs-container .input-container input,#clef-settings-container .settings-section .inputs-container .input-container select,#connect-clef-account .settings-section .inputs-container .input-container input,#connect-clef-account .settings-section .inputs-container .input-container select{float:right;width:auto;margin:0;margin-bottom:5px}@media screen and (max-width:768px){#clef-settings-container .settings-section .inputs-container .input-container input,#clef-settings-container .settings-section .inputs-container .input-container select,#connect-clef-account .settings-section .inputs-container .input-container input,#connect-clef-account .settings-section .inputs-container .input-container select{clear:both;float:none;margin:10px 0}}@media screen and (max-width:768px){#clef-settings-container .settings-section .inputs-container .input-container input[type=checkbox],#connect-clef-account .settings-section .inputs-container .input-container input[type=checkbox]{width:25px}}#clef-settings-container .settings-section .inputs-container .ajax-settings-msg,#connect-clef-account .settings-section .inputs-container .ajax-settings-msg{clear:both;margin:0;margin-bottom:20px;position:relative;top:10px}#clef-settings-container .settings-section.multisite .inputs-container,#connect-clef-account .settings-section.multisite .inputs-container{display:block;float:left;margin-right:1.85185%;width:49.07407%}#clef-settings-container .settings-section.multisite .inputs-container:last-child,#connect-clef-account .settings-section.multisite .inputs-container:last-child{margin-right:0}#clef-settings-container .settings-section.multisite .inputs-container .input-container,#connect-clef-account .settings-section.multisite .inputs-container .input-container{display:block;float:left;margin-right:3.77358%;width:100%}#clef-settings-container .settings-section.multisite .inputs-container .input-container:last-child,#connect-clef-account .settings-section.multisite .inputs-container .input-container:last-child{margin-right:0}#clef-settings-container .sync .spinner-container,#connect-clef-account .sync .spinner-container{text-align:center;position:absolute;top:100px;left:0;width:100%;height:100%}#clef-settings-container .sync .spinner-container .spinner,#connect-clef-account .sync .spinner-container .spinner{display:inline-block;float:none}#clef-settings-container .sync iframe,#connect-clef-account .sync iframe{display:none}#clef-settings-container .invite-users .invite-users-message,#connect-clef-account .invite-users .invite-users-message{margin:10px 0 0;clear:both}#clef-settings-container .invite-users .header h3,#clef-settings-container .invite-users .header h4,#connect-clef-account .invite-users .header h3,#connect-clef-account .invite-users .header h4{margin-top:0;margin-bottom:5px}#clef-settings-container .invite-users .button,#connect-clef-account .invite-users .button{margin-top:20px}#clef-tutorial{width:100%;height:100%;display:none;margin-top:40px;*zoom:1;max-width:75em;margin-left:auto;margin-right:auto}#clef-tutorial:before,#clef-tutorial:after{content:" ";display:table}#clef-tutorial:after{clear:both}#clef-tutorial *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#clef-tutorial .clef-tutorial-container{display:block;float:left;margin-right:1.85185%;width:59.25926%;margin-left:20.37037%;min-width:460px}#clef-tutorial .clef-tutorial-container:last-child{margin-right:0}#clef-tutorial .tutorial-message{display:block;float:left;margin-right:1.85185%;width:59.25926%;margin-left:20.37037%;padding:10px;margin-top:20px;margin-bottom:20px}#clef-tutorial .tutorial-message:last-child{margin-right:0}#clef-tutorial .sub{display:none}#clef-tutorial .sub h1{line-height:1.3em;font-size:20px;padding-bottom:5px;border-bottom:1px solid #EEE;margin-bottom:20px}#clef-tutorial .intro{text-align:center}#clef-tutorial .intro h1{text-align:center;font-size:22px;margin-bottom:0;font-weight:500}#clef-tutorial .intro .button{text-align:center;display:inline-block;margin:40px auto;background:#0D9DDB;border:0;-webkit-box-shadow:3px 3px #07587b;box-shadow:3px 3px #07587b;border-radius:0;font-weight:700;font-size:18px}#clef-tutorial .intro .button:hover{background:#0c8cc3}#clef-tutorial .intro .quotes{background:#DDD;padding:5px}#clef-tutorial .intro .quotes blockquote{color:#333;text-align:left;font-weight:700;font-size:17px;line-height:1.2em;margin-bottom:70px}#clef-tutorial .intro .quotes blockquote .highlight{background:0;border:0;text-decoration:underline}#clef-tutorial .intro .quotes blockquote cite{font-weight:300;float:right;clear:both;margin-top:30px}#clef-tutorial .intro .quotes blockquote .highlight{padding:3px 5px;text-decoration:none;display:inline-block;-webkit-transform:skewX(-3deg);-ms-transform:skewX(-3deg);transform:skewX(-3deg);color:#fff}#clef-tutorial .intro .quotes blockquote .highlight.red{color:#fff;font-weight:700;background:rgba(246,80,88,.6)}#clef-tutorial .intro .quotes blockquote .highlight.red:hover{background:#F65058}#clef-tutorial .intro .quotes blockquote .highlight.orange{color:#fff;font-weight:700;background:rgba(255,153,64,.6)}#clef-tutorial .intro .quotes blockquote .highlight.orange:hover{background:#FF9940}#clef-tutorial .intro .quotes blockquote .highlight.green{color:#fff;font-weight:700;background:rgba(0,186,110,.6)}#clef-tutorial .intro .quotes blockquote .highlight.green:hover{background:#00BA6E}#clef-tutorial .intro .skip{float:right;color:#AAA;text-decoration:none;margin-top:5px}#clef-tutorial .intro .skip:hover{color:#999;text-decoration:underline}#clef-tutorial .sync{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #e5e5e5;background:#fff;padding:20px 25px}#clef-tutorial .sync iframe{margin:auto;display:block;width:400px;height:500px}#clef-tutorial .invite h1{margin-bottom:10px}#clef-tutorial .invite .invite-users{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #e5e5e5;background:#fff;padding:20px 25px}#clef-tutorial .invite .invite-users .header h3{display:none}#clef-tutorial .invite .invite-users .header h4{font-size:16px}#clef-tutorial .invite .invite-users .already-disabled{display:none}#clef-tutorial .invite .invite-users .preview-container{margin-top:30px;float:none;width:100%}#clef-tutorial .invite .invite-users .preview-container h4{margin-top:0}#clef-tutorial .invite .next{display:inline-block!important}#clef-tutorial .login{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #e5e5e5;background:#fff;padding:20px 25px}#clef-tutorial .login .button-wrapper{margin:60px auto;width:190px}#clef-tutorial .login iframe{margin-top:10px;width:100%;height:180px}#clef-tutorial .using-clef{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #e5e5e5;background:#fff;padding:20px 25px}#clef-tutorial .using-clef h1{border-bottom:1px solid #EEE;padding-bottom:5px;display:inline-block}#clef-tutorial .using-clef h3{color:#333}#clef-tutorial .using-clef .next{margin:20px 0}#clef-tutorial .user,#clef-tutorial .no-sync{text-align:left}#clef-tutorial .user h1,#clef-tutorial .no-sync h1{text-align:left}#clef-tutorial.user .no-user,#clef-tutorial.no-sync .no-user{display:none}#clef-tutorial.user .user{display:block;opacity:1}#clef-tutorial.no-sync .no-sync{display:block;opacity:1}#connect-clef-account .skip{display:none}#clef-settings-form *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#clef-settings-form .twitter-follow-button{position:relative;top:4px}#clef-settings-form .settings-section.pro-section{position:relative;display:none}#clef-settings-form .settings-section.pro-section:before{width:80px;height:30px;line-height:30px;background:#00BA6E;display:block;content:"PRO";position:absolute;top:0;right:0;color:#fff;font-weight:700;text-align:center;opacity:.7}#clef-settings-form .settings-section.override-settings .inputs-container .input-container{background:0;padding:0;margin:0;clear:both}#clef-settings-form .settings-section.override-settings .inputs-container label{width:auto;margin:0;line-height:25px;font-weight:700;padding-left:10px;background:#DDD;padding:1px 5px;font-size:9px}@media screen and (max-width:768px){#clef-settings-form .settings-section.override-settings .inputs-container label{width:100%;font-size:12px}}#clef-settings-form .settings-section.override-settings .inputs-container input{float:left}#clef-settings-form .settings-section.override-settings .inputs-container .generate-override{float:left;width:auto;clear:both;cursor:pointer;color:#BBB}#clef-settings-form .settings-section.override-settings .inputs-container .generate-override:hover{text-decoration:underline}#clef-settings-form .settings-section.override-settings .inputs-container .override-buttons{margin-top:10px;clear:both}#clef-settings-form .settings-section.override-settings .inputs-container .override-buttons .button{display:inline-block;text-align:center;margin-top:30px}#clef-settings-form .settings-section.override-settings .preview-container{display:block;float:left;margin-right:1.85185%;width:38.88889%;display:none}#clef-settings-form .settings-section.override-settings .preview-container:last-child{margin-right:0}#clef-settings-form .settings-section.override-settings .preview-container img{margin-top:15px;width:100%}#clef-settings-form .settings-section.override-settings.set .preview-container{display:block}#clef-settings-form .settings-section.override-settings.set .override-buttons{display:block}#clef-settings-form .settings-section.support-settings .preview-container{padding-top:10px;display:block;float:left;margin-right:1.85185%;width:38.88889%}#clef-settings-form .settings-section.support-settings .preview-container:last-child{margin-right:0}@media screen and (max-width:768px){#clef-settings-form .settings-section.support-settings .preview-container{display:none}}#clef-settings-form .settings-section.support-settings .preview-container .ftr-preview{background:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13);padding:20px;font-weight:400;overflow:hidden;margin-top:5px}#clef-settings-form .settings-section.support-settings .preview-container .ftr-preview a{margin-top:20px}#clef-settings-form .settings-section.support-settings .support-html-container{margin-top:20px}#clef-settings-form .settings-section.support-settings .support-html-container textarea{width:400px;padding:10px;margin-bottom:10px}#clef-settings-form .settings-section.clef-settings .inputs-container label{display:block;float:left;margin-right:1.85185%;width:28.7037%}#clef-settings-form .settings-section.clef-settings .inputs-container label:last-child{margin-right:0}#clef-settings-form .settings-section.clef-settings .inputs-container input[type=text],#clef-settings-form .settings-section.clef-settings .inputs-container textarea{display:block;float:left;margin-right:1.85185%;width:69.44444%}#clef-settings-form .settings-section.clef-settings .inputs-container input[type=text]:last-child,#clef-settings-form .settings-section.clef-settings .inputs-container textarea:last-child{margin-right:0}@media screen and (max-width:768px){#clef-settings-form .settings-section.clef-settings .inputs-container input[type=text],#clef-settings-form .settings-section.clef-settings .inputs-container textarea{display:block;float:left;margin-right:1.85185%;width:100%}#clef-settings-form .settings-section.clef-settings .inputs-container input[type=text]:last-child,#clef-settings-form .settings-section.clef-settings .inputs-container textarea:last-child{margin-right:0}}#clef-settings-form .password-settings{min-height:400px}#clef-settings-form .password-settings .input-container.custom-roles .title{display:block;width:100%;margin-bottom:10px}#clef-settings-form .password-settings .input-container.custom-roles .custom-role label{clear:both}#clef-settings-form .password-settings #login-form-view{display:block;float:left;margin-right:1.85185%;width:38.88889%}#clef-settings-form .password-settings #login-form-view:last-child{margin-right:0}@media screen and (max-width:768px){#clef-settings-form .password-settings #login-form-view{display:none}}#clef-settings-form .password-settings #login-form-view.only-clef:not(.embed-clef) #loginform{padding:40px}#clef-settings-form .password-settings #login-form-view.only-clef:not(.embed-clef) #loginform>:not(.clef-button){display:none}#clef-settings-form .password-settings #login-form-view.only-clef:not(.embed-clef) #loginform .clef-button{margin-bottom:0}#clef-settings-form .password-settings #login-form-view.embed-clef #loginform{position:relative;height:425px}#clef-settings-form .password-settings #login-form-view.embed-clef #loginform .clef-button{display:none}#clef-settings-form .password-settings #login-form-view.embed-clef #loginform .clef-overlay{display:block;position:absolute;top:0;left:0;height:100%;width:100%;background:#fff}#clef-settings-form .password-settings #login-form-view.embed-clef #loginform .clef-overlay img{position:absolute;top:10px;left:10%;width:80%;display:block}#clef-settings-form .password-settings #login-form-view.embed-clef #loginform .clef-overlay div{display:block}#clef-settings-form .password-settings #login-form-view.embed-clef #loginform .or-container{display:none}#clef-settings-form .password-settings #login-form-view.embed-clef #loginform .overlay-text{position:absolute;width:100%;bottom:10px;left:0;color:#aaa;text-align:center}#clef-settings-form .password-settings #login-form-view.embed-clef.only-clef #loginform .overlay-text{display:none}#clef-settings-form .password-settings #login-form-view #loginform{background:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13);padding:26px 24px 46px;font-weight:400;overflow:hidden;margin-top:5px}#clef-settings-form .password-settings #login-form-view #loginform label{color:#777;font-size:14px}#clef-settings-form .password-settings #login-form-view #loginform .input{font-size:24px;line-height:1;width:100%;padding:3px;margin:2px 6px 16px 0}#clef-settings-form .password-settings #login-form-view #loginform .submit{float:right;margin-top:0}#clef-settings-form .password-settings #login-form-view #loginform .forgetmenot{font-weight:400;float:left;margin-bottom:0}#clef-settings-form .password-settings #login-form-view #loginform .clef-button{margin-bottom:27px}#clef-settings-form .password-settings #login-form-view #loginform .clef-button img{height:34px;width:187px;margin:auto;display:block}#clef-settings-form .password-settings #login-form-view #loginform .clef-button div{position:absolute;width:100%;top:50%;margin-top:5px;text-align:center;display:block;color:#aaa;cursor:pointer;display:none}#clef-settings-form .password-settings #login-form-view #loginform .clef-button div:hover{color:#999}#clef-settings-form .password-settings #login-form-view #loginform .clef-overlay{display:none}#clef-settings-form #clef-pro-section{display:none}#clef-settings-form #clef-pro-section #clef-pro-customization .preview-container{display:block;float:left;margin-right:1.85185%;width:38.88889%}#clef-settings-form #clef-pro-section #clef-pro-customization .preview-container:last-child{margin-right:0}#clef-settings-form #clef-pro-section #clef-pro-customization .button{float:right;margin-left:10px}#clef-settings-form #clef-pro-section #clef-pro-customization #custom-login-view img{max-height:50px;margin:auto;margin-top:20px;display:block}#clef-settings-form #clef-pro-section #clef-pro-customization #custom-login-view p{border:1px solid #eee;margin:20px;padding:10px}#clef-settings-form .setting-info{font-weight:400;font-size:12px;color:#aaa;text-decoration:none;margin-left:5px}#clef-settings-form .setting-info:hover{color:#888}.bruteprotect-install{background:#515953;padding:40px;margin-top:20px}.bruteprotect-install p{color:#fff;font-size:16px;line-height:1.2em;font-family:"Helvetica Neue",Helvetica,sans-serif}.multisite-settings input[type=checkbox]{position:relative;left:30px;top:1px}.logout-hook-error{display:none}.invite-users .preview-container{display:block;float:left;margin-right:1.85185%;width:38.88889%}.invite-users .preview-container:last-child{margin-right:0}.invite-users .preview-container .email{width:95%;margin:auto;margin-top:15px;font-style:italic;border:1px solid #EEE;padding:10px}.invite-users .preview-container .email p{font-size:11px}.invite-users .preview-container .email p:first-child{margin-top:0}#connect-clef-account .connect-clef-message{padding:10px;margin:20px 0 10px}.clef-flash.updated{padding:10px}.clef-flash.updated img{float:left;margin-right:10px;-webkit-animation-name:spin;animation-name:spin;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-iteration-count:1;animation-iteration-count:1}@-webkit-keyframes spin{0%{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}100%{-webkit-transform:rotateY(360deg);transform:rotateY(360deg)}}@keyframes spin{0%{-webkit-transform:rotateY(0deg);-ms-transform:rotateY(0deg);transform:rotateY(0deg)}100%{-webkit-transform:rotateY(360deg);-ms-transform:rotateY(360deg);transform:rotateY(360deg)}}body #wp-auth-check-wrap #wp-auth-check{width:90%;margin-left:0;left:5%;max-height:none!important;height:90%} \ No newline at end of file +.clef-badge-prompt{position:relative;min-height:170px}.clef-badge-prompt *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.clef-badge-prompt .link-fade{display:none}.clef-badge-prompt .dismiss{position:absolute;top:5px;right:10px;font-weight:700;color:#AAA;font-size:20px}.clef-badge-prompt .dismiss:hover{color:#888}.clef-badge{width:100%;text-align:center;display:inline-block;margin:10px auto}.clef-badge *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.clef-badge.pretty{display:block;overflow:hidden;text-indent:-579px;height:50px;width:140px;background:url(https://bit.ly/clef-wordpress-badge);background-size:100% 100%;opacity:.8}.clef-badge.pretty:hover{opacity:1}.clef-login-form .clef-button-container{width:188px;height:35px;margin:auto}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp) .clef-login-container .clef-button-container{margin-bottom:30px}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp) .clef-login-container .close-overlay,.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp) .clef-login-container .overlay-info,.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp) .clef-login-container .open-overlay{display:none}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-hidden:not(.clef-login-form-embed):not(.clef-override-or-invite) #login form#loginform{padding:40px 20px}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-hidden:not(.clef-login-form-embed):not(.clef-override-or-invite) #login form#loginform input,.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-hidden:not(.clef-login-form-embed):not(.clef-override-or-invite) #login form#loginform label{display:none}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password):not(.interim-login) #login{padding-top:50px}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) #login{width:400px;max-width:100%;margin:auto}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) #login input,.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) #login label{visibility:hidden}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) #login form{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:100%;height:520px;position:relative!important}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) #login .clef-embed-wrapper{margin:auto!important}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .clef-login-container{position:absolute;top:0;left:0;width:100%;height:100%;background:#fff;overflow:visible}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .clef-login-container .clef-button-container{padding-top:5px}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password):not(.clef-closed) p#nav{display:none}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password).clef-closed #login{width:320px}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password).clef-closed #login input,.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password).clef-closed #login label{visibility:visible}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password).clef-closed #login form{height:auto}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password).clef-closed .clef-login-container{height:25px;top:auto;bottom:0}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password).clef-closed .clef-button-container{display:none}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password).clef-closed .overlay-info,.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password).clef-closed .close-overlay{display:none}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password).clef-closed .open-overlay{display:block;margin:0}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .clef-button-container{margin:0 auto;position:absolute;top:0;left:0;width:100%;height:100%}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .clef-button-container .spinner-container{display:none;text-align:center;position:absolute;top:175px;left:0;width:100%;height:100%}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .clef-button-container .spinner-container .spinner{margin-top:25px;display:inline-block;float:none;width:50px;height:50px;background-image:url(../img/loading.gif);background-size:100%;background-position:center;background-repeat:no-repeat}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .overlay-text{position:absolute;width:100%;bottom:12px;margin-top:5px;text-align:center;display:block;color:#aaa;cursor:pointer;text-decoration:none}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .overlay-text:hover{color:#999}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .overlay-text:active{outline:0}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .or-container,.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .open-overlay{display:none}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .overlay-info{display:block;position:absolute;bottom:10px;left:0}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .overlay-info .info{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:90%;margin:auto;border:1px solid #eee;padding:10px;background:#fff;color:#999}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .overlay-info .info p{font-size:11px;line-height:15px}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .overlay-info .info p a{color:#999}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .overlay-info .info p:not(:last-child){margin-bottom:5px!important}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .overlay-info .open{height:15px;width:15px;font-size:10px;text-align:center;line-height:15px;border-radius:15px;color:#ccc;border:1px solid #ccc;cursor:pointer;margin-left:10px;display:none}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .overlay-info .open:hover{color:#b3b3b3;border-color:#b3b3b3}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .overlay-info.closed .info{display:none}.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite):not(.clef-auto-connect-account):not(.clef-show-username-password) .overlay-info.closed .open{display:block}@media screen and (max-width:400px){.clef-login-form:not(.login-action-register):not(.login-action-lostpassword):not(.login-action-rp).clef-login-form-embed:not(.clef-override-or-invite) #login{width:320px;padding:0}}.login-action-register.clef-login-form .clef-register-container{padding-top:20px}#clef-settings-container,#connect-clef-account{width:100%;height:100%;position:relative}#clef-settings-container *,#connect-clef-account *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#clef-settings-container .message,#connect-clef-account .message{margin-top:20px;margin-left:0;display:none}#clef-settings-container #clef-settings,#connect-clef-account #clef-settings{position:aboslute;top:0;left:0}#clef-settings-container .settings-section,#connect-clef-account .settings-section{background:#fff;padding:20px;margin:20px 0;margin-left:0!important;*zoom:1;max-width:75em;margin-left:auto;margin-right:auto}#clef-settings-container .settings-section h3,#clef-settings-container .settings-section h4,#connect-clef-account .settings-section h3,#connect-clef-account .settings-section h4{margin:0}#clef-settings-container .settings-section:before,#clef-settings-container .settings-section:after,#connect-clef-account .settings-section:before,#connect-clef-account .settings-section:after{content:" ";display:table}#clef-settings-container .settings-section:after,#connect-clef-account .settings-section:after{clear:both}#clef-settings-container .settings-section .error.form-error,#connect-clef-account .settings-section .error.form-error{float:left}#clef-settings-container .settings-section .inputs-container,#connect-clef-account .settings-section .inputs-container{display:block;float:left;margin-right:1.85185%;width:59.25926%}#clef-settings-container .settings-section .inputs-container:last-child,#connect-clef-account .settings-section .inputs-container:last-child{margin-right:0}@media screen and (max-width:768px){#clef-settings-container .settings-section .inputs-container,#connect-clef-account .settings-section .inputs-container{display:block;float:left;margin-right:1.85185%;width:100%}#clef-settings-container .settings-section .inputs-container:last-child,#connect-clef-account .settings-section .inputs-container:last-child{margin-right:0}}#clef-settings-container .settings-section .inputs-container .input-container,#connect-clef-account .settings-section .inputs-container .input-container{background:#EEE;padding:10px;margin:10px 0;display:block;float:left;margin-right:1.85185%;width:100%}#clef-settings-container .settings-section .inputs-container .input-container:last-child,#connect-clef-account .settings-section .inputs-container .input-container:last-child{margin-right:0}#clef-settings-container .settings-section .inputs-container .input-container label,#connect-clef-account .settings-section .inputs-container .input-container label{display:block;float:left;margin-right:1.85185%;width:49.07407%;margin-right:0!important}#clef-settings-container .settings-section .inputs-container .input-container label:last-child,#connect-clef-account .settings-section .inputs-container .input-container label:last-child{margin-right:0}@media screen and (max-width:768px){#clef-settings-container .settings-section .inputs-container .input-container label,#connect-clef-account .settings-section .inputs-container .input-container label{display:block;float:left;margin-right:1.85185%;width:100%}#clef-settings-container .settings-section .inputs-container .input-container label:last-child,#connect-clef-account .settings-section .inputs-container .input-container label:last-child{margin-right:0}}#clef-settings-container .settings-section .inputs-container .input-container input,#clef-settings-container .settings-section .inputs-container .input-container select,#connect-clef-account .settings-section .inputs-container .input-container input,#connect-clef-account .settings-section .inputs-container .input-container select{float:right;width:auto;margin:0;margin-bottom:5px}@media screen and (max-width:768px){#clef-settings-container .settings-section .inputs-container .input-container input,#clef-settings-container .settings-section .inputs-container .input-container select,#connect-clef-account .settings-section .inputs-container .input-container input,#connect-clef-account .settings-section .inputs-container .input-container select{clear:both;float:none;margin:10px 0}}@media screen and (max-width:768px){#clef-settings-container .settings-section .inputs-container .input-container input[type=checkbox],#connect-clef-account .settings-section .inputs-container .input-container input[type=checkbox]{width:25px}}#clef-settings-container .settings-section .inputs-container .ajax-settings-msg,#connect-clef-account .settings-section .inputs-container .ajax-settings-msg{clear:both;margin:0;margin-bottom:20px;position:relative;top:10px}#clef-settings-container .settings-section.multisite .inputs-container,#connect-clef-account .settings-section.multisite .inputs-container{display:block;float:left;margin-right:1.85185%;width:49.07407%}#clef-settings-container .settings-section.multisite .inputs-container:last-child,#connect-clef-account .settings-section.multisite .inputs-container:last-child{margin-right:0}#clef-settings-container .settings-section.multisite .inputs-container .input-container,#connect-clef-account .settings-section.multisite .inputs-container .input-container{display:block;float:left;margin-right:3.77358%;width:100%}#clef-settings-container .settings-section.multisite .inputs-container .input-container:last-child,#connect-clef-account .settings-section.multisite .inputs-container .input-container:last-child{margin-right:0}#clef-settings-container .sync .spinner-container,#connect-clef-account .sync .spinner-container{text-align:center;position:absolute;top:100px;left:0;width:100%;height:100%}#clef-settings-container .sync .spinner-container .spinner,#connect-clef-account .sync .spinner-container .spinner{display:inline-block;float:none}#clef-settings-container .sync iframe,#connect-clef-account .sync iframe{display:none}#clef-settings-container .invite-users h3,#connect-clef-account .invite-users h3{margin-bottom:20px}#clef-settings-container .invite-users .invite-users-message,#connect-clef-account .invite-users .invite-users-message{margin:10px 0 0;clear:both}#clef-settings-container .invite-users .invite-users__img,#connect-clef-account .invite-users .invite-users__img{width:50%;float:left}#clef-settings-container .invite-users .invite-users__individually-container,#connect-clef-account .invite-users .invite-users__individually-container{padding-bottom:25px;margin-bottom:25px;border-bottom:1px solid #eee}#clef-settings-container .invite-users .invite-users__individually,#connect-clef-account .invite-users .invite-users__individually{float:left;width:50%;padding-left:20px}#clef-settings-container .invite-users .invite-users__individually .button,#connect-clef-account .invite-users .invite-users__individually .button{margin-top:0}#clef-settings-container .invite-users .invite-users__individually p,#connect-clef-account .invite-users .invite-users__individually p{margin-top:5px}#clef-settings-container .invite-users .invite-role-button,#connect-clef-account .invite-users .invite-role-button{margin-top:15px}#clef-settings-container .invite-users .next,#connect-clef-account .invite-users .next{float:right;cursor:pointer}#clef-tutorial{width:100%;height:100%;display:none;margin-top:40px;*zoom:1;max-width:75em;margin-left:auto;margin-right:auto}#clef-tutorial:before,#clef-tutorial:after{content:" ";display:table}#clef-tutorial:after{clear:both}#clef-tutorial *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#clef-tutorial .clef-tutorial-container{display:block;float:left;margin-right:1.85185%;width:59.25926%;margin-left:20.37037%;min-width:460px}#clef-tutorial .clef-tutorial-container:last-child{margin-right:0}#clef-tutorial .tutorial-message{display:block;float:left;margin-right:1.85185%;width:59.25926%;margin-left:20.37037%;padding:10px;margin-top:20px;margin-bottom:20px}#clef-tutorial .tutorial-message:last-child{margin-right:0}#clef-tutorial .sub{display:none}#clef-tutorial .sub h1{line-height:1.3em;font-size:20px;padding-bottom:5px;border-bottom:1px solid #EEE;margin-bottom:20px}#clef-tutorial .intro{text-align:center}#clef-tutorial .intro h1{text-align:center;font-size:22px;margin-bottom:0;font-weight:500}#clef-tutorial .intro .button{text-align:center;display:inline-block;margin:40px auto;background:#0D9DDB;border:0;-webkit-box-shadow:3px 3px #07587b;box-shadow:3px 3px #07587b;border-radius:0;font-weight:700;font-size:18px}#clef-tutorial .intro .button:hover{background:#0c8cc3}#clef-tutorial .intro .quotes{background:#DDD;padding:5px}#clef-tutorial .intro .quotes blockquote{color:#333;text-align:left;font-weight:700;font-size:17px;line-height:1.2em;margin-bottom:70px}#clef-tutorial .intro .quotes blockquote .highlight{background:0;border:0;text-decoration:underline}#clef-tutorial .intro .quotes blockquote cite{font-weight:300;float:right;clear:both;margin-top:30px}#clef-tutorial .intro .quotes blockquote .highlight{padding:3px 5px;text-decoration:none;display:inline-block;-webkit-transform:skewX(-3deg);-ms-transform:skewX(-3deg);transform:skewX(-3deg);color:#fff}#clef-tutorial .intro .quotes blockquote .highlight.red{color:#fff;font-weight:700;background:rgba(246,80,88,.6)}#clef-tutorial .intro .quotes blockquote .highlight.red:hover{background:#F65058}#clef-tutorial .intro .quotes blockquote .highlight.orange{color:#fff;font-weight:700;background:rgba(255,153,64,.6)}#clef-tutorial .intro .quotes blockquote .highlight.orange:hover{background:#FF9940}#clef-tutorial .intro .quotes blockquote .highlight.green{color:#fff;font-weight:700;background:rgba(0,186,110,.6)}#clef-tutorial .intro .quotes blockquote .highlight.green:hover{background:#00BA6E}#clef-tutorial .intro .skip{float:right;color:#AAA;text-decoration:none;margin-top:5px}#clef-tutorial .intro .skip:hover{color:#999;text-decoration:underline}#clef-tutorial .sync{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #e5e5e5;background:#fff;padding:20px 25px}#clef-tutorial .sync iframe{margin:auto;display:block;width:400px;height:500px}#clef-tutorial .invite h1{margin-bottom:10px}#clef-tutorial .invite .invite-users{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #e5e5e5;background:#fff;padding:20px 25px}#clef-tutorial .invite .invite-users .header h3{display:none}#clef-tutorial .invite .invite-users .header h4{font-size:16px}#clef-tutorial .invite .invite-users .already-disabled{display:none}#clef-tutorial .invite .invite-users .preview-container{margin-top:30px;float:none;width:100%}#clef-tutorial .invite .invite-users .preview-container h4{margin-top:0}#clef-tutorial .invite .next{display:inline-block!important}#clef-tutorial .login{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #e5e5e5;background:#fff;padding:20px 25px}#clef-tutorial .login .button-wrapper{margin:60px auto;width:190px}#clef-tutorial .login iframe{margin-top:10px;width:100%;height:180px}#clef-tutorial .using-clef{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #e5e5e5;background:#fff;padding:20px 25px}#clef-tutorial .using-clef h1{border-bottom:1px solid #EEE;padding-bottom:5px;display:inline-block}#clef-tutorial .using-clef h3{color:#333}#clef-tutorial .using-clef .next{margin:20px 0}#clef-tutorial .user,#clef-tutorial .no-sync{text-align:left}#clef-tutorial .user h1,#clef-tutorial .no-sync h1{text-align:left}#clef-tutorial.user .no-user,#clef-tutorial.no-sync .no-user{display:none}#clef-tutorial.user .user{display:block;opacity:1}#clef-tutorial.no-sync .no-sync{display:block;opacity:1}#connect-clef-account .skip{display:none}#clef-settings-form *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#clef-settings-form .twitter-follow-button{position:relative;top:4px}#clef-settings-form .settings-section.pro-section{position:relative;display:none}#clef-settings-form .settings-section.pro-section:before{width:80px;height:30px;line-height:30px;background:#00BA6E;display:block;content:"PRO";position:absolute;top:0;right:0;color:#fff;font-weight:700;text-align:center;opacity:.7}#clef-settings-form .settings-section.override-settings .inputs-container .input-container{background:0;padding:0;margin:0;clear:both}#clef-settings-form .settings-section.override-settings .inputs-container label{width:auto;margin:0;line-height:25px;font-weight:700;padding-left:10px;background:#DDD;padding:1px 5px;font-size:9px}@media screen and (max-width:768px){#clef-settings-form .settings-section.override-settings .inputs-container label{width:100%;font-size:12px}}#clef-settings-form .settings-section.override-settings .inputs-container input{float:left}#clef-settings-form .settings-section.override-settings .inputs-container .generate-override{float:left;width:auto;clear:both;cursor:pointer;color:#BBB}#clef-settings-form .settings-section.override-settings .inputs-container .generate-override:hover{text-decoration:underline}#clef-settings-form .settings-section.override-settings .inputs-container .override-buttons{margin-top:10px;clear:both}#clef-settings-form .settings-section.override-settings .inputs-container .override-buttons .button{display:inline-block;text-align:center;margin-top:30px}#clef-settings-form .settings-section.override-settings .preview-container{display:block;float:left;margin-right:1.85185%;width:38.88889%;display:none}#clef-settings-form .settings-section.override-settings .preview-container:last-child{margin-right:0}#clef-settings-form .settings-section.override-settings .preview-container img{margin-top:15px;width:100%}#clef-settings-form .settings-section.override-settings.set .preview-container{display:block}#clef-settings-form .settings-section.override-settings.set .override-buttons{display:block}#clef-settings-form .settings-section.support-settings .preview-container{padding-top:10px;display:block;float:left;margin-right:1.85185%;width:38.88889%}#clef-settings-form .settings-section.support-settings .preview-container:last-child{margin-right:0}@media screen and (max-width:768px){#clef-settings-form .settings-section.support-settings .preview-container{display:none}}#clef-settings-form .settings-section.support-settings .preview-container .ftr-preview{background:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13);padding:20px;font-weight:400;overflow:hidden;margin-top:5px}#clef-settings-form .settings-section.support-settings .preview-container .ftr-preview a{margin-top:20px}#clef-settings-form .settings-section.support-settings .support-html-container{margin-top:20px}#clef-settings-form .settings-section.support-settings .support-html-container textarea{width:400px;padding:10px;margin-bottom:10px}#clef-settings-form .settings-section.clef-settings .inputs-container label{display:block;float:left;margin-right:1.85185%;width:28.7037%}#clef-settings-form .settings-section.clef-settings .inputs-container label:last-child{margin-right:0}#clef-settings-form .settings-section.clef-settings .inputs-container input[type=text],#clef-settings-form .settings-section.clef-settings .inputs-container textarea{display:block;float:left;margin-right:1.85185%;width:69.44444%}#clef-settings-form .settings-section.clef-settings .inputs-container input[type=text]:last-child,#clef-settings-form .settings-section.clef-settings .inputs-container textarea:last-child{margin-right:0}@media screen and (max-width:768px){#clef-settings-form .settings-section.clef-settings .inputs-container input[type=text],#clef-settings-form .settings-section.clef-settings .inputs-container textarea{display:block;float:left;margin-right:1.85185%;width:100%}#clef-settings-form .settings-section.clef-settings .inputs-container input[type=text]:last-child,#clef-settings-form .settings-section.clef-settings .inputs-container textarea:last-child{margin-right:0}}#clef-settings-form .password-settings{min-height:400px}#clef-settings-form .password-settings .input-container.custom-roles .title{display:block;width:100%;margin-bottom:10px}#clef-settings-form .password-settings .input-container.custom-roles .custom-role label{clear:both}#clef-settings-form .password-settings #login-form-view{display:block;float:left;margin-right:1.85185%;width:38.88889%}#clef-settings-form .password-settings #login-form-view:last-child{margin-right:0}@media screen and (max-width:768px){#clef-settings-form .password-settings #login-form-view{display:none}}#clef-settings-form .password-settings #login-form-view.only-clef:not(.embed-clef) #loginform{padding:40px}#clef-settings-form .password-settings #login-form-view.only-clef:not(.embed-clef) #loginform>:not(.clef-button){display:none}#clef-settings-form .password-settings #login-form-view.only-clef:not(.embed-clef) #loginform .clef-button{margin-bottom:0}#clef-settings-form .password-settings #login-form-view.embed-clef #loginform{position:relative;height:425px}#clef-settings-form .password-settings #login-form-view.embed-clef #loginform .clef-button{display:none}#clef-settings-form .password-settings #login-form-view.embed-clef #loginform .clef-overlay{display:block;position:absolute;top:0;left:0;height:100%;width:100%;background:#fff}#clef-settings-form .password-settings #login-form-view.embed-clef #loginform .clef-overlay img{position:absolute;top:10px;left:10%;width:80%;display:block}#clef-settings-form .password-settings #login-form-view.embed-clef #loginform .clef-overlay div{display:block}#clef-settings-form .password-settings #login-form-view.embed-clef #loginform .or-container{display:none}#clef-settings-form .password-settings #login-form-view.embed-clef #loginform .overlay-text{position:absolute;width:100%;bottom:10px;left:0;color:#aaa;text-align:center}#clef-settings-form .password-settings #login-form-view.embed-clef.only-clef #loginform .overlay-text{display:none}#clef-settings-form .password-settings #login-form-view #loginform{background:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13);padding:26px 24px 46px;font-weight:400;overflow:hidden;margin-top:5px}#clef-settings-form .password-settings #login-form-view #loginform label{color:#777;font-size:14px}#clef-settings-form .password-settings #login-form-view #loginform .input{font-size:24px;line-height:1;width:100%;padding:3px;margin:2px 6px 16px 0}#clef-settings-form .password-settings #login-form-view #loginform .submit{float:right;margin-top:0}#clef-settings-form .password-settings #login-form-view #loginform .forgetmenot{font-weight:400;float:left;margin-bottom:0}#clef-settings-form .password-settings #login-form-view #loginform .clef-button{margin-bottom:27px}#clef-settings-form .password-settings #login-form-view #loginform .clef-button img{height:34px;width:187px;margin:auto;display:block}#clef-settings-form .password-settings #login-form-view #loginform .clef-button div{position:absolute;width:100%;top:50%;margin-top:5px;text-align:center;display:block;color:#aaa;cursor:pointer;display:none}#clef-settings-form .password-settings #login-form-view #loginform .clef-button div:hover{color:#999}#clef-settings-form .password-settings #login-form-view #loginform .clef-overlay{display:none}#clef-settings-form #clef-pro-section{display:none}#clef-settings-form #clef-pro-section #clef-pro-customization .preview-container{display:block;float:left;margin-right:1.85185%;width:38.88889%}#clef-settings-form #clef-pro-section #clef-pro-customization .preview-container:last-child{margin-right:0}#clef-settings-form #clef-pro-section #clef-pro-customization .button{float:right;margin-left:10px}#clef-settings-form #clef-pro-section #clef-pro-customization #custom-login-view img{max-height:50px;margin:auto;margin-top:20px;display:block}#clef-settings-form #clef-pro-section #clef-pro-customization #custom-login-view p{border:1px solid #eee;margin:20px;padding:10px}#clef-settings-form .setting-info{font-weight:400;font-size:12px;color:#aaa;text-decoration:none;margin-left:5px}#clef-settings-form .setting-info:hover{color:#888}.bruteprotect-install{background:#515953;padding:40px;margin-top:20px}.bruteprotect-install p{color:#fff;font-size:16px;line-height:1.2em;font-family:"Helvetica Neue",Helvetica,sans-serif}.multisite-settings input[type=checkbox]{position:relative;left:30px;top:1px}.logout-hook-error{display:none}.invite-users .preview-container{display:block;float:left;margin-right:1.85185%;width:38.88889%}.invite-users .preview-container:last-child{margin-right:0}.invite-users .preview-container .email{width:95%;margin:auto;margin-top:15px;font-style:italic;border:1px solid #EEE;padding:10px}.invite-users .preview-container .email p{font-size:11px}.invite-users .preview-container .email p:first-child{margin-top:0}#connect-clef-account .connect-clef-message{padding:10px;margin:20px 0 10px}.clef-flash.updated{padding:10px}.clef-flash.updated img{float:left;margin-right:10px;-webkit-animation-name:spin;animation-name:spin;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-iteration-count:1;animation-iteration-count:1}@-webkit-keyframes spin{0%{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}100%{-webkit-transform:rotateY(360deg);transform:rotateY(360deg)}}@keyframes spin{0%{-webkit-transform:rotateY(0deg);-ms-transform:rotateY(0deg);transform:rotateY(0deg)}100%{-webkit-transform:rotateY(360deg);-ms-transform:rotateY(360deg);transform:rotateY(360deg)}}body #wp-auth-check-wrap #wp-auth-check{width:90%;margin-left:0;left:5%;max-height:none!important;height:90%} \ No newline at end of file diff --git a/assets/dist/img/invite.png b/assets/dist/img/invite.png new file mode 100644 index 0000000000000000000000000000000000000000..6b7f08cb0e6a7d3b3f49fe0470a946d7bde23416 GIT binary patch literal 21743 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[o],u=i.split("="),e=u[0],r=u[1],t[e]=decodeURIComponent(r);return t},e}(),window.ClefUtils=n}).call(this,jQuery,Backbone),function(e,t){var n,s,i,r;return r=t.View.extend({el:e("#clef-tutorial"),messageTemplate:_.template("
<%=message%>
"),events:{"click .next":"next","click .previous":"previous","click .done":"done"},slideClass:"sub",initialize:function(t){var n,s,r,o;for(this.opts=t,this.subs=[],n=this.$el.find("."+this.slideClass).filter(this.opts.slideFilterSelector),r=0,o=n.length;o>r;r++)s=n[r],this.subs.push(new i({el:s}));return this.currentSub=this.subs[0],e(window).on("message",this.handleMessages.bind(this)),this.hide(),this.render()},slideUp:function(e){return this.$el.slideUp(e)},hide:function(e){return this.$el.hide(e)},show:function(){return this.$el.fadeIn()},render:function(){return this.currentSub.render()},done:function(){return this.trigger("done")},next:function(){var e;return e=this.subs[_.indexOf(this.subs,this.currentSub)+1],e?(e.isLogin()&&this.loggedIn&&(e=this.subs[_.indexOf(this.subs,this.newSub)+1]),this.currentSub.hide(),e.render(),this.currentSub=e,this.trigger("next")):this.done()},previous:function(){var e;return e=this.subs[_.indexOf(this.subs,this.currentSub)-1],e?(this.currentSub.hide(),e.render(),this.currentSub=e):void 0},handleMessages:function(e){var t;if(e.originalEvent.origin.indexOf(this.opts.clefBase)>=0)return t=e.originalEvent.data,"string"==typeof t&&(t=JSON.parse(t)),t},connectClefAccount:function(t,n){var s,i;return s={_wpnonce:this.opts.nonces.connectClef,identifier:t.identifier,state:t.state},i=function(e){return function(t){return e.showMessage({message:_.template(clefTranslations.messages.error.connect)({error:t}),type:"error"})}}(this),e.post(this.connectClefAction,s).success(function(e){return e.success?"function"==typeof n?n(e):void 0:i(ClefUtils.getErrorMessage(e))}).fail(function(e){return i(e.responseText)})},showMessage:function(t){return this.$currentMessage&&this.$currentMessage.remove(),this.$currentMessage=e(this.messageTemplate(t)).hide().prependTo(this.$el).slideDown(),t.removeNext?this.listenToOnce(this,"next",function(){return this.$currentMessage.slideUp()}):void 0}},{extend:t.View.extend}),i=t.View.extend({initialize:function(t){return this.opts=t,this.setElement(e(this.opts.el))},render:function(){return this.$el.show()},hide:function(){return this.$el.hide()},remove:function(){return this.$el.remove()},find:function(e){return this.$el.find(e)},isLogin:function(){return this.$el.find("iframe.setup").length},isSync:function(){return this.$el.hasClass("sync")&&this.$el.find("iframe").length}}),s=r.extend({connectClefAction:ajaxurl+"?action=connect_clef_account_clef_id",iframePath:"/iframes/application/create/v2",initialize:function(e){return e.slideFilterSelector=".setup",this.inviter=new InviteUsersView(_.extend({el:this.$el.find(".invite-users-container")},e)),this.listenTo(this.inviter,"invited",this.usersInvited),this.constructor.__super__.initialize.call(this,e),this.on("next",this.shouldLoadIFrame)},render:function(){return this.inviter.render(),this.constructor.__super__.render.call(this)},shouldLoadIFrame:function(){return this.currentSub.isSync()?this.loadIFrame(function(e){return function(){return e.currentSub.find(".spinner-container").hide(),e.iframe.fadeIn()}}(this)):void 0},loadIFrame:function(e){var t,n;if(!this.iframe)return this.iframe=this.$el.find("iframe.setup"),t=encodeURIComponent(this.opts.setup.affiliates.join(",")),n=""+this.opts.clefBase+this.iframePath+"?source="+encodeURIComponent(this.opts.setup.source)+"&domain="+encodeURIComponent(this.opts.setup.siteDomain)+"&logout_hook="+encodeURIComponent(this.opts.setup.logoutHook)+"&name="+encodeURIComponent(this.opts.setup.siteName)+"&affiliates="+t,this.iframe.attr("src",n),this.iframe.on("load",e)},handleMessages:function(e){return(e=this.constructor.__super__.handleMessages.call(this,e))?"keys"===e.type?this.connectClefAccount({identifier:e.clefID},function(t){return function(){return t.trigger("applicationCreated",e),t.next(),t.showMessage({message:clefTranslations.messages.success.connect,type:"updated",removeNext:!0})}}(this)):"error"===e.type?this.showMessage({message:_.template(clefTranslations.messages.error.create)({error:e.message}),type:"error"}):void 0:void 0},onConfigured:function(){return setTimeout(function(){return e(".logout-hook-error").slideDown()},2e4)},usersInvited:function(){return this.inviter.hideButton(),setTimeout(function(e){return function(){return e.currentSub.$el.hasClass("invite")?e.currentSub.$el.find(".button").addClass("button-primary"):void 0}}(this),1e3)}}),n=r.extend({connectClefAction:ajaxurl+"?action=connect_clef_account_oauth_code",render:function(){return this.addButton(),this.constructor.__super__.render.call(this)},addButton:function(){var t,n;if(!this.button)return t=window.location.href,t+=/\?/.test(t)?"&connect_clef_account=1":"?connect_clef_account=1",n=e("#clef-button-target").attr("data-app-id",this.opts.appID).attr("data-redirect-url",t).attr("data-state",this.opts.state),this.button=new ClefButton({el:e("#clef-button-target")[0]}),this.button.render()}}),this.TutorialView=r,this.SetupTutorialView=s,this.ConnectTutorialView=n}.call(this,jQuery,Backbone),function(e,t){var n;return n=t.View.extend({el:"#connect-clef-account",events:{"click #disconnect":"disconnectClefAccount"},disconnectURL:ajaxurl+"?action=disconnect_clef_account",messageTemplate:_.template("
<%=message%>
"),initialize:function(e){return this.opts=e,this.tutorial=new ConnectTutorialView(_.clone(this.opts)),this.disconnect=this.$el.find(".disconnect-clef"),this.listenTo(this.tutorial,"done",this.finishTutorial),this.render()},show:function(){return this.$el.fadeIn()},render:function(){return this.tutorial.render(),this.opts.connected?(this.tutorial.slideUp(),this.disconnect.show()):(this.disconnect.hide(),this.tutorial.show())},disconnectClefAccount:function(t){var n;return t.preventDefault(),n=function(e){return function(t){return e.showMessage({message:_.template(clefTranslations.messages.error.disconnect)({error:t}),type:"error"})}}(this),e.post(this.disconnectURL,{_wpnonce:this.opts.nonces.disconnectClef}).success(function(e){return function(t){var s;return t.success?(e.opts.connected=!1,e.render(),s=clefTranslations.messages.success.disconnect,e.showMessage({message:s,type:"updated"})):n(ClefUtils.getErrorMessage(t))}}(this)).fail(function(e){return n(e.responseText)})},showMessage:function(t){return this.message&&this.message.remove(),this.message=e(this.messageTemplate(t)).hide(),this.message.prependTo(this.$el).slideDown()},finishTutorial:function(){return window.location=""}}),window.ConnectView=n}.call(this,jQuery,Backbone); \ No newline at end of file diff --git a/assets/dist/js/login.min.js b/assets/dist/js/login.min.js index 1da5ff9..b1f22f0 100644 --- a/assets/dist/js/login.min.js +++ b/assets/dist/js/login.min.js @@ -1,4 +1,4 @@ -/*! Clef for WordPress - v2.3.1 +/*! Clef for WordPress - v2.3.4 * http://getclef.com * Licensed GPLv2+ */ (function(e){var n,o;return n=function(){return e(".clef-login-form.clef-login-form-embed").addClass("clef-closed"),!1},o=function(n){return e(".clef-login-form.clef-login-form-embed").removeClass("clef-closed"),!1},e(function(){var r,l,c;return r=e(".clef-embed-container"),e(".close-overlay").click(n),e(".open-overlay").click(o),e(".overlay-info .open").click(function(){return e(".overlay-info").removeClass("closed")}),r.length&&(c=e(".spinner-container"),l=r.find("iframe"),l.load(function(){return c.hide(),setTimeout(function(){return r.slideDown()})}),!l.attr("data-loaded"))?(r.hide(),c.show()):void 0})}).call(this,jQuery); \ No newline at end of file diff --git a/assets/dist/js/settings.js b/assets/dist/js/settings.js index 1065486..04b0513 100755 --- a/assets/dist/js/settings.js +++ b/assets/dist/js/settings.js @@ -45,7 +45,7 @@ if ($messageEl.length) { $messageEl.remove(); } - return this.$el.find('.button').first().before(this.messageTemplate(data)); + return this.$el.find('.invite-role-button').first().before(this.messageTemplate(data)); }, template: function() { return _.template($('#invite-users-template').html()); @@ -60,6 +60,7 @@ inviteUsers: function(e) { var data, failure; e.preventDefault(); + $(e.target).attr('disabled', 'disabled'); data = { _wpnonce: this.opts.nonces.inviteUsers, roles: $("select[name='invite-users-role']").val(), @@ -67,6 +68,7 @@ }; failure = (function(_this) { return function(msg) { + $(e.target).removeAttr('disabled'); return _this.showMessage({ message: _.template(clefTranslations.messages.error.invite)({ error: msg @@ -77,10 +79,11 @@ })(this); return $.post(this.inviteUsersAction, data).success((function(_this) { return function(data) { + $(e.target).removeAttr('disabled'); if (data.success) { _this.trigger("invited"); return _this.showMessage({ - message: clefTranslations.messages.success.invite, + message: data.message, type: "updated" }); } else { diff --git a/assets/dist/js/settings.min.js b/assets/dist/js/settings.min.js index 25fadda..3e4ed2c 100755 --- a/assets/dist/js/settings.min.js +++ b/assets/dist/js/settings.min.js @@ -1,4 +1,4 @@ -/*! Clef for WordPress - v2.3.1 +/*! Clef for WordPress - v2.3.4 * http://getclef.com * Licensed GPLv2+ */ -(function(e,t){var i;return i=function(){function e(){}return e.getErrorMessage=function(e){return e.error?e.error:e.data&&e.data.error?e.data.error:e},e.getURLParams=function(){var e,t,i,s,n,r,o,a,u;for(i=window.location.search.substring(1),s=i.split("&"),t={},o=0,a=s.length;a>o;o++)n=s[o],u=n.split("="),e=u[0],r=u[1],t[e]=decodeURIComponent(r);return t},e}(),window.ClefUtils=i}).call(this,jQuery,Backbone),function(e,t){var i;return i=t.View.extend({el:"#invite-users-settings",events:{"click a[name='invite-users-button']":"inviteUsers"},messageTemplate:_.template("
<%=message%>
"),showMessage:function(e){var t;return t=this.$el.find(".invite-users-message"),t.length&&t.remove(),this.$el.find(".button").first().before(this.messageTemplate(e))},template:function(){return _.template(e("#invite-users-template").html())},initialize:function(e){return this.opts=e,this.opts.el?this.setElement(this.opts.el):void 0},inviteUsersAction:ajaxurl+"?action=clef_invite_users",inviteUsers:function(t){var i,s;return t.preventDefault(),i={_wpnonce:this.opts.nonces.inviteUsers,roles:e("select[name='invite-users-role']").val(),networkAdmin:this.opts.isNetworkSettings},s=function(e){return function(t){return e.showMessage({message:_.template(clefTranslations.messages.error.invite)({error:t}),type:"error"})}}(this),e.post(this.inviteUsersAction,i).success(function(e){return function(t){return t.success?(e.trigger("invited"),e.showMessage({message:clefTranslations.messages.success.invite,type:"updated"})):s(ClefUtils.getErrorMessage(t))}}(this)).fail(function(e){return s(e.responseText)})},hideButton:function(){return this.$el.find(".button").hide()},render:function(){return this.$el.html(this.template)}}),this.InviteUsersView=i}.call(this,jQuery,Backbone),function(e){var t,i;return i=AjaxSettingsView.extend({el:"#multisite-settings",initialize:function(e){return this.modelClass=t,i.__super__.initialize.call(this,e)}}),t=AjaxSettingsModel.extend({parse:function(e,i){return i.url=ajaxurl+"?action=clef_multisite_settings",t.__super__.parse.call(this,e,i)}}),this.MultisiteOptionsModel=t,this.MultisiteOptionsView=i}.call(this,jQuery),function(e,t){var i,s,n,r;return r=t.View.extend({el:e("#clef-tutorial"),messageTemplate:_.template("
<%=message%>
"),events:{"click .next":"next","click .previous":"previous","click .done":"done"},slideClass:"sub",initialize:function(t){var i,s,r,o;for(this.opts=t,this.subs=[],i=this.$el.find("."+this.slideClass).filter(this.opts.slideFilterSelector),r=0,o=i.length;o>r;r++)s=i[r],this.subs.push(new n({el:s}));return this.currentSub=this.subs[0],e(window).on("message",this.handleMessages.bind(this)),this.hide(),this.render()},slideUp:function(e){return this.$el.slideUp(e)},hide:function(e){return this.$el.hide(e)},show:function(){return this.$el.fadeIn()},render:function(){return this.currentSub.render()},done:function(){return this.trigger("done")},next:function(){var e;return e=this.subs[_.indexOf(this.subs,this.currentSub)+1],e?(e.isLogin()&&this.loggedIn&&(e=this.subs[_.indexOf(this.subs,this.newSub)+1]),this.currentSub.hide(),e.render(),this.currentSub=e,this.trigger("next")):this.done()},previous:function(){var e;return e=this.subs[_.indexOf(this.subs,this.currentSub)-1],e?(this.currentSub.hide(),e.render(),this.currentSub=e):void 0},handleMessages:function(e){var t;if(e.originalEvent.origin.indexOf(this.opts.clefBase)>=0)return t=e.originalEvent.data,"string"==typeof t&&(t=JSON.parse(t)),t},connectClefAccount:function(t,i){var s,n;return s={_wpnonce:this.opts.nonces.connectClef,identifier:t.identifier,state:t.state},n=function(e){return function(t){return e.showMessage({message:_.template(clefTranslations.messages.error.connect)({error:t}),type:"error"})}}(this),e.post(this.connectClefAction,s).success(function(e){return e.success?"function"==typeof i?i(e):void 0:n(ClefUtils.getErrorMessage(e))}).fail(function(e){return n(e.responseText)})},showMessage:function(t){return this.$currentMessage&&this.$currentMessage.remove(),this.$currentMessage=e(this.messageTemplate(t)).hide().prependTo(this.$el).slideDown(),t.removeNext?this.listenToOnce(this,"next",function(){return this.$currentMessage.slideUp()}):void 0}},{extend:t.View.extend}),n=t.View.extend({initialize:function(t){return this.opts=t,this.setElement(e(this.opts.el))},render:function(){return this.$el.show()},hide:function(){return this.$el.hide()},remove:function(){return this.$el.remove()},find:function(e){return this.$el.find(e)},isLogin:function(){return this.$el.find("iframe.setup").length},isSync:function(){return this.$el.hasClass("sync")&&this.$el.find("iframe").length}}),s=r.extend({connectClefAction:ajaxurl+"?action=connect_clef_account_clef_id",iframePath:"/iframes/application/create/v2",initialize:function(e){return e.slideFilterSelector=".setup",this.inviter=new InviteUsersView(_.extend({el:this.$el.find(".invite-users-container")},e)),this.listenTo(this.inviter,"invited",this.usersInvited),this.constructor.__super__.initialize.call(this,e),this.on("next",this.shouldLoadIFrame)},render:function(){return this.inviter.render(),this.constructor.__super__.render.call(this)},shouldLoadIFrame:function(){return this.currentSub.isSync()?this.loadIFrame(function(e){return function(){return e.currentSub.find(".spinner-container").hide(),e.iframe.fadeIn()}}(this)):void 0},loadIFrame:function(e){var t,i;if(!this.iframe)return this.iframe=this.$el.find("iframe.setup"),t=encodeURIComponent(this.opts.setup.affiliates.join(",")),i=""+this.opts.clefBase+this.iframePath+"?source="+encodeURIComponent(this.opts.setup.source)+"&domain="+encodeURIComponent(this.opts.setup.siteDomain)+"&logout_hook="+encodeURIComponent(this.opts.setup.logoutHook)+"&name="+encodeURIComponent(this.opts.setup.siteName)+"&affiliates="+t,this.iframe.attr("src",i),this.iframe.on("load",e)},handleMessages:function(e){return(e=this.constructor.__super__.handleMessages.call(this,e))?"keys"===e.type?this.connectClefAccount({identifier:e.clefID},function(t){return function(){return t.trigger("applicationCreated",e),t.next(),t.showMessage({message:clefTranslations.messages.success.connect,type:"updated",removeNext:!0})}}(this)):"error"===e.type?this.showMessage({message:_.template(clefTranslations.messages.error.create)({error:e.message}),type:"error"}):void 0:void 0},onConfigured:function(){return setTimeout(function(){return e(".logout-hook-error").slideDown()},2e4)},usersInvited:function(){return this.inviter.hideButton(),setTimeout(function(e){return function(){return e.currentSub.$el.hasClass("invite")?e.currentSub.$el.find(".button").addClass("button-primary"):void 0}}(this),1e3)}}),i=r.extend({connectClefAction:ajaxurl+"?action=connect_clef_account_oauth_code",render:function(){return this.addButton(),this.constructor.__super__.render.call(this)},addButton:function(){var t,i;if(!this.button)return t=window.location.href,t+=/\?/.test(t)?"&connect_clef_account=1":"?connect_clef_account=1",i=e("#clef-button-target").attr("data-app-id",this.opts.appID).attr("data-redirect-url",t).attr("data-state",this.opts.state),this.button=new ClefButton({el:e("#clef-button-target")[0]}),this.button.render()}}),this.TutorialView=r,this.SetupTutorialView=s,this.ConnectTutorialView=i}.call(this,jQuery,Backbone),function(e){var t,i,s,n;return t=Backbone.View.extend({el:e("#clef-settings-container"),initialize:function(e){return this.opts=e,this.$msgContainer=this.$el.find(".message"),this.settings=new n(_.extend({options_name:"wpclef"},this.opts)),this.settings.hide(),this.settings.isConfigured()||(this.tutorial=new SetupTutorialView(_.extend({},this.opts)),this.tutorial.hide(),this.listenTo(this.tutorial,"message",this.displayMessage)),this.opts.isNetworkSettings&&(delete this.opts.formSelector,this.multisiteOptionsView=new MultisiteOptionsView(this.opts)),this.listenTo(this.settings,"message",this.displayMessage),this.render()},render:function(){return(this.opts.isUsingIndividualSettings||this.opts.isNetworkSettings&&this.opts.isNetworkSettingsEnabled)&&(this.multisiteOptionsView&&this.multisiteOptionsView.show(),this.settings.isConfigured()?this.settings.show():(this.tutorial.show(),this.listenToOnce(this.tutorial,"applicationCreated",this.configure),this.listenToOnce(this.tutorial,"done",this.hideTutorial))),this.$el.fadeIn()},configure:function(e){return this.settings.model.configure(e),this.settings.render()},displayMessage:function(e){return this.$msgContainer.find("p").text(e.message),this.$msgContainer.addClass(e.type).slideDown(),e.fade?setTimeout(function(){return this.$msgContainer.slideUp()},3e3):void 0},hideTutorial:function(){return this.settings.isConfigured()&&this.displayMessage(clefTranslations.messages.success.configured),this.tutorial.slideUp(),this.settings.show()}}),n=AjaxSettingsView.extend({errorTemplate:_.template("
<%=message%>
"),genericErrorMessage:clefTranslations.messages.error.generic,addEvents:{"click .generate-override":"generateOverride","click input[type='submit']:not(.ajax-ignore)":"saveForm","click a.show-support-html":"showSupportHTML"},constructor:function(e){return this.events=_.extend(this.events,this.addEvents),n.__super__.constructor.call(this,e)},initialize:function(e){return this.opts=e,this.modelClass=s,n.__super__.initialize.call(this,e),this.pro=new ClefProView(e,this.model),this.inviteUsersView=new InviteUsersView(e),this.formView=new i({model:this.model}),this.xmlEl=this.model.cFindInput("clef_password_settings_xml_allowed").parents(".input-container"),this.overrideContainer=this.$el.find(".override-settings"),this.setOverrideLink(),this.badgePreviewContainer=this.$el.find(".support-settings .ftr-preview"),this.listenTo(this.model,"change",this.clearErrors),this.listenTo(this.model,"error",this.error),window.onbeforeunload=function(e){return function(t){return e.isSaving()?clefTranslations.messages.saving:void 0}}(this),this.render()},updated:function(e,t){return n.__super__.updated.call(this,e,t),this.setOverrideLink()},render:function(){var t;return n.__super__.render.call(this),t=this.model.passwordsDisabled(),e("#clef-settings-header").show(),this.xmlEl.toggle(t),this.toggleOverrideContainer(t),this.overrideContainer.toggleClass("set",this.model.overrideIsSet()),this.inviteUsersView.render(),this.renderSupportBadge()},toggleInputs:function(e){return this.formView.toggleForm(!!parseInt(e.currentTarget.value))},toggleOverrideContainer:function(e){return this.overrideContainer.toggle(e)},generateOverride:function(){var e;return e=Math.random().toString(36).slice(2),this.model.save({"wpclef[clef_override_settings_key]":e})},setOverrideLink:function(){var e,t;return(t=this.model.overrideKey())?(this.overrideBase||(this.overrideBase=this.overrideContainer.find("label").text()),e=this.overrideContainer.find("a.button"),e.on("click",function(e){return e.preventDefault()}),e.attr("href",this.overrideBase+t)):void 0},isSaving:function(){return this.model.saving},renderSupportBadge:function(){var e;return e=this.model.badgeSetting(),this.badgePreviewContainer.toggle("disabled"!==e),this.badgePreviewContainer.find("a").toggleClass("pretty","badge"===e)},isConfigured:function(){return this.model.isConfigured()},saveForm:function(t){return t.preventDefault(),this.model.save({},{success:function(t){return function(){return t.trigger("message",{message:"Settings saved.",type:"updated"}),e("html, body").animate({scrollTop:0},"slow")}}(this),error:this.model.saveError.bind(this.model)})},showSupportHTML:function(t){return t.preventDefault(),e(".support-html-container").slideDown()}}),s=AjaxSettingsModel.extend({cFindInput:function(e){return this.findInput("wpclef["+e+"]")},cget:function(e){return this.get("wpclef["+e+"]")},passwordsDisabled:function(){return!!parseInt(this.cget("clef_password_settings_disable_passwords"))||""!==this.cget("clef_password_settings_disable_certain_passwords")||this.passwordsFullyDisabled()},passwordsFullyDisabled:function(){return!!parseInt(this.cget("clef_password_settings_force"))},loginIsEmbedded:function(){return!!parseInt(this.cget("clef_form_settings_embed_clef"))},overrideIsSet:function(){return!!this.overrideKey()},overrideKey:function(){return this.cget("clef_override_settings_key")},badgeSetting:function(){return this.cget("support_clef_badge").toLowerCase()},isConfigured:function(){return!(!this.cget("clef_settings_app_id")||!this.cget("clef_settings_app_secret"))},configure:function(e){var t,i,s,n;if(i={"wpclef[clef_settings_app_id]":e.appID,"wpclef[clef_settings_app_secret]":e.appSecret},e.configuration){n=e.configuration;for(t in n)s=n[t],i["wpclef["+t+"]"]=s}return this.save(i)}}),i=Backbone.View.extend({el:e("#login-form-view"),template:function(){return _.template(e("#form-template").html())},initialize:function(e){return this.opts=e,this.model=this.opts.model,this.listenTo(this.model,"change",this.toggleForm),this.render()},render:function(){return this.$el.html(this.template),this.$el.find('input[type="submit"]').on("click",function(e){return e.preventDefault()}),this.toggleForm()},toggleForm:function(e){return this.$el.toggleClass("only-clef",this.model.passwordsFullyDisabled()),this.$el.toggleClass("embed-clef",this.model.loginIsEmbedded())}}),this.AppView=t,e.fn.serializeObject=function(t){var i,s,n,r,o;for(s={},o=e(this).serializeArray(),n=0,r=o.length;r>n;n++)i=o[n],s[i.name]=i.value;return s}}.call(this,jQuery),function(e,t){var i;return i=t.View.extend({el:"#connect-clef-account",events:{"click #disconnect":"disconnectClefAccount"},disconnectURL:ajaxurl+"?action=disconnect_clef_account",messageTemplate:_.template("
<%=message%>
"),initialize:function(e){return this.opts=e,this.tutorial=new ConnectTutorialView(_.clone(this.opts)),this.disconnect=this.$el.find(".disconnect-clef"),this.listenTo(this.tutorial,"done",this.finishTutorial),this.render()},show:function(){return this.$el.fadeIn()},render:function(){return this.tutorial.render(),this.opts.connected?(this.tutorial.slideUp(),this.disconnect.show()):(this.disconnect.hide(),this.tutorial.show())},disconnectClefAccount:function(t){var i;return t.preventDefault(),i=function(e){return function(t){return e.showMessage({message:_.template(clefTranslations.messages.error.disconnect)({error:t}),type:"error"})}}(this),e.post(this.disconnectURL,{_wpnonce:this.opts.nonces.disconnectClef}).success(function(e){return function(t){var s;return t.success?(e.opts.connected=!1,e.render(),s=clefTranslations.messages.success.disconnect,e.showMessage({message:s,type:"updated"})):i(ClefUtils.getErrorMessage(t))}}(this)).fail(function(e){return i(e.responseText)})},showMessage:function(t){return this.message&&this.message.remove(),this.message=e(this.messageTemplate(t)).hide(),this.message.prependTo(this.$el).slideDown()},finishTutorial:function(){return window.location=""}}),window.ConnectView=i}.call(this,jQuery,Backbone);var __indexOf=[].indexOf||function(e){for(var t=0,i=this.length;i>t;t++)if(t in this&&this[t]===e)return t;return-1};(function(e,t){var i,s;return s=t.View.extend({el:"#clef-pro-section",getServicesURL:ajaxurl+"?action=clef_get_pro_services",subViews:[],initialize:function(t,s){return this.opts=t,this.model=s,e.getJSON(this.getServicesURL,{_wpnonce:this.opts.nonces.getProServices}).success(function(e){return function(t){return e.servicesAvailable=t,__indexOf.call(e.servicesAvailable,"customize")>=0&&(e.customizer=new i(e.opts,e.model),e.subViews.push(e.customizer)),e.render()}}(this)).fail(function(e){return console.log(e.responseText)})},render:function(){var e,t,i,s;for(s=this.subViews,t=0,i=s.length;i>t;t++)e=s[t],e.render();return this.$el.show()}}),i=t.View.extend({el:"#clef-pro-customization",events:{"click #clef-custom-logo-upload":"openMediaUploader","click #clef-custom-logo-clear":"clearLogo","change input, change textarea":"render","keyup textarea":"render"},initialize:function(t,i){return this.opts=t,this.model=i,this.preview=_.template(e("#clef-customization-template").html())},render:function(){return this.$el.find("#custom-login-view").html(this.preview({image:this.image(),message:this.message()})),this.$el.find("#clef-custom-logo-clear").toggle(!!this.image()),this.$el.show()},openMediaUploader:function(){return this.uploader?void this.uploader.open():(this.uploader=wp.media.frames.file_frame=wp.media({title:"Choose an image",button:{text:"Choose an image"},multiple:!1}),this.uploader.on("select",function(e){return function(){var t;return t=e.uploader.state().get("selection").first().toJSON(),e.model.save({"wpclef[customization_logo]":t.url}),e.render()}}(this)),this.uploader.open())},clearLogo:function(){return this.model.save({"wpclef[customization_logo]":""}),this.render()},image:function(){return this.model.cget("customization_logo")},message:function(){return this.$el.find("textarea").val()}}),window.ClefProView=s}).call(this,jQuery,Backbone); \ No newline at end of file +(function(e,t){var i;return i=function(){function e(){}return e.getErrorMessage=function(e){return e.error?e.error:e.data&&e.data.error?e.data.error:e},e.getURLParams=function(){var e,t,i,s,n,r,o,a,u;for(i=window.location.search.substring(1),s=i.split("&"),t={},o=0,a=s.length;a>o;o++)n=s[o],u=n.split("="),e=u[0],r=u[1],t[e]=decodeURIComponent(r);return t},e}(),window.ClefUtils=i}).call(this,jQuery,Backbone),function(e,t){var i;return i=t.View.extend({el:"#invite-users-settings",events:{"click a[name='invite-users-button']":"inviteUsers"},messageTemplate:_.template("
<%=message%>
"),showMessage:function(e){var t;return t=this.$el.find(".invite-users-message"),t.length&&t.remove(),this.$el.find(".invite-role-button").first().before(this.messageTemplate(e))},template:function(){return _.template(e("#invite-users-template").html())},initialize:function(e){return this.opts=e,this.opts.el?this.setElement(this.opts.el):void 0},inviteUsersAction:ajaxurl+"?action=clef_invite_users",inviteUsers:function(t){var i,s;return t.preventDefault(),e(t.target).attr("disabled","disabled"),i={_wpnonce:this.opts.nonces.inviteUsers,roles:e("select[name='invite-users-role']").val(),networkAdmin:this.opts.isNetworkSettings},s=function(i){return function(s){return e(t.target).removeAttr("disabled"),i.showMessage({message:_.template(clefTranslations.messages.error.invite)({error:s}),type:"error"})}}(this),e.post(this.inviteUsersAction,i).success(function(i){return function(n){return e(t.target).removeAttr("disabled"),n.success?(i.trigger("invited"),i.showMessage({message:n.message,type:"updated"})):s(ClefUtils.getErrorMessage(n))}}(this)).fail(function(e){return s(e.responseText)})},hideButton:function(){return this.$el.find(".button").hide()},render:function(){return this.$el.html(this.template)}}),this.InviteUsersView=i}.call(this,jQuery,Backbone),function(e){var t,i;return i=AjaxSettingsView.extend({el:"#multisite-settings",initialize:function(e){return this.modelClass=t,i.__super__.initialize.call(this,e)}}),t=AjaxSettingsModel.extend({parse:function(e,i){return i.url=ajaxurl+"?action=clef_multisite_settings",t.__super__.parse.call(this,e,i)}}),this.MultisiteOptionsModel=t,this.MultisiteOptionsView=i}.call(this,jQuery),function(e,t){var i,s,n,r;return r=t.View.extend({el:e("#clef-tutorial"),messageTemplate:_.template("
<%=message%>
"),events:{"click .next":"next","click .previous":"previous","click .done":"done"},slideClass:"sub",initialize:function(t){var i,s,r,o;for(this.opts=t,this.subs=[],i=this.$el.find("."+this.slideClass).filter(this.opts.slideFilterSelector),r=0,o=i.length;o>r;r++)s=i[r],this.subs.push(new n({el:s}));return this.currentSub=this.subs[0],e(window).on("message",this.handleMessages.bind(this)),this.hide(),this.render()},slideUp:function(e){return this.$el.slideUp(e)},hide:function(e){return this.$el.hide(e)},show:function(){return this.$el.fadeIn()},render:function(){return this.currentSub.render()},done:function(){return this.trigger("done")},next:function(){var e;return e=this.subs[_.indexOf(this.subs,this.currentSub)+1],e?(e.isLogin()&&this.loggedIn&&(e=this.subs[_.indexOf(this.subs,this.newSub)+1]),this.currentSub.hide(),e.render(),this.currentSub=e,this.trigger("next")):this.done()},previous:function(){var e;return e=this.subs[_.indexOf(this.subs,this.currentSub)-1],e?(this.currentSub.hide(),e.render(),this.currentSub=e):void 0},handleMessages:function(e){var t;if(e.originalEvent.origin.indexOf(this.opts.clefBase)>=0)return t=e.originalEvent.data,"string"==typeof t&&(t=JSON.parse(t)),t},connectClefAccount:function(t,i){var s,n;return s={_wpnonce:this.opts.nonces.connectClef,identifier:t.identifier,state:t.state},n=function(e){return function(t){return e.showMessage({message:_.template(clefTranslations.messages.error.connect)({error:t}),type:"error"})}}(this),e.post(this.connectClefAction,s).success(function(e){return e.success?"function"==typeof i?i(e):void 0:n(ClefUtils.getErrorMessage(e))}).fail(function(e){return n(e.responseText)})},showMessage:function(t){return this.$currentMessage&&this.$currentMessage.remove(),this.$currentMessage=e(this.messageTemplate(t)).hide().prependTo(this.$el).slideDown(),t.removeNext?this.listenToOnce(this,"next",function(){return this.$currentMessage.slideUp()}):void 0}},{extend:t.View.extend}),n=t.View.extend({initialize:function(t){return this.opts=t,this.setElement(e(this.opts.el))},render:function(){return this.$el.show()},hide:function(){return this.$el.hide()},remove:function(){return this.$el.remove()},find:function(e){return this.$el.find(e)},isLogin:function(){return this.$el.find("iframe.setup").length},isSync:function(){return this.$el.hasClass("sync")&&this.$el.find("iframe").length}}),s=r.extend({connectClefAction:ajaxurl+"?action=connect_clef_account_clef_id",iframePath:"/iframes/application/create/v2",initialize:function(e){return e.slideFilterSelector=".setup",this.inviter=new InviteUsersView(_.extend({el:this.$el.find(".invite-users-container")},e)),this.listenTo(this.inviter,"invited",this.usersInvited),this.constructor.__super__.initialize.call(this,e),this.on("next",this.shouldLoadIFrame)},render:function(){return this.inviter.render(),this.constructor.__super__.render.call(this)},shouldLoadIFrame:function(){return this.currentSub.isSync()?this.loadIFrame(function(e){return function(){return e.currentSub.find(".spinner-container").hide(),e.iframe.fadeIn()}}(this)):void 0},loadIFrame:function(e){var t,i;if(!this.iframe)return this.iframe=this.$el.find("iframe.setup"),t=encodeURIComponent(this.opts.setup.affiliates.join(",")),i=""+this.opts.clefBase+this.iframePath+"?source="+encodeURIComponent(this.opts.setup.source)+"&domain="+encodeURIComponent(this.opts.setup.siteDomain)+"&logout_hook="+encodeURIComponent(this.opts.setup.logoutHook)+"&name="+encodeURIComponent(this.opts.setup.siteName)+"&affiliates="+t,this.iframe.attr("src",i),this.iframe.on("load",e)},handleMessages:function(e){return(e=this.constructor.__super__.handleMessages.call(this,e))?"keys"===e.type?this.connectClefAccount({identifier:e.clefID},function(t){return function(){return t.trigger("applicationCreated",e),t.next(),t.showMessage({message:clefTranslations.messages.success.connect,type:"updated",removeNext:!0})}}(this)):"error"===e.type?this.showMessage({message:_.template(clefTranslations.messages.error.create)({error:e.message}),type:"error"}):void 0:void 0},onConfigured:function(){return setTimeout(function(){return e(".logout-hook-error").slideDown()},2e4)},usersInvited:function(){return this.inviter.hideButton(),setTimeout(function(e){return function(){return e.currentSub.$el.hasClass("invite")?e.currentSub.$el.find(".button").addClass("button-primary"):void 0}}(this),1e3)}}),i=r.extend({connectClefAction:ajaxurl+"?action=connect_clef_account_oauth_code",render:function(){return this.addButton(),this.constructor.__super__.render.call(this)},addButton:function(){var t,i;if(!this.button)return t=window.location.href,t+=/\?/.test(t)?"&connect_clef_account=1":"?connect_clef_account=1",i=e("#clef-button-target").attr("data-app-id",this.opts.appID).attr("data-redirect-url",t).attr("data-state",this.opts.state),this.button=new ClefButton({el:e("#clef-button-target")[0]}),this.button.render()}}),this.TutorialView=r,this.SetupTutorialView=s,this.ConnectTutorialView=i}.call(this,jQuery,Backbone),function(e){var t,i,s,n;return t=Backbone.View.extend({el:e("#clef-settings-container"),initialize:function(e){return this.opts=e,this.$msgContainer=this.$el.find(".message"),this.settings=new n(_.extend({options_name:"wpclef"},this.opts)),this.settings.hide(),this.settings.isConfigured()||(this.tutorial=new SetupTutorialView(_.extend({},this.opts)),this.tutorial.hide(),this.listenTo(this.tutorial,"message",this.displayMessage)),this.opts.isNetworkSettings&&(delete this.opts.formSelector,this.multisiteOptionsView=new MultisiteOptionsView(this.opts)),this.listenTo(this.settings,"message",this.displayMessage),this.render()},render:function(){return(this.opts.isUsingIndividualSettings||this.opts.isNetworkSettings&&this.opts.isNetworkSettingsEnabled)&&(this.multisiteOptionsView&&this.multisiteOptionsView.show(),this.settings.isConfigured()?this.settings.show():(this.tutorial.show(),this.listenToOnce(this.tutorial,"applicationCreated",this.configure),this.listenToOnce(this.tutorial,"done",this.hideTutorial))),this.$el.fadeIn()},configure:function(e){return this.settings.model.configure(e),this.settings.render()},displayMessage:function(e){return this.$msgContainer.find("p").text(e.message),this.$msgContainer.addClass(e.type).slideDown(),e.fade?setTimeout(function(){return this.$msgContainer.slideUp()},3e3):void 0},hideTutorial:function(){return this.settings.isConfigured()&&this.displayMessage(clefTranslations.messages.success.configured),this.tutorial.slideUp(),this.settings.show()}}),n=AjaxSettingsView.extend({errorTemplate:_.template("
<%=message%>
"),genericErrorMessage:clefTranslations.messages.error.generic,addEvents:{"click .generate-override":"generateOverride","click input[type='submit']:not(.ajax-ignore)":"saveForm","click a.show-support-html":"showSupportHTML"},constructor:function(e){return this.events=_.extend(this.events,this.addEvents),n.__super__.constructor.call(this,e)},initialize:function(e){return this.opts=e,this.modelClass=s,n.__super__.initialize.call(this,e),this.pro=new ClefProView(e,this.model),this.inviteUsersView=new InviteUsersView(e),this.formView=new i({model:this.model}),this.xmlEl=this.model.cFindInput("clef_password_settings_xml_allowed").parents(".input-container"),this.overrideContainer=this.$el.find(".override-settings"),this.setOverrideLink(),this.badgePreviewContainer=this.$el.find(".support-settings .ftr-preview"),this.listenTo(this.model,"change",this.clearErrors),this.listenTo(this.model,"error",this.error),window.onbeforeunload=function(e){return function(t){return e.isSaving()?clefTranslations.messages.saving:void 0}}(this),this.render()},updated:function(e,t){return n.__super__.updated.call(this,e,t),this.setOverrideLink()},render:function(){var t;return n.__super__.render.call(this),t=this.model.passwordsDisabled(),e("#clef-settings-header").show(),this.xmlEl.toggle(t),this.toggleOverrideContainer(t),this.overrideContainer.toggleClass("set",this.model.overrideIsSet()),this.inviteUsersView.render(),this.renderSupportBadge()},toggleInputs:function(e){return this.formView.toggleForm(!!parseInt(e.currentTarget.value))},toggleOverrideContainer:function(e){return this.overrideContainer.toggle(e)},generateOverride:function(){var e;return e=Math.random().toString(36).slice(2),this.model.save({"wpclef[clef_override_settings_key]":e})},setOverrideLink:function(){var e,t;return(t=this.model.overrideKey())?(this.overrideBase||(this.overrideBase=this.overrideContainer.find("label").text()),e=this.overrideContainer.find("a.button"),e.on("click",function(e){return e.preventDefault()}),e.attr("href",this.overrideBase+t)):void 0},isSaving:function(){return this.model.saving},renderSupportBadge:function(){var e;return e=this.model.badgeSetting(),this.badgePreviewContainer.toggle("disabled"!==e),this.badgePreviewContainer.find("a").toggleClass("pretty","badge"===e)},isConfigured:function(){return this.model.isConfigured()},saveForm:function(t){return t.preventDefault(),this.model.save({},{success:function(t){return function(){return t.trigger("message",{message:"Settings saved.",type:"updated"}),e("html, body").animate({scrollTop:0},"slow")}}(this),error:this.model.saveError.bind(this.model)})},showSupportHTML:function(t){return t.preventDefault(),e(".support-html-container").slideDown()}}),s=AjaxSettingsModel.extend({cFindInput:function(e){return this.findInput("wpclef["+e+"]")},cget:function(e){return this.get("wpclef["+e+"]")},passwordsDisabled:function(){return!!parseInt(this.cget("clef_password_settings_disable_passwords"))||""!==this.cget("clef_password_settings_disable_certain_passwords")||this.passwordsFullyDisabled()},passwordsFullyDisabled:function(){return!!parseInt(this.cget("clef_password_settings_force"))},loginIsEmbedded:function(){return!!parseInt(this.cget("clef_form_settings_embed_clef"))},overrideIsSet:function(){return!!this.overrideKey()},overrideKey:function(){return this.cget("clef_override_settings_key")},badgeSetting:function(){return this.cget("support_clef_badge").toLowerCase()},isConfigured:function(){return!(!this.cget("clef_settings_app_id")||!this.cget("clef_settings_app_secret"))},configure:function(e){var t,i,s,n;if(i={"wpclef[clef_settings_app_id]":e.appID,"wpclef[clef_settings_app_secret]":e.appSecret},e.configuration){n=e.configuration;for(t in n)s=n[t],i["wpclef["+t+"]"]=s}return this.save(i)}}),i=Backbone.View.extend({el:e("#login-form-view"),template:function(){return _.template(e("#form-template").html())},initialize:function(e){return this.opts=e,this.model=this.opts.model,this.listenTo(this.model,"change",this.toggleForm),this.render()},render:function(){return this.$el.html(this.template),this.$el.find('input[type="submit"]').on("click",function(e){return e.preventDefault()}),this.toggleForm()},toggleForm:function(e){return this.$el.toggleClass("only-clef",this.model.passwordsFullyDisabled()),this.$el.toggleClass("embed-clef",this.model.loginIsEmbedded())}}),this.AppView=t,e.fn.serializeObject=function(t){var i,s,n,r,o;for(s={},o=e(this).serializeArray(),n=0,r=o.length;r>n;n++)i=o[n],s[i.name]=i.value;return s}}.call(this,jQuery),function(e,t){var i;return i=t.View.extend({el:"#connect-clef-account",events:{"click #disconnect":"disconnectClefAccount"},disconnectURL:ajaxurl+"?action=disconnect_clef_account",messageTemplate:_.template("
<%=message%>
"),initialize:function(e){return this.opts=e,this.tutorial=new ConnectTutorialView(_.clone(this.opts)),this.disconnect=this.$el.find(".disconnect-clef"),this.listenTo(this.tutorial,"done",this.finishTutorial),this.render()},show:function(){return this.$el.fadeIn()},render:function(){return this.tutorial.render(),this.opts.connected?(this.tutorial.slideUp(),this.disconnect.show()):(this.disconnect.hide(),this.tutorial.show())},disconnectClefAccount:function(t){var i;return t.preventDefault(),i=function(e){return function(t){return e.showMessage({message:_.template(clefTranslations.messages.error.disconnect)({error:t}),type:"error"})}}(this),e.post(this.disconnectURL,{_wpnonce:this.opts.nonces.disconnectClef}).success(function(e){return function(t){var s;return t.success?(e.opts.connected=!1,e.render(),s=clefTranslations.messages.success.disconnect,e.showMessage({message:s,type:"updated"})):i(ClefUtils.getErrorMessage(t))}}(this)).fail(function(e){return i(e.responseText)})},showMessage:function(t){return this.message&&this.message.remove(),this.message=e(this.messageTemplate(t)).hide(),this.message.prependTo(this.$el).slideDown()},finishTutorial:function(){return window.location=""}}),window.ConnectView=i}.call(this,jQuery,Backbone);var __indexOf=[].indexOf||function(e){for(var t=0,i=this.length;i>t;t++)if(t in this&&this[t]===e)return t;return-1};(function(e,t){var i,s;return s=t.View.extend({el:"#clef-pro-section",getServicesURL:ajaxurl+"?action=clef_get_pro_services",subViews:[],initialize:function(t,s){return this.opts=t,this.model=s,e.getJSON(this.getServicesURL,{_wpnonce:this.opts.nonces.getProServices}).success(function(e){return function(t){return e.servicesAvailable=t,__indexOf.call(e.servicesAvailable,"customize")>=0&&(e.customizer=new i(e.opts,e.model),e.subViews.push(e.customizer)),e.render()}}(this)).fail(function(e){return console.log(e.responseText)})},render:function(){var e,t,i,s;for(s=this.subViews,t=0,i=s.length;i>t;t++)e=s[t],e.render();return this.$el.show()}}),i=t.View.extend({el:"#clef-pro-customization",events:{"click #clef-custom-logo-upload":"openMediaUploader","click #clef-custom-logo-clear":"clearLogo","change input, change textarea":"render","keyup textarea":"render"},initialize:function(t,i){return this.opts=t,this.model=i,this.preview=_.template(e("#clef-customization-template").html())},render:function(){return this.$el.find("#custom-login-view").html(this.preview({image:this.image(),message:this.message()})),this.$el.find("#clef-custom-logo-clear").toggle(!!this.image()),this.$el.show()},openMediaUploader:function(){return this.uploader?void this.uploader.open():(this.uploader=wp.media.frames.file_frame=wp.media({title:"Choose an image",button:{text:"Choose an image"},multiple:!1}),this.uploader.on("select",function(e){return function(){var t;return t=e.uploader.state().get("selection").first().toJSON(),e.model.save({"wpclef[customization_logo]":t.url}),e.render()}}(this)),this.uploader.open())},clearLogo:function(){return this.model.save({"wpclef[customization_logo]":""}),this.render()},image:function(){return this.model.cget("customization_logo")},message:function(){return this.$el.find("textarea").val()}}),window.ClefProView=s}).call(this,jQuery,Backbone); \ No newline at end of file diff --git a/assets/src/coffee/settings/invite.coffee b/assets/src/coffee/settings/invite.coffee index 8825e56..c62b487 100644 --- a/assets/src/coffee/settings/invite.coffee +++ b/assets/src/coffee/settings/invite.coffee @@ -10,7 +10,8 @@ showMessage: (data) -> $messageEl = @$el.find('.invite-users-message') $messageEl.remove() if $messageEl.length - @$el.find('.button').first().before(@messageTemplate(data)) + @$el.find('.invite-role-button') .first() + .before(@messageTemplate(data)) template: -> _.template($('#invite-users-template').html()) initialize: (@opts) -> @@ -20,12 +21,16 @@ inviteUsersAction: ajaxurl + "?action=clef_invite_users" inviteUsers: (e) -> e.preventDefault() + + $(e.target).attr('disabled', 'disabled') + data = _wpnonce: @opts.nonces.inviteUsers roles: $("select[name='invite-users-role']").val() networkAdmin: @opts.isNetworkSettings failure = (msg) => + $(e.target).removeAttr('disabled') @showMessage message: _.template( clefTranslations.messages.error.invite @@ -34,10 +39,11 @@ $.post @inviteUsersAction, data .success (data) => + $(e.target).removeAttr('disabled') if data.success @trigger "invited" @showMessage - message: clefTranslations.messages.success.invite + message: data.message type:"updated" else failure ClefUtils.getErrorMessage data diff --git a/assets/src/img/invite.png b/assets/src/img/invite.png new file mode 100644 index 0000000000000000000000000000000000000000..c2f34897f542b789e4526ecde8f7eb9915ef16fe GIT binary patch literal 31777 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
~zQxC5R1Vmvr8ywd(S^fo6qtb!;zoDHPjyn2Si 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 $_REQUEST['users'])); if (empty($users)) { - return new WP_Error('no_users', __("No users were invited to use Clef.")); + return new WP_Error('no_users', __("No users were invited to use Clef.", "wpclef")); } try { @@ -401,7 +401,7 @@ public function handle_invite_bulk_action () { add_settings_error( CLEF_OPTIONS_NAME, "clef_invite_error", - sprintf(__("There was an error inviting users to Clef: %s"), $e->getMessage()), + sprintf(__("There was an error inviting users to Clef: %s", "wpclef"), $e->getMessage()), "error" ); unset($_GET['_wp_http_referer']); @@ -412,10 +412,11 @@ public function handle_invite_bulk_action () { public function handle_invite_bulk_action_admin_notices() { if (isset($_GET['clef_invite_success'])) { + $num_invited = (int) $_GET['clef_invite_success']; add_settings_error( CLEF_OPTIONS_NAME, "clef_invite_success", - sprintf(__("%d users successfully invited to Clef."), (int) $_GET['clef_invite_success']), + sprintf(__("%d %s successfully invited to Clef.", "wpclef"), $num_invited, _n("user", "users", $num_invited)), "updated" ); } @@ -451,8 +452,9 @@ public function ajax_invite_users() { } try { - ClefInvite::invite_users($users, $is_network_admin); - return array("success" => true); + ClefInvite::invite_users($filtered_users, $is_network_admin); + $num_invited = count($filtered_users); + return array("success" => true, "message" => sprintf(__("%d %s successfully invited to Clef.", "wpclef"), $num_invited, _n("user", "users", $num_invited))); } catch (Exception $e) { return new WP_Error('clef_email_error', $e->getMessage()); } diff --git a/includes/class.clef-translation.php b/includes/class.clef-translation.php index b43f1c8..c85d495 100644 --- a/includes/class.clef-translation.php +++ b/includes/class.clef-translation.php @@ -20,7 +20,6 @@ public static function javascript() { "success" => array( "connect" => __("You've successfully connected your account with Clef", "wpclef"), "configured" => __("You're all set up!", "wpclef"), - "invite" => __("Email invitations have been sent to your users.", "wpclef"), "disconnect" => __("Successfully disconnected Clef account.", "wpclef") ), "saving" => __("Settings are being saved. Are you sure you want to navigate away?", "wpclef") diff --git a/templates/js-templates/invite.tpl.php b/templates/js-templates/invite.tpl.php index 643f92b..345e119 100644 --- a/templates/js-templates/invite.tpl.php +++ b/templates/js-templates/invite.tpl.php @@ -1,10 +1,21 @@ \ No newline at end of file +