mirror of
https://github.com/processwire/processwire.git
synced 2025-08-09 16:26:59 +02:00
Several fixes and impovements to PageFrontEdit per processwire/processwire-issues#609. Plus, this commit also improves PageFrontEdit usage with AdminThemeUikit, and improves behavior of multi-language fields.
This commit is contained in:
@@ -166,6 +166,7 @@ function pwModalWindow(href, options, size) {
|
||||
}
|
||||
var $iframe = jQuery('<iframe class="pw-modal-window" frameborder="0" src="' + url + '"></iframe>');
|
||||
$iframe.attr('id', 'pw-modal-window-' + (pwModalWindows.length+1));
|
||||
pwModalWindows[pwModalWindows.length] = $iframe;
|
||||
|
||||
if(typeof size == "undefined" || size.length == 0) var size = 'large';
|
||||
var settings = pwModalWindowSettings(size);
|
||||
@@ -261,11 +262,11 @@ function pwModalOpenEvent(e) {
|
||||
|
||||
var settings = {
|
||||
title: $a.attr('title'),
|
||||
close: function(event, ui) {
|
||||
close: function(e, ui) {
|
||||
// abort is true when the "x" button at top right of window is what closed the window
|
||||
var abort = typeof event.toElement != "undefined" && jQuery(event.toElement).hasClass('fa-times');
|
||||
var abort = typeof e.originalEvent != "undefined" && jQuery(e.originalEvent.target).closest('.ui-dialog-titlebar-close').length > 0;
|
||||
var eventData = {
|
||||
event: event,
|
||||
event: e,
|
||||
ui: ui,
|
||||
abort: abort
|
||||
};
|
||||
|
2
wire/modules/Jquery/JqueryUI/modal.min.js
vendored
2
wire/modules/Jquery/JqueryUI/modal.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -208,7 +208,7 @@ button.ui-button.ui-state-active,
|
||||
background: #E4EBEE;
|
||||
border: none;
|
||||
margin-top: -8px;
|
||||
padding: 1px 8px 1px 8px; }
|
||||
padding: 8px 8px 1px 8px; }
|
||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
|
||||
float: right; }
|
||||
.ui-dialog .ui-dialog-buttonpane button {
|
||||
@@ -262,26 +262,36 @@ button.ui-button.ui-state-active,
|
||||
opacity: 0;
|
||||
filter: Alpha(Opacity=0); }
|
||||
|
||||
/*** AdminThemeReno jQuery UI ************************************************/
|
||||
/*** AdminThemeReno or Uikit jQuery UI ************************************************/
|
||||
.pw-AdminThemeUikit .ui-dialog .ui-dialog-titlebar,
|
||||
.pw-AdminThemeReno .ui-dialog .ui-dialog-titlebar {
|
||||
background: #2a3c51; }
|
||||
.pw-AdminThemeUikit .ui-dialog .ui-dialog-titlebar .ui-button,
|
||||
.pw-AdminThemeReno .ui-dialog .ui-dialog-titlebar .ui-button {
|
||||
background: none;
|
||||
border: none; }
|
||||
.pw-AdminThemeUikit .ui-dialog .ui-dialog-buttonpane,
|
||||
.pw-AdminThemeReno .ui-dialog .ui-dialog-buttonpane {
|
||||
margin-top: -5px; }
|
||||
margin-top: -5px;
|
||||
padding-top: 6px; }
|
||||
.pw-AdminThemeUikit .ui-dialog .ui-dialog-title,
|
||||
.pw-AdminThemeReno .ui-dialog .ui-dialog-title {
|
||||
padding: 5px 10px;
|
||||
font-weight: normal;
|
||||
color: #FFF;
|
||||
font-size: 1.2em; }
|
||||
.pw-AdminThemeUikit .ui-dialog .ui-dialog-titlebar-close,
|
||||
.pw-AdminThemeReno .ui-dialog .ui-dialog-titlebar-close {
|
||||
right: 15px;
|
||||
background: none;
|
||||
border: none;
|
||||
color: #FFF; }
|
||||
.pw-AdminThemeUikit .ui-widget-overlay,
|
||||
.pw-AdminThemeReno .ui-widget-overlay {
|
||||
background: #1C2836; }
|
||||
.pw-AdminThemeUikit .ui-button,
|
||||
.pw-AdminThemeUikit button.ui-button.ui-state-default,
|
||||
.pw-AdminThemeUikit .ui-button.ui-state-default,
|
||||
.pw-AdminThemeReno .ui-button,
|
||||
.pw-AdminThemeReno button.ui-button.ui-state-default,
|
||||
.pw-AdminThemeReno .ui-button.ui-state-default {
|
||||
@@ -292,20 +302,29 @@ button.ui-button.ui-state-active,
|
||||
border: 1px solid #3eb998;
|
||||
border-radius: 3px;
|
||||
transition: all 120ms ease-in; }
|
||||
.pw-AdminThemeReno .ui-button-text, .pw-AdminThemeReno .ui-button-text-only .ui-button-text {
|
||||
.pw-AdminThemeUikit .ui-button-text, .pw-AdminThemeUikit .ui-button-text-only .ui-button-text,
|
||||
.pw-AdminThemeReno .ui-button-text,
|
||||
.pw-AdminThemeReno .ui-button-text-only .ui-button-text {
|
||||
padding: 0.6em 1.1em;
|
||||
font-size: 1em; }
|
||||
.pw-AdminThemeUikit button.ui-button.ui-priority-secondary,
|
||||
.pw-AdminThemeUikit .ui-button.ui-priority-secondary,
|
||||
.pw-AdminThemeReno button.ui-button.ui-priority-secondary,
|
||||
.pw-AdminThemeReno .ui-button.ui-priority-secondary {
|
||||
background: #4d6c76;
|
||||
border: 1px solid #4d6c76;
|
||||
color: #fff; }
|
||||
.pw-AdminThemeUikit button.ui-button.ui-priority-secondary:hover,
|
||||
.pw-AdminThemeUikit .ui-button.ui-priority-secondary:hover,
|
||||
.pw-AdminThemeReno button.ui-button.ui-priority-secondary:hover,
|
||||
.pw-AdminThemeReno .ui-button.ui-priority-secondary:hover {
|
||||
color: #fff;
|
||||
border: 1px solid #3eb998;
|
||||
background: #3eb998;
|
||||
cursor: pointer; }
|
||||
.pw-AdminThemeUikit .ui-button:hover,
|
||||
.pw-AdminThemeUikit button.ui-button.ui-state-hover,
|
||||
.pw-AdminThemeUikit .ui-button.ui-state-hover,
|
||||
.pw-AdminThemeReno .ui-button:hover,
|
||||
.pw-AdminThemeReno button.ui-button.ui-state-hover,
|
||||
.pw-AdminThemeReno .ui-button.ui-state-hover {
|
||||
@@ -313,6 +332,8 @@ button.ui-button.ui-state-active,
|
||||
background: #e83561;
|
||||
border: 1px solid #e83561;
|
||||
text-decoration: none; }
|
||||
.pw-AdminThemeUikit .ui-button.ui-state-hover.ui-state-active,
|
||||
.pw-AdminThemeUikit .ui-button.ui-state-hover.ui-priority-secondary.ui-state-active,
|
||||
.pw-AdminThemeReno .ui-button.ui-state-hover.ui-state-active,
|
||||
.pw-AdminThemeReno .ui-button.ui-state-hover.ui-priority-secondary.ui-state-active {
|
||||
background: #e83561;
|
||||
@@ -370,5 +391,3 @@ body.pw-AdminThemeDefault .pw-edit-cancel {
|
||||
body.pw-AdminThemeDefault .pw-edit-cancel:hover {
|
||||
background-color: #d80e1c;
|
||||
border-color: #d80e1c; }
|
||||
|
||||
/*# sourceMappingURL=PageFrontEdit.css.map */
|
||||
|
@@ -336,7 +336,7 @@ function PageFrontEditInit($) {
|
||||
$(document).on('pw-modal-closed', function(e, eventData) {
|
||||
if(eventData.abort) return; // modal.js populates 'abort' if "x" button was clicked
|
||||
var target = $(e.target);
|
||||
if(!target.is('.pw-edit-modal')) return;
|
||||
if(!target.hasClass('pw-edit-modal')) return;
|
||||
var targetID = target.attr('id');
|
||||
var viewURL = $('#pw-url').val();
|
||||
viewURL += (viewURL.indexOf('?') > -1 ? '&' : '?') + 'pw_edit_fields=' + target.attr('data-fields');
|
||||
|
File diff suppressed because one or more lines are too long
@@ -22,7 +22,7 @@ class PageFrontEdit extends WireData implements Module {
|
||||
return array(
|
||||
'title' => 'Front-End Page Editor',
|
||||
'summary' => 'Enables front-end editing of page fields.',
|
||||
'version' => 2,
|
||||
'version' => 3,
|
||||
'author' => 'Ryan Cramer',
|
||||
'license' => 'MPL 2.0',
|
||||
'icon' => 'cube',
|
||||
@@ -240,9 +240,13 @@ class PageFrontEdit extends WireData implements Module {
|
||||
$className = $field->type->className();
|
||||
$supported = false;
|
||||
foreach($this->inlineAllowFieldtypes as $allowClass) {
|
||||
if($allowClass == $className || in_array($allowClass, $classParents)) {
|
||||
if($allowClass == $className) {
|
||||
$supported = true;
|
||||
break;
|
||||
} else if(in_array($allowClass, $classParents)) {
|
||||
$test = $field->type->getBlankValue(new NullPage(), $field);
|
||||
if(!is_object($test)) $supported = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return $supported;
|
||||
@@ -806,6 +810,7 @@ class PageFrontEdit extends WireData implements Module {
|
||||
|
||||
$unformatted = $this->getUnformattedValue($page, $field);
|
||||
$this->inlineEditors[$field->name] = $field->name;
|
||||
$langID = $this->wire('languages') ? $this->wire('user')->language->id : 0;
|
||||
|
||||
// make sure we've got any initialization from the Inputfield
|
||||
$inputfield = $field->___getInputfield($page);
|
||||
@@ -820,7 +825,7 @@ class PageFrontEdit extends WireData implements Module {
|
||||
|
||||
return
|
||||
"<$tag id=pw-edit-$this->editorNum class='pw-edit pw-edit-$inputfield' data-name=$field->name " .
|
||||
"data-page=$page->id style='position:relative'>" .
|
||||
"data-page=$page->id data-lang='$langID' style='position:relative'>" .
|
||||
"<$tag class=pw-edit-orig>" .
|
||||
$formatted .
|
||||
"</$tag>" .
|
||||
|
@@ -281,7 +281,7 @@ button.ui-button.ui-state-active,
|
||||
background: $subtle-bg;
|
||||
border: none;
|
||||
margin-top: -8px;
|
||||
padding: 1px 8px 1px 8px;
|
||||
padding: 8px 8px 1px 8px;
|
||||
.ui-dialog-buttonset {
|
||||
float: right;
|
||||
}
|
||||
@@ -345,8 +345,9 @@ button.ui-button.ui-state-active,
|
||||
filter:Alpha(Opacity=0);
|
||||
}
|
||||
|
||||
/*** AdminThemeReno jQuery UI ************************************************/
|
||||
/*** AdminThemeReno or Uikit jQuery UI ************************************************/
|
||||
|
||||
.pw-AdminThemeUikit,
|
||||
.pw-AdminThemeReno {
|
||||
.ui-dialog {
|
||||
.ui-dialog-titlebar {
|
||||
@@ -359,6 +360,7 @@ button.ui-button.ui-state-active,
|
||||
|
||||
.ui-dialog-buttonpane {
|
||||
margin-top: -5px;
|
||||
padding-top: 6px;
|
||||
}
|
||||
|
||||
.ui-dialog-title {
|
||||
|
Reference in New Issue
Block a user