silverstripe-framework/client/dist/js/TabSet.js
Ingo Schommer 19de22f427 API Moved frontend assets into admin/client/
admin/javascript => admin/client
admin/javascript/src => admin/client/src/legacy (mostly)
admin/scss/_variables.scss => admin/client/styles/_variables.scss
admin/scss => admin/client/styles/legacy/
admin/css/editor.css => admin/client/dist/css/editor.css
admin/css/screen.css => admin/client/dist/css/bundle.css
admin/images => admin/client/dist/images
admin/images/sprites/src => admin/client/src/sprites
admin/images/sprites/dist => admin/client/dist/sprites
admin/font => admin/client/dist/font
2016-04-20 21:13:10 +12:00

80 lines
1.7 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]);
});
}
});
});
});