Toggle navigation
Toggle navigation
This project
Loading...
Sign in
허진호
/
cloud_computing_fileshell
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
진창엽
2018-06-10 19:00:05 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
119d9e9ac86e966c5ad4f4c2e2e55cb81366179b
119d9e9a
1 parent
c3a936e1
Modify Layout
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
741 additions
and
88 deletions
fileshell/settings.py
fileshell/static/css/dropzone.css
fileshell/static/css/layout_base.css
fileshell/static/css/style.css
fileshell/static/resources/add_folder.png
fileshell/static/resources/search_icon.png
fileshell/storages.py
templates/base.html
templates/file.html
templates/home.html
templates/search.html
fileshell/settings.py
View file @
119d9e9
...
...
@@ -140,4 +140,4 @@ SECRET_KEY = secret_key
#AWS Access
AWS_ACCESS_KEY_ID
=
key_id
AWS_SECRET_ACCESS_KEY
=
secret_access_key
AWS_STORAGE_BUCKET_NAME
=
'fileshell-test'
AWS_STORAGE_BUCKET_NAME
=
'fileshell-test
-jincy
'
...
...
fileshell/static/css/dropzone.css
View file @
119d9e9
...
...
@@ -9,7 +9,8 @@
}
.dropzone
{
position
:
relative
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0.08
);
border
:
2px
dashed
#000000
;
margin-left
:
50px
;
background
:
rgba
(
0
,
0
,
0
,
0.02
);
padding
:
1em
;
}
...
...
@@ -42,7 +43,7 @@
display
:
inline-block
;
margin
:
17px
;
vertical-align
:
top
;
border
:
1px
solid
#acacac
;
border
:
2px
dashed
#000000
;
padding
:
6px
6px
6px
6px
;
}
.dropzone
.dz-preview.dz-file-preview
[
data-dz-thumbnail
],
...
...
@@ -154,7 +155,7 @@
display
:
block
;
}
.dropzone
{
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0.03
)
;
border
:
6px
dashed
#000000
;
min-height
:
360px
;
-webkit-border-radius
:
3px
;
border-radius
:
3px
;
...
...
fileshell/static/css/layout_base.css
View file @
119d9e9
body
{
font-family
:
"Roboto"
,
sans-serif
;
}
::placeholder
{
color
:
#FFFFFF
;
}
.shiftleft
{
margin-left
:
50px
;
}
.search_form
{
float
:
right
;
float
:
left
;
width
:
1500px
;
vertical-align
:
middle
;
white-space
:
nowrap
;
position
:
relative
;
}
.search_form
input
#dir_name
{
width
:
1300px
;
height
:
50px
;
background
:
#6b6b6b
;
border
:
none
;
font-size
:
10pt
;
float
:
left
;
color
:
#ffffff
;
padding-left
:
45px
;
-webkit-border-radius
:
5px
;
-moz-border-radius
:
5px
;
border-radius
:
5px
;
}
.search_form
input
#search_button
{
width
:
55px
;
height
:
50px
;
background
:
#2b303b
;
border
:
none
;
font-size
:
10pt
;
float
:
left
;
color
:
#ffffff
;
margin-left
:
50px
;
-webkit-border-radius
:
5px
;
-moz-border-radius
:
5px
;
border-radius
:
5px
;
text-align
:
center
;
}
.add_folder_form
{
}
.add_folder_form
input
#dir_name
{
width
:
150px
;
height
:
50px
;
background
:
#6b6b6b
;
border
:
none
;
font-size
:
10pt
;
float
:
left
;
color
:
#ffffff
;
padding-left
:
45px
;
-webkit-border-radius
:
5px
;
-moz-border-radius
:
5px
;
border-radius
:
5px
;
}
.add_folder_form
input
#add_button
{
margin-left
:
300px
;
}
.drop
{
width
:
200px
;
...
...
@@ -16,7 +72,7 @@ body {
.left_bar
{
float
:
left
;
width
:
200px
;
height
:
9
00px
;
height
:
15
00px
;
background-color
:
#2b2d3d
;
}
.nav
{
...
...
@@ -48,16 +104,18 @@ body {
.nav-link
:hover
{
}
.frame
{
width
:
1800px
;
margin
:
0
auto
;
border
:
1px
solid
#aaa
;
width
:
2000px
;
}
.header
{
height
:
6
0px
;
height
:
4
0px
;
padding
:
40px
10px
;
text-align
:
center
;
background
:
#eee
;
background
:
#ffffff
;
margin-left
:
250px
;
margin-right
:
50px
;
margin-bottom
:
20px
;
border-bottom
:
1px
solid
#73acbc
;
}
.profile_icon
{
float
:
right
;
...
...
@@ -76,12 +134,14 @@ body {
padding
:
0
8px
;
}
.container
{
overflow
:
hidden
;
}
.content
{
float
:
left
;
width
:
1600px
;
}
.right_bar
{
float
:
right
;
...
...
fileshell/static/css/style.css
0 → 100644
View file @
119d9e9
/* ------------------
styling for the tables
------------------ */
body
{
line-height
:
1.6em
;
}
#hor-minimalist-a
{
font-family
:
"Lucida Sans Unicode"
,
"Lucida Grande"
,
Sans-Serif
;
font-size
:
12px
;
background
:
#fff
;
margin
:
45px
;
width
:
480px
;
border-collapse
:
collapse
;
text-align
:
left
;
}
#hor-minimalist-a
th
{
font-size
:
14px
;
font-weight
:
normal
;
color
:
#039
;
padding
:
10px
8px
;
border-bottom
:
2px
solid
#6678b1
;
}
#hor-minimalist-a
td
{
color
:
#669
;
padding
:
9px
8px
0px
8px
;
}
#hor-minimalist-a
tbody
tr
:hover
td
{
color
:
#009
;
}
#hor-minimalist-b
{
font-family
:
"Lucida Sans Unicode"
,
"Lucida Grande"
,
Sans-Serif
;
font-size
:
16px
;
background
:
#fff
;
margin
:
45px
;
width
:
1600px
;
border-collapse
:
collapse
;
text-align
:
left
;
}
#hor-minimalist-b
th
{
font-size
:
18px
;
font-weight
:
normal
;
color
:
#2b2d3d
;
padding
:
10px
8px
;
border-bottom
:
2px
solid
#2b2d3d
;
}
#hor-minimalist-b
td
{
border-bottom
:
1px
solid
#ccc
;
color
:
#669
;
padding
:
6px
8px
;
}
#hor-minimalist-b
tbody
tr
:hover
td
{
color
:
#2b2d3d
;
}
#ver-minimalist
{
font-family
:
"Lucida Sans Unicode"
,
"Lucida Grande"
,
Sans-Serif
;
font-size
:
12px
;
margin
:
45px
;
width
:
480px
;
text-align
:
left
;
border-collapse
:
collapse
;
}
#ver-minimalist
th
{
padding
:
8px
2px
;
font-weight
:
normal
;
font-size
:
14px
;
border-bottom
:
2px
solid
#6678b1
;
border-right
:
30px
solid
#fff
;
border-left
:
30px
solid
#fff
;
color
:
#039
;
}
#ver-minimalist
td
{
padding
:
12px
2px
0px
2px
;
border-right
:
30px
solid
#fff
;
border-left
:
30px
solid
#fff
;
color
:
#669
;
}
#box-table-a
{
font-family
:
"Lucida Sans Unicode"
,
"Lucida Grande"
,
Sans-Serif
;
font-size
:
12px
;
margin
:
45px
;
width
:
480px
;
text-align
:
left
;
border-collapse
:
collapse
;
}
#box-table-a
th
{
font-size
:
13px
;
font-weight
:
normal
;
padding
:
8px
;
background
:
#b9c9fe
;
border-top
:
4px
solid
#aabcfe
;
border-bottom
:
1px
solid
#fff
;
color
:
#039
;
}
#box-table-a
td
{
padding
:
8px
;
background
:
#e8edff
;
border-bottom
:
1px
solid
#fff
;
color
:
#669
;
border-top
:
1px
solid
transparent
;
}
#box-table-a
tr
:hover
td
{
background
:
#d0dafd
;
color
:
#339
;
}
#box-table-b
{
font-family
:
"Lucida Sans Unicode"
,
"Lucida Grande"
,
Sans-Serif
;
font-size
:
12px
;
margin
:
45px
;
width
:
480px
;
text-align
:
center
;
border-collapse
:
collapse
;
border-top
:
7px
solid
#9baff1
;
border-bottom
:
7px
solid
#9baff1
;
}
#box-table-b
th
{
font-size
:
13px
;
font-weight
:
normal
;
padding
:
8px
;
background
:
#e8edff
;
border-right
:
1px
solid
#9baff1
;
border-left
:
1px
solid
#9baff1
;
color
:
#039
;
}
#box-table-b
td
{
padding
:
8px
;
background
:
#e8edff
;
border-right
:
1px
solid
#aabcfe
;
border-left
:
1px
solid
#aabcfe
;
color
:
#669
;
}
#hor-zebra
{
font-family
:
"Lucida Sans Unicode"
,
"Lucida Grande"
,
Sans-Serif
;
font-size
:
12px
;
margin
:
45px
;
width
:
480px
;
text-align
:
left
;
border-collapse
:
collapse
;
}
#hor-zebra
th
{
font-size
:
14px
;
font-weight
:
normal
;
padding
:
10px
8px
;
color
:
#039
;
}
#hor-zebra
td
{
padding
:
8px
;
color
:
#669
;
}
#hor-zebra
.odd
{
background
:
#e8edff
;
}
#ver-zebra
{
font-family
:
"Lucida Sans Unicode"
,
"Lucida Grande"
,
Sans-Serif
;
font-size
:
12px
;
margin
:
45px
;
width
:
480px
;
text-align
:
left
;
border-collapse
:
collapse
;
}
#ver-zebra
th
{
font-size
:
14px
;
font-weight
:
normal
;
padding
:
12px
15px
;
border-right
:
1px
solid
#fff
;
border-left
:
1px
solid
#fff
;
color
:
#039
;
}
#ver-zebra
td
{
padding
:
8px
15px
;
border-right
:
1px
solid
#fff
;
border-left
:
1px
solid
#fff
;
color
:
#669
;
}
.vzebra-odd
{
background
:
#eff2ff
;
}
.vzebra-even
{
background
:
#e8edff
;
}
#ver-zebra
#vzebra-adventure
,
#ver-zebra
#vzebra-children
{
background
:
#d0dafd
;
border-bottom
:
1px
solid
#c8d4fd
;
}
#ver-zebra
#vzebra-comedy
,
#ver-zebra
#vzebra-action
{
background
:
#dce4ff
;
border-bottom
:
1px
solid
#d6dfff
;
}
#one-column-emphasis
{
font-family
:
"Lucida Sans Unicode"
,
"Lucida Grande"
,
Sans-Serif
;
font-size
:
12px
;
margin
:
45px
;
width
:
480px
;
text-align
:
left
;
border-collapse
:
collapse
;
}
#one-column-emphasis
th
{
font-size
:
14px
;
font-weight
:
normal
;
padding
:
12px
15px
;
color
:
#039
;
}
#one-column-emphasis
td
{
padding
:
10px
15px
;
color
:
#669
;
border-top
:
1px
solid
#e8edff
;
}
.oce-first
{
background
:
#d0dafd
;
border-right
:
10px
solid
transparent
;
border-left
:
10px
solid
transparent
;
}
#one-column-emphasis
tr
:hover
td
{
color
:
#339
;
background
:
#eff2ff
;
}
#newspaper-a
{
font-family
:
"Lucida Sans Unicode"
,
"Lucida Grande"
,
Sans-Serif
;
font-size
:
12px
;
margin
:
45px
;
width
:
480px
;
text-align
:
left
;
border-collapse
:
collapse
;
border
:
1px
solid
#69c
;
}
#newspaper-a
th
{
padding
:
12px
17px
12px
17px
;
font-weight
:
normal
;
font-size
:
14px
;
color
:
#039
;
border-bottom
:
1px
dashed
#69c
;
}
#newspaper-a
td
{
padding
:
7px
17px
7px
17px
;
color
:
#669
;
}
#newspaper-a
tbody
tr
:hover
td
{
color
:
#339
;
background
:
#d0dafd
;
}
#newspaper-b
{
font-family
:
"Lucida Sans Unicode"
,
"Lucida Grande"
,
Sans-Serif
;
font-size
:
12px
;
margin
:
45px
;
width
:
480px
;
text-align
:
left
;
border-collapse
:
collapse
;
border
:
1px
solid
#69c
;
}
#newspaper-b
th
{
padding
:
15px
10px
10px
10px
;
font-weight
:
normal
;
font-size
:
14px
;
color
:
#039
;
}
#newspaper-b
tbody
{
background
:
#e8edff
;
}
#newspaper-b
td
{
padding
:
10px
;
color
:
#669
;
border-top
:
1px
dashed
#fff
;
}
#newspaper-b
tbody
tr
:hover
td
{
color
:
#339
;
background
:
#d0dafd
;
}
#newspaper-c
{
font-family
:
"Lucida Sans Unicode"
,
"Lucida Grande"
,
Sans-Serif
;
font-size
:
12px
;
margin
:
45px
;
width
:
480px
;
text-align
:
left
;
border-collapse
:
collapse
;
border
:
1px
solid
#6cf
;
}
#newspaper-c
th
{
padding
:
20px
;
font-weight
:
normal
;
font-size
:
13px
;
color
:
#039
;
text-transform
:
uppercase
;
border-right
:
1px
solid
#0865c2
;
border-top
:
1px
solid
#0865c2
;
border-left
:
1px
solid
#0865c2
;
border-bottom
:
1px
solid
#fff
;
}
#newspaper-c
td
{
padding
:
10px
20px
;
color
:
#669
;
border-right
:
1px
dashed
#6cf
;
}
#rounded-corner
{
font-family
:
"Lucida Sans Unicode"
,
"Lucida Grande"
,
Sans-Serif
;
font-size
:
12px
;
margin
:
45px
;
width
:
480px
;
text-align
:
left
;
border-collapse
:
collapse
;
}
#rounded-corner
thead
th
.rounded-company
{
background
:
#b9c9fe
url('left.png')
left
-1px
no-repeat
;
}
#rounded-corner
thead
th
.rounded-q4
{
background
:
#b9c9fe
url('right.png')
right
-1px
no-repeat
;
}
#rounded-corner
th
{
padding
:
8px
;
font-weight
:
normal
;
font-size
:
13px
;
color
:
#039
;
background
:
#b9c9fe
;
}
#rounded-corner
td
{
padding
:
8px
;
background
:
#e8edff
;
border-top
:
1px
solid
#fff
;
color
:
#669
;
}
#rounded-corner
tfoot
td
.rounded-foot-left
{
background
:
#e8edff
url('botleft.png')
left
bottom
no-repeat
;
}
#rounded-corner
tfoot
td
.rounded-foot-right
{
background
:
#e8edff
url('botright.png')
right
bottom
no-repeat
;
}
#rounded-corner
tbody
tr
:hover
td
{
background
:
#d0dafd
;
}
#background-image
{
font-family
:
"Lucida Sans Unicode"
,
"Lucida Grande"
,
Sans-Serif
;
font-size
:
12px
;
margin
:
45px
;
width
:
480px
;
text-align
:
left
;
border-collapse
:
collapse
;
background
:
url('blurry.jpg')
330px
59px
no-repeat
;
}
#background-image
th
{
padding
:
12px
;
font-weight
:
normal
;
font-size
:
14px
;
color
:
#339
;
}
#background-image
td
{
padding
:
9px
12px
;
color
:
#669
;
border-top
:
1px
solid
#fff
;
}
#background-image
tfoot
td
{
font-size
:
11px
;
}
#background-image
tbody
td
{
background
:
url('back.png')
;
}
*
html
#background-image
tbody
td
{
/*
----------------------------
PUT THIS ON IE6 ONLY STYLE
AS THE RULE INVALIDATES
YOUR STYLESHEET
----------------------------
*/
filter
:
progid
:
DXImageTransform
.
Microsoft
.
AlphaImageLoader
(
src
=
'back.png'
,
sizingMethod
=
'crop'
);
background
:
none
;
}
#background-image
tbody
tr
:hover
td
{
color
:
#339
;
background
:
none
;
}
#gradient-style
{
font-family
:
"Lucida Sans Unicode"
,
"Lucida Grande"
,
Sans-Serif
;
font-size
:
12px
;
margin
:
45px
;
width
:
480px
;
text-align
:
left
;
border-collapse
:
collapse
;
}
#gradient-style
th
{
font-size
:
13px
;
font-weight
:
normal
;
padding
:
8px
;
background
:
#b9c9fe
url('gradhead.png')
repeat-x
;
border-top
:
2px
solid
#d3ddff
;
border-bottom
:
1px
solid
#fff
;
color
:
#039
;
}
#gradient-style
td
{
padding
:
8px
;
border-bottom
:
1px
solid
#fff
;
color
:
#669
;
border-top
:
1px
solid
#fff
;
background
:
#e8edff
url('gradback.png')
repeat-x
;
}
#gradient-style
tfoot
tr
td
{
background
:
#e8edff
;
font-size
:
12px
;
color
:
#99c
;
}
#gradient-style
tbody
tr
:hover
td
{
background
:
#d0dafd
url('gradhover.png')
repeat-x
;
color
:
#339
;
}
#pattern-style-a
{
font-family
:
"Lucida Sans Unicode"
,
"Lucida Grande"
,
Sans-Serif
;
font-size
:
12px
;
margin
:
45px
;
width
:
480px
;
text-align
:
left
;
border-collapse
:
collapse
;
background
:
url('pattern.png')
;
}
#pattern-style-a
thead
tr
{
background
:
url('pattern-head.png')
;
}
#pattern-style-a
th
{
font-size
:
13px
;
font-weight
:
normal
;
padding
:
8px
;
border-bottom
:
1px
solid
#fff
;
color
:
#039
;
}
#pattern-style-a
td
{
padding
:
8px
;
border-bottom
:
1px
solid
#fff
;
color
:
#669
;
border-top
:
1px
solid
transparent
;
}
#pattern-style-a
tbody
tr
:hover
td
{
color
:
#339
;
background
:
#fff
;
}
#pattern-style-b
{
font-family
:
"Lucida Sans Unicode"
,
"Lucida Grande"
,
Sans-Serif
;
font-size
:
12px
;
margin
:
45px
;
width
:
480px
;
text-align
:
left
;
border-collapse
:
collapse
;
background
:
url('patternb.png')
;
}
#pattern-style-b
thead
tr
{
background
:
url('patternb-head.png')
;
}
#pattern-style-b
th
{
font-size
:
13px
;
font-weight
:
normal
;
padding
:
8px
;
border-bottom
:
1px
solid
#fff
;
color
:
#039
;
}
#pattern-style-b
td
{
padding
:
8px
;
border-bottom
:
1px
solid
#fff
;
color
:
#669
;
border-top
:
1px
solid
transparent
;
}
#pattern-style-b
tbody
tr
:hover
td
{
color
:
#339
;
background
:
#cdcdee
;
}
\ No newline at end of file
fileshell/static/resources/add_folder.png
View file @
119d9e9
3.3 KB
|
W:
|
H:
13.3 KB
|
W:
|
H:
2-up
Swipe
Onion skin
fileshell/static/resources/search_icon.png
0 → 100644
View file @
119d9e9
27.9 KB
fileshell/storages.py
View file @
119d9e9
...
...
@@ -35,7 +35,7 @@ class MediaStorage(S3Boto3Storage):
'response-content-type'
:
'application/force-download'
,
'response-content-disposition'
:
'attachment;filename="
%
s"'
%
filename
}
url
=
s3
.
generate_presigned_url
(
'get_object'
,
Params
=
{
'Bucket'
:
'fileshell-test'
,
'Key'
:
bucketPath
},
url
=
s3
.
generate_presigned_url
(
'get_object'
,
Params
=
{
'Bucket'
:
AWS_STORAGE_BUCKET_NAME
,
'Key'
:
bucketPath
},
ExpiresIn
=
100
)
return
url
...
...
templates/base.html
View file @
119d9e9
...
...
@@ -6,6 +6,7 @@
<title>
FileShell
</title>
<link
rel=
"stylesheet"
href=
"{% static 'css/layout_base.css' %}"
>
<link
rel=
"stylesheet"
href=
"{% static 'css/dropzone.css' %}"
>
<link
rel=
"stylesheet"
href=
"{% static 'css/style.css' %}"
>
</head>
<body>
...
...
@@ -21,14 +22,15 @@
</div>
<div
class=
"header"
>
<a
href=
"{% url 'logout' %}"
>
<img
class =
'logout_icon'
src=
"{% static 'resources/logout.png' %}"
width=
"50"
height=
"50"
align=
"right"
/></a>
<!--
<a href="{% url 'profile' %}"> <img class = 'profile_icon' src= "{% static 'resources/profile.png' %}" width="50" height="50" align="right"/></a>
-->
<div
class=
"search_form"
>
<form
id=
'search'
action=
""
onsubmit=
"yourFunction()"
method=
"post"
enctype=
"multipart/form-data"
>
{% csrf_token %}
<input
type=
"dir_name"
name=
"dir_name"
id=
"dir_name"
required=
"required"
placeholder=
"검색할 파일이나 폴더 이름"
>
<input
type =
"
submit
"
>
<input
type =
"
IMAGE"
name=
"search_button"
id=
"search_button"
src=
"{% static 'resources/search_icon.png'%}"
width=
"30"
height=
"50
"
>
</form>
</div>
<h1>
FileShell
</h1>
</div>
{% block content %}
{% endblock %}
...
...
templates/file.html
View file @
119d9e9
...
...
@@ -3,66 +3,79 @@
{% block content %}
<div>
<div
class=
"right_bar"
>
<li
class=
"nav-item1"
><a
href=
""
class=
"nav-link-right"
>
<img
class =
'add_folder_icon'
src=
"{% static 'resources/upload.png' %}"
width=
"30"
height=
"30"
/>
파일 업로드
</a></li>
<
form
action=
{%
url
'
upload
'
%}
method=
"post"
enctype=
"multipart/form-data"
novalidate
>
{% csrf_token %}
<
input
type =
"file"
name =
"file"
>
<input
type =
"submit"
>
</form>
<li
class=
"nav-item1"
><a
href=
""
class=
"nav-link-right"
>
<img
class =
'add_folder_icon'
src=
"{% static 'resources/add_folder.png' %}"
width=
"30"
height=
"30"
/>
새 폴더
</a></li>
<form
action=
"{% url 'add_folder' %}"
method=
"post"
enctype=
"multipart/form-data"
>
{% csrf_token %}
<input
type=
"dir_name"
name=
"dir_name"
id=
"dir_name"
required=
"required"
placeholder=
"New Folder Name"
>
<input
type =
"submit
"
>
<
div
class=
"add_folder_form"
>
<
form
id=
'add_folder'
action=
"{% url 'add_folder' %}"
method=
"post"
enctype=
"multipart/form-data"
>
{% csrf_token %}
<input
type=
"IMAGE"
name=
"add_button"
src=
"{% static 'resources/add_folder.png' %}"
width=
"200"
height=
"50"
align=
"center"
value=
"폴더 추가하기"
>
<input
type=
"dir_name"
name=
"dir_name"
id=
"dir_name"
required=
"required"
placeholder=
"New Folder Name
"
>
</form>
</div>
</div>
</div>
<div
class=
"frame"
>
<!-- //header -->
<div
class=
"container"
>
<!-- //nav -->
<div
class=
"content"
>
<table
cellspacing=
1
width=
700
border=
1
>
<table
id=
"hor-minimalist-b"
width =
1000px
>
<thead>
<tr>
<th
scope=
"col"
,
>
제목
</th>
<th
scope=
"col"
,
>
등록 시간
</th>
<th
scope=
"col"
,
>
최근 열람 시간
</th>
<th
scope=
"col"
,
>
즐겨찾기
</th>
<th
scope=
"col"
,
>
파일 크기
</th>
<th
scope=
"col"
,
>
파일 삭제
</th>
<!--
<td width=300><p align=center>제목</p></td>
<td width=350><p align=center>등록 시간</p></td>
<td width=350><p align=center>최근 열람 시간</p></td>
<td width=200><p align=center>즐겨찾기</p></td>
<td width=200><p align=center>파일 크기</p></td>
<td width=200><p align=center>파일 삭제</p></td>
-->
</tr>
</thead>
{% if folderList %}
<
ul
>
<
tbody
>
{% for folderRow in folderList %}
<tr>
<td
width=
50
><a
href=
"/{{ folderRow.dir_name }}"
,
align=
center
>
{{ folderRow.dir_name }}
</a></td>
<td
width=
100
><p
href=
""
,
align=
center
>
{{ folderRow.uploaded_TM }}
</p></td>
<td
width=
100
><p
href=
""
,
align=
center
>
{{ folderRow.last_view_TM }}
</p></td>
<td
width=
100
><p
href=
""
,
align=
center
>
{{ folderRow.isFavor }}
</p></td>
<td
width=
100
><p
href=
""
,
align=
center
>
{{ folderRow.fileSize }}
</p></td>
<td><a
href=
"/{{ folderRow.dir_name }}"
,
align=
center
>
{{ folderRow.dir_name }}
</a></td>
<td><p
href=
""
,
>
{{ folderRow.uploaded_TM }}
</p></td>
<td><p
href=
""
,
>
{{ folderRow.last_view_TM }}
</p></td>
<td
><p
href=
""
,
>
{{ folderRow.isFavor }}
</p></td>
<td
><p
href=
""
,
>
{{ folderRow.fileSize }}
</p></td>
<td
><p
href=
""
,
></p></td>
</tr>
{% endfor %}
</
ul
>
</
tbody
>
{% else %}
<p>
No Folder.
</p>
{% endif %}
{% if fileList %}
<
ul
>
<
tbody
>
{% for fileRow in fileList %}
<tr>
<td
width=
50
><a
href=
"/download/{{ fileRow.bucketPath }}{{ fileRow.title }}//{{ fileRow.title }}//{{ fileRow.bucketPath }}"
align=
center
>
{{ fileRow.title }}
</a></td>
<td
width=
100
><p
href=
""
,
align=
center
>
{{ fileRow.uploaded_TM }}
</p></td>
<td
width=
100
><p
href=
""
,
align=
center
>
{{ fileRow.last_view_TM }}
</p></td>
<td
width=
100
><a
href=
"/changeFavor/{{ fileRow.bucketPath }}/{{ fileRow.title }}"
align=
center
>
{{ fileRow.isFavor }}
</a></td>
<td
width=
100
><p
href=
""
,
align=
center
>
{{ fileRow.fileSize }}
</p></td>
<td
width=
100
><a
href=
"/delete/{{ fileRow.bucketPath }}{{ fileRow.title }}//{{ fileRow.title }}//{{ fileRow.bucketPath }}"
align=
center
>
파일 삭제
</a></td>
<td><a
href=
"/download/{{ fileRow.bucketPath }}{{ fileRow.title }}//{{ fileRow.title }}//{{ fileRow.bucketPath }}"
align=
center
>
{{ fileRow.title }}
</a></td>
<td
><p
href=
""
,
>
{{ fileRow.uploaded_TM }}
</p></td>
<td
><p
href=
""
,
>
{{ fileRow.last_view_TM }}
</p></td>
<td
><a
href=
"/changeFavor/{{ fileRow.bucketPath }}/{{ fileRow.title }}"
style=
"text-align:center;"
>
{{ fileRow.isFavor }}
</a></td>
<td
><p
href=
""
,
>
{{ fileRow.fileSize }}
</p></td>
<td><a
href=
"/delete/{{ fileRow.bucketPath }}{{ fileRow.title }}//{{ fileRow.title }}//{{ fileRow.bucketPath }}"
align=
center
>
파일 삭제
</a></td>
</tr>
{% endfor %}
</
ul
>
</
tbody
>
{% else %}
<p>
No File.
</p>
{% endif %}
</table>
<form
action=
"{% url 'upload' %}"
id=
"dropzone"
class=
"dropzone"
method=
"post"
enctype=
"multipart/form-data"
>
{% csrf_token %}
<form
action=
"{% url 'upload' %}"
id=
"dropzone"
class=
"dropzone"
method=
"post"
enctype=
"multipart/form-data"
>
{% csrf_token %}
<div
class=
"fallback"
>
<input
class=
"fall_back"
name=
"source-file"
type=
"file"
/>
</div>
...
...
templates/home.html
View file @
119d9e9
...
...
@@ -6,59 +6,65 @@
<div
class=
"container"
>
<!-- //nav -->
<div
class=
"content"
>
<div
class =
"shiftleft"
>
<h2>
즐겨찾기
</h2>
<table
cellspacing=
1
width=
700
border=
1
>
</div>
<table
id=
"hor-minimalist-b"
width =
1000px
>
<thead>
<tr>
<td
width=
300
><p
align=
center
>
제목
</p></td>
<td
width=
350
><p
align=
center
>
등록 시간
</p></td>
<td
width=
350
><p
align=
center
>
최근 열람 시간
</p></td>
<td
width=
200
><p
align=
center
>
즐겨찾기
</p></td>
<td
width=
200
><p
align=
center
>
파일 크기
</p></td>
<td
width=
200
><p
align=
center
>
파일 삭제
</p></td>
<td
width=
300
><p>
제목
</p></td>
<td
width=
350
><p>
등록 시간
</p></td>
<td
width=
350
><p>
최근 열람 시간
</p></td>
<td
width=
100
><p
>
즐겨찾기
</p></td>
<td
width=
100
><p
>
파일 크기
</p></td>
<td
width=
100
><p
>
파일 삭제
</p></td>
</tr>
{% if favorList %}
<ul
>
</thead>
{% if favorList %}
<tbody
>
{% for fileRow in favorList %}
<tr>
<td
width=
50
><a
href=
"/download/{{ fileRow.bucketPath }}{{ fileRow.title }}//{{ fileRow.title }}//{{ fileRow.bucketPath }}"
align=
center
>
{{ fileRow.title }}
</a></td>
<td
width=
100
><p
href=
""
,
align=
center
>
{{ fileRow.uploaded_TM }}
</p></td>
<td
width=
100
><p
href=
""
,
align=
center
>
{{ fileRow.last_view_TM }}
</p></td>
<td
width=
50
><a
href=
"/download/{{ fileRow.bucketPath }}{{ fileRow.title }}//{{ fileRow.title }}//{{ fileRow.bucketPath }}"
v
align=
center
>
{{ fileRow.title }}
</a></td>
<td
width=
100
><p
href=
""
,
>
{{ fileRow.uploaded_TM }}
</p></td>
<td
width=
100
><p
href=
""
,
>
{{ fileRow.last_view_TM }}
</p></td>
<td
width=
100
><a
href=
"/changeFavor/{{ fileRow.bucketPath }}/{{ fileRow.title }}"
align=
center
>
{{ fileRow.isFavor }}
</a></td>
<td
width=
100
><p
href=
""
,
align=
center
>
{{ fileRow.fileSize }}
</p></td>
<td
width=
100
><p
href=
""
,
>
{{ fileRow.fileSize }}
</p></td>
<td
width=
100
><a
href=
"/delete/{{ fileRow.bucketPath }}{{ fileRow.title }}//{{ fileRow.title }}//{{ fileRow.bucketPath }}"
align=
center
>
파일 삭제
</a></td>
</tr>
{% endfor %}
</
ul
>
</
tbody
>
{% else %}
<p>
No File.
</p>
{% endif %}
</table>
<div
class =
"shiftleft"
>
<h2>
최근 항목
</h2>
<table
cellspacing=
1
width=
700
border=
1
>
</div>
<table
id=
"hor-minimalist-b"
width =
1000px
>
<thead>
<tr>
<td
width=
300
><p
align=
center
>
제목
</p></td>
<td
width=
350
><p
align=
center
>
등록 시간
</p></td>
<td
width=
350
><p
align=
center
>
최근 열람 시간
</p></td>
<td
width=
100
><p
align=
center
>
즐겨찾기
</p></td>
<td
width=
100
><p
align=
center
>
파일 크기
</p></td>
<td
width=
100
><p
align=
center
>
파일 삭제
</p></td>
<td
width=
300
><p
>
제목
</p></td>
<td
width=
350
><p
>
등록 시간
</p></td>
<td
width=
350
><p
>
최근 열람 시간
</p></td>
<td
width=
100
><p
>
즐겨찾기
</p></td>
<td
width=
100
><p
>
파일 크기
</p></td>
<td
width=
100
><p
>
파일 삭제
</p></td>
</tr>
</thead>
{% if recentList %}
<
ul
>
<
tbody
>
{% for fileRow in recentList %}
<tr>
<td
width=
50
><a
href=
"/download/{{ fileRow.bucketPath }}{{ fileRow.title }}//{{ fileRow.title }}//{{ fileRow.bucketPath }}"
align=
center
>
{{ fileRow.title }}
</a></td>
<td
width=
100
><p
href=
""
,
align=
center
>
{{ fileRow.uploaded_TM }}
</p></td>
<td
width=
100
><p
href=
""
,
align=
center
>
{{ fileRow.last_view_TM }}
</p></td>
<td
width=
100
><p
href=
""
,
>
{{ fileRow.uploaded_TM }}
</p></td>
<td
width=
100
><p
href=
""
,
>
{{ fileRow.last_view_TM }}
</p></td>
<td
width=
100
><a
href=
"/changeFavor/{{ fileRow.bucketPath }}/{{ fileRow.title }}"
align=
center
>
{{ fileRow.isFavor }}
</a></td>
<td
width=
100
><p
href=
""
,
align=
center
>
{{ fileRow.fileSize }}
</p></td>
<td
width=
100
><p
href=
""
,
>
{{ fileRow.fileSize }}
</p></td>
<td
width=
100
><a
href=
"/delete/{{ fileRow.bucketPath }}{{ fileRow.title }}//{{ fileRow.title }}//{{ fileRow.bucketPath }}"
align=
center
>
파일 삭제
</a></td>
</tr>
{% endfor %}
</
ul
>
</
tbody
>
{% else %}
<p>
No File.
</p>
{% endif %}
...
...
templates/search.html
View file @
119d9e9
...
...
@@ -6,45 +6,47 @@
<div
class=
"container"
>
<!-- //nav -->
<div
class=
"content"
>
<table
cellspacing=
1
width=
700
border=
1
>
<table
id=
"hor-minimalist-b"
width =
1000px
>
<thead>
<tr>
<td
width=
300
><p
align=
center
>
제목
</p></td>
<td
width=
350
><p
align=
center
>
등록 시간
</p></td>
<td
width=
350
><p
align=
center
>
최근 열람 시간
</p></td>
<td
width=
200
><p
align=
center
>
즐겨찾기
</p></td>
<td
width=
200
><p
align=
center
>
파일 크기
</p></td>
<td
width=
200
><p
align=
center
>
파일 삭제
</p></td>
<td
width=
300
><p
>
제목
</p></td>
<td
width=
350
><p
>
등록 시간
</p></td>
<td
width=
350
><p
>
최근 열람 시간
</p></td>
<td
width=
200
><p
>
즐겨찾기
</p></td>
<td
width=
200
><p
>
파일 크기
</p></td>
<td
width=
200
><p
>
파일 삭제
</p></td>
</tr>
</thead>
{% if folderList %}
<
ul
>
<
tbody
>
{% for folderRow in folderList %}
<tr>
<td
width=
50
><a
href=
"/{{ folderRow.dir_name }}"
,
align=
center
>
{{ folderRow.dir_name }}
</a></td>
<td
width=
100
><p
href=
""
,
align=
center
>
{{ folderRow.uploaded_TM }}
</p></td>
<td
width=
100
><p
href=
""
,
align=
center
>
{{ folderRow.last_view_TM }}
</p></td>
<td
width=
100
><p
href=
""
,
align=
center
>
{{ folderRow.isFavor }}
</p></td>
<td
width=
100
><p
href=
""
,
align=
center
>
{{ folderRow.fileSize }}
</p></td>
<td
width=
100
><p
href=
""
,
>
{{ folderRow.uploaded_TM }}
</p></td>
<td
width=
100
><p
href=
""
,
>
{{ folderRow.last_view_TM }}
</p></td>
<td
width=
100
><p
href=
""
,
>
{{ folderRow.isFavor }}
</p></td>
<td
width=
100
><p
href=
""
,
>
{{ folderRow.fileSize }}
</p></td>
</tr>
{% endfor %}
</
ul
>
</
tbody
>
{% else %}
<p>
No Folder.
</p>
{% endif %}
{% if fileList %}
<
ul
>
<
tbody
>
{% for fileRow in fileList %}
<tr>
<td
width=
50
><a
href=
"/download/{{ fileRow.bucketPath }}{{ fileRow.title }}//{{ fileRow.title }}//{{ fileRow.bucketPath }}"
align=
center
>
{{ fileRow.title }}
</a></td>
<td
width=
100
><p
href=
""
,
align=
center
>
{{ fileRow.uploaded_TM }}
</p></td>
<td
width=
100
><p
href=
""
,
align=
center
>
{{ fileRow.last_view_TM }}
</p></td>
<td
width=
100
><p
href=
""
,
>
{{ fileRow.uploaded_TM }}
</p></td>
<td
width=
100
><p
href=
""
,
>
{{ fileRow.last_view_TM }}
</p></td>
<td
width=
100
><a
href=
"/changeFavor/{{ fileRow.bucketPath }}/{{ fileRow.title }}"
align=
center
>
{{ fileRow.isFavor }}
</a></td>
<td
width=
100
><p
href=
""
,
align=
center
>
{{ fileRow.fileSize }}
</p></td>
<td
width=
100
><p
href=
""
,
>
{{ fileRow.fileSize }}
</p></td>
<td
width=
100
><a
href=
"/delete/{{ fileRow.bucketPath }}{{ fileRow.title }}//{{ fileRow.title }}//{{ fileRow.bucketPath }}"
align=
center
>
파일 삭제
</a></td>
</tr>
{% endfor %}
</
ul
>
</
tbody
>
{% else %}
<p>
No File.
</p>
{% endif %}
</table>
...
...
Please
register
or
login
to post a comment