]> git.mxchange.org Git - friendica.git/blob - view/templates/head.tpl
Vier: The emoji picker is now integrated
[friendica.git] / view / templates / head.tpl
1 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
2 <base href="{{$baseurl}}/" />
3 <meta name="generator" content="{{$generator}}" />
4 <link rel="stylesheet" href="view/global.css?v={{$smarty.const.FRIENDICA_VERSION}}" type="text/css" media="all" />
5 <link rel="stylesheet" href="view/asset/jquery-colorbox/example5/colorbox.css?v={{$smarty.const.FRIENDICA_VERSION}}" type="text/css" media="screen" />
6 <link rel="stylesheet" href="view/asset/jgrowl/jquery.jgrowl.min.css?v={{$smarty.const.FRIENDICA_VERSION}}" type="text/css" media="screen" />
7 <link rel="stylesheet" href="view/asset/jquery-datetimepicker/build/jquery.datetimepicker.min.css?v={{$smarty.const.FRIENDICA_VERSION}}" type="text/css" media="screen" />
8 <link rel="stylesheet" href="view/asset/perfect-scrollbar/dist/css/perfect-scrollbar.min.css?v={{$smarty.const.FRIENDICA_VERSION}}" type="text/css" media="screen" />
9 <link rel="stylesheet" href="view/js/fancybox/jquery.fancybox.min.css?v={{$smarty.const.FRIENDICA_VERSION}}" type="text/css" media="screen" />
10
11 {{foreach $stylesheets as $stylesheetUrl => $media}}
12         <link rel="stylesheet" href="{{$stylesheetUrl}}" type="text/css" media="{{$media}}" />
13 {{/foreach}}
14
15 <link rel="icon" href="{{$shortcut_icon}}" />
16 <link rel="apple-touch-icon" href="{{$touch_icon}}"/>
17
18 <meta name="apple-mobile-web-app-capable" content="yes" />
19 <link rel="manifest" href="{{$baseurl}}/manifest" />
20 <script>
21 // @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat
22 // Prevents links to switch to Safari in a home screen app - see https://gist.github.com/irae/1042167
23 (function(a,b,c){if(c in b&&b[c]){var d,e=a.location,f=/^(a|html)$/i;a.addEventListener("click",function(a){d=a.target;while(!f.test(d.nodeName))d=d.parentNode;"href"in d&&(chref=d.href).replace("{{$baseurl}}/", "").replace(e.href,"").indexOf("#")&&(!/^[a-z\+\.\-]+:/i.test(chref)||chref.indexOf(e.protocol+"//"+e.host)===0)&&(a.preventDefault(),e.href=d.href)},!1)}})(document,window.navigator,"standalone");
24 // |license-end
25 </script>
26
27 <link rel="search"
28          href="{{$baseurl}}/opensearch"
29          type="application/opensearchdescription+xml"
30          title="Search in Friendica" />
31
32 <!--[if IE]>
33 <script type="text/javascript" src="https://html5shiv.googlecode.com/svn/trunk/html5.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
34 <![endif]-->
35 <script type="text/javascript" src="view/js/modernizr.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
36 <script type="text/javascript" src="view/asset/jquery/dist/jquery.min.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
37 <script type="text/javascript" src="view/js/jquery.textinputs.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
38 <script type="text/javascript" src="view/asset/textcomplete/dist/textcomplete.min.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
39 <script type="text/javascript" src="view/js/autocomplete.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
40 <script type="text/javascript" src="view/asset/jquery-colorbox/jquery.colorbox-min.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
41 <script type="text/javascript" src="view/asset/jgrowl/jquery.jgrowl.min.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
42 <script type="text/javascript" src="view/asset/jquery-datetimepicker/build/jquery.datetimepicker.full.min.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
43 <script type="text/javascript" src="view/asset/perfect-scrollbar/dist/js/perfect-scrollbar.jquery.min.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
44 <script type="text/javascript" src="view/asset/imagesloaded/imagesloaded.pkgd.min.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
45 <script type="text/javascript" src="view/asset/base64/base64.min.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
46 <script type="text/javascript" src="view/asset/dompurify/dist/purify.min.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
47 <script type="text/javascript" src="view/js/fancybox/jquery.fancybox.min.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
48 <script type="text/javascript" src="view/js/fancybox/fancybox.config.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
49 <script type="text/javascript" src="view/js/vanillaEmojiPicker/vanillaEmojiPicker.min.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
50 <script>
51 window.onload = function(){
52         new EmojiPicker({
53                 trigger: [
54                         {
55                                 selector: '.emojis',
56                                 insertInto: ['#comment-edit-text-0', '#profile-jot-text', '.comment-edit-text-full']
57                         }
58                 ],
59                 closeButton: true
60         });
61 };
62 </script>
63 <script type="text/javascript">
64         const updateInterval = {{$update_interval}};
65         const localUser = {{if $local_user}}{{$local_user}}{{else}}false{{/if}};
66 </script>
67 <script type="text/javascript" src="view/js/main.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
68 <script>
69         // Lifted from https://css-tricks.com/snippets/jquery/move-cursor-to-end-of-textarea-or-input/
70     jQuery.fn.putCursorAtEnd = function() {
71         return this.each(function() {
72             // Cache references
73             var $el = $(this),
74                 el = this;
75
76             // Only focus if input isn't already
77             if (!$el.is(":focus")) {
78                 $el.focus();
79             }
80
81             // If this function exists... (IE 9+)
82             if (el.setSelectionRange) {
83                 // Double the length because Opera is inconsistent about whether a carriage return is one character or two.
84                 var len = $el.val().length * 2;
85
86                 // Timeout seems to be required for Blink
87                 setTimeout(function() {
88                     el.setSelectionRange(len, len);
89                 }, 1);
90             } else {
91                 // As a fallback, replace the contents with itself
92                 // Doesn't work in Chrome, but Chrome supports setSelectionRange
93                 $el.val($el.val());
94             }
95
96             // Scroll to the bottom, in case we're in a tall textarea
97             // (Necessary for Firefox and Chrome)
98             this.scrollTop = 999999;
99         });
100     };
101
102         function confirmDelete() { return confirm("{{$delitem}}"); }
103         function commentExpand(id) {
104                 $("#comment-edit-text-" + id).putCursorAtEnd();
105                 $("#comment-edit-text-" + id).addClass("comment-edit-text-full");
106                 $("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
107                 $("#mod-cmnt-wrap-" + id).show();
108                 openMenu("comment-edit-submit-wrapper-" + id);
109                 return true;
110         }
111         function commentOpen(obj,id) {
112                 if (obj.value == "") {
113                         $("#comment-edit-text-" + id).addClass("comment-edit-text-full");
114                         $("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
115                         $("#mod-cmnt-wrap-" + id).show();
116                         openMenu("comment-edit-submit-wrapper-" + id);
117                         return true;
118                 }
119                 return false;
120         }
121         function commentClose(obj,id) {
122                 if (obj.value == "") {
123                         $("#comment-edit-text-" + id).removeClass("comment-edit-text-full");
124                         $("#comment-edit-text-" + id).addClass("comment-edit-text-empty");
125                         $("#mod-cmnt-wrap-" + id).hide();
126                         closeMenu("comment-edit-submit-wrapper-" + id);
127                         return true;
128                 }
129                 return false;
130         }
131
132         function commentInsert(obj,id) {
133                 var tmpStr = $("#comment-edit-text-" + id).val();
134                 if (tmpStr == "") {
135                         $("#comment-edit-text-" + id).addClass("comment-edit-text-full");
136                         $("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
137                         openMenu("comment-edit-submit-wrapper-" + id);
138                 }
139                 var ins = $(obj).html();
140                 ins = ins.replace("&lt;","<");
141                 ins = ins.replace("&gt;",">");
142                 ins = ins.replace("&amp;","&");
143                 ins = ins.replace("&quot;","\"");
144                 $("#comment-edit-text-" + id).val(tmpStr + ins);
145         }
146
147         function showHideCommentBox(id) {
148                 if ($("#comment-edit-form-" + id).is(":visible")) {
149                         $("#comment-edit-form-" + id).hide();
150                 } else {
151                         $("#comment-edit-form-" + id).show();
152                 }
153         }
154 </script>