]> git.mxchange.org Git - friendica.git/blob - view/theme/frio/templates/wall_thread.tpl
Merge branch 'master' of ../save/merge/frio into frio_merge
[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 dorpdown 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"  href="#" 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 href="#" 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 href="#" 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 href="#" 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 href="#" 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 href="#" 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 href="#" 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 href="#" 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><span class="time" title="{{$item.localtime}}" data-toggle="tooltip">{{$item.ago}}</span></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><span class="wall-item-ago">{{$item.ago}}</span> {{if $item.location}}&nbsp;&mdash;&nbsp;({{$item.location}}){{/if}}</small>
211                                 </p>
212                         </h5>
213                 </div>
214                 {{/if}} {{* End of if $item.thread_level==1 *}}
215
216                 {{* contact info header for comments *}}
217                 {{if $item.thread_level!=1}}
218                 <div class="media-body">{{*this is the media body for comments - this div must be closed at the end of the file *}}
219                 <div role="heading " aria-level="{{$item.thread_level}}" class="contact-info-comment">
220                         <h5 class="media-heading">
221                                 <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link userinfo"><span class="btn-link">{{$item.name}}</span></a>
222                                 <span class="text-muted">
223                                         <small><span title="{{$item.localtime}}" data-toggle="tooltip">{{$item.ago}}</span> {{if $item.location}}&nbsp;&mdash;&nbsp;({{$item.location}}){{/if}}</small>
224                                 </span>
225                         </h5>
226                 </div>
227                 {{/if}}
228
229                 <div class="clearfix"></div>
230
231                 {{* Insert Line to seperate item header and item content visually *}}
232                 {{if $item.thread_level==1}}<hr />{{/if}}
233
234                 {{* item content *}}
235                 <div itemprop="description" class="wall-item-content {{$item.type}}" id="wall-item-content-{{$item.id}}">
236                         {{* insert some space if it's an top-level post *}}
237                         {{if $item.thread_level==1}}
238                         <div style="height:10px;">&nbsp;</div> <!-- use padding/margin instead-->
239                         {{/if}}
240
241                         {{if $item.title}}
242                         <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>
243                         {{/if}}
244
245                         <div class="wall-item-body" id="wall-item-body-{{$item.id}}">{{$item.body}}</div>
246                 </div>
247
248                 <!-- TODO -->
249                 <div class="wall-item-bottom">
250                         <div class="wall-item-links">
251                         </div>
252                         <div class="wall-item-tags">
253                                 {{foreach $item.hashtags as $tag}}
254                                         <span class='tag label btn-info sm'>{{$tag}} <i class="fa fa-bolt"></i></span>
255                                 {{/foreach}}
256
257                                 {{foreach $item.mentions as $tag}}
258                                         <span class='mention label btn-warning sm'>{{$tag}} <i class="fa fa-user"></i></span>
259                                 {{/foreach}}
260
261                                 {{foreach $item.folders as $cat}}
262                                         <span class='folder label btn-danger sm'>{{$cat.name}}</a>{{if $cat.removeurl}} (<a href="{{$cat.removeurl}}" title="{{$remove}}">x</a>) {{/if}} </span>
263                                 {{/foreach}}
264
265                                 {{foreach $item.categories as $cat}}
266                                         <span class='category label btn-success sm'>{{$cat.name}}</a>{{if $cat.removeurl}} (<a href="{{$cat.removeurl}}" title="{{$remove}}">x</a>) {{/if}} </span>
267                                 {{/foreach}}
268                         </div>
269                                 {{if $item.edited}}<div class="itemedited text-muted">{{$item.edited['label']}} (<span title="{{$item.edited['date']}}">{{$item.edited['relative']}}</span>)</div>{{/if}}
270                 </div>
271                 <!-- ./TODO -->
272
273                 <!-- <hr /> -->
274                 <div class="wall-item-actions">
275                         {{* Action buttons to interact with the item (like: like, dislike, share and so on *}}
276                         <div class="wall-item-actions-left pull-left">
277                                 <!--comment this out to try something different {{if $item.threaded}}{{if $item.comment}}
278                                 <div id="button-reply" class="pull-left">
279                                         <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>
280                                 </div>
281                                 {{/if}}{{/if}}-->
282
283                                 {{if $item.threaded}}{{/if}}
284
285                                 {{* Buttons for like and dislike *}}
286                                 {{if $item.vote}}
287                                 <div class="vote-like pull-left">
288                                         <a role="button" href="#" class="button-likes" id="like-{{$item.id}}" title="{{$item.vote.like.0}}" onclick="dolike({{$item.id}},'like'); return false;">{{$item.vote.like.0}}</a>
289
290                                         {{if $item.vote.dislike}}
291                                         <span role="presentation" class="seperator">&nbsp;•&nbsp;</span>
292                                         <a role="button" href="#" class="button-likes" id="dislike-{{$item.id}}" title="{{$item.vote.dislike.0}}" onclick="dolike({{$item.id}},'dislike'); return false;">{{$item.vote.dislike.0}}</a>
293                                         {{/if}}
294
295                                         {{if $item.comment}}<span role="presentation" class="seperator">&nbsp;•&nbsp;</span>{{/if}}
296                                 </div>
297                                 {{/if}}
298
299                                 {{* Butten to open the comment text field *}}
300                                 {{if $item.comment}}
301                                 <div id="button-reply" class="pull-left">
302                                         <a role="button" class="" 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}}>{{$item.switchcomment}} </a>
303                                 </div>
304                                 {{/if}}
305
306                                 {{* Button for sharing the item *}}
307                                 {{if $item.vote}}
308                                         {{if $item.vote.share}}
309                                         <span role="presentation" class="seperator">&nbsp;•&nbsp;</span>
310                                         <a role="button" href="#" class="" 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>
311                                         {{/if}}
312                                 {{/if}}
313                         </div>
314
315                         <div class="wall-item-actions-right pull-right">
316                                 {{* Event attendance buttons *}}
317                                 {{if $item.isevent}}
318                                 <div class="vote-event">
319                                         <a role="button" href="#" 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>
320                                         <a role="button" href="#" 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>
321                                         <a role="button" href="#" 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>
322                                 </div>
323                                 {{/if}}
324
325                                 <div class="pull-right checkbox">
326                                         {{if $item.drop.pagedrop}}
327                                         <input type="checkbox" title="{{$item.drop.select}}" name="itemselected[]" id="checkbox-{{$item.id}}" class="item-select" value="{{$item.id}}" />
328                                         <label for="checkbox-{{$item.id}}"></label>
329                                 {{/if}}
330                                 </div>
331                         </div>
332                         <div class="clearfix"></div>
333                 </div><!--./wall-item-actions-->
334
335                 <div class="wall-item-links"></div>
336
337                 {{* Display likes, dislike and attendance stats *}}
338                 {{if $item.responses}}
339                         <div class="wall-item-responses">
340                                 {{foreach $item.responses as $verb=>$response}}
341                                 <div class="wall-item-{{$verb}}" id="wall-item-{{$verb}}-{{$item.id}}">{{$response.output}}</div>
342                                 {{/foreach}}
343                         </div>
344                 {{/if}}
345
346                 {{if $item.thread_level!=1}}
347                 </div><!--./media-body from for comments-->
348                 <hr />
349                 {{/if}}
350
351
352                 {{* Insert comment box of threaded children *}}
353                 {{if $item.threaded}}{{if $item.comment}}{{if $item.indent==comment}}
354                 <div class="wall-item-comment-wrapper" id="item-comments-{{$item.id}}" style="display: none;">
355                         {{$item.comment}}
356                 </div>
357                 {{/if}}{{/if}}{{/if}}
358
359
360                 {{foreach $item.children as $child}}
361                         {{*
362                         {{if $child.type == tag}}
363                                 {{include file="wall_item_tag.tpl" item=$child}}
364                         {{else}}
365                                 {{include file="{{$item.template}}" item=$child}}
366                         {{/if}}
367                         *}}
368                         {{include file="{{$item.template}}" item=$child}}
369                 {{/foreach}}
370
371                 {{* Insert the comment box of the top level post at the bottom of the thread.
372                         Display this comment box if there are any comments. If not hide it. In this
373                         case it could be opend with the "comment" button *}}
374                 {{if $item.total_comments_num}}
375                         {{if $item.threaded}}{{if $item.comment}}{{if $item.thread_level==1}}
376                                 <div class="wall-item-comment-wrapper well well-small" id="item-comments-{{$item.id}}">{{$item.comment}}</div>
377                         {{/if}}{{/if}}{{/if}}
378
379                         {{if $item.flatten}}
380                                 <div class="wall-item-comment-wrapper well well-small" id="item-comments-{{$item.id}}">{{$item.comment}}</div>
381                         {{/if}}
382                 {{else}}
383                         {{if $item.threaded}}{{if $item.comment}}{{if $item.thread_level==1}}
384                                 <div class="wall-item-comment-wrapper well well-small" id="item-comments-{{$item.id}}" style="display: none;">{{$item.comment}}</div>
385                         {{/if}}{{/if}}{{/if}}
386
387                         {{if $item.flatten}}
388                                 <div class="wall-item-comment-wrapper well well-small" id="item-comments-{{$item.id}}" style="display: none;">{{$item.comment}}</div>
389                         {{/if}}
390                 {{/if}}
391         </div><!-- /media -->
392 </div><!-- ./panel-body or ./wall-item-container -->
393
394
395 {{if $mode == display}}
396 {{else}}
397 {{if $item.comment_lastcollapsed}}</div>{{/if}}
398 {{/if}}
399
400
401 {{* close the comment-container div if no more thread_level = 2 children are left *}}
402 {{if $item.thread_level==2 && $top_child_nr==$top_child_total}}
403 </div><!--./comment-container-->
404 {{/if}}