diff --git a/addons/default/visiosoft/advs-module/resources/css/simple.scss b/addons/default/visiosoft/advs-module/resources/css/simple.scss
new file mode 100644
index 000000000..8109ec8b7
--- /dev/null
+++ b/addons/default/visiosoft/advs-module/resources/css/simple.scss
@@ -0,0 +1,7 @@
+$cats: 10;
+
+@for $i from 2 through $cats {
+ .cat#{$i} {
+ display: none;
+ }
+}
\ No newline at end of file
diff --git a/addons/default/visiosoft/advs-module/resources/js/simple.js b/addons/default/visiosoft/advs-module/resources/js/simple.js
new file mode 100644
index 000000000..513d17e4e
--- /dev/null
+++ b/addons/default/visiosoft/advs-module/resources/js/simple.js
@@ -0,0 +1,44 @@
+function getCats(i, cat = null, change = false) {
+ $(`.cat${i}`).show()
+ $(`#cat${i}`).prop('disabled', true)
+
+ $.get('/class/ajaxCategory', { level: i - 1, cat })
+ .then((response) => {
+ if (response.length) {
+ const currSelect = $(`#cat${i}`)
+ currSelect.html(`
+
+ `)
+ for (let ii = 0; ii < response.length; ii++) {
+ currSelect.append(`
+
+ `)
+ }
+ currSelect.prop('disabled', false)
+
+ if (typeof ad !== 'undefined' && !change) {
+ if (ad[`cat${i}`]) {
+ currSelect.val(ad[`cat${i}`])
+ getCats(i + 1, ad[`cat${i}`])
+ }
+ }
+ } else {
+ $(`.cat${i}`).hide()
+ }
+ })
+}
+getCats(1);
+
+for (let i = 1; i <= 10; i++) {
+ $(`#cat${i}`).on('change', function () {
+ changeCat(i + 1, this.value)
+ })
+}
+
+function changeCat(level, id) {
+ $(`.cat${level - 1}`)
+ .nextUntil('.cat10 +').hide()
+ .find('select').val('')
+
+ getCats(level, id, true)
+}
diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/button.php b/addons/default/visiosoft/advs-module/resources/lang/en/button.php
index 9285e73b8..48657e31a 100644
--- a/addons/default/visiosoft/advs-module/resources/lang/en/button.php
+++ b/addons/default/visiosoft/advs-module/resources/lang/en/button.php
@@ -2,6 +2,7 @@
return [
'new_adv' => 'New classified',
+ 'new_classified' => 'New classified',
'new_category' => 'New Category',
'new_country' => 'New Country',
'new_city' => 'New City',
@@ -39,4 +40,5 @@ return [
'new_option_configuration' => 'New Option configuration',
'create_configurations' => 'Create Configurations',
'replicate' => 'Replicate',
+ 'fast_create' => 'Fast create',
];
diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/field.php b/addons/default/visiosoft/advs-module/resources/lang/en/field.php
index c3ec7489f..43aa321a6 100644
--- a/addons/default/visiosoft/advs-module/resources/lang/en/field.php
+++ b/addons/default/visiosoft/advs-module/resources/lang/en/field.php
@@ -82,6 +82,15 @@ return [
'cat7' => [
'name' => 'Sub Category 6'
],
+ 'cat8' => [
+ 'name' => 'Sub Category 7'
+ ],
+ 'cat9' => [
+ 'name' => 'Sub Category 8'
+ ],
+ 'cat10' => [
+ 'name' => 'Sub Category 9'
+ ],
'currency' => [
'name' => 'Currency'
],
diff --git a/addons/default/visiosoft/advs-module/resources/views/blank.twig b/addons/default/visiosoft/advs-module/resources/views/blank.twig
new file mode 100644
index 000000000..79333af1d
--- /dev/null
+++ b/addons/default/visiosoft/advs-module/resources/views/blank.twig
@@ -0,0 +1,11 @@
+{% extends template.layout ?: "theme::layouts/default" %}
+
+{% block content %}
+ {{ content|raw }}
+
+ {% if form.mode == 'edit' %}
+
+ {% endif %}
+{% endblock %}
diff --git a/addons/default/visiosoft/advs-module/resources/views/form/form.twig b/addons/default/visiosoft/advs-module/resources/views/form/form.twig
deleted file mode 100644
index 49e0d2d7f..000000000
--- a/addons/default/visiosoft/advs-module/resources/views/form/form.twig
+++ /dev/null
@@ -1,29 +0,0 @@
-{{ asset_add("scripts.js", "streams::js/form/form.js") }}
-{{ asset_add("scripts.js", "streams::js/form/keyboard.js") }}
-{{ asset_add("scripts.js", "streams::js/form/translations.js") }}
-
-{% block content %}
-
-
-
- {{ form_open({
- 'class': 'form ' ~ form.options.class ,
- 'enctype': 'multipart/form-data',
- 'url': form.options.url ?: url_full()
- }) }}
-
- {#{% include "streams::form/partials/controls" with {"position": "top"} %}#}
- {% include form.options.get('heading', "streams::form/partials/heading") %}
-
- {% if (form.model.table()== 'advs_advs') %}
- {% include "visiosoft.module.advs::form/partials/layout" %}
- {% else %}
- {% include "streams::form/partials/layout" %}
- {% endif %}
- {% include "streams::form/partials/controls" %}
-
- {{ form_close() }}
-
-
-
-{% endblock %}
diff --git a/addons/default/visiosoft/advs-module/resources/views/form/partials/default.twig b/addons/default/visiosoft/advs-module/resources/views/form/partials/default.twig
deleted file mode 100644
index 7cc1c540b..000000000
--- a/addons/default/visiosoft/advs-module/resources/views/form/partials/default.twig
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
- {% include "streams::form/partials/header" with {"section": section} %}
-
-
-
- {% include "visiosoft.module.advs::form/partials/fields" with {"fields": form.fields.base().pluck('field_name').all()} %}
-
-
-
diff --git a/addons/default/visiosoft/advs-module/resources/views/form/partials/fields.twig b/addons/default/visiosoft/advs-module/resources/views/form/partials/fields.twig
deleted file mode 100644
index cee0dcd1a..000000000
--- a/addons/default/visiosoft/advs-module/resources/views/form/partials/fields.twig
+++ /dev/null
@@ -1,243 +0,0 @@
- {% for field in fields %}
- {% if (field=='category') %}
-
- {% for field in form.fields.translations(field) %}
- {{ field.input | raw }}
- {% endfor %}
-
- {% else %}
- {% if (field == 'price' or field == 'currency' ) %}
- {% if (field == 'price') %}
-
-
- {% for field in form.fields.translations(field) %}
- {{ field.render({'form': form})|raw }}
- {% endfor %}
-
- {% set field = 'currency' %}
-
- {% for field in form.fields.translations(field) %}
- {{ field.render({'form': form})|raw }}
- {% endfor %}
-
-
- {% endif %}
- {% elseif(field=='country' or field=='city' or field=='district' or field=='neighborhood') %}
- {% if(field=='country') %}
-
-
-
- {% for field in form.fields.translations(field) %}
- {{ field.render({'form': form})|raw }}
- {% endfor %}
-
- {% set field = 'city' %}
-
- {% for field in form.fields.translations(field) %}
- {{ field.render({'form': form})|raw }}
- {% endfor %}
-
- {% set field = 'district' %}
-
- {% for field in form.fields.translations(field) %}
- {{ field.render({'form': form})|raw }}
- {% endfor %}
-
- {% set field = 'neighborhood' %}
-
- {% for field in form.fields.translations(field) %}
- {{ field.render({'form': form})|raw }}
- {% endfor %}
-
-
-
-
- {% endif %}
- {% else %}
-
- {% for field in form.fields.translations(field) %}
- {{ field.render({'form': form})|raw }}
- {% endfor %}
-
- {% endif %}
- {% endif%}
- {% if (field=='files') %}
-
- {% for field in form.fields.translations(field) %}
- {{ field.input | raw }}
- {% endfor %}
-
- {% endif %}
- {% endfor %}
-
-
-
\ No newline at end of file
diff --git a/addons/default/visiosoft/advs-module/resources/views/form/partials/layout.twig b/addons/default/visiosoft/advs-module/resources/views/form/partials/layout.twig
deleted file mode 100644
index e6643f08f..000000000
--- a/addons/default/visiosoft/advs-module/resources/views/form/partials/layout.twig
+++ /dev/null
@@ -1,27 +0,0 @@
-{% if form.fields.empty %}
-
-
-
- {{ trans("streams::message.no_fields_available") }}
-
-
-
-{% else %}
-
- {% if not form.sections.empty() %}
-
- {% for section in form.sections %}
- {% if section.view %}
- {% include section.view %}
- {% elseif section.html %}
- {{ section.html|raw }}
- {% else %}
- {% include "streams::form/partials/section" %}
- {% endif %}
- {% endfor %}
-
- {% else %}
- {% include "visiosoft.module.advs::form/partials/default" %}
- {% endif %}
-
-{% endif %}
diff --git a/addons/default/visiosoft/advs-module/resources/views/form/section.twig b/addons/default/visiosoft/advs-module/resources/views/form/section.twig
deleted file mode 100644
index fa4613fab..000000000
--- a/addons/default/visiosoft/advs-module/resources/views/form/section.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-a
-
-{% include "visiosoft.module.advs::form/partials/fields" with {"fields": form.fields.base().where('field_name', '!=', 'price').where('field_name', '!=', 'currency').pluck('field_name').all()} %}
\ No newline at end of file
diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php b/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php
index f64bc6ea7..3998afffa 100644
--- a/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php
+++ b/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php
@@ -395,4 +395,14 @@ class AdvModel extends AdvsAdvsEntryModel implements AdvInterface
{
return $this->status;
}
+
+ public function approve()
+ {
+ $defaultAdPublishTime = setting_value('visiosoft.module.advs::default_published_time');
+ $this->update([
+ 'status' => 'approved',
+ 'finish_at' => date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s') . ' + ' . $defaultAdPublishTime . ' day')),
+ 'publish_at' => date('Y-m-d H:i:s')
+ ]);
+ }
}
diff --git a/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvInterface.php b/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvInterface.php
index c5e4a5940..3c6374283 100644
--- a/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvInterface.php
+++ b/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvInterface.php
@@ -85,4 +85,6 @@ interface AdvInterface extends EntryInterface
public function getProductOptionsValues();
public function getStatus();
+
+ public function approve();
}
diff --git a/addons/default/visiosoft/advs-module/src/Adv/Form/SimpleAdvFormBuilder.php b/addons/default/visiosoft/advs-module/src/Adv/Form/SimpleAdvFormBuilder.php
new file mode 100644
index 000000000..0664685b5
--- /dev/null
+++ b/addons/default/visiosoft/advs-module/src/Adv/Form/SimpleAdvFormBuilder.php
@@ -0,0 +1,46 @@
+ [
+ 'visiosoft.module.advs::js/simple.js'
+ ],
+ 'styles.css' => [
+ 'visiosoft.module.advs::css/simple.scss'
+ ],
+ ];
+
+ protected $options = [
+ 'wrapper_view' => 'visiosoft.module.advs::blank'
+ ];
+
+ protected $buttons = [
+ 'cancel',
+ ];
+}
diff --git a/addons/default/visiosoft/advs-module/src/Adv/Form/SimpleAdvFormHandler.php b/addons/default/visiosoft/advs-module/src/Adv/Form/SimpleAdvFormHandler.php
new file mode 100644
index 000000000..276d47308
--- /dev/null
+++ b/addons/default/visiosoft/advs-module/src/Adv/Form/SimpleAdvFormHandler.php
@@ -0,0 +1,23 @@
+canSave()) {
+ return;
+ }
+
+ $builder->saveForm();
+
+ $ad = $builder->getFormEntry();
+ if ($ad->status !== 'approved') {
+ $ad->approve();
+ }
+
+ $advRepository->cover_image_update($ad);
+ }
+}
diff --git a/addons/default/visiosoft/advs-module/src/AdvsModule.php b/addons/default/visiosoft/advs-module/src/AdvsModule.php
index e67849917..50b814e24 100644
--- a/addons/default/visiosoft/advs-module/src/AdvsModule.php
+++ b/addons/default/visiosoft/advs-module/src/AdvsModule.php
@@ -11,15 +11,12 @@ class AdvsModule extends Module
protected $sections = [
'advs' => [
'buttons' => [
- 'new_adv' => [
+ 'new_classified' => [
'href' => "/advs/create_adv",
],
-// 'new_classified' => [
-// 'href' => "/advs/create_adv",
-// ],
-// 'new_adv' => [
-// 'text' => 'visiosoft.module.advs::button.fast_create'
-// ],
+ 'new_adv' => [
+ 'text' => 'visiosoft.module.advs::button.fast_create'
+ ],
'extend_all' => [
'href' => "/advs/extendAll/admin",
'icon' => 'fa fa-calendar',
diff --git a/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php b/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php
index 2596b8fdc..4ee0bf3ea 100644
--- a/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php
+++ b/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php
@@ -241,10 +241,6 @@ class AdvsModuleServiceProvider extends AddonServiceProvider
ProductoptionsValueRepositoryInterface::class => ProductoptionsValueRepository::class,
];
- protected $overrides = [
- 'streams::form/form' => 'visiosoft.module.advs::form/form',
- ];
-
public function boot(AddonCollection $addonCollection, FileModel $fileModel)
{
$settings_url = [
diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/AdvsController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/AdvsController.php
index 455211cc0..2cf4c14a2 100644
--- a/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/AdvsController.php
+++ b/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/AdvsController.php
@@ -9,6 +9,7 @@ use Illuminate\Http\Request;
use Visiosoft\AdvsModule\Adv\Contract\AdvRepositoryInterface;
use Visiosoft\AdvsModule\Adv\AdvModel;
use Visiosoft\AdvsModule\Adv\Event\ChangedStatusAd;
+use Visiosoft\AdvsModule\Adv\Form\SimpleAdvFormBuilder;
use Visiosoft\AdvsModule\Adv\Table\AdvTableBuilder;
use Anomaly\Streams\Platform\Http\Controller\AdminController;
use Visiosoft\AdvsModule\Option\Contract\OptionRepositoryInterface;
@@ -54,6 +55,16 @@ class AdvsController extends AdminController
return $table->render();
}
+ public function create(SimpleAdvFormBuilder $form)
+ {
+ return $form->render();
+ }
+
+ public function edit(SimpleAdvFormBuilder $form, $id)
+ {
+ return $form->render($id);
+ }
+
public function choose($advId, Request $request, UserRepositoryInterface $users)
{
if (empty($request->all())) {
@@ -67,7 +78,6 @@ class AdvsController extends AdminController
public function actions($id, $type, SettingRepositoryInterface $settings, AdvModel $advModel)
{
-
$ad = $advModel->where('advs_advs.id', '=', $id)->first();
$ad->status = $type;
diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/AjaxController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/AjaxController.php
index 3f82cc8b6..b3ee086e2 100644
--- a/addons/default/visiosoft/advs-module/src/Http/Controller/AjaxController.php
+++ b/addons/default/visiosoft/advs-module/src/Http/Controller/AjaxController.php
@@ -42,7 +42,6 @@ class AjaxController extends PublicController
public function categories(Request $request)
{
- $datas = [];
if ($request->level == 0) {
$datas = CategoryModel::whereNull('parent_category_id')->get();
} else {