diff --git a/wire/modules/Jquery/JqueryUI/vex/styles/vex-theme-default.css b/wire/modules/Jquery/JqueryUI/vex/styles/vex-theme-default.css
index 67ea2b51..c5558f8b 100644
--- a/wire/modules/Jquery/JqueryUI/vex/styles/vex-theme-default.css
+++ b/wire/modules/Jquery/JqueryUI/vex/styles/vex-theme-default.css
@@ -351,11 +351,26 @@
top: -1.1em;
bottom: auto; }
-.AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input textarea:focus, .AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="date"]:focus, .AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="datetime"]:focus, .AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="datetime-local"]:focus, .AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="email"]:focus, .AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="month"]:focus, .AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="number"]:focus, .AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="password"]:focus, .AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="search"]:focus, .AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="tel"]:focus, .AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="text"]:focus, .AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="time"]:focus, .AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="url"]:focus, .AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="week"]:focus {
+.AdminThemeUikit .vex.vex-theme-default .vex-dialog-form .vex-dialog-input textarea:focus, .AdminThemeUikit .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="date"]:focus, .AdminThemeUikit .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="datetime"]:focus, .AdminThemeUikit .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="datetime-local"]:focus, .AdminThemeUikit .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="email"]:focus, .AdminThemeUikit .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="month"]:focus, .AdminThemeUikit .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="number"]:focus, .AdminThemeUikit .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="password"]:focus, .AdminThemeUikit .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="search"]:focus, .AdminThemeUikit .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="tel"]:focus, .AdminThemeUikit .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="text"]:focus, .AdminThemeUikit .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="time"]:focus, .AdminThemeUikit .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="url"]:focus, .AdminThemeUikit .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="week"]:focus,
+.AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input textarea:focus,
+.AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="date"]:focus,
+.AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="datetime"]:focus,
+.AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="datetime-local"]:focus,
+.AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="email"]:focus,
+.AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="month"]:focus,
+.AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="number"]:focus,
+.AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="password"]:focus,
+.AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="search"]:focus,
+.AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="tel"]:focus,
+.AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="text"]:focus,
+.AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="time"]:focus,
+.AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="url"]:focus,
+.AdminThemeReno .vex.vex-theme-default .vex-dialog-form .vex-dialog-input input[type="week"]:focus {
-moz-box-shadow: inset 0 0 0 2px #86d7c1;
-webkit-box-shadow: inset 0 0 0 2px #86d7c1;
box-shadow: inset 0 0 0 2px #86d7c1; }
+.AdminThemeUikit .vex.vex-theme-default .vex-dialog-button.vex-dialog-button-primary,
.AdminThemeReno .vex.vex-theme-default .vex-dialog-button.vex-dialog-button-primary {
- background: #3eb998; }
+ background: #3eb998;
+ font-weight: normal; }
-/*# sourceMappingURL=vex-theme-default.css.map */
diff --git a/wire/modules/Jquery/JqueryUI/vex/styles/vex-theme-default.sass b/wire/modules/Jquery/JqueryUI/vex/styles/vex-theme-default.sass
index 1a45cab7..f54432b2 100755
--- a/wire/modules/Jquery/JqueryUI/vex/styles/vex-theme-default.sass
+++ b/wire/modules/Jquery/JqueryUI/vex/styles/vex-theme-default.sass
@@ -129,7 +129,8 @@ $reno-green: #3eb998 // RJC
border-top-color: #bbb
top: -1.1em
bottom: auto
-
+
+.AdminThemeUikit,
.AdminThemeReno
.vex.vex-theme-default
.vex-dialog-form
@@ -141,4 +142,5 @@ $reno-green: #3eb998 // RJC
.vex-dialog-button
&.vex-dialog-button-primary
background: $reno-green // RJC
+ font-weight: normal // RJC
diff --git a/wire/modules/Process/ProcessProfile/ProcessProfile.js b/wire/modules/Process/ProcessProfile/ProcessProfile.js
index 8a5a5115..e3244a5b 100644
--- a/wire/modules/Process/ProcessProfile/ProcessProfile.js
+++ b/wire/modules/Process/ProcessProfile/ProcessProfile.js
@@ -12,17 +12,37 @@ $(document).ready(function() {
}
$("form#ProcessProfile").submit(function() {
+ var $form = $(this);
var $inputfields = $(".InputfieldStateChanged.InputfieldPassRequired");
if(!$inputfields.length) return;
var $pass = $('#_old_pass');
if($pass.val().length) return;
- var $passWrap = $pass.closest('.InputfieldPassword');
- if($passWrap.hasClass('InputfieldStateCollapsed')) {
- setTimeout(function() {
- $passWrap.find('.InputfieldHeader').click();
- }, 200);
+
+ var pwAlert = ProcessWire.config.ProcessProfile.passRequiredAlert;
+ if(pwAlert.length && typeof vex != "undefined") {
+ // use vex to display dialog box where they can enter password
+ vex.dialog.open({
+ message: pwAlert,
+ input: "",
+ callback: function(data) {
+ if(!data) return;
+ var val = $('#_old_pass_confirm').val();
+ if(val.length) {
+ $pass.val(val);
+ setTimeout(function() { $('#submit_save_profile').click(); }, 200);
+ }
+ }
+ });
+ } else {
+ // reveal the password field then focus it
+ var $passWrap = $pass.closest('.InputfieldPassword');
+ if($passWrap.hasClass('InputfieldStateCollapsed')) {
+ setTimeout(function() {
+ $passWrap.find('.InputfieldHeader').click();
+ }, 200);
+ }
+ setTimeout(function() { $pass.focus(); }, 400);
}
- setTimeout(function() { $pass.focus(); }, 400);
return false;
});
});
\ No newline at end of file
diff --git a/wire/modules/Process/ProcessProfile/ProcessProfile.min.js b/wire/modules/Process/ProcessProfile/ProcessProfile.min.js
index 2b784526..548eceb2 100644
--- a/wire/modules/Process/ProcessProfile/ProcessProfile.min.js
+++ b/wire/modules/Process/ProcessProfile/ProcessProfile.min.js
@@ -1 +1 @@
-$(document).ready(function(){if($(".FieldtypePassword[autocomplete='off']").length){setTimeout(function(){$(".FieldtypePassword[autocomplete='off']").attr("value","").closest(".Inputfield").removeClass("InputfieldStateChanged")},1000)}$("form#ProcessProfile").submit(function(){var b=$(".InputfieldStateChanged.InputfieldPassRequired");if(!b.length){return}var a=$("#_old_pass");if(a.val().length){return}var c=a.closest(".InputfieldPassword");if(c.hasClass("InputfieldStateCollapsed")){setTimeout(function(){c.find(".InputfieldHeader").click()},200)}setTimeout(function(){a.focus()},400);return false})});
\ No newline at end of file
+$(document).ready(function(){if($(".FieldtypePassword[autocomplete='off']").length){setTimeout(function(){$(".FieldtypePassword[autocomplete='off']").attr("value","").closest(".Inputfield").removeClass("InputfieldStateChanged")},1000)}$("form#ProcessProfile").submit(function(){var b=$(this);var c=$(".InputfieldStateChanged.InputfieldPassRequired");if(!c.length){return}var a=$("#_old_pass");if(a.val().length){return}var d=ProcessWire.config.ProcessProfile.passRequiredAlert;if(d.length&&typeof vex!="undefined"){vex.dialog.open({message:d,input:"",callback:function(f){if(!f){return}var g=$("#_old_pass_confirm").val();if(g.length){a.val(g);setTimeout(function(){$("#submit_save_profile").click()},200)}}})}else{var e=a.closest(".InputfieldPassword");if(e.hasClass("InputfieldStateCollapsed")){setTimeout(function(){e.find(".InputfieldHeader").click()},200)}setTimeout(function(){a.focus()},400)}return false})});
\ No newline at end of file
diff --git a/wire/modules/Process/ProcessProfile/ProcessProfile.module b/wire/modules/Process/ProcessProfile/ProcessProfile.module
index 5b58bf22..b27f379e 100644
--- a/wire/modules/Process/ProcessProfile/ProcessProfile.module
+++ b/wire/modules/Process/ProcessProfile/ProcessProfile.module
@@ -18,7 +18,7 @@ class ProcessProfile extends Process implements ConfigurableModule, WirePageEdit
return array(
'title' => __('User Profile', __FILE__), // getModuleInfo title
'summary' => __('Enables user to change their password, email address and other settings that you define.', __FILE__), // getModuleInfo summary
- 'version' => 103,
+ 'version' => 104,
'permanent' => true,
'permission' => 'profile-edit',
);
@@ -118,7 +118,10 @@ class ProcessProfile extends Process implements ConfigurableModule, WirePageEdit
$passRequired = false;
// Inputfields where password is required to change
$passRequiredInputfields = array();
- $passRequiredNote = $this->_('To change this field, you must also enter your current password in the “Set Password” field.');
+ $this->wire('config')->js('ProcessProfile', array(
+ 'passRequiredAlert' => $this->_('For security, please enter your current password to save these changes:')
+ ));
+ $this->wire('modules')->get('JqueryUI')->use('vex');
if(in_array('name', $this->profileFields) && empty($fieldName)) {
/** @var InputfieldText $f */
@@ -194,7 +197,7 @@ class ProcessProfile extends Process implements ConfigurableModule, WirePageEdit
foreach($passRequiredInputfields as $f) {
$f->addClass('InputfieldPassRequired', 'wrapClass');
$this->passRequiredNames[$f->name] = $f->name;
- $f->notes = ($f->notes ? "$f->notes\n" : "") . $passRequiredNote;
+ // $f->notes = ($f->notes ? "$f->notes\n" : "") . $passRequiredNote;
}
}
diff --git a/wire/modules/System/SystemUpdater/SystemUpdate12.php b/wire/modules/System/SystemUpdater/SystemUpdate12.php
index 225ded0d..581cc47a 100644
--- a/wire/modules/System/SystemUpdater/SystemUpdate12.php
+++ b/wire/modules/System/SystemUpdater/SystemUpdate12.php
@@ -10,9 +10,9 @@ class SystemUpdate12 extends SystemUpdate {
$query = $this->wire('database')->prepare("SHOW columns FROM `pages` LIKE 'published'");
$query->execute();
+ $result = true;
if($query->rowCount() == 0) {
- $result = true;
try {
$this->wire('database')->exec('ALTER TABLE pages ADD published datetime DEFAULT NULL AFTER `created_users_id`');