mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
ee5b4fd8d3
Introducing <Tabs> component based on react-bootstrap Better support for nested fields in FormBuilder Tweaks to get FormBuilder working with frameworktest BasicFieldsPage fields Added exception in FormBuilder when Component is defined but not found Added check in SingleSelectField for empty value before adding one in Added temporary workaround for CompositeFields with no name (another story to address the actual problem) Added asset_preview_height for File image preview, matches the defined CSS max-height Added documentation to DBFile::PreviewLink() method
89 lines
1.9 KiB
JavaScript
89 lines
1.9 KiB
JavaScript
(function (global, factory) {
|
|
if (typeof define === "function" && define.amd) {
|
|
define('ss.TabSet', ['jQuery'], factory);
|
|
} else if (typeof exports !== "undefined") {
|
|
factory(require('jQuery'));
|
|
} else {
|
|
var mod = {
|
|
exports: {}
|
|
};
|
|
factory(global.jQuery);
|
|
global.ssTabSet = mod.exports;
|
|
}
|
|
})(this, function (_jQuery) {
|
|
'use strict';
|
|
|
|
var _jQuery2 = _interopRequireDefault(_jQuery);
|
|
|
|
function _interopRequireDefault(obj) {
|
|
return obj && obj.__esModule ? obj : {
|
|
default: obj
|
|
};
|
|
}
|
|
|
|
_jQuery2.default.entwine('ss', function ($) {
|
|
$('.ss-tabset').entwine({
|
|
IgnoreTabState: false,
|
|
|
|
onadd: function onadd() {
|
|
var hash = window.location.hash;
|
|
|
|
this.redrawTabs();
|
|
|
|
if (hash !== '') {
|
|
this.openTabFromURL(hash);
|
|
}
|
|
|
|
this._super();
|
|
},
|
|
|
|
onremove: function onremove() {
|
|
if (this.data('tabs')) this.tabs('destroy');
|
|
this._super();
|
|
},
|
|
|
|
redrawTabs: function redrawTabs() {
|
|
this.rewriteHashlinks();
|
|
this.tabs();
|
|
},
|
|
|
|
openTabFromURL: function openTabFromURL(hash) {
|
|
var $trigger;
|
|
|
|
$.each(this.find('.cms-panel-link'), function () {
|
|
if (this.href.indexOf(hash) !== -1 && $(hash).length === 1) {
|
|
$trigger = $(this);
|
|
return false;
|
|
}
|
|
});
|
|
|
|
if ($trigger === void 0) {
|
|
return;
|
|
}
|
|
|
|
$(window).one('ajaxComplete', function () {
|
|
$trigger.click();
|
|
});
|
|
},
|
|
|
|
rewriteHashlinks: function rewriteHashlinks() {
|
|
$(this).find('ul a').each(function () {
|
|
if (!$(this).attr('href')) return;
|
|
|
|
var matches = $(this).attr('href').match(/#.*/);
|
|
if (!matches) return;
|
|
$(this).attr('href', document.location.href.replace(/#.*/, '') + matches[0]);
|
|
});
|
|
}
|
|
});
|
|
|
|
$('.ui-tabs-active .ui-tabs-anchor').entwine({
|
|
onmatch: function onmatch() {
|
|
this.addClass('nav-link active');
|
|
},
|
|
onunmatch: function onunmatch() {
|
|
this.removeClass('active');
|
|
}
|
|
});
|
|
});
|
|
}); |