Merge pull request #5059 from benmanu/pulls/remove-tabstrip
Removing unused thirdparty dependency - tabstrip.
BIN
thirdparty/tabstrip/images/add.png
vendored
Before Width: | Height: | Size: 173 B |
BIN
thirdparty/tabstrip/images/images/add.png
vendored
Before Width: | Height: | Size: 173 B |
BIN
thirdparty/tabstrip/images/images/norm_a_bg.gif
vendored
Before Width: | Height: | Size: 831 B |
BIN
thirdparty/tabstrip/images/images/norm_li_bg.gif
vendored
Before Width: | Height: | Size: 227 B |
BIN
thirdparty/tabstrip/images/images/sel_a_bg.gif
vendored
Before Width: | Height: | Size: 469 B |
BIN
thirdparty/tabstrip/images/images/sel_li_bg.gif
vendored
Before Width: | Height: | Size: 184 B |
BIN
thirdparty/tabstrip/images/images/tab_bg.gif
vendored
Before Width: | Height: | Size: 43 B |
BIN
thirdparty/tabstrip/images/norm_a_bg.gif
vendored
Before Width: | Height: | Size: 831 B |
BIN
thirdparty/tabstrip/images/norm_li_bg.gif
vendored
Before Width: | Height: | Size: 227 B |
104
thirdparty/tabstrip/images/sapphire.tabs.css
vendored
@ -1,104 +0,0 @@
|
|||||||
/* Caution! Ensure accessibility in print and other media types... */
|
|
||||||
@media projection, screen { /* Use class for showing/hiding tab content, so that visibility can be better controlled in different media types... */
|
|
||||||
.ui-tabs-hide {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Hide useless elements in print layouts... */
|
|
||||||
@media print {
|
|
||||||
.ui-tabs-nav {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Skin */
|
|
||||||
.ui-tabs-nav {
|
|
||||||
list-style: none;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0 0 0 3px;
|
|
||||||
|
|
||||||
border-bottom: 1px #AAA solid;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0 !important;
|
|
||||||
clear: left;
|
|
||||||
float: left;
|
|
||||||
width: 100%;
|
|
||||||
/* Need this to stop tabs from disappearing sometimes */
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
.ui-tabs-nav:after { /* clearing without presentational markup, IE gets extra treatment */
|
|
||||||
display: block;
|
|
||||||
clear: both;
|
|
||||||
content: " ";
|
|
||||||
}
|
|
||||||
|
|
||||||
/* If I just say li I get into problems with ".ul-tabs-nav .ui-tabs-active" below */
|
|
||||||
.ui-tabs-nav li {
|
|
||||||
float: left;
|
|
||||||
list-style: none;
|
|
||||||
background: url(images/norm_li_bg.gif) no-repeat left 3px;
|
|
||||||
margin: 0 2px 0 0;
|
|
||||||
padding: 0 0 0 9px;
|
|
||||||
cursor: pointer;
|
|
||||||
position: relative;
|
|
||||||
top: 1px;
|
|
||||||
}
|
|
||||||
.ui-tabs-nav a, .ui-tabs-nav a span {
|
|
||||||
}
|
|
||||||
.ui-tabs-nav a {
|
|
||||||
background: url(images/norm_a_bg.gif) no-repeat right 3px;
|
|
||||||
display: block;
|
|
||||||
float: left;
|
|
||||||
outline: none;
|
|
||||||
padding: 7px 9px 3px 0;
|
|
||||||
text-decoration: none;
|
|
||||||
color: #555;
|
|
||||||
font-size: 11px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ui-tabs-nav li.ui-tabs-active {
|
|
||||||
background: url(images/sel_li_bg.gif) no-repeat left top;
|
|
||||||
top: 1px;
|
|
||||||
}
|
|
||||||
.ui-tabs-nav li.ui-tabs-active a {
|
|
||||||
background: url(images/sel_a_bg.gif) no-repeat right top;
|
|
||||||
padding: 6px 9px 5px 0;
|
|
||||||
color: #0074c6;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ui-tabs-nav .ui-tabs-active a:link, .ui-tabs-nav .ui-tabs-active a:visited,
|
|
||||||
.ui-tabs-nav .ui-tabs-disabled a:link, .ui-tabs-nav .ui-tabs-disabled a:visited { /* @ Opera, use pseudo classes otherwise it confuses cursor... */
|
|
||||||
cursor: text;
|
|
||||||
}
|
|
||||||
.ui-tabs-nav a:hover, .ui-tabs-nav a:focus, .ui-tabs-nav a:active,
|
|
||||||
.ui-tabs-nav .ui-tabs-unselect a:hover, .ui-tabs-nav .ui-tabs-unselect a:focus, .ui-tabs-nav .ui-tabs-unselect a:active { /* @ Opera, we need to be explicit again here now... */
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
.ui-tabs-disabled {
|
|
||||||
opacity: .4;
|
|
||||||
filter: alpha(opacity=40);
|
|
||||||
}
|
|
||||||
.ui-tabs-nav .ui-tabs-disabled a:link, .ui-tabs-nav .ui-tabs-disabled a:visited {
|
|
||||||
color: #000;
|
|
||||||
}
|
|
||||||
.ui-tabs-panel {
|
|
||||||
clear: left;
|
|
||||||
overflow: auto;
|
|
||||||
border: 1px solid #aaa;
|
|
||||||
border-top: none;
|
|
||||||
position: relative;
|
|
||||||
top: 0;
|
|
||||||
margin: 0;
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Additional IE specific bug fixes... */
|
|
||||||
* html .ui-tabs-nav { /* auto clear @ IE 6 & IE 7 Quirks Mode */
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
*:first-child+html .ui-tabs-nav { /* auto clear @ IE 7 Standards Mode - do not group selectors, otherwise IE 6 will ignore complete rule (because of the unknown + combinator)... */
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
BIN
thirdparty/tabstrip/images/sel_a_bg.gif
vendored
Before Width: | Height: | Size: 469 B |
BIN
thirdparty/tabstrip/images/sel_li_bg.gif
vendored
Before Width: | Height: | Size: 184 B |
BIN
thirdparty/tabstrip/images/tab_bg.gif
vendored
Before Width: | Height: | Size: 43 B |
70
thirdparty/tabstrip/tabstrip.css
vendored
@ -1,70 +0,0 @@
|
|||||||
/*
|
|
||||||
* tabstrip-default.css
|
|
||||||
* Default styling for tabstrips
|
|
||||||
* Designed to look like windows-xp tabs
|
|
||||||
*
|
|
||||||
* Modified by Sean Harvey, SilverStripe Ltd 02/11/2007
|
|
||||||
*/
|
|
||||||
|
|
||||||
ul.tabstrip {
|
|
||||||
border-bottom: 1px #AAA solid;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0 !important;
|
|
||||||
clear: left;
|
|
||||||
float: left;
|
|
||||||
width: 100%;
|
|
||||||
/* Need this to stop tabs from disappearing sometimes */
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
ul.tabstrip li {
|
|
||||||
float: left;
|
|
||||||
list-style: none;
|
|
||||||
background: url(images/norm_li_bg.gif) no-repeat left 3px;
|
|
||||||
margin: 0 2px 0 0;
|
|
||||||
padding: 0 0 0 9px;
|
|
||||||
cursor: pointer;
|
|
||||||
position: relative;
|
|
||||||
top: 1px;
|
|
||||||
}
|
|
||||||
ul.tabstrip li a {
|
|
||||||
background: url(images/norm_a_bg.gif) no-repeat right 3px;
|
|
||||||
display: block;
|
|
||||||
float: left;
|
|
||||||
outline: none;
|
|
||||||
padding: 7px 9px 3px 0;
|
|
||||||
text-decoration: none;
|
|
||||||
color: #555;
|
|
||||||
font-size: 11px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
ul.tabstrip li a:hover {
|
|
||||||
text-decoration: none;
|
|
||||||
color: #000;
|
|
||||||
}
|
|
||||||
ul.tabstrip li.current,
|
|
||||||
ul.tabstrip li.ui-tabs-active,
|
|
||||||
ul.tabstrip li.sel,
|
|
||||||
ul.tabstrip li.over {
|
|
||||||
background: url(images/sel_li_bg.gif) no-repeat left top;
|
|
||||||
top: 1px;
|
|
||||||
}
|
|
||||||
ul.tabstrip li.current a,
|
|
||||||
ul.tabstrip li.ui-tabs-active a,
|
|
||||||
ul.tabstrip li.sel a,
|
|
||||||
ul.tabstrip li.over a {
|
|
||||||
background: url(images/sel_a_bg.gif) no-repeat right top;
|
|
||||||
padding: 6px 9px 5px 0;
|
|
||||||
color: #0074c6;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tab {
|
|
||||||
clear: left;
|
|
||||||
overflow: auto;
|
|
||||||
border: 1px solid #aaa;
|
|
||||||
border-top: none;
|
|
||||||
position: relative;
|
|
||||||
top: 0;
|
|
||||||
margin: 0;
|
|
||||||
padding: 10px;
|
|
||||||
background-color: #FFFFFF;
|
|
||||||
}
|
|
306
thirdparty/tabstrip/tabstrip.js
vendored
@ -1,306 +0,0 @@
|
|||||||
var _CUR_TABS = [];
|
|
||||||
var _TABS_ON_PAGE = [];
|
|
||||||
var _TAB_DIVS_ON_PAGE = [];
|
|
||||||
|
|
||||||
Behaviour.register({
|
|
||||||
'ul.tabstrip': {
|
|
||||||
initialize: function() {
|
|
||||||
initTabstrip(this);
|
|
||||||
if(window.ontabschanged) window.ontabschanged();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
function initTabstrip(tabstrip, namedAnchors) {
|
|
||||||
var i, anchor, container, anchorName, li;
|
|
||||||
var childAnchors = tabstrip.getElementsByTagName('a');
|
|
||||||
var base, curTab = null, curURL = window.location.href;
|
|
||||||
var previousTab = null;
|
|
||||||
var firstTab, foundATab = false;
|
|
||||||
|
|
||||||
// Strip query string from current URL
|
|
||||||
var curQuery = window.location.search;
|
|
||||||
|
|
||||||
// Detect a current tab from the # link
|
|
||||||
if(curURL.indexOf('#') == -1) {
|
|
||||||
base = curURL.length - curQuery.length;
|
|
||||||
} else {
|
|
||||||
base = curURL.indexOf('#') - curQuery.length;
|
|
||||||
curTab = curURL.substr(curURL.indexOf('#')+1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get a stored current tab, used when Ajax-switching between pages
|
|
||||||
if(_CUR_TABS[tabstrip.parentNode.id] && $(_CUR_TABS[tabstrip.parentNode.id]) ) {
|
|
||||||
curTab = _CUR_TABS[tabstrip.parentNode.id];
|
|
||||||
|
|
||||||
} else {
|
|
||||||
// Default to showing the first tab
|
|
||||||
for(i=0;i<childAnchors.length;i++) {
|
|
||||||
var child = childAnchors[i];
|
|
||||||
|
|
||||||
var anchorPos = child.href.indexOf('#');
|
|
||||||
|
|
||||||
if(anchorPos != -1) {
|
|
||||||
anchorName = child.href.substr(anchorPos+1);
|
|
||||||
if(firstTab == null) firstTab = anchorName;
|
|
||||||
if(anchorName == curTab) foundATab = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(!foundATab) curTab = firstTab;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
_CUR_TABS[tabstrip.parentNode.id] = curTab;
|
|
||||||
|
|
||||||
|
|
||||||
for(i=0;i<childAnchors.length;i++) {
|
|
||||||
// Detect an anchor reference
|
|
||||||
|
|
||||||
var anchorBase = childAnchors[i].href.indexOf('#');
|
|
||||||
|
|
||||||
// if(childAnchors[i].href.substr(base,1) == '#') {
|
|
||||||
|
|
||||||
if( anchorBase != -1 ) {
|
|
||||||
anchorName = childAnchors[i].href.substr(anchorBase+1);
|
|
||||||
li = childAnchors[i].parentNode;
|
|
||||||
container = document.getElementById(anchorName);
|
|
||||||
|
|
||||||
if(container) tabstrip_initTab(childAnchors[i], anchorName, tabstrip, container);
|
|
||||||
// else throw("Cannot find ID: " + anchorName);
|
|
||||||
|
|
||||||
// Hook up previousTab / nextTab suppoort
|
|
||||||
if(previousTab) {
|
|
||||||
previousTab.nextTab = li;
|
|
||||||
li.previousTab = previousTab;
|
|
||||||
}
|
|
||||||
previousTab = li;
|
|
||||||
|
|
||||||
// Default to showing the first tab
|
|
||||||
// if(curTab == null && anchorName) curTab = anchorName;
|
|
||||||
|
|
||||||
// Show current tab
|
|
||||||
if(curTab && anchorName == curTab) {
|
|
||||||
tabstrip.currentlyShowing = li;
|
|
||||||
addClass(li, 'current');
|
|
||||||
if(container) {
|
|
||||||
container.style.display = '';
|
|
||||||
|
|
||||||
/*
|
|
||||||
// Show any parent tab that might be lurking about
|
|
||||||
var p = container.parentNode;
|
|
||||||
while(p.tagName.toLowerCase() != 'body') {
|
|
||||||
if(p.ownerTab) p.ownerTab.onclick('init');
|
|
||||||
p = p.parentNode;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if(container) container.style.display = 'none';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// store the tabs in the window for window.ontabschanged
|
|
||||||
if($('Form_EditForm')) {
|
|
||||||
var divs = $('Form_EditForm').getElementsByTagName('div');
|
|
||||||
} else {
|
|
||||||
var divs = document.getElementsBySelector('form div');
|
|
||||||
}
|
|
||||||
for(i=0;i<divs.length;i++) {
|
|
||||||
if( ( Element.hasClassName(divs[i],'tab') || Element.hasClassName(divs[i],'tabset') ) ) {
|
|
||||||
_TAB_DIVS_ON_PAGE.push(divs[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Add nextTab() and previousTab() functions to the tabstrip
|
|
||||||
tabstrip.openNextTab = tabstrip_openNextTab;
|
|
||||||
tabstrip.openPreviousTab = tabstrip_openPreviousTab;
|
|
||||||
|
|
||||||
// Hook this into the destroyer, to prevent memory leaks
|
|
||||||
if(Class && Class.registerForDestruction) {
|
|
||||||
tabstrip.destroy = tabstrip_destroy;
|
|
||||||
Class.registerForDestruction(tabstrip);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function tabstrip_destroy() {
|
|
||||||
this.currentlyShowing = null;
|
|
||||||
|
|
||||||
_CUR_TABS = null;
|
|
||||||
|
|
||||||
var childAnchors = this.getElementsByTagName('a');
|
|
||||||
var i,a,li;
|
|
||||||
for(i=0;a=childAnchors[i];i++) {
|
|
||||||
a.onclick = null;
|
|
||||||
|
|
||||||
li = a.parentNode;
|
|
||||||
li.onclick = null;
|
|
||||||
li.onmouseover = null;
|
|
||||||
li.onmouseout = null;
|
|
||||||
li.tabstrip = null;
|
|
||||||
li.previousTab = null;
|
|
||||||
li.nextTab = null;
|
|
||||||
|
|
||||||
if(li.container) {
|
|
||||||
li.container.ownerTab = null;
|
|
||||||
li.container = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function tabstrip_initTab(a, anchorName, tabstrip, container) {
|
|
||||||
// Hook up information / events
|
|
||||||
a.onclick = tabstrip_showTab;
|
|
||||||
a.onclick = a.onclick.bindAsEventListener(a);
|
|
||||||
|
|
||||||
a.openTab = tabstrip_showTab;
|
|
||||||
|
|
||||||
|
|
||||||
li = a.parentNode;
|
|
||||||
li.container = container;
|
|
||||||
li.anchorName = anchorName;
|
|
||||||
li.tabstrip = tabstrip;
|
|
||||||
li.onclick = li.openTab = tabstrip_showTab;
|
|
||||||
li.onmouseover = tabstrip_mouseOver;
|
|
||||||
li.onmouseout = tabstrip_mouseOut;
|
|
||||||
_TABS_ON_PAGE[anchorName] = li;
|
|
||||||
container.ownerTab = li;
|
|
||||||
}
|
|
||||||
|
|
||||||
function openTab( anchorName ) {
|
|
||||||
|
|
||||||
if( typeof anchorName != 'string' )
|
|
||||||
return;
|
|
||||||
|
|
||||||
var tabNames = anchorName.split( 'set' );
|
|
||||||
|
|
||||||
|
|
||||||
if( tabNames.length > 1 )
|
|
||||||
anchorName = tabNames.shift() + 'set';
|
|
||||||
while( anchorName ) {
|
|
||||||
if( _TABS_ON_PAGE[anchorName] ) _TABS_ON_PAGE[anchorName].openTab( _TABS_ON_PAGE[anchorName].getElementsByTagName('a')[0] );
|
|
||||||
|
|
||||||
if( tabNames.length == 0 )
|
|
||||||
anchorName = null;
|
|
||||||
else {
|
|
||||||
anchorName = anchorName + tabNames.shift() + 'set';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Returns the form object that the given element is
|
|
||||||
* inside; or null if it's not inside a form
|
|
||||||
*/
|
|
||||||
function findParentForm(el) {
|
|
||||||
var ownerForm = el.parentNode, tn;
|
|
||||||
while((tn = ownerForm.tagName.toLowerCase()) != "body" && tn != "form") {
|
|
||||||
ownerForm = ownerForm.parentNode;
|
|
||||||
}
|
|
||||||
if(tn == "form") return ownerForm;
|
|
||||||
else return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function tabstrip_showTab(evt) {
|
|
||||||
if(this.tagName.toLowerCase() == "a") var el = this.parentNode;
|
|
||||||
else el = this;
|
|
||||||
|
|
||||||
_CUR_TABS[el.tabstrip.parentNode.id] = el.container.id;
|
|
||||||
|
|
||||||
if(el.tabstrip.currentlyShowing && el.tabstrip.currentlyShowing.container && el.tabstrip.currentlyShowing != el) {
|
|
||||||
el.tabstrip.currentlyShowing.container.style.display = 'none';
|
|
||||||
removeClass(el.tabstrip.currentlyShowing.container, 'current');
|
|
||||||
removeClass(el.tabstrip.currentlyShowing, 'current');
|
|
||||||
}
|
|
||||||
|
|
||||||
var container = document.getElementById( el.container.id );
|
|
||||||
|
|
||||||
if( container && container.style.display == 'none' ) {
|
|
||||||
container.style.display = 'block';
|
|
||||||
addClass( container, 'current' );
|
|
||||||
}
|
|
||||||
|
|
||||||
// el.container.style.display = '';
|
|
||||||
addClass(el, 'current');
|
|
||||||
|
|
||||||
el.tabstrip.currentlyShowing = el;
|
|
||||||
|
|
||||||
setHashLink(el.anchorName);
|
|
||||||
|
|
||||||
if(evt != 'init') {
|
|
||||||
if(window.ontabschanged) window.ontabschanged();
|
|
||||||
else if(window.onresize) window.onresize();
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Redirect to the given hash link
|
|
||||||
* It won't actually reload the page, but it will update the current URL
|
|
||||||
*/
|
|
||||||
function setHashLink(hashLink) {
|
|
||||||
return; //temporarily disabled this
|
|
||||||
|
|
||||||
var preserveScroll = preserveScrollPosition(hashLink);
|
|
||||||
|
|
||||||
// Mac/IE5 cannot handle this
|
|
||||||
if(navigator.userAgent.indexOf("Mac") > -1 && navigator.userAgent.indexOf("MSIE") > -1)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if(window.location.href.indexOf('#') == -1)
|
|
||||||
window.location.href += '#' + hashLink;
|
|
||||||
else
|
|
||||||
window.location.href = window.location.href.replace(/#.*$/, '#' + hashLink);
|
|
||||||
|
|
||||||
if(typeof preserveScroll != 'undefined')
|
|
||||||
restoreScrollPosition(preserveScroll);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Preserve the scroll position prior to visiting the given hashlink.
|
|
||||||
* Returns an object that you can pass to restoreScrollPosition
|
|
||||||
*/
|
|
||||||
function preserveScrollPosition(hashLink) {
|
|
||||||
var el = document.getElementById(hashLink);
|
|
||||||
var preserved = [];
|
|
||||||
while(el) {
|
|
||||||
preserved[preserved.length] = el;
|
|
||||||
el.oldScroll = el.scrollTop;
|
|
||||||
|
|
||||||
if(el.tagName && el.tagName.toLowerCase() == "body") break;
|
|
||||||
el = el.parentNode;
|
|
||||||
}
|
|
||||||
return preserved;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Restores the preserved scroll position
|
|
||||||
*/
|
|
||||||
function restoreScrollPosition(preserved) {
|
|
||||||
var i;
|
|
||||||
for(i=0;i<preserved.length;i++) {
|
|
||||||
preserved[i].scrollTop = preserved[i].oldScroll;
|
|
||||||
delete preserved[i].oldScroll;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function tabstrip_mouseOver() {
|
|
||||||
if(self.addClass) addClass(this, 'over');
|
|
||||||
}
|
|
||||||
|
|
||||||
function tabstrip_mouseOut() {
|
|
||||||
if(self.removeClass) removeClass(this, 'over');
|
|
||||||
}
|
|
||||||
|
|
||||||
function tabstrip_openNextTab() {
|
|
||||||
if(this.currentlyShowing && this.currentlyShowing.nextTab)
|
|
||||||
this.currentlyShowing.nextTab.onclick();
|
|
||||||
}
|
|
||||||
function tabstrip_openPreviousTab() {
|
|
||||||
if(this.currentlyShowing && this.currentlyShowing.previousTab)
|
|
||||||
this.currentlyShowing.previousTab.onclick();
|
|
||||||
}
|
|