240 lines
12 KiB
PHP
Executable File
240 lines
12 KiB
PHP
Executable File
<v-datagrid-export <?php echo e($attributes); ?>>
|
|
<div class="transparent-button hover:bg-gray-200 dark:text-white dark:hover:bg-gray-800">
|
|
<span class="icon-export text-xl text-gray-600"></span>
|
|
|
|
<?php echo app('translator')->get('admin::app.export.export'); ?>
|
|
</div>
|
|
</v-datagrid-export>
|
|
|
|
<?php if (! $__env->hasRenderedOnce('cb1b0382-096e-42fd-ac4c-15d6bb15f81e')): $__env->markAsRenderedOnce('cb1b0382-096e-42fd-ac4c-15d6bb15f81e');
|
|
$__env->startPush('scripts'); ?>
|
|
<script
|
|
type="text/x-template"
|
|
id="v-datagrid-export-template"
|
|
>
|
|
<div>
|
|
<?php if (isset($component)) { $__componentOriginal09768308838b828c7799162f44758281 = $component; } ?>
|
|
<?php if (isset($attributes)) { $__attributesOriginal09768308838b828c7799162f44758281 = $attributes; } ?>
|
|
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'admin::components.modal.index','data' => ['ref' => 'exportModal']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? (array) $attributes->getIterator() : [])); ?>
|
|
<?php $component->withName('admin::modal'); ?>
|
|
<?php if ($component->shouldRender()): ?>
|
|
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
|
|
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag && $constructor = (new ReflectionClass(Illuminate\View\AnonymousComponent::class))->getConstructor()): ?>
|
|
<?php $attributes = $attributes->except(collect($constructor->getParameters())->map->getName()->all()); ?>
|
|
<?php endif; ?>
|
|
<?php $component->withAttributes(['ref' => 'exportModal']); ?>
|
|
<?php $__env->slot('toggle', null, []); ?>
|
|
<button class="transparent-button hover:bg-gray-200 dark:text-white dark:hover:bg-gray-800">
|
|
<span class="icon-export text-xl text-gray-600"></span>
|
|
|
|
<?php echo app('translator')->get('admin::app.export.export'); ?>
|
|
</button>
|
|
<?php $__env->endSlot(); ?>
|
|
|
|
<?php $__env->slot('header', null, []); ?>
|
|
<p class="text-lg font-bold text-gray-800 dark:text-white">
|
|
<?php echo app('translator')->get('admin::app.export.download'); ?>
|
|
</p>
|
|
<?php $__env->endSlot(); ?>
|
|
|
|
<?php $__env->slot('content', null, []); ?>
|
|
<?php if (isset($component)) { $__componentOriginal81b4d293d9113446bb908fc8aef5c8f6 = $component; } ?>
|
|
<?php if (isset($attributes)) { $__attributesOriginal81b4d293d9113446bb908fc8aef5c8f6 = $attributes; } ?>
|
|
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'admin::components.form.index','data' => ['action' => '']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? (array) $attributes->getIterator() : [])); ?>
|
|
<?php $component->withName('admin::form'); ?>
|
|
<?php if ($component->shouldRender()): ?>
|
|
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
|
|
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag && $constructor = (new ReflectionClass(Illuminate\View\AnonymousComponent::class))->getConstructor()): ?>
|
|
<?php $attributes = $attributes->except(collect($constructor->getParameters())->map->getName()->all()); ?>
|
|
<?php endif; ?>
|
|
<?php $component->withAttributes(['action' => '']); ?>
|
|
<?php if (isset($component)) { $__componentOriginal7b1bc76a00ab5e7f1bf2c6429dae85a3 = $component; } ?>
|
|
<?php if (isset($attributes)) { $__attributesOriginal7b1bc76a00ab5e7f1bf2c6429dae85a3 = $attributes; } ?>
|
|
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'admin::components.form.control-group.index','data' => ['class' => '!mb-0']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? (array) $attributes->getIterator() : [])); ?>
|
|
<?php $component->withName('admin::form.control-group'); ?>
|
|
<?php if ($component->shouldRender()): ?>
|
|
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
|
|
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag && $constructor = (new ReflectionClass(Illuminate\View\AnonymousComponent::class))->getConstructor()): ?>
|
|
<?php $attributes = $attributes->except(collect($constructor->getParameters())->map->getName()->all()); ?>
|
|
<?php endif; ?>
|
|
<?php $component->withAttributes(['class' => '!mb-0']); ?>
|
|
<?php if (isset($component)) { $__componentOriginal53af403f6b2179a3039d488b8ab2a267 = $component; } ?>
|
|
<?php if (isset($attributes)) { $__attributesOriginal53af403f6b2179a3039d488b8ab2a267 = $attributes; } ?>
|
|
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'admin::components.form.control-group.control','data' => ['type' => 'select','name' => 'format','vModel' => 'format']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? (array) $attributes->getIterator() : [])); ?>
|
|
<?php $component->withName('admin::form.control-group.control'); ?>
|
|
<?php if ($component->shouldRender()): ?>
|
|
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
|
|
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag && $constructor = (new ReflectionClass(Illuminate\View\AnonymousComponent::class))->getConstructor()): ?>
|
|
<?php $attributes = $attributes->except(collect($constructor->getParameters())->map->getName()->all()); ?>
|
|
<?php endif; ?>
|
|
<?php $component->withAttributes(['type' => 'select','name' => 'format','v-model' => 'format']); ?>
|
|
<option value="csv">
|
|
<?php echo app('translator')->get('admin::app.export.csv'); ?>
|
|
</option>
|
|
|
|
<option value="xls">
|
|
<?php echo app('translator')->get('admin::app.export.xls'); ?>
|
|
</option>
|
|
|
|
<option value="xlsx">
|
|
<?php echo app('translator')->get('admin::app.export.xlsx'); ?>
|
|
</option>
|
|
<?php echo $__env->renderComponent(); ?>
|
|
<?php endif; ?>
|
|
<?php if (isset($__attributesOriginal53af403f6b2179a3039d488b8ab2a267)): ?>
|
|
<?php $attributes = $__attributesOriginal53af403f6b2179a3039d488b8ab2a267; ?>
|
|
<?php unset($__attributesOriginal53af403f6b2179a3039d488b8ab2a267); ?>
|
|
<?php endif; ?>
|
|
<?php if (isset($__componentOriginal53af403f6b2179a3039d488b8ab2a267)): ?>
|
|
<?php $component = $__componentOriginal53af403f6b2179a3039d488b8ab2a267; ?>
|
|
<?php unset($__componentOriginal53af403f6b2179a3039d488b8ab2a267); ?>
|
|
<?php endif; ?>
|
|
<?php echo $__env->renderComponent(); ?>
|
|
<?php endif; ?>
|
|
<?php if (isset($__attributesOriginal7b1bc76a00ab5e7f1bf2c6429dae85a3)): ?>
|
|
<?php $attributes = $__attributesOriginal7b1bc76a00ab5e7f1bf2c6429dae85a3; ?>
|
|
<?php unset($__attributesOriginal7b1bc76a00ab5e7f1bf2c6429dae85a3); ?>
|
|
<?php endif; ?>
|
|
<?php if (isset($__componentOriginal7b1bc76a00ab5e7f1bf2c6429dae85a3)): ?>
|
|
<?php $component = $__componentOriginal7b1bc76a00ab5e7f1bf2c6429dae85a3; ?>
|
|
<?php unset($__componentOriginal7b1bc76a00ab5e7f1bf2c6429dae85a3); ?>
|
|
<?php endif; ?>
|
|
<?php echo $__env->renderComponent(); ?>
|
|
<?php endif; ?>
|
|
<?php if (isset($__attributesOriginal81b4d293d9113446bb908fc8aef5c8f6)): ?>
|
|
<?php $attributes = $__attributesOriginal81b4d293d9113446bb908fc8aef5c8f6; ?>
|
|
<?php unset($__attributesOriginal81b4d293d9113446bb908fc8aef5c8f6); ?>
|
|
<?php endif; ?>
|
|
<?php if (isset($__componentOriginal81b4d293d9113446bb908fc8aef5c8f6)): ?>
|
|
<?php $component = $__componentOriginal81b4d293d9113446bb908fc8aef5c8f6; ?>
|
|
<?php unset($__componentOriginal81b4d293d9113446bb908fc8aef5c8f6); ?>
|
|
<?php endif; ?>
|
|
<?php $__env->endSlot(); ?>
|
|
|
|
<?php $__env->slot('footer', null, []); ?>
|
|
<button
|
|
type="button"
|
|
class="primary-button"
|
|
@click="download"
|
|
>
|
|
<?php echo app('translator')->get('admin::app.export.export'); ?>
|
|
</button>
|
|
<?php $__env->endSlot(); ?>
|
|
<?php echo $__env->renderComponent(); ?>
|
|
<?php endif; ?>
|
|
<?php if (isset($__attributesOriginal09768308838b828c7799162f44758281)): ?>
|
|
<?php $attributes = $__attributesOriginal09768308838b828c7799162f44758281; ?>
|
|
<?php unset($__attributesOriginal09768308838b828c7799162f44758281); ?>
|
|
<?php endif; ?>
|
|
<?php if (isset($__componentOriginal09768308838b828c7799162f44758281)): ?>
|
|
<?php $component = $__componentOriginal09768308838b828c7799162f44758281; ?>
|
|
<?php unset($__componentOriginal09768308838b828c7799162f44758281); ?>
|
|
<?php endif; ?>
|
|
</div>
|
|
</script>
|
|
|
|
<script type="module">
|
|
app.component('v-datagrid-export', {
|
|
template: '#v-datagrid-export-template',
|
|
|
|
props: ['src'],
|
|
|
|
data() {
|
|
return {
|
|
format: 'xls',
|
|
|
|
available: null,
|
|
|
|
applied: null,
|
|
};
|
|
},
|
|
|
|
mounted() {
|
|
this.registerEvents();
|
|
},
|
|
|
|
methods: {
|
|
/**
|
|
* Registers events to update properties and trigger the download process.
|
|
*
|
|
* @returns {void}
|
|
*/
|
|
registerEvents() {
|
|
this.$emitter.on('change-datagrid', this.updateProperties);
|
|
},
|
|
|
|
/**
|
|
* Updates the available and applied properties with new values.
|
|
*
|
|
* @param {object} data - Object containing available and applied properties.
|
|
* @returns {void}
|
|
*/
|
|
updateProperties({ available, applied }) {
|
|
this.available = available;
|
|
|
|
this.applied = applied;
|
|
},
|
|
|
|
/**
|
|
* Initiates the download process for exporting data.
|
|
*
|
|
* @returns {void}
|
|
*/
|
|
download() {
|
|
if (! this.available?.records?.length) {
|
|
this.$emitter.emit('add-flash', { type: 'warning', message: '<?php echo app('translator')->get('admin::app.export.no-records'); ?>' });
|
|
|
|
this.$refs.exportModal.toggle();
|
|
} else {
|
|
let params = {
|
|
export: 1,
|
|
|
|
format: this.format,
|
|
|
|
sort: {},
|
|
|
|
filters: {},
|
|
};
|
|
|
|
if (
|
|
this.applied.sort.column &&
|
|
this.applied.sort.order
|
|
) {
|
|
params.sort = this.applied.sort;
|
|
}
|
|
|
|
this.applied.filters.columns.forEach(column => {
|
|
params.filters[column.index] = column.value;
|
|
});
|
|
|
|
this.$axios
|
|
.get(this.src, {
|
|
params,
|
|
responseType: 'blob',
|
|
})
|
|
.then((response) => {
|
|
const url = window.URL.createObjectURL(new Blob([response.data]));
|
|
|
|
/**
|
|
* Link generation.
|
|
*/
|
|
const link = document.createElement('a');
|
|
link.href = url;
|
|
link.setAttribute('download', `${(Math.random() + 1).toString(36).substring(7)}.${this.format}`);
|
|
|
|
/**
|
|
* Adding a link to a document, clicking on the link, and then removing the link.
|
|
*/
|
|
document.body.appendChild(link);
|
|
link.click();
|
|
document.body.removeChild(link);
|
|
|
|
this.$refs.exportModal.toggle();
|
|
});
|
|
}
|
|
},
|
|
},
|
|
});
|
|
</script>
|
|
<?php $__env->stopPush(); endif; ?>
|
|
<?php /**PATH /var/www/html/packages/Webkul/Admin/src/Resources/views/components/datagrid/export/index.blade.php ENDPATH**/ ?>
|