From 0daa5f853855f0d122748d209a8f288fff6a794e Mon Sep 17 00:00:00 2001 From: Karl Hasselbring <Karl Hasselbring> Date: Wed, 13 Sep 2017 13:57:38 +0200 Subject: [PATCH] Quicktips are now loaded from local quicktip server and created --- resources/assets/js/scriptResultPage.js | 68 ++++++++++++++++++----- resources/views/metager3results.blade.php | 4 +- resources/views/quicktips.blade.php | 11 ---- routes/api.php | 6 -- 4 files changed, 55 insertions(+), 34 deletions(-) delete mode 100644 resources/views/quicktips.blade.php diff --git a/resources/assets/js/scriptResultPage.js b/resources/assets/js/scriptResultPage.js index 38c7b0bc7..6dc517b29 100644 --- a/resources/assets/js/scriptResultPage.js +++ b/resources/assets/js/scriptResultPage.js @@ -9,8 +9,8 @@ $(document).ready(function () { if (document.location.href.indexOf('focus=container') !== -1) { $($('#foki > li#savedFokiTabSelector').get(0)).find('>a').tab('show'); } - - loadQuicktips(); + + loadQuicktips('test', 'de', true); // TODO }); function activateJSOnlyContent () { @@ -536,7 +536,11 @@ function resultSaver (index) { new Results().updateResultPageInterface(); } -function loadQuicktips () { +function loadQuicktips (search, locale, sprueche) { + getQuicktips(search, locale, sprueche, createQuicktips); +} + +function getQuicktips (search, locale, sprueche, loadedHandler) { /* {{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/qt") }} ?q={{ $metager->getQ() }} @@ -545,17 +549,53 @@ function loadQuicktips () { &unfilteredLink={{ base64_encode($metager->getUnfilteredLink()) }} */ - var mainDiv = $('#quicktips'); - mainDiv.attr('status', 'loading'); - mainDiv.append('<h1>Hello World</h1>'); + $.get('http://localhost:8080/quicktips.xml?search=' + search + '&locale=' + locale, function (data, status) { + if (status === 'success') { + var quicktips = $(data).find('entry').map(function () { + return quicktip = { + type: $(this).children('type').text(), + title: $(this).children('title').text(), + summary: $(this).children('summary').text(), + details: $(this).children('details').map(function () { + return { + title: $(this).children('title').text(), + text: $(this).children('text').text(), + url: $(this).children('url').text() + } + }).toArray(), + url: $(this).children('url').text(), + gefVon: $(this).children('gefVon').text() + }; + }).toArray(); + loadedHandler(quicktips); + } else { + console.error('Loading quicktips failed with status ' + status); + } + }, 'xml'); +} - var xhttp = new XMLHttpRequest(); - xhttp.onreadystatechange = function() { - if (this.readyState == 4 && this.status == 200) { - mainDiv.append(this.responseXML); - console.log(this); +function createQuicktips (quicktips) { + var quicktipsDiv = $('#quicktips'); + quicktips.forEach(function (quicktip) { + var detailsElem; + if (quicktip.details.length > 0) { + detailsElem = $('<details><summary><h1>' + quicktip.title + '</h1></summary></details>'); + quicktip.details.forEach(function (detail) { + var detailDiv = $('<div>'); + detailDiv + .append('<h2>' + detail.title + '</h2>') + .append('<p>' + detail.text + '</p>'); + // .append('<a href=' + detail.url + '>TODO</a>') + detailsElem.append(detailDiv); + }); + } else { + detailsElem = $('<h1>' + quicktip.title + '</h1>'); } - }; - xhttp.open("GET", "/quicktips.xml?search=test" /*TODO change*/, true); - xhttp.send(); + var quicktipDiv = $('<div>'); + quicktipDiv + .append(detailsElem) + // .append('<a href=' + quicktip.url + '>TODO</a>') + .append('<span>' + quicktip.gefVon + '</span>'); + quicktipsDiv.append(quicktipDiv); + }); } diff --git a/resources/views/metager3results.blade.php b/resources/views/metager3results.blade.php index a1f66a4e8..f0e66ecd6 100644 --- a/resources/views/metager3results.blade.php +++ b/resources/views/metager3results.blade.php @@ -48,8 +48,6 @@ </nav> </div> @if( $metager->showQuicktips() ) - <div class="hidden-xs col-md-4" id="quicktips"> - <iframe class="col-mod-4 hidden-xs hidden-sm" src="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/qt") }}?q={{ $metager->getQ() }}&sprueche={{ $metager->getSprueche() }}&lang={{ Request::input('lang', 'all') }}&unfilteredLink={{ base64_encode($metager->getUnfilteredLink()) }}"></iframe> - </div> + <div class="col-md-4 hidden-xs hidden-sm" id="quicktips"></div> @endif </div> diff --git a/resources/views/quicktips.blade.php b/resources/views/quicktips.blade.php deleted file mode 100644 index 6ce6562c3..000000000 --- a/resources/views/quicktips.blade.php +++ /dev/null @@ -1,11 +0,0 @@ -<feed xmlns="http://www.w3.org/2005/Atom" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"> - <title>MetaGer quicktip search: @yield{'search'}</title> - <link href="https://www.metager.de/quicktips.xml?search=test"/> - <updated>@yield{'time'}</updated> - <opensearch:totalResults>{{ $quicktips->amount }}</opensearch:totalResults> - @foreach ($quicktips as $quicktip) - <entry> - $quicktip - </entry> - @endforeach -</feed> diff --git a/routes/api.php b/routes/api.php index a430b520f..6b907f390 100644 --- a/routes/api.php +++ b/routes/api.php @@ -16,9 +16,3 @@ use Illuminate\Http\Request; Route::get('/user', function (Request $request) { return $request->user(); })->middleware('auth:api'); - -Route::get('/quicktips', function (Request $request) { - return view('quicktips') - ->with('search', 'TODO') - ->with('time', 'TODO'); -})->middleware('auth:api'); -- GitLab