Mercurial > hg > Members > nobuyasu > Consensus
changeset 121:ee7ad3b84ae4 draft
merge 117
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 18 Apr 2013 06:21:44 +0900 |
parents | 5ee0a70ab968 (diff) 35ee98a5cd0c (current diff) |
children | 9cfb52e94bd0 |
files | logs/application.log |
diffstat | 12 files changed, 1056 insertions(+), 457 deletions(-) [+] |
line wrap: on
line diff
--- a/app/controllers/Claim.java Tue Mar 19 17:13:31 2013 +0900 +++ b/app/controllers/Claim.java Thu Apr 18 06:21:44 2013 +0900 @@ -149,7 +149,10 @@ String[] users = toStringArray(usersJson); tpGraph.setLabelStatusToUsers(newClaim, users, NodeModel.L_REQUEST, NodeModel.UNKNOWN); tpGraph.setLabelFromRootClaim(newClaim); - ClaimModel targetClaim = new ClaimModel(tpGraph.getVertex(id)); + + /* targetClaim must be latestClaim. */ + // ClaimModel targetClaim = new ClaimModel(tpGraph.getVertex(id)); + ClaimModel targetClaim = new ClaimModel(tpGraph.getVertex(tpGraph.getLatestVertexId(id))); tpGraph.copyConsensusTree(targetClaim, timestamp); ClaimModel latestTgtClaim = new ClaimModel(tpGraph.getVertex(tpGraph.getLatestVertexId(targetClaim.getId()))); tpGraph.setLabelMention(latestTgtClaim, newClaim, mentionType);
--- a/app/controllers/User.java Tue Mar 19 17:13:31 2013 +0900 +++ b/app/controllers/User.java Thu Apr 18 06:21:44 2013 +0900 @@ -128,5 +128,7 @@ } return created(Json.toJson(claims)); } + + }
--- a/app/init/InitialData.java Tue Mar 19 17:13:31 2013 +0900 +++ b/app/init/InitialData.java Thu Apr 18 06:21:44 2013 +0900 @@ -38,6 +38,7 @@ tpGraph.setUserRootId(userV.getId()); createDemoUsers(); instance.enterDataDemo1(); + instance.enterDataDemo2(); } @@ -62,6 +63,17 @@ tpGraph.setLabelFromRootUser(userModel7); } + public static void setMentionLabelLatestClaim(TPGraph tpGraph, ClaimModel fromClaim, ClaimModel toClaim + , String relation) { + tpGraph.setLabelMention(getLatestClaim(tpGraph, fromClaim), getLatestClaim(tpGraph, toClaim), relation); + } + + public static void copyConsensusTree(TPGraph tpGraph, ClaimModel claim) { + String timestamp = Long.toString(System.currentTimeMillis()); + ClaimModel latest = getLatestClaim(tpGraph, claim); + tpGraph.copyConsensusTree(latest, timestamp); + } + public void enterDataDemo1() { TPGraph tpGraph = TPGraph.getInstance(); Graph graph = tpGraph.getGraph(); @@ -70,43 +82,60 @@ ClaimModel claimModel1 = new ClaimModel(graph.addVertex(null)); ObjectNode t1 = createToulmin("アプリでGraphDBを利用する。"); createFirstClaim(claimModel1, t1, takaaki, otherUser1, NodeModel.AGREED); - + ClaimModel claimModel2 = new ClaimModel(graph.addVertex(null)); ObjectNode t2 = createToulmin("RDBを利用すべきである。"); String[] usersClaim2 = { takaaki }; - createClaimForMention(claimModel2, t2, akifumi, usersClaim2, - NodeModel.DENIED); - tpGraph.setLabelMention(claimModel1, claimModel2, + createClaimForMention(tpGraph, claimModel2, t2, akifumi, usersClaim2, + NodeModel.DENIED); +// createClaimForMention(tpGraph, claimModel2, t2, akifumi, usersClaim2, +// NodeModel.UNKNOWN); + setMentionLabelLatestClaim(tpGraph, claimModel1, claimModel2, NodeModel.L_REFUTATION); + /* */ + claimModel1.computeAndUpdateStatus(); + copyConsensusTree(tpGraph, claimModel1); ClaimModel claimModel3 = new ClaimModel(graph.addVertex(null)); ObjectNode t3 = createToulmin("データ構造はGraphDBに向いている。"); String[] usersClaim3 = { akifumi }; - createClaimForMention(claimModel3, t3, takaaki, usersClaim3, + createClaimForMention(tpGraph,claimModel3, t3, takaaki, usersClaim3, NodeModel.UNKNOWN); - tpGraph.setLabelMention(claimModel2, claimModel3, + setMentionLabelLatestClaim(tpGraph, claimModel2, claimModel3, NodeModel.L_REFUTATION); - + claimModel2.computeAndUpdateStatus(); + copyConsensusTree(tpGraph, claimModel1); + ClaimModel claimModel4 = new ClaimModel(graph.addVertex(null)); ObjectNode t4 = createToulmin("どのGraphDBを利用するのか。"); - createClaimForMention(claimModel4, t4, yosiaki, usersClaim2, + createClaimForMention(tpGraph, claimModel4, t4, yosiaki, usersClaim2, NodeModel.AGREED); - tpGraph.setLabelMention(claimModel1, claimModel4, NodeModel.L_QUESTION); + setMentionLabelLatestClaim(tpGraph, claimModel1, claimModel4, NodeModel.L_QUESTION); + copyConsensusTree(tpGraph, claimModel1); + ClaimModel claimModel5 = new ClaimModel(graph.addVertex(null)); ObjectNode t5 = createToulmin("TinkerPopはどうか?"); String[] usersClaim5 = { yosiaki }; - createClaimForMention(claimModel5, t5, takaaki, usersClaim5, + createClaimForMention(tpGraph,claimModel5, t5, takaaki, usersClaim5, NodeModel.AGREED); - tpGraph.setLabelMention(claimModel4, claimModel5, + setMentionLabelLatestClaim(tpGraph, claimModel4, claimModel5, NodeModel.L_SUGGESTION); - + + copyConsensusTree(tpGraph, claimModel1); + claimModel3.computeAndUpdateStatus(); claimModel2.computeAndUpdateStatus(); + tpGraph.setLabelStatusToUsers(claimModel1, usersClaim3, NodeModel.L_REQUEST, NodeModel.AGREED); } + public static ClaimModel getLatestClaim(TPGraph tpGraph, ClaimModel claim) { + Object latestId = tpGraph.getLatestVertexId(claim.getId()); + return new ClaimModel(tpGraph.getVertex(latestId)); + } + public void enterDataDemo2() { TPGraph tpGraph = TPGraph.getInstance(); Graph graph = tpGraph.getGraph(); @@ -119,48 +148,48 @@ ClaimModel claimModel2 = new ClaimModel(graph.addVertex(null)); ObjectNode t2 = createToulmin("壊れたマシンと同じ程度の物があればいいです。"); String[] usersClaim2 = { tatsumi }; - createClaimForMention(claimModel2, t2, yana, usersClaim2, + createClaimForMention(tpGraph,claimModel2, t2, yana, usersClaim2, NodeModel.DENIED); - tpGraph.setLabelMention(claimModel1, claimModel2, + setMentionLabelLatestClaim(tpGraph, claimModel1, claimModel2, NodeModel.L_SUGGESTION); ClaimModel claimModel3 = new ClaimModel(graph.addVertex(null)); ObjectNode t3 = createToulmin("MacProの最新版がいいでしょう。"); String[] usersClaim3 = { yana }; - createClaimForMention(claimModel3, t3, tatsumi, usersClaim3, + createClaimForMention(tpGraph,claimModel3, t3, tatsumi, usersClaim3, NodeModel.AGREED); - tpGraph.setLabelMention(claimModel2, claimModel3, + setMentionLabelLatestClaim(tpGraph, claimModel2, claimModel3, NodeModel.L_REFUTATION); ClaimModel claimModel4 = new ClaimModel(graph.addVertex(null)); ObjectNode t4 = createToulmin("MacProの最新版を買います。"); String[] usersClaim4 = { yana,ikuhiro,shiomi }; - createClaimForMention(claimModel4, t4, tatsumi, usersClaim4, + createClaimForMention(tpGraph,claimModel4, t4, tatsumi, usersClaim4, NodeModel.DENIED); - tpGraph.setLabelMention(claimModel1, claimModel4, + setMentionLabelLatestClaim(tpGraph, claimModel1, claimModel4, NodeModel.L_SUGGESTION); ClaimModel claimModel5 = new ClaimModel(graph.addVertex(null)); ObjectNode t5 = createToulmin("MacProの最新は高いのでやめましょう。"); String[] usersClaim5 = { tatsumi}; - createClaimForMention(claimModel5, t5, shiomi, usersClaim5, + createClaimForMention(tpGraph,claimModel5, t5, shiomi, usersClaim5, NodeModel.AGREED); - tpGraph.setLabelMention(claimModel4, claimModel5, + setMentionLabelLatestClaim(tpGraph, claimModel4, claimModel5, NodeModel.L_REFUTATION); ClaimModel claimModel6 = new ClaimModel(graph.addVertex(null)); ObjectNode t6 = createToulmin("MacProの最速マシンである必要はありません。"); String[] usersClaim6 = { tatsumi }; - createClaimForMention(claimModel6, t6, shiomi, usersClaim6, + createClaimForMention(tpGraph,claimModel6, t6, shiomi, usersClaim6, NodeModel.AGREED); - tpGraph.setLabelMention(claimModel4, claimModel6, + setMentionLabelLatestClaim(tpGraph, claimModel4, claimModel6, NodeModel.L_REFUTATION); } - public static void createClaimForMention(ClaimModel claim, ObjectNode t, + public static void createClaimForMention(TPGraph tpGraph, ClaimModel claim, ObjectNode t, String author, String[] users, String type) { - createClaimSetToulmin(claim, t, author, users, type); + createClaimSetToulmin(getLatestClaim(tpGraph, claim), t, author, users, type); } public static void createFirstClaim(ClaimModel claim, ObjectNode t,
--- a/app/models/TPGraph.java Tue Mar 19 17:13:31 2013 +0900 +++ b/app/models/TPGraph.java Thu Apr 18 06:21:44 2013 +0900 @@ -316,6 +316,7 @@ * c1'' is latest. */ v = pipe.next(); + pipe = new GremlinPipeline<Vertex,Vertex>(); pipe.start(v).in(NodeModel.L_PREV); } return v.getId();
--- a/logs/application.log Tue Mar 19 17:13:31 2013 +0900 +++ b/logs/application.log Thu Apr 18 06:21:44 2013 +0900 @@ -1,6 +0,0 @@ -2013-03-19 03:15:00,052 - [INFO] - from play in main -Listening for HTTP on port 9000... - -2013-03-19 03:15:05,163 - [INFO] - from play in play-akka.actor.default-dispatcher-3 -Application started (Dev) -
--- a/public/viewer/form.css Tue Mar 19 17:13:31 2013 +0900 +++ b/public/viewer/form.css Thu Apr 18 06:21:44 2013 +0900 @@ -1,93 +1,93 @@ #popup_base{ - position:fixed; - left:0;top:0; - width:100%;height:100%; + position:fixed; + left:0;top:0; + width:100%;height:100%; } #popup_background{ - position:absolute;background:black; - opacity:0.8; - left:0;top:0; - width:100%;height:100%; + position:absolute;background:black; + opacity:0.8; + left:0;top:0; + width:100%;height:100%; } div.popup_center{ - position:fixed;left:50%;top:50%;width:0;height:0; + position:fixed;left:50%;top:50%;width:0;height:0; } div.claiminfo{ - position:absolute;background:white; - width:600px; - height:400px; - left:-200px;top:-300px; + position:absolute;background:white; + width:600px; + height:400px; + left:-200px;top:-300px; } div.mentioninfo{ - position:absolute;background:white; - width:600px; - height:400px; - left:-300px;top:-200px; - box-shadow:0 0 50px silver; + position:absolute;background:white; + width:600px; + height:400px; + left:-300px;top:-200px; + box-shadow:0 0 50px silver; } div.claim_title{ - position:absolute; - left:0;top:0; - width:600px; - height:60px; - background:#336; + position:absolute; + left:0;top:0; + width:600px; + height:60px; + background:#336; } div.mentioninfo div.claim_title{background:#366;} div.claim_title input{ - position:absolute;left:5;top:5;width:590px;height:50px; - font-size:40px; - color:white; - border:none;background:none; + position:absolute;left:5;top:5;width:590px;height:50px; + font-size:40px; + color:white; + border:none;background:none; } div.claim_menu{ - position:absolute; - left:0;top:60;width:100%;height:30px; - border-bottom:2px solid #66a; - background:#ddd; + position:absolute; + left:0;top:60;width:100%;height:30px; + border-bottom:2px solid #66a; + background:#ddd; } div.mentioninfo div.claim_menu{border-color:#599} div.menu_item{ - position:relative; - display:inline-block; - font-size:20px; - background:white; - border-radius:8px 8px 0 0; - margin:2px 0 0 10px; - padding:0 10px; - background:silver; - height:28px; - line-height:28px; - color:white; - text-align:right; - line-heigth:50px; - cursor:default; - -webkit-user-select:none; + position:relative; + display:inline-block; + font-size:20px; + background:white; + border-radius:8px 8px 0 0; + margin:2px 0 0 10px; + padding:0 10px; + background:silver; + height:28px; + line-height:28px; + color:white; + text-align:right; + line-heigth:50px; + cursor:default; + webkit-user-select:none; } div.claim_main,div.mention_main{ - position:absolute;left:0;top:90;width:600;height:270; + position:absolute;left:0;top:90;width:600;height:270; } div.claiminfo div.claim_main{ - background:-moz-linear-gradient(top,#66a,white 2%,white); - background:-webkit-gradient(linear,left top,left bottom,from(#66a),to(white),color-stop(0.02,white)); + background:-moz-linear-gradient(top,#66a,white 2%,white); + background:-webkit-gradient(linear,left top,left bottom,from(#66a),to(white),color-stop(0.02,white)); } div.mentioninfo div.mention_main{ - background:-moz-linear-gradient(top,#559,white 2%,white); - background:-webkit-gradient(linear,left top,left bottom,from(#599),to(white),color-stop(0.02,white)); + background:-moz-linear-gradient(top,#559,white 2%,white); + background:-webkit-gradient(linear,left top,left bottom,from(#599),to(white),color-stop(0.02,white)); } div.claim_main textarea,div.mention_main textarea{ - font-size:20px; - position:absolute; - width:590px;height:260px; - left:5px;top:5px; - max-width:590px;max-height:290px; + font-size:20px; + position:absolute; + width:590px;height:260px; + left:5px;top:5px; + max-width:590px;max-height:290px; } div.claim_footer{ - position:absolute; - left:0;bottom:00;width:600;height:40px; - background:#336; + position:absolute; + left:0;bottom:00;width:600;height:40px; + background:#336; } div.mentioninfo div.claim_footer{ - background:#366; + background:#366; } .claim_contents .menu_contents{background:#66a;} .claim_toulmin .menu_toulmin{background:#66a;} @@ -106,75 +106,75 @@ .mention_users .main_users{display:block;} div.item_toulmin{ - position:relative; - height:54px; - width:100%; + position:relative; + height:54px; + width:100%; } div.item_toulmin span{ - position:absolute;left:10;top:10;width:90px;height:34px;font-size:24px; + position:absolute;left:10;top:10;width:90px;height:34px;font-size:24px; } div.item_toulmin input{ - position:absolute;left:100;top:10;width:480px;height:34;font-size:24px + position:absolute;left:100;top:10;width:480px;height:34;font-size:24px } #claim_cover,#mention_cover{ - position:absolute;left:0;top:0; - width:100%;height:100%; - background:black; - opacity:0.5; + position:absolute;left:0;top:0; + width:100%;height:100%; + background:black; + opacity:0.5; } span.button{ - background:#eee; - background:-moz-linear-gradient(top,#fff,#ddf); - background:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#ddf)); - border:1px solid gray; - border-radius:4px; - text-align:center; - cursor:default; + background:#eee; + background:-moz-linear-gradient(top,#fff,#ddf); + background:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#ddf)); + border:1px solid gray; + border-radius:4px; + text-align:center; + cursor:default; } span.button:hover{ - background:#bbb; - background:-moz-linear-gradient(top,#ccc,#aac); - background:-webkit-gradient(linear,left top,left bottom,from(#ccc),to(#aac)); + background:#bbb; + background:-moz-linear-gradient(top,#ccc,#aac); + background:-webkit-gradient(linear,left top,left bottom,from(#ccc),to(#aac)); } span.button:active{ - background:#bbb; - background:-moz-linear-gradient(top,#bbb,#88b); - background:-webkit-gradient(linear,left top,left bottom,from(#bbb),to(#88b)); + background:#bbb; + background:-moz-linear-gradient(top,#bbb,#88b); + background:-webkit-gradient(linear,left top,left bottom,from(#bbb),to(#88b)); } div.claim_footer span.button{ - padding:0px 5px; - height:28px; - font-size:24px; - line-height:28px; + padding:0px 5px; + height:28px; + font-size:24px; + line-height:28px; } span.save{ - position:absolute;right:10;top:4; + position:absolute;right:10;top:4; } span.cancel{ - position:absolute;right:80;top:4; + position:absolute;right:80;top:4; } .mention_button{ - position:absolute;left:10;top:4; + position:absolute;left:10;top:4; } span.option{ - font-size:20px; - line-height:28px; - height:28px; - border:1px solid gray; - text-align:center; - background:#eef; - background:-moz-linear-gradient(top,#eef,#bbe); - background:-webkit-gradient(linear,left top,left bottom,from(#eef),to(#bbe)); - color:#888; + font-size:20px; + line-height:28px; + height:28px; + border:1px solid gray; + text-align:center; + background:#eef; + background:-moz-linear-gradient(top,#eef,#bbe); + background:-webkit-gradient(linear,left top,left bottom,from(#eef),to(#bbe)); + color:#888; } .option1 .option1,.option2 .option2,.option3 .option3{ - color:black; - background:#ccb; - background:-moz-linear-gradient(top,#ccb,#88c); - background:-webkit-gradient(linear,left top,left bottom,from(#ccb),to(#88c)); + color:black; + background:#ccb; + background:-moz-linear-gradient(top,#ccb,#88c); + background:-webkit-gradient(linear,left top,left bottom,from(#ccb),to(#88c)); } .agree1{position:absolute;right:130;top:4;width:60px;} @@ -192,32 +192,79 @@ .author_name{position:absolute;left:80;top:4;font-size:20px;line-height:28px;height:28px;} #claim_users,#mention_users{ - position:absolute;left:10;top:36;width:580;height:230; - overflow-y:scroll; + position:absolute;left:10;top:36;width:580;height:230; + overflow-y:scroll; } #claim_status{ - position:absolute; - right:20px;top:0px; - font-size:26px; - line-height:26px; - height:26px; - text-align:center; + position:absolute; + right:20px;top:0px; + font-size:26px; + line-height:26px; + height:26px; + text-align:center; } div.userItem{ - background:white; - padding-left:24px; - font-size:24px; - position:relative; - border-radius:4px; - font-size:24px; - line-height:30px; - margin-bottom:5px + background:white; + padding-left:24px; + font-size:24px; + position:relative; + border-radius:4px; + font-size:24px; + line-height:30px; + margin-bottom:5px } div.userStatus{ - position:absolute;left:2px;top:5px;width:20px;height:20px; - border-radius:10px; -} \ No newline at end of file + position:absolute;left:2px;top:5px;width:20px;height:20px; + border-radius:10px; +} +div.claimNode{ + z-index:20; + position:absolute;width:92px;height:40px;font-size:12px;padding:4px; + background:white; + padding-top:12px; + border:2px solid silver; + overflow:hidden; + border-radius:5px; + cursor:pointer; +} +div.nodeStatus{ + top:-5px; + right:0px; + z-index:40; + position:absolute;width:60px;height:15px;font-size:15px;padding:2px;background:white; + border:1px sold silver; + overflow:hidden; + border-radius:3px; + cursor:pointer; +} +div.userList{ + position:fixed; + z-index:30; + right:0;top:0; + width:160px; +} +div.header{ + position:absolute; + left:0;top:0; + z-index:5; + height:50px; + width:100%; + background:#223; + background:-moz-linear-gradient(top,#002,#223); + background:-webkit-gradient(linear,left top,left bottom,from(#002),to(#223)); + color:silver; + font-size:40px; +} +div.revision{ + position:absolute; + left:0;top:50px; + z-index:5; + height:25px; + width:100%; + color:silver; + font-size:20px; +}
--- a/public/viewer/index.html Tue Mar 19 17:13:31 2013 +0900 +++ b/public/viewer/index.html Thu Apr 18 06:21:44 2013 +0900 @@ -190,18 +190,18 @@ </style> <div id="loginPopup" style='position:fixed;left:0;top:0;width:100%;height:100%;z-index:10;display:none;'> -<div style='position:absolute;left:0;top:0;width:100%;height:100%;background:black;opacity:0.5'></div> -<div style='position:absolute;left:50%;top:50%;'> -<div style='position:absolute;left:-160px;top:-80px;width:320px;height:120px;background:white'> -<form onsubmit="try{a=$('#loginUserName');if(a.val()){login(a.val());$('#loginPopup').remove();}}catch(e){console.log(e)}return false"> -<div style='position:absolute;left:20px;top:15px;font-size:24px;width:280;text-align:center;'> - R-Consensus Login -</div> -<input type=text placeholder='username' style='position:absolute;left:20px;top:70px;width:180px;font-size:16px;height:24px;' id='loginUserName'> -<span style='position:absolute;left:220px;top:70px;width:80px;font-size:16px;height:24px;line-height:24px;' class='button' value='login' onclick="try{a=$('#loginUserName');if(a.val()){login(a.val());$('#loginPopup').remove();}}catch(e){console.log(e)}return false">login</span> -</form> -</div> -</div> + <div style='position:absolute;left:0;top:0;width:100%;height:100%;background:black;opacity:0.5'></div> + <div style='position:absolute;left:50%;top:50%;'> + <div style='position:absolute;left:-160px;top:-80px;width:320px;height:120px;background:white'> + <form onsubmit="try{a=$('#loginUserName');if(a.val()){login(a.val());$('#loginPopup').remove();}}catch(e){console.log(e)}return false"> + <div style='position:absolute;left:20px;top:15px;font-size:24px;width:280;text-align:center;'> + R-Consensus Login + </div> + <input type=text placeholder='username' style='position:absolute;left:20px;top:70px;width:180px;font-size:16px;height:24px;' id='loginUserName'> + <span style='position:absolute;left:220px;top:70px;width:80px;font-size:16px;height:24px;line-height:24px;' class='button' value='login' onclick="try{a=$('#loginUserName');if(a.val()){login(a.val());$('#loginPopup').remove();}}catch(e){console.log(e)}return false">login</span> + </form> + </div> + </div> </div>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/public/viewer/jquery-ui.css Thu Apr 18 06:21:44 2013 +0900 @@ -0,0 +1,563 @@ +/*! + * jQuery UI CSS Framework 1.8.23 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; } +.ui-helper-clearfix:after { clear: both; } +.ui-helper-clearfix { zoom: 1; } +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/*! + * jQuery UI CSS Framework 1.8.23 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + * + * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px + */ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; } +.ui-widget-content a { color: #222222; } +.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; } +.ui-widget-header a { color: #222222; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; } +.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } + +/* Overlays */ +.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); } +.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*! + * jQuery UI Resizable 1.8.23 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Resizable#theming + */ +.ui-resizable { position: relative;} +.ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; } +.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } +.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } +.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } +.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } +.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } +.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } +.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } +.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } +.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*! + * jQuery UI Selectable 1.8.23 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Selectable#theming + */ +.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } +/*! + * jQuery UI Accordion 1.8.23 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Accordion#theming + */ +/* IE/Win - Fix animation bug - #4615 */ +.ui-accordion { width: 100%; } +.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } +.ui-accordion .ui-accordion-li-fix { display: inline; } +.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } +.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } +.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } +.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } +.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } +.ui-accordion .ui-accordion-content-active { display: block; } +/*! + * jQuery UI Autocomplete 1.8.23 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Autocomplete#theming + */ +.ui-autocomplete { position: absolute; cursor: default; } + +/* workarounds */ +* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ + +/* + * jQuery UI Menu 1.8.23 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Menu#theming + */ +.ui-menu { + list-style:none; + padding: 2px; + margin: 0; + display:block; + float: left; +} +.ui-menu .ui-menu { + margin-top: -3px; +} +.ui-menu .ui-menu-item { + margin:0; + padding: 0; + zoom: 1; + float: left; + clear: left; + width: 100%; +} +.ui-menu .ui-menu-item a { + text-decoration:none; + display:block; + padding:.2em .4em; + line-height:1.5; + zoom:1; +} +.ui-menu .ui-menu-item a.ui-state-hover, +.ui-menu .ui-menu-item a.ui-state-active { + font-weight: normal; + margin: -1px; +} +/*! + * jQuery UI Button 1.8.23 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Button#theming + */ +.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ +.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ +button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ +.ui-button-icons-only { width: 3.4em; } +button.ui-button-icons-only { width: 3.7em; } + +/*button text element */ +.ui-button .ui-button-text { display: block; line-height: 1.4; } +.ui-button-text-only .ui-button-text { padding: .4em 1em; } +.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } +.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } +.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } +.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } +/* no icon support for input elements, provide padding by default */ +input.ui-button { padding: .4em 1em; } + +/*button icon element(s) */ +.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } +.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } +.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } +.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } +.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } + +/*button sets*/ +.ui-buttonset { margin-right: 7px; } +.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } + +/* workarounds */ +button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ +/*! + * jQuery UI Dialog 1.8.23 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Dialog#theming + */ +.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } +.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } +.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } +.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } +.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } +.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } +.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } +.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } +.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } +.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } +.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } +.ui-draggable .ui-dialog-titlebar { cursor: move; } +/*! + * jQuery UI Slider 1.8.23 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Slider#theming + */ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; }/*! + * jQuery UI Tabs 1.8.23 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Tabs#theming + */ +.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ +.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } +.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } +.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } +.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ +.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } +.ui-tabs .ui-tabs-hide { display: none !important; } +/*! + * jQuery UI Datepicker 1.8.23 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Datepicker#theming + */ +.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } +.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } +.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } +.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } +.ui-datepicker .ui-datepicker-prev { left:2px; } +.ui-datepicker .ui-datepicker-next { right:2px; } +.ui-datepicker .ui-datepicker-prev-hover { left:1px; } +.ui-datepicker .ui-datepicker-next-hover { right:1px; } +.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } +.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } +.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } +.ui-datepicker select.ui-datepicker-month-year {width: 100%;} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { width: 49%;} +.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } +.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } +.ui-datepicker td { border: 0; padding: 1px; } +.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } +.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } +.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { width:auto; } +.ui-datepicker-multi .ui-datepicker-group { float:left; } +.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } +.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } +.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } +.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } +.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; } + +/* RTL support */ +.ui-datepicker-rtl { direction: rtl; } +.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } +.ui-datepicker-rtl .ui-datepicker-group { float:right; } +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } + +/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ +.ui-datepicker-cover { + position: absolute; /*must have*/ + z-index: -1; /*must have*/ + filter: mask(); /*must have*/ + top: -4px; /*must have*/ + left: -4px; /*must have*/ + width: 200px; /*must have*/ + height: 200px; /*must have*/ +}/*! + * jQuery UI Progressbar 1.8.23 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Progressbar#theming + */ +.ui-progressbar { height:2em; text-align: left; overflow: hidden; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file
--- a/public/viewer/revisionviewer.html Tue Mar 19 17:13:31 2013 +0900 +++ b/public/viewer/revisionviewer.html Thu Apr 18 06:21:44 2013 +0900 @@ -1,6 +1,7 @@ <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <title>R-Consensus</title> <link rel='stylesheet' href="form.css"> +<link rel="stylesheet" href="jquery-ui.css"> <script src='form.js'></script> <script type="text/javascript" src="js/lib/jquery-1.8.1-min.js"></script> <script type="text/javascript" src="js/lib/jquery-ui-1.8.23-min.js"></script> @@ -16,59 +17,58 @@ <script type="text/javascript" src="js/1.3.15/jquery.jsPlumb-1.3.15-RC1.js"></script> <script type="text/javascript" src='treeArrangement.js'></script> <script type="text/javascript"> -var LOAD_INTERVAL=5; + var LOAD_INTERVAL=5; var BASE_URL=""; if(!Array.prototype.filter){ - Array.prototype.filter=function(func){ - var arr=[]; - for(var i=0;i<this.length;i++)if(func(this[i]))arr.push(this[i]); - return arr; - } + Array.prototype.filter=function(func){ + var arr=[]; + for(var i=0;i<this.length;i++)if(func(this[i]))arr.push(this[i]); + return arr; + } } var userName; - var treeInfo; var userList=[]; var root_id; function loadConsensus(id){ - function onload(json){ - document.title="R-Consensus:"+json.toulmin.title; - $("#headertitle_main").text(json.toulmin.title) - if(treeInfo){ - updateToNew(json); - }else{ -// console.log(JSON.parse(JSON.stringify(json))); - treeInfo=createJSONTreeInfo(json) - //userList=getUserListFromJSONTree(treeInfo.root); - showUserList([]); - updateNode(treeInfo.root); - updateTree(); - } + function onload(json){ + document.title="R-Consensus:"+json.toulmin.title; + $("#headertitle_main").text(json.toulmin.title) + if(treeInfo){ + updateToNew(json); + }else{ + console.log(JSON.parse(JSON.stringify(json))); + treeInfo=createJSONTreeInfo(json) + //userList=getUserListFromJSONTree(treeInfo.root); + showUserList([]); + updateNode(treeInfo.root); + updateTree(); } - $.ajax({ - url:BASE_URL+"/consensus/browse/"+id, - success:function(o){onload(o)}, - type:"GET",cache:false, - error:function(o){console.log("ERROR",o)} - }); + } + $.ajax({ + url:BASE_URL+"/consensus/browse/"+id, + success:function(o){onload(o)}, + type:"GET",cache:false, + error:function(o){console.log("ERROR",o)} + }); } function loadUserList(){ - $.ajax({ - url:BASE_URL+"/users/all", - success:function(o){userList=o.sort();showUserList([]);}, - type:"GET",cache:false, - error:function(o){console.log("ERROR",o)} - }); + $.ajax({ + url:BASE_URL+"/users/all", + success:function(o){userList=o.sort();showUserList([]);}, + type:"GET",cache:false, + error:function(o){console.log("ERROR",o)} + }); } function loadRevisionInfo(consensus_id) { - $.ajax({ - url:BASE_URL+"/claims/get/revision/"+consensus_id, - success:function(o){createOptionTag(consensus_id, o); console.log("revision = "+ o)}, - type:"GET",cache:false, - error:function(o){console.log("ERROR",o)} - }); + $.ajax({ + url:BASE_URL+"/claims/get/revision/"+consensus_id, + success:function(o){createOptionTag(consensus_id, o); console.log("revision = "+ o)}, + type:"GET",cache:false, + error:function(o){console.log("ERROR",o)} + }); } function changeRevision(id) { @@ -77,270 +77,250 @@ } function createOptionTag(consensus_id, revisionInfo) { - var selectArray = new Array(); - selectArray.push('<select onchange="changeRevision(this.value)" >'); - for (var i=0; i<revisionInfo.length; i++) { - selectArray.push("<option>"+revisionInfo[i]+"</option>"); - } - selectArray.push("</select>"); - $('#revisionId')[0].innerHTML = "revision:"+selectArray.join(); - $('#revisionId')[0].children[0].value = consensus_id; + var selectArray = new Array(); + selectArray.push('<select onchange="changeRevision(this.value)" >'); + for (var i=0; i<revisionInfo.length; i++) { + var revision = revisionInfo.length - i; + selectArray.push("<option value='"+revisionInfo[i]+"'>"+revision+"</option>"); + } + selectArray.push("</select>"); + $('#revisionId')[0].innerHTML = "revision:"+selectArray.join(); + // $('#revisionId')[0].children[0].value = consensus_id; } $(function(){ - userName=localStorage.userName; - if(userName)start(); - else $("#loginPopup").css("display","block"); + userName=localStorage.userName; + if(userName)start(); + else $("#loginPopup").css("display","block"); }) function login(uname){ - userName=localStorage.userName=uname; - start(); + userName=localStorage.userName=uname; + start(); } function start(){ - popupInit(); - jsPlumb.importDefaults({ - Connector : [ "Straight", { curviness:50 } ], - PaintStyle : { strokeStyle:"gray", lineWidth:2 }, - EndpointStyle : {}, - Anchors: ["BottomCenter","TopCenter"] - }); - var consensus_id=(location.search.match("[0-9]+")||[])[0]; - if(consensus_id){ - root_id=consensus_id; - loadUserList(); - loadRevisionInfo(consensus_id); - loadConsensus(consensus_id); - }else{ - document.body.innerHTML="<div style='color:white;font-size:64px'>No ClaimID Specified.<br><a href='index.html' style='color:#88f'>back</a></div>"; - } + popupInit(); + jsPlumb.importDefaults({ + Connector : [ "Straight", { curviness:50 } ], + PaintStyle : { strokeStyle:"gray", lineWidth:2 }, + EndpointStyle : {}, + Anchors: ["BottomCenter","TopCenter"] + }); + var consensus_id=(location.search.match("[0-9]+")||[])[0]; + if(consensus_id){ + root_id=consensus_id; + loadUserList(); + loadRevisionInfo(consensus_id); + loadConsensus(consensus_id); + }else{ + document.body.innerHTML="<div style='color:white;font-size:64px'>No ClaimID Specified.<br><a href='index.html' style='color:#88f'>back</a></div>"; + } } function updateToNew(json){ - var t2=createJSONTreeInfo(json) - updateJSONTreeDiff(treeInfo.root,t2.root); - + var t2=createJSONTreeInfo(json) + updateJSONTreeDiff(treeInfo.root,t2.root); + + updateNode(treeInfo.root); + treeInfo.newLayout=t2.layout; + var cnt=0,time=500; + var time0=new Date(); + var prevCnt=0; + function tfunc(t){return 2*t-t*t} + function animation(){ + var cnt=(new Date()-time0)/time; + if(cnt<1){ + if(prevCnt!=cnt){ + var pt=tfunc(prevCnt); + var t=tfunc(cnt); + animateTree((t-1)/(pt-t)); + prevCnt=cnt; + + } + setTimeout(animation,10); + }else{ + animateTree(0); + } updateNode(treeInfo.root); - treeInfo.newLayout=t2.layout; - var cnt=0,time=500; - var time0=new Date(); - var prevCnt=0; - function tfunc(t){return 2*t-t*t} - function animation(){ - var cnt=(new Date()-time0)/time; - if(cnt<1){ - if(prevCnt!=cnt){ - var pt=tfunc(prevCnt); - var t=tfunc(cnt); - animateTree((t-1)/(pt-t)); - prevCnt=cnt; - - } - setTimeout(animation,10); - }else{ - animateTree(0); - } - updateNode(treeInfo.root); - updateTree(); - } - animation(); + updateTree(); + } + animation(); } var ViewParam={ - offsetTop:100, - offsetBottom:100, - offsetLeft:100, - offsetRight:100, - nodeWidth:120, - nodeHeight:60, - intervalX:140, - intervalY:120 + offsetTop:100, + offsetBottom:100, + offsetLeft:100, + offsetRight:100, + nodeWidth:120, + nodeHeight:60, + intervalX:140, + intervalY:120 }; function animateTree(t){ - function animateNodePosition(node,t){ - node.position.x=(node.position.x*t+node.newPosition.x)/(1+t); - node.position.y=(node.position.y*t+node.newPosition.y)/(1+t); - for(var i=0;i<node.mentions.length;i++){ - animateNodePosition(node.mentions[i],t); - } - if(t==0){ - if(node.newPosition.remove){ - jsPlumb.removeAllEndpoints(node.view); - $(node.view).remove(); - } - node.mentions=node.mentions.filter(function(n){return !n.newPosition.remove}); - } + function animateNodePosition(node,t){ + node.position.x=(node.position.x*t+node.newPosition.x)/(1+t); + node.position.y=(node.position.y*t+node.newPosition.y)/(1+t); + for(var i=0;i<node.mentions.length;i++){ + animateNodePosition(node.mentions[i],t); } - animateNodePosition(treeInfo.root,t); - treeInfo.layout.left=(treeInfo.layout.left*t+treeInfo.newLayout.left)/(1+t); - treeInfo.layout.right=(treeInfo.layout.right*t+treeInfo.newLayout.right)/(1+t); - treeInfo.layout.depth=(treeInfo.layout.depth*t+treeInfo.newLayout.depth)/(1+t); + if(t==0){ + if(node.newPosition.remove){ + jsPlumb.removeAllEndpoints(node.view); + $(node.view).remove(); + } + node.mentions=node.mentions.filter(function(n){return !n.newPosition.remove}); + } + } + animateNodePosition(treeInfo.root,t); + treeInfo.layout.left=(treeInfo.layout.left*t+treeInfo.newLayout.left)/(1+t); + treeInfo.layout.right=(treeInfo.layout.right*t+treeInfo.newLayout.right)/(1+t); + treeInfo.layout.depth=(treeInfo.layout.depth*t+treeInfo.newLayout.depth)/(1+t); } function updateTree(){ - with(treeInfo.layout){ - $("#treeRoot").css({ - left:ViewParam.offsetLeft+ViewParam.nodeWidth/2-ViewParam.intervalX*left, - top:ViewParam.offsetTop+ViewParam.nodeHeight/2}); - $("#treeMain").css({ - width:ViewParam.intervalX*(right-left)+ViewParam.nodeWidth+ViewParam.offsetLeft+ViewParam.offsetRight, - height:ViewParam.intervalY*(depth-1)+ViewParam.nodeHeight+ViewParam.offsetTop+ViewParam.offsetBottom, - top:50}); - } - jsPlumb.repaintEverything(); + with(treeInfo.layout){ + $("#treeRoot").css({ + left:ViewParam.offsetLeft+ViewParam.nodeWidth/2-ViewParam.intervalX*left, + top:ViewParam.offsetTop+ViewParam.nodeHeight/2}); + $("#treeMain").css({ + width:ViewParam.intervalX*(right-left)+ViewParam.nodeWidth+ViewParam.offsetLeft+ViewParam.offsetRight, + height:ViewParam.intervalY*(depth-1)+ViewParam.nodeHeight+ViewParam.offsetTop+ViewParam.offsetBottom, + top:50}); + } + jsPlumb.repaintEverything(); } var relationJPMap={ - suggestion:"提案", - refutation:"反論", - question:"質問" + suggestion:"提案", + refutation:"反論", + question:"質問" }; function updateNode(node){ - if(updateClaimElement(node)){ - var fc=$("#treeRoot")[0].firstChild; - if(fc)$("#treeRoot")[0].insertBefore(node.view[0],fc); - else $("#treeRoot").append(node.view); + if(updateClaimElement(node)){ + var fc=$("#treeRoot")[0].firstChild; + if(fc)$("#treeRoot")[0].insertBefore(node.view[0],fc); + else $("#treeRoot").append(node.view); + } + node.view.css({ + left:node.position.x*ViewParam.intervalX-ViewParam.nodeWidth/2, + top:node.position.y*ViewParam.intervalY-ViewParam.nodeHeight/2 + }); + var childs=node.mentions; + for(var i=0;i<childs.length;i++){ + var child=childs[i]; + var created=!child.view; + updateNode(child); + if(created){ + var c=jsPlumb.connect({source:node.view[0],target:child.view[0]}); + c.setLabel({label:"<span style='color:white'>"+(relationJPMap[child.relation]||child.relation)+"</span>",cssStyle:"color:white"}); } - node.view.css({ - left:node.position.x*ViewParam.intervalX-ViewParam.nodeWidth/2, - top:node.position.y*ViewParam.intervalY-ViewParam.nodeHeight/2 - }); - var childs=node.mentions; - for(var i=0;i<childs.length;i++){ - var child=childs[i]; - var created=!child.view; - updateNode(child); - if(created){ - var c=jsPlumb.connect({source:node.view[0],target:child.view[0]}); - c.setLabel({label:"<span style='color:white'>"+(relationJPMap[child.relation]||child.relation)+"</span>",cssStyle:"color:white"}); - } - } + } } var focusedUser=null; function setFocusedShadowEverything(){ - function recFocusShadow(node){ - setFocusedShadow(node); - for(var i=0;i<node.mentions.length;i++){ - recFocusShadow(node.mentions[i]); - } + function recFocusShadow(node){ + setFocusedShadow(node); + for(var i=0;i<node.mentions.length;i++){ + recFocusShadow(node.mentions[i]); } - recFocusShadow(treeInfo.root); + } + recFocusShadow(treeInfo.root); } function setFocusedShadow(node){ - var name=focusedUser||userName; - var color; - console.log(node.info.author) - if(node.info.author==name)color="#afa"; - else{ - var users=node.info.users,status; - for(var i=0;i<users.length;i++){ - var u=users[i]; - if(u.id==name){status=u.status;break;} - } - color=({agreed:"#aaf",denied:"#faa",pend:"white",unknown:"white"})[status]; + var name=focusedUser||userName; + var color; + // console.log(node.info.author) + if(node.info.author==name)color="#afa"; + else{ + var users=node.info.users,status; + for(var i=0;i<users.length;i++){ + var u=users[i]; + if(u.id==name){status=u.status;break;} } - node.view.css("box-shadow",color?color+" 0 0 30px":"none"); + color=({agreed:"#aaf",denied:"#faa",pend:"white",unknown:"white"})[status]; + } + node.view.css("box-shadow",color?color+" 0 0 30px":"none"); +} +function appendStatusElement(viewDiv, status){ + var statusView = $("<div class='nodeStatus'/>"); + statusView.text(status); + statusView.css({ + left:0, + top:-5 + }); + viewDiv[0].appendChild(statusView[0]); } function updateClaimElement(node){ - var created=false; - if(!node.view){ - created=true - node.view=$("<div class='claimNode'/>"); - node.view.click(function(){showClaim(node);}); - node.view.hover( - function(){div.css("box-shadow","white 0 0 50px");showUserList(node.info.users,node.info.author)}, - function(){try{setFocusedShadow(node);}catch(e){/*console.log(e)*/;}showUserList([])} - ) - } - setFocusedShadow(node); - var div=node.view; - div.text(node.info.toulmin.title); - var statusBackground={pass:"#aaf",unknown:"#fff",failed:"#faa",fail:"#faa"}; - var statusBorder={pass:"#66a",unknown:"#aaa",failed:"#a66",fail:"#a66"}; - div.css("background",statusBackground[node.info.status]||"white"); - div.css("border-color",statusBorder[node.info.status]||"white"); - return created; + var created=false; + if(!node.view){ + created=true + node.view=$("<div class='claimNode'/>"); + node.view.click(function(){showClaim(node);}); + node.view.hover( + function(){div.css("box-shadow","white 0 0 50px");showUserList(node.info.users,node.info.author)}, + function(){try{setFocusedShadow(node);}catch(e){/*console.log(e)*/;}showUserList([])} + ) + } + setFocusedShadow(node); + var div=node.view; + div.text(node.info.toulmin.title); + appendStatusElement(node.view, node.info.status); + var statusBackground={pass:"#aaf",unknown:"#fff",failed:"#faa",fail:"#faa"}; + var statusBorder={pass:"#66a",unknown:"#aaa",failed:"#a66",fail:"#a66"}; + div.css("background",statusBackground[node.info.status]||"white"); + div.css("border-color",statusBorder[node.info.status]||"white"); + return created; } function showUserList(users,author){ - var statusMap={}; - var userListElement=$(".userList"); - userListElement.text('') - if(author)statusMap['#'+author]='author'; - for(var i=0;i<users.length;i++){ - statusMap['#'+users[i].id]=users[i].status; + var statusMap={}; + var userListElement=$(".userList"); + userListElement.text('') + if(author)statusMap['#'+author]='author'; + for(var i=0;i<users.length;i++){ + statusMap['#'+users[i].id]=users[i].status; + } + for(var i=0;i<userList.length;i++){ + var u=userList[i]; + var ue=createUserElement(u==userName?"あなた("+u+")":u,statusMap['#'+u]); + if(u==userName){ + ue.css({fontWeight:"bold"}) } - for(var i=0;i<userList.length;i++){ - var u=userList[i]; - var ue=createUserElement(u==userName?"あなた("+u+")":u,statusMap['#'+u]); - if(u==userName){ - ue.css({fontWeight:"bold"}) + ue.appendTo(userListElement); + with({name:u,element:ue}){ + ue.hover( + function(){ + element.css("opacity",1); + focusedUser=name;setFocusedShadowEverything() + }, + function(){ + element.css("opacity",0.5); + focusedUser=userName;setFocusedShadowEverything() } - ue.appendTo(userListElement); - with({name:u,element:ue}){ - ue.hover( - function(){ - element.css("opacity",1); - focusedUser=name;setFocusedShadowEverything() - }, - function(){ - element.css("opacity",0.5); - focusedUser=userName;setFocusedShadowEverything() - } - ) - } - + ) } - $(".userList").css("opacity","1"); + + } + $(".userList").css("opacity","1"); } function hideUserList(){ - $(".userStatus").css("background","none"); - $(".userItem").css("opacity","1"); - $(".userList").css("opacity","0.2"); + $(".userStatus").css("background","none"); + $(".userItem").css("opacity","1"); + $(".userList").css("opacity","0.2"); } </script> <style> -div.claimNode{ - z-index:20; - position:absolute;width:92px;height:40px;font-size:12px;padding:4px;background:white; - border:2px solid silver; - overflow:hidden; - border-radius:5px; - cursor:pointer; -} body{background-color:black;} - -div.userList{ - position:fixed; - z-index:30; - right:0;top:0; - width:160px; +div.revisionSlider{ + position:absolute; + left:0;top:70px; + z-index:5; + width:50%; } -div.header{ - position:absolute; - left:0;top:0; - z-index:5; - height:50px; - width:100%; - background:#223; - background:-moz-linear-gradient(top,#002,#223); - background:-webkit-gradient(linear,left top,left bottom,from(#002),to(#223)); - color:silver; - font-size:40px; -} -div.revision{ - position:absolute; - left:0;top:50px; - z-index:5; - height:25px; - width:100%; - color:silver; - font-size:20px; -} - </style> <script> function resetMentionForm(){ @@ -473,12 +453,20 @@ } } +$(function() { + $('#slider').slider({ step:5, + slide: function(event, ui){ console.log(ui.value); }, + stop: function(event, ui){ console.log(ui.value); } + }); + + $('#slider').slider(); +}); </script> <div class='header'> <nobr id='header_title'><a href='index.html'>Home</a><span id='headertitle_main' style='margin-left:40px;'>loading</span></nobr> </div> -<div class="revision" id="revisionId"> -</div> +<div class="revision" id="revisionId"></div> +<div class="revisionSlider" id="slider" style='left:10px;' ></div> <div style="position:relative;left:0;top:0;" id='treeMain'> <div style="position:absolute;width:0;height:0;left:100;" id='treeRoot'>
--- a/public/viewer/treeArrangement.js Tue Mar 19 17:13:31 2013 +0900 +++ b/public/viewer/treeArrangement.js Thu Apr 18 06:21:44 2013 +0900 @@ -136,7 +136,6 @@ lrarr.push(recTree(childs[i])); } - if(true){ var wmax=0; for(var i=0;i<lrarr.length;i++){
--- a/public/viewer/viewer.html Tue Mar 19 17:13:31 2013 +0900 +++ b/public/viewer/viewer.html Thu Apr 18 06:21:44 2013 +0900 @@ -16,7 +16,7 @@ <script type="text/javascript" src="js/1.3.15/jquery.jsPlumb-1.3.15-RC1.js"></script> <script type="text/javascript" src='treeArrangement.js'></script> <script type="text/javascript"> - var LOAD_INTERVAL=5; +var LOAD_INTERVAL=5; var BASE_URL=""; if(!Array.prototype.filter){ Array.prototype.filter=function(func){ @@ -38,7 +38,7 @@ if(treeInfo){ updateToNew(json); }else{ - console.log(JSON.parse(JSON.stringify(json))); +// console.log(JSON.parse(JSON.stringify(json))); treeInfo=createJSONTreeInfo(json) //userList=getUserListFromJSONTree(treeInfo.root); showUserList([]); @@ -100,7 +100,6 @@ function updateToNew(json){ var t2=createJSONTreeInfo(json) updateJSONTreeDiff(treeInfo.root,t2.root); - updateNode(treeInfo.root); treeInfo.newLayout=t2.layout; var cnt=0,time=500; @@ -213,7 +212,7 @@ function setFocusedShadow(node){ var name=focusedUser||userName; var color; - console.log(node.info.author) +// console.log(node.info.author) if(node.info.author==name)color="#afa"; else{ var users=node.info.users,status; @@ -225,6 +224,15 @@ } node.view.css("box-shadow",color?color+" 0 0 30px":"none"); } +function appendStatusElement(viewDiv, status){ + var statusView = $("<div class='nodeStatus'/>"); + statusView.text(status); + statusView.css({ + left:0, + top:-5 + }); + viewDiv[0].appendChild(statusView[0]); +} function updateClaimElement(node){ var created=false; if(!node.view){ @@ -239,6 +247,7 @@ setFocusedShadow(node); var div=node.view; div.text(node.info.toulmin.title); + appendStatusElement(node.view, node.info.status); var statusBackground={pass:"#aaf",unknown:"#fff",failed:"#faa",fail:"#faa"}; var statusBorder={pass:"#66a",unknown:"#aaa",failed:"#a66",fail:"#a66"}; div.css("background",statusBackground[node.info.status]||"white"); @@ -283,44 +292,9 @@ $(".userItem").css("opacity","1"); $(".userList").css("opacity","0.2"); } - </script> +</script> <style> -div.claimNode{ - z-index:20; - position:absolute;width:92px;height:40px;font-size:12px;padding:4px;background:white; - border:2px solid silver; - overflow:hidden; - border-radius:5px; - cursor:pointer; -} body{background-color:black;} -div.userList{ - position:fixed; - z-index:30; - right:0;top:0; - width:160px; -} -div.header{ - position:absolute; - left:0;top:0; - z-index:5; - height:50px; - width:100%; - background:#223; - background:-moz-linear-gradient(top,#002,#223); - background:-webkit-gradient(linear,left top,left bottom,from(#002),to(#223)); - color:silver; - font-size:40px; -} -div.revision{ - position:absolute; - left:0;top:50px; - z-index:5; - height:25px; - width:100%; - color:silver; - font-size:20px; -} </style> <script> function resetMentionForm(){ @@ -452,7 +426,6 @@ popupHideAll(); } } - </script> <div class='header'> <nobr id='header_title'><a href='index.html'>Home</a><span id='headertitle_main' style='margin-left:40px;'>loading</span></nobr>