diff options
author | pzread <netfirewall@gmail.com> | 2013-07-31 10:04:40 +0800 |
---|---|---|
committer | pzread <netfirewall@gmail.com> | 2013-07-31 10:04:40 +0800 |
commit | 02030010c7cef3012a0c733e82a531d83ac9f0ce (patch) | |
tree | 2dcb23d420caa81e245bb4a0bebb6baf5256c106 | |
parent | 9dc5cd1914a9ab6821e6835f4215149bb46aa595 (diff) | |
download | taiwan-online-judge-02030010c7cef3012a0c733e82a531d83ac9f0ce.tar taiwan-online-judge-02030010c7cef3012a0c733e82a531d83ac9f0ce.tar.gz taiwan-online-judge-02030010c7cef3012a0c733e82a531d83ac9f0ce.tar.bz2 taiwan-online-judge-02030010c7cef3012a0c733e82a531d83ac9f0ce.tar.lz taiwan-online-judge-02030010c7cef3012a0c733e82a531d83ac9f0ce.tar.xz taiwan-online-judge-02030010c7cef3012a0c733e82a531d83ac9f0ce.tar.zst taiwan-online-judge-02030010c7cef3012a0c733e82a531d83ac9f0ce.zip |
Upgrade to bootstrap 3.0.0 RC1
-rw-r--r-- | src/css/color.less | 1 | ||||
-rw-r--r-- | src/css/index.less | 36 | ||||
-rw-r--r-- | src/css/mail.less | 1 | ||||
-rw-r--r-- | src/css/manage_square.less | 2 | ||||
-rw-r--r-- | src/css/square.less | 9 | ||||
-rw-r--r-- | src/css/style.less | 30 | ||||
-rw-r--r-- | src/html/index.html | 41 | ||||
-rw-r--r-- | src/html/login.html | 10 | ||||
-rw-r--r-- | src/html/mail.html | 82 | ||||
-rw-r--r-- | src/html/manage_dash.html | 9 | ||||
-rw-r--r-- | src/html/manage_problem.html | 98 | ||||
-rw-r--r-- | src/html/manage_square.html | 154 | ||||
-rw-r--r-- | src/html/register.html | 16 | ||||
-rw-r--r-- | src/html/square.html | 6 | ||||
-rw-r--r-- | src/js/com.js | 54 | ||||
-rw-r--r-- | src/js/imc.js | 4 | ||||
-rw-r--r-- | src/js/index.js | 10 | ||||
-rw-r--r-- | src/js/mail.js | 29 | ||||
-rw-r--r-- | src/js/manage.js | 30 | ||||
-rw-r--r-- | src/js/notice.js | 6 | ||||
-rw-r--r-- | src/js/square.js | 20 | ||||
-rw-r--r-- | src/pmod/pmod_test/css/manage.less | 2 | ||||
-rw-r--r-- | src/pmod/pmod_test/html/manage.html | 352 | ||||
-rw-r--r-- | src/pmod/pmod_test/html/view.html | 28 | ||||
-rw-r--r-- | src/pmod/pmod_test/js/pmod_test.js | 157 |
25 files changed, 699 insertions, 488 deletions
diff --git a/src/css/color.less b/src/css/color.less index c1887c6..c476640 100644 --- a/src/css/color.less +++ b/src/css/color.less @@ -11,6 +11,7 @@ @SmallPad:6px; @MediumPad:16px; +@BigPad:32px; @LargePad:64px; @ExtraPad:128px; diff --git a/src/css/index.less b/src/css/index.less index 04f75eb..a384af7 100644 --- a/src/css/index.less +++ b/src/css/index.less @@ -8,23 +8,24 @@ body{ #index_header{ height:0px; - z-index:1; - position:fixed; - top:0px; - left:0px; + .pos_left(fixed,0px,0px,1); opacity:0; transition:opacity @fast; overflow:hidden; &.active{ - height:33px; + height:32px; opacity:1; display:block; } + + div.side{ + .pos_right(fixed,0px,0px); + } } .index_tag{ - height:33px; - line-height:33px; + height:32px; + line-height:32px; opacity:0.2; transition:opacity @fast; @@ -46,7 +47,7 @@ body{ .pos_left(fixed,0px,0px,2); div.menu{ - width:80px; + width:100px; padding-left:32px; background-color:@darkgray; text-align:left; @@ -82,17 +83,19 @@ body{ div.tagblock{ width:100%; - height:33px; - box-shadow:0px 3px 2px -2px fade(@black,10%); + height:32px; } div.menu{ + margin-bottom:0px; overflow-x:hidden; - li > a{ - height:48px; + + a{ padding-left:32px; + padding-top:(48 - @NormalFontSize) / 2; + padding-bottom:(48 - @NormalFontSize) / 2; + border-width:0px; font-size:@NormalFontSize; font-weight:bold; - line-height:48px; } } } @@ -111,15 +114,16 @@ body{ div.tagblock{ width:100%; - height:33px; - box-shadow:0px 3px 2px -2px fade(@black,10%); + height:32px; } div.notice{ + margin-bottom:0px; overflow-y:auto; - ul.nav > li > a{ + a{ min-height:64px; padding-left:@SmallPad; + border-width:0px; font-size:@NormalFontSize; p{ diff --git a/src/css/mail.less b/src/css/mail.less index e0bd6e7..940ff28 100644 --- a/src/css/mail.less +++ b/src/css/mail.less @@ -5,6 +5,7 @@ div.newmail{ div.content{ width:100%; + height:256px; } } div.readmail{ diff --git a/src/css/manage_square.less b/src/css/manage_square.less index 87f1ca7..d373865 100644 --- a/src/css/manage_square.less +++ b/src/css/manage_square.less @@ -7,7 +7,7 @@ min-height:320px; img.logo{ - width:96px; + width:100%; } } } diff --git a/src/css/square.less b/src/css/square.less index ccd2e6a..9863235 100644 --- a/src/css/square.less +++ b/src/css/square.less @@ -2,8 +2,7 @@ @import 'mixin.less'; #index_page{ - div.catelist{ - position:fixed; + div.sidelist{ } div.indexlist{ div.catebox{ @@ -19,7 +18,7 @@ div.box{ height:108px; - margin-bottom:12px; + margin-bottom:@SmallPad * 2; box-shadow:0px 0px 6px 0px fade(@black,30%); position:relative; @@ -46,8 +45,8 @@ &:hover{ box-shadow:0px 0px 6px 1px fade(@black,30%); } - &:nth-child(2n - 1){ - margin-left:0px; + &:nth-child(2n){ + margin-left:@SmallPad * 2; } } } diff --git a/src/css/style.less b/src/css/style.less index c03cec6..0a6fa80 100644 --- a/src/css/style.less +++ b/src/css/style.less @@ -7,17 +7,14 @@ src:url('/DejaVuSansMono.woff'); } -div.tiny_modal{ +div.tiny-modal > div.modal-dialog{ width:270px; - margin-left:-135px; } -div.small_modal{ +div.small-modal > div.modal-dialog{ width:570px; - margin-left:-285px; } -div.medium_modal{ +div.medium-modal > div.modal-dialog{ width:970px; - margin-left:-485px; } span.check{ width:14px; @@ -31,27 +28,28 @@ span.check{ } i{ + font-size:10px; position:absolute; - top:-2px; - left:0px; + top:1px; + left:1px; } } span.check_bold{ - border:@darkgray 2px solid; + border:@darkgray 1px solid; } .time{ font-size:@SmallFontSize; font-family:monospace; } -.uneditable-input{ - cursor:default; -} span.tag{ margin-right:@SmallPad; font-size:13px; + position:relative; i{ margin-left:@SmallPad; + position:relative; + top:2px; cursor:pointer; opacity:0.8; @@ -61,20 +59,24 @@ span.tag{ } } div.tagbox{ + width:100%; position:relative; div{ height:0px; position:absolute; - top:4px; - left:7px; + top:9px; + left:11px; z-index:1; span.tag{ margin-bottom:3px; + float:left; } } input{ + padding-left:12px; + padding-top:8px; z-index:0; } ul{ diff --git a/src/html/index.html b/src/html/index.html index 1d2855a..f21f334 100644 --- a/src/html/index.html +++ b/src/html/index.html @@ -72,11 +72,17 @@ $(document).ready(function(){ <div id="index_header" class="navbar navbar-fixed-top navbar-inverse"> <div class="navbar-inner"> <div class="container"> - <p class="title offset1 span2 navbar-text"></p> - <ul class="nav tabnav"></ul> + <div class="row"> + <div class="col-lg-2 col-offset-1"> + <p class="title navbar-text"></p> + </div> + <div class="col-lg-10"> + <ul class="nav navbar-nav"></ul> + </div> + </div> </div> - <div style="position:absolute; top:0px; right:0px;"> - <ul class="nav"> + <div class="side"> + <ul class="nav navbar-nav"> <li class="nickname" style="display:none;"><a></a></li> <li class="logout" style="display:none;"><a href="/toj/logout/">登出</a></li> <li class="login"><a href="/toj/login/">登入</a></li> @@ -91,16 +97,14 @@ $(document).ready(function(){ </div> <div id="index_menu" exheight=true> <div class="tagblock"></div> - <div class="menu"> - <ul class="nav nav-list"> - <li><a href="/toj/home/">首頁</a></li> - <li class="profile" style="display:none;"><a href="">個人</a></li> - <li class="square" style="display:none;"><a href="/toj/square/user/">方塊</a></li> - <li class="mail" style="display:none;"><a href="/toj/mail/inbox/">信箱</a></li> - <li class="manage" style="display:none;"><a href="/toj/manage/dash/">管理</a></li> - <li class="stat"><a href="/toj/stat/">狀態</a></li> - <li><a href="#">關於</a></li> - </ul> + <div class="list-group menu"> + <a class="list-group-item" href="/toj/home/">首頁</a> + <a class="list-group-item profile" href="" style="display:none;">個人</a> + <a class="list-group-item square" href="/toj/square/">方塊</a> + <a class="list-group-item mail" href="/toj/mail/inbox/" style="display:none;">信箱</a> + <a class="list-group-item manage" href="/toj/manage/dash/" style="display:none;">管理</a> + <a class="list-group-item stat" href="/toj/stat/">狀態</a> + <a class="list-group-item" href="#">關於</a> </div> </div> @@ -109,15 +113,14 @@ $(document).ready(function(){ </div> <div id="index_panel" exheight=true> <div class="tagblock"></div> - <div class="notice" exheight=true extop=41px> - <ul class="nav nav-list"></ul> - </div> + <div class="list-group notice" exheight=true extop=32px></div> </div> <div id="index_alert" style="z-index:2000;"></div> -<div id="index_page" class="container" exminheight=true extop=56px exbottom=62px></div> +<div id="index_page" class="container" exminheight=true extop=48px exbottom=62px></div> <div id="index_footer"> - <p class="muted">εpsilon team</p> + <p class="text-muted">εpsilon team</p> </div> + </body> </html> diff --git a/src/html/login.html b/src/html/login.html index 3f7b15d..79a7bd1 100644 --- a/src/html/login.html +++ b/src/html/login.html @@ -1,15 +1,15 @@ <div class="row"> - <div class="info span6"> + <div class="info col-lg-6"> <h2>登入TOJ,開始你的解題</h2> <p class="lead">沒有帳戶?   <a href="/toj/register/">註冊</a></p> </div> - <div class="input offset1 span3"> + <div class="input col-lg-3 col-offset-1"> <h2>登入</h2> - <div class="alert alert-error" style="display:none;"></div> + <div class="alert alert-danger" style="display:none;"></div> - <input name="username" type="text" placeholder="使用者名稱"><br> - <input name="password" type="password" placeholder="密碼"><br> + <input name="username" type="text" class="form-control" placeholder="使用者名稱"><br> + <input name="password" type="password" class="form-control" placeholder="密碼"><br> <button class="btn btn-primary submit">登入</button> </div> </div> diff --git a/src/html/mail.html b/src/html/mail.html index f6a8aac..6471d93 100644 --- a/src/html/mail.html +++ b/src/html/mail.html @@ -1,56 +1,60 @@ -<div class="modal hide fade medium_modal newmail"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> - <h3>寫新郵件</h3> - </div> - <div class="modal-body container-fluid"> - <div class="row-fluid"> - <div class="span13"> - <div class="input-prepend"> - <span class="add-on">收件人</span> - <input class="to_username" type="text" placeholder="使用者名稱"> - </div> - <div class="input-prepend"> - <span class="add-on">標題</span> - <input class="title" type="text"> +<div class="modal fade medium-modal newmail"> + <div class="modal-dialog"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> + <h3>寫新郵件</h3> + </div> + <div class="modal-body row"> + <div class="span13"> + <div class="input-group"> + <span class="input-group-addon">收件人</span> + <input class="form-control to_username" type="text" placeholder="使用者名稱"> + </div><br> + <div class="input-group"> + <span class="input-group-addon">標題</span> + <input class="form-control title" type="text"> + </div><br> + <div class="content"></div> </div> - <div class="content" exheight=true exratio=38%></div> + </div> + <div class="modal-footer"> + <button class="btn btn-primary submit">寄出</button> + <button class="btn cancel">取消</button> </div> </div> </div> - <div class="modal-footer"> - <button class="btn btn-primary submit">寄出</button> - <button class="btn cancel">取消</button> - </div> </div> -<div class="modal hide fade medium_modal readmail"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> - <h3 class="title"></h3> - </div> - <div class="modal-body container-fluid"> - <div class="row-fluid"> - <div class="span13"> - <div class="input-prepend"> - <span class="add-on username_label"></span> - <span class="uneditable-input username" type="text"></span> +<div class="modal fade medium-modal readmail"> + <div class="modal-dialog"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> + <h3 class="title"></h3> + </div> + <div class="modal-body row"> + <div class="span13"> + <div class="input-group"> + <span class="input-group-addon username_label"></span> + <input class="form-control username" type="text" disabled></input> + </div><br> + <div class="content"></div> </div> - <div class="content" exheight=true exratio=38%></div> + </div> + <div class="modal-footer"> + <button class="btn reply">回信</button> </div> </div> </div> - <div class="modal-footer"> - <button class="btn reply">回信</button> - </div> </div> <div class="row"> - <div class="offset1 span2 oper"> + <div class="col-lg-2 col-offset-1 oper"> <button class="btn btn-primary newmail">寫新郵件</button><br><br> - <button class="btn delmail">刪除所選</button> + <button class="btn btn-default delmail">刪除所選</button> </div> - <div class="span8 mail"> + <div class="col-lg-8 mail"> <table class="table table-hover maillist"> <thead> <tr> @@ -62,6 +66,6 @@ </thead> <tbody></tbody> </table> - <div class="pagination"></div> + <ul class="pagination"></ul> </div> </div> diff --git a/src/html/manage_dash.html b/src/html/manage_dash.html index e89c5b0..b7a8cb2 100644 --- a/src/html/manage_dash.html +++ b/src/html/manage_dash.html @@ -1,13 +1,10 @@ <div class="row"> - <div class="span3"> - - </div> - <div class="span6"> + <div class="col-lg-10 col-offset-3"> <table class="table accesslist"> <thead> <tr> - <th class="span2">物件權限ID</th> - <th class="span4">權限</th> + <th class="col-lg-1">物件權限ID</th> + <th class="col-lg-5">權限</th> </tr> </thead> <tbody></tbody> diff --git a/src/html/manage_problem.html b/src/html/manage_problem.html index 15d4c1a..f2c7b0b 100644 --- a/src/html/manage_problem.html +++ b/src/html/manage_problem.html @@ -1,64 +1,68 @@ -<div class="modal hide fade tiny_modal create"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> - <h3>建立題目</h3> - </div> - <div class="modal-body container-fluid"> - <div class="row-fluid"> - <div class="span13"> - <label>題目名稱</label> - <input name="title" type="text"> - <label>題目模組</label> - <select name="pmod"></select> - <label>公開狀態</label> - <select name="hidden"> - <option value=0>顯示</option> - <option value=1>隱藏</option> - </select> +<div class="modal fade tiny-modal create"> + <div class="modal-dialog"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> + <h3>建立題目</h3> + </div> + <div class="modal-body row"> + <div class="col-lg-13"> + <label>題目名稱</label> + <input class="form-control" name="title" type="text"><br> + <label>題目模組</label> + <select class="form-control" name="pmod"></select><br> + <label>公開狀態</label> + <select class="form-control" name="hidden"> + <option value=0>顯示</option> + <option value=1>隱藏</option> + </select> + </div> + </div> + <div class="modal-footer"> + <button class="btn btn-primary submit">確定</button> + <button class="btn cancel">取消</button> </div> </div> </div> - <div class="modal-footer"> - <button class="btn btn-primary submit">確定</button> - <button class="btn cancel">取消</button> - </div> </div> -<div class="modal hide fade tiny_modal set"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> - <h3>題目設定</h3> - </div> - <div class="modal-body container-fluid"> - <div class="row-fluid"> - <div class="span13"> - <label>題目名稱</label> - <input name="title" type="text"> - <label>公開狀態</label> - <select name="hidden"> - <option value=0>顯示</option> - <option value=1>隱藏</option> - </select> +<div class="modal fade tiny-modal set"> + <div class="modal-dialog"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> + <h3>題目設定</h3> + </div> + <div class="modal-body row"> + <div class="col-lg-13"> + <label>題目名稱</label> + <input class="form-control" name="title" type="text"><br> + <label>公開狀態</label> + <select class="form-control" name="hidden"> + <option value=0>顯示</option> + <option value=1>隱藏</option> + </select> + </div> + </div> + <div class="modal-footer"> + <button class="btn btn-primary submit">確定</button> + <button class="btn cancel">取消</button> </div> </div> </div> - <div class="modal-footer"> - <button class="btn btn-primary submit">確定</button> - <button class="btn cancel">取消</button> - </div> </div> <div class="row"> - <div class="span2 offset1 oper"> - <button class="btn create" style="display:none;">建立題目</button> + <div class="col-lg-2 col-offset-1 oper"> + <button class="btn btn-default create" style="display:none;">建立題目</button> </div> - <div class="span5"> + <div class="col-lg-5"> <table class="table list"> <thead> <tr> - <th class="span1">#</th> - <th class="span2">題目名稱</th> - <th class="span1">公開狀態</th> - <th class="span1"></th> + <th class="col-lg-1">#</th> + <th class="col-lg-2">題目名稱</th> + <th class="col-lg-1">公開狀態</th> + <th class="col-lg-1"></th> </tr> </thead> <tbody></tbody> diff --git a/src/html/manage_square.html b/src/html/manage_square.html index 15cb48f..8bbc4f8 100644 --- a/src/html/manage_square.html +++ b/src/html/manage_square.html @@ -1,89 +1,97 @@ <link href="/toj/css/manage_square.css" rel="stylesheet"> -<div class="modal hide fade small_modal create"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> - <h3>建立方塊</h3> - </div> - <div class="modal-body container-fluid"> - <div class="row-fluid"> - <div class="span6"> - <label>方塊名稱</label> - <input name="title" type="text"> - <label>方塊介紹</label> - <input name="intro" type="text"> - <label>方塊圖片</label> - <input name="logo" type="text"> - <img class="img-polaroid hide logo"></img> +<div class="modal fade small-modal create"> + <div class="modal-dialog"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> + <h3>建立方塊</h3> + </div> + <div class="modal-body row"> + <div class="col-lg-6"> + <label>方塊名稱</label> + <input class="form-control" name="title" type="text"><br> + <label>方塊介紹</label> + <input class="form-control" name="intro" type="text"><br> + <label>方塊圖片</label> + <input class="form-control" name="logo" type="text"><br> + <img class="thumbnail logo" style="display:none;"></img> + </div> + <div class="col-lg-7"> + <label>方塊模組</label> + <select class="form-control" name="sqmod"></select><br> + <label>公開狀態</label> + <select class="form-control" name="hidden"><br> + <option value=0>顯示</option> + <option value=1>隱藏</option> + </select><br> + <label>分類</label> + <div class="catebox"></div> + </div> </div> - <div class="span7"> - <label>方塊模組</label> - <select name="sqmod"></select> - <label>公開狀態</label> - <select name="hidden"> - <option value=0>顯示</option> - <option value=1>隱藏</option> - </select> - <label>分類</label> - <div class="catebox"></div> + <div class="modal-footer"> + <button class="btn btn-primary submit">確定</button> + <button class="btn cancel">取消</button> </div> </div> </div> - <div class="modal-footer"> - <button class="btn btn-primary submit">確定</button> - <button class="btn cancel">取消</button> - </div> </div> -<div class="modal hide fade small_modal set"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> - <h3>方塊設定</h3> - </div> - <div class="modal-body container-fluid"> - <div class="row-fluid"> - <div class="span6"> - <label>方塊名稱</label> - <input name="title" type="text"> - <label>方塊介紹</label> - <input name="intro" type="text"> - <label>方塊圖片</label> - <input name="logo" type="text"> - <img class="img-polaroid logo"></img> +<div class="modal fade small_modal set"> + <div class="modal-dialog"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> + <h3>方塊設定</h3> </div> - <div class="span7"> - <label>公開狀態</label> - <select name="hidden"> - <option value=0>顯示</option> - <option value=1>隱藏</option> - </select> - <label>分類</label> - <div class="catebox"></div> + <div class="modal-body row"> + <div class="row-fluid"> + <div class="col-lg-6"> + <label>方塊名稱</label> + <input class="form-control" name="title" type="text"><br> + <label>方塊介紹</label> + <input class="form-control" name="intro" type="text"><br> + <label>方塊圖片</label> + <input class="form-control" name="logo" type="text"><br> + <img class="img-thumbnail logo"></img> + </div> + <div class="col-lg-7"> + <label>公開狀態</label> + <select class="form-control" name="hidden"> + <option value=0>顯示</option> + <option value=1>隱藏</option> + </select><br> + <label>分類</label> + <div class="catebox"></div> + </div> + </div> + </div> + <div class="modal-footer"> + <button class="btn btn-primary submit">確定</button> + <button class="btn cancel">取消</button> </div> </div> </div> - <div class="modal-footer"> - <button class="btn btn-primary submit">確定</button> - <button class="btn cancel">取消</button> - </div> </div> -<div class="row clearfix"> - <div class="span2 offset1 oper"> - <button class="btn create" style="display:none;">建立方塊</button> +<div class="row"> + <div class="col-lg-2 col-offset-1 oper"> + <button class="btn btn-default create" style="display:none;">建立方塊</button> + </div> + <div class="col-lg-10"> + <table class="table table-hover list"> + <thead> + <tr> + <th class="col-lg-1">#</th> + <th class="col-lg-2">名稱</th> + <th class="col-lg-2">時間</th> + <th class="col-lg-1">公開狀態</th> + <th class="col-lg-3">分類</th> + <th class="col-lg-1"></th> + </tr> + </thead> + <tbody> + </tbody> + </table> </div> - <table class="span10 table table-hover list"> - <thead> - <tr> - <th class="span1">#</th> - <th class="span2">名稱</th> - <th class="span2">時間</th> - <th class="span1">公開狀態</th> - <th class="span3">分類</th> - <th class="span1"></th> - </tr> - </thead> - <tbody> - </tbody> - </table> </div> diff --git a/src/html/register.html b/src/html/register.html index bb5a346..567699a 100644 --- a/src/html/register.html +++ b/src/html/register.html @@ -1,18 +1,18 @@ <div class="row"> - <div class="info span6"> + <div class="info col-lg-6"> <h2>註冊TOJ,開始你的解題</h2> <p class="lead">有帳戶?   <a href="/toj/login/">登入</a></p> </div> - <div class="input offset1 span3"> + <div class="input col-lg-3 col-offset-1"> <h2>註冊</h2> - <div class="alert alert-error" style="display:none;"></div> + <div class="alert alert-danger" style="display:none;"></div> - <input name="username" type="text" placeholder="使用者名稱"><br> - <input name="password" type="password" placeholder="密碼"><br> - <input name="repeat" type="password" placeholder="重復密碼"><br> - <input name="nickname" type="text" placeholder="暱稱"><br> - <input name="email" type="text" placeholder="信箱"><br> + <input name="username" type="text" class="form-control" placeholder="使用者名稱"><br> + <input name="password" type="password" class="form-control" placeholder="密碼"><br> + <input name="repeat" type="password" class="form-control" placeholder="重復密碼"><br> + <input name="nickname" type="text" class="form-control" placeholder="暱稱"><br> + <input name="email" type="text" class="form-control" placeholder="信箱"><br> <button class="btn btn-primary submit">註冊</button> </div> </div> diff --git a/src/html/square.html b/src/html/square.html index 9c8fd47..e594946 100644 --- a/src/html/square.html +++ b/src/html/square.html @@ -1,7 +1,7 @@ <div class="row"> - <div class="span3 catelist"> + <div class="col-lg-2 sidelist"> <h3>分類</h3> - <ul class="nav nav-tabs nav-stacked catelist"></ul> + <div class="list-group catelist"></div> </div> - <div class="span10 offset3 indexlist"></div> + <div class="col-lg-11 indexlist"></div> </div> diff --git a/src/js/com.js b/src/js/com.js index 1a6d732..d19c8fd 100644 --- a/src/js/com.js +++ b/src/js/com.js @@ -19,11 +19,11 @@ var WebSocketConnection = function(link,ws,file_addr){ that.send_msg = function(data){ ws.send(new Blob([data],{'type':'application/octet-stream'})) }; - that.send_file = function(filekey,blob,callback){ + that.send_file = function(filekey,blob,callback,prog_callback){ var i; - var file_ws = new Array(4); + var file_ws = new Array(8); var filesize = blob.size; - var partsize = Math.ceil(filesize / 4); + var partsize = Math.ceil(filesize / 8); var count = 0; function _callback(err){ @@ -33,7 +33,7 @@ var WebSocketConnection = function(link,ws,file_addr){ delete sendfile_filekeymap[filekey]; - for(i = 0;i < 4;i++){ + for(i = 0;i < 8;i++){ if(file_ws[i] != undefined){ file_ws[i].close(); } @@ -42,7 +42,7 @@ var WebSocketConnection = function(link,ws,file_addr){ callback(err); } - for(i = 0;i < 4;i++){ + for(i = 0;i < 8;i++){ file_ws[i] = new WebSocket('ws://' + file_addr + '/conn'); file_ws[i].onopen = function(idx){return function(){ var ws = file_ws[idx]; @@ -52,7 +52,7 @@ var WebSocketConnection = function(link,ws,file_addr){ ws.onmessage = function(e){ if(off >= end){ count += 1; - if(count == 4){ + if(count == 8){ _callback(); } }else{ @@ -195,7 +195,7 @@ var com = new function(){ j_e.empty(); j_e.attr('checked',null); }else{ - j_e.append($('<i class="icon-ok"></i>')); + j_e.append($('<i class="glyphicon glyphicon-ok"></i>')); j_e.attr('checked','checked'); } @@ -240,6 +240,8 @@ var com = new function(){ $(document).on('click','span.check',function(e){ var j_e = $(e.target); + console.log('test'); + if(!j_e.is('span.check')){ j_e = j_e.parent('span.check'); } @@ -603,7 +605,7 @@ var com = new function(){ ex($('[exheight="true"]'),'height'); ex($('[exminheight="true"]'),'min-height'); - $('.modal-body').css('max-height',(winheight * 0.9 - 192) + 'px'); + //$('.modal-body').css('max-height',(winheight * 0.9 - 192) + 'px'); }; that.get_cookie = function(){ var ret; @@ -690,7 +692,7 @@ var com = new function(){ return codebox; }; - that.create_pagination = function(j_div,start,end,curr,step){ + that.create_pagination = function(j_ul,start,end,curr,step){ var i; var j_ul; var j_li; @@ -701,11 +703,8 @@ var com = new function(){ end = Math.floor(Math.max(0,(end - 1)) / step); curr = Math.floor(curr / step); - j_div.empty(); - - j_div.addClass('pagination'); - j_div.append('<ul></ul>'); - j_ul = j_div.find('ul') + j_ul.empty(); + j_ul.addClass('pagination'); j_li = $('<li class="prev"><a href="">←</a></li>'); if(curr == 0){ @@ -783,25 +782,25 @@ var com = new function(){ var left; var top; - left = 6; - top = 4; + left = 12; + top = 8; if((j_tag = j_box.find('span.tag:last')).length == 1){ pos = j_tag.position(); - left += pos.left + j_tag.width() + 14; + left += pos.left + j_tag.width() + 20; - top += pos.top + j_tag.height() + 1; + top += pos.top + j_tag.height() + 2; if((inwidth - left) < 70){ - left = 6; - top += 6; + left = 12; + top += 8; }else{ top -= (j_tag.height() + 2); } } - j_input.width(inwidth - left + 6); j_input.css('padding-left',left); j_input.css('padding-top',top); + j_input.css('height',top + 30); } function _match(value){ var i; @@ -884,12 +883,11 @@ var com = new function(){ } } function _init(){ - j_input.css('width',''); - width = j_input.width() + 14; - inwidth = width - 14; + j_div.css('width','100%'); + width = j_div.width(); + inwidth = width - 24; - j_div.width(width); - j_input.width(inwidth); + j_box.width(inwidth); j_menu.width(width - 2); } function _set_words(new_words){ @@ -942,7 +940,7 @@ var com = new function(){ j_div.empty(); j_div.addClass('tagbox'); - j_div.append($('<div></div><input type="text"><ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu"></ul>')); + j_div.append($('<div></div><input class="form-control" type="text"><ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu"></ul>')); j_box = j_div.find('div'); j_input = j_div.find('input'); @@ -1043,7 +1041,7 @@ var com = new function(){ } j_span.text(text); - j_i = $('<i class="icon-remove-circle icon-white"></i>'); + j_i = $('<i class="glyphicon glyphicon-remove-circle"></i>'); j_span.append(j_i); j_i.on('click',function(e){ j_span.remove(); diff --git a/src/js/imc.js b/src/js/imc.js index 05ce6be..103e4cb 100644 --- a/src/js/imc.js +++ b/src/js/imc.js @@ -378,13 +378,15 @@ var imc = new function(){ that.sendfile = function(dst_link, blob, filekey_callback, - result_callback){ + result_callback, + prog_callback){ var filekey = self_link + '_' + Math.random(); info_filekeymap[filekey] = { 'blob':blob, 'result_callback':result_callback, + 'prog_callback':prog_callback, 'callback':function(err){ if(ret_sendfile(filekey,err) && err != undefined){ that.call(dst_link + 'imc/','abort_sendfile',65536,null,filekey,err); diff --git a/src/js/index.js b/src/js/index.js index 1058dc8..c18543a 100644 --- a/src/js/index.js +++ b/src/js/index.js @@ -130,8 +130,8 @@ var index = new function(){ j_li = j_menu.find('div.menu li.profile'); j_li.find('a').attr('href','/toj/user:' + user.uid + '/main/'); j_li.show(); - j_menu.find('div.menu li.mail').show(); - j_menu.find('div.menu li.manage').show(); + j_menu.find('div.menu a.mail').show(); + j_menu.find('div.menu a.manage').show(); } }); @@ -150,17 +150,17 @@ var index = new function(){ j_a.text(text); j_a.attr('href',link); - j_header.find('ul.tabnav').append(j_li); + j_header.find('div.container ul.navbar-nav').append(j_li); j_li.active = function(){ - j_header.find('ul.tabnav > li.active').removeClass('active'); + j_header.find('div.container ul.navbar-nav > li.active').removeClass('active'); j_li.addClass('active'); }; return j_li; }; that.clear_tabnav = function(){ - j_header.find('ul.tabnav').empty(); + j_header.find('div.container ul.navbar-nav').empty(); }; that.add_alert = function(type,title,content,autofade){ var j_alert; diff --git a/src/js/mail.js b/src/js/mail.js index 8b1fc36..f6a9b83 100644 --- a/src/js/mail.js +++ b/src/js/mail.js @@ -59,7 +59,7 @@ var mail = new function(){ com.call_backend('core/mail/','get_mail_count',function(result){ var i; - var j_div = j_index_page.find('div.pagination'); + var j_ul = j_index_page.find('ul.pagination'); var offs; var as; var pfix; @@ -73,8 +73,8 @@ var mail = new function(){ pfix = '/toj/mail/backup:'; } - offs = com.create_pagination(j_div,0,result.data.tot_count,maillist_off,20); - as = j_div.find('a'); + offs = com.create_pagination(j_ul,0,result.data.tot_count,maillist_off,20); + as = j_ul.find('a'); for(i = 0;i < as.length;i++){ $(as[i]).attr('href',pfix + offs[i] + '/'); } @@ -140,8 +140,10 @@ var mail = new function(){ j_maillist = j_index_page.find('table.maillist > tbody'); j_newmail = j_index_page.find('div.newmail'); j_readmail = j_index_page.find('div.readmail'); - newmail_content = com.create_codebox(j_newmail.find('div.content'),'text/html'); - readmail_content = com.create_codebox(j_readmail.find('div.content'),'text/html',true); + newmail_content = j_newmail.find('div.content').codebox( + {'mode':'text/html'}); + readmail_content = j_readmail.find('div.content').codebox( + {'mode':'text/html','readonly':true}); inbox_tabnav = index.add_tabnav('收件匣','/toj/mail/inbox/'); backup_tabnav = index.add_tabnav('寄件備份','/toj/mail/backup/'); @@ -177,10 +179,11 @@ var mail = new function(){ } }); - j_newmail.on('shown',function(e){ + j_newmail.on('shown.bs.modal',function(e){ + console.log('test'); newmail_content.refresh(); }); - j_newmail.on('hide',function(e){ + j_newmail.on('hide.bs.modal',function(e){ j_newmail.find('input').val(''); newmail_content.setValue(''); }); @@ -219,7 +222,7 @@ var mail = new function(){ j_newmail.modal('hide'); }); - j_readmail.on('show',function(e){ + j_readmail.on('show.bs.modal',function(e){ com.call_backend('core/mail/','recv_mail',function(result){ var data; @@ -229,24 +232,24 @@ var mail = new function(){ data = result.data; j_readmail.find('h3.title').text(data.title); - j_readmail.find('span.username').text(data.from_username); + j_readmail.find('input.username').val(data.from_username); readmail_content.setValue(data.content); } },readmail_mailid); }); - j_readmail.on('shown',function(e){ + j_readmail.on('shown.bs.modal',function(e){ readmail_content.refresh(); }); - j_readmail.on('hide',function(e){ + j_readmail.on('hide.bs.modal',function(e){ j_readmail.find('h3.title').text(''); - j_readmail.find('span.from_username').text(''); + j_readmail.find('input.username').val(''); readmail_content.setValue(''); readmail_mailid = null; update_maillist(); }); j_readmail.find('button.reply').on('click',function(e){ - j_newmail.find('input.to_username').val(j_readmail.find('span.username').text()); + j_newmail.find('input.to_username').val(j_readmail.find('input.username').val()); j_newmail.find('input.title').val('Re: ' + j_readmail.find('h3.title').text()); j_readmail.modal('hide'); diff --git a/src/js/manage.js b/src/js/manage.js index 822b31e..6ebffaf 100644 --- a/src/js/manage.js +++ b/src/js/manage.js @@ -156,7 +156,7 @@ var manage = new function(){ }); } function _item_create(id,title,hidden,start_time,end_time,cateid,intro,logo){ - var j_item = $('<tr class="item"><td class="id"></td><td class="title"><td class="time"><div class="time start"></div><div class="time end"></div></td><td class="hid"></td></td><td class="cate"></td><td class="oper"><div class="btn-group"><button class="btn btn-small set"><i class="icon-cog"></i></button><button class="btn btn-small del"><i class="icon-trash"></i></button></div></td></tr>'); + var j_item = $('<tr class="item"><td class="id"></td><td class="title"><td class="time"><div class="time start"></div><div class="time end"></div></td><td class="hid"></td></td><td class="cate"></td><td class="oper"><div class="btn-group"><button class="btn btn-default btn-small set"><i class="glyphicon glyphicon-cog"></i></button><button class="btn btn-default btn-small del"><i class="glyphicon glyphicon-trash"></i></button></div></td></tr>'); _item_set(j_item,id,title,hidden,start_time,end_time,cateid,intro,logo); @@ -346,7 +346,7 @@ var manage = new function(){ j_create.find('button.cancel').on('click',function(e){ j_create.modal('hide'); }); - j_create.on('show',function(e){ + j_create.on('show.bs.modal',function(e){ _update_sqmod().done(function(sqmod_list){ var i; var j_sqmod; @@ -366,7 +366,10 @@ var manage = new function(){ } }); }); - j_create.on('hide',function(e){ + j_create.on('shown.bs.modal',function(e){ + create_tagbox_cate.refresh(); + }); + j_create.on('hide.bs.modal',function(e){ j_create.find('input').val(''); j_create.find('img.logo').attr('src',null); create_tagbox_cate.clear(); @@ -386,7 +389,7 @@ var manage = new function(){ j_logo.attr('src',url); } }); - j_set.on('show',function(e){ + j_set.on('show.bs.modal',function(e){ var i; var url; @@ -409,10 +412,9 @@ var manage = new function(){ for(i = 0;i < set_data.cateid.length;i++){ set_tagbox_cate.add_tag(cate_idmap[set_data.cateid[i]]); } - - j_set.on('shown',function(e){ - set_tagbox_cate.refresh(); - }); + }); + j_set.on('shown.bs.modal',function(e){ + set_tagbox_cate.refresh(); }); j_set.find('button.submit').on('click',function(e){ var i; @@ -470,7 +472,7 @@ var manage = new function(){ j_set.find('button.cancel').on('click',function(e){ j_set.modal('hide'); }); - j_set.on('hide',function(e){ + j_set.on('hide.bs.modal',function(e){ j_set.find('input').val(''); j_set.find('img.logo').attr('src',null); set_tagbox_cate.clear(); @@ -524,7 +526,7 @@ var manage = new function(){ }); } function _item_create(proid,title,hidden,pmodid){ - var j_item = $('<tr class="item"><td class="proid"></td><td class="title"></td><td class="hid"></td><td class="oper"><div class="btn-group"><button class="btn btn-small set"><i class="icon-cog"></i></button><button class="btn btn-small del"><i class="icon-trash"></i></button></div></td></tr>'); + var j_item = $('<tr class="item"><td class="proid"></td><td class="title"></td><td class="hid"></td><td class="oper"><div class="btn-group"><button class="btn btn-default btn-small set"><i class="glyphicon glyphicon-cog"></i></button><button class="btn btn-default btn-small del"><i class="glyphicon glyphicon-trash"></i></button></div></td></tr>'); _item_set(j_item,proid,title,hidden,pmodid); @@ -587,7 +589,7 @@ var manage = new function(){ j_create.modal('show'); }); - j_create.on('show',function(e){ + j_create.on('show.bs.modal',function(e){ _update_pmod().done(function(pmod_list){ var i; var j_pmod; @@ -604,7 +606,7 @@ var manage = new function(){ } }); }); - j_create.on('hide',function(e){ + j_create.on('hide.bs.modal',function(e){ j_create.find('input').val(''); }); j_create.find('button.submit').on('click',function(e){ @@ -645,7 +647,7 @@ var manage = new function(){ j_create.modal('hide'); }); - j_set.on('show',function(e){ + j_set.on('show.bs.modal',function(e){ j_set.find('[name="title"]').val(set_data.title); if(set_data.hidden == false){ j_set.find('[name="hidden"]').val(0); @@ -653,7 +655,7 @@ var manage = new function(){ j_set.find('[name="hidden"]').val(1); } }); - j_set.on('hide',function(e){ + j_set.on('hide.bs.modal',function(e){ j_set.find('input').val(''); }); j_set.find('button.submit').on('click',function(e){ diff --git a/src/js/notice.js b/src/js/notice.js index f7a4f41..4389d40 100644 --- a/src/js/notice.js +++ b/src/js/notice.js @@ -14,7 +14,7 @@ var notice = new function(){ } j_noticetag = $('#index_paneltag > div.notice'); - j_noticelist = $('#index_panel > div.notice > ul.nav'); + j_noticelist = $('#index_panel > div.notice'); j_noticetag.on('click',function(e){ j_noticelist.empty(); @@ -31,12 +31,12 @@ var notice = new function(){ for(i = 0;i < data.length;i++){ notice = data[i]; - j_item = $('<li><a><h5></h5><p></p></a></li>'); + j_item = $('<a class="list-group-item"><h5></h5><p></p></a>'); j_item.find('h5').text(notice.title); j_item.find('p').text(notice.content); if(notice.noticemodid == null){ - j_item.find('a').attr('href','/toj' + notice.metadata); + j_item.attr('href','/toj' + notice.metadata); } j_noticelist.append(j_item); diff --git a/src/js/square.js b/src/js/square.js index e5a75f5..64cc486 100644 --- a/src/js/square.js +++ b/src/js/square.js @@ -27,7 +27,7 @@ var square = new function(){ j_oper = j_box.find('div.oper'); j_oper.empty(); if(active == null){ - j_oper.append('<button class="btn btn-primary join" data-loading-text="處理中">加入</button><a class="btn open">開啓</a>'); + j_oper.append('<button class="btn btn-primary join" data-loading-text="處理中">加入</button><a class="btn btn-default open">開啓</a>'); j_oper.find('button.join').on('click',function(e){ $(this).button('loading'); @@ -48,10 +48,10 @@ var square = new function(){ },id); }); }else{ - if(active== true){ - j_oper.append('<button class="btn btn-success quit" data-loading-text="處理中">退出</button><a class="btn open">開啓</a>'); + if(active == true){ + j_oper.append('<button class="btn btn-success quit" data-loading-text="處理中">退出</button><a class="btn btn-default open">開啓</a>'); }else{ - j_oper.append('<button class="btn btn-warning quit" data-loading-text="處理中">取消申請</button><a class="btn open">開啓</a>'); + j_oper.append('<button class="btn btn-warning quit" data-loading-text="處理中">取消申請</button><a class="btn btn-default open">開啓</a>'); } j_oper.find('button.quit').on('click',function(e){ @@ -85,7 +85,7 @@ var square = new function(){ } } function box_create(id,logo,title,start_time,end_time,intro,active){ - var j_box = $('<div class="span5 box"><div class="logo"></div><h5 class="title"></h5><div class="time start"></div><div class="time end"></div><p class="intro"></p><div class="btn-group oper"></div></div>'); + var j_box = $('<div class="col-lg-6 box"><div class="logo"></div><h5 class="title"></h5><div class="time start"></div><div class="time end"></div><p class="intro"></p><div class="btn-group oper"></div></div>'); box_set(j_box,id,logo,title,start_time,end_time,intro,active); @@ -158,11 +158,11 @@ var square = new function(){ return; } - j_cate = $('<li><a href=""></a></li>'); - j_a = j_cate.find('a'); - j_a.text(cateo.catename); - j_a.on('click',function(e){ + j_cate = $('<a class="list-group-item" href=""></a>'); + j_cate.text(cateo.catename); + j_cate.on('click',function(e){ $(window).scrollTop(j_indexlist.find('[cateid="' + cateo.cateid + '"]').offset().top - 66); + return false; }); j_catelist.append(j_cate); @@ -235,7 +235,7 @@ var square = new function(){ square_node.child_delayset('index'); com.loadpage('/toj/html/square.html','/toj/css/square.css').done(function(){ - j_catelist = j_index_page.find('ul.catelist'); + j_catelist = j_index_page.find('div.catelist'); j_indexlist = j_index_page.find('div.indexlist'); if(user.uid != null){ diff --git a/src/pmod/pmod_test/css/manage.less b/src/pmod/pmod_test/css/manage.less index 3c7fd79..bce8ffc 100644 --- a/src/pmod/pmod_test/css/manage.less +++ b/src/pmod/pmod_test/css/manage.less @@ -4,7 +4,7 @@ #index_page{ div.create_mode,div.set_mode{ div.block{ - margin-bottom:@MediumPad; + margin-bottom:@BigPad; div.data{ height:256px; diff --git a/src/pmod/pmod_test/html/manage.html b/src/pmod/pmod_test/html/manage.html index b4ab4d8..47553ec 100644 --- a/src/pmod/pmod_test/html/manage.html +++ b/src/pmod/pmod_test/html/manage.html @@ -1,215 +1,265 @@ -<link href="/toj/pmod/pmod_test/css/manage.css" rel="stylesheet"> - -<div class="modal hide fade medium_modal create_mode"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> - <h3>建立模式</h3> - </div> - <div class="modal-body container-fluid"> - <div class="row-fluid"> - <div class="span7"> - <label>測試名稱</label> - <select name="testmode"></select> +<div class="modal fade medium-modal create_mode"> + <div class="modal-dialog"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> + <h3>建立模式</h3> </div> - </div> + <div class="modal-body"> + <div class="row"> + <div class="col-lg-3"> + <label>測試名稱</label> + <select class="form-control" name="testmode"></select> + </div> + </div><br> - <div class="block content"> - <div class="row-fluid"> - <div class="input-prepend span13"> - <span class="add-on">題目內容</span> - <input class="span2 title" type="text" value="內容" placeholder="區塊標題"> + <div class="block content"> + <div class="row"> + <div class="input-group col-lg-13"> + <span class="input-group-addon">題目內容</span> + <input class="col-lg-2 form-control title" type="text" value="內容" placeholder="區塊標題"> + </div> + </div><br> + <div class="row"> + <div class="col-lg-13"> + <div class="data"></div> + </div> + </div> </div> - </div> - <div class="row-fluid"> - <div class="span13"> - <div class="data"></div> - </div> - </div> - </div> - <div class="block format"> - <div class="row-fluid"> - <div class="input-prepend span13"> - <span class="add-on">格式說明</span> - <input class="span2 title" type="text" value="I/O格式" placeholder="區塊標題"> - </div> - </div> - <div class="row-fluid"> - <div class="span13"> - <div class="data"></div> + <div class="block format"> + <div class="row"> + <div class="input-group col-lg-13"> + <span class="input-group-addon">格式說明</span> + <input class="col-lg-2 form-control title" type="text" value="I/O格式" placeholder="區塊標題"> + </div> + </div><br> + <div class="row"> + <div class="col-lg-13"> + <div class="data"></div> + </div> + </div> </div> - </div> - </div> - - <div class="block testdata"> - <div class="row-fluid"> - <div class="input-prepend span13"> - <span class="add-on">範例資料</span> - <input class="span2 title" type="text" value="範例測資" placeholder="區塊標題"> + + <div class="block testdata"> + <div class="row"> + <div class="input-group col-lg-13"> + <span class="input-group-addon">範例資料</span> + <input class="col-lg-2 form-control title" type="text" value="範例測資" placeholder="區塊標題"> + </div> + </div><br> + <div class="row"> + <div class="col-lg-13"> + <div class="data"></div> + </div> + </div> </div> </div> - <div class="row-fluid"> - <div class="span13"> - <div class="data"></div> - </div> + <div class="modal-footer"> + <button class="btn btn-primary submit">確定</button> + <button class="btn btn-default cancel">取消</button> </div> - </div> </div> - <div class="modal-footer"> - <button class="btn btn-primary submit">確定</button> - <button class="btn cancel">取消</button> + </div> </div> </div> -<div class="modal hide fade medium_modal set_mode"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> - <h3>設定模式</h3> - </div> - <div class="modal-body container-fluid"> - <div class="row-fluid"> - <div class="span7"> - <label>測試名稱</label> - <select name="testmode"></select> +<div class="modal fade medium-modal set_mode"> + <div class="modal-dialog"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> + <h3>設定模式</h3> </div> - </div> + <div class="modal-body"> + <div class="row"> + <div class="col-lg-3"> + <label>測試名稱</label> + <select class="form-control" name="testmode"></select> + </div> + </div><br> - <div class="block content"> - <div class="row-fluid"> - <div class="input-prepend span13"> - <span class="add-on">題目內容</span> - <input class="span2 title" type="text" placeholder="區塊標題"> + <div class="block content"> + <div class="row"> + <div class="input-group col-lg-13"> + <span class="input-group-addon">題目內容</span> + <input class="col-lg-2 form-control title" type="text" placeholder="區塊標題"> + </div> + </div><br> + <div class="row"> + <div class="col-lg-13"> + <div class="data"></div> + </div> + </div> </div> - </div> - <div class="row-fluid"> - <div class="span13"> - <div class="data"></div> + + <div class="block format"> + <div class="row"> + <div class="input-group col-lg-13"> + <span class="input-group-addon">格式說明</span> + <input class="col-lg-2 form-control title" type="text" placeholder="區塊標題"> + </div> + </div><br> + <div class="row"> + <div class="col-lg-13"> + <div class="data"></div> + </div> + </div> </div> + + <div class="block testdata"> + <div class="row"> + <div class="input-group col-lg-13"> + <span class="input-group-addon">範例資料</span> + <input class="col-lg-2 form-control title" type="text" placeholder="區塊標題"> + </div> + </div><br> + <div class="row"> + <div class="col-lg-13"> + <div class="data"></div> + </div> + </div> + </div> + </div> + <div class="modal-footer"> + <button class="btn btn-primary submit">確定</button> + <button class="btn btn-default cancel">取消</button> </div> </div> - - <div class="block format"> - <div class="row-fluid"> - <div class="input-prepend span13"> - <span class="add-on">格式說明</span> - <input class="span2 title" type="text" placeholder="區塊標題"> - </div> + </div> +</div> +<div class="modal fade medium-modal create_testmode"> + <div class="modal-dialog"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> + <h3>建立測試</h3> </div> - <div class="row-fluid"> - <div class="span13"> - <div class="data"></div> + <div class="modal-body row"> + <div class="col-lg-7"> + <label>測試名稱</label> + <input class="form-control" type="text" name="name"><br> + <label>執行時間限制</label> + <input class="form-control" type="text" name="timelimit"><br> + <label>記憶體限制</label> + <input class="form-control" type="text" name="memlimit"> </div> </div> + <div class="modal-footer"> + <button class="btn btn-primary submit">確定</button> + <button class="btn btn-default cancel">取消</button> + </div> </div> - - <div class="block testdata"> - <div class="row-fluid"> - <div class="input-prepend span13"> - <span class="add-on">範例資料</span> - <input class="span2 title" type="text" placeholder="區塊標題"> - </div> + </div> +</div> +<div class="modal fade medium-modal set_testmode"> + <div class="modal-dialog"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> + <h3>設定測試</h3> </div> - <div class="row-fluid"> - <div class="span13"> - <div class="data"></div> + <div class="modal-body row"> + <div class="col-lg-7"> + <label>測試名稱</label> + <input class="form-control" type="text" name="name"><br> + <label>執行時間限制</label> + <input class="form-control" type="text" name="timelimit"><br> + <label>記憶體限制</label> + <input class="form-control" type="text" name="memlimit"> </div> </div> + <div class="modal-footer"> + <button class="btn btn-primary submit">確定</button> + <button class="btn btn-default cancel">取消</button> + </div> </div> </div> - <div class="modal-footer"> - <button class="btn btn-primary submit">確定</button> - <button class="btn cancel">取消</button> - </div> </div> - -<div class="modal hide fade medium_modal create_testmode"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> - <h3>建立測試</h3> - </div> - <div class="modal-body container-fluid"> - <div class="row-fluid"> - <div class="span7"> - <label>測試名稱</label> - <input type="text" name="name"> - <label>執行時間限制</label> - <input type="text" name="timelimit"> - <label>記憶體限制</label> - <input type="text" name="memlimit"> +<div class="modal fade medium-modal create_testdata"> + <div class="modal-dialog"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> + <h3>建立測試資料</h3> + </div> + <div class="modal-body row"> + <div class="col-lg-7"> + <label>描述</label> + <input class="form-control" type="text" name="info"><br> + <label>檔案</label> + <input class="form-control" type="file" name="pack"> + </div> + </div> + <div class="modal-footer"> + <button class="btn btn-primary submit">確定</button> + <button class="btn btn-default cancel">取消</button> </div> </div> </div> - <div class="modal-footer"> - <button class="btn btn-primary submit">確定</button> - <button class="btn cancel">取消</button> - </div> </div> -<div class="modal hide fade medium_modal set_testmode"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> - <h3>設定測試</h3> - </div> - <div class="modal-body container-fluid"> - <div class="row-fluid"> - <div class="span7"> - <label>測試名稱</label> - <input type="text" name="name"> - <label>執行時間限制</label> - <input type="text" name="timelimit"> - <label>記憶體限制</label> - <input type="text" name="memlimit"> +<div class="modal fade medium-modal set_testdata"> + <div class="modal-dialog"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> + <h3>設定測試資料</h3> + </div> + <div class="modal-body row"> + <div class="col-lg-7"> + <label>描述</label> + <input class="form-control" type="text" name="info"><br> + <label>檔案(留空表示不更新)</label> + <input class="form-control" type="file" name="pack"> + </div> + </div> + <div class="modal-footer"> + <button class="btn btn-primary submit">確定</button> + <button class="btn btn-default cancel">取消</button> </div> </div> </div> - <div class="modal-footer"> - <button class="btn btn-primary submit">確定</button> - <button class="btn cancel">取消</button> - </div> </div> - <div class="row"> - <div class="span3"> - - </div> - <div class="span4"> + <div class="col-lg-4 col-offset-1"> <h3>模式</h3> - <button class="btn create_mode">建立模式</button> + <button class="btn btn-default create_mode">建立模式</button> <table class="table mode"> <thead> <tr> - <th class="span1">#</th> - <th class="span2">測試名稱</th> - <th class="span1"></th> + <th class="col-lg-1">#</th> + <th class="col-lg-2">測試名稱</th> + <th class="col-lg-1"></th> </tr> </thead> <tbody></tbody> </table> </div> - <div class="span4"> + <div class="col-lg-4"> <h3>測試</h3> - <button class="btn create_testmode">建立測試</button> + <button class="btn btn-default create_testmode">建立測試</button> <table class="table testmode"> <thead> <tr> - <th class="span1">#</th> - <th class="span2">測試名稱</th> - <th class="span1"></th> + <th class="col-lg-1">#</th> + <th class="col-lg-2">測試名稱</th> + <th class="col-lg-1"></th> </tr> </thead> <tbody></tbody> </table> </div> - <div class="span2"> + <div class="col-lg-4"> <h3>測試資料</h3> - <button class="btn create_testdata">建立測試資料</button> + <button class="btn btn-default create_testdata">建立測試資料</button> <table class="table testdata"> <thead> <tr> - <th class="span1">#</th> - <th class="span1"></th> + <th class="col-lg-1">#</th> + <th class="col-lg-2">描述</th> + <th class="col-lg-1"></th> </tr> </thead> <tbody></tbody> </table> </div> - </div> diff --git a/src/pmod/pmod_test/html/view.html b/src/pmod/pmod_test/html/view.html index 989f344..4f37af6 100644 --- a/src/pmod/pmod_test/html/view.html +++ b/src/pmod/pmod_test/html/view.html @@ -1,18 +1,22 @@ -<div class="modal hide fade medium_modal submit"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> - <h3>上傳</h3> - </div> - <div class="modal-body container-fluid"> - </div> - <div class="modal-footer"> - <button class="btn btn-primary submit">確定</button> - <button class="btn cancel">取消</button> +<div class="modal fade medium-modal submit"> + <div class="modal-dialog"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> + <h3>上傳</h3> + </div> + <div class="modal-body row"> + </div> + <div class="modal-footer"> + <button class="btn btn-primary submit">確定</button> + <button class="btn cancel">取消</button> + </div> + </div> </div> </div> <div class="row"> - <div class="span2 offset1 info"> + <div class="col-lg-2 col-offset-1 info"> <button class="btn btn-primary submit">上傳</button> <table class="table limit"> <thead> @@ -33,5 +37,5 @@ </tbody> </table> </div> - <div class="span10 offset3 content"></div> + <div class="col-lg-10 col-offset-3 content"></div> </div> diff --git a/src/pmod/pmod_test/js/pmod_test.js b/src/pmod/pmod_test/js/pmod_test.js index 93565b4..ac3f3cc 100644 --- a/src/pmod/pmod_test/js/pmod_test.js +++ b/src/pmod/pmod_test/js/pmod_test.js @@ -23,6 +23,8 @@ var pmod_test = function(proid,pro_node){ var data = result.data; var j_info; + console.log(result); + if(com.is_callerr(result)){ index.add_alert('alert-error','錯誤','讀取題目失敗'); }else{ @@ -53,8 +55,11 @@ var pmod_test = function(proid,pro_node){ var j_set_mode; var j_create_testmode; var j_set_testmode; + var j_create_testdata; + var j_set_testdata; var j_mode_list; var j_testmode_list; + var j_testdata_list; var set_mode_id = null; var set_testmode_id = null; @@ -86,7 +91,7 @@ var pmod_test = function(proid,pro_node){ } } function _mode_create(modeid,testmodeid){ - var j_item = $('<tr class="item"><td class="id"></td><td class="testmode"></td><td class="oper"><div class="btn-group"><button class="btn btn-small set"><i class="icon-cog"></i></button><button class="btn btn-small del"><i class="icon-trash"></i></button></div></td></tr>') + var j_item = $('<tr class="item"><td class="id"></td><td class="testmode"></td><td class="oper"><div class="btn-group"><button class="btn btn-default btn-small set"><i class="glyphicon glyphicon-cog"></i></button><button class="btn btn-default btn-small del"><i class="glyphicon glyphicon-trash"></i></button></div></td></tr>'); _mode_set(j_item,modeid,testmodeid); @@ -160,7 +165,7 @@ var pmod_test = function(proid,pro_node){ }); } function _testmode_create(testmodeid,testmodename){ - var j_item = $('<tr class="item"><td class="id"></td><td class="name"></td><td class="oper"><div class="btn-group"><button class="btn btn-small set"><i class="icon-cog"></i></button><button class="btn btn-small del"><i class="icon-trash"></i></button></div></td></tr>') + var j_item = $('<tr class="item"><td class="id"></td><td class="name"></td><td class="oper"><div class="btn-group"><button class="btn btn-default btn-small set"><i class="glyphicon glyphicon-cog"></i></button><button class="btn btn-default btn-small del"><i class="glyphicon glyphicon-trash"></i></button></div></td></tr>'); _testmode_set(j_item,testmodeid,testmodename); @@ -195,7 +200,62 @@ var pmod_test = function(proid,pro_node){ return defer.promise(); } + + function _testdata_set(j_item,id,info){ + j_item.find('td.id').text(id); + j_item.find('td.info').text(info); + + j_item.find('button.set').off('click').on('click',function(e){ + set_testdata_id = id; + j_set_testdata.modal('show'); + }); + j_item.find('button.del').off('click').on('click',function(e){ + com.call_backend(callpath,'del_testdata',function(result){ + if(com.is_callerr(result)){ + index.add_alert('','警告','管理發生錯誤'); + }else{ + _update(); + } + },id); + }); + } + function _testdata_create(id,info){ + var j_item = $('<tr class="item"><td class="id"></td><td class="info"></td><td class="oper"><div class="btn-group"><button class="btn btn-default btn-small set"><i class="glyphicon glyphicon-cog"></i></button><button class="btn btn-default btn-small del"><i class="glyphicon glyphicon-trash"></i></button></div></td></tr>'); + + _testdata_set(j_item,id,info); + + return j_item; + } + function _testdata_update(){ + var defer = $.Deferred(); + + com.call_backend(callpath,'list_testdata',function(result){ + var i; + var data = result.data; + var testdatao; + var j_item; + + if(com.is_callerr(result)){ + index.add_alert('','警告','管理發生錯誤'); + }else{ + j_testdata_list.empty(); + for(i = 0;i < data.length;i++){ + testdatao = data[i]; + + j_item = _testdata_create(testdatao.testid, + testdatao.info); + j_testdata_list.append(j_item); + } + + defer.resolve(data); + } + }); + + return defer.promise(); + } + function _update(){ + _testdata_update(); _testmode_update().done(_mode_update); } function _mix_content(j_box){ @@ -273,16 +333,17 @@ var pmod_test = function(proid,pro_node){ } if(direct == 'in'){ - com.loadpage('/toj/pmod/pmod_test/html/manage.html').done(function(){ + com.loadpage('/toj/pmod/pmod_test/html/manage.html','/toj/pmod/pmod_test/css/manage.css').done(function(){ j_mode_list = j_index_page.find('table.mode > tbody'); j_testmode_list = j_index_page.find('table.testmode > tbody'); + j_testdata_list = j_index_page.find('table.testdata > tbody'); j_create_mode = j_index_page.find('div.create_mode'); j_create_mode.find('div.content div.data').codebox({'mode':'text/html'}); j_create_mode.find('div.format div.data').codebox({'mode':'text/html'}); j_create_mode.find('div.testdata div.data').codebox({'mode':'text/html'}); - j_create_mode.on('shown',function(e){ + j_create_mode.on('shown.bs.modal',function(e){ var i; var codeboxs; @@ -291,7 +352,7 @@ var pmod_test = function(proid,pro_node){ $(codeboxs[i]).data('codebox').refresh(); } }); - j_create_mode.on('hide',function(e){ + j_create_mode.on('hide.bs.modal',function(e){ var i; var codeboxs; @@ -324,7 +385,6 @@ var pmod_test = function(proid,pro_node){ j_create_mode.find('button.cancel').on('click',function(e){ j_create_mode.modal('hide'); }); - j_index_page.find('button.create_mode').on('click',function(e){ j_create_mode.modal('show'); }); @@ -334,7 +394,7 @@ var pmod_test = function(proid,pro_node){ j_set_mode.find('div.format div.data').codebox({'mode':'text/html'}); j_set_mode.find('div.testdata div.data').codebox({'mode':'text/html'}); - j_set_mode.on('show',function(e){ + j_set_mode.on('show.bs.modal',function(e){ com.call_backend(callpath,'get_mode',function(result){ var data = result.data; var parse_content; @@ -352,7 +412,7 @@ var pmod_test = function(proid,pro_node){ } },set_mode_id); }); - j_set_mode.on('shown',function(e){ + j_set_mode.on('shown.bs.modal',function(e){ var i; var codeboxs; @@ -361,7 +421,7 @@ var pmod_test = function(proid,pro_node){ $(codeboxs[i]).data('codebox').refresh(); } }); - j_set_mode.on('hide',function(e){ + j_set_mode.on('hide.bs.modal',function(e){ var i; var codeboxs; @@ -400,7 +460,7 @@ var pmod_test = function(proid,pro_node){ }); j_create_testmode = j_index_page.find('div.create_testmode'); - j_create_testmode.on('hide',function(e){ + j_create_testmode.on('hide.bs.modal',function(e){ j_create_testmode.find('input').val(''); }); j_create_testmode.find('button.submit').on('click',function(e){ @@ -422,9 +482,12 @@ var pmod_test = function(proid,pro_node){ j_create_testmode.find('button.cancel').on('click',function(e){ j_create_testmode.modal('hide'); }); + j_index_page.find('button.create_testmode').on('click',function(e){ + j_create_testmode.modal('show'); + }); j_set_testmode = j_index_page.find('div.set_testmode'); - j_set_testmode.on('show',function(e){ + j_set_testmode.on('show.bs.modal',function(e){ com.call_backend(callpath,'get_testmode',function(result){ var data = result.data; @@ -437,7 +500,7 @@ var pmod_test = function(proid,pro_node){ } },set_testmode_id); }); - j_set_testmode.on('hide',function(e){ + j_set_testmode.on('hide.bs.modal',function(e){ set_testmode_id = null; }); j_set_testmode.find('button.submit').on('click',function(e){ @@ -454,6 +517,7 @@ var pmod_test = function(proid,pro_node){ index.add_alert('alert-success','成功','測試已設定'); j_set_testmode.modal('hide'); + _update(); } },set_testmode_id,name,timelimit,memlimit); @@ -462,9 +526,74 @@ var pmod_test = function(proid,pro_node){ j_set_testmode.modal('hide'); }); - j_index_page.find('button.create_testmode').on('click',function(e){ - j_create_testmode.modal('show'); + + j_create_testdata = j_index_page.find('div.create_testdata'); + j_create_testdata.on('hide.bs.modal',function(e){ + j_create_testdata.find('input').val(''); }); + j_create_testdata.find('button.submit').on('click',function(e){ + var info = j_create_testdata.find('[name="info"]').val(); + var blob = j_create_testdata.find('[name="pack"]')[0].files[0]; + + com.sendfile_backend(blob,function(filekey){ + + com.call_backend(callpath,'add_testdata',function(result){ + console.log(result); + + if(com.is_callerr(result)){ + index.add_alert('','警告','管理發生錯誤'); + }else{ + index.add_alert('alert-success','成功','測試資料已建立'); + j_create_testdata.modal('hide'); + + _update(); + } + },info,filekey); + + },function(result){}); + }); + j_create_testdata.find('button.cancel').on('click',function(e){ + j_create_testdata.modal('hide'); + }); + j_index_page.find('button.create_testdata').on('click',function(e){ + j_create_testdata.modal('show'); + }); + + j_set_testdata = j_index_page.find('div.set_testdata'); + j_set_testdata.on('show.bs.modal',function(e){ + com.call_backend(callpath,'get_testdata',function(result){ + var data = result.data; + + if(com.is_callerr(result)){ + index.add_alert('','警告','管理發生錯誤'); + }else{ + j_set_testdata.find('[name="info"]').val(data.info); + } + },set_testdata_id); + }); + j_set_testdata.on('hide.bs.modal',function(e){ + set_testdata_id = null; + }); + j_set_testdata.find('button.submit').on('click',function(e){ + var info = j_set_testdata.find('[name="info"]').val(); + + com.call_backend(callpath,'set_testdata',function(result){ + var data = result.data; + + if(com.is_callerr(result)){ + index.add_alert('','警告','管理發生錯誤'); + }else{ + index.add_alert('alert-success','成功','測試資料已設定'); + j_set_testdata.modal('hide'); + + _update(); + } + },set_testdata_id,info,null); + }); + j_set_testdata.find('button.cancel').on('click',function(e){ + j_set_testdata.modal('hide'); + }); + _update(); }); |