2 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
3 <base href="{{$baseurl}}/" />
4 <meta name="generator" content="{{$generator}}" />
5 <link rel="stylesheet" href="view/global.css?v={{$smarty.const.FRIENDICA_VERSION}}" type="text/css" media="all" />
6 <link rel="stylesheet" href="view/asset/jquery-colorbox/example5/colorbox.css?v={{$smarty.const.FRIENDICA_VERSION}}" type="text/css" media="screen" />
7 <link rel="stylesheet" href="view/asset/jgrowl/jquery.jgrowl.min.css?v={{$smarty.const.FRIENDICA_VERSION}}" type="text/css" media="screen" />
8 <link rel="stylesheet" href="view/asset/jquery-datetimepicker/build/jquery.datetimepicker.min.css?v={{$smarty.const.FRIENDICA_VERSION}}" type="text/css" media="screen" />
9 <link rel="stylesheet" href="view/asset/perfect-scrollbar/css/perfect-scrollbar.min.css?v={{$smarty.const.FRIENDICA_VERSION}}" type="text/css" media="screen" />
11 {{foreach $stylesheets as $stylesheetUrl}}
12 <link rel="stylesheet" href="{{$stylesheetUrl}}" type="text/css" media="screen" />
15 <link rel="shortcut icon" href="{{$shortcut_icon}}" />
16 <link rel="apple-touch-icon" href="{{$touch_icon}}"/>
18 <meta name="apple-mobile-web-app-capable" content="yes" />
19 <link rel="manifest" href="{{$baseurl}}/manifest" />
21 // @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPLv3-or-later
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");
28 href="{{$baseurl}}/opensearch"
29 type="application/opensearchdescription+xml"
30 title="Search in Friendica" />
33 <script type="text/javascript" src="https://html5shiv.googlecode.com/svn/trunk/html5.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
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/js/jquery-textcomplete/jquery.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/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/main.js?v={{$smarty.const.FRIENDICA_VERSION}}" ></script>
50 // Lifted from https://css-tricks.com/snippets/jquery/move-cursor-to-end-of-textarea-or-input/
51 jQuery.fn.putCursorAtEnd = function() {
52 return this.each(function() {
57 // Only focus if input isn't already
58 if (!$el.is(":focus")) {
62 // If this function exists... (IE 9+)
63 if (el.setSelectionRange) {
64 // Double the length because Opera is inconsistent about whether a carriage return is one character or two.
65 var len = $el.val().length * 2;
67 // Timeout seems to be required for Blink
68 setTimeout(function() {
69 el.setSelectionRange(len, len);
72 // As a fallback, replace the contents with itself
73 // Doesn't work in Chrome, but Chrome supports setSelectionRange
77 // Scroll to the bottom, in case we're in a tall textarea
78 // (Necessary for Firefox and Chrome)
79 this.scrollTop = 999999;
83 var updateInterval = {{$update_interval}};
84 var localUser = {{if $local_user}}{{$local_user}}{{else}}false{{/if}};
86 function confirmDelete() { return confirm("{{$delitem}}"); }
87 function commentExpand(id) {
88 $("#comment-edit-text-" + id).putCursorAtEnd();
89 $("#comment-edit-text-" + id).addClass("comment-edit-text-full");
90 $("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
91 $("#mod-cmnt-wrap-" + id).show();
92 openMenu("comment-edit-submit-wrapper-" + id);
95 function commentOpen(obj,id) {
96 if (obj.value == "") {
97 $("#comment-edit-text-" + id).addClass("comment-edit-text-full");
98 $("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
99 $("#mod-cmnt-wrap-" + id).show();
100 openMenu("comment-edit-submit-wrapper-" + id);
105 function commentClose(obj,id) {
106 if (obj.value == "") {
107 $("#comment-edit-text-" + id).removeClass("comment-edit-text-full");
108 $("#comment-edit-text-" + id).addClass("comment-edit-text-empty");
109 $("#mod-cmnt-wrap-" + id).hide();
110 closeMenu("comment-edit-submit-wrapper-" + id);
117 function commentInsert(obj,id) {
118 var tmpStr = $("#comment-edit-text-" + id).val();
120 $("#comment-edit-text-" + id).addClass("comment-edit-text-full");
121 $("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
122 openMenu("comment-edit-submit-wrapper-" + id);
124 var ins = $(obj).html();
125 ins = ins.replace("<","<");
126 ins = ins.replace(">",">");
127 ins = ins.replace("&","&");
128 ins = ins.replace(""","\"");
129 $("#comment-edit-text-" + id).val(tmpStr + ins);
132 function qCommentInsert(obj,id) {
133 var tmpStr = $("#comment-edit-text-" + id).val();
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);
139 var ins = $(obj).val();
140 ins = ins.replace("<","<");
141 ins = ins.replace(">",">");
142 ins = ins.replace("&","&");
143 ins = ins.replace(""","\"");
144 $("#comment-edit-text-" + id).val(tmpStr + ins);
148 function showHideCommentBox(id) {
149 if ($("#comment-edit-form-" + id).is(":visible")) {
150 $("#comment-edit-form-" + id).hide();
152 $("#comment-edit-form-" + id).show();