Fix template limit slider (#239)

This commit is contained in:
formsdev 2023-11-15 14:38:53 +05:30 committed by GitHub
parent 6ffe614a0e
commit e99a0552bb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 14 deletions

View File

@ -13,18 +13,10 @@ class TemplateController extends Controller
{ {
public function index(Request $request) public function index(Request $request)
{ {
$limit = null; $limit = (int)$request->get('limit', 0);
if ($request->offsetExists('limit') && $request->get('limit') > 0) { $onlyMy = (bool)$request->get('onlymy', false);
$limit = (int)$request->get('limit');
}
$onlyMy = false; $templates = Template::when(Auth::check(), function ($query) use ($onlyMy) {
if ($request->offsetExists('onlymy') && $request->get('onlymy')) {
$onlyMy = true;
}
$templates = Template::limit($limit)
->when(Auth::check(), function ($query) use ($onlyMy) {
if ($onlyMy) { if ($onlyMy) {
$query->where('creator_id', Auth::id()); $query->where('creator_id', Auth::id());
} else { } else {
@ -37,6 +29,9 @@ class TemplateController extends Controller
->when(!Auth::check(), function ($query) { ->when(!Auth::check(), function ($query) {
$query->where('publicly_listed', true); $query->where('publicly_listed', true);
}) })
->when($limit > 0, function ($query) use ($limit) {
$query->limit($limit);
})
->orderByDesc('created_at') ->orderByDesc('created_at')
->get(); ->get();

View File

@ -21,7 +21,7 @@
class="w-full inline-flex flex-nowrap overflow-hidden [mask-image:_linear-gradient(to_right,transparent_0,_black_128px,_black_calc(100%-128px),transparent_100%)]" class="w-full inline-flex flex-nowrap overflow-hidden [mask-image:_linear-gradient(to_right,transparent_0,_black_128px,_black_calc(100%-128px),transparent_100%)]"
> >
<ul ref="templates-slider" class="flex justify-center md:justify-start animate-infinite-scroll"> <ul ref="templates-slider" class="flex justify-center md:justify-start animate-infinite-scroll">
<li v-for="(template, i) in templates" :key="template.id" class="mx-4 w-72 h-auto"> <li v-for="(template, i) in sliderTemplates" :key="template.id" class="mx-4 w-72 h-auto">
<single-template :slug="template.slug" /> <single-template :slug="template.slug" />
</li> </li>
</ul> </ul>
@ -42,7 +42,10 @@ export default {
computed: { computed: {
...mapState({ ...mapState({
templates: state => state['open/templates'].content templates: state => state['open/templates'].content
}) }),
sliderTemplates () {
return this.templates.slice(0, 20)
}
}, },
watch: { watch: {
@ -54,7 +57,7 @@ export default {
}, },
mounted() { mounted() {
store.dispatch('open/templates/loadAll', {'limit':10}) store.dispatch('open/templates/loadAll', { limit: 20 })
}, },
methods: { methods: {