Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MaxKey单点登录官方(MaxKeyTop)
MaxKey
提交
5064c274
MaxKey
项目概览
MaxKey单点登录官方(MaxKeyTop)
/
MaxKey
11 个月 前同步成功
通知
76
Star
3
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
MaxKey
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
5064c274
编写于
7月 26, 2020
作者:
MaxKey单点登录官方
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
mobile support
上级
85ab5667
变更
18
隐藏空白更改
内联
并排
Showing
18 changed file
with
561 addition
and
991 deletion
+561
-991
maxkey-web-maxkey/src/main/resources/static/css/base.css
maxkey-web-maxkey/src/main/resources/static/css/base.css
+1
-3
maxkey-web-maxkey/src/main/resources/static/css/base2.css
maxkey-web-maxkey/src/main/resources/static/css/base2.css
+0
-492
maxkey-web-maxkey/src/main/resources/static/css/menu.css
maxkey-web-maxkey/src/main/resources/static/css/menu.css
+0
-3
maxkey-web-maxkey/src/main/resources/static/css/menu_default.css
...web-maxkey/src/main/resources/static/css/menu_default.css
+0
-3
maxkey-web-maxkey/src/main/resources/static/css/menu_minty.css
...y-web-maxkey/src/main/resources/static/css/menu_minty.css
+0
-3
maxkey-web-maxkey/src/main/resources/static/css/menu_pulse.css
...y-web-maxkey/src/main/resources/static/css/menu_pulse.css
+0
-3
maxkey-web-maxkey/src/main/resources/templates/views/layout/footer.ftl
...xkey/src/main/resources/templates/views/layout/footer.ftl
+15
-11
maxkey-web-maxkey/src/main/resources/templates/views/layout/header.ftl
...xkey/src/main/resources/templates/views/layout/header.ftl
+1
-0
maxkey-web-maxkey/src/main/resources/templates/views/layout/nav_primary.ftl
...src/main/resources/templates/views/layout/nav_primary.ftl
+78
-72
maxkey-web-maxkey/src/main/resources/templates/views/layout/nologintop.ftl
.../src/main/resources/templates/views/layout/nologintop.ftl
+1
-1
maxkey-web-maxkey/src/main/resources/templates/views/layout/top.ftl
...-maxkey/src/main/resources/templates/views/layout/top.ftl
+56
-44
maxkey-web-maxkey/src/main/resources/templates/views/login.ftl
...y-web-maxkey/src/main/resources/templates/views/login.ftl
+190
-182
maxkey-web-maxkey/src/main/resources/templates/views/main/appList.ftl
...axkey/src/main/resources/templates/views/main/appList.ftl
+11
-12
maxkey-web-maxkey/src/main/resources/templates/views/profile/myProfile.ftl
.../src/main/resources/templates/views/profile/myProfile.ftl
+121
-72
maxkey-web-maxkey/src/main/resources/templates/views/safe/changePassword.ftl
...rc/main/resources/templates/views/safe/changePassword.ftl
+6
-7
maxkey-web-maxkey/src/main/resources/templates/views/safe/setting.ftl
...axkey/src/main/resources/templates/views/safe/setting.ftl
+8
-10
maxkey-web-maxkey/src/main/resources/templates/views/safe/timeBased.ftl
...key/src/main/resources/templates/views/safe/timeBased.ftl
+67
-66
maxkey-web-maxkey/src/main/resources/templates/views/social/socialSignOnProvider.ftl
...resources/templates/views/social/socialSignOnProvider.ftl
+6
-7
未找到文件。
maxkey-web-maxkey/src/main/resources/static/css/base.css
浏览文件 @
5064c274
...
...
@@ -35,7 +35,7 @@ body{
border-bottom
:
1px
solid
#e5e5e5
;
min-width
:
100%
;
align
:
left
;
height
:
60px
;
min-height
:
60px
;
margin-bottom
:
1px
;
}
#topNav
{
...
...
@@ -63,7 +63,6 @@ body{
}
.container
{
width
:
990px
;
margin-left
:
auto
;
margin-right
:
auto
;
padding
:
0
10px
...
...
@@ -74,7 +73,6 @@ body{
margin-left
:
auto
;
margin-right
:
auto
;
display
:
block
;
width
:
990px
;
align
:
center
;
}
...
...
maxkey-web-maxkey/src/main/resources/static/css/base2.css
已删除
100644 → 0
浏览文件 @
85ab5667
*
{
padding
:
0
;
margin
:
0
;
outline
:
0
;
}
body
{
margin
:
0
;
margin-top
:
0px
;
margin-left
:
auto
;
margin-right
:
auto
;
padding
:
0
0
0
0px
;
font-size
:
12px
;
text-align
:
center
;
float
:
center
;
font-family
:
"Arial"
,
"Helvetica"
,
"Verdana"
,
"sans-serif"
;
}
/*table td,select,button,input{
font-size: 12px;
}
table.datatable {
border: 1px solid #d8dcdf;
border-collapse:collapse;
border-spacing:0;
width: 100%;
}
table.datatable th{
border: 1px solid #d8dcdf;
border-collapse:collapse;
border-spacing:0;
height: 40px;
}
table.datatable td{
border: 1px solid #d8dcdf;
border-collapse:collapse;
border-spacing:0;
height: 40px;
text-align: left;
text-indent: 5px;
}
table.datatable td.center{
border: 1px solid #d8dcdf;
border-collapse:collapse;
border-spacing:0;
height: 40px;
text-align: center;
text-indent: 0px;
}
table.hidetable {
border-collapse:collapse;
width: 100%;
border: 0px;
}
table.hidetable th{
border: 0px;
border-collapse:collapse;
border-spacing:0;
}
table.hidetable td{
border-collapse:collapse;
border-spacing:0;
border: 0px;
}
*/
.form_title_bar
{
width
:
100%
;
height
:
36px
;
text-align
:
left
;
text-indent
:
30px
;
background-color
:
#f8f8f8
;
}
.form_title_bar
a
{
text-decoration
:
none
;
display
:
inline-block
;
height
:
14px
;
color
:
#333
;
font-size
:
14px
;
font-weight
:
bold
;
padding
:
8px
0
;
vertical-align
:
central
;
}
button
,
input
{
color
:
#393939
;
}
#topBar
{
text-shadow
:
0
1px
0
#fff
;
border-bottom
:
1px
solid
#e5e5e5
;
min-width
:
100%
;
align
:
left
;
height
:
60px
;
margin-bottom
:
1px
;
}
#topNav
{
border-bottom
:
1px
solid
#e5e5e5
;
}
#navs
{
border-bottom
:
1px
solid
#e5e5e5
;
}
#nav_primary
{
background
:
#414141
;
}
#nav_second
{
height
:
31px
;
}
#nav_third
{
/*border-top: 1px solid #e5e5e5;*/
}
.container
{
width
:
990px
;
margin-left
:
auto
;
margin-right
:
auto
;
padding
:
0
10px
}
#mainFrame
{
margin-top
:
0px
;
margin-left
:
auto
;
margin-right
:
auto
;
display
:
block
;
width
:
990px
;
align
:
center
;
}
#footer
{
text-shadow
:
0
1px
0
#fff
;
border-top
:
1px
solid
#e5e5e5
;
min-width
:
100%
;
height
:
80px
;
}
#content
{
margin-top
:
10px
;
min-height
:
480px
;
*
height
:
480px
;
margin-bottom
:
10px
;
}
#tool_box
{
margin-bottom
:
10px
;
border
:
1px
solid
#e5e5e5
;
}
#tool_box_left
{
padding-left
:
10px
;
float
:
left
;
height
:
30px
;
width
:
50%
;
text-align
:
left
;
border-right
:
1px
solid
#e5e5e5
;
}
#tool_box_right
{
height
:
32px
;
text-align
:
right
;
padding-right
:
10px
;
width
:
484px
;
}
#advanced_search
{
margin-top
:
10px
;
min-height
:
30px
;
*
height
:
40px
;
border
:
1px
solid
#e5e5e5
;
margin-bottom
:
10px
;
display
:
none
;
}
#logout
{
width
:
40px
;
background
:
#c00
;
color
:
#fff
;
font-weight
:
bold
;
}
#manage
{
width
:
40px
;
background-color
:
#2AA9A9
;
font-weight
:
bold
;
}
#changepassword
{
width
:
65px
;
background-color
:
#f28018
;
font-weight
:
bold
;
}
#manage
a
,
#logout
a
,
#changepassword
a
{
color
:
#fff
;
}
a
{
color
:
#4183c4
;
text-decoration
:
none
;
}
input
[
type
=
"text"
],
input
[
type
=
"password"
],
input
[
type
=
"email"
],
input
[
type
=
"number"
],
input
[
type
=
"tel"
],
input
[
type
=
"url"
]
{
min-height
:
27px
;
height
:
27px
;
padding
:
4px
8px
;
outline
:
none
;
color
:
#333
;
background-color
:
#fff
;
background-repeat
:
no-repeat
;
background-position
:
right
center
;
border
:
1px
solid
#ccc
;
border-radius
:
3px
;
box-shadow
:
inset
0
1px
2px
rgba
(
0
,
0
,
0
,
0.075
);
transition
:
all
0.15s
ease-in
;
-webkit-transition
:
all
0.15s
ease-in
0
;
vertical-align
:
middle
;
width
:
90%
;
}
textarea
{
min-height
:
27px
;
padding
:
4px
8px
;
outline
:
none
;
color
:
#333
;
background-color
:
#fff
;
background-repeat
:
no-repeat
;
background-position
:
right
center
;
border
:
1px
solid
#ccc
;
border-radius
:
3px
;
box-shadow
:
inset
0
1px
2px
rgba
(
0
,
0
,
0
,
0.075
);
transition
:
all
0.15s
ease-in
;
-webkit-transition
:
all
0.15s
ease-in
0
;
vertical-align
:
middle
;
width
:
90%
;
}
input
[
type
=
"text"
]
:focus
,
input
[
type
=
"text"
]
.focus
,
input
[
type
=
"password"
]
.focus
,
input
[
type
=
"password"
]
:focus
,
input
[
type
=
"email"
]
.focus
,
input
[
type
=
"email"
]
:focus
,
input
[
type
=
"number"
]
.focus
,
input
[
type
=
"number"
]
:focus
,
input
[
type
=
"tel"
]
.focus
,
input
[
type
=
"tel"
]
:focus
,
input
[
type
=
"url"
]
.focus
,
input
[
type
=
"url"
]
:focus
,
textarea
.focus
,
textarea
:focus
{
border-color
:
#51a7e8
;
box-shadow
:
inset
0
1px
2px
rgba
(
0
,
0
,
0
,
0.075
),
0
0
5px
rgba
(
81
,
167
,
232
,
0.5
)
}
.button
,
.minibutton
{
position
:
relative
;
display
:
inline-block
;
padding
:
7px
15px
;
font-size
:
13px
;
font-weight
:
bold
;
color
:
#333
;
text-shadow
:
0
1px
0
rgba
(
255
,
255
,
255
,
0.9
);
white-space
:
nowrap
;
background-color
:
#eaeaea
;
background-image
:
-moz-linear-gradient
(
#eaeaea
,
#eaeaea
);
background-image
:
-webkit-linear-gradient
(
#eaeaea
,
#eaeaea
);
background-image
:
linear-gradient
(
#eaeaea
,
#eaeaea
);
background-repeat
:
repeat-x
;
border-radius
:
3px
;
border
:
1px
solid
#ddd
;
border-bottom-color
:
#c5c5c5
;
box-shadow
:
0
1px
3px
rgba
(
0
,
0
,
0
,
0.05
);
vertical-align
:
middle
;
cursor
:
pointer
;
-webkit-touch-callout
:
none
;
-webkit-user-select
:
none
;
-khtml-user-select
:
none
;
-moz-user-select
:
none
;
-ms-user-select
:
none
;
user-select
:
none
;
-webkit-appearance
:
none
}
.button
:hover
,
.button
:active
,
.button.zeroclipboard-is-hover
,
.button.zeroclipboard-is-active
,
.minibutton
:hover
,
.minibutton
:active
,
.minibutton.zeroclipboard-is-hover
,
.minibutton.zeroclipboard-is-active
{
text-decoration
:
none
;
background-color
:
#dadada
;
background-image
:
-moz-linear-gradient
(
#dadada
,
#dadada
);
background-image
:
-webkit-linear-gradient
(
#dadada
,
#dadada
);
background-image
:
linear-gradient
(
#dadada
,
#dadada
);
background-repeat
:
repeat-x
;
border-color
:
#ccc
#ccc
#b5b5b5
}
.button
:active
,
.button.selected
,
.button.zeroclipboard-is-active
,
.minibutton
:active
,
.minibutton.selected
,
.context-menu-container.active
.minibutton.switcher
,
.context-menu-container.active
.context-button
,
.minibutton.zeroclipboard-is-active
{
background-color
:
#dadada
;
background-image
:
none
;
border-color
:
#b5b5b5
;
box-shadow
:
inset
0
3px
5px
rgba
(
0
,
0
,
0
,
0.15
)
}
.button
:disabled
,
.button
:disabled:hover
,
.button.disabled
,
.button.disabled
:hover
,
.minibutton
:disabled
,
.minibutton
:disabled:hover
,
.minibutton.disabled
,
.minibutton.disabled
:hover
{
opacity
:
.5
;
color
:
#666
;
text-shadow
:
0
1px
0
rgba
(
255
,
255
,
255
,
0.9
);
background-image
:
none
;
background-color
:
#e5e5e5
;
border-color
:
#c5c5c5
;
cursor
:
default
;
box-shadow
:
none
}
.button.primary
,
.minibutton.primary
{
color
:
#fff
;
text-shadow
:
0
-1px
0
rgba
(
0
,
0
,
0
,
0.25
);
background-color
:
#44b549
;
background-image
:
-moz-linear-gradient
(
#44b549
,
#44b549
);
background-image
:
-webkit-linear-gradient
(
#44b549
,
#44b549
);
background-image
:
linear-gradient
(
#44b549
,
#44b549
);
background-repeat
:
repeat-x
;
border-color
:
#44b549
}
.button.primary
:hover
,
.minibutton.primary
:hover
{
color
:
#fff
;
background-color
:
#4aaf33
;
background-image
:
-moz-linear-gradient
(
#4aaf33
,
#4aaf33
);
background-image
:
-webkit-linear-gradient
(
#4aaf33
,
#4aaf33
);
background-image
:
linear-gradient
(
#4aaf33
,
#4aaf33
);
background-repeat
:
repeat-x
;
border-color
:
#4aaf33
}
.button.primary
:active
,
.button.primary.selected
,
.minibutton.primary
:active
,
.minibutton.primary.selected
,
.context-menu-container.active
.primary.minibutton.switcher
,
.context-menu-container.active
.primary.context-button
{
background-color
:
#569e3d
;
background-image
:
none
;
border-color
:
#418737
}
.button.primary
:disabled
,
.button.primary
:disabled:hover
,
.button.primary.disabled
,
.button.primary.disabled
:hover
,
.minibutton.primary
:disabled
,
.minibutton.primary
:disabled:hover
,
.minibutton.primary.disabled
,
.minibutton.primary.disabled
:hover
{
color
:
#fff
;
text-shadow
:
0
-1px
0
rgba
(
0
,
0
,
0
,
0.25
);
background-color
:
#60b044
;
background-image
:
-moz-linear-gradient
(
#8add6d
,
#60b044
);
background-image
:
-webkit-linear-gradient
(
#8add6d
,
#60b044
);
background-image
:
linear-gradient
(
#8add6d
,
#60b044
);
background-repeat
:
repeat-x
;
border-color
:
#74bb5a
#74bb5a
#509338
}
.button
,
.minibutton
{
outline
:
none
}
.button
:focus
,
.minibutton
:focus
{
text-decoration
:
none
;
border-color
:
#51a7e8
;
box-shadow
:
0
0
5px
rgba
(
81
,
167
,
232
,
0.5
)
}
.button
img
{
position
:
relative
;
top
:
-1px
;
margin-right
:
3px
;
vertical-align
:
middle
}
.button
>
.octicon
{
vertical-align
:
middle
;
margin-top
:
-1px
}
.minibutton
{
padding
:
0
10px
;
line-height
:
32px
;
box-shadow
:
none
}
.minibutton
:hover
.octicon-device-desktop
:before
{
background-position
:
-18px
0
}
.minibutton
i
{
font-weight
:
500
;
font-style
:
normal
;
opacity
:
.6
}
.form_radio_label
,
.form_checkbox_label
{
display
:
inline-block
;
text-align
:
left
;
cursor
:
pointer
;
margin-right
:
1em
;
}
.icon_checkbox
{
background
:
url("../images/checkbox.png")
0
-83px
no-repeat
;
width
:
16px
;
height
:
16px
;
vertical-align
:
middle
;
display
:
inline-block
;
margin-top
:
-0.2em
;
}
.icon_checkbox_selected
{
background
:
url("../images/checkbox.png")
0
-109px
no-repeat
;
width
:
16px
;
height
:
16px
;
vertical-align
:
middle
;
display
:
inline-block
;
margin-top
:
-0.2em
;
}
.icon_radiobox
{
background
:
url("../images/checkbox.png")
0
-5px
no-repeat
;
width
:
16px
;
height
:
16px
;
vertical-align
:
middle
;
display
:
inline-block
;
margin-top
:
-0.2em
;
}
.icon_radiobox_selected
{
background
:
url("../images/checkbox.png")
0
-31px
no-repeat
;
width
:
16px
;
height
:
16px
;
vertical-align
:
middle
;
display
:
inline-block
;
margin-top
:
-0.2em
;
}
.select-menu-modal
{
position
:
absolute
;
display
:
none
;
z-index
:
1989
;
width
:
300px
;
margin-top
:
4px
;
margin-bottom
:
20px
;
overflow
:
hidden
;
font-size
:
12px
;
color
:
#666
;
background-color
:
#fff
;
background-clip
:
padding-box
;
border
:
1px
solid
#ccc
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0.15
);
border-radius
:
5px
;
box-shadow
:
0
3px
12px
rgba
(
0
,
0
,
0
,
0.25
);
}
.select-menu-item
{
cursor
:
pointer
;
line-height
:
33px
;
border-bottom
:
1px
solid
#eee
;
display
:
table
;
table-layout
:
fixed
;
width
:
100%
;
overflow
:
hidden
;
color
:
inherit
;
text-align
:
left
;
}
.select-menu-item
a
{
text-decoration
:
none
;
}
.select-menu-item
a
div
{
width
:
140px
;
line-height
:
33px
;
}
.select-menu-item-selected
{
background-color
:
#4183c4
;
color
:
#fff
;
}
.select-menu-item-selected
a
{
color
:
#fff
;
}
maxkey-web-maxkey/src/main/resources/static/css/menu.css
浏览文件 @
5064c274
...
...
@@ -3,14 +3,12 @@
}
.menuprimary
{
font
:
bold
12px
Verdana
;
width
:
990px
;
margin
:
auto
;
height
:
41px
;
}
.menucontainer
{
float
:
left
;
width
:
990px
;
margin-top
:
-2px
;
}
...
...
@@ -151,7 +149,6 @@
.menusecond
{
font
:
bold
12px
Verdana
;
background
:
white
;
/*background of menu bar (default state)*/
width
:
990px
;
margin
:
auto
;
}
...
...
maxkey-web-maxkey/src/main/resources/static/css/menu_default.css
浏览文件 @
5064c274
...
...
@@ -3,14 +3,12 @@
}
.menuprimary
{
font
:
bold
12px
Verdana
;
width
:
990px
;
margin
:
auto
;
height
:
41px
;
}
.menucontainer
{
float
:
left
;
width
:
990px
;
margin-top
:
-2px
;
}
...
...
@@ -151,7 +149,6 @@
.menusecond
{
font
:
bold
12px
Verdana
;
background
:
white
;
/*background of menu bar (default state)*/
width
:
990px
;
margin
:
auto
;
}
...
...
maxkey-web-maxkey/src/main/resources/static/css/menu_minty.css
浏览文件 @
5064c274
...
...
@@ -3,14 +3,12 @@
}
.menuprimary
{
font
:
bold
12px
Verdana
;
width
:
990px
;
margin
:
auto
;
height
:
41px
;
}
.menucontainer
{
float
:
left
;
width
:
990px
;
margin-top
:
-2px
;
}
...
...
@@ -151,7 +149,6 @@
.menusecond
{
font
:
bold
12px
Verdana
;
background
:
white
;
/*background of menu bar (default state)*/
width
:
990px
;
margin
:
auto
;
}
...
...
maxkey-web-maxkey/src/main/resources/static/css/menu_pulse.css
浏览文件 @
5064c274
...
...
@@ -4,14 +4,12 @@
.menuprimary
{
font
:
bold
12px
Verdana
;
width
:
990px
;
margin
:
auto
;
height
:
41px
;
}
.menucontainer
{
float
:
left
;
width
:
990px
;
margin-top
:
-2px
;
}
...
...
@@ -152,7 +150,6 @@
.menusecond
{
font
:
bold
12px
Verdana
;
background
:
white
;
/*background of menu bar (default state)*/
width
:
990px
;
margin
:
auto
;
}
...
...
maxkey-web-maxkey/src/main/resources/templates/views/layout/footer.ftl
浏览文件 @
5064c274
<#-- footer -->
<div class="footer" >
<div class="container">
<table cellpadding="2" cellspacing="0" style="margin-top: 30px;width:100%;height:100%; border:0;">
<TR>
<TD align="center" valign="middle" class="footer ">
MaxKey <@locale code="global.application.version"/><br>
© <@locale code="global.text.copyright.content"/> <a href="https://www.maxkey.top/" target="_blank">https://www.maxkey.top/</a>
<br>
<@locale code="global.text.copyright.license"/><br>
</TD>
</TR>
</table>
<div class="container row">
<div class="col-sm-4"></div>
<div class="col-sm-4">
<table cellpadding="2" cellspacing="0" style="margin-top: 30px;width:100%;height:100%; border:0;">
<TR>
<TD align="center" valign="middle" class="footer ">
MaxKey <@locale code="global.application.version"/><br>
© <@locale code="global.text.copyright.content"/> <a href="https://www.maxkey.top/" target="_blank">https://www.maxkey.top/</a>
<br>
<@locale code="global.text.copyright.license"/><br>
</TD>
</TR>
</table>
</div>
<div class="col-sm-4"></div>
</div>
</div>
\ No newline at end of file
maxkey-web-maxkey/src/main/resources/templates/views/layout/header.ftl
浏览文件 @
5064c274
<title><@locale code="global.application"/></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
...
...
maxkey-web-maxkey/src/main/resources/templates/views/layout/nav_primary.ftl
浏览文件 @
5064c274
<div id="nav_primary" >
<div id="nav_primary" class="menuprimary">
<ul >
<li id="nav_primay_11" class="nav_primay_level primaryleft" xpath="">
<!--我的应用-->
<a href="<@base/>/appList"><@locale code="navs.mypps"/></a>
</li>
<li id="nav_primay_13" class="nav_primay_level primaryleft" xpath="">
<!--安全设置-->
<a href="<@base/>/safe/forward/setting"><@locale code="navs.setting"/></a>
<div id="nav_child_1301" class="nav_second_child">
<ul>
<!--安全设置-->
<li id="nav_second_1301" class="nav_second_level">
<a href="<@base/>/safe/forward/setting"><@locale code="navs.setting.security"/></a>
</li>
</ul>
<ul>
<!--认证关联-->
<li id="nav_second_1301" class="nav_second_level">
<a href="<@base/>/socialsignon/list"><@locale code="navs.setting.sociallink"/></a>
</li>
</ul>
<ul>
<!--密码修改-->
<li id="nav_second_1302" class="nav_second_level">
<a href="<@base/>/safe/forward/changePasswod"><@locale code="navs.setting.changepassword"/></a>
</li>
</ul>
<ul>
<!--应用配置-->
<li id="nav_second_1304" class="nav_second_level">
<a href="<@base/>/appConfigList"><@locale code="navs.setting.appaccount"/></a>
</li>
</ul>
<ul>
<!--时间令牌-->
<li id="nav_second_1305" class="nav_second_level">
<a href="<@base/>/safe/otp/timebased"><@locale code="navs.setting.timetoken"/></a>
</li>
</ul>
</div>
</li>
<!--我的资料-->
<li id="nav_primay_14" class="nav_primay_level primaryleft" xpath="">
<a href="<@base/>/profile/myProfile"><@locale code="navs.myprofile"/></a>
</li>
<!--日志审计-->
<li id="nav_primay_15" class="nav_primay_level primaryleft" xpath="">
<a href="<@base/>/historys/login"><@locale code="navs.audit"/></a>
<div id="nav_child_1501" class="nav_second_child">
<ul>
<!--登录日志-->
<li id="nav_second_1501" class="nav_second_level">
<a href="<@base/>/historys/login"><@locale code="navs.audit.login"/></a>
</li>
</ul>
<ul>
<!--访问日志-->
<li id="nav_second_1502" class="nav_second_level">
<a href="<@base/>/historys/loginApps"><@locale code="navs.audit.signon"/></a>
</li>
</ul>
<ul>
<!--操作日志-->
<li id="nav_second_1503" class="nav_second_level">
<a href="<@base/>/historys/logs"><@locale code="navs.audit.operation"/></a>
</li>
</ul>
</div>
</li>
</ul>
<div class="container row">
<div class="col-sm-8">
<div id="nav_primary" class="menuprimary">
<ul >
<li id="nav_primay_11" class="nav_primay_level primaryleft" xpath="">
<!--我的应用-->
<a href="<@base/>/appList"><@locale code="navs.mypps"/></a>
</li>
<li id="nav_primay_13" class="nav_primay_level primaryleft" xpath="">
<!--安全设置-->
<a href="<@base/>/safe/forward/setting"><@locale code="navs.setting"/></a>
<div id="nav_child_1301" class="nav_second_child">
<ul>
<!--安全设置-->
<li id="nav_second_1301" class="nav_second_level">
<a href="<@base/>/safe/forward/setting"><@locale code="navs.setting.security"/></a>
</li>
</ul>
<ul>
<!--认证关联-->
<li id="nav_second_1301" class="nav_second_level">
<a href="<@base/>/socialsignon/list"><@locale code="navs.setting.sociallink"/></a>
</li>
</ul>
<ul>
<!--密码修改-->
<li id="nav_second_1302" class="nav_second_level">
<a href="<@base/>/safe/forward/changePasswod"><@locale code="navs.setting.changepassword"/></a>
</li>
</ul>
<ul>
<!--应用配置-->
<li id="nav_second_1304" class="nav_second_level">
<a href="<@base/>/appConfigList"><@locale code="navs.setting.appaccount"/></a>
</li>
</ul>
<ul>
<!--时间令牌-->
<li id="nav_second_1305" class="nav_second_level">
<a href="<@base/>/safe/otp/timebased"><@locale code="navs.setting.timetoken"/></a>
</li>
</ul>
</div>
</li>
<!--我的资料-->
<li id="nav_primay_14" class="nav_primay_level primaryleft" xpath="">
<a href="<@base/>/profile/myProfile"><@locale code="navs.myprofile"/></a>
</li>
<!--日志审计-->
<li id="nav_primay_15" class="nav_primay_level primaryleft" xpath="">
<a href="<@base/>/historys/login"><@locale code="navs.audit"/></a>
<div id="nav_child_1501" class="nav_second_child">
<ul>
<!--登录日志-->
<li id="nav_second_1501" class="nav_second_level">
<a href="<@base/>/historys/login"><@locale code="navs.audit.login"/></a>
</li>
</ul>
<ul>
<!--访问日志-->
<li id="nav_second_1502" class="nav_second_level">
<a href="<@base/>/historys/loginApps"><@locale code="navs.audit.signon"/></a>
</li>
</ul>
<ul>
<!--操作日志-->
<li id="nav_second_1503" class="nav_second_level">
<a href="<@base/>/historys/logs"><@locale code="navs.audit.operation"/></a>
</li>
</ul>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container row">
<div id="nav_second" class ="col-sm-8" style="clear: left"><div class='menusecond '></div><br style='clear: left' /></div>
</div>
<div id="nav_second" style="clear: left"><div class='menusecond'></div><br style='clear: left' /></div>
<script>
$(function(){
function displaySecondNavs(menuId){
...
...
maxkey-web-maxkey/src/main/resources/templates/views/layout/nologintop.ftl
浏览文件 @
5064c274
...
...
@@ -2,7 +2,7 @@
<div class="container">
<div style="float:left;margin-left:20px;margin-top: 5px;"><IMG SRC="<@base/>/static/images/logo.jpg" style="width:55px;heigth:55px"></div>
<div style="margin-top:15px;margin-left:10px;float:left">
<div style="letter-spacing:2px;font-size:2
8
px;font-weight:bolder;"><@locale code="global.application"/></div>
<div style="letter-spacing:2px;font-size:2
4
px;font-weight:bolder;"><@locale code="global.application"/></div>
</div>
<div style="margin-top:30px;margin-right:10px;float:right;">
...
...
maxkey-web-maxkey/src/main/resources/templates/views/layout/top.ftl
浏览文件 @
5064c274
<div id="topBar" >
<div class="container">
<div style="float:left;margin-left:20px;margin-top: 5px;"><IMG SRC="<@base/>/static/images/logo.jpg" style="width:55px;heigth:55px"></div>
<div style="margin-top:20px;margin-left:10px;float:left">
<div style="letter-spacing:2px;font-size:20px;font-weight:bolder;"><@locale code="global.application"/></div>
<div class="container row">
<div class="col-sm-5">
<div>
<div style="float:left;margin-top: 5px;"><IMG SRC="<@base/>/static/images/logo.jpg" style="width:55px;heigth:55px"></div>
<div style="letter-spacing:2px;font-size:24px;font-weight:bolder;margin-top: 16px;float:left;"><@locale code="global.application"/></div>
</div>
</div>
<div class="col-sm-3">
<div style="margin-top:25px;margin-right:10px;float:right;">
<table style="height: 31px;">
<tr>
<td>
<@locale code="global.text.welcome"/>:
<#if Session["current_user"]?exists>
${Session["current_user"].displayName} ${Session["current_user"].username}
</#if>
</td>
</tr>
</table>
</div >
</div>
<div class="col-sm-4">
<div style="margin-top:25px;margin-right:10px;float:right;">
<table style="height: 31px;">
<tr>
<#if Session["current_user"].gridList==0 >
<td>
<a href="<@base/>/appList?mnid=110101020000&gridList=1"><img class="grid_list_sel" src='<@base/>/static/images/list_sel.png' ></a>
</td>
<#else>
<td>
<a href="<@base/>/appList?mnid=110101020000&gridList=0" ><img class="grid_list_sel" src='<@base/>/static/images/grid_sel.png'></a>
</td>
</#if>
<td id="changepassword" nowrap>
<a href="<@base/>/safe/forward/changePasswod">
<div style="float:right;" > <@locale code="login.password.changepassword"/> </div>
</a>
</td>
<td id="manage" nowrap>
<a target="_blank" href="<@base/>/authz/maxkey_mgt">
<div style="float:right;" > <@locale code="global.text.manage"/> </div>
</a>
</td>
<td id="logout" class="ui-widget-header" >
<a href="<@base/>/logout?reLoginUrl=login">
<div style="float:right;" > <@locale code="global.text.logout"/> </div>
</a>
</td>
</tr>
</table>
</div >
</div>
</div>
<div style="margin-top:25px;margin-right:10px;float:right;">
<table style="height: 31px;">
<tr>
<td>
<@locale code="global.text.welcome"/>:
<#if Session["current_user"]?exists>
${Session["current_user"].displayName} ${Session["current_user"].username}
</#if>
</td>
<#if Session["current_user"].gridList==0 >
<td>
<a href="<@base/>/appList?mnid=110101020000&gridList=1"><img class="grid_list_sel" src='<@base/>/static/images/list_sel.png' ></a>
</td>
<#else>
<td>
<a href="<@base/>/appList?mnid=110101020000&gridList=0" ><img class="grid_list_sel" src='<@base/>/static/images/grid_sel.png'></a>
</td>
</#if>
<td id="changepassword" nowrap>
<a href="<@base/>/safe/forward/changePasswod">
<div style="float:right;" > <@locale code="login.password.changepassword"/> </div>
</a>
</td>
<td id="manage" nowrap>
<a target="_blank" href="<@base/>/authz/maxkey_mgt">
<div style="float:right;" > <@locale code="global.text.manage"/> </div>
</a>
</td>
<td id="logout" class="ui-widget-header" >
<a href="<@base/>/logout?reLoginUrl=login">
<div style="float:right;" > <@locale code="global.text.logout"/> </div>
</a>
</td>
</tr>
</table>
</div>
</div>
</div>
\ No newline at end of file
maxkey-web-maxkey/src/main/resources/templates/views/login.ftl
浏览文件 @
5064c274
...
...
@@ -177,202 +177,210 @@ $(function(){
<
#include
"
layout
/
nologintop.ftl
"
>
</div>
<div
class=
"container"
>
<table
border=
"0"
>
<tr>
<td
width=
"630px"
>
</td>
<td>
<table
id=
"tableform"
>
<tr>
<td>
<ul
id=
"switch_tab"
class=
"switch_tab"
>
<li
id=
"switch_commonLogin"
value=
"div_commonLogin"
class=
"switch_tab_class switch_tab_current"
><a
href=
"javascript:void(0);"
>
<
@
locale
code=
"login.text.login.normal"
/></a></li>
<li
id=
"switch_tfaLogin"
value=
"div_tfaLogin"
class=
"switch_tab_class"
><a
href=
"javascript:void(0);"
>
<
@
locale
code=
"login.text.login.twofactor"
/></a></li>
</ul>
</td>
</tr>
<tr>
<td>
<div
id=
"div_commonLogin"
>
<form
id=
"loginForm"
name=
"loginForm"
action=
"<@base />/logon.do"
method=
"post"
class=
"needs-validation"
novalidate
>
<input
type=
"hidden"
name=
"authType"
value=
"basic"
/>
<table
class=
"table login_form_table"
>
<tr>
<td><
@
locale
code=
"login.text.username"
/>
:
</td>
<td><input
required=
""
class=
"form-control"
type=
'text'
id=
'j_username'
name=
'username'
value=
"admin"
tabindex=
"1"
/></td>
</tr>
<tr>
<td><
@
locale
code=
"login.text.password"
/>
:
</td>
<td><input
required=
""
class=
"form-control"
type=
'password'
id=
'j_password'
name=
'password'
value=
"admin"
tabindex=
"2"
/></td>
</tr>
<
#if
true=
=isCaptcha
>
<tr>
<td><
@
locale
code=
"login.text.captcha"
/>
:
</td>
<td>
<input
required=
""
class=
"form-control"
type=
'text'
id=
"j_captcha"
name=
"captcha"
tabindex=
"3"
value=
""
style=
"float: left;"
/><img
id=
"j_captchaimg"
src=
"<@base/>/captcha"
/>
</td>
</tr>
</
#
if>
<
#if
true=
=isRemeberMe
>
<tr>
<td
colspan=
"2"
>
<table
style=
"width:100%"
>
<div
class=
"row"
>
<div
class=
"col-sm-6"
></div>
<div
class=
"col-md-4 col-md-offset-4 col-lg-offset-4col-xl-offset-4"
>
<div
class=
"panel panel-default"
>
<table
border=
"0"
>
<tr>
<td
>
</td>
<td>
<table
id=
"tableform"
>
<tr>
<td>
<ul
id=
"switch_tab"
class=
"switch_tab"
>
<li
id=
"switch_commonLogin"
value=
"div_commonLogin"
class=
"switch_tab_class switch_tab_current"
><a
href=
"javascript:void(0);"
>
<
@
locale
code=
"login.text.login.normal"
/></a></li>
<li
id=
"switch_tfaLogin"
value=
"div_tfaLogin"
class=
"switch_tab_class"
><a
href=
"javascript:void(0);"
>
<
@
locale
code=
"login.text.login.twofactor"
/></a></li>
</ul>
</td>
</tr>
<tr>
<td>
<div
id=
"div_commonLogin"
>
<form
id=
"loginForm"
name=
"loginForm"
action=
"<@base />/logon.do"
method=
"post"
class=
"needs-validation"
novalidate
>
<input
type=
"hidden"
name=
"authType"
value=
"basic"
/>
<table
class=
"table login_form_table"
>
<tr>
<td><
@
locale
code=
"login.text.username"
/>
:
</td>
<td><input
required=
""
class=
"form-control"
type=
'text'
id=
'j_username'
name=
'username'
value=
"admin"
tabindex=
"1"
/></td>
</tr>
<tr>
<td
style=
"width:50%"
>
<span
class=
"form_checkbox_label"
>
<input
type=
'checkbox'
id=
"remeberMe"
name=
"remeberMe"
class=
"checkbox"
tabindex=
"4"
value=
"remeberMe"
/>
<
@
locale
code=
"login.text.remeberme"
/>
</span>
<td><
@
locale
code=
"login.text.password"
/>
:
</td>
<td><input
required=
""
class=
"form-control"
type=
'password'
id=
'j_password'
name=
'password'
value=
"admin"
tabindex=
"2"
/></td>
</tr>
<
#if
true=
=isCaptcha
>
<tr>
<td><
@
locale
code=
"login.text.captcha"
/>
:
</td>
<td>
<input
required=
""
class=
"form-control"
type=
'text'
id=
"j_captcha"
name=
"captcha"
tabindex=
"3"
value=
""
style=
"float: left;"
/><img
id=
"j_captchaimg"
src=
"<@base/>/captcha"
/>
</td>
<td
style=
"width:50%"
><a
href=
"<@base />/forgotpassword/forward"
><
@
locale
code=
"login.text.forgotpassword"
/></a></td>
</tr>
</
#
if>
<
#if
true=
=isRemeberMe
>
<tr>
<td
colspan=
"2"
>
<table
style=
"width:100%"
>
<tr>
<td
style=
"width:50%"
>
<span
class=
"form_checkbox_label"
>
<input
type=
'checkbox'
id=
"remeberMe"
name=
"remeberMe"
class=
"checkbox"
tabindex=
"4"
value=
"remeberMe"
/>
<
@
locale
code=
"login.text.remeberme"
/>
</span>
</td>
<td
style=
"width:50%"
><a
href=
"<@base />/forgotpassword/forward"
><
@
locale
code=
"login.text.forgotpassword"
/></a></td>
</tr>
</table>
</td>
</tr>
</
#
if>
<tr
style=
"display:none"
>
<td>
sessionid:
</td>
<td><input
class=
"form-control"
type=
'text'
id=
"j_sessionid"
name=
"sessionId"
value=
"${sessionid}"
/></td>
</tr>
<tr
>
<td
colspan=
"2"
>
<input
type=
"submit"
id=
"loginSubmitButton"
style=
"display: none;"
/>
<input
id=
"loginSubmit"
type=
"button"
tabindex=
"5"
style=
"width: 100%;"
class=
"button btn btn-lg btn-primary btn-block"
value=
"<@locale code="
login.button.login
"
/>
"/>
</td>
</tr>
</table>
</td>
</tr>
</
#
if>
<tr
style=
"display:none"
>
<td>
sessionid:
</td>
<td><input
class=
"form-control"
type=
'text'
id=
"j_sessionid"
name=
"sessionId"
value=
"${sessionid}"
/></td>
</tr>
<tr
>
<td
colspan=
"2"
>
<input
type=
"submit"
id=
"loginSubmitButton"
style=
"display: none;"
/>
<input
id=
"loginSubmit"
type=
"button"
tabindex=
"5"
style=
"width: 100%;"
class=
"button btn btn-lg btn-primary btn-block"
value=
"<@locale code="
login.button.login
"
/>
"/>
</td>
</tr>
</table>
<div
class=
"clear"
></div>
</form>
</div>
<div
id=
"div_tfaLogin"
>
<form
id=
"tfaLoginForm"
name=
"tfaLoginForm"
action=
"<@base />/logon.do"
method=
"post"
class=
"needs-validation"
novalidate
>
<input
type=
"hidden"
name=
"authType"
value=
"tfa"
/>
<table
class=
"login_form_table"
>
<tr>
<td><
@
locale
code=
"login.text.username"
/>
:
</td>
<td><input
required=
""
class=
"form-control"
type=
'text'
id=
'tfa_j_username'
name=
'username'
value=
""
tabindex=
"1"
/></td>
</tr>
<tr>
<td><
@
locale
code=
"login.text.password"
/>
:
</td>
<td><input
required=
""
class=
"form-control"
type=
'password'
id=
'tfa_j_password'
name=
'password'
value=
""
tabindex=
"2"
/></td>
</tr>
<
#if
true=
=isMfa
>
<
#if
"
TOPT
"==
optType
>
<tr>
<td><
@
locale
code=
"login.text.currenttime"
/>
:
</td>
<td>
<input
class=
"form-control"
readonly
type=
'text'
id=
"currentTime"
name=
"currentTime"
tabindex=
"3"
value=
""
/>
</td>
</tr>
</
#
if>
<tr>
<td><
@
locale
code=
"login.text.captcha"
/>
:
</td>
<td>
<input
required=
""
class=
"form-control"
type=
'text'
id=
"tfa_j_otp_captcha"
name=
"otpCaptcha"
tabindex=
"3"
value=
""
style=
"float: left;"
/>
<input
class=
"form-control"
id=
"tfa_j_otp_captcha_button"
type=
"button"
tabindex=
"5"
class=
"button"
value=
"获取动态验证码"
/>
</td>
</tr>
<tr>
<td></td>
<td>
<div
id=
"currentTime"
></div>
</td>
</tr>
</
#
if>
<
#if
true=
=isRemeberMe
>
<tr>
<td
colspan=
"2"
>
<table
style=
"width:100%"
>
<div
class=
"clear"
></div>
</form>
</div>
<div
id=
"div_tfaLogin"
>
<form
id=
"tfaLoginForm"
name=
"tfaLoginForm"
action=
"<@base />/logon.do"
method=
"post"
class=
"needs-validation"
novalidate
>
<input
type=
"hidden"
name=
"authType"
value=
"tfa"
/>
<table
class=
"login_form_table"
>
<tr>
<td
style=
"width:50%"
>
<span
class=
"form_checkbox_label"
>
<input
type=
'checkbox'
id=
"tfa_remeberMe"
name=
"remeberMe"
class=
"checkbox"
tabindex=
"4"
value=
"remeberMe"
/>
<
@
locale
code=
"login.text.remeberme"
/>
</span>
<td><
@
locale
code=
"login.text.username"
/>
:
</td>
<td><input
required=
""
class=
"form-control"
type=
'text'
id=
'tfa_j_username'
name=
'username'
value=
""
tabindex=
"1"
/></td>
</tr>
<tr>
<td><
@
locale
code=
"login.text.password"
/>
:
</td>
<td><input
required=
""
class=
"form-control"
type=
'password'
id=
'tfa_j_password'
name=
'password'
value=
""
tabindex=
"2"
/></td>
</tr>
<
#if
true=
=isMfa
>
<
#if
"
TOPT
"==
optType
>
<tr>
<td><
@
locale
code=
"login.text.currenttime"
/>
:
</td>
<td>
<input
class=
"form-control"
readonly
type=
'text'
id=
"currentTime"
name=
"currentTime"
tabindex=
"3"
value=
""
/>
</td>
</tr>
</
#
if>
<tr>
<td><
@
locale
code=
"login.text.captcha"
/>
:
</td>
<td>
<input
required=
""
class=
"form-control"
type=
'text'
id=
"tfa_j_otp_captcha"
name=
"otpCaptcha"
tabindex=
"3"
value=
""
style=
"float: left;"
/>
<input
class=
"form-control"
id=
"tfa_j_otp_captcha_button"
type=
"button"
tabindex=
"5"
class=
"button"
value=
"获取动态验证码"
/>
</td>
<td
style=
"width:50%"
><a
href=
"<@base />/forgotpassword/forward"
><
@
locale
code=
"login.text.forgotpassword"
/></a></td>
</tr>
<tr>
<td></td>
<td>
<div
id=
"currentTime"
></div>
</td>
</tr>
</
#
if>
<
#if
true=
=isRemeberMe
>
<tr>
<td
colspan=
"2"
>
<table
style=
"width:100%"
>
<tr>
<td
style=
"width:50%"
>
<span
class=
"form_checkbox_label"
>
<input
type=
'checkbox'
id=
"tfa_remeberMe"
name=
"remeberMe"
class=
"checkbox"
tabindex=
"4"
value=
"remeberMe"
/>
<
@
locale
code=
"login.text.remeberme"
/>
</span>
</td>
<td
style=
"width:50%"
><a
href=
"<@base />/forgotpassword/forward"
><
@
locale
code=
"login.text.forgotpassword"
/></a></td>
</tr>
</table>
</td>
</tr>
</
#
if>
<tr
style=
"display:none"
>
<td>
sessionid:
</td>
<td><input
class=
"form-control"
type=
'text'
id=
"tfa_sessionid"
name=
"sessionId"
value=
"${sessionid}"
/></td>
</tr>
<tr
>
<td
colspan=
"2"
>
<input
type=
"submit"
id=
"tfaLoginSubmitButton"
style=
"display: none;"
/>
<input
id=
"tfa_loginSubmit"
type=
"button"
style=
"width: 100%;"
tabindex=
"5"
class=
"button btn btn-lg btn-primary btn-block"
value=
"<@locale code="
login.button.login
"
/>
"/>
</td>
</tr>
</table>
</td>
</tr>
</
#
if>
<tr
style=
"display:none"
>
<td>
sessionid:
</td>
<td><input
class=
"form-control"
type=
'text'
id=
"tfa_sessionid"
name=
"sessionId"
value=
"${sessionid}"
/></td>
</tr>
<tr
>
<td
colspan=
"2"
>
<input
type=
"submit"
id=
"tfaLoginSubmitButton"
style=
"display: none;"
/>
<input
id=
"tfa_loginSubmit"
type=
"button"
style=
"width: 100%;"
tabindex=
"5"
class=
"button btn btn-lg btn-primary btn-block"
value=
"<@locale code="
login.button.login
"
/>
"/>
</td>
</tr>
</table>
<div
class=
"clear"
></div>
</form>
</div>
</td>
</tr>
<tr>
<td>
<table>
<tr
>
<td
><
@
locale
code=
"global.change.language"
/>
:
</td>
<td
>
<div
>
<a
href=
"<@basePath />/login?language=en"
>
<
@
locale
code=
"global.change.language.en"
/>
</a>
|
<a
href=
"<@basePath />/login?language=zh_CN"
>
<
@
locale
code=
"global.change.language.zh"
/>
</a>
/ Locale :
<
@
locale
/>
</div>
<div
class=
"clear"
></div>
</form>
</div>
</td>
</tr>
<tr>
<td>
<table>
<tr
>
<td
><
@
locale
code=
"global.change.language"
/>
:
</td>
<td
>
<div
>
<a
href=
"<@basePath />/login?language=en"
>
<
@
locale
code=
"global.change.language.en"
/>
</a>
|
<a
href=
"<@basePath />/login?language=zh_CN"
>
<
@
locale
code=
"global.change.language.zh"
/>
</a>
/ Locale :
<
@
locale
/>
</div>
</td>
</tr>
<tr>
<td
colspan=
"2"
>
<div>
<table
width=
"100%"
frame=
"void"
cellpadding=
"8px;"
cellspacing=
"8px;"
>
<tr>
<td
align=
"left"
><
@
locale
code=
"login.text.otherlogins"
/>
:
</td>
</tr>
<
#list
ssopList
as
ssop
>
<
#if
(
ssop_index
)%3==0
>
<tr>
</
#
if>
<td
align=
"right"
nowrap
>
<a
href=
"<@base />/logon/oauth20/authorize/${ssop.provider}"
title=
"${ssop.providerName}"
>
<img
src=
"<@base />/static/${ssop.icon}"
title=
"${ssop.providerName}"
style=
"width=:32px;height:32px;border:0;"
/>
</a>
</td>
<
#if
(
ssop_index
+1)%3==0
>
</tr>
</
#
if>
</
#
list>
<
#if
(
ssopList
?
size
)%3!=0
>
</tr>
</
#
if>
</table>
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td
colspan=
"2"
>
<div>
<table
width=
"100%"
frame=
"void"
cellpadding=
"8px;"
cellspacing=
"8px;"
>
<tr>
<td
align=
"left"
><
@
locale
code=
"login.text.otherlogins"
/>
:
</td>
</tr>
<
#list
ssopList
as
ssop
>
<
#if
(
ssop_index
)%3==0
>
<tr>
</
#
if>
<td
align=
"right"
nowrap
>
<a
href=
"<@base />/logon/oauth20/authorize/${ssop.provider}"
title=
"${ssop.providerName}"
>
<img
src=
"<@base />/static/${ssop.icon}"
title=
"${ssop.providerName}"
style=
"width=:32px;height:32px;border:0;"
/>
</a>
</td>
<
#if
(
ssop_index
+1)%3==0
>
</tr>
</
#
if>
</
#
list>
<
#if
(
ssopList
?
size
)%3!=0
>
</tr>
</
#
if>
</table>
</div>
<td
id=
"register"
><
@
locale
code=
"login.text.register"
/></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td
id=
"register"
><
@
locale
code=
"login.text.register"
/></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</div>
<div
class=
"col-sm-2"
></div>
</div>
</div>
<div
id=
"footer"
>
<
#include
"
layout
/
footer.ftl
"
>
...
...
maxkey-web-maxkey/src/main/resources/templates/views/main/appList.ftl
浏览文件 @
5064c274
...
...
@@ -9,14 +9,13 @@
<
#include
"../
layout
/
nav_primary.ftl
"
/>
<div
class=
"container"
>
<
#if
Session
["
current_user
"
].gridList=
=0
>
<table
class=
"table"
>
<
#list
appList
as
app
>
<
#if
(
app_index
)%4==0
>
<tr
>
<div
class=
"row"
>
</
#
if>
<
td
align=
"left"
nowrap
style=
"width:20%
"
>
<table
class=
"none"
style=
"
width:100%;
border-spacing: 0;border-collapse: collapse;"
>
<tr><td
style=
"text-align: center;border-spacing: 0;border-collapse: collapse;border: 0px;"
>
<
div
class=
"col-3"
style=
"min-width: 170px;
"
>
<table
class=
"none"
style=
"
min-width: 170px; min-height: 150px;
border-spacing: 0;border-collapse: collapse;"
>
<tr><td
style=
"text-align: center;border-spacing: 0;border-collapse: collapse;border: 0px;"
>
<
#if
"
Desktop
"==
app.protocol
>
<a
href=
"javascript:void(0);"
title=
"${app.name}"
onclick=
"window.open('<@base/>/authz/${app.id}');"
>
...
...
@@ -28,18 +27,18 @@
<img
src=
"<@base/>/image/${app.id}"
title=
"${app.name}"
width=
"65px"
height=
"65px"
style=
"border:0;"
/>
</a>
</
#
if>
</td></tr>
<tr><td
style=
"text-align: center;border-spacing: 0;border-collapse: collapse;border: 0px;"
>
${app.name}
</td></tr>
</td></tr>
<tr><td
style=
"text-align: center;border-spacing: 0;border-collapse: collapse;border: 0px;"
>
${app.name}
</td></tr>
</table>
</td
>
</div
>
<
#if
(
app_index
+1)%4==0
>
</
tr
>
</
div
>
</
#
if>
</
#
list>
<
#if
(
appList
?
size
)%4!=0
>
</
tr
>
</
div
>
</
#
if>
</table>
<
#else
>
<table
class=
"table"
>
...
...
@@ -89,7 +88,7 @@
</td>
</tr>
</
#
list>
</
table
>
</
div
>
</
#
if>
</div>
<div
id=
"footer"
>
...
...
maxkey-web-maxkey/src/main/resources/templates/views/profile/myProfile.ftl
浏览文件 @
5064c274
...
...
@@ -17,6 +17,8 @@
<
#include
"../
layout
/
top.ftl
"
/>
<
#include
"../
layout
/
nav_primary.ftl
"
/>
<div
class=
"container"
>
<form
id=
"actionFormProfile"
method=
"post"
type=
"alert"
...
...
@@ -24,62 +26,44 @@
action=
"<@base/>/profile/update/myProfile"
enctype=
"multipart/form-data"
class=
"needs-validation"
novalidate
>
<div
class=
""
style=
"width:100%;"
>
<div
class=
"main"
>
<div
class=
"mainin"
>
<!-- content -->
<!--table-->
<input
class=
"form-control"
type=
"hidden"
id=
"id"
name=
"id"
value=
"${model.id!}"
/>
<div
class=
"row"
>
<div
class=
"col-md-6"
>
<!--table-->
<table
class=
"table table-bordered"
>
<tbody>
<tr>
<th
style=
"width:15%;"
><
@
locale
code=
"userinfo.username"
/>
:
</th>
<td
style=
"width:35%;"
>
<input
class=
"form-control"
type=
"hidden"
id=
"id"
name=
"id"
value=
"${model.id!}"
/>
<input
class=
"form-control"
type=
"text"
readonly
id=
"username"
name=
"username"
title=
""
value=
"${model.username!}"
/>
<label
for=
"username"
></label>
</td>
</tr>
<tr>
<th
style=
"width:15%;"
><
@
locale
code=
"userinfo.userType"
/>
:
</th>
<td
style=
"width:35%;"
>
<input
class=
"form-control"
readonly
type=
"text"
id=
"userType"
name=
"userType"
title=
""
value=
"${model.userType !}"
/>
</td>
</tr>
<tr>
<td
colspan=
"4"
>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.displayName"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"text"
id=
"displayName"
name=
"displayName"
title=
""
value=
"${model.displayName!}"
required=
""
/>
<label
for=
"displayName"
></label>
</td>
<th
rowspan=
"4"
><
@
locale
code=
"userinfo.picture"
/>
:
</th>
<td
rowspan=
"4"
>
<
#if
model.picture
?
default
(""
)=
=""
>
<img
id=
"picture"
width=
"150px"
height=
"150px"
src=
"<@base/>/static/images/uploadimage.jpg"
/>
<
#else
>
<img
id=
"picture"
width=
"150px"
height=
"150px"
src=
"<@base/>/image/${model.id}"
/>
</
#
if>
<input
class=
"form-control"
type=
"file"
id=
"pictureFile"
name=
"pictureFile"
style=
"display:none"
/>
<b
class=
"orange"
>
*
</b><label
for=
"picture"
></label>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.familyName"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"text"
id=
"familyName"
name=
"familyName"
title=
""
value=
"${model.familyName!}"
/>
<b
class=
"orange"
>
*
</b><label
for=
"familyName"
></label>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.givenName"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"text"
id=
"givenName"
name=
"givenName"
title=
""
value=
"${model.givenName!}"
/>
<b
class=
"orange"
>
*
</b><label
for=
"givenName"
></label>
</td>
...
...
@@ -88,7 +72,6 @@
<th><
@
locale
code=
"userinfo.middleName"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"text"
id=
"middleName"
name=
"middleName"
title=
""
value=
"${model.middleName!}"
/>
<label
for=
"middleName"
></label>
</td>
...
...
@@ -98,15 +81,16 @@
<th><
@
locale
code=
"userinfo.nickName"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"text"
id=
"nickName"
name=
"nickName"
title=
""
value=
"${model.nickName!}"
/>
<label
for=
"nickName"
></label>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.gender"
/>
:
</th>
<td>
<select
class=
"form-control"
name=
"gender"
class=
"gender"
>
<option
value=
"1"
<
#if
1==
model.gender
>
selected
</
#
if>
>
<
@
locale
code=
"userinfo.gender.female"
/></option>
<option
value=
"2"
<
#if
2==
model.gender
>
selected
</
#
if>
>
<
@
locale
code=
"userinfo.gender.male"
/></option>
</select>
<label
for=
"gender"
></label>
</td>
</tr>
...
...
@@ -122,10 +106,13 @@
<option
value=
"4"
<
#if
4==
model.married
>
selected
</
#
if>
>
<
@
locale
code=
"userinfo.married.widowed"
/></option>
</select>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.website"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"text"
id=
"webSite"
name=
"webSite"
title=
""
value=
"${model.webSite!}"
/>
<label
for=
"webSite"
></label>
</td>
</tr>
...
...
@@ -141,23 +128,21 @@
</select>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.idCardNo"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"text"
id=
"idCardNo"
name=
"idCardNo"
title=
""
value=
"${model.idCardNo!}"
/>
<label
for=
"idCardNo"
></label>
</td>
</tr>
<tr>
<td
colspan=
"4"
>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.startWorkDate"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"text"
class=
"datepicker"
id=
"startWorkDate"
name=
"startWorkDate"
title=
""
value=
"${model.startWorkDate!}"
/>
<label
for=
"startWorkDate"
></label>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.preferredLanguage"
/>
:
</th>
<td>
<select
class=
"form-control"
name=
"preferredLanguage"
id=
"preferredLanguage"
>
...
...
@@ -286,6 +271,8 @@
</select>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.locale"
/>
:
</th>
<td>
<select
class=
"form-control"
name=
"locale"
id=
"locale"
>
...
...
@@ -308,48 +295,72 @@
</select>
</td>
</tr>
</tbody>
</table>
</div>
<div
class=
"col-md-6"
>
<!--table-->
<table
class=
"table table-bordered"
>
<tbody>
<tr>
<td
colspan=
"4"
>
<th
><
@
locale
code=
"userinfo.picture"
/>
:
</th>
<td>
<img
id=
"picture"
width=
"150px"
height=
"215px"
<
#if
model.picture
?
default
(""
)=
=""
>
src="
<
@
base
/>
/static/images/uploadimage.jpg" />
<
#else
>
src="
<
@
base
/>
/image/${model.id}" />
</
#
if>
<input
class=
"form-control"
type=
"file"
id=
"pictureFile"
name=
"pictureFile"
style=
"display:none"
/>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.employeeNumber"
/>
:
</th>
<td>
<input
class=
"form-control"
readonly
type=
"text"
id=
"employeeNumber"
name=
"employeeNumber"
title=
""
value=
"${model.employeeNumber!}"
/>
<label
for=
"username"
></label>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.windowsAccount"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"text"
id=
"windowsAccount"
name=
"windowsAccount"
title=
""
value=
"${model.windowsAccount!}"
/>
<label
for=
"windowsAccount"
></label>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.organization"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"text"
id=
"organization"
name=
"organization"
title=
""
value=
"${model.organization!}"
/>
<label
for=
"organization"
></label>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.division"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"text"
id=
"division"
name=
"division"
title=
""
value=
"${model.division!}"
/>
<label
for=
"division"
></label>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.department"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"hidden"
id=
"departmentId"
name=
"departmentId"
title=
""
value=
"${model.departmentId!}"
/>
<input
class=
"form-control"
type=
"text"
id=
"department"
name=
"department"
title=
""
value=
"${model.department!}"
/>
<label
for=
"department"
></label>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.costCenter"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"text"
id=
"costCenter"
name=
"costCenter"
title=
""
value=
"${model.costCenter!}"
/>
<label
for=
"costCenter"
></label>
</td>
</tr>
...
...
@@ -357,12 +368,14 @@
<th><
@
locale
code=
"userinfo.jobTitle"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"text"
id=
"jobTitle"
name=
"jobTitle"
title=
""
value=
"${model.jobTitle!}"
/>
<label
for=
"jobTitle"
></label>
</td>
<th><
@
locale
code=
"userinfo.jobLevel"
/>
:
</th>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.jobTitle"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"text"
id=
"job
Level"
name=
"jobLevel"
title=
""
value=
"${model.jobLevel
!}"
/>
<label
for=
"jobLevel"
></label>
<input
class=
"form-control"
type=
"text"
id=
"job
Title"
name=
"jobTitle"
title=
""
value=
"${model.jobTitle
!}"
/>
</td>
</tr>
<tr>
...
...
@@ -370,29 +383,48 @@
<td>
<input
class=
"form-control"
type=
"hidden"
id=
"managerId"
name=
"managerId"
title=
""
value=
"${model.managerId!}"
/>
<input
class=
"form-control"
type=
"text"
id=
"manager"
name=
"manager"
title=
""
value=
"${model.manager!}"
/>
<label
for=
"manager"
></label>
</td>
<th><
@
locale
code=
"userinfo.assistant"
/>
:
</th>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.manager"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"hidden"
id=
"
assistantId"
name=
"assistantId"
title=
""
value=
"${model.assistant
Id!}"
/>
<input
class=
"form-control"
type=
"text"
id=
"assistant"
name=
"assistant"
title=
""
value=
"${model.assistant
!}"
/>
<label
for=
"delegatedApprover"
></label>
<input
class=
"form-control"
type=
"hidden"
id=
"
managerId"
name=
"managerId"
title=
""
value=
"${model.manager
Id!}"
/>
<input
class=
"form-control"
type=
"text"
id=
"manager"
name=
"manager"
title=
""
value=
"${model.manager
!}"
/>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.entryDate"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"text"
class=
"datepicker"
id=
"entryDate"
name=
"entryDate"
title=
""
value=
"${model.entryDate!}"
/>
<label
for=
"entryDate"
></label>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.quitDate"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"text"
class=
"datepicker"
id=
"quitDate"
name=
"quitDate"
title=
""
value=
"${model.quitDate!}"
/>
<label
for=
"delegatedApprover"
></label>
</td>
</tr>
<tr>
<td
colspan=
"4"
>
</tbody>
</table>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-md-6"
>
<table
class=
"table table-bordered"
>
<tbody>
<tr>
<td
colspan=
"2"
>
单位信息
</td>
</tr>
...
...
@@ -652,6 +684,8 @@
</select>
<label
for=
"workCountry"
></label>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.workRegion"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"text"
id=
"workRegion"
name=
"workRegion"
title=
""
value=
"${model.workRegion!}"
/>
...
...
@@ -665,6 +699,8 @@
<input
class=
"form-control"
type=
"text"
id=
"workLocality"
name=
"workLocality"
title=
""
value=
"${model.workLocality!}"
/>
<label
for=
"workLocality"
></label>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.workStreetAddress"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"text"
id=
"workStreetAddress"
name=
"workStreetAddress"
title=
""
value=
"${model.workStreetAddress!}"
/>
...
...
@@ -678,19 +714,23 @@
<input
class=
"form-control"
type=
"text"
id=
"workPostalCode"
name=
"workPostalCode"
title=
""
value=
"${model.workPostalCode!}"
/>
<label
for=
"workPostalCode"
></label>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.workFax"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"text"
id=
"workFax"
name=
"workFax"
title=
""
value=
"${model.workFax!}"
/>
<label
for=
"workFax"
></label>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.workPhoneNumber"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"text"
id=
"workPhoneNumber"
name=
"workPhoneNumber"
title=
""
value=
"${model.workPhoneNumber!}"
/>
<label
for=
"workPhoneNumber"
></label>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.workEmail"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"text"
id=
"workEmail"
name=
"workEmail"
title=
""
value=
"${model.workEmail!}"
/>
...
...
@@ -698,8 +738,14 @@
</td>
</tr>
<tr>
<td
colspan=
"4"
>
</tbody>
</table>
</div>
<div
class=
"col-md-6"
>
<table
class=
"table table-bordered"
>
<tbody>
<tr>
<td
colspan=
"2"
>
家庭信息
</td>
</tr>
...
...
@@ -960,6 +1006,8 @@
</select>
<label
for=
"homeCountry"
></label>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.homeRegion"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"text"
id=
"homeRegion"
name=
"homeRegion"
title=
""
value=
"${model.homeRegion!}"
/>
...
...
@@ -973,6 +1021,8 @@
<input
class=
"form-control"
type=
"text"
id=
"homeLocality"
name=
"homeLocality"
title=
""
value=
"${model.homeLocality!}"
/>
<label
for=
"homeLocality"
></label>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.homeStreetAddress"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"text"
id=
"homeStreetAddress"
name=
"homeStreetAddress"
title=
""
value=
"${model.homeStreetAddress!}"
/>
...
...
@@ -986,6 +1036,8 @@
<input
class=
"form-control"
type=
"text"
id=
"homePostalCode"
name=
"homePostalCode"
title=
""
value=
"${model.homePostalCode!}"
/>
<label
for=
"homePostalCode"
></label>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.homeFax"
/>
:
</th>
<td>
<input
class=
"form-control"
type=
"text"
id=
"homeFax"
name=
"homeFax"
title=
""
value=
"${model.homeFax!}"
/>
...
...
@@ -999,22 +1051,19 @@
<input
class=
"form-control"
type=
"text"
id=
"homePhoneNumber"
name=
"homePhoneNumber"
title=
""
value=
"${model.homePhoneNumber!}"
/>
<label
for=
"homePhoneNumber"
></label>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.homeEmail"
/>
:
</th>
<td
>
<input
class=
"form-control"
type=
"text"
id=
"homeEmail"
name=
"homeEmail"
title=
""
value=
"${model.homeEmail!}"
/>
<label
for=
"homeEmail"
></label>
</td>
</tr>
<tr>
<td
colspan=
"4"
>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div
class=
"clear"
></div>
</div>
</div>
<div
>
<div
>
<input
id=
"_method"
type=
"hidden"
name=
"_method"
value=
"post"
/>
...
...
@@ -1022,7 +1071,7 @@
<input
id=
"submitBtn"
class=
"button btn btn-primary mr-3"
type=
"button"
value=
"<@locale code="
button.text.save
"
/>
"/>
</div>
</div>
</div>
</div>
</form>
</div>
<div
id=
"footer"
>
...
...
maxkey-web-maxkey/src/main/resources/templates/views/safe/changePassword.ftl
浏览文件 @
5064c274
...
...
@@ -8,10 +8,9 @@
<
#include
"../
layout
/
top.ftl
"
/>
<
#include
"../
layout
/
nav_primary.ftl
"
/>
<div
class=
"container"
>
<table
width=
"100%"
>
<tr>
<td>
<div
class=
"row"
>
<div
class=
"col-md-1"
></div>
<div
class=
"col-md-10"
>
<form
method=
"post"
action=
"<@base/>/safe/changePassword"
class=
"needs-validation"
novalidate
>
<table
class=
"table table-bordered"
>
...
...
@@ -63,9 +62,9 @@
</tbody>
</table>
</form>
</
td
>
</tr
>
</
table
>
</
div
>
<div
class=
"col-md-1"
></div
>
</
div
>
</div>
<div
id=
"footer"
>
<
#include
"../
layout
/
footer.ftl
"
/>
...
...
maxkey-web-maxkey/src/main/resources/templates/views/safe/setting.ftl
浏览文件 @
5064c274
...
...
@@ -8,20 +8,18 @@
<
#include
"../
layout
/
top.ftl
"
/>
<
#include
"../
layout
/
nav_primary.ftl
"
/>
<div
class=
"container"
>
<table
width=
"100%"
>
<tr>
<td>
<div
class=
"row"
>
<div
class=
"col-md-1"
></div>
<div
class=
"col-md-10"
>
<form
id=
"actionForm"
method=
"post"
type=
"label"
autoclose=
"true"
action=
"<@base/>/safe/setting"
class=
"needs-validation"
novalidate
>
<table
class=
"table table-bordered"
>
<table
class=
"table table-bordered"
style=
"width:100%;"
>
<tbody>
<tr>
<th
colspan=
"2"
><
@
locale
code=
"userinfo.authnType"
/></th>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.displayName"
/>
:
</th>
<td
style=
"width:700px"
>
<td
>
<input
class=
"form-control"
readonly
type=
"text"
id=
"displayName"
name=
"displayName"
class=
"required"
title=
""
value=
"${model.displayName}"
/>
</td>
...
...
@@ -104,9 +102,9 @@
</tbody>
</table>
</form>
</
td
>
</tr
>
</
table
>
</
div
>
<div
class=
"col-md-1"
></div
>
</
div
>
</div>
<div
id=
"footer"
>
<
#include
"../
layout
/
footer.ftl
"
/>
...
...
maxkey-web-maxkey/src/main/resources/templates/views/safe/timeBased.ftl
浏览文件 @
5064c274
...
...
@@ -8,72 +8,73 @@
<
#include
"../
layout
/
top.ftl
"
/>
<
#include
"../
layout
/
nav_primary.ftl
"
/>
<div
class=
"container"
>
<table
class=
"table table-bordered"
style=
"width:100%;"
>
<tbody>
<tr>
<td
colspan=
"2"
><
@
locale
code=
"login.totp.title"
/></td>
</tr>
<tr>
<td>
<img
id=
"captchaimg"
src=
"<@base/>/image/${id}"
/><br>
支持
<b>
Google Authenticator等
</b></td>
<td
style=
"width:75%;"
>
<table
class=
"table"
style=
"width:100%;"
>
<tr>
<th
style=
"width:30%;"
><
@
locale
code=
"userinfo.displayName"
/>
:
</th>
<td>
<input
readonly
type=
"text"
class=
"required form-control"
title=
""
value=
"${userInfo.displayName}"
/>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.username"
/>
:
</th>
<td>
<input
readonly
type=
"text"
class=
"required form-control"
title=
""
value=
"${userInfo.username}"
/>
</td>
</tr>
<tr>
<th><
@
locale
code=
"login.totp.sharedSecret"
/>
(BASE32) :
</th>
<td>
<input
readonly
type=
"text"
class=
"required form-control"
title=
""
value=
"${sharedSecret}"
/>
</td>
</tr>
<tr>
<th><
@
locale
code=
"login.totp.sharedSecret"
/>
(HEX) :
</th>
<td>
<input
readonly
type=
"text"
class=
"required form-control"
title=
""
value=
"${hexSharedSecret}"
/>
</td>
</tr>
<tr>
<th><
@
locale
code=
"login.totp.period"
/>
:
</th>
<td>
<input
readonly
type=
"text"
class=
"required form-control"
title=
""
value=
"${format.period}"
/>
</td>
</tr>
<tr>
<th><
@
locale
code=
"login.totp.digits"
/>
:
</th>
<td>
<input
readonly
type=
"text"
class=
"required form-control"
title=
""
value=
"${format.digits}"
/>
</td>
</tr>
<tr>
<th><
@
locale
code=
"login.totp.crypto"
/>
:
</th>
<td>
<input
readonly
type=
"text"
class=
"required form-control"
title=
""
value=
"${format.crypto}"
/>
</td>
</tr>
<div
class=
"row"
>
<div
class=
"col-md-12"
>
<
@
locale
code=
"login.totp.title"
/>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-md-6"
>
<img
id=
"captchaimg"
src=
"<@base/>/image/${id}"
/><br>
支持
<b>
Google Authenticator等
</b>
</div>
<div
class=
"col-md-6"
>
<table
class=
"table table-bordered"
>
<tr>
<th
style=
"width:30%;"
><
@
locale
code=
"userinfo.displayName"
/>
:
</th>
<td>
<input
readonly
type=
"text"
class=
"required form-control"
title=
""
value=
"${userInfo.displayName}"
/>
<tr>
<td
colspan=
"2"
class=
"center"
>
<input
class=
"button forward btn btn-primary"
style=
"width:100px"
wurl=
"<@base/>/safe/otp/gen/timebased"
type=
"button"
id=
"forward"
value=
"<@locale code="
login.totp.generate
"
/>
"/>
</td>
</tr>
</table>
</td>
</tr>
</tbody>
</table>
<div
id=
"footer"
>
<
#include
"../
layout
/
footer.ftl
"
/>
</div>
</td>
</tr>
<tr>
<th><
@
locale
code=
"userinfo.username"
/>
:
</th>
<td>
<input
readonly
type=
"text"
class=
"required form-control"
title=
""
value=
"${userInfo.username}"
/>
</td>
</tr>
<tr>
<th><
@
locale
code=
"login.totp.sharedSecret"
/>
(BASE32) :
</th>
<td>
<input
readonly
type=
"text"
class=
"required form-control"
title=
""
value=
"${sharedSecret}"
/>
</td>
</tr>
<tr>
<th><
@
locale
code=
"login.totp.sharedSecret"
/>
(HEX) :
</th>
<td>
<input
readonly
type=
"text"
class=
"required form-control"
title=
""
value=
"${hexSharedSecret}"
/>
</td>
</tr>
<tr>
<th><
@
locale
code=
"login.totp.period"
/>
:
</th>
<td>
<input
readonly
type=
"text"
class=
"required form-control"
title=
""
value=
"${format.period}"
/>
</td>
</tr>
<tr>
<th><
@
locale
code=
"login.totp.digits"
/>
:
</th>
<td>
<input
readonly
type=
"text"
class=
"required form-control"
title=
""
value=
"${format.digits}"
/>
</td>
</tr>
<tr>
<th><
@
locale
code=
"login.totp.crypto"
/>
:
</th>
<td>
<input
readonly
type=
"text"
class=
"required form-control"
title=
""
value=
"${format.crypto}"
/>
</td>
</tr>
<tr>
<td
colspan=
"2"
class=
"center"
>
<input
class=
"button forward btn btn-primary"
style=
"width:100px"
wurl=
"<@base/>/safe/otp/gen/timebased"
type=
"button"
id=
"forward"
value=
"<@locale code="
login.totp.generate
"
/>
"/>
</td>
</tr>
</table>
</div>
</div>
<div
id=
"footer"
>
<
#include
"../
layout
/
footer.ftl
"
/>
</div>
<body>
</html>
\ No newline at end of file
maxkey-web-maxkey/src/main/resources/templates/views/social/socialSignOnProvider.ftl
浏览文件 @
5064c274
...
...
@@ -8,14 +8,14 @@
<
#include
"../
layout
/
top.ftl
"
/>
<
#include
"../
layout
/
nav_primary.ftl
"
/>
<div
class=
"container"
>
<table
class=
"table"
>
<
#list
listSocialSignOnProvider
as
socialSignOnProvider
>
<
#if
(
socialSignOnProvider_index
)%4==0
>
<
tr
>
<
div
class=
"row"
>
</
#
if>
<
td
align=
"left"
nowrap
style=
"width:25%
"
>
<
div
class=
"col-3"
style=
"min-width: 170px;
"
>
<
#if
socialSignOnProvider.provider
?
default
("")!=""
>
<table
class=
"none"
style=
"
width:100%
;"
>
<table
class=
"none"
style=
"
min-width: 170px; min-height: 150px
;"
>
<tr><td
style=
"text-align: center;border-spacing: 0;border-collapse: collapse;border: 0px;"
>
<img
src=
"<@base />/static/${socialSignOnProvider.icon}"
title=
"${socialSignOnProvider.providerName}"
width=
"65px;"
height=
"65px;"
/>
</td></tr>
...
...
@@ -29,12 +29,11 @@
</div></td></tr>
</table>
</
#
if>
</
td
>
</
div
>
<
#if
(
socialSignOnProvider_index
+1)%4==0
>
</
tr
>
</
div
>
</
#
if>
</
#
list>
</table>
</div
>
<div
id=
"footer"
>
<
#include
"../
layout
/
footer.ftl
"
/>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录