X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=modules%2Fadmin-full%2Fluasrc%2Fmodel%2Fcbi%2Fadmin_system%2Ffstab.lua;h=8ac3d6d5e77bc31567b6b95b4061e88c2890959a;hp=78beed7306ed52ea6c0b564dd4fdc796e50b444d;hb=2e0fbbadc546e37baf13416e66aa5173ca604f5c;hpb=76145b3e254047aab2a526aa26120025289157c8 diff --git a/modules/admin-full/luasrc/model/cbi/admin_system/fstab.lua b/modules/admin-full/luasrc/model/cbi/admin_system/fstab.lua index 78beed730..8ac3d6d5e 100644 --- a/modules/admin-full/luasrc/model/cbi/admin_system/fstab.lua +++ b/modules/admin-full/luasrc/model/cbi/admin_system/fstab.lua @@ -11,76 +11,146 @@ You may obtain a copy of the License at $Id$ ]]-- + require("luci.tools.webadmin") -local fs = require "luci.fs" +local fs = require "nixio.fs" +local util = require "nixio.util" + local devices = {} -luci.util.update(devices, fs.glob("/dev/sd*") or {}) -luci.util.update(devices, fs.glob("/dev/hd*") or {}) -luci.util.update(devices, fs.glob("/dev/scd*") or {}) -luci.util.update(devices, fs.glob("/dev/mmc*") or {}) +util.consume((fs.glob("/dev/sd*")), devices) +util.consume((fs.glob("/dev/hd*")), devices) +util.consume((fs.glob("/dev/scd*")), devices) +util.consume((fs.glob("/dev/mmc*")), devices) local size = {} for i, dev in ipairs(devices) do - local s = tonumber((luci.fs.readfile("/sys/class/block/%s/size" % dev:sub(6)))) + local s = tonumber((fs.readfile("/sys/class/block/%s/size" % dev:sub(6)))) size[dev] = s and math.floor(s / 2048) end -m = Map("fstab", translate("a_s_fstab")) +m = Map("fstab", translate("Mount Points")) local mounts = luci.sys.mounts() -v = m:section(Table, mounts, translate("a_s_fstab_active")) +v = m:section(Table, mounts, translate("Mounted file systems")) -fs = v:option(DummyValue, "fs", translate("filesystem")) +fs = v:option(DummyValue, "fs", translate("Filesystem")) -mp = v:option(DummyValue, "mountpoint", translate("a_s_fstab_mountpoint")) +mp = v:option(DummyValue, "mountpoint", translate("Mount Point")) -avail = v:option(DummyValue, "avail", translate("a_s_fstab_avail")) +avail = v:option(DummyValue, "avail", translate("Available")) function avail.cfgvalue(self, section) return luci.tools.webadmin.byte_format( - tonumber(mounts[section].available) * 1024 + ( tonumber(mounts[section].available) or 0 ) * 1024 ) .. " / " .. luci.tools.webadmin.byte_format( - tonumber(mounts[section].blocks) * 1024 + ( tonumber(mounts[section].blocks) or 0 ) * 1024 ) end -used = v:option(DummyValue, "used", translate("a_s_fstab_used")) +used = v:option(DummyValue, "used", translate("Used")) function used.cfgvalue(self, section) - return mounts[section].percent .. " (" .. + return ( mounts[section].percent or "0%" ) .. " (" .. luci.tools.webadmin.byte_format( - tonumber(mounts[section].used) * 1024 + ( tonumber(mounts[section].used) or 0 ) * 1024 ) .. ")" end -mount = m:section(TypedSection, "mount", translate("a_s_fstab_mountpoints"), translate("a_s_fstab_mountpoints1")) +mount = m:section(TypedSection, "mount", translate("Mount Points"), translate("Mount Points define at which point a memory device will be attached to the filesystem")) mount.anonymous = true mount.addremove = true mount.template = "cbi/tblsection" +mount.extedit = luci.dispatcher.build_url("admin/system/fstab/mount/%s") + +mount.create = function(...) + local sid = TypedSection.create(...) + if sid then + luci.http.redirect(mount.extedit % sid) + return + end +end + + +mount:option(Flag, "enabled", translate("Enabled")).rmempty = false + +dev = mount:option(DummyValue, "device", translate("Device")) +dev.cfgvalue = function(self, section) + local v -mount:option(Flag, "enabled", translate("enable")) -dev = mount:option(Value, "device", translate("device"), translate("a_s_fstab_device1")) -for i, d in ipairs(devices) do - dev:value(d, size[d] and "%s (%s MB)" % {d, size[d]}) + v = m.uci:get("fstab", section, "uuid") + if v then return "UUID: %s" % v end + + v = m.uci:get("fstab", section, "label") + if v then return "Label: %s" % v end + + v = Value.cfgvalue(self, section) or "?" + return size[v] and "%s (%s MB)" % {v, size[v]} or v +end + +mp = mount:option(DummyValue, "target", translate("Mount Point")) +mp.cfgvalue = function(self, section) + if m.uci:get("fstab", section, "is_rootfs") == "1" then + return "/overlay" + else + return Value.cfgvalue(self, section) or "?" + end end -mount:option(Value, "target", translate("a_s_fstab_mountpoint")) -mount:option(Value, "fstype", translate("filesystem"), translate("a_s_fstab_fs1")) -mount:option(Value, "options", translate("options"), translatef("manpage", "siehe '%s' manpage", "mount")) +fs = mount:option(DummyValue, "fstype", translate("Filesystem")) +fs.cfgvalue = function(self, section) + return Value.cfgvalue(self, section) or "?" +end +op = mount:option(DummyValue, "options", translate("Options")) +op.cfgvalue = function(self, section) + return Value.cfgvalue(self, section) or "defaults" +end -swap = m:section(TypedSection, "swap", "SWAP", translate("a_s_fstab_swap1")) +rf = mount:option(DummyValue, "is_rootfs", translate("Root")) +rf.cfgvalue = function(self, section) + return Value.cfgvalue(self, section) == "1" + and translate("yes") or translate("no") +end + +ck = mount:option(DummyValue, "enabled_fsck", translate("Check")) +ck.cfgvalue = function(self, section) + return Value.cfgvalue(self, section) == "1" + and translate("yes") or translate("no") +end + + +swap = m:section(TypedSection, "swap", "SWAP", translate("If your physical memory is insufficient unused data can be temporarily swapped to a swap-device resulting in a higher amount of usable RAM. Be aware that swapping data is a very slow process as the swap-device cannot be accessed with the high datarates of the RAM.")) swap.anonymous = true swap.addremove = true swap.template = "cbi/tblsection" +swap.extedit = luci.dispatcher.build_url("admin/system/fstab/swap/%s") + +swap.create = function(...) + local sid = TypedSection.create(...) + if sid then + luci.http.redirect(swap.extedit % sid) + return + end +end + + +swap:option(Flag, "enabled", translate("Enabled")).rmempty = false + +dev = swap:option(DummyValue, "device", translate("Device")) +dev.cfgvalue = function(self, section) + local v + + v = m.uci:get("fstab", section, "uuid") + if v then return "UUID: %s" % v end + + v = m.uci:get("fstab", section, "label") + if v then return "Label: %s" % v end -swap:option(Flag, "enabled", translate("enable")) -dev = swap:option(Value, "device", translate("device"), translate("a_s_fstab_device1")) -for i, d in ipairs(devices) do - dev:value(d, size[d] and "%s (%s MB)" % {d, size[d]}) + v = Value.cfgvalue(self, section) or "?" + return size[v] and "%s (%s MB)" % {v, size[v]} or v end return m