]> git.mxchange.org Git - friendica.git/blob - view/theme/frio/templates/wall_thread.tpl
Some location changes
[friendica.git] / view / theme / frio / templates / wall_thread.tpl
1
2 {{* This is a little bit hacky. This is needed to have some sort comments container.
3 It would be better if it would be done in friendica core but since core lacks this functionality
4 it is done in the theme
5
6 In short: the piece of code counts the total number of children of the toplevelpost 
7 - this are usaly all posts with thread_level = 2 - and stores it in variable $top_children_total.
8 The first time a children which hits thread_level = 2 and $top_child = 1 opens the div.
9
10 Everytime when a children with top_level = 2 comes up $top_child_nr rises with 1.
11 The div get's closed if thread_level = 2 and the value of $top_child_nr is the same
12 as the value of $top_child_total (this is done at the end of this file)
13 *}}
14 {{if $item.thread_level==1}}
15         {{assign var="top_child_total" count($item.children)}}
16         {{assign var="top_child_nr" 0}}
17 {{/if}}
18 {{if $item.thread_level==2}}
19         {{assign var="top_child_nr" value=$top_child_nr+1 scope=parent}}
20 {{/if}}
21
22 {{if $item.thread_level==2 && $top_child_nr==1}}
23 <div class="comment-container well well-sm"> <!--top-child-begin-->
24 {{/if}}
25 {{* end of hacky part to count childrens *}}
26
27
28 {{if $mode == display}}
29 {{else}}
30 {{if $item.comment_firstcollapsed}}
31         {{*
32         <div align="center" style="margin-top:-34px;">
33                 <div class="hide-comments-outer btn btn-default" onclick="showHideComments({{$item.id}});">
34                         <span id="hide-comments-total-{{$item.id}}" class="hide-comments-total">{{$item.num_comments}}</span>
35                         <span id="hide-comments-{{$item.id}}" class="hide-comments fakelink">{{$item.hide_text}}</span>
36                 </div>
37         </div>
38         <div id="collapsed-comments-{{$item.id}}" class="collapsed-comments" style="display: none;">
39         *}}
40
41         {{if $item.thread_level<3}}
42                 <div class="hide-comments-outer-wrapper">
43                         <div class="hide-comments-outer btn-link" onclick="showHideComments({{$item.id}});">
44                                 <span id="hide-comments-total-{{$item.id}}" 
45                                         class="hide-comments-total">{{$item.num_comments}}</span>
46                                 <span id="hide-comments-{{$item.id}}" 
47                                         class="hide-comments fakelink">{{$item.hide_text}}</span>
48                         </div>
49                         <hr />
50                 </div>
51                 <div id="collapsed-comments-{{$item.id}}" class="collapsed-comments" style="display: none;">
52         {{else}}
53                 <div id="collapsed-comments-{{$item.id}}" class="collapsed-comments" style="display: block;">
54         {{/if}}
55 {{/if}}
56 {{/if}}
57
58 <!-- TODO => Unknow block -->
59 <div class="wall-item-decor" style="display:none;">
60         <span class="icon s22 star {{$item.isstarred}}" id="starred-{{$item.id}}" title="{{$item.star.starred}}">{{$item.star.starred}}</span>
61         {{if $item.lock}}<span class="navicon lock fakelink" onclick="lockview(event,{{$item.id}});" title="{{$item.lock}}"></span><span class="fa fa-lock"></span>{{/if}}
62         <img id="like-rotator-{{$item.id}}" class="like-rotator" src="images/rotator.gif" alt="{{$item.wait}}" title="{{$item.wait}}" style="display: none;" />
63 </div>
64 <!-- ./TODO => Unknow block -->
65
66
67
68 {{* Use a different div container in dependence max thread-level = 7 *}}
69 {{if $item.thread_level<7}}
70 <div class="wall-item-container {{$item.indent}} {{$item.shiny}} {{$item.network}} thread_level_{{$item.thread_level}} {{if $item.thread_level==1}}panel-body{{/if}}" id="item-{{$item.guid}}"><!-- wall-item-container -->
71 {{else}}
72 <div class="wall-item-container {{$item.indent}} {{$item.shiny}} {{$item.network}} thread_level_7" id="item-{{$item.guid}}">
73  {{/if}}
74         <div class="media">
75                 {{* Put addional actions in a top-right dropdown menu *}}
76                 
77                 <ul class="nav nav-pills preferences">
78                         <li><span class="wall-item-network" title="{{$item.app}}">{{$item.network_name}}</span></li>
79
80                         {{if $item.plink || $item.drop.dropping || $item.edpost || $item.ignore || $item.tagger || $item.star || $item.filer}}
81                         <li class="dropdown">
82                                 <a class="dropdown-toggle" data-toggle="dropdown" id="dropdownMenuTools-{{$item.id}}" role="button" aria-haspopup="true" aria-expanded="false"><i class="fa fa-angle-down"></i></a>
83
84                                 <ul class="dropdown-menu pull-right" role="menu" aria-labelledby="dropdownMenuTools-{{$item.id}}">
85                                         {{if $item.plink}}      {{*link to the original source of the item *}}
86                                         <li role="menuitem">
87                                                 <a title="{{$item.plink.title}}" href="{{$item.plink.href}}" class="navicon plink"><i class="fa fa-external-link"></i> {{$item.plink.title}}</a>
88                                         </li>
89                                         {{/if}}
90
91                                         {{if $item.edpost}} {{* edit the posting *}}
92                                         <li role="menuitem">
93                                                 <a onclick="editpost('{{$item.edpost.0}}?mode=none'); return false;" title="{{$item.edpost.1}}" class="navicon pencil"><i class="fa fa-pencil"></i> {{$item.edpost.1}}</a>
94                                         </li>
95                                         {{/if}}
96
97                                         {{if $item.tagger}} {{* tag the post *}}
98                                         <li role="menuitem">
99                                                 <a id="tagger-{{$item.id}}" onclick="itemTag({{$item.id}}); return false;" class="{{$item.tagger.class}}" title="{{$item.tagger.add}}"><i class="fa fa-tag"></i> {{$item.tagger.add}}</a>
100                                         </li>
101                                         {{/if}}
102
103                                         {{if $item.filer}}
104                                         <li role="menuitem">
105                                                 <a id="filer-{{$item.id}}" onclick="itemFiler({{$item.id}}); return false;" class="filer-item filer-icon" title="{{$item.filer}}"><i class="fa fa-folder"></i>&nbsp;{{$item.filer}}</a>
106                                         </li>
107                                         {{/if}}
108
109                                         {{if $item.star}}
110                                         <li role="menuitem">
111                                                 <a id="star-{{$item.id}}" onclick="dostar({{$item.id}}); return false;" class="{{$item.star.classdo}}" title="{{$item.star.do}}"><i class="fa fa-star-o"></i>&nbsp;{{$item.star.do}}</a>
112                                                 <a id="unstar-{{$item.id}}" onclick="dostar({{$item.id}}); return false;" class="{{$item.star.classundo}}" title="{{$item.star.undo}}"><i class="fa fa-star"></i>&nbsp;{{$item.star.undo}}</a>
113                                         </li>
114                                         {{/if}}
115
116                                         {{if $item.ignore || $item.drop.dropping}}
117                                         <li role="separator" class="divider"></li>
118                                         {{/if}}
119
120                                         {{if $item.ignore}}
121                                                 <li role="menuitem">
122                                                         <a id="ignore-{{$item.id}}" onclick="doignore({{$item.id}}); return false;" class="{{$item.ignore.classdo}}" title="{{$item.ignore.do}}"><i class="fa fa-eye-slash"></i> {{$item.ignore.do}}</a>
123                                                 </li>
124                                                 <li role="menuitem">
125                                                         <a id="unignore-{{$item.id}}" onclick="doignore({{$item.id}}); return false;"  class="{{$item.ignore.classundo}}"  title="{{$item.ignore.undo}}"><i class="fa fa-eye"></i> {{$item.ignore.undo}}</a>
126                                                 </li>
127                                         {{/if}}
128
129                                         {{if $item.drop.dropping}}
130                                         <li role="menuitem">
131                                                 <a class="navicon delete" onclick="dropItem('item/drop/{{$item.id}}', '#item-{{$item.guid}}'); return false;" title="{{$item.drop.delete}}"><i class="fa fa-trash"></i> {{$item.drop.delete}}</a>
132                                         </li>
133                                         {{/if}}
134                                 </ul>
135                         </li>
136                         {{/if}}
137                 </ul>
138
139
140                 {{* The avatar picture and the photo-menu *}}
141                 <div class="dropdown pull-left"><!-- Dropdown -->
142                         {{if $item.thread_level==1}}
143                         <div class="hidden-sm hidden-xs contact-photo-wrapper mframe{{if $item.owner_url}} wwfrom{{/if}}">
144                                 <a class="userinfo" id="wall-item-photo-menu-{{$item.id}}" href="{{$item.profile_url}}">
145                                         <div class="contact-photo-image-wrapper">
146                                                 <img src="{{$item.thumb}}" class="contact-photo media-object {{$item.sparkle}}" id="wall-item-photo-{{$item.id}}" alt="{{$item.name}}" />
147                                         </div>
148                                 </a>
149                         </div>
150                         <div class="hidden-lg hidden-md contact-photo-wrapper mframe{{if $item.owner_url}} wwfrom{{/if}}">
151                                 <a class="userinfo" id="wall-item-photo-menu-{{$item.id}}" href="{{$item.profile_url}}">
152                                         <div class="contact-photo-image-wrapper">
153                                                 <img src="{{$item.thumb}}" class="contact-photo-xs media-object {{$item.sparkle}}" id="wall-item-photo-{{$item.id}}" alt="{{$item.name}}" />
154                                         </div>
155                                 </a>
156                         </div>
157
158                         {{* The litle overlay avatar picture if someone is posting directly to a wall or a forum *}}
159                         {{if $item.owner_url}}
160                         <div aria-hidden="true" class="contact-photo-wrapper mframe wwto" id="wall-item-ownerphoto-wrapper-{{$item.id}}" >
161                                 <a href="{{$item.owner_url}}" target="redir" title="{{$item.olinktitle}}" class="contact-photo-link" id="wall-item-ownerphoto-link-{{$item.id}}">
162                                         <img src="{{$item.owner_photo}}" class="contact-photo {{$item.osparkle}}" id="wall-item-ownerphoto-{{$item.id}}" alt="{{$item.owner_name}}" />
163                                 </a>
164                         </div>
165                         {{/if}}
166
167                         {{/if}} {{*End if $item.thread_level==1}}
168
169                         {{* The avatar picture for comments *}}
170                         {{if $item.thread_level!=1}}
171                         <div class="contact-photo-wrapper mframe{{if $item.owner_url}} wwfrom{{/if}}">
172                                 <a class="userinfo" id="wall-item-photo-menu-{{$item.id}}" href="{{$item.profile_url}}">
173                                         <div class="contact-photo-image-wrapper">
174                                                 <img src="{{$item.thumb}}" class="contact-photo-xs media-object {{$item.sparkle}}" id="wall-item-photo-{{$item.id}}" alt="{{$item.name}}" />
175                                         </div>
176                                 </a>
177                         </div>
178                         {{/if}}
179                 </div><!-- ./Dropdown -->
180
181
182
183                 {{* contact info header*}}
184                 {{if $item.thread_level==1}}
185                 <div role="heading " aria-level="{{$item.thread_level}}" class="contact-info hidden-sm hidden-xs media-body"><!-- <= For computer -->
186                         <h4 class="media-heading"><a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link userinfo"><span class="wall-item-name btn-link {{$item.sparkle}}">{{$item.name}}</span></a>
187                         {{if $item.owner_url}}{{$item.via}} <a href="{{$item.owner_url}}" target="redir" title="{{$item.olinktitle}}" class="wall-item-name-link userinfo"><span class="wall-item-name{{$item.osparkle}} btn-link" id="wall-item-ownername-{{$item.id}}">{{$item.owner_name}}</span></a>{{/if}}
188                         {{if $item.lock}}<span class="navicon lock fakelink" onClick="lockview(event,{{$item.id}});" title="{{$item.lock}}" data-toggle="tooltip">&nbsp;<small><i class="fa fa-lock"></i></small></span>{{/if}}
189                         </h4>
190
191                         <div class="additional-info text-muted">
192                                 <div id="wall-item-ago-{{$item.id}}" class="wall-item-ago">
193                                         <small><a href="{{$item.plink.orig}}"><span class="time" title="{{$item.localtime}}" data-toggle="tooltip">{{$item.ago}}</span></a></small>
194                                 </div>
195
196                                 {{if $item.location}}
197                                 <div id="wall-item-location-{{$item.id}}" class="wall-item-location">
198                                         <small><span class="location">({{$item.location}})</span></small>
199                                 </div>
200                                 {{/if}}
201                         </div>
202                         {{* @todo $item.created have to be inserted *}}
203                 </div>
204
205                 {{* contact info header for smartphones *}}
206                 <div role="heading " aria-level="{{$item.thread_level}}" class="contact-info-xs hidden-lg hidden-md"><!-- <= For smartphone (responsive) -->
207                         <h5 class="media-heading">
208                                 <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link userinfo"><span>{{$item.name}}</span></a>
209                                 <p class="text-muted">
210                                         <small><a class="time" href="{{$item.plink.orig}}"><span class="wall-item-ago">{{$item.ago}}</span></a></small>
211                                         {{if $item.location}}
212                                                 <div id="wall-item-location-{{$item.id}}" class="wall-item-location">
213                                                         <small><span class="location">({{$item.location}})</span></small>
214                                                 </div>
215                                         {{/if}}
216                                 </p>
217                         </h5>
218                 </div>
219                 {{/if}} {{* End of if $item.thread_level==1 *}}
220
221                 {{* contact info header for comments *}}
222                 {{if $item.thread_level!=1}}
223                 <div class="media-body">{{*this is the media body for comments - this div must be closed at the end of the file *}}
224                 <div role="heading " aria-level="{{$item.thread_level}}" class="contact-info-comment">
225                         <h5 class="media-heading">
226                                 <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link userinfo"><span class="btn-link">{{$item.name}}</span></a>
227                                 <span class="text-muted">
228                                         <small><span title="{{$item.localtime}}" data-toggle="tooltip">{{$item.ago}}</span> {{if $item.location}}&nbsp;&mdash;&nbsp;({{$item.location}}){{/if}}</small>
229                                 </span>
230                         </h5>
231                 </div>
232                 {{/if}}
233
234                 <div class="clearfix"></div>
235
236                 {{* Insert Line to seperate item header and item content visually *}}
237                 {{if $item.thread_level==1}}<hr />{{/if}}
238
239                 {{* item content *}}
240                 <div itemprop="description" class="wall-item-content {{$item.type}}" id="wall-item-content-{{$item.id}}">
241                         {{* insert some space if it's an top-level post *}}
242                         {{if $item.thread_level==1}}
243                         <div style="height:10px;">&nbsp;</div> <!-- use padding/margin instead-->
244                         {{/if}}
245
246                         {{if $item.title}}
247                         <span class="wall-item-title" id="wall-item-title-{{$item.id}}"><h4 class="media-heading"><a href="{{$item.plink.href}}" class="{{$item.sparkle}}">{{$item.title}}</a></h4><br /></span>
248                         {{/if}}
249
250                         <div class="wall-item-body" id="wall-item-body-{{$item.id}}">{{$item.body}}</div>
251                 </div>
252
253                 <!-- TODO -->
254                 <div class="wall-item-bottom">
255                         <div class="wall-item-links">
256                         </div>
257                         <div class="wall-item-tags">
258                                 {{foreach $item.hashtags as $tag}}
259                                         <span class='tag label btn-info sm'>{{$tag}} <i class="fa fa-bolt"></i></span>
260                                 {{/foreach}}
261
262                                 {{foreach $item.mentions as $tag}}
263                                         <span class='mention label btn-warning sm'>{{$tag}} <i class="fa fa-user"></i></span>
264                                 {{/foreach}}
265
266                                 {{foreach $item.folders as $cat}}
267                                         <span class='folder label btn-danger sm'>{{$cat.name}}</a>{{if $cat.removeurl}} (<a href="{{$cat.removeurl}}" title="{{$remove}}">x</a>) {{/if}} </span>
268                                 {{/foreach}}
269
270                                 {{foreach $item.categories as $cat}}
271                                         <span class='category label btn-success sm'>{{$cat.name}}</a>{{if $cat.removeurl}} (<a href="{{$cat.removeurl}}" title="{{$remove}}">x</a>) {{/if}} </span>
272                                 {{/foreach}}
273                         </div>
274                                 {{if $item.edited}}<div class="itemedited text-muted">{{$item.edited['label']}} (<span title="{{$item.edited['date']}}">{{$item.edited['relative']}}</span>)</div>{{/if}}
275                 </div>
276                 <!-- ./TODO -->
277
278                 <!-- <hr /> -->
279                 <div class="wall-item-actions">
280                         {{* Action buttons to interact with the item (like: like, dislike, share and so on *}}
281                         <div class="wall-item-actions-left pull-left">
282                                 <!--comment this out to try something different {{if $item.threaded}}{{if $item.comment}}
283                                 <div id="button-reply" class="pull-left">
284                                         <span class="btn-link" id="comment-{{$item.id}}" onclick="openClose('item-comments-{{$item.id}}'); commentExpand({{$item.id}});"><i class="fa fa-reply" title="{{$item.switchcomment}}"></i> </span>
285                                 </div>
286                                 {{/if}}{{/if}}-->
287
288                                 {{if $item.threaded}}{{/if}}
289
290                                 {{* Buttons for like and dislike *}}
291                                 {{if $item.vote}}
292                                 <div class="vote-like pull-left">
293                                         {{if $item.vote.like}}
294                                         <a role="button" class="button-likes" id="like-{{$item.id}}" title="{{$item.vote.like.1}}" onclick="dolike({{$item.id}},'like'); return false;"><i class="fa fa-thumbs-up"></i>&nbsp;{{$item.vote.like.1}}</a>
295                                         {{/if}}
296
297                                         {{if $item.vote.dislike}}
298                                         <!-- <span role="presentation" class="seperator">&nbsp;•&nbsp;</span> -->
299                                         <a role="button" class="button-likes" id="dislike-{{$item.id}}" title="{{$item.vote.dislike.1}}" onclick="dolike({{$item.id}},'dislike'); return false;"><i class="fa fa-thumbs-down"></i>&nbsp;{{$item.vote.dislike.1}}</a>
300                                         {{/if}}
301
302                                         <!-- {{if $item.comment}}<span role="presentation" class="seperator">&nbsp;•&nbsp;</span>{{/if}} -->
303                                 </div>
304                                 {{/if}}
305
306                                 {{* Butten to open the comment text field *}}
307                                 {{if $item.comment}}
308                                 <div id="button-reply" class="pull-left">
309                                         <a role="button" class="button-comments" id="comment-{{$item.id}}" title="{{$item.switchcomment}}" {{if $item.thread_level != 1}}onclick="openClose('item-comments-{{$item.id}}'); commentExpand({{$item.id}});" {{else}} onclick="showHide('item-comments-{{$item.id}}'); commentExpand({{$item.id}});"{{/if}}><i class="fa fa-commenting"></i>&nbsp;{{$item.switchcomment}}</a>
310                                 </div>
311                                 {{/if}}
312
313                                 {{* Button for sharing the item *}}
314                                 {{if $item.vote}}
315                                         {{if $item.vote.share}}
316                                         <!-- <span role="presentation" class="seperator">&nbsp;•&nbsp;</span> -->
317                                         <a role="button" class="button-votes" id="share-{{$item.id}}" title="{{$item.vote.share.0}}" onclick="jotShare({{$item.id}}); return false;"><i class="fa fa-retweet"></i>&nbsp;{{$item.vote.share.0}}</a>
318                                         {{/if}}
319                                 {{/if}}
320                         </div>
321
322                         <div class="wall-item-actions-right pull-right">
323                                 {{* Event attendance buttons *}}
324                                 {{if $item.isevent}}
325                                 <div class="vote-event">
326                                         <a role="button" class="button-event" id="attendyes-{{$item.id}}" title="{{$item.attend.0}}" onclick="dolike({{$item.id}},'attendyes'); return false;"><i class="fa fa-check"><span class="sr-only">{{$item.attend.0}}</span></i></a>
327                                         <a role="button" class="button-event" id="attendno-{{$item.id}}" title="{{$item.attend.1}}" onclick="dolike({{$item.id}},'attendno'); return false;"><i class="fa fa-times"><span class="sr-only">{{$item.attend.1}}</span></i></a>
328                                         <a role="button" class="button-event" id="attendmaybe-{{$item.id}}" title="{{$item.attend.2}}" onclick="dolike({{$item.id}},'attendmaybe'); return false;"><i class="fa fa-question"><span class="sr-only">{{$item.attend.2}}</span></i></a>
329                                 </div>
330                                 {{/if}}
331
332                                 <div class="pull-right checkbox">
333                                         {{if $item.drop.pagedrop}}
334                                         <input type="checkbox" title="{{$item.drop.select}}" name="itemselected[]" id="checkbox-{{$item.id}}" class="item-select" value="{{$item.id}}" />
335                                         <label for="checkbox-{{$item.id}}"></label>
336                                 {{/if}}
337                                 </div>
338                         </div>
339                         <div class="clearfix"></div>
340                 </div><!--./wall-item-actions-->
341
342                 <div class="wall-item-links"></div>
343
344                 {{* Display likes, dislike and attendance stats *}}
345                 {{if $item.responses}}
346                         <div class="wall-item-responses">
347                                 {{foreach $item.responses as $verb=>$response}}
348                                 <div class="wall-item-{{$verb}}" id="wall-item-{{$verb}}-{{$item.id}}">{{$response.output}}</div>
349                                 {{/foreach}}
350                         </div>
351                 {{/if}}
352
353                 {{if $item.thread_level!=1}}
354                 </div><!--./media-body from for comments-->
355                 <hr />
356                 {{/if}}
357
358
359                 {{* Insert comment box of threaded children *}}
360                 {{if $item.threaded}}{{if $item.comment}}{{if $item.indent==comment}}
361                 <div class="wall-item-comment-wrapper" id="item-comments-{{$item.id}}" style="display: none;">
362                         {{$item.comment}}
363                 </div>
364                 {{/if}}{{/if}}{{/if}}
365
366
367                 {{foreach $item.children as $child}}
368                         {{*
369                         {{if $child.type == tag}}
370                                 {{include file="wall_item_tag.tpl" item=$child}}
371                         {{else}}
372                                 {{include file="{{$item.template}}" item=$child}}
373                         {{/if}}
374                         *}}
375                         {{include file="{{$item.template}}" item=$child}}
376                 {{/foreach}}
377
378                 {{* Insert the comment box of the top level post at the bottom of the thread.
379                         Display this comment box if there are any comments. If not hide it. In this
380                         case it could be opend with the "comment" button *}}
381                 {{if $item.total_comments_num}}
382                         {{if $item.threaded}}{{if $item.comment}}{{if $item.thread_level==1}}
383                                 <div class="wall-item-comment-wrapper well well-small" id="item-comments-{{$item.id}}">{{$item.comment}}</div>
384                         {{/if}}{{/if}}{{/if}}
385
386                         {{if $item.flatten}}
387                                 <div class="wall-item-comment-wrapper well well-small" id="item-comments-{{$item.id}}">{{$item.comment}}</div>
388                         {{/if}}
389                 {{else}}
390                         {{if $item.threaded}}{{if $item.comment}}{{if $item.thread_level==1}}
391                                 <div class="wall-item-comment-wrapper well well-small" id="item-comments-{{$item.id}}" style="display: none;">{{$item.comment}}</div>
392                         {{/if}}{{/if}}{{/if}}
393
394                         {{if $item.flatten}}
395                                 <div class="wall-item-comment-wrapper well well-small" id="item-comments-{{$item.id}}" style="display: none;">{{$item.comment}}</div>
396                         {{/if}}
397                 {{/if}}
398         </div><!-- /media -->
399 </div><!-- ./panel-body or ./wall-item-container -->
400
401
402 {{if $mode == display}}
403 {{else}}
404 {{if $item.comment_lastcollapsed}}</div>{{/if}}
405 {{/if}}
406
407
408 {{* close the comment-container div if no more thread_level = 2 children are left *}}
409 {{if $item.thread_level==2 && $top_child_nr==$top_child_total}}
410 </div><!--./comment-container-->
411 {{/if}}