[PATCH] Naive fix for bug #208
authorJo-Philipp Wich <jow@openwrt.org>
Tue, 20 Dec 2011 17:52:10 +0000 (17:52 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Tue, 20 Dec 2011 17:52:10 +0000 (17:52 +0000)
For SimpleSection, use the section name (always "1") instead of the
section type in the CBI-like string used to identify the upload.  This
allows upload fields to be placed in SimpleSections.  The fix changes a
minimal number of lines, but does introduce some unnecessary confusion,
it may or may not be better than a more thorough/invasive fix.

Set the enctype for the form element in the simpleform view to be
multipart/form-data because the default
application/x-www-form-urlencoded does not support input files.

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
libs/web/luasrc/cbi.lua
libs/web/luasrc/view/cbi/simpleform.htm

index 8b9805f..ff030a2 100644 (file)
@@ -102,7 +102,7 @@ function load(cbimap, ...)
                                for _, field in ipairs(map.upload_fields) do
                                        uploads[
                                                field.config .. '.' ..
-                                               field.section.sectiontype .. '.' ..
+                                               (field.section.sectiontype or '1') .. '.' ..
                                                field.option
                                        ] = true
                                end
@@ -124,8 +124,8 @@ function load(cbimap, ...)
                                        )()
 
                                        if c and s and o then
-                                               local t = uci:get( c, s )
-                                               if t and uploads[c.."."..t.."."..o] then
+                                               local t = uci:get( c, s ) or s
+                                               if uploads[c.."."..t.."."..o] then
                                                        local path = upldir .. field.name
                                                        fd = io.open(path, "w")
                                                        if fd then
index 1a4726a..f7c9f33 100644 (file)
@@ -1,5 +1,5 @@
 <% if not self.embedded then %>
-<form method="post" action="<%=REQUEST_URI%>">
+<form method="post" enctype="multipart/form-data" action="<%=REQUEST_URI%>">
        <div>
                <script type="text/javascript" src="<%=resource%>/cbi.js"></script>
                <input type="hidden" name="cbi.submit" value="1" />