mirror of
https://github.com/silverstripe/silverstripe-subsites
synced 2024-10-22 11:05:55 +02:00
ENH Prepare correct js/css structure to use webpack
This commit is contained in:
parent
cf57f69b82
commit
f397ab352b
136
client/dist/js/LeftAndMain_Subsites.js
vendored
Normal file
136
client/dist/js/LeftAndMain_Subsites.js
vendored
Normal file
@ -0,0 +1,136 @@
|
||||
/* jslint browser: true, nomen: true */
|
||||
/* global $, window, jQuery */
|
||||
(function ($) {
|
||||
// eslint-disable-next-line no-shadow
|
||||
$.entwine('ss', ($) => {
|
||||
$('#SubsitesSelect').entwine({
|
||||
onadd() {
|
||||
this.on('change', function () {
|
||||
window.location.search = $.query.set('SubsiteID', $(this).val());
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
* Reload subsites dropdown when links are processed
|
||||
*/
|
||||
$('.cms-container .cms-menu-list li a').entwine({
|
||||
onclick(e) {
|
||||
$('.cms-container').loadFragment('admin/subsite_xhr', 'SubsiteList');
|
||||
this._super(e);
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
* Reload subsites dropdown when the admin area reloads (for deleting sites)
|
||||
*/
|
||||
$('.cms-container .SubsiteAdmin .cms-edit-form fieldset.ss-gridfield').entwine({
|
||||
onreload(e) {
|
||||
$('.cms-container').loadFragment('admin/subsite_xhr', 'SubsiteList');
|
||||
this._super(e);
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
* Reload subsites dropdown when subsites are added or names are modified
|
||||
*/
|
||||
$('.cms-container .tab.subsite-model').entwine({
|
||||
onadd(e) {
|
||||
$('.cms-container').loadFragment('admin/subsite_xhr', 'SubsiteList');
|
||||
this._super(e);
|
||||
}
|
||||
});
|
||||
|
||||
// Subsite tab of Group editor
|
||||
$('#Form_ItemEditForm_AccessAllSubsites').entwine({
|
||||
/**
|
||||
* Constructor: onmatch
|
||||
*/
|
||||
onmatch() {
|
||||
this.showHideSubsiteList();
|
||||
|
||||
const ref = this;
|
||||
$('#Form_ItemEditForm_AccessAllSubsites input').change(() => {
|
||||
ref.showHideSubsiteList();
|
||||
});
|
||||
},
|
||||
|
||||
showHideSubsiteList() {
|
||||
$('#Form_ItemEditForm_Subsites').parent().parent().css('display', ($('#Form_ItemEditForm_AccessAllSubsites_1').is(':checked') ? 'none' : ''));
|
||||
}
|
||||
});
|
||||
|
||||
$('.cms-edit-form').entwine({
|
||||
/**
|
||||
* TODO: Fix with Entwine API extension. See https://github.com/silverstripe/silverstripe-subsites/pull/125
|
||||
*/
|
||||
getChangeTrackerOptions() {
|
||||
// Figure out if we're still returning the default value
|
||||
const isDefault = (this.entwineData('ChangeTrackerOptions') === undefined);
|
||||
// Get the current options
|
||||
let opts = this._super();
|
||||
|
||||
if (isDefault) {
|
||||
// If it is the default then...
|
||||
// clone the object (so we don't modify the original),
|
||||
opts = $.extend({}, opts);
|
||||
// modify it,
|
||||
opts.ignoreFieldSelector += ', input[name=IsSubsite]';
|
||||
// then set the clone as the value on this element
|
||||
// (so next call to this method gets this same clone)
|
||||
this.setChangeTrackerOptions(opts);
|
||||
}
|
||||
|
||||
return opts;
|
||||
}
|
||||
});
|
||||
|
||||
$('.cms-edit-form input[name=action_copytosubsite]').entwine({
|
||||
onclick(e) {
|
||||
const form = this.closest('form');
|
||||
form.trigger('submit', [this]);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// eslint-disable-next-line no-shadow
|
||||
$.entwine('ss.preview', ($) => {
|
||||
$('.cms-preview').entwine({
|
||||
|
||||
/**
|
||||
* Update links and forms with GET/POST SubsiteID param, so we remaing on the current subsite.
|
||||
* The initial link for the iframe comes from SiteTreeSubsites::updatePreviewLink.
|
||||
*
|
||||
* This is done so we can use the CMS domain for displaying previews so we prevent single-origin
|
||||
* violations and SSL cert problems that come up when iframing content from a different URL.
|
||||
*/
|
||||
onafterIframeAdjustedForPreview(event, doc) {
|
||||
const subsiteId = $(doc).find('meta[name=x-subsite-id]').attr('content');
|
||||
|
||||
if (!subsiteId) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Inject the SubsiteID into internal links.
|
||||
$(doc).find('a').each(function () {
|
||||
const href = $(this).attr('href');
|
||||
|
||||
if (typeof href !== 'undefined' && !href.match(/^http:\/\//)) {
|
||||
$(this).attr('href', $.path.addSearchParams(href, {
|
||||
SubsiteID: subsiteId
|
||||
}));
|
||||
}
|
||||
});
|
||||
|
||||
// Inject the SubsiteID as a hidden input into all forms submitting to the local site.
|
||||
$(doc).find('form').each(function () {
|
||||
const action = $(this).attr('action');
|
||||
|
||||
if (typeof action !== 'undefined' && !action.match(/^http:\/\//)) {
|
||||
$(this).append(`<input type=hidden name="SubsiteID" value="${subsiteId}" >`);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}(jQuery));
|
36
client/dist/js/SubsitesTreeDropdownField.js
vendored
Normal file
36
client/dist/js/SubsitesTreeDropdownField.js
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
/* global jQuery */
|
||||
(function ($) {
|
||||
// eslint-disable-next-line no-shadow
|
||||
$.entwine('ss', ($) => {
|
||||
/**
|
||||
* Choose a subsite from which to select pages.
|
||||
* Needs to clear tree dropdowns in case selection is changed.
|
||||
*/
|
||||
$('select.subsitestreedropdownfield-chooser').entwine({
|
||||
onchange() {
|
||||
// TODO Data binding between two fields
|
||||
const name = this.attr('name').replace('_SubsiteID', '');
|
||||
const field = $(`#Form_EditForm_${name}`).first();
|
||||
field.setValue(0);
|
||||
field.refresh();
|
||||
field.trigger('change');
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Add selected subsite from separate dropdown to the request parameters
|
||||
* before asking for the tree.
|
||||
*/
|
||||
$('.TreeDropdownField.SubsitesTreeDropdownField').entwine({
|
||||
getAttributes() {
|
||||
const fieldName = this.attr('id').replace('Form_EditForm_', '');
|
||||
const subsiteID = $(`#Form_EditForm_${fieldName}_SubsiteID option:selected`).val();
|
||||
|
||||
const attributes = this._super();
|
||||
attributes.data.urlTree += `?${fieldName}_SubsiteID=${subsiteID}`;
|
||||
attributes.data.cacheKey = `${attributes.data.cacheKey.substring(0, 19)}_${subsiteID}`;
|
||||
return attributes;
|
||||
}
|
||||
});
|
||||
});
|
||||
}(jQuery));
|
@ -1,141 +0,0 @@
|
||||
/*jslint browser: true, nomen: true*/
|
||||
/*global $, window, jQuery*/
|
||||
(function($) {
|
||||
'use strict';
|
||||
$.entwine('ss', function($) {
|
||||
|
||||
$('#SubsitesSelect').entwine({
|
||||
onadd:function(){
|
||||
this.on('change', function(){
|
||||
window.location.search=$.query.set('SubsiteID', $(this).val());
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
* Reload subsites dropdown when links are processed
|
||||
*/
|
||||
$('.cms-container .cms-menu-list li a').entwine({
|
||||
onclick: function(e) {
|
||||
$('.cms-container').loadFragment('admin/subsite_xhr', 'SubsiteList');
|
||||
this._super(e);
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
* Reload subsites dropdown when the admin area reloads (for deleting sites)
|
||||
*/
|
||||
$('.cms-container .SubsiteAdmin .cms-edit-form fieldset.ss-gridfield').entwine({
|
||||
onreload: function(e) {
|
||||
$('.cms-container').loadFragment('admin/subsite_xhr', 'SubsiteList');
|
||||
this._super(e);
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
* Reload subsites dropdown when subsites are added or names are modified
|
||||
*/
|
||||
$('.cms-container .tab.subsite-model').entwine({
|
||||
onadd: function(e) {
|
||||
$('.cms-container').loadFragment('admin/subsite_xhr', 'SubsiteList');
|
||||
this._super(e);
|
||||
}
|
||||
});
|
||||
|
||||
// Subsite tab of Group editor
|
||||
$('#Form_ItemEditForm_AccessAllSubsites').entwine({
|
||||
/**
|
||||
* Constructor: onmatch
|
||||
*/
|
||||
onmatch: function () {
|
||||
this.showHideSubsiteList();
|
||||
|
||||
var ref=this;
|
||||
$('#Form_ItemEditForm_AccessAllSubsites input').change(function() {
|
||||
ref.showHideSubsiteList();
|
||||
});
|
||||
},
|
||||
|
||||
showHideSubsiteList: function () {
|
||||
$('#Form_ItemEditForm_Subsites').parent().parent().css('display', ($('#Form_ItemEditForm_AccessAllSubsites_1').is(':checked') ? 'none':''));
|
||||
}
|
||||
});
|
||||
|
||||
$('.cms-edit-form').entwine({
|
||||
/**
|
||||
* TODO: Fix with Entwine API extension. See https://github.com/silverstripe/silverstripe-subsites/pull/125
|
||||
*/
|
||||
getChangeTrackerOptions: function() {
|
||||
// Figure out if we're still returning the default value
|
||||
var isDefault = (this.entwineData('ChangeTrackerOptions') === undefined);
|
||||
// Get the current options
|
||||
var opts = this._super();
|
||||
|
||||
if (isDefault) {
|
||||
// If it is the default then...
|
||||
// clone the object (so we don't modify the original),
|
||||
var opts = $.extend({}, opts);
|
||||
// modify it,
|
||||
opts.ignoreFieldSelector +=', input[name=IsSubsite]';
|
||||
// then set the clone as the value on this element
|
||||
// (so next call to this method gets this same clone)
|
||||
this.setChangeTrackerOptions(opts);
|
||||
}
|
||||
|
||||
return opts;
|
||||
}
|
||||
});
|
||||
|
||||
$('.cms-edit-form input[name=action_copytosubsite]').entwine({
|
||||
onclick: function(e) {
|
||||
var form = this.closest('form');
|
||||
form.trigger('submit', [this]);
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
$.entwine('ss.preview', function($){
|
||||
|
||||
$('.cms-preview').entwine({
|
||||
|
||||
/**
|
||||
* Update links and forms with GET/POST SubsiteID param, so we remaing on the current subsite.
|
||||
* The initial link for the iframe comes from SiteTreeSubsites::updatePreviewLink.
|
||||
*
|
||||
* This is done so we can use the CMS domain for displaying previews so we prevent single-origin
|
||||
* violations and SSL cert problems that come up when iframing content from a different URL.
|
||||
*/
|
||||
onafterIframeAdjustedForPreview: function(event, doc) {
|
||||
var subsiteId = $(doc).find('meta[name=x-subsite-id]').attr('content');
|
||||
|
||||
if (!subsiteId) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Inject the SubsiteID into internal links.
|
||||
$(doc).find('a').each(function() {
|
||||
var href = $(this).attr('href');
|
||||
|
||||
if (typeof href!=='undefined' && !href.match(/^http:\/\//)) {
|
||||
|
||||
$(this).attr('href', $.path.addSearchParams(href, {
|
||||
'SubsiteID': subsiteId
|
||||
}));
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
// Inject the SubsiteID as a hidden input into all forms submitting to the local site.
|
||||
$(doc).find('form').each(function() {
|
||||
var action = $(this).attr('action');
|
||||
|
||||
if (typeof action!=='undefined' && !action.match(/^http:\/\//)) {
|
||||
$(this).append('<input type=hidden name="SubsiteID" value="' + subsiteId + '" >');
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}(jQuery));
|
@ -1,34 +0,0 @@
|
||||
(function($) {
|
||||
$.entwine('ss', function($) {
|
||||
/**
|
||||
* Choose a subsite from which to select pages.
|
||||
* Needs to clear tree dropdowns in case selection is changed.
|
||||
*/
|
||||
$('select.subsitestreedropdownfield-chooser').entwine({
|
||||
onchange: function() {
|
||||
// TODO Data binding between two fields
|
||||
const name = this.attr('name').replace('_SubsiteID', '');
|
||||
let field = $('#Form_EditForm_' + name).first();
|
||||
field.setValue(0);
|
||||
field.refresh();
|
||||
field.trigger('change');
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Add selected subsite from separate dropdown to the request parameters
|
||||
* before asking for the tree.
|
||||
*/
|
||||
$('.TreeDropdownField.SubsitesTreeDropdownField').entwine({
|
||||
getAttributes() {
|
||||
const fieldName = this.attr('id').replace('Form_EditForm_', '');
|
||||
const subsiteID = $('#Form_EditForm_' + fieldName + '_SubsiteID option:selected').val();
|
||||
|
||||
let attributes = this._super();
|
||||
attributes.data.urlTree += "?" + fieldName + "_SubsiteID=" + subsiteID;
|
||||
attributes.data.cacheKey = attributes.data.cacheKey.substring(0, 19) + "_" + subsiteID;
|
||||
return attributes;
|
||||
}
|
||||
});
|
||||
});
|
||||
})(jQuery);
|
@ -41,9 +41,8 @@ class LeftAndMainSubsites extends LeftAndMainExtension
|
||||
|
||||
public function init()
|
||||
{
|
||||
Requirements::css('silverstripe/subsites:client/css/LeftAndMain_Subsites.css');
|
||||
Requirements::javascript('silverstripe/subsites:client/javascript/LeftAndMain_Subsites.js');
|
||||
Requirements::javascript('silverstripe/subsites:client/javascript/VirtualPage_Subsites.js');
|
||||
Requirements::css('silverstripe/subsites:client/dist/styles/LeftAndMain_Subsites.css');
|
||||
Requirements::javascript('silverstripe/subsites:client/dist/js/LeftAndMain_Subsites.js');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -150,7 +149,7 @@ class LeftAndMainSubsites extends LeftAndMainExtension
|
||||
return false;
|
||||
}
|
||||
|
||||
Requirements::javascript('silverstripe/subsites:client/javascript/LeftAndMain_Subsites.js');
|
||||
Requirements::javascript('silverstripe/subsites:client/dist/js/LeftAndMain_Subsites.js');
|
||||
|
||||
$output = ArrayList::create();
|
||||
|
||||
|
@ -37,7 +37,7 @@ class SubsitesTreeDropdownField extends TreeDropdownField
|
||||
{
|
||||
$html = parent::Field($properties);
|
||||
|
||||
Requirements::javascript('silverstripe/subsites:client/javascript/SubsitesTreeDropdownField.js');
|
||||
Requirements::javascript('silverstripe/subsites:client/dist/js/SubsitesTreeDropdownField.js');
|
||||
|
||||
return $html;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user