Skip to content

Commit 7f3ff10

Browse files
Bring in templates from laddr to overwrite
1 parent 6ee9c29 commit 7f3ff10

File tree

2 files changed

+448
-0
lines changed

2 files changed

+448
-0
lines changed
Lines changed: 334 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,334 @@
1+
{extends designs/site.tpl}
2+
3+
{block title}{$data->Title|escape} — {_ 'Projects'} — {$dwoo.parent}{/block}
4+
5+
{block content}
6+
{$Project = $data}
7+
8+
<div class="page-header">
9+
<div class="btn-toolbar pull-right">
10+
<div class="btn-group">
11+
<a href="/projects/{$Project->Handle}/edit" class="btn btn-info">{_ "Edit Project"}</a>
12+
{if $.User}
13+
<div class="btn-group">
14+
<button class="btn btn-info dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>
15+
<div class="dropdown-menu">
16+
<a class="dropdown-item" href="#add-member" data-toggle="modal">{_ "Add Member"}</a>
17+
<a class="dropdown-item" href="/project-buzz/create?ProjectID={$Project->ID}">{_ "Log Buzz"}</a>
18+
{if $.User && ($Project->hasMember($.User) || $.Session->hasAccountLevel('Staff'))}
19+
<a class="dropdown-item" href="#post-update" data-toggle="modal">{_ "Post Update"}</a>
20+
{/if}
21+
{if $.Session->hasAccountLevel('Staff')}
22+
<a class="dropdown-item" href="#manage-members" data-toggle="modal">{_ "Manage Members"}</a>
23+
{/if}
24+
</div>
25+
</div>
26+
{/if}
27+
{if $.User->hasAccountLevel('Staff')}
28+
<a class="btn btn-danger" href="{$Project->getUrl('/delete')|escape}">Delete Project</a>
29+
{/if}
30+
</div>
31+
</div>
32+
33+
<h1>{$Project->Title|escape}</h1>
34+
</div>
35+
36+
<div class="row">
37+
<div class="col-md-8">
38+
{if $Project->Stage}
39+
<h2>{_ "Stage"}</h2>
40+
{if $Project->Stage == null}
41+
<span class="badge badge-info" data-toggle="tooltip" data-placement="bottom" title="{Laddr\Project::getStageDescription($Project->Stage)}">{$Project->Stage}</span>
42+
{/if}
43+
{if $Project->Stage == Commenting}
44+
<div class="progress">
45+
<div class="progress-bar progress-bar-warning progress-bar-striped" role="progressbar" aria-valuenow="10" aria-valuemin="0" aria-valuemax="100" style="width: 10%;" data-toggle="tooltip" title="{Laddr\Project::getStageDescription(Hibernating)|escape}">
46+
<span class="show">{$Project->Stage}</span>
47+
</div>
48+
</div>
49+
{/if}
50+
{if $Project->Stage == Bootstrapping}
51+
<div class="progress">
52+
<div class="progress-bar progress-bar-warning progress-bar-striped" role="progressbar" aria-valuenow="30" aria-valuemin="0" aria-valuemax="100" style="width: 30%;" data-toggle="tooltip" title="{Laddr\Project::getStageDescription(Bootstrapping)|escape}">
53+
<span class="show">{$Project->Stage}</span>
54+
</div>
55+
</div>
56+
{/if}
57+
{if $Project->Stage == Prototyping}
58+
<div class="progress">
59+
<div class="progress-bar progress-bar-info progress-bar-striped" role="progressbar" aria-valuenow="70" aria-valuemin="0" aria-valuemax="100" style="width: 70%;" data-toggle="tooltip" title="{Laddr\Project::getStageDescription(Prototyping)|escape}">
60+
{$Project->Stage}
61+
</div>
62+
</div>
63+
{/if}
64+
{if $Project->Stage == Testing}
65+
<div class="progress">
66+
<div class="progress-bar progress-bar-info progress-bar-striped" role="progressbar" aria-valuenow="90" aria-valuemin="0" aria-valuemax="100" style="width: 90%;" data-toggle="tooltip" title="{Laddr\Project::getStageDescription(Testing)|escape}">
67+
{$Project->Stage}
68+
</div>
69+
</div>
70+
{/if}
71+
{if $Project->Stage == Maintaining}
72+
<div class="progress">
73+
<div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width: 100%;" data-toggle="tooltip" title="{Laddr\Project::getStageDescription(Maintaining)|escape}">
74+
{$Project->Stage}
75+
</div>
76+
</div>
77+
{/if}
78+
{if $Project->Stage == Drifting}
79+
<div class="progress">
80+
<div class="progress-bar progress-bar-warning progress-bar-striped" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width: 100%;" data-toggle="tooltip" title="{Laddr\Project::getStageDescription(Drifting)|escape}">
81+
<span class="show">{$Project->Stage}</span>
82+
</div>
83+
</div>
84+
{/if}
85+
{if $Project->Stage == Hibernating}
86+
<div class="progress">
87+
<div class="progress-bar progress-bar-danger progress-bar-striped" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width: 100%;" data-toggle="tooltip" title="{Laddr\Project::getStageDescription(Hibernating)|escape}">
88+
{$Project->Stage}
89+
</div>
90+
</div>
91+
{/if}
92+
{/if}
93+
{if $Project->README}
94+
<h2>{_ "README"}</h2>
95+
<div class="content-readme content-markdown well">
96+
{$Project->README|escape|markdown}
97+
</div>
98+
{/if}
99+
100+
{*
101+
<h2>Comments:</h2>
102+
<form method="post" action="/projects/{$Project->Handle}/comment">
103+
<textarea name="Message"></textarea>
104+
<input type="submit" value="Submit">
105+
</form>
106+
{foreach item=Comment from=$Project->$Comments}
107+
<p>
108+
{$Comment->Message}
109+
</p>
110+
{/foreach}
111+
*}
112+
113+
{* if ($.User && $Project->hasMember($.User))}
114+
<form action="/projects/{$Project->Handle}/json/create-request">
115+
<button class="btn btn-success" type="submit">{_ 'Need Help?'}&hellip;</button>
116+
</form>
117+
{/if *}
118+
119+
<h2>
120+
{_ "Project Activity"}
121+
<div class="btn-group pull-right">
122+
{if $.User && $Project->hasMember($.User)}
123+
<a href="#post-update" class="btn btn-primary btn-sm" data-toggle="modal">{_ "Post Update"}</a>
124+
{/if}
125+
<a href="/project-buzz/create?ProjectID={$Project->ID}" class="btn btn-success btn-sm">{_ "Log Buzz"}</a>
126+
</div>
127+
</h2>
128+
129+
{foreach item=Article from=$Project->getActivity()}
130+
{projectActivity $Article headingLevel=h3 showProject=no}
131+
{foreachelse}
132+
<em>{_ "This project doesn't have any activity yet, post an update or log some buzz!"}</em>
133+
{/foreach}
134+
</div>
135+
136+
<!-- PROJECT INFO -->
137+
<div class="col-md-4">
138+
<h2>{_ "Project Info"}</h2>
139+
140+
<!-- PROJECT LINKS -->
141+
<div role="group" aria-label="...">
142+
{if $Project->UsersUrl}
143+
<a class="btn btn-primary btn-block" role="button" href="{$Project->UsersUrl|escape}">
144+
{icon "user"}&nbsp;{_ "Users' Site"}
145+
<div class="small">{$Project->UsersUrl|escape}</div>
146+
</a>
147+
{/if}
148+
{if $Project->DevelopersUrl}
149+
<a class="btn btn-success btn-block" role="button" href="{$Project->DevelopersUrl|escape}">
150+
{icon "cog"}&nbsp;{_ "Developers' Site"}
151+
<div class="small">{$Project->DevelopersUrl|escape}</div>
152+
</a>
153+
{/if}
154+
{if $Project->ChatChannel}
155+
{if Laddr::$chatLinker}
156+
<a class="btn btn-success btn-block" role="button" href="{call_user_func(Laddr::$chatLinker, $Project->ChatChannel)|escape}" target="_blank">
157+
{icon "comment"}&nbsp;{_ "Chat Channel"}
158+
<div class="small">#{$Project->ChatChannel|escape}</div>
159+
</a>
160+
{else}
161+
<p class="text-center">Chat Channel: <strong>#{$Project->ChatChannel|escape}</strong></p>
162+
{/if}
163+
{/if}
164+
</div>
165+
166+
<!-- MEMBERS BLOCK -->
167+
{if $Project->Memberships}
168+
<h3>{_ "Members"}</h3>
169+
170+
<ul class="list-inline people-list">
171+
{foreach item=Membership from=$Project->Memberships}
172+
{$Member = $Membership->Member}
173+
<li class="list-inline-item people-list-person {tif $Project->MaintainerID == $Member->ID ? maintainer}">
174+
<a
175+
href="/members/{$Member->Username}"
176+
class="member-thumbnail"
177+
data-toggle="tooltip"
178+
data-placement="bottom"
179+
title="{personName $Member} &mdash; {projectMemberTitle $Membership}"
180+
>
181+
{if $Project->MaintainerID == $Member->ID}
182+
{avatar $Member size=64}
183+
{else}
184+
{avatar $Member size=48}
185+
{/if}
186+
</a>
187+
</li>
188+
{foreachelse}
189+
<li class="muted list-inline-item">{_ "No registered members"}</li>
190+
{/foreach}
191+
</ul>
192+
<a class="btn btn-success add-person" href="#add-member" data-toggle="modal">+ {_ "Add"}</a>
193+
{/if}
194+
<hr>
195+
196+
<!-- TAGS BLOCK -->
197+
{if $Project->TechTags}
198+
{_ "Tech"}:
199+
<ul>
200+
{foreach item=Tag from=$Project->TechTags}
201+
<li>{contextLink $Tag}</li>
202+
{/foreach}
203+
</ul>
204+
{/if}
205+
206+
{if $Project->TopicTags}
207+
{_ "Topics"}:
208+
<ul>
209+
{foreach item=Tag from=$Project->TopicTags}
210+
<li>{contextLink $Tag}</li>
211+
{/foreach}
212+
</ul>
213+
{/if}
214+
215+
{if $Project->EventTags}
216+
{_ "Events"}:
217+
<ul>
218+
{foreach item=Tag from=$Project->EventTags}
219+
<li>{contextLink $Tag}</li>
220+
{/foreach}
221+
</ul>
222+
{/if}
223+
224+
<hr>
225+
226+
<div>
227+
<a href="{RemoteSystems\Twitter::getTweetIntentURL('Check out $Project->Title!', array(url = 'http://$.server.HTTP_HOST/projects/$Project->Handle'))}"><img src="{versioned_url img/icon-twitter.svg}" alt="{_ 'Spread the word on Twitter!'}" title="{_ 'Spread the word on Twitter!'}"/></a>
228+
</div>
229+
</div>
230+
</div>
231+
232+
{/block}
233+
234+
{block js-bottom}
235+
{$dwoo.parent}
236+
237+
<form id="add-member" class="modal fade form-horizontal" tabindex="-1" role="dialog" aria-labelledby="add-member-title" action="/projects/{$Project->Handle}/add-member" method="POST">
238+
<div class="modal-dialog">
239+
<div class="modal-content">
240+
<div class="modal-header">
241+
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
242+
<h2 id="add-member-title" class="modal-title">{_ "Add project member"}</h2>
243+
</div>
244+
<div class="modal-body">
245+
<div class="form-group">
246+
<label for="inputUsername" class="col-sm-2 control-label">{_ "Username"}</label>
247+
<div class="col-sm-10">
248+
<input type="text" id="inputUsername" class="form-control" name="username" required>
249+
</div>
250+
</div>
251+
<div class="form-group">
252+
<label for="inputRole" class="col-sm-2 control-label">{_ "Role"}</label>
253+
<div class="col-sm-10">
254+
<input type="text" id="inputRole" class="form-control" name="role" placeholder="{_ 'optional'}">
255+
</div>
256+
</div>
257+
</div>
258+
<div class="modal-footer">
259+
<button class="btn btn-primary">{_ "Add member"}</button>
260+
</div>
261+
</div>
262+
</div>
263+
</form>
264+
265+
{if $.User && ($Project->hasMember($.User) || $.Session->hasAccountLevel('Staff'))}
266+
<form id="post-update" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="project-update-title" action="/projects/{$Project->Handle}/updates" method="POST">
267+
<div class="modal-dialog">
268+
<div class="modal-content">
269+
<div class="modal-header">
270+
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
271+
<h2 id="project-update-title" class="modal-title">{_ "Post project update"}</h2>
272+
</div>
273+
<div class="modal-body">
274+
<div class="form-group">
275+
<textarea class="form-control" name="Body" rows="10" required></textarea>
276+
<span class="help-block">{_ "Markdown is supported"}</span>
277+
</div>
278+
</div>
279+
<div class="modal-footer">
280+
<button class="btn btn-primary">{_ "Post Update"}</button>
281+
</div>
282+
</div>
283+
</div>
284+
</form>
285+
{/if}
286+
287+
{if $.Session->hasAccountLevel('Staff')}
288+
<div id="manage-members" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="manage-members-title">
289+
<div class="modal-dialog">
290+
<div class="modal-content">
291+
<div class="modal-header">
292+
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
293+
<h2 id="manage-members-title" class="modal-title">{_ "Manage project members"}</h2>
294+
</div>
295+
<div class="modal-body">
296+
<table class="table table-hover">
297+
<thead>
298+
<tr>
299+
<th>{_ Member}</th>
300+
<th>{_ Role}</th>
301+
<th><span class="sr-only">{_ "Make Member a Maintainer"}</span></th>
302+
<th><span class="sr-only">{_ "Remove Member"}</span></th>
303+
</tr>
304+
</thead>
305+
<tbody>
306+
{foreach item=Membership from=$Project->Memberships}
307+
<tr>
308+
<td>{personLink $Membership->Member}</td>
309+
<td>{projectMemberTitle $Membership}</td>
310+
<td>
311+
{if $Membership->MemberID != $Project->MaintainerID}
312+
<a href="/projects/{$Project->Handle}/change-maintainer?username={$Membership->Member->Username|escape:url}" class="btn btn-sm btn-primary">{_ "Make Maintainer"}</a>
313+
{/if}
314+
</td>
315+
<td>
316+
<a href="/projects/{$Project->Handle}/remove-member?username={$Membership->Member->Username|escape:url}" class="btn btn-sm btn-danger">{_ "Remove"}</a>
317+
</td>
318+
</tr>
319+
{foreachelse}
320+
<tr>
321+
<td class="muted" colspan="4">{_ "None registered"}</td>
322+
</tr>
323+
{/foreach}
324+
</tbody>
325+
</table>
326+
</div>
327+
</div>
328+
</div>
329+
</div>
330+
{/if}
331+
332+
{jsmin "lib/epiceditor.js"}
333+
{jsmin "pages/project.js"}
334+
{/block}

0 commit comments

Comments
 (0)