// (*) or an associative array with the following keys
// (*) 'method': 'POST' or 'GET' -- default is 'GET'
// (*) 'url': where to go
+// (*) 'confirm': a question to display before actually triggering
// (*) 'values': an associative array of (key,value) pairs to send to the URL; values are strings
-
function plc_tabs($array) {
print '<div id="minitabs_container">';
print '<ul id="miniflex">';
}
}
$class_value="minitabs-submit";
- printf('<input class="%s" value="%s" type=submit />',$class_value,$label);
+ if (! $todo['confirm'] ) {
+ printf('<input class="%s" value="%s" type=submit />',$class_value,$label);
+ } else {
+ /* printf('<input class="%s" value="%s" type=button onclick="miniTab.submit(\"%s\")" />',$class_value,$label,$todo['confirm']); */
+ printf('<input class="%s" value="%s" type=button onclick=\'miniTab.submit("%s");\' />',$class_value,$label,$todo['confirm']);
+ }
printf("</form></li>\n");
}
print '</ul>';
derived from the original idea of Stephen Clark (http://www.sgclark.com/sandbox/minislide/)
Adjusted by Thierry Parmentelat -- INRIA - uses only forms rather than <a> tags, for supporting http-POST
+
+ $Id$
*/
aHeight: 0,
ul: [],
liArr: [],
- aArr: [],
+ inputArr: [],
init: function() {
if(!document.getElementById || !document.getElementById("miniflex")) return;
miniTab.ul = document.getElementById("miniflex");
miniTab.liArr = miniTab.ul.getElementsByTagName("li");
// Thierry: the original impl. relied on <a> links rather than forms - we use ids
- miniTab.aArr = miniTab.ul.getElementsByClassName("minitabs-submit");
+ miniTab.inputArr = miniTab.ul.getElementsByClassName("minitabs-submit");
for(var i = 0, li; li = miniTab.liArr[i]; i++) {
- li.onmouseover = miniTab.aArr[i].onfocus = function(e) {
- window.console.log('onmouseover/onfocus');
+ li.onmouseover = miniTab.inputArr[i].onfocus = function(e) {
var pos = 0;
var elem = this.nodeName == "LI" ? this : this.parentNode;
while(elem.previousSibling) {
miniTab.setActive (miniTab.activeTab,false);
};
- for(var i = 0, a; a = miniTab.aArr[i]; i++) {
+ for(var i = 0, a; a = miniTab.inputArr[i]; i++) {
if(a.className.search("active") != -1) {
miniTab.activeTab = miniTab.currentTab = i;
}
miniTab.slideObj = miniTab.ul.parentNode.appendChild(document.createElement("div"));
miniTab.slideObj.appendChild(document.createTextNode(String.fromCharCode(160)));
miniTab.slideObj.id = "animated-tab";
- miniTab.slideObj.style.top = (miniTab.ul.offsetTop + miniTab.liArr[miniTab.activeTab].offsetTop + miniTab.aArr[miniTab.activeTab].offsetTop) + "px";
- miniTab.slideObj.style.left = (miniTab.ul.offsetLeft + miniTab.liArr[miniTab.activeTab].offsetLeft + miniTab.aArr[miniTab.activeTab].offsetLeft) + "px";
- miniTab.slideObj.style.width = miniTab.aArr[miniTab.activeTab].offsetWidth + "px";
- miniTab.aHeight = miniTab.ul.offsetTop + miniTab.liArr[miniTab.activeTab].offsetTop + miniTab.aArr[miniTab.activeTab].offsetTop;
+ miniTab.slideObj.style.top = (miniTab.ul.offsetTop + miniTab.liArr[miniTab.activeTab].offsetTop + miniTab.inputArr[miniTab.activeTab].offsetTop) + "px";
+ miniTab.slideObj.style.left = (miniTab.ul.offsetLeft + miniTab.liArr[miniTab.activeTab].offsetLeft + miniTab.inputArr[miniTab.activeTab].offsetLeft) + "px";
+ miniTab.slideObj.style.width = miniTab.inputArr[miniTab.activeTab].offsetWidth + "px";
+ miniTab.aHeight = miniTab.ul.offsetTop + miniTab.liArr[miniTab.activeTab].offsetTop + miniTab.inputArr[miniTab.activeTab].offsetTop;
miniTab.initSlide(miniTab.activeTab, true);
miniTab.bW = miniTab.slideObj.offsetWidth;
miniTab.cW = miniTab.destW - miniTab.bW;
- miniTab.slideObj.style.top = (miniTab.ul.offsetTop + miniTab.liArr[miniTab.activeTab].offsetTop + miniTab.aArr[miniTab.activeTab].offsetTop) + "px";
+ miniTab.slideObj.style.top = (miniTab.ul.offsetTop + miniTab.liArr[miniTab.activeTab].offsetTop + miniTab.inputArr[miniTab.activeTab].offsetTop) + "px";
},
slideIt:function() {
// Has the browser text size changed?
- if(miniTab.aHeight != miniTab.ul.offsetTop + miniTab.liArr[miniTab.activeTab].offsetTop + miniTab.aArr[miniTab.activeTab].offsetTop) {
+ if(miniTab.aHeight != miniTab.ul.offsetTop + miniTab.liArr[miniTab.activeTab].offsetTop + miniTab.inputArr[miniTab.activeTab].offsetTop) {
miniTab.initAnim();
- miniTab.aHeight = miniTab.ul.offsetTop + miniTab.liArr[miniTab.activeTab].offsetTop + miniTab.aArr[miniTab.activeTab].offsetTop
+ miniTab.aHeight = miniTab.ul.offsetTop + miniTab.liArr[miniTab.activeTab].offsetTop + miniTab.inputArr[miniTab.activeTab].offsetTop
};
if(miniTab.t++ < miniTab.d) {
animate: function(t,b,c,d) {
if ((t/=d/2) < 1) return c/2*t*t + b;
return -c/2 * ((--t)*(t-2) - 1) + b;
- }
+ },
+
+ submit: function (message) {
+ if ( ! confirm (message) ) return;
+ this.inputArr[this.activeTab].parentNode.submit();
+ },
}
window.onload = miniTab.init;