From ae6fd93b8ce6b47d68a9ad96e0984edb91ee1716 Mon Sep 17 00:00:00 2001
From: Steven Barth <steven@midlink.org>
Date: Sat, 1 Nov 2008 17:11:11 +0000
Subject: [PATCH] Add XHR CBI helper

---
 libs/cbi/htdocs/luci-static/resources/cbi.js | 37 ++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/libs/cbi/htdocs/luci-static/resources/cbi.js b/libs/cbi/htdocs/luci-static/resources/cbi.js
index 4b1849beab..e9a8011548 100644
--- a/libs/cbi/htdocs/luci-static/resources/cbi.js
+++ b/libs/cbi/htdocs/luci-static/resources/cbi.js
@@ -1,3 +1,18 @@
+/*
+	LuCI - Lua Configuration Interface
+
+	Copyright 2008 Steven Barth <steven@midlink.org>
+	Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
+
+	Licensed under the Apache License, Version 2.0 (the "License");
+	you may not use this file except in compliance with the License.
+	You may obtain a copy of the License at
+
+	http://www.apache.org/licenses/LICENSE-2.0
+
+	$Id$
+*/
+
 var cbi_d = [];
 
 function cbi_d_add(field, dep, next) {
@@ -177,3 +192,25 @@ function cbi_filebrowser(id, url, defpath) {
 
 	browser.focus();
 }
+
+//Hijacks the CBI form to send via XHR (requires Prototype)
+function cbi_hijack_forms(layer, win, fail, load) {
+	layer.select('form').each(function(form) {
+		form.observe('submit', function(event) {
+			// Prevent the form from also submitting the regular way
+			event.stop();
+
+			var form = event.element();
+
+			if (load) {
+				load();
+			}
+
+			// Submit via XHR
+			form.request({
+				onSuccess: win,
+				onFailure: fail
+			});
+		});
+	});
+}