Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
J
jumpserver
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ops
jumpserver
Commits
c4196e7d
Commit
c4196e7d
authored
Jan 26, 2015
by
ibuler
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改组方面授权
parent
ca3d4de8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
488 additions
and
85 deletions
+488
-85
models.py
jperm/models.py
+15
-5
urls.py
jperm/urls.py
+4
-1
views.py
jperm/views.py
+27
-9
custom.css
static/css/plugins/iCheck/custom.css
+0
-0
icheck.min.js
static/js/plugins/iCheck/icheck.min.js
+9
-9
css_js.html
templates/css_js.html
+0
-34
perm_group_edit.html
templates/jperm/perm_group_edit.html
+152
-0
perm_host.html
templates/jperm/perm_host.html
+4
-4
perm_user_detail.html
templates/jperm/perm_user_detail.html
+48
-0
perm_user_edit.html
templates/jperm/perm_user_edit.html
+0
-0
user_add.html
templates/juser/user_add.html
+60
-1
user_list.html
templates/juser/user_list.html
+7
-4
user_list1.html
templates/juser/user_list1.html
+131
-0
link_css.html
templates/link_css.html
+1
-4
script.html
templates/script.html
+30
-14
No files found.
jperm/models.py
View file @
c4196e7d
from
django.db
import
models
from
juser.models
import
User
from
jasset.models
import
Asset
from
juser.models
import
User
,
UserGroup
from
jasset.models
import
Asset
,
BisGroup
class
Perm
(
models
.
Model
):
class
Perm
User
(
models
.
Model
):
user
=
models
.
ForeignKey
(
User
)
asset
=
models
.
ForeignKey
(
Asset
)
asset_group
=
models
.
ForeignKey
(
BisGroup
)
def
__unicode__
(
self
):
return
'
%
s_
%
s'
%
(
self
.
user
.
username
,
self
.
asset
.
ip
)
\ No newline at end of file
return
'
%
s_
%
s'
%
(
self
.
user
.
username
,
self
.
asset
.
ip
)
class
PermUserGroup
(
models
.
Model
):
group
=
models
.
ForeignKey
(
UserGroup
)
asset
=
models
.
ForeignKey
(
Asset
)
asset_group
=
models
.
ForeignKey
(
BisGroup
)
def
__unicode__
(
self
):
return
'
%
s_
%
s'
%
(
self
.
group
.
name
,
self
.
asset
.
ip
)
\ No newline at end of file
jperm/urls.py
View file @
c4196e7d
...
...
@@ -10,5 +10,8 @@ urlpatterns = patterns('jperm.views',
(
r'^perm_add/$'
,
'perm_add'
),
(
r'^perm_user_show/$'
,
'perm_user_show'
),
(
r'^perm_host/$'
,
'perm_list'
),
(
r'^perm_edit/$'
,
'perm_edit'
),
(
r'^perm_user_edit/$'
,
'perm_user_edit'
),
(
r'^perm_user_detail/$'
,
'perm_user_detail'
),
(
r'^perm_group_edit/$'
,
'perm_group_edit'
),
(
r'^perm_group_detail/$'
,
'perm_group_detail'
),
)
jperm/views.py
View file @
c4196e7d
...
...
@@ -28,14 +28,15 @@ def perm_host(request):
return
render_to_response
(
'jperm/perm_host.html'
,
locals
())
def
perm_user_host
(
username
,
ip
):
def
perm_user_host
(
username
,
ip
s
):
user
=
User
.
objects
.
get
(
username
=
username
)
asset
=
Asset
.
objects
.
get
(
ip
=
ip
)
if
not
Perm
.
objects
.
filter
(
user
=
user
,
asset
=
asset
):
user
.
perm_set
.
all
()
.
delete
()
for
ip
in
ips
:
asset
=
Asset
.
objects
.
get
(
ip
=
ip
)
Perm
.
objects
.
create
(
user
=
user
,
asset
=
asset
)
def
perm_edit
(
request
):
def
perm_
user_
edit
(
request
):
header_title
,
path1
,
path2
=
u'授权编辑 | Perm Edit.'
,
u'jperm'
,
u'perm_edit'
if
request
.
method
==
'GET'
:
if
request
.
GET
.
get
(
'id'
,
None
):
...
...
@@ -46,16 +47,33 @@ def perm_edit(request):
for
perm
in
user
.
perm_set
.
all
():
assets_permed
.
append
(
perm
.
asset
)
assets_unperm
=
list
(
set
(
assets
)
-
set
(
assets_permed
))
return
render_to_response
(
'jperm/perm_edit.html'
,
locals
())
return
render_to_response
(
'jperm/perm_
user_
edit.html'
,
locals
())
else
:
host_ips
=
request
.
POST
.
getlist
(
'host_permed'
,
''
)
username
=
request
.
POST
.
get
(
'username'
)
for
ip
in
host_ips
:
perm_user_host
(
username
,
ip
)
perm_user_host
(
username
,
host_ips
)
return
HttpResponseRedirect
(
'/jperm/perm_host/'
)
def
perm_user_detail
(
request
):
user_id
=
request
.
GET
.
get
(
'id'
,
''
)
user
=
User
.
objects
.
get
(
id
=
user_id
)
host_permed
=
[]
for
perm
in
user
.
perm_set
.
all
():
host_permed
.
append
(
perm
.
asset
)
return
render_to_response
(
'jperm/perm_user_detail.html'
,
locals
())
def
perm_group_edit
(
request
):
if
request
.
method
==
'GET'
:
group_id
=
request
.
GET
.
get
(
'id'
,
''
)
group
=
UserGroup
.
objects
.
get
(
id
=
group_id
)
return
render_to_response
(
'jperm/perm_group_edit.html'
)
def
perm_add
(
request
):
header_title
,
path1
,
path2
=
u'添加授权 | Add User perm.'
,
u'授权管理'
,
u'添加授权'
if
request
.
method
==
'GET'
:
...
...
@@ -76,8 +94,8 @@ def perm_add(request):
host_ids
=
request
.
POST
.
getlist
(
'host_ids'
,
None
)
user
=
User
.
objects
.
get
(
username
=
username
)
for
id
in
host_ids
:
asset
=
Asset
.
objects
.
get
(
id
=
id
)
for
host_
id
in
host_ids
:
asset
=
Asset
.
objects
.
get
(
id
=
host_
id
)
perm
=
Perm
(
user
=
user
,
asset
=
asset
)
perm
.
save
()
msg
=
u'添加成功'
...
...
static/css/plugins/iCheck/custom.css
View file @
c4196e7d
This diff is collapsed.
Click to expand it.
static/js/plugins/iCheck/icheck.min.js
View file @
c4196e7d
/*! iCheck v1.0.2 by Damir Sultanov, http://git.io/arlzeA, MIT Licensed */
(
function
(
f
){
function
A
(
a
,
b
,
d
){
var
c
=
a
[
0
],
g
=
/er/
.
test
(
d
)?
_indeterminate
:
/bl/
.
test
(
d
)?
n
:
k
,
e
=
d
==
_update
?{
checked
:
c
[
k
],
disabled
:
c
[
n
],
indeterminate
:
"true"
==
a
.
attr
(
_indeterminate
)
||
"false"
==
a
.
attr
(
_determinate
)}:
c
[
g
];
if
(
/^
(
ch|di|in
)
/
.
test
(
d
)
&&!
e
)
x
(
a
,
g
);
else
if
(
/^
(
un|en|de
)
/
.
test
(
d
)
&&
e
)
q
(
a
,
g
);
else
if
(
d
==
_update
)
for
(
var
f
in
e
)
e
[
f
]?
x
(
a
,
f
,
!
0
):
q
(
a
,
f
,
!
0
);
else
if
(
!
b
||
"toggle"
==
d
){
if
(
!
b
)
a
[
_callback
](
"ifClicked"
);
e
?
c
[
_type
]
!==
r
&&
q
(
a
,
g
):
x
(
a
,
g
)}}
function
x
(
a
,
b
,
d
){
var
c
=
a
[
0
],
g
=
a
.
parent
(),
e
=
b
==
k
,
u
=
b
==
_indeterminate
,
v
=
b
==
n
,
s
=
u
?
_determinate
:
e
?
y
:
"enabled"
,
F
=
l
(
a
,
s
+
t
(
c
[
_type
])),
B
=
l
(
a
,
b
+
t
(
c
[
_type
]));
if
(
!
0
!==
c
[
b
]){
if
(
!
d
&&
b
==
k
&&
c
[
_type
]
==
r
&&
c
.
name
){
var
w
=
a
.
closest
(
"form"
),
p
=
'input[name="'
+
c
.
name
+
'"]'
,
p
=
w
.
length
?
w
.
find
(
p
):
f
(
p
);
p
.
each
(
function
(){
this
!==
c
&&
f
(
this
).
data
(
m
)
&&
q
(
f
(
this
),
b
)})}
u
?(
c
[
b
]
=!
0
,
c
[
k
]
&&
q
(
a
,
k
,
"force"
)):(
d
||
(
c
[
b
]
=!
0
),
e
&&
c
[
_indeterminate
]
&&
q
(
a
,
_indeterminate
,
!
1
));
D
(
a
,
e
,
b
,
d
)}
c
[
n
]
&&
l
(
a
,
_cursor
,
!
0
)
&&
g
.
find
(
"."
+
C
).
css
(
_cursor
,
"default"
);
g
[
_add
](
B
||
l
(
a
,
b
)
||
""
);
g
.
attr
(
"role"
)
&&!
u
&&
g
.
attr
(
"aria-"
+
(
v
?
n
:
k
),
"true"
);
g
[
_remove
](
F
||
l
(
a
,
s
)
||
""
)}
function
q
(
a
,
b
,
d
){
var
c
=
a
[
0
],
g
=
a
.
parent
(),
e
=
b
==
k
,
f
=
b
==
_indeterminate
,
m
=
b
==
n
,
s
=
f
?
_determinate
:
e
?
y
:
"enabled"
,
q
=
l
(
a
,
s
+
t
(
c
[
_type
])),
r
=
l
(
a
,
b
+
t
(
c
[
_type
]));
if
(
!
1
!==
c
[
b
]){
if
(
f
||!
d
||
"force"
==
d
)
c
[
b
]
=!
1
;
D
(
a
,
e
,
s
,
d
)}
!
c
[
n
]
&&
l
(
a
,
_cursor
,
!
0
)
&&
g
.
find
(
"."
+
C
).
css
(
_cursor
,
"pointer"
);
g
[
_remove
](
r
||
l
(
a
,
b
)
||
""
);
g
.
attr
(
"role"
)
&&!
f
&&
g
.
attr
(
"aria-"
+
(
m
?
n
:
k
),
"false"
);
g
[
_add
](
q
||
l
(
a
,
s
)
||
""
)}
function
E
(
a
,
b
){
if
(
a
.
data
(
m
)){
a
.
parent
().
html
(
a
.
attr
(
"style"
,
a
.
data
(
m
).
s
||
""
));
if
(
b
)
a
[
_callback
](
b
);
a
.
off
(
".i"
).
unwrap
();
f
(
_label
+
'[for="'
+
a
[
0
].
id
+
'"]'
).
add
(
a
.
closest
(
_label
)).
off
(
".i"
)}}
function
l
(
a
,
b
,
f
){
if
(
a
.
data
(
m
))
return
a
.
data
(
m
).
o
[
b
+
(
f
?
""
:
"Class"
)]}
function
t
(
a
){
return
a
.
charAt
(
0
).
toUpperCase
()
+
a
.
slice
(
1
)}
function
D
(
a
,
b
,
f
,
c
){
if
(
!
c
){
if
(
b
)
a
[
_callback
](
"ifToggled"
);
a
[
_callback
](
"ifChanged"
)[
_callback
](
"if"
+
t
(
f
))}}
var
m
=
"iCheck"
,
C
=
m
+
"-helper"
,
r
=
"radio"
,
k
=
"checked"
,
y
=
"un"
+
k
,
n
=
"disabled"
;
_determinate
=
"determinate"
;
_indeterminate
=
"in"
+
_determinate
;
_update
=
"update"
;
_type
=
"type"
;
_click
=
"click"
;
_touch
=
"touchbegin.i touchend.i"
;
_add
=
"addClass"
;
_remove
=
"removeClass"
;
_callback
=
"trigger"
;
_label
=
"label"
;
_cursor
=
"cursor"
;
_mobile
=
/ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i
.
test
(
navigator
.
userAgent
);
f
.
fn
[
m
]
=
function
(
a
,
b
){
var
d
=
'input[type="checkbox"], input[type="'
+
r
+
'"]'
,
c
=
f
(),
g
=
function
(
a
){
a
.
each
(
function
(){
var
a
=
f
(
this
);
c
=
a
.
is
(
d
)?
c
.
add
(
a
):
c
.
add
(
a
.
find
(
d
))})};
if
(
/^
(
check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy
)
$/i
.
test
(
a
))
return
a
=
a
.
toLowerCase
(),
g
(
this
),
c
.
each
(
function
(){
var
c
=
f
(
this
);
"destroy"
==
a
?
E
(
c
,
"ifDestroyed"
):
A
(
c
,
!
0
,
a
);
f
.
isFunction
(
b
)
&&
b
()});
if
(
"object"
!=
typeof
a
&&
a
)
return
this
;
var
e
=
f
.
extend
({
checkedClass
:
k
,
disabledClass
:
n
,
indeterminateClass
:
_indeterminate
,
labelHover
:
!
0
},
a
),
l
=
e
.
handle
,
v
=
e
.
hoverClass
||
"hover"
,
s
=
e
.
focusClass
||
"focus"
,
t
=
e
.
activeClass
||
"active"
,
B
=!!
e
.
labelHover
,
w
=
e
.
labelHoverClass
||
"hover"
,
p
=
(
""
+
e
.
increaseArea
).
replace
(
"%"
,
""
)
|
0
;
if
(
"checkbox"
==
l
||
l
==
r
)
d
=
'input[type="'
+
l
+
'"]'
;
-
50
>
p
&&
(
p
=-
50
);
g
(
this
);
return
c
.
each
(
function
(){
var
a
=
f
(
this
);
E
(
a
);
var
c
=
this
,
b
=
c
.
id
,
g
=-
p
+
"%"
,
d
=
100
+
2
*
p
+
"%"
,
d
=
{
position
:
"absolute"
,
top
:
g
,
left
:
g
,
display
:
"block"
,
width
:
d
,
height
:
d
,
margin
:
0
,
padding
:
0
,
background
:
"#fff"
,
border
:
0
,
opacity
:
0
},
g
=
_mobile
?{
position
:
"absolute"
,
visibility
:
"hidden"
}:
p
?
d
:{
position
:
"absolute"
,
opacity
:
0
},
l
=
"checkbox"
==
c
[
_type
]?
e
.
checkboxClass
||
"icheckbox"
:
e
.
radioClass
||
"i"
+
r
,
z
=
f
(
_label
+
'[for="'
+
b
+
'"]'
).
add
(
a
.
closest
(
_label
)),
u
=!!
e
.
aria
,
y
=
m
+
"-"
+
Math
.
random
().
toString
(
36
).
substr
(
2
,
6
),
h
=
'<div class="'
+
l
+
'" '
+
(
u
?
'role="'
+
c
[
_type
]
+
'" '
:
""
);
u
&&
z
.
each
(
function
(){
h
+=
'aria-labelledby="'
;
this
.
id
?
h
+=
this
.
id
:(
this
.
id
=
y
,
h
+=
y
);
h
+=
'"'
});
h
=
a
.
wrap
(
h
+
"/>"
)[
_callback
](
"ifCreated"
).
parent
().
append
(
e
.
insert
);
d
=
f
(
'<ins class="'
+
C
+
'"/>'
).
css
(
d
).
appendTo
(
h
);
a
.
data
(
m
,{
o
:
e
,
s
:
a
.
attr
(
"style"
)}).
css
(
g
);
e
.
inheritClass
&&
h
[
_add
](
c
.
className
||
""
);
e
.
inheritID
&&
b
&&
h
.
attr
(
"id"
,
m
+
"-"
+
b
);
"static"
==
h
.
css
(
"position"
)
&&
h
.
css
(
"position"
,
"relative"
);
A
(
a
,
!
0
,
_update
);
if
(
z
.
length
)
z
.
on
(
_click
+
".i mouseover.i mouseout.i "
+
_touch
,
function
(
b
){
var
d
=
b
[
_type
],
e
=
f
(
this
);
if
(
!
c
[
n
]){
if
(
d
==
_click
){
if
(
f
(
b
.
target
).
is
(
"a"
))
return
;
A
(
a
,
!
1
,
!
0
)}
else
B
&&
(
/ut|nd/
.
test
(
d
)?(
h
[
_remove
](
v
),
e
[
_remove
](
w
)):(
h
[
_add
](
v
),
e
[
_add
](
w
)));
if
(
_mobile
)
b
.
stopPropagation
();
else
return
!
1
}});
a
.
on
(
_click
+
".i focus.i blur.i keyup.i keydown.i keypress.i"
,
function
(
b
){
var
d
=
b
[
_type
];
b
=
b
.
keyCode
;
if
(
d
==
_click
)
return
!
1
;
if
(
"keydown"
==
d
&&
32
==
b
)
return
c
[
_type
]
==
r
&&
c
[
k
]
||
(
c
[
k
]?
q
(
a
,
k
):
x
(
a
,
k
)),
!
1
;
if
(
"keyup"
==
d
&&
c
[
_type
]
==
r
)
!
c
[
k
]
&&
x
(
a
,
k
);
else
if
(
/us|ur/
.
test
(
d
))
h
[
"blur"
==
d
?
_remove
:
_add
](
s
)});
d
.
on
(
_click
+
" mousedown mouseup mouseover mouseout "
+
_touch
,
function
(
b
){
var
d
=
b
[
_type
],
e
=
/wn|up/
.
test
(
d
)?
t
:
v
;
if
(
!
c
[
n
]){
if
(
d
==
_click
)
A
(
a
,
!
1
,
!
0
);
else
{
if
(
/wn|er|in/
.
test
(
d
))
h
[
_add
](
e
);
else
h
[
_remove
](
e
+
" "
+
t
);
if
(
z
.
length
&&
B
&&
e
==
v
)
z
[
/ut|nd/
.
test
(
d
)?
_remove
:
_add
](
w
)}
if
(
_mobile
)
b
.
stopPropagation
();
else
return
!
1
}})})}})(
window
.
jQuery
||
window
.
Zepto
);
v
=
b
==
n
,
s
=
u
?
_determinate
:
e
?
y
:
"enabled"
,
F
=
l
(
a
,
s
+
t
(
c
[
_type
])),
B
=
l
(
a
,
b
+
t
(
c
[
_type
]));
if
(
!
0
!==
c
[
b
]){
if
(
!
d
&&
b
==
k
&&
c
[
_type
]
==
r
&&
c
.
name
){
var
w
=
a
.
closest
(
"form"
),
p
=
'input[name="'
+
c
.
name
+
'"]'
,
p
=
w
.
length
?
w
.
find
(
p
):
f
(
p
);
p
.
each
(
function
(){
this
!==
c
&&
f
(
this
).
data
(
m
)
&&
q
(
f
(
this
),
b
)})}
u
?(
c
[
b
]
=!
0
,
c
[
k
]
&&
q
(
a
,
k
,
"force"
)):(
d
||
(
c
[
b
]
=!
0
),
e
&&
c
[
_indeterminate
]
&&
q
(
a
,
_indeterminate
,
!
1
));
D
(
a
,
e
,
b
,
d
)}
c
[
n
]
&&
l
(
a
,
_cursor
,
!
0
)
&&
g
.
find
(
"."
+
C
).
css
(
_cursor
,
"default"
);
g
[
_add
](
B
||
l
(
a
,
b
)
||
""
);
g
.
attr
(
"role"
)
&&!
u
&&
g
.
attr
(
"aria-"
+
(
v
?
n
:
k
),
"true"
);
g
[
_remove
](
F
||
l
(
a
,
s
)
||
""
)}
function
q
(
a
,
b
,
d
){
var
c
=
a
[
0
],
g
=
a
.
parent
(),
e
=
b
==
k
,
f
=
b
==
_indeterminate
,
m
=
b
==
n
,
s
=
f
?
_determinate
:
e
?
y
:
"enabled"
,
q
=
l
(
a
,
s
+
t
(
c
[
_type
])),
r
=
l
(
a
,
b
+
t
(
c
[
_type
]));
if
(
!
1
!==
c
[
b
]){
if
(
f
||!
d
||
"force"
==
d
)
c
[
b
]
=!
1
;
D
(
a
,
e
,
s
,
d
)}
!
c
[
n
]
&&
l
(
a
,
_cursor
,
!
0
)
&&
g
.
find
(
"."
+
C
).
css
(
_cursor
,
"pointer"
);
g
[
_remove
](
r
||
l
(
a
,
b
)
||
""
);
g
.
attr
(
"role"
)
&&!
f
&&
g
.
attr
(
"aria-"
+
(
m
?
n
:
k
),
"false"
);
g
[
_add
](
q
||
l
(
a
,
s
)
||
""
)}
function
E
(
a
,
b
){
if
(
a
.
data
(
m
)){
a
.
parent
().
html
(
a
.
attr
(
"style"
,
a
.
data
(
m
).
s
||
""
));
if
(
b
)
a
[
_callback
](
b
);
a
.
off
(
".i"
).
unwrap
();
f
(
_label
+
'[for="'
+
a
[
0
].
id
+
'"]'
).
add
(
a
.
closest
(
_label
)).
off
(
".i"
)}}
function
l
(
a
,
b
,
f
){
if
(
a
.
data
(
m
))
return
a
.
data
(
m
).
o
[
b
+
(
f
?
""
:
"Class"
)]}
function
t
(
a
){
return
a
.
charAt
(
0
).
toUpperCase
()
+
a
.
slice
(
1
)}
function
D
(
a
,
b
,
f
,
c
){
if
(
!
c
){
if
(
b
)
a
[
_callback
](
"ifToggled"
);
a
[
_callback
](
"ifChanged"
)[
_callback
](
"if"
+
t
(
f
))}}
var
m
=
"iCheck"
,
C
=
m
+
"-helper"
,
r
=
"radio"
,
k
=
"checked"
,
y
=
"un"
+
k
,
n
=
"disabled"
;
_determinate
=
"determinate"
;
_indeterminate
=
"in"
+
_determinate
;
_update
=
"update"
;
_type
=
"type"
;
_click
=
"click"
;
_touch
=
"touchbegin.i touchend.i"
;
_add
=
"addClass"
;
_remove
=
"removeClass"
;
_callback
=
"trigger"
;
_label
=
"label"
;
_cursor
=
"cursor"
;
_mobile
=
/ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i
.
test
(
navigator
.
userAgent
);
f
.
fn
[
m
]
=
function
(
a
,
b
){
var
d
=
'input[type="checkbox"], input[type="'
+
r
+
'"]'
,
c
=
f
(),
g
=
function
(
a
){
a
.
each
(
function
(){
var
a
=
f
(
this
);
c
=
a
.
is
(
d
)?
c
.
add
(
a
):
c
.
add
(
a
.
find
(
d
))})};
if
(
/^
(
check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy
)
$/i
.
test
(
a
))
return
a
=
a
.
toLowerCase
(),
g
(
this
),
c
.
each
(
function
(){
var
c
=
f
(
this
);
"destroy"
==
a
?
E
(
c
,
"ifDestroyed"
):
A
(
c
,
!
0
,
a
);
f
.
isFunction
(
b
)
&&
b
()});
if
(
"object"
!=
typeof
a
&&
a
)
return
this
;
var
e
=
f
.
extend
({
checkedClass
:
k
,
disabledClass
:
n
,
indeterminateClass
:
_indeterminate
,
labelHover
:
!
0
},
a
),
l
=
e
.
handle
,
v
=
e
.
hoverClass
||
"hover"
,
s
=
e
.
focusClass
||
"focus"
,
t
=
e
.
activeClass
||
"active"
,
B
=!!
e
.
labelHover
,
w
=
e
.
labelHoverClass
||
"hover"
,
p
=
(
""
+
e
.
increaseArea
).
replace
(
"%"
,
""
)
|
0
;
if
(
"checkbox"
==
l
||
l
==
r
)
d
=
'input[type="'
+
l
+
'"]'
;
-
50
>
p
&&
(
p
=-
50
);
g
(
this
);
return
c
.
each
(
function
(){
var
a
=
f
(
this
);
E
(
a
);
var
c
=
this
,
b
=
c
.
id
,
g
=-
p
+
"%"
,
d
=
100
+
2
*
p
+
"%"
,
d
=
{
position
:
"absolute"
,
top
:
g
,
left
:
g
,
display
:
"block"
,
width
:
d
,
height
:
d
,
margin
:
0
,
padding
:
0
,
background
:
"#fff"
,
border
:
0
,
opacity
:
0
},
g
=
_mobile
?{
position
:
"absolute"
,
visibility
:
"hidden"
}:
p
?
d
:{
position
:
"absolute"
,
opacity
:
0
},
l
=
"checkbox"
==
c
[
_type
]?
e
.
checkboxClass
||
"icheckbox"
:
e
.
radioClass
||
"i"
+
r
,
z
=
f
(
_label
+
'[for="'
+
b
+
'"]'
).
add
(
a
.
closest
(
_label
)),
u
=!!
e
.
aria
,
y
=
m
+
"-"
+
Math
.
random
().
toString
(
36
).
substr
(
2
,
6
),
h
=
'<div class="'
+
l
+
'" '
+
(
u
?
'role="'
+
c
[
_type
]
+
'" '
:
""
);
u
&&
z
.
each
(
function
(){
h
+=
'aria-labelledby="'
;
this
.
id
?
h
+=
this
.
id
:(
this
.
id
=
y
,
h
+=
y
);
h
+=
'"'
});
h
=
a
.
wrap
(
h
+
"/>"
)[
_callback
](
"ifCreated"
).
parent
().
append
(
e
.
insert
);
d
=
f
(
'<ins class="'
+
C
+
'"/>'
).
css
(
d
).
appendTo
(
h
);
a
.
data
(
m
,{
o
:
e
,
s
:
a
.
attr
(
"style"
)}).
css
(
g
);
e
.
inheritClass
&&
h
[
_add
](
c
.
className
||
""
);
e
.
inheritID
&&
b
&&
h
.
attr
(
"id"
,
m
+
"-"
+
b
);
"static"
==
h
.
css
(
"position"
)
&&
h
.
css
(
"position"
,
"relative"
);
A
(
a
,
!
0
,
_update
);
if
(
z
.
length
)
z
.
on
(
_click
+
".i mouseover.i mouseout.i "
+
_touch
,
function
(
b
){
var
d
=
b
[
_type
],
e
=
f
(
this
);
if
(
!
c
[
n
]){
if
(
d
==
_click
){
if
(
f
(
b
.
target
).
is
(
"a"
))
return
;
A
(
a
,
!
1
,
!
0
)}
else
B
&&
(
/ut|nd/
.
test
(
d
)?(
h
[
_remove
](
v
),
e
[
_remove
](
w
)):(
h
[
_add
](
v
),
e
[
_add
](
w
)));
if
(
_mobile
)
b
.
stopPropagation
();
else
return
!
1
}});
a
.
on
(
_click
+
".i focus.i blur.i keyup.i keydown.i keypress.i"
,
function
(
b
){
var
d
=
b
[
_type
];
b
=
b
.
keyCode
;
if
(
d
==
_click
)
return
!
1
;
if
(
"keydown"
==
d
&&
32
==
b
)
return
c
[
_type
]
==
r
&&
c
[
k
]
||
(
c
[
k
]?
q
(
a
,
k
):
x
(
a
,
k
)),
!
1
;
if
(
"keyup"
==
d
&&
c
[
_type
]
==
r
)
!
c
[
k
]
&&
x
(
a
,
k
);
else
if
(
/us|ur/
.
test
(
d
))
h
[
"blur"
==
d
?
_remove
:
_add
](
s
)});
d
.
on
(
_click
+
" mousedown mouseup mouseover mouseout "
+
_touch
,
function
(
b
){
var
d
=
b
[
_type
],
e
=
/wn|up/
.
test
(
d
)?
t
:
v
;
if
(
!
c
[
n
]){
if
(
d
==
_click
)
A
(
a
,
!
1
,
!
0
);
else
{
if
(
/wn|er|in/
.
test
(
d
))
h
[
_add
](
e
);
else
h
[
_remove
](
e
+
" "
+
t
);
if
(
z
.
length
&&
B
&&
e
==
v
)
z
[
/ut|nd/
.
test
(
d
)?
_remove
:
_add
](
w
)}
if
(
_mobile
)
b
.
stopPropagation
();
else
return
!
1
}})})}})(
window
.
jQuery
||
window
.
Zepto
);
templates/css_js.html
deleted
100644 → 0
View file @
ca3d4de8
<link
href=
"/static/css/bootstrap.min.css"
rel=
"stylesheet"
>
<link
href=
"/static/font-awesome/css/font-awesome.css"
rel=
"stylesheet"
>
<link
href=
"/static/css/plugins/iCheck/custom.css"
rel=
"stylesheet"
>
<link
href=
"/static/css/animate.css"
rel=
"stylesheet"
>
<link
href=
"/static/css/style.css"
rel=
"stylesheet"
>
<link
href=
"/static/css/colorbox.css"
rel=
"stylesheet"
>
<!-- Mainly scripts -->
<script
src=
"/static/js/jquery-2.1.1.js"
></script>
<script
src=
"/static/js/bootstrap.min.js"
></script>
<script
src=
"/static/js/plugins/metisMenu/jquery.metisMenu.js"
></script>
<script
src=
"/static/js/plugins/slimscroll/jquery.slimscroll.min.js"
></script>
<!-- Peity -->
<script
src=
"/static/js/plugins/peity/jquery.peity.min.js"
></script>
<!-- Custom and plugin javascript -->
<script
src=
"/static/js/inspinia.js"
></script>
<script
src=
"/static/js/plugins/pace/pace.min.js"
></script>
<!-- iCheck -->
<script
src=
"/static/js/plugins/iCheck/icheck.min.js"
></script>
<!-- Peity -->
<script
src=
"/static/js/demo/peity-demo.js"
></script>
<!-- pop windows -->
<script
src=
"/static/js/jquery.colorbox.js"
></script>
<script>
$
(
document
).
ready
(
function
(){
$
(
".iframe"
).
colorbox
({
iframe
:
true
,
width
:
"90%"
,
height
:
"90%"
});
});
</script>
\ No newline at end of file
templates/jperm/perm_group_edit.html
0 → 100644
View file @
c4196e7d
{% extends 'base.html' %}
{% load mytags %}
{% block content %}
<script
type=
"text/javascript"
>
function
move
(
from
,
to
)
{
$
(
"#"
+
from
+
" option"
).
each
(
function
(){
if
(
$
(
this
).
prop
(
"selected"
)
==
true
)
{
$
(
"#"
+
to
).
append
(
this
);
}
});
}
function
move_all
(
from
,
to
){
$
(
"#"
+
from
).
children
().
each
(
function
(){
$
(
"#"
+
to
).
append
(
this
);
});
}
function
search_host
(
text
){
$
(
"#host_unperm"
).
children
().
each
(
function
(){
$
(
this
).
remove
();});
var
permArray
=
[];
$
(
"#host_permed"
).
children
().
each
(
function
(){
permArray
.
push
(
$
(
this
).
text
());
});
$
(
"#host_all"
).
children
().
each
(
function
(){
if
(
$
(
this
).
text
().
search
(
text
)
!=
-
1
&&
permArray
.
indexOf
(
$
(
this
).
text
())
==
-
1
)
{
$
(
"#host_unperm"
).
append
(
$
(
this
).
clone
())
}
});
}
</script>
{% include 'nav_cat_bar.html' %}
<div
class=
"wrapper wrapper-content animated fadeInRight"
>
<div
class=
"row"
>
<div
class=
"col-lg-10"
>
<div
class=
"ibox float-e-margins"
>
<!-- title -->
<div
class=
"ibox-title"
>
<h5>
授权编辑表单
<small>
Edit perm of user group
</small></h5>
<div
class=
"ibox-tools"
>
<a
class=
"collapse-link"
>
<i
class=
"fa fa-chevron-up"
></i>
</a>
<a
class=
"dropdown-toggle"
data-toggle=
"dropdown"
href=
"#"
>
<i
class=
"fa fa-wrench"
></i>
</a>
<ul
class=
"dropdown-menu dropdown-user"
>
<li><a
href=
"#"
>
Config option 1
</a>
</li>
<li><a
href=
"#"
>
Config option 2
</a>
</li>
</ul>
<a
class=
"close-link"
>
<i
class=
"fa fa-times"
></i>
</a>
</div>
</div>
<!-- end title -->
<div
class=
"ibox-content"
>
<div
class=
"row"
>
<div
class=
"col-sm-5 "
>
<div
class=
"form-group"
>
<label></label>
<input
type=
"text"
id=
"host_filter"
placeholder=
"Search"
class=
"form-control"
value=
""
oninput=
"search_host(this.value)"
>
</div>
</div>
<div
class=
"col-sm-1 "
>
<div
class=
"form-group"
>
<label></label>
</div>
</div>
<div
class=
"col-sm-5 "
>
<div
class=
"form-group"
>
<label></label>
<input
type=
"text"
class=
"form-control"
value=
"{{ group.name }}"
readonly
>
</div>
</div>
</div>
<form
method=
"post"
action=
""
>
<input
type=
"text"
name=
"username"
class=
"form-control"
value=
"{{ group.name }}"
style=
"display: none"
>
<div
class=
"row"
>
<div
class=
"col-sm-5"
><h4>
未授权主机
</h4>
<div>
<select
id=
"host_all"
name=
"host_all"
class=
"form-control"
size=
"10"
multiple
style=
"display: none"
>
{% for asset in assets %}
<option
value=
"{{ asset.ip }}"
>
{{ asset.ip }}
</option>
{% endfor %}
</select>
<select
id=
"host_unperm"
name=
"host_unperm"
class=
"form-control m-b"
size=
"12"
multiple
>
{% for asset in assets_unperm %}
<option
value=
"{{ asset.ip }}"
>
{{ asset.ip }}
</option>
{% endfor %}
</select>
</div>
</div>
<div
class=
"col-sm-1"
>
<div
class=
"btn-group"
style=
"margin-top: 50px;"
>
<button
type=
"button"
class=
"btn btn-white"
onclick=
"move('host_unperm', 'host_permed')"
><i
class=
"fa fa-chevron-right"
></i></button>
<button
type=
"button"
class=
"btn btn-white"
onclick=
"move('host_permed', 'host_unperm')"
><i
class=
"fa fa-chevron-left"
></i>
</button>
</div>
</div>
<div
class=
"col-sm-5"
><h4>
授权主机
</h4>
<div>
<select
id=
"host_permed"
name=
"host_permed"
class=
"form-control m-b"
size=
"12"
multiple
>
{% for asset in assets_permed %}
<option
value=
"{{ asset.ip }}"
>
{{ asset.ip }}
</option>
{% endfor %}
</select>
</div>
</div>
</div>
<div
class=
"row"
>
<div
class=
"form-group"
>
<div
class=
"col-sm-4 col-sm-offset-2"
>
<button
class=
"btn btn-white"
type=
"submit"
>
取消
</button>
<button
class=
"btn btn-primary"
type=
"submit"
onclick=
"javascript: (function(){$('#host_permed option').each(function(){$(this).prop('selected', true)})})()"
>
确认保存
</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script>
var
str
=
document
.
location
.
pathname
.
split
(
"/"
)[
1
];
var
str1
=
document
.
location
.
pathname
.
split
(
"/"
)[
2
];
$
(
"#"
+
str
).
addClass
(
'active'
);
$
(
"#"
+
str1
).
addClass
(
'active'
);
</script>
{#
<script
type=
"text/javascript"
>
#
}
{
#
$
(
"#host_permed"
).
children
().
each
(
function
(){
#
}
{
#
$
(
"#host_all"
).
append
(
$
(
this
).
clone
());
#
}
{
##
}
{
#
if
(
$
(
this
).
prop
(
"selected"
)
==
false
)
{
#
}
{
#
$
(
"#host_unperm"
).
append
(
this
);
#
}
{
#
}
#
}
{
##
}
{
#
$
(
"#host_all"
).
children
().
each
(
function
(){
$
(
this
).
prop
(
"selected"
,
false
)});
#
}
{
#
});
#
}
{
#
</script>
#}
{% endblock %}
\ No newline at end of file
templates/jperm/perm_host.html
View file @
c4196e7d
...
...
@@ -61,8 +61,8 @@
<td
class=
"text-center"
>
{{ user.username|groups_str }}
</td>
<td
class=
"text-center"
>
{{ user.id|perm_count }}
</td>
<td
class=
"text-center"
>
<a
href=
"../perm_detail/?id={{ user.id }}"
class=
"iframe btn btn-xs btn-primary"
>
详情
</a>
<a
href=
"../perm_edit/?id={{ user.id }}"
class=
"btn btn-xs btn-info"
>
编辑
</a>
<a
href=
"../perm_
user_
detail/?id={{ user.id }}"
class=
"iframe btn btn-xs btn-primary"
>
详情
</a>
<a
href=
"../perm_
user_
edit/?id={{ user.id }}"
class=
"btn btn-xs btn-info"
>
编辑
</a>
</td>
</tr>
{% endfor %}
...
...
@@ -123,8 +123,8 @@
<td
class=
"text-center"
>
{{ group.name }}
</td>
<td
class=
"text-center"
>
{{ group.comment }}
</td>
<td
class=
"text-center"
>
<a
href=
"../perm_detail/?id={{ user.id }}"
class=
"iframe btn btn-xs btn-primary"
>
详情
</a>
<a
href=
"../perm_edit/?id={{ user.id }}"
class=
"btn btn-xs btn-info"
>
编辑
</a>
<a
href=
"../perm_
group_
detail/?id={{ user.id }}"
class=
"iframe btn btn-xs btn-primary"
>
详情
</a>
<a
href=
"../perm_
group_
edit/?id={{ user.id }}"
class=
"btn btn-xs btn-info"
>
编辑
</a>
</td>
</tr>
{% endfor %}
...
...
templates/jperm/perm_user_detail.html
0 → 100644
View file @
c4196e7d
{% load mytags %}
<html>
<head>
{% include 'link_css.html' %}
<style
type=
"text/css"
>
body
{
background
:
#FFFFFF
;
}
</style>
</head>
<body>
<div
class=
"row"
>
<div
class=
"contact-box"
>
<h2
class=
"text-center"
>
{{ user.name }} 授权详情
</h2>
<div
class=
"ibox-content"
>
<table
class=
"table table-striped table-bordered table-hover "
id=
"editable"
>
<thead>
<tr>
<th
class=
"text-center"
>
ID
</th>
<th
class=
"text-center"
>
IP
</th>
<th
class=
"text-center"
>
主机组
</th>
<th
class=
"text-center"
>
IDC
</th>
</tr>
</thead>
<tbody>
{% for asset in host_permed %}
<tr
class=
"gradeX"
>
<td
class=
"text-center"
>
{{ asset.id }}
</td>
<td
class=
"text-center"
>
{{ asset.ip }}
</td>
<td
class=
"text-center"
>
{% for group in asset.bis_group.all %}
{{ group }}
{% endfor %}
</td>
<td
class=
"text-center"
>
{{ asset.idc.name }}
</td>
</tr>
{% endfor %}
</table>
</div>
</div>
</body>
</html>
\ No newline at end of file
templates/jperm/perm_edit.html
→
templates/jperm/perm_
user_
edit.html
View file @
c4196e7d
File moved
templates/juser/user_add.html
View file @
c4196e7d
{% extends 'base.html' %}
{% load mytags %}
{% block content %}
{% include 'nav_cat_bar.html' %}
<div
class=
"wrapper wrapper-content animated fadeInRight"
>
...
...
@@ -28,7 +29,7 @@
</div>
</div>
<div
class=
"ibox-content"
>
<form
method=
"post"
class=
"form-horizontal"
action=
""
>
<form
method=
"post"
id=
"userForm"
class=
"form-horizontal"
action=
""
>
{% if error %}
<div
class=
"alert alert-warning text-center"
>
{{ error }}
</div>
{% endif %}
...
...
@@ -148,4 +149,61 @@
</div>
</div>
<script>
$
(
'#userForm'
).
validator
({
timely
:
2
,
theme
:
"yellow_right_effect"
,
rules
:
{
check_ip
:
[
/^
(\d{1,2}
|1
\d\d
|2
[
0-4
]\d
|25
[
0-5
])(\.(\d{1,2}
|1
\d\d
|2
[
0-4
]\d
|25
[
0-5
])){3}
$/
,
'ip地址不正确'
],
check_port
:
[
/^
\d{1,5}
$/
,
'端口号不正确'
],
type_m
:
function
(
element
){
return
$
(
"#M"
).
is
(
":checked"
);
}
},
fields
:
{
"username"
:
{
rule
:
"required"
,
tip
:
"输入用户名"
,
ok
:
""
,
msg
:
{
required
:
"必须填写!"
}
},
"password"
:
{
rule
:
"required;length[6~16]"
,
tip
:
"输入密码"
,
ok
:
""
,
msg
:
{
required
:
"必须填写!"
}
},
"ssh_key_pwd1"
:
{
rule
:
"required;length[6~16]"
,
tip
:
"ssh私钥密码"
,
ok
:
""
,
msg
:
{
required
:
"必须填写"
}
},
"groups"
:
{
rule
:
"checked"
,
tip
:
"选择用户组"
,
ok
:
""
,
msg
:
{
checked
:
"至少选择一个组"
}
},
"name"
:
{
rule
:
"required"
,
tip
:
"姓名"
,
ok
:
""
,
msg
:
{
required
:
"必须填写"
}
},
"role"
:
{
rule
:
"checked"
,
tip
:
"角色"
,
ok
:
""
,
msg
:
{
required
:
"选择一个"
}
}
},
valid
:
function
(
form
)
{
form
.
submit
();
}
});
</script>
{% endblock %}
\ No newline at end of file
templates/juser/user_list.html
View file @
c4196e7d
...
...
@@ -36,7 +36,9 @@
<table
class=
"table table-striped table-bordered table-hover "
id=
"editable"
>
<thead>
<tr>
<th
class=
"text-center"
><input
type=
"checkbox"
class=
"i-checks"
name=
""
></th>
<th
class=
"text-center"
>
<input
type=
"checkbox"
id=
"select_all"
onclick=
"selectAll()"
name=
"select_all"
>
</th>
<th
class=
"text-center"
>
ID
</th>
<th
class=
"text-center"
>
用户名
</th>
<th
class=
"text-center"
>
姓名
</th>
...
...
@@ -50,7 +52,9 @@
<tbody>
{% for user in contacts.object_list %}
<tr
class=
"gradeX"
>
<td
class=
"text-center"
><input
type=
"checkbox"
class=
"i-checks"
name=
""
></td>
<td
class=
"text-center"
>
<input
type=
"checkbox"
name=
"selected"
value=
"{{ user.id }}"
>
</td>
<td
class=
"text-center"
>
{{ user.id }}
</td>
<td
class=
"text-center"
>
{{ user.username }}
</td>
<td
class=
"text-center"
>
{{ user.name }}
</td>
...
...
@@ -117,4 +121,4 @@
});
</script>
{% endblock %}
\ No newline at end of file
{% endblock %}
templates/juser/user_list1.html
0 → 100644
View file @
c4196e7d
{% extends 'base.html' %}
{% load mytags %}
{% block content %}
{% include 'nav_cat_bar.html' %}
<div
class=
"wrapper wrapper-content animated fadeInRight"
>
<div
class=
"row"
>
<div
class=
"col-lg-10"
>
<div
class=
"ibox float-e-margins"
>
<div
class=
"ibox-title"
>
<h5>
查看用户
<small>
show user info.
</small>
</h5>
<div
class=
"ibox-tools"
>
<a
class=
"collapse-link"
>
<i
class=
"fa fa-chevron-up"
></i>
</a>
<a
class=
"dropdown-toggle"
data-toggle=
"dropdown"
href=
"#"
>
<i
class=
"fa fa-wrench"
></i>
</a>
<ul
class=
"dropdown-menu dropdown-user"
>
<li><a
href=
"#"
>
未启用 1
</a>
</li>
<li><a
href=
"#"
>
未启用 2
</a>
</li>
</ul>
<a
class=
"close-link"
>
<i
class=
"fa fa-times"
></i>
</a>
</div>
</div>
<div
class=
"ibox-content"
>
<div
class=
""
>
<a
target=
"_blank"
href=
"/juser/user_add/"
class=
"btn btn-sm btn-primary "
>
添加
</a>
</div>
<table
class=
"table table-striped table-bordered table-hover "
id=
"editable"
>
<thead>
<tr>
<th
class=
"text-center"
><input
type=
"checkbox"
class=
"i-checks"
name=
""
></th>
<th
class=
"text-center"
>
ID
</th>
<th
class=
"text-center"
>
用户名
</th>
<th
class=
"text-center"
>
姓名
</th>
<th
class=
"text-center"
>
属组
</th>
<th
class=
"text-center"
>
角色
</th>
<th
class=
"text-center"
>
Email
</th>
<th
class=
"text-center"
>
激活
</th>
<th
class=
"text-center"
>
操作
</th>
</tr>
</thead>
<tbody>
{% for user in contacts.object_list %}
<tr
class=
"gradeX"
>
<td
class=
"text-center"
><input
type=
"checkbox"
class=
"i-checks"
name=
""
></td>
<td
class=
"text-center"
>
{{ user.id }}
</td>
<td
class=
"text-center"
>
{{ user.username }}
</td>
<td
class=
"text-center"
>
{{ user.name }}
</td>
<td
class=
"text-center"
>
{{ user.username|groups_str }}
</td>
<td
class=
"text-center"
>
{{ user.id|get_role }}
</td>
<td
class=
"text-center"
>
{{ user.email }}
</td>
<td
class=
"text-center"
>
{{ user.is_active|bool2str }}
</td>
<td
class=
"text-center"
>
<a
href=
"../user_detail/?id={{ user.id }}"
class=
"iframe btn btn-xs btn-primary"
>
详情
</a>
<a
href=
"../user_edit/?id={{ user.id }}"
class=
"btn btn-xs btn-info"
>
编辑
</a>
<a
href=
"../user_del/?id={{ user.id }}"
class=
"btn btn-xs btn-danger"
>
删除
</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<div
class=
"dataTables_info"
id=
"editable_info"
role=
"status"
aria-live=
"polite"
>
Showing {{ contacts.start_index }} to {{ contacts.end_index }} of {{ p.count }} entries
</div>
</div>
<div
class=
"col-sm-6"
>
<div
class=
"dataTables_paginate paging_simple_numbers"
id=
"editable_paginate"
>
<ul
class=
"pagination"
style=
"margin-top: 0; float: right"
>
{% if contacts.has_previous %}
<li
class=
"paginate_button previous"
aria-controls=
"editable"
tabindex=
"0"
id=
"editable_previous"
>
<a
href=
"?page={{ contacts.previous_page_number }}"
>
Previous
</a>
</li>
{% else %}
<li
class=
"paginate_button previous disabled"
aria-controls=
"editable"
tabindex=
"0"
id=
"editable_previous"
>
<a
href=
"#"
>
Previous
</a>
</li>
{% endif %}
{% for page in p.page_range %}
{% ifequal offset1 page %}
<li
class=
"paginate_button active"
aria-controls=
"editable"
tabindex=
"0"
><a
href=
"?page={{ page }}"
title=
"第{{ page }}页"
>
{{ page }}
</a></li>
{% else %}
<li
class=
"paginate_button"
aria-controls=
"editable"
tabindex=
"0"
><a
href=
"?page={{ page }}"
title=
"第{{ page }}页"
>
{{ page }}
</a></li>
{% endifequal %}
{% endfor %}
{% if contacts.has_next %}
<li
class=
"paginate_button next"
aria-controls=
"editable"
tabindex=
"0"
id=
"editable_next"
>
<a
href=
"?page={{ contacts.next_page_number }}"
>
Next
</a>
</li>
{% else %}
<li
class=
"paginate_button next disabled"
aria-controls=
"editable"
tabindex=
"0"
id=
"editable_next"
>
<a
href=
"#"
>
Next
</a>
</li>
{% endif %}
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
$
(
document
).
ready
(
function
(){
$
(
".iframe"
).
colorbox
({
iframe
:
true
,
width
:
"70%"
,
height
:
"70%"
});
});
</script>
<script>
$
(
document
).
ready
(
function
(){
$
(
'input'
).
iCheck
({
checkboxClass
:
'icheckbox_square'
,
radioClass
:
'iradio_square'
,
increaseArea
:
'20%'
// optional
});
});
</script>
{% endblock %}
\ No newline at end of file
templates/link_css.html
View file @
c4196e7d
<link
href=
"/static/css/bootstrap.min.css"
rel=
"stylesheet"
>
<link
href=
"/static/font-awesome/css/font-awesome.css"
rel=
"stylesheet"
>
<link
href=
"/static/css/plugins/iCheck/custom.css"
rel=
"stylesheet"
>
<link
href=
"/static/css/plugins/fullcalendar/fullcalendar.css"
rel=
"stylesheet"
>
<link
href=
"/static/css/plugins/fullcalendar/fullcalendar.print.css"
rel=
"stylesheet"
>
<link
href=
"/static/css/animate.css"
rel=
"stylesheet"
>
<link
href=
"/static/css/style.css"
rel=
"stylesheet"
>
<link
href=
"/static/css/colorbox.css"
rel=
"stylesheet"
>
<link
href=
"/static/css/vaildator/jquery.validator.css"
rel=
"stylesheet"
>
\ No newline at end of file
<link
href=
"/static/css/vaildator/jquery.validator.css"
rel=
"stylesheet"
>
templates/script.html
View file @
c4196e7d
...
...
@@ -4,30 +4,46 @@
<script
src=
"/static/js/plugins/metisMenu/jquery.metisMenu.js"
></script>
<script
src=
"/static/js/plugins/slimscroll/jquery.slimscroll.min.js"
></script>
<!-- Peity -->
<script
src=
"/static/js/plugins/peity/jquery.peity.min.js"
></script>
<!-- Custom and plugin javascript -->
<script
src=
"/static/js/inspinia.js"
></script>
<script
src=
"/static/js/plugins/pace/pace.min.js"
></script>
<!-- iCheck -->
<!-- iCheck
box
-->
<script
src=
"/static/js/plugins/iCheck/icheck.min.js"
></script>
<!-- Peity -->
<script
src=
"/static/js/
demo/peity-demo
.js"
></script>
<script
src=
"/static/js/
plugins/peity/jquery.peity.min
.js"
></script>
<!--<script>-->
<!--$(document).ready(function(){-->
<!--$('.i-checks').iCheck({-->
<!--checkboxClass: 'icheckbox_square-green',-->
<!--radioClass: 'iradio_square-green',-->
<!--});-->
<!--});-->
<!-- Peity -->
<script
src=
"/static/js/demo/peity-demo.js"
></script>
<!--</script>-->
<script>
$
(
document
).
ready
(
function
(){
$
(
'.i-checks'
).
iCheck
({
checkboxClass
:
'icheckbox_square-green'
,
radioClass
:
'iradio_square-green'
,
});
});
function
selectAll
(){
var
checklist
=
document
.
getElementsByName
(
"selected"
);
if
(
document
.
getElementById
(
"select_all"
).
checked
)
{
for
(
var
i
=
0
;
i
<
checklist
.
length
;
i
++
)
{
checklist
[
i
].
checked
=
1
;
}
}
else
{
for
(
var
j
=
0
;
j
<
checklist
.
length
;
j
++
)
{
checklist
[
j
].
checked
=
0
;
}
}
}
</script>
<script
src=
"/static/js/plugins/fullcalendar/fullcalendar.min.js"
></script>
<!-- pop windows -->
<script
src=
"/static/js/jquery.colorbox.js"
></script>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment