Files
JMuseum/views/drawing.pug
2018-02-26 14:09:18 +08:00

199 lines
8.4 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//- 畫作的命名、敘述面板
mixin namingPanel(name, description)
.panel.panel-default
.panel-body
.input-group
.input-group-addon 畫作名稱
input#txtName.form-control(name="txtName", type="text", value= name, placeholder="至少1字、至多64字", required)
.form-group
label(for="txtDescription")
textarea#txtDescription.form-control(rows="5", placeholder="敘述至少1字、至多300字", required)= description
//- 設定提示訊息
mixin setAlertMessage(isLocked, isFinished, activity)
if isLocked
.alert.alert-danger.text-center 此畫作已被鎖定,無法再更改任何資料。
else
if isFinished
.alert.alert-warning.text-center 此作品已經完成,無法在對畫作內容有任何的更改。
if activity
.alert.alert-warning.text-center 此畫作已參加公開的活動,因此「訪問權限」鎖定在「公開」的權限之下,無法變更。
//- 畫作相關設定、資訊版面
mixin settingsDiv(painting, userTags, isAutoSave)
.panel.panel-default
.panel-body
.col-xs-12
label 標籤:
#tagPanel.panel.panel-default
+setTags(userTags, painting.tags)
.col-xs-3.view-authority
label 訪問權限:
+paintingAuthorityPanel(painting.viewAuthority)
.col-xs-5
label 資訊:
+paintingInfoPanel(painting.createdTime, painting.lastModified, painting.activity, painting.isFinished, painting.isLocked)
.col-xs-4
label 動作:
+paintingActionPanel(painting.isFinished, painting.isLocked, isAutoSave)
//- 設置畫作標籤
mixin setTags(userTags, paintingTags)
- for (var i = 0; i < userTags.length; i++)
.labelTag(class= (paintingTags.indexOf(userTags[i]) > -1 ? "active" : "")) #{userTags[i]}
//- 畫作的瀏覽權限面板
mixin paintingAuthorityPanel(authority)
.panel.panel-default
.panel-body
.btn-group(data-toggle="buttons")
label#rdoPrivate.btn.btn-danger(class= (authority==2) ? "active" : "")
input(type="radio", autocomplete="off", checked= (authority==2))
| 私人
label#rdoHalfPublic.btn.btn-warning(class= (authority==1) ? "active" : "")
input(type="radio", autocomplete="off", checked= (authority==1))
| 半公開
label#rdoPublic.btn.btn-success(class= (authority==0) ? "active" : "")
input(type="radio", autocomplete="off", checked= (authority==0))
| 公開
//- 畫作資訊面板
mixin paintingInfoPanel(createdTime, lastModified, activity, isFinished, isLocked)
.panel.panel-default
.panel-body
table.table
tbody
tr
th(scope="row") 建立日期:
td#tdCreatedTime #{createdTime instanceof Date ? createdTime.toLocaleString() : createdTime}
tr
th(scope="row") 最後修改:
td#tdLastModified #{lastModified instanceof Date ? lastModified.toLocaleString() : lastModified}
tr
th(scope="row") 參與主題:
if activity
td= "參與了第" + activity.nthSeason + "季的主題: " + activity.themeName
else
td 未參與任何活動、主題
tr
th(scope="row") 畫作狀態:
if isFinished
td 已完成
else if isLocked
td 鎖定
else
td 未完成
//- 畫作的動作面板
mixin paintingActionPanel(isFinished, isLocked, isAutoSave)
.panel.panel-default
.panel-body
button#btnSavePainting.btn.btn-default.mr-20(type="button") 儲存畫作
label.checkbox-inline
input#chkAutoSave(type="checkbox", checked= isAutoSave, data-toggle="toggle", data-size="normal")
| 自動儲存
br
button#btnFinish.btn.btn-success.mt-10(type="button", disabled= (isFinished || isLocked)) 完成畫作
buttin#btnPreDelete.btn.btn-danger.mt-10.ml-10(type="button", disabled= !painting.id) 刪除畫作
//- 提醒訪客註冊或登入的屏障訊息
mixin guestBarrier(hasLogin)
if !hasLogin
.barrierPanel
.container.mt-20
.panel.panel-default
.panel-heading.text-largetext.text-center 請登入或註冊
.panel-body.text-normal.text-center
h2.mtb-10 加入我們吧!
| 我們提供使你放鬆的網站、能揮灑創意的繪圖板還有與其他繪友一起討論的空間你還在等什麼呢登入JMuseum或來註冊加入我們吧!!
.panel-footer.text-center
a.btn.btn-primary(href="/signup") 註冊
|
a.btn.btn-primary(href="/login") 登入
//- 主頁面 -//
doctype html
html
head
include layout/head.pug
link(rel="stylesheet", href="/css/bootstrap-toggle.min.css")
script(src="/js/p5/p5.min.js")
body
include layout/navbar.pug
- let painting = datas.painting;
.container-fluid.relative
//- Page Title
.container-fluid.container-table.text-shadow.color-white.layout-title
.row.text-center.align-items-center.vertical-center-row
.col
h1.text-bigtitle.pb-20 繪圖創作
//- Drawing Board
.container
//- Naming
.row
+namingPanel(painting.paintingName, painting.description)
//- Drawing Area
.row
.panel.panel-default.whiteTransparent
.row
#divAlert
.col-xs-10.col-xs-push-1
.panel.panel-default.tool-bars
input#resetCanvas.myBtn(type="button", value="重置")
|
.main-color-picker 填充色
input#mainColorPicker.color-btn.vertical-center-row(type="color")
|
.sub-color-picker 筆刷色
input#subColorPicker.color-btn.vertical-center-row(type="color")
|
.size-group
input#sizeDown10(type="button", value="-")
input#sizeDown(type="button", value="-")
label#sizeGroupText 填色大小 16
input#sizeUp(type="button", value="+")
input#sizeUp10(type="button", value="+")
|
.size-group
input#strokeSizeDown10(type="button", value="-")
input#strokeSizeDown(type="button", value="-")
label#strokeSizeGroupText 筆刷粗細 1
input#strokeSizeUp(type="button", value="+")
input#strokeSizeUp10(type="button", value="+")
|
.brush-group
.brush-caption 筆刷模式
input#normalBrush.active(type="button", value="筆刷")
input#slideBrush(type="button", value="滑筆")
input#featherBrush(type="button", value="燕筆")
input#furBrush(type="button", value="刺筆")
input#stampBrush(type="button", value="印筆")
#canvasContainer.panel-body.text-center
canvas#cvsCanvas(width="800", height="450")
| 您的瀏覽器並不支援&ltcanvas&gt標籤。
//- Message Alert
#divMessage.row
+setAlertMessage(painting.isLocked, painting.isFinished, painting.activity)
//- Settings
.row
+settingsDiv(painting, datas.userTags, datas.isAutoSave)
//- Message Dialog
#msgDialog.modal.fade(role="dialog")
.modal-dialog
.modal-content
.modal-header
button.close(type="button", data-dismiss="modal") &times;
h4#msgDialog_title.modal-title 訊息
.modal-body
p#msgDialog_message Message
.modal-footer
button#btnDelete.btn.btn-danger(type="button", data-dismiss="modal") 刪除
button#btnClose.btn.btn-default(type="button", data-dismiss="modal") 關閉
+guestBarrier(hasLogin)
//- Footer
include layout/footer.pug
//- Javascript
script(src="/js/bootstrap-toggle.js")
if hasLogin
script
| let autoSaveEnable = #{datas.isAutoSave};
| let isFinished = #{painting.isFinished};
| let paintingId =
if painting.id
| "#{painting.id}";
else
| null;
script(src="/js/drawing_tools.js")
script(src="/js/drawing_page.js")