diff options
author | Mario Vavti <mario@mariovavti.com> | 2023-05-03 22:42:52 +0200 |
---|---|---|
committer | Mario Vavti <mario@mariovavti.com> | 2023-05-03 22:42:52 +0200 |
commit | 2d4b35fbc99062d52c6c32cacd158ceda661bb31 (patch) | |
tree | 03a64c452f06e295c5e97a596ec1b80d560141fe | |
parent | 57e2910477e81dfb9d8cf40334c013581d509617 (diff) | |
download | volse-hubzilla-2d4b35fbc99062d52c6c32cacd158ceda661bb31.tar.gz volse-hubzilla-2d4b35fbc99062d52c6c32cacd158ceda661bb31.tar.bz2 volse-hubzilla-2d4b35fbc99062d52c6c32cacd158ceda661bb31.zip |
provide possibility to flag via ajax calls to prevent pageloads
-rw-r--r-- | Zotlabs/Module/Dircensor.php | 7 | ||||
-rw-r--r-- | Zotlabs/Module/Directory.php | 13 | ||||
-rw-r--r-- | view/tpl/directory_header.tpl | 63 | ||||
-rw-r--r-- | view/tpl/direntry.tpl | 6 |
4 files changed, 79 insertions, 10 deletions
diff --git a/Zotlabs/Module/Dircensor.php b/Zotlabs/Module/Dircensor.php index 3f03f7f87..4ce3a81c4 100644 --- a/Zotlabs/Module/Dircensor.php +++ b/Zotlabs/Module/Dircensor.php @@ -64,6 +64,13 @@ class Dircensor extends Controller { info( t('Entry OK') . EOL); } + if (isset($_REQUEST['aj'])) { + json_return_and_die([ + 'success' => 1, + 'flag' => $flag + ]); + } + goaway(z_root() . '/directory'); } diff --git a/Zotlabs/Module/Directory.php b/Zotlabs/Module/Directory.php index c463c544b..34d55a8fe 100644 --- a/Zotlabs/Module/Directory.php +++ b/Zotlabs/Module/Directory.php @@ -355,12 +355,12 @@ class Directory extends Controller { 'gender' => $gender, 'pdesc' => $pdesc, 'pdesc_label' => t('Description:'), - 'censor' => (($directory_admin && intval($rr['censored']) < 2) ? 'dircensor/' . $rr['hash'] . '?severity=' . ((intval($rr['censored']) > 0) ? 0 : 1) : ''), - 'censor_label' => ((intval($rr['censored']) === 1) ? t('Safe') : t('Unsafe')), - 'censor_class' => ((intval($rr['censored']) === 1) ? '' : '-outline'), + 'censor' => (($directory_admin) ? 'dircensor/' . $rr['hash'] . '?severity=' . ((intval($rr['censored']) > 0) ? 0 : 1) : ''), + 'censor_label' => t('Unsafe'), + 'censor_class' => ((intval($rr['censored']) === 1) ? 'active' : ''), 'censor_2' => (($directory_admin) ? 'dircensor/' . $rr['hash'] . '?severity=' . ((intval($rr['censored']) > 1) ? 0 : 2) : ''), - 'censor_2_label' => ((intval($rr['censored']) > 1) ? t('Show') : t('Hide')), - 'censor_2_class' => ((intval($rr['censored']) > 1) ? '' : '-outline'), + 'censor_2_label' => t('Hidden'), + 'censor_2_class' => ((intval($rr['censored']) > 1) ? 'active' : ''), 'marital' => $marital, 'homepage' => $homepage, 'homepageurl' => (($safe_mode > 0) ? $homepageurl : linkify($homepageurl)), @@ -444,7 +444,8 @@ class Directory extends Controller { '$reverse' => t('Reverse Alphabetic'), '$date' => t('Newest to Oldest'), '$reversedate' => t('Oldest to Newest'), - '$suggest' => $suggest ? '&suggest=1' : '' + '$suggest' => $suggest ? '&suggest=1' : '', + '$directory_admin' => $directory_admin )); diff --git a/view/tpl/directory_header.tpl b/view/tpl/directory_header.tpl index f5ce7ce0a..a261762ac 100644 --- a/view/tpl/directory_header.tpl +++ b/view/tpl/directory_header.tpl @@ -19,7 +19,68 @@ {{** make sure this element is at the bottom - we rely on that in endless scroll **}} <div id="page-end" class="float-start w-100"></div> </div> -<script>$(document).ready(function() { loadingPage = false;});</script> <div id="page-spinner" class="spinner-wrapper"> <div class="spinner m"></div> </div> +<script> + $(document).ready(function() { + loadingPage = false; + {{if $directory_admin}} + $(document).on('click', '.directory-censor', function (e) { + e.preventDefault(); + + let that = this; + let url; + let path; + let severity; + let parent = this.closest('.directory-actions'); + let el; + + url = new URL(that.href) + + severity = url.searchParams.get('severity'); + path = url.pathname; + + console.log(url.searchParams.get('severity')); + + $.get( + path, + { + aj: 1, + severity : severity + }, + function(data) { + console.log(data) + if (data.success) { + + if (that.classList.contains('directory-censor-unsafe')) { + severity = data.flag ? 0 : 1; + el = parent.getElementsByClassName('directory-censor-hide')[0]; + if (el.classList.contains('active')) { + el.classList.toggle('active'); + url.searchParams.set('severity', 2); + el.href = url.toString(); + } + } + + if (that.classList.contains('directory-censor-hide')) { + severity = data.flag ? 0 : 2; + el = parent.getElementsByClassName('directory-censor-unsafe')[0]; + if (el.classList.contains('active')) { + el.classList.toggle('active'); + url.searchParams.set('severity', 1); + el.href = url.toString(); + } + } + + url.searchParams.set('severity', severity); + that.href = url.toString(); + that.classList.toggle('active'); + + } + } + ); + }); + {{/if}} + }); +</script> diff --git a/view/tpl/direntry.tpl b/view/tpl/direntry.tpl index 50714c072..16df987f4 100644 --- a/view/tpl/direntry.tpl +++ b/view/tpl/direntry.tpl @@ -1,11 +1,11 @@ <div class="directory-item{{if $entry.safe}} safe{{/if}}" id="directory-item-{{$entry.hash}}" > <div class="section-subtitle-wrapper clearfix"> - <div class="float-end"> + <div class="directory-actions float-end"> {{if $entry.censor_2}} - <a class="directory-censor btn btn{{$entry.censor_2_class}}-danger btn-sm" href="{{$entry.censor_2}}"> {{$entry.censor_2_label}}</a> + <a class="directory-censor directory-censor-hide btn btn-outline-danger btn-sm {{$entry.censor_2_class}}" href="{{$entry.censor_2}}"> {{$entry.censor_2_label}}</a> {{/if}} {{if $entry.censor}} - <a class="directory-censor btn btn{{$entry.censor_class}}-warning btn-sm" href="{{$entry.censor}}"> {{$entry.censor_label}}</a> + <a class="directory-censor directory-censor-unsafe btn btn-outline-warning btn-sm {{$entry.censor_class}}" href="{{$entry.censor}}"> {{$entry.censor_label}}</a> {{/if}} {{if $entry.ignlink}} <a class="directory-ignore btn btn-info btn-sm" href="{{$entry.ignlink}}"> {{$entry.ignore_label}}</a> |