1
0
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:
Ryan Cramer
2018-06-12 07:43:55 -04:00
parent 738c2db3c5
commit a465fab672
7 changed files with 44 additions and 17 deletions

View File

@@ -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
};

File diff suppressed because one or more lines are too long

View File

@@ -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 */

View File

@@ -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

View File

@@ -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>" .

View File

@@ -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 {