Add support for the native web share API in share dialog (#4201)
[GitHub/WoltLab/WCF.git] / com.woltlab.wcf / templates / headIncludeJavaScript.tpl
index 634055da280f990758c676cb48ead72409abbfab..fe9b47518ae4dc970cd0316aeeceb5e02fda99fe 100644 (file)
@@ -6,7 +6,7 @@
        var SID_ARG_2ND = '';
        var WCF_PATH = '{@$__wcf->getPath()}';
        var WSC_API_URL = '{@$__wcf->getActivePath()}';
-       var SECURITY_TOKEN = '{@SECURITY_TOKEN}';
+       var SECURITY_TOKEN = '{csrfToken type=raw}';
        var LANGUAGE_ID = {@$__wcf->getLanguage()->languageID};
        var LANGUAGE_USE_INFORMAL_VARIANT = {if LANGUAGE_USE_INFORMAL_VARIANT}true{else}false{/if};
        var TIME_NOW = {@TIME_NOW};
        {/if}
 </script>
 
-{js application='wcf' lib='polyfill' file='promise' bundle='WoltLabSuite.Core' core='true'}
 {js application='wcf' file='require' bundle='WoltLabSuite.Core' core='true' hasTiny=true}
 {js application='wcf' file='require.config' bundle='WoltLabSuite.Core' core='true' hasTiny=true}
 {js application='wcf' file='require.linearExecution' bundle='WoltLabSuite.Core' core='true' hasTiny=true}
 {js application='wcf' file='wcf.globalHelper' bundle='WoltLabSuite.Core' core='true' hasTiny=true}
-{js application='wcf' file='closest' bundle='WoltLabSuite.Core' core='true' hasTiny=true}
+{js application='wcf' file='3rdParty/tslib' bundle='WoltLabSuite.Core' core='true' hasTiny=true}
 <script>
 requirejs.config({
-       baseUrl: '{@$__wcf->getPath()}js', 
+       baseUrl: '{@$__wcf->getPath()}js',
        urlArgs: 't={@LAST_UPDATE_TIME}'
        {hascontent}
        , paths: {
@@ -75,6 +74,7 @@ window.addEventListener('pageshow', function(event) {
                        'wcf.global.button.close': '{jslang}wcf.global.button.close{/jslang}',
                        'wcf.global.button.collapsible': '{jslang}wcf.global.button.collapsible{/jslang}',
                        'wcf.global.button.delete': '{jslang}wcf.global.button.delete{/jslang}',
+                       'wcf.button.delete.confirmMessage': '{jslang __literal=true}wcf.button.delete.confirmMessage{/jslang}',
                        'wcf.global.button.disable': '{jslang}wcf.global.button.disable{/jslang}',
                        'wcf.global.button.disabledI18n': '{jslang}wcf.global.button.disabledI18n{/jslang}',
                        'wcf.global.button.edit': '{jslang}wcf.global.button.edit{/jslang}',
@@ -131,7 +131,30 @@ window.addEventListener('pageshow', function(event) {
                        'wcf.date.datePicker.month': '{jslang}wcf.date.datePicker.month{/jslang}',
                        'wcf.date.datePicker.year': '{jslang}wcf.date.datePicker.year{/jslang}',
                        'wcf.date.datePicker.hour': '{jslang}wcf.date.datePicker.hour{/jslang}',
-                       'wcf.date.datePicker.minute': '{jslang}wcf.date.datePicker.minute{/jslang}'
+                       'wcf.date.datePicker.minute': '{jslang}wcf.date.datePicker.minute{/jslang}',
+                       'wcf.global.form.password.button.hide': '{jslang}wcf.global.form.password.button.hide{/jslang}',
+                       'wcf.global.form.password.button.show': '{jslang}wcf.global.form.password.button.show{/jslang}',
+                       'wcf.message.share': '{jslang}wcf.message.share{/jslang}',
+                       'wcf.message.share.facebook': '{jslang}wcf.message.share.facebook{/jslang}',
+                       'wcf.message.share.twitter': '{jslang}wcf.message.share.twitter{/jslang}',
+                       'wcf.message.share.reddit': '{jslang}wcf.message.share.reddit{/jslang}',
+                       'wcf.message.share.whatsApp': '{jslang}wcf.message.share.whatsApp{/jslang}',
+                       'wcf.message.share.linkedIn': '{jslang}wcf.message.share.linkedIn{/jslang}',
+                       'wcf.message.share.pinterest': '{jslang}wcf.message.share.pinterest{/jslang}',
+                       'wcf.message.share.xing': '{jslang}wcf.message.share.xing{/jslang}',
+                       'wcf.message.share.permalink': '{jslang}wcf.message.share.permalink{/jslang}',
+                       'wcf.message.share.permalink.bbcode': '{jslang}wcf.message.share.permalink.bbcode{/jslang}',
+                       'wcf.message.share.permalink.html': '{jslang}wcf.message.share.permalink.html{/jslang}',
+                       'wcf.message.share.socialMedia': '{jslang}wcf.message.share.socialMedia{/jslang}',
+                       'wcf.message.share.copy': '{jslang}wcf.message.share.copy{/jslang}',
+                       'wcf.message.share.copy.success': '{jslang}wcf.message.share.copy.success{/jslang}',
+                       'wcf.message.share.nativeShare': '{jslang}wcf.message.share.nativeShare{/jslang}',
+                       'wcf.global.button.rss': '{jslang}wcf.global.button.rss{/jslang}',
+                       'wcf.global.rss.copy': '{jslang}wcf.global.rss.copy{/jslang}',
+                       'wcf.global.rss.copy.success': '{jslang}wcf.global.rss.copy.success{/jslang}',
+                       'wcf.global.rss.accessToken.info': '{jslang}wcf.global.rss.accessToken.info{/jslang}',
+                       'wcf.global.rss.withoutAccessToken': '{jslang}wcf.global.rss.withoutAccessToken{/jslang}',
+                       'wcf.global.rss.withAccessToken': '{jslang}wcf.global.rss.withAccessToken{/jslang}'
                        {if MODULE_LIKE}
                                ,'wcf.like.button.like': '{jslang}wcf.like.button.like{/jslang}',
                                'wcf.like.button.dislike': '{jslang}wcf.like.button.dislike{/jslang}',
@@ -144,16 +167,24 @@ window.addEventListener('pageshow', function(event) {
                        {event name='javascriptLanguageImport'}
                });
                
+               User.init(
+                       {@$__wcf->user->userID},
+                       '{@$__wcf->user->username|encodeJS}',
+                       {if $__wcf->user->userID}'{@$__wcf->user->getLink()|encodeJS}'{else}''{/if}
+               );
+               
                BootstrapFrontend.setup({
                        backgroundQueue: {
                                url: '{link controller="BackgroundQueuePerform"}{/link}',
                                force: {if $forceBackgroundQueuePerform|isset}true{else}false{/if}
                        },
                        enableUserPopover: {if $__wcf->getSession()->getPermission('user.profile.canViewUserProfile')}true{else}false{/if},
+                       executeCronjobs: {if $executeCronjobs}true{else}false{/if},
+                       {if ENABLE_SHARE_BUTTONS}
+                           shareButtonProviders: [{implode from="\n"|explode:SHARE_BUTTONS_PROVIDERS item=shareButtonProvider}'{$shareButtonProvider}'{/implode}],
+                       {/if}
                        styleChanger: {if $__wcf->getStyleHandler()->showStyleChanger()}true{else}false{/if}
                });
-               
-               User.init({@$__wcf->user->userID}, '{@$__wcf->user->username|encodeJS}', {if $__wcf->user->userID}'{@$__wcf->user->getLink()|encodeJS}'{else}''{/if});
        });
        
        // prevent jQuery and other libraries from utilizing define()
@@ -163,6 +194,12 @@ window.addEventListener('pageshow', function(event) {
 
 {include file='__devtoolsLanguageChooser'}
 
+{if ENABLE_DEBUG_MODE && ENABLE_DEVELOPER_TOOLS}
+<script data-relocate="true">
+       require(["WoltLabSuite/Core/Devtools/Style/LiveReload"], (LiveReload) => LiveReload.watch());
+</script>
+{/if}
+
 {js application='wcf' lib='jquery' hasTiny=true}
 {js application='wcf' lib='jquery-ui' hasTiny=true}
 {js application='wcf' lib='jquery-ui' file='touchPunch' bundle='WCF.Combined' hasTiny=true}
@@ -208,7 +245,6 @@ window.addEventListener('pageshow', function(event) {
 
 <script data-relocate="true">
        $(function() {
-               WCF.System.PageNavigation.init('.pagination');
                WCF.User.Profile.ActivityPointList.init();
                
                {if MODULE_TROPHY && $__wcf->session->getPermission('user.profile.trophy.canSeeTrophies')}
@@ -219,32 +255,13 @@ window.addEventListener('pageshow', function(event) {
                
                {event name='javascriptInit'}
                
-               {if $executeCronjobs}
-                       new WCF.Action.Proxy({
-                               autoSend: true,
-                               data: {
-                                       className: 'wcf\\data\\cronjob\\CronjobAction',
-                                       actionName: 'executeCronjobs'
-                               },
-                               showLoadingOverlay: false,
-                               failure: function() {
-                                       return false;
-                               }
-                       });
-               {/if}
-               
-               {if $__sessionKeepAlive|isset}
-                       new WCF.System.KeepAlive({@$__sessionKeepAlive});
-                       
-                       {if ENABLE_POLLING && $__wcf->user->userID}
-                               require(['WoltLabSuite/Core/Notification/Handler'], function(NotificationHandler) {
-                                       NotificationHandler.setup({
-                                               enableNotifications: {if $__wcf->useDesktopNotifications()}true{else}false{/if},
-                                               icon: '{$__wcf->getStyleHandler()->getStyle()->getFaviconAppleTouchIcon()}',
-                                               sessionKeepAlive: {@$__sessionKeepAlive}
-                                       });
+               {if ENABLE_POLLING && $__wcf->user->userID}
+                       require(['WoltLabSuite/Core/Notification/Handler'], function(NotificationHandler) {
+                               NotificationHandler.setup({
+                                       enableNotifications: {if $__wcf->useDesktopNotifications()}true{else}false{/if},
+                                       icon: '{$__wcf->getStyleHandler()->getStyle()->getFaviconAppleTouchIcon()}',
                                });
-                       {/if}
+                       });
                {/if}
        });
 </script>