openwrt编译之前修改root密码(openwrtluci开发教程系列03-)

 2024-08-05  阅读 877  评论 0

摘要:我公司的luci页面的提交抛弃了原始的页面最下面的“提交”、“复位“这些,而是使用了Button这个控件作为提交的主体,用户只需要点击相关的按钮即可但是luci原始的Button控件不具备二次确认的能力,点击后就提交了,但是有时候我们想给用户告警,通知等,比如点击重启网关、修改网络配置等比较有风险的

我公司的luci页面的提交抛弃了原始的页面最下面的“提交”、“复位“这些,而是使用了Button这个控件作为提交的主体,用户只需要点击相关的按钮即可

但是luci原始的Button控件不具备二次确认的能力,点击后就提交了,但是有时候我们想给用户告警,通知等,比如点击重启网关、修改网络配置等比较有风险的操作时给予提示信息。

就像如下截图

openwrt编译之前修改root密码(openwrtluci开发教程系列03-)(1)

实现方法:基于Button控件增加二次确认弹窗

于是增加一个Button_confirm控件

首先修改cbi.lua增加Button_confirm类,并设置默认的弹窗确认消息i18n.translate("Are you sure to submit?")

#vi luci/modules/luci-base/luasrc/cbi.lua local i18n = require "luci.i18n" --[[ Button_confirm ]]-- Button_confirm = class(AbstractValue) function Button_confirm.__init__(self, ...) AbstractValue.__init__(self, ...) self.template = "cbi/button_confirm" self.inputstyle = nil self.rmempty = true self.confirm_msg = i18n.translate("Are you sure to submit?") --相比于Button控件增加了此行 end

增加Button_confirm控件依赖的模板htm文件

本文件中主要注意两点:

1、如果再一个页面中有多个Button_confirm类,那么每个类都要对应一个js的onclick函数,否则会出现混乱,此处使用页面唯一的cbid作为区分,使用String.gsub()来把特殊字符都删掉

2、在bc_开头的onclick函数中,必须返回true或者false,返回false则不执行submit,返回true则执行,参考链接:https://blog.csdn.net/whd526/article/details/78178451

luci/modules/luci-base/luasrc/view/cbi/button_confirm.htm

<% cbi/valueheader%> <% if self:cfgvalue(section) ~= false then %> <input class="cbi-button cbi-input-<%=self.inputstyle or "button" %> " type="submit" onclick="return bc_<%=string.gsub(cbid,'%p','')%>('<%=self.confirm_msg%>')" <%= attr("name", cbid) .. attr("id", cbid) .. attr("value", self.inputtitle or self.title)%> /> <% else %> - <% end %> <% cbi/valuefooter%> <script> function bc_<%=string.gsub(cbid,"%p","")%>(msg) { var c = confirm(msg "\n" "<%:Click confirm will be exec NOW!%>") if(c) return true else return false } </script>

如上即可完成此空间的开发,达到文章截图的效果。

如何使用Button_confirm控件

--如何使用 btn0=n:option(Button_confirm,"btn0",translate("commit")) btn0.inputstyle="apply" btn0.confirm_msg=translate("network will be reset after submit!")

,

版权声明:xxxxxxxxx;

原文链接:http://cn.tdroid.net/ce40eCz0EAQ0NU1E.html

发表评论:

管理员

  • 内容265798
  • 积分0
  • 金币0
关于我们
lecms主程序为免费提供使用,使用者不得将本系统应用于任何形式的非法用途,由此产生的一切法律风险,需由使用者自行承担,与本站和开发者无关。一旦使用lecms,表示您即承认您已阅读、理解并同意受此条款的约束,并遵守所有相应法律和法规。
联系方式
电话:
地址:广东省中山市
Email:
注册登录
注册帐号
登录帐号

Copyright © 2022 太卓开发网 Inc. 保留所有权利。 泰达科技网易库网

页面耗时0.2843秒, 内存占用1.33 MB, 访问数据库18次