provide possibility to flag via ajax calls to prevent pageloads

This commit is contained in:
Mario Vavti
2023-05-03 22:42:52 +02:00
parent 57e2910477
commit 2d4b35fbc9
4 changed files with 79 additions and 10 deletions

View File

@@ -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');
}

View File

@@ -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
));

View File

@@ -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>

View File

@@ -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>