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();
|
||||
}
|