
make help page
@5a831d4d7517d249ae833e1edf0023fab8f20adc
--- app/views/code/gitView.scala.html
... | ... | @@ -1,199 +0,0 @@ |
1 | -@(url : String, project:Project) | |
2 | -@main("코드", project, utils.MenuType.CODE){ | |
3 | -<ul class="nav nav-tabs"> | |
4 | - <a href="@routes.CodeApp.codeBrowser(project.owner, project.name)">@Messages("Files")</a> | |
5 | - </li> | |
6 | - <a href="@routes.CodeHistoryApp.historyUntilHead(project.owner, project.name)">@Messages("Commits")</a> | |
7 | - </li> | |
8 | -</ul> | |
9 | -<div class="well">Clone this repository : git clone @url</div> | |
10 | -<div class="row" id="codeBrowser"> | |
11 | - <div class="span3"> | |
12 | - <ul id="codeRoot" class="well nav nav-list"> | |
13 | - <li id="codeBrowserHeader"><a href="#">코드 탐색기</a></li> | |
14 | - </ul> | |
15 | - </div> | |
16 | - <div class="span9"> | |
17 | - <div> | |
18 | - <span id="breadcrumbs">Breadcrumbs</span> <span> <select> | |
19 | - <option>master</option> | |
20 | - </select> | |
21 | - </span> | |
22 | - </div> | |
23 | - <div id="folderView"> | |
24 | - <table class="table table-bordered"> | |
25 | - <thead> | |
26 | - <tr> | |
27 | - <th>FileName</th> | |
28 | - <th>Commit Message</th> | |
29 | - <th>Commit Date</th> | |
30 | - <th>Author</th> | |
31 | - </tr> | |
32 | - </thead> | |
33 | - <tbody> | |
34 | - </tbody> | |
35 | - </table> | |
36 | - </div> | |
37 | - <div id="codeView" class="hide"> | |
38 | - <div> | |
39 | - <span id="commiter"></span> | <span id="commitDate"></span> | <span id="commitMessage"></span> <span | |
40 | - class="pull-right"><a id="rawCode" class="btn btn-mini" target="_blank">Raw</a></span> | |
41 | - </div> | |
42 | - <hr /> | |
43 | - <div> | |
44 | - <pre> | |
45 | - <code style="overflow: hidden"></code> | |
46 | - </pre> | |
47 | - </div> | |
48 | - </div> | |
49 | - </div> | |
50 | -</div> | |
51 | -<div id="codeError" class="hide row"> | |
52 | - <div class="well span12"> | |
53 | - <p>HEAD커밋이 존재하지 않습니다. 다음과 같은 방법을 시도해 보세요</p> | |
54 | - <pre> | |
55 | - <code>git clone @url | |
56 | -touch readme.md | |
57 | -git add readme.md | |
58 | -git commit -m "init" | |
59 | -git push origin master</code> | |
60 | - </pre> | |
61 | - </div> | |
62 | -</div> | |
63 | -<script type="text/javascript" src="/assets/javascripts/hljs.js"></script> | |
64 | -<script type="text/javascript" src="/assets/javascripts/hljs.jquery.js"></script> | |
65 | -<script type="text/javascript" src="/assets/javascripts/languages/allinone.js"></script> | |
66 | -<style> | |
67 | -@@IMPORT url("/assets/stylesheets/hljsstyles/googlecode.css"); | |
68 | -</style> | |
69 | -<script> | |
70 | - $(document).ready(function(){ | |
71 | - $(window).bind('hashchange', function(e){ | |
72 | - //대기 표시 한다. | |
73 | - //여기서 요청을 보내고 | |
74 | - var path = getHash().replace(/^#/, ""); | |
75 | - | |
76 | - $.ajax("code/!" + path, { | |
77 | - datatype : "json", | |
78 | - success : function(data, textStatus, jqXHR){ | |
79 | - updateBreadcrumbs(path); | |
80 | - updateNav(path); | |
81 | - switch(data.type){ | |
82 | - case "file" : | |
83 | - handleFile(data); | |
84 | - break; | |
85 | - case "folder" : | |
86 | - handleFolder(data); | |
87 | - break; | |
88 | - } | |
89 | - } | |
90 | - }); | |
91 | - function handleFile(data){ | |
92 | - //파일을 표시한다. | |
93 | - $("#commiter").text(data.author); | |
94 | - $("#commitMessage").text(data.msg); | |
95 | - $("#commitDate").text(data.date); | |
96 | - $("code").text(data.data); | |
97 | - $("#rawCode").attr("href", path.replace(/\/!/, "")); | |
98 | - | |
99 | - $("#folderView").hide(); | |
100 | - $("#codeView").show(); | |
101 | - $("code").highlight(); | |
102 | - } | |
103 | - function handleFolder(data){ | |
104 | - //폴더내용을 리스팅 한다. | |
105 | - $("#commiter").text(data.author); | |
106 | - $("#commitMessage").text(data.msg); | |
107 | - $("#commitDate").text(data.date); | |
108 | - | |
109 | - $("tbody").children().remove(); | |
110 | - | |
111 | - for(var name in data.data){ | |
112 | - var info = data.data[name]; | |
113 | - var tablerow = makeTableRow(name, info.msg, info.date, info.author); | |
114 | - $("tbody").append(tablerow); | |
115 | - } | |
116 | - | |
117 | - $("#folderView").show(); | |
118 | - $("#codeView").hide(); | |
119 | - } | |
120 | - function makeTableRow(name, message, date, author){ | |
121 | - return $("<tr>") | |
122 | - .append( | |
123 | - $("<td>").append( | |
124 | - $("<a>").text(name).attr("href", "#" + (path !== "/" ? path : "") + "/" +name) | |
125 | - ) | |
126 | - ) | |
127 | - .append($("<td>").text(message)) | |
128 | - .append($("<td>").text(date)) | |
129 | - .append($("<td>").text(author)); | |
130 | - } | |
131 | - function updateBreadcrumbs(path){ | |
132 | - var $breadcrumbs = $("#breadcrumbs"); | |
133 | - $($breadcrumbs).html('<a href="#/">/</a>'); | |
134 | - | |
135 | - var names = path.split("/"); | |
136 | - var str = "#" | |
137 | - for(var i = 1; i < names.length; i++){ | |
138 | - var name = names[i]; | |
139 | - str += "/" + name; | |
140 | - $breadcrumbs.append(" > "); | |
141 | - $("<a>").text(name).attr("href", str).appendTo($breadcrumbs); | |
142 | - } | |
143 | - } | |
144 | - | |
145 | - function getPath(name){ | |
146 | - var path = getHash().replace(/^#/, ""); | |
147 | - if(path == "/") { | |
148 | - return path + name; | |
149 | - } else { | |
150 | - return path + "/" + name; | |
151 | - } | |
152 | - } | |
153 | - }); | |
154 | - $(window).trigger('hashchange'); | |
155 | - }); | |
156 | - | |
157 | - function getHash(){ | |
158 | - //혹시 있을지도 모를 호완성을 위해. | |
159 | - return location.hash; | |
160 | - | |
161 | - } | |
162 | - function setHash(hash){ | |
163 | - return location.hash = hash; | |
164 | - } | |
165 | - var stack = []; | |
166 | - function updateNav(path){ | |
167 | - $.ajax("code/!" + path, { | |
168 | - success : function(data, textStatus, jqXHR){ | |
169 | - data.path = path; | |
170 | - stack.push(data); | |
171 | - var $codeRoot = $("#codeRoot"); | |
172 | - var $a = $codeRoot.find("li a[href='#"+ path +"']"); | |
173 | - if($a.length !== 0) { | |
174 | - stackTrace(stack); | |
175 | - } else { | |
176 | - updateNav(path.substr(0, path.lastIndexOf("/"))); | |
177 | - } | |
178 | - } | |
179 | - }); | |
180 | - } | |
181 | - function stackTrace(stack){ | |
182 | - while(stack.length !== 0) { | |
183 | - var data = stack.pop(); | |
184 | - if(data.type === "file") continue; | |
185 | - | |
186 | - var $ul = $("<ul>").addClass("nav nav-list"); | |
187 | - for(var name in data.data){ | |
188 | - if(data.data[name].type !== "folder") continue; | |
189 | - | |
190 | - var $li = $("<li>"); | |
191 | - $("<a>").attr("href", "#" + data.path + "/" + name).text(name).appendTo($li); | |
192 | - $li.appendTo($ul); | |
193 | - } | |
194 | - var parentStr = data.path.substr(0, data.path.lastIndexOf("/")); | |
195 | - $("#codeRoot").find("li a[href='#" + data.path + "']").parent().after($ul); | |
196 | - } | |
197 | - } | |
198 | - </script> | |
199 | -} |
--- app/views/code/svnView.scala.html
... | ... | @@ -1,199 +0,0 @@ |
1 | -@(url : String, project:Project) | |
2 | - | |
3 | -@main("코드", project, utils.MenuType.CODE){ | |
4 | -<ul class="nav nav-tabs"> | |
5 | - <a href="@routes.CodeApp.codeBrowser(project.owner, project.name)">@Messages("Files")</a></li> | |
6 | - <a href="@routes.CodeHistoryApp.historyUntilHead(project.owner, project.name)">@Messages("Commits")</a></li> | |
7 | -</ul> | |
8 | - | |
9 | -<div class="well">Checkout this repository : svn checkout @url</div> | |
10 | -<div class="row" id="codeBrowser"> | |
11 | - <div class="span3"> | |
12 | - <ul id="codeRoot" class="well nav nav-list"> | |
13 | - <li id="codeBrowserHeader"><a href="#">코드 탐색기</a></li> | |
14 | - </ul> | |
15 | - </div> | |
16 | - <div class="span9" > | |
17 | - <div> | |
18 | - <span id="breadcrumbs">Breadcrumbs</span> | |
19 | - <span> | |
20 | - <select> | |
21 | - <option>master</option> | |
22 | - </select> | |
23 | - </span> | |
24 | - </div> | |
25 | - <div id="folderView"> | |
26 | - <table class="table table-bordered"> | |
27 | - <thead> | |
28 | - <tr> | |
29 | - <th>FileName</th> | |
30 | - <th>Commit Message</th> | |
31 | - <th>Commit Date</th> | |
32 | - <th>Author</th> | |
33 | - </tr> | |
34 | - </thead> | |
35 | - <tbody> | |
36 | - </tbody> | |
37 | - </table> | |
38 | - </div> | |
39 | - <div id="codeView" class="hide"> | |
40 | - <div> | |
41 | - <span id="commiter"></span> | <span id="commitDate"></span> | <span id="commitMessage"></span> | |
42 | - <span class="pull-right"><a id="rawCode" class="btn btn-mini" target="_blank">Raw</a></span> | |
43 | - </div> | |
44 | - <hr /> | |
45 | - <div> | |
46 | - <pre><code style="overflow:hidden"></code></pre> | |
47 | - </div> | |
48 | - </div> | |
49 | - | |
50 | - </div> | |
51 | - | |
52 | -</div> | |
53 | -<div id="codeError" class="hide row"> | |
54 | - <div class="well span12"> | |
55 | - <p>HEAD커밋이 존재하지 않습니다. 다음과 같은 방법을 시도해 보세요</p> | |
56 | - <pre><code>git clone @url | |
57 | -touch readme.md | |
58 | -git add readme.md | |
59 | -git commit -m "init" | |
60 | -git push origin master</code></pre> | |
61 | - </div> | |
62 | -</div> | |
63 | -<script type="text/javascript" src="/assets/javascripts/hljs.js"></script> | |
64 | -<script type="text/javascript" src="/assets/javascripts/hljs.jquery.js"></script> | |
65 | -<script type="text/javascript" src="/assets/javascripts/languages/allinone.js"></script> | |
66 | -<style> | |
67 | -@@IMPORT url("/assets/stylesheets/hljsstyles/googlecode.css"); | |
68 | -</style> | |
69 | -<script> | |
70 | - $(document).ready(function(){ | |
71 | - $(window).bind('hashchange', function(e){ | |
72 | - //대기 표시 한다. | |
73 | - //여기서 요청을 보내고 | |
74 | - var path = getHash().replace(/^#/, ""); | |
75 | - | |
76 | - $.ajax("code/!" + path, { | |
77 | - datatype : "json", | |
78 | - success : function(data, textStatus, jqXHR){ | |
79 | - updateBreadcrumbs(path); | |
80 | - updateNav(path); | |
81 | - switch(data.type){ | |
82 | - case "file" : | |
83 | - handleFile(data); | |
84 | - break; | |
85 | - case "folder" : | |
86 | - handleFolder(data); | |
87 | - break; | |
88 | - } | |
89 | - } | |
90 | - }); | |
91 | - function handleFile(data){ | |
92 | - //파일을 표시한다. | |
93 | - $("#commiter").text(data.author); | |
94 | - $("#commitMessage").text(data.msg); | |
95 | - $("#commitDate").text(data.date); | |
96 | - $("code").text(data.data); | |
97 | - $("#rawCode").attr("href", path.replace(/\/!/, "")); | |
98 | - | |
99 | - $("#folderView").hide(); | |
100 | - $("#codeView").show(); | |
101 | - $("code").highlight(); | |
102 | - } | |
103 | - function handleFolder(data){ | |
104 | - //폴더내용을 리스팅 한다. | |
105 | - $("#commiter").text(data.author); | |
106 | - $("#commitMessage").text(data.msg); | |
107 | - $("#commitDate").text(data.date); | |
108 | - | |
109 | - $("tbody").children().remove(); | |
110 | - | |
111 | - for(var name in data.data){ | |
112 | - var info = data.data[name]; | |
113 | - var tablerow = makeTableRow(name, info.msg, info.date, info.author); | |
114 | - $("tbody").append(tablerow); | |
115 | - } | |
116 | - | |
117 | - $("#folderView").show(); | |
118 | - $("#codeView").hide(); | |
119 | - } | |
120 | - function makeTableRow(name, message, date, author){ | |
121 | - return $("<tr>") | |
122 | - .append( | |
123 | - $("<td>").append( | |
124 | - $("<a>").text(name).attr("href", "#" + (path !== "/" ? path : "") + "/" +name) | |
125 | - ) | |
126 | - ) | |
127 | - .append($("<td>").text(message)) | |
128 | - .append($("<td>").text(date)) | |
129 | - .append($("<td>").text(author)); | |
130 | - } | |
131 | - function updateBreadcrumbs(path){ | |
132 | - var $breadcrumbs = $("#breadcrumbs"); | |
133 | - $($breadcrumbs).html('<a href="#/">/</a>'); | |
134 | - | |
135 | - var names = path.split("/"); | |
136 | - var str = "#" | |
137 | - for(var i = 1; i < names.length; i++){ | |
138 | - var name = names[i]; | |
139 | - str += "/" + name; | |
140 | - $breadcrumbs.append(" > "); | |
141 | - $("<a>").text(name).attr("href", str).appendTo($breadcrumbs); | |
142 | - } | |
143 | - } | |
144 | - | |
145 | - function getPath(name){ | |
146 | - var path = getHash().replace(/^#/, ""); | |
147 | - if(path == "/") { | |
148 | - return path + name; | |
149 | - } else { | |
150 | - return path + "/" + name; | |
151 | - } | |
152 | - } | |
153 | - }); | |
154 | - $(window).trigger('hashchange'); | |
155 | - }); | |
156 | - | |
157 | - function getHash(){ | |
158 | - //혹시 있을지도 모를 호완성을 위해. | |
159 | - return location.hash; | |
160 | - | |
161 | - } | |
162 | - function setHash(hash){ | |
163 | - return location.hash = hash; | |
164 | - } | |
165 | - var stack = []; | |
166 | - function updateNav(path){ | |
167 | - $.ajax("code/!" + path, { | |
168 | - success : function(data, textStatus, jqXHR){ | |
169 | - data.path = path; | |
170 | - stack.push(data); | |
171 | - var $codeRoot = $("#codeRoot"); | |
172 | - var $a = $codeRoot.find("li a[href='#"+ path +"']"); | |
173 | - if($a.length !== 0) { | |
174 | - stackTrace(stack); | |
175 | - } else { | |
176 | - updateNav(path.substr(0, path.lastIndexOf("/"))); | |
177 | - } | |
178 | - } | |
179 | - }); | |
180 | - } | |
181 | - function stackTrace(stack){ | |
182 | - while(stack.length !== 0) { | |
183 | - var data = stack.pop(); | |
184 | - if(data.type === "file") continue; | |
185 | - | |
186 | - var $ul = $("<ul>").addClass("nav nav-list"); | |
187 | - for(var name in data.data){ | |
188 | - if(data.data[name].type !== "folder") continue; | |
189 | - | |
190 | - var $li = $("<li>"); | |
191 | - $("<a>").attr("href", "#" + data.path + "/" + name).text(name).appendTo($li); | |
192 | - $li.appendTo($ul); | |
193 | - } | |
194 | - var parentStr = data.path.substr(0, data.path.lastIndexOf("/")); | |
195 | - $("#codeRoot").find("li a[href='#" + data.path + "']").parent().after($ul); | |
196 | - } | |
197 | - } | |
198 | - </script> | |
199 | -} |
--- app/views/help/toc.scala.html
+++ app/views/help/toc.scala.html
... | ... | @@ -1,13 +1,142 @@ |
1 | 1 |
@(message: String) |
2 | 2 |
|
3 | 3 |
@home(message, utils.MenuType.HELP) { |
4 |
-<div class="container page-wrap"> |
|
5 |
-<div class="page" markdown> |
|
6 |
-Help |
|
7 |
-==== |
|
8 |
-</div> |
|
9 |
-</div> |
|
4 |
+<div class="page"> |
|
5 |
+ <!--<div class="header-wrap"> |
|
6 |
+ <div class="search-wrap help"> |
|
7 |
+ <div class="inner"> |
|
8 |
+ <form action="/project/search" method="get"> |
|
9 |
+ <span class="labels">FAQ</span> |
|
10 |
+ <span class="sp-line"></span> |
|
11 |
+ <span class="sub labels">Help me with</span> |
|
12 |
+ <input name="query" class="text" type="text" placeholder="FAQ 검색"><button type="submit" class="btn-transparent search-btn">SEARCH</button> |
|
13 |
+ </form> |
|
14 |
+ </div> |
|
15 |
+ </div> |
|
16 |
+ </div>--> |
|
17 |
+ <ul class="qas"> |
|
18 |
+ <li class="qa"> |
|
19 |
+ <div class="question-wrap"> |
|
20 |
+ <i class="ico ico-q"></i> |
|
21 |
+ <a href="#!/toggle" class="question">N4를 설치하고 싶어요.</a> |
|
22 |
+ </div> |
|
23 |
+ <div class="answer-wrap"> |
|
24 |
+ <i class="ico ico-a"></i> |
|
25 |
+ <div class="answer" style="width:100%"> |
|
26 |
+ N4를 설치하기 전에 준비해야 할것은 다음과 같습니다. |
|
27 |
+ <ul> |
|
28 |
+ <li><a href="http://www.oracle.com/technetwork/java/javase">JDK 1.6이상</a></li> |
|
29 |
+ <li><a href="http://www.playframework.org/">Play Framework</a></li> |
|
30 |
+ <li><a href="http://git-scm.com/">Git Client</a></li> |
|
31 |
+ </ul> |
|
32 |
+ 위의 프로그램을 모두 인스톨 하신후 소스코드를 받습니다. |
|
33 |
+ <pre><code># git clone https://github.com/nforge/nforge4.git</code></pre> |
|
34 |
+ 인스톨된 폴더로 가서 N4를 실행시키면 됩니다. |
|
35 |
+ <pre><code># play run</code></pre> |
|
36 |
+ </div> |
|
37 |
+ </div> |
|
38 |
+ </li> |
|
39 |
+ <li class="qa"> |
|
40 |
+ <div class="question-wrap"> |
|
41 |
+ <i class="ico ico-q"></i> |
|
42 |
+ <a href="#!/toggle" class="question">프로젝트를 새로 생성하고 싶어요.</a> |
|
43 |
+ </div> |
|
44 |
+ <div class="answer-wrap"> |
|
45 |
+ <i class="ico ico-a"></i> |
|
46 |
+ <div class="answer" style="width:100%"> |
|
47 |
+ <p>상단의 New Project를 클릭하신후 필요한 정보를 입력하시면 됩니다.</p> |
|
48 |
+ <p> |
|
49 |
+ 공개설정에서 공개를 택하게 되면 해당 프로젝트의 맴버가 아닌 |
|
50 |
+ 사용자들도 해당 프로젝트를 둘러볼수 있게 되며 맴버가 아니라면 |
|
51 |
+ code 저장소를 익명으로 접근하여 소스코드를 받아 갈 수는 있지만 |
|
52 |
+ 소스코드를 수정하지는 못합니다. 공개설정에서 비 공개를 택하게 되면 |
|
53 |
+ 해당 프로젝트의 맴버가 아닌 사용자들은 단지 설명과 |
|
54 |
+ 이름만을 볼수 있습니다. |
|
55 |
+ </p> |
|
56 |
+ <p> |
|
57 |
+ 코드 저장소 방식은 현재 Git과 Subvision을 지원합니다. |
|
58 |
+ Subvision과 Git은 전세계적으로 코드관리 시스템으로 널리 쓰이고 있으며 |
|
59 |
+ 충분한 신뢰성과 성능을 가지고 있습니다. |
|
60 |
+ </p> |
|
61 |
+ <p> |
|
62 |
+ 위의 내용을 다 작성하셨다면 이용약관옆의 물음표를 눌러 약관을 살펴보시고 동의함을 눌러주시면 됩니다. |
|
63 |
+ 마지막으로 save버튼을 누르면 새로운 프로젝트를 생성하실수 있습니다. |
|
64 |
+ </p> |
|
65 |
+ </div> |
|
66 |
+ </div> |
|
67 |
+ </li> |
|
68 |
+ <li class="qa"> |
|
69 |
+ <div class="question-wrap"> |
|
70 |
+ <i class="ico ico-q"></i> |
|
71 |
+ <a href="#!/toggle" class="question">내가 참여하는 프로젝트들은 어디서 볼수 있나요?</a> |
|
72 |
+ </div> |
|
73 |
+ <div class="answer-wrap"> |
|
74 |
+ <i class="ico ico-a"></i> |
|
75 |
+ <div class="answer" style="width:100%"> |
|
76 |
+ <a href="/">메인화면</a> |
|
77 |
+ 우측 하단에 다음과 같이 참여하고 있는 프로젝트의 목록을 볼수 있습니다. 자물쇠가 있는 것은 비공개 |
|
78 |
+ 프로젝트이며 자물쇠가 없는 것은 공개 프로젝트 입니다. 괄호 안은 프로젝트를 만든사람을 나타내며 괄호 앞은 |
|
79 |
+ 프로젝트의 제목을 나타냅니다. |
|
80 |
+ <p><img src="/assets/help/myProjects.png"/></p> |
|
81 |
+ 혹은 자신의 <a href="/info">정보 페이지</a>에서도 확인하실수 있습니다. |
|
82 |
+ </div> |
|
83 |
+ </div> |
|
84 |
+ </li> |
|
85 |
+ <li class="qa"> |
|
86 |
+ <div class="question-wrap"> |
|
87 |
+ <i class="ico ico-q"></i> |
|
88 |
+ <a href="#!/toggle" class="question">프로젝트 탈퇴는 어떻게 하나요.</a> |
|
89 |
+ </div> |
|
90 |
+ <div class="answer-wrap"> |
|
91 |
+ <i class="ico ico-a"></i> |
|
92 |
+ <div class="answer" style="width:100%"> |
|
93 |
+ 혹은 자신의 <a href="/info">정보 페이지</a>에서 참여하고 있는 프로젝트 목록을 볼수있고 |
|
94 |
+ 탈퇴도 할수 있습니다. 자신이 프로젝트의 유일한 관리자라면 해당 프로젝트에서 탈퇴를 할수 없습니다. |
|
95 |
+ </div> |
|
96 |
+ </div> |
|
97 |
+ </li> |
|
98 |
+ <li class="qa"> |
|
99 |
+ <div class="question-wrap"> |
|
100 |
+ <i class="ico ico-q"></i> |
|
101 |
+ <a href="#!/toggle" class="question">게시판에서는 어떠한 것들을 할수 있나요?</a> |
|
102 |
+ </div> |
|
103 |
+ <div class="answer-wrap"> |
|
104 |
+ <i class="ico ico-a"></i> |
|
105 |
+ <div class="answer" style="width:100%"> |
|
106 |
+ 게시판에서는 다음과 같은 기능이 가능합니다. |
|
107 |
+ <ul> |
|
108 |
+ <li>게시물 상세 조회: 사용자는 게시물의 내용을 볼 수 있다.</li> |
|
109 |
+ <li>게시물 댓글 등록: 로그인 유저는 게시물에 댓글을 남길 수 있다.</li> |
|
110 |
+ <li>게시물 댓글 조회: 사용자는 게시물의 댓글을 볼 수 있다.</li> |
|
111 |
+ <li>게시물 댓글 삭제: 로그인 유저는 자신이 남긴 댓글을 삭제할 수 있다.</li> |
|
112 |
+ <li>관리자 게시물 댓글 삭제: 프로젝트 관리자는 댓글을 삭제할 수 있다.</li> |
|
113 |
+ <li>관리자 게시물 수정: 프로젝트 관리자는 게시물을 편집/삭제 할 수 있다.</li> |
|
114 |
+ </ul> |
|
115 |
+ </div> |
|
116 |
+ </div> |
|
117 |
+ </li> |
|
118 |
+ <li class="qa"> |
|
119 |
+ <div class="question-wrap"> |
|
120 |
+ <i class="ico ico-q"></i> |
|
121 |
+ <a href="#!/toggle" class="question">N4의 버그를 발견했어요.</a> |
|
122 |
+ </div> |
|
123 |
+ <div class="answer-wrap"> |
|
124 |
+ <i class="ico ico-a"></i> |
|
125 |
+ <div class="answer" style="width:100%"> |
|
126 |
+ N4는 현재 Open Source로 진행되고 있습니다. 버그를 발견하셨다면 |
|
127 |
+ <a href="https://github.com/nforge/nforge4/issues">N4 이슈트레커에 등록</a>해 주시거나 |
|
128 |
+ 패치를 만들어 보내주시면 됩니다. |
|
129 |
+ </div> |
|
130 |
+ </div> |
|
131 |
+ </li> |
|
132 |
+ </ul> |
|
133 |
+ </div> |
|
134 |
+ <script> |
|
135 |
+ $("a.question").click(function(){ |
|
136 |
+ $(this).parents("li").toggleClass("open"); |
|
137 |
+ }); |
|
138 |
+ </script> |
|
10 | 139 |
} |
11 | 140 |
|
12 |
-@views.html.markdown() |
|
141 |
+ |
|
13 | 142 |
|
+++ public/help/myProjects.png
Binary file is not shown |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?