Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
mirrors
openwrt
luci
提交
1a3533cb
L
luci
项目概览
mirrors
/
openwrt
/
luci
大约 1 年 前同步成功
通知
43
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
luci
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1a3533cb
编写于
10月 19, 2010
作者:
J
Jo-Philipp Wich
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
libs/web: add String.serialize() and String.format() to cbi.js
上级
db464434
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
174 addition
and
2 deletion
+174
-2
libs/web/htdocs/luci-static/resources/cbi.js
libs/web/htdocs/luci-static/resources/cbi.js
+174
-2
未找到文件。
libs/web/htdocs/luci-static/resources/cbi.js
浏览文件 @
1a3533cb
...
...
@@ -94,7 +94,7 @@ var cbi_validators = {
fields
++
;
last
=
i
+
1
;
}
}
}
return
(
fields
==
8
);
...
...
@@ -264,7 +264,7 @@ function cbi_d_update() {
}
}
if
(
entry
.
parent
)
{
if
(
entry
&&
entry
.
parent
)
{
cbi_t_update
();
}
...
...
@@ -516,3 +516,175 @@ function cbi_validate_field(cbid, optional, type)
}
}
if
(
!
String
.
serialize
)
String
.
serialize
=
function
(
o
)
{
switch
(
typeof
(
o
))
{
case
'
object
'
:
// null
if
(
o
==
null
)
{
return
'
null
'
;
}
// array
else
if
(
o
.
length
)
{
var
i
,
s
=
''
;
for
(
var
i
=
0
;
i
<
o
.
length
;
i
++
)
s
+=
(
s
?
'
,
'
:
''
)
+
String
.
serialize
(
o
[
i
]);
return
'
[
'
+
s
+
'
]
'
;
}
// object
else
{
var
k
,
s
=
''
;
for
(
k
in
o
)
s
+=
(
s
?
'
,
'
:
''
)
+
k
+
'
:
'
+
String
.
serialize
(
o
[
k
]);
return
'
{
'
+
s
+
'
}
'
;
}
break
;
case
'
string
'
:
// complex string
if
(
o
.
match
(
/
[^
a-zA-Z0-9_,.: -
]
/
)
)
return
'
decodeURIComponent("
'
+
encodeURIComponent
(
o
)
+
'
")
'
;
// simple string
else
return
'
"
'
+
o
+
'
"
'
;
break
;
default
:
return
o
.
toString
();
}
}
if
(
!
String
.
format
)
String
.
format
=
function
()
{
if
(
!
arguments
||
arguments
.
length
<
1
||
!
RegExp
)
return
;
var
html_esc
=
[
/&/g
,
'
&
'
,
/"/g
,
'
"
'
,
/'/g
,
'
'
'
,
/</g
,
'
<
'
,
/>/g
,
'
>
'
];
var
quot_esc
=
[
/"/g
,
'
"
'
,
/'/g
,
'
'
'
];
function
esc
(
s
,
r
)
{
for
(
var
i
=
0
;
i
<
r
.
length
;
i
+=
2
)
s
=
s
.
replace
(
r
[
i
],
r
[
i
+
1
]);
return
s
;
}
var
str
=
arguments
[
0
];
var
out
=
''
;
var
re
=
/^
(([^
%
]
*
)
%
(
'.|0|
\x
20
)?(
-
)?(\d
+
)?(\.\d
+
)?(
%|b|c|d|u|f|o|s|x|X|q|h|j
))
/
;
var
a
=
b
=
[],
numSubstitutions
=
0
,
numMatches
=
0
;
while
(
a
=
re
.
exec
(
str
)
)
{
var
m
=
a
[
1
];
var
leftpart
=
a
[
2
],
pPad
=
a
[
3
],
pJustify
=
a
[
4
],
pMinLength
=
a
[
5
];
var
pPrecision
=
a
[
6
],
pType
=
a
[
7
];
numMatches
++
;
if
(
pType
==
'
%
'
)
{
subst
=
'
%
'
;
}
else
{
if
(
numSubstitutions
++
<
arguments
.
length
)
{
var
param
=
arguments
[
numSubstitutions
];
var
pad
=
''
;
if
(
pPad
&&
pPad
.
substr
(
0
,
1
)
==
"
'
"
)
pad
=
leftpart
.
substr
(
1
,
1
);
else
if
(
pPad
)
pad
=
pPad
;
var
justifyRight
=
true
;
if
(
pJustify
&&
pJustify
===
"
-
"
)
justifyRight
=
false
;
var
minLength
=
-
1
;
if
(
pMinLength
)
minLength
=
parseInt
(
pMinLength
);
var
precision
=
-
1
;
if
(
pPrecision
&&
pType
==
'
f
'
)
precision
=
parseInt
(
pPrecision
.
substring
(
1
));
var
subst
=
param
;
switch
(
pType
)
{
case
'
b
'
:
subst
=
(
parseInt
(
param
)
||
0
).
toString
(
2
);
break
;
case
'
c
'
:
subst
=
String
.
fromCharCode
(
parseInt
(
param
)
||
0
);
break
;
case
'
d
'
:
subst
=
(
parseInt
(
param
)
||
0
);
break
;
case
'
u
'
:
subst
=
Math
.
abs
(
parseInt
(
param
)
||
0
);
break
;
case
'
f
'
:
subst
=
(
precision
>
-
1
)
?
Math
.
round
((
parseFloat
(
param
)
||
0.0
)
*
Math
.
pow
(
10
,
precision
))
/
Math
.
pow
(
10
,
precision
)
:
(
parseFloat
(
param
)
||
0.0
);
break
;
case
'
o
'
:
subst
=
(
parseInt
(
param
)
||
0
).
toString
(
8
);
break
;
case
'
s
'
:
subst
=
param
;
break
;
case
'
x
'
:
subst
=
(
''
+
(
parseInt
(
param
)
||
0
).
toString
(
16
)).
toLowerCase
();
break
;
case
'
X
'
:
subst
=
(
''
+
(
parseInt
(
param
)
||
0
).
toString
(
16
)).
toUpperCase
();
break
;
case
'
h
'
:
subst
=
esc
(
param
,
html_esc
);
break
;
case
'
q
'
:
subst
=
esc
(
param
,
quot_esc
);
break
;
case
'
j
'
:
subst
=
String
.
serialize
(
param
);
break
;
}
}
}
out
+=
leftpart
+
subst
;
str
=
str
.
substr
(
m
.
length
);
}
return
out
+
str
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录