From 7bf13ffcd605f53e7dd8f6ca266ca494b8828034 Mon Sep 17 00:00:00 2001 From: Thierry Kauffmann Date: Mon, 9 Sep 2019 17:54:37 +0200 Subject: [PATCH 1/3] Added Auth fields Signed-off-by: Thierry Kauffmann --- appinfo/info.xml | 4 ++-- js/admin.js | 15 ++++++++++++++- js/external.js | 30 ++++++++++++++++++++++++++++++ js/templates.js | 28 +++++++++++++++++++++++++++- js/templates/site.handlebars | 9 +++++++++ l10n/en_GB.js | 5 +++++ l10n/en_GB.json | 7 ++++++- l10n/fr.js | 7 ++++++- l10n/fr.json | 7 ++++++- lib/Controller/APIController.php | 16 ++++++++++++---- lib/Controller/SiteController.php | 6 ++++++ lib/SitesManager.php | 20 ++++++++++++++++++-- templates/frame.php | 6 ++++++ 13 files changed, 147 insertions(+), 13 deletions(-) diff --git a/appinfo/info.xml b/appinfo/info.xml index 76754127..f86e4714 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -28,11 +28,11 @@ More information is available in the External sites documentation.]]>https://github.com/nextcloud/external/issues https://github.com/nextcloud/external.git - 3.4.0 + 3.4.0.1 External - + diff --git a/js/admin.js b/js/admin.js index 2f5ea6c5..ead14ad3 100644 --- a/js/admin.js +++ b/js/admin.js @@ -43,7 +43,7 @@ }); Handlebars.registerHelper('getTypes', function() { - return OCA.External.App.availableTypes; + return OCA.External.App.availableTypes;z }); Handlebars.registerHelper('getDevices', function() { @@ -60,6 +60,10 @@ defaults: { name: '', url: '', + loginurl: '', + login: '', + password: '', + headers: '', lang: '', type: 'link', device: '', @@ -96,6 +100,11 @@ _renderSite: function(data) { data.nameTXT = t('external', 'Name'); data.urlTXT = t('external', 'URL'); + data.authTXT = t('external', 'Auth'); + data.loginUrlTXT = t('external', 'LoginUrl'); + data.loginTXT = t('external', 'Login'); + data.passwordTXT = t('external', 'Password'); + data.headersTXT = t('external', 'Headers'); data.languageTXT = t('external', 'Language'); data.groupsTXT = t('external', 'Groups'); data.devicesTXT = t('external', 'Devices'); @@ -225,6 +234,10 @@ data = { name: $site.find('.site-name').val(), url: $site.find('.site-url').val(), + loginurl: $site.find('.site-loginurl').val(), + login: $site.find('.site-login').val(), + password: $site.find('.site-password').val(), + headers: $site.find('.site-headers').val(), lang: $site.find('.site-lang').val(), type: $site.find('.site-type').val(), device: $site.find('.site-device').val(), diff --git a/js/external.js b/js/external.js index ae7bf9af..86afeb80 100644 --- a/js/external.js +++ b/js/external.js @@ -13,4 +13,34 @@ $(document).ready(function () { document.getElementById('ifm').onload = resizeIframe; window.onresize = resizeIframe; + + var credentials = { + "username": $("#external_username").val(), + "password": $("#external_password").val(), + }; + + $.ajax({ + url: $("#external_loginurl").val(), + type: "POST", + dataType: 'json', + /* + contentType: 'application/json', + data: JSON.stringify(credentials), + processData: false, + */ + data: credentials, + xhrFields: { + 'withCredentials': true + }, + headers: JSON.parse($("#external_headers").val()), + success: function(data){ + $("#ifm").attr('src', $("#external_url").val()); + //var win = window.open($("#external_url").val()); + }, + error: function(xhr, text, error) { + alert(text + ":" + error); + } + }); + + }); diff --git a/js/templates.js b/js/templates.js index 72b8b263..bd3d1264 100644 --- a/js/templates.js +++ b/js/templates.js @@ -113,6 +113,32 @@ templates['site'] = template({"1":function(container,depth0,helpers,partials,dat + "\" placeholder=\"" + alias4(((helper = (helper = helpers.urlTXT || (depth0 != null ? depth0.urlTXT : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"urlTXT","hash":{},"data":data}) : helper))) + "\">\n \n\n
\n
\n \n \n \n \n
\n\n
\n +