diff --git a/addons/default/visiosoft/advs-module/migrations/2020_06_05_120415_visiosoft.module.advs__create_options_stream.php b/addons/default/visiosoft/advs-module/migrations/2020_06_05_120415_visiosoft.module.advs__create_options_stream.php new file mode 100644 index 000000000..f6ca0b1fd --- /dev/null +++ b/addons/default/visiosoft/advs-module/migrations/2020_06_05_120415_visiosoft.module.advs__create_options_stream.php @@ -0,0 +1,57 @@ + 'options', + 'title_column' => 'name', + 'translatable' => false, + 'versionable' => false, + 'trashable' => false, + 'searchable' => false, + 'sortable' => false, + ]; + + /** + * This field will be added. + */ + protected $fields = [ + "adv" => [ + "type" => "anomaly.field_type.relationship", + "config" => [ + "related" => \Visiosoft\AdvsModule\Adv\AdvModel::class, + ] + ] + ]; + + /** + * The stream assignments. + * + * @var array + */ + protected $assignments = [ + 'name' => [ + 'required' => true, + ], + 'adv' => [ + 'required' => true, + ], + ]; + +} diff --git a/addons/default/visiosoft/advs-module/resources/config/permissions.php b/addons/default/visiosoft/advs-module/resources/config/permissions.php index 33de065db..eae0b67cd 100644 --- a/addons/default/visiosoft/advs-module/resources/config/permissions.php +++ b/addons/default/visiosoft/advs-module/resources/config/permissions.php @@ -16,4 +16,9 @@ return [ 'write', 'delete', ], + 'options' => [ + 'read', + 'write', + 'delete', + ], ]; diff --git a/addons/default/visiosoft/advs-module/resources/css/detail.css b/addons/default/visiosoft/advs-module/resources/css/detail.css index d5f851b84..ff8130448 100644 --- a/addons/default/visiosoft/advs-module/resources/css/detail.css +++ b/addons/default/visiosoft/advs-module/resources/css/detail.css @@ -1,5 +1,5 @@ .ad-detail-tabs .nav-link.active { - background-color: #FFC106 !important; + background-color: #FFC106; border-color: #ffc107 #ffc107 #ffc107; } diff --git a/addons/default/visiosoft/advs-module/resources/css/dropleft-edit.css b/addons/default/visiosoft/advs-module/resources/css/dropleft-edit.css index db1b38e2a..db42e2d08 100644 --- a/addons/default/visiosoft/advs-module/resources/css/dropleft-edit.css +++ b/addons/default/visiosoft/advs-module/resources/css/dropleft-edit.css @@ -1,6 +1,7 @@ .dropleft-edit { right: 0; top: 40%; + z-index: 5; } .dropleft-edit button { transform: rotate(-90deg) translate(0, -100%); diff --git a/addons/default/visiosoft/advs-module/resources/css/list.css b/addons/default/visiosoft/advs-module/resources/css/list.css index a62c171b2..eaec9296b 100644 --- a/addons/default/visiosoft/advs-module/resources/css/list.css +++ b/addons/default/visiosoft/advs-module/resources/css/list.css @@ -15,8 +15,10 @@ max-height: 100px; } -.list-classified .bg-light { - height: 100px; +@media only screen and (min-width: 768px) { + .list-classified .bg-light { + height: 100px; + } } .upper-list-banner { @@ -47,8 +49,6 @@ /* Mobile filter */ .mobile-list-action { - margin-left: -30px; - margin-right: -30px; border: 1px solid #dee2e68a; } @@ -76,6 +76,10 @@ background: #c9c9c9; } +.mobile-list-action div:last-child a:after { + content: none; +} + .mobile-list-action i { font-size: 19px; color: #a1a1a1; @@ -105,4 +109,18 @@ #filterModal { overflow-y: auto; +} + +.result-text { + font-size: 13px; + margin: 0 -15px; +} + +.result-text span:first-child { + font-weight: 500; +} + +.result-text span:last-child { + color: #8f0100; + font-weight: 500; } \ No newline at end of file diff --git a/addons/default/visiosoft/advs-module/resources/js/filter_modal.js b/addons/default/visiosoft/advs-module/resources/js/filter_modal.js index dfecaadf1..19d78bae4 100644 --- a/addons/default/visiosoft/advs-module/resources/js/filter_modal.js +++ b/addons/default/visiosoft/advs-module/resources/js/filter_modal.js @@ -141,4 +141,13 @@ $('.set_category').on('click', function () { $('#filterModal').find('form').attr("action", '/advs/list'); $('#filterModal').modal('toggle'); -}) +}); + +// Move filter on small screen +$(window).on("load resize", function () { + const width = (window.innerWidth > 0) ? window.innerWidth : screen.width; + if (width <= 575) { + const detach = $('#listFilterForm').detach(); + $('#modalListFilterForm').append(detach); + } +}); diff --git a/addons/default/visiosoft/advs-module/resources/js/list.js b/addons/default/visiosoft/advs-module/resources/js/list.js index 19a4b670d..ede10715c 100644 --- a/addons/default/visiosoft/advs-module/resources/js/list.js +++ b/addons/default/visiosoft/advs-module/resources/js/list.js @@ -173,5 +173,17 @@ $('.ad-info-right-bar-video').tooltip({ html: true }); - - +$("#listFilterForm").submit(function(e) { + const inputs = $('#listFilterForm :input'); + [...inputs].forEach((input) => { + if (input.type === 'checkbox' || input.type === 'radio') { + if ($(input).prop("checked") == false) { + $(input).prop('disabled', true); + } + } else { + if ($(input).val() == "" || $(input).find(':selected').val() == "") { + $(input).prop('disabled', true); + } + } + }); +}); \ No newline at end of file diff --git a/addons/default/visiosoft/advs-module/resources/js/new-create.js b/addons/default/visiosoft/advs-module/resources/js/new-create.js index c75f3693a..d19fcca5a 100644 --- a/addons/default/visiosoft/advs-module/resources/js/new-create.js +++ b/addons/default/visiosoft/advs-module/resources/js/new-create.js @@ -215,5 +215,44 @@ $(document).ready(function () { price = parseInt(price.replace(/\./g, '')); let decimal = parseInt($(".priceDecimalField").val()); $('.priceHidden').find('input').val(parseFloat(price + "." + decimal)); + }); + + // Add dynamic option creation + $(".options-tags").select2({ + tags: true, + tokenSeparators: [','] + }); + + let deletedOptions = []; + $('#selectOptions').on('select2:unselect', function (e) { + if (e.params.data.element.id) { + const id = e.params.data.element.id.substr(9); + deletedOptions.push(id); + } else { + let index = newOptions.indexOf(e.params.data.text); + if (index > -1) { + newOptions.splice(index, 1); + } + } + }); + + let newOptions = []; + $('#selectOptions').on('select2:select', function (e) { + if (e.params.data.element) { + let index = deletedOptions.indexOf(e.params.data.element.id.substr(9)); + if (index > -1) { + deletedOptions.splice(index, 1); + } + } else { + newOptions.push(e.params.data.text) + } + }); + + $('#createEditAdvForm').submit(function () { + $(this).append(``); + + $(this).append(``); + + return 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 75eac762f..c84a77408 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/button.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/button.php @@ -31,4 +31,5 @@ return [ 'update_category' => [ 'name' => 'Update Category' ], + 'new_option' => 'New Option', ]; 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 112ea9eac..cdb991641 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/field.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/field.php @@ -263,6 +263,8 @@ return [ "no_location" => "No location is selected.", "continue" => 'Continue', "gallery" => 'Gallery', + "ads" => 'Ads', + "were_found" => 'were found.', // Pending screen 'pending_message_1' => 'The Ad is in the Approval Process', diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/permission.php b/addons/default/visiosoft/advs-module/resources/lang/en/permission.php index 762eea4c9..a75575d96 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/permission.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/permission.php @@ -49,4 +49,12 @@ return [ 'delete' => 'Can delete cf values?', ], ], + 'options' => [ + 'name' => 'Options', + 'option' => [ + 'read' => 'Can read options?', + 'write' => 'Can create/edit options?', + 'delete' => 'Can delete options?', + ], + ], ]; diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/section.php b/addons/default/visiosoft/advs-module/resources/lang/en/section.php index 1a3eeb889..d59a01842 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/section.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/section.php @@ -40,4 +40,7 @@ return [ 'general' => 'General', 'ads' => 'Ads', 'user' => 'User', + 'options' => [ + 'title' => 'Options', + ], ]; diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/stream.php b/addons/default/visiosoft/advs-module/resources/lang/en/stream.php index cd23e3479..29e720836 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/stream.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/stream.php @@ -19,4 +19,7 @@ return [ 'cf_values' => [ 'name' => 'Cf values', ], + 'options' => [ + 'name' => 'Options', + ], ]; diff --git a/addons/default/visiosoft/advs-module/resources/lang/sq/field.php b/addons/default/visiosoft/advs-module/resources/lang/sq/field.php index fd7d6ff0b..86da72d9b 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/sq/field.php +++ b/addons/default/visiosoft/advs-module/resources/lang/sq/field.php @@ -127,7 +127,7 @@ return [ 'sort' => 'Tipi', 'sort_by' => 'Rendit Sipas', 'pick_option' => 'Zgjidh një mundësi', - 'pick_ordering' => 'Merr Porosin', + 'pick_ordering' => 'Renditje', 'price_high' => 'Cmimi i larte deri tek i uleti', 'price_low' => 'Cmimi i ulet deri tek i larte', 'newest' => 'Më të Rejat', diff --git a/addons/default/visiosoft/advs-module/resources/views/ad-detail/partials/detail.twig b/addons/default/visiosoft/advs-module/resources/views/ad-detail/partials/detail.twig index e5c1cbac5..5a5c3e1b7 100644 --- a/addons/default/visiosoft/advs-module/resources/views/ad-detail/partials/detail.twig +++ b/addons/default/visiosoft/advs-module/resources/views/ad-detail/partials/detail.twig @@ -34,7 +34,7 @@ - {{ addBlock('ad-detail/details',{'adv':adv})|raw }} + {{ addBlock('ad-detail/details',{'adv':adv, 'options':options})|raw }} {{ addBlock('ad-detail/widget-details',{'adv':adv})|raw }} diff --git a/addons/default/visiosoft/advs-module/resources/views/list/list.twig b/addons/default/visiosoft/advs-module/resources/views/list/list.twig index 434637fdf..21792d979 100644 --- a/addons/default/visiosoft/advs-module/resources/views/list/list.twig +++ b/addons/default/visiosoft/advs-module/resources/views/list/list.twig @@ -1,5 +1,9 @@ {% extends layout('list') %} +{% block styles %} + {{ asset_style("visiosoft.module.advs::css/list.css") }} +{% endblock %} + {% block content %} @@ -15,7 +19,15 @@ - + {% if catText %} + + + "{{ catText }}" + {{ advs.total }} {{ trans('visiosoft.module.advs::field.ads')|lower }} + {{ trans('visiosoft.module.advs::field.were_found') }} + + + {% endif %} @@ -61,7 +73,6 @@ {{ asset_add("scripts.js", "visiosoft.module.advs::js/list.js") }} - {{ asset_add("styles.css", "visiosoft.module.advs::css/list.css") }} {% endblock %} {% block customjs %} diff --git a/addons/default/visiosoft/advs-module/resources/views/list/partials/filter-modal.twig b/addons/default/visiosoft/advs-module/resources/views/list/partials/filter-modal.twig index 5cc13770d..8ba54e038 100644 --- a/addons/default/visiosoft/advs-module/resources/views/list/partials/filter-modal.twig +++ b/addons/default/visiosoft/advs-module/resources/views/list/partials/filter-modal.twig @@ -6,14 +6,13 @@ - {{ trans('visiosoft.module.advs::field.filter') }} - + {{ trans('visiosoft.module.advs::field.filter') }} × - + {{ trans('visiosoft.module.advs::button.categories') }} @@ -36,7 +35,7 @@ {% endif %} - {% include "visiosoft.module.advs::list/partials/list-filter" %} + diff --git a/addons/default/visiosoft/advs-module/resources/views/list/partials/list-filter.twig b/addons/default/visiosoft/advs-module/resources/views/list/partials/list-filter.twig index 7e1b0e988..214fc5575 100644 --- a/addons/default/visiosoft/advs-module/resources/views/list/partials/list-filter.twig +++ b/addons/default/visiosoft/advs-module/resources/views/list/partials/list-filter.twig @@ -1,5 +1,5 @@ {% set formHtml %} - + {% endset %} {% set catSlug = null %} {% set citySlug = null %} @@ -12,7 +12,7 @@ {% endif %} {% if catSlug %} {% set formHtml %} - + {% endset %} {% endif %} {{ formHtml }} diff --git a/addons/default/visiosoft/advs-module/resources/views/list/table.twig b/addons/default/visiosoft/advs-module/resources/views/list/table.twig index 21a1387bc..1fc4372a6 100644 --- a/addons/default/visiosoft/advs-module/resources/views/list/table.twig +++ b/addons/default/visiosoft/advs-module/resources/views/list/table.twig @@ -2,7 +2,7 @@ {% block listContent %} - + {% set form = form('advs', 'advs').entry(id).actions(['update']).get() %} {{ form_open({ + 'id': 'createEditAdvForm', 'class': 'form ' ~ form.options.class , 'enctype': 'multipart/form-data', 'url': 'advs/save_adv', @@ -94,6 +95,22 @@ + + + Options + + + + {% if count(options) %} + {% for option in options %} + {{ option.name }} + {% endfor %} + {% endif %} + + + + diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php b/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php index f8173e67e..a8aabe2ce 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php +++ b/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php @@ -213,10 +213,10 @@ class AdvModel extends AdvsAdvsEntryModel implements AdvInterface return $this->getAdv()->where('advs_advs.id', $id)->first(); } - public function addCart($item, $quantity = 1) + public function addCart($item, $quantity = 1, $name = null) { $cart = $this->dispatch(new GetCart()); - $cart->add($item, $quantity); + $cart->add($item, $quantity, $name); return $this->dispatch(new GetCart()); } diff --git a/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php b/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php index 133138baa..3c2eb285e 100644 --- a/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php +++ b/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php @@ -11,6 +11,8 @@ use Anomaly\Streams\Platform\Model\Advs\AdvsAdvsEntryModel; use Visiosoft\AdvsModule\Adv\AdvModel; use Visiosoft\AdvsModule\Adv\Form\AdvFormBuilder; use Visiosoft\AdvsModule\Listener\AddAdvsSettingsScript; +use Visiosoft\AdvsModule\Option\Contract\OptionRepositoryInterface; +use Visiosoft\AdvsModule\Option\OptionRepository; use Visiosoft\LocationModule\Village\Contract\VillageRepositoryInterface; use Visiosoft\LocationModule\Village\VillageRepository; use Visiosoft\LocationModule\Village\VillageModel; @@ -299,7 +301,7 @@ class AdvsModuleServiceProvider extends AddonServiceProvider VillageRepositoryInterface::class => VillageRepository::class, CategoryRepositoryInterface::class => CategoryRepository::class, CountryRepositoryInterface::class => CountryRepository::class, - AdvRepositoryInterface::class => AdvRepository::class, + OptionRepositoryInterface::class => OptionRepository::class, ]; /** diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/OptionsController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/OptionsController.php new file mode 100644 index 000000000..b6e7a0343 --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/OptionsController.php @@ -0,0 +1,43 @@ +render(); + } + + /** + * Create a new entry. + * + * @param OptionFormBuilder $form + * @return \Symfony\Component\HttpFoundation\Response + */ + public function create(OptionFormBuilder $form) + { + return $form->render(); + } + + /** + * Edit an existing entry. + * + * @param OptionFormBuilder $form + * @param $id + * @return \Symfony\Component\HttpFoundation\Response + */ + public function edit(OptionFormBuilder $form, $id) + { + return $form->render($id); + } +} diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php index 53f117929..bc9e7955a 100644 --- a/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php +++ b/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php @@ -14,6 +14,7 @@ use Visiosoft\AdvsModule\Adv\Event\showAdPhone; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Cookie; +use Visiosoft\AdvsModule\Option\Contract\OptionRepositoryInterface; use Visiosoft\LocationModule\City\CityRepository; use Visiosoft\ProfileModule\Adress\Contract\AdressRepositoryInterface; use function PMA\Util\get; @@ -69,6 +70,8 @@ class AdvsController extends PublicController private $settings_repository; private $event; + private $optionRepository; + public function __construct( UserRepositoryInterface $userRepository, @@ -89,6 +92,8 @@ class AdvsController extends PublicController CategoryModel $categoryModel, CategoryRepositoryInterface $category_repository, + OptionRepositoryInterface $optionRepository, + SettingRepositoryInterface $settings_repository, Dispatcher $events, @@ -122,6 +127,7 @@ class AdvsController extends PublicController $this->requestHttp = $request; parent::__construct(); + $this->optionRepository = $optionRepository; } @@ -279,9 +285,26 @@ class AdvsController extends PublicController $viewType = $this->requestHttp->cookie('viewType'); + if (!isset($allCats)) { + if (count($mainCats) == 1 || count($mainCats) == 2) { + $catText = end($mainCats)['val']; + } elseif (count($mainCats) > 2) { + $catArray = array_slice($mainCats, 2); + $catText = ''; + $loop = 0; + foreach ($catArray as $cat) { + $catText = !$loop ? $catText . $cat['val'] : $catText . ' ' . $cat['val']; + $loop++; + } + } + $this->template->set('showTitle', false); + $this->template->set('meta_title', $catText); + $this->template->set('meta_description', $catText); + } + $compact = compact('advs', 'countries', 'mainCats', 'subCats', 'checkboxes', 'request', 'param', - 'user', 'featured_advs', 'viewType', 'topfields', 'selectDropdown', 'selectRange', 'selectImage', 'ranges', 'seenList', - 'searchedCountry', 'radio', 'categoryId', 'cityId', 'allCats'); + 'user', 'featured_advs', 'viewType', 'topfields', 'selectDropdown', 'selectRange', 'selectImage', 'ranges', + 'seenList', 'searchedCountry', 'radio', 'categoryId', 'cityId', 'allCats', 'catText'); return $this->viewTypeBasedRedirect($viewType, $compact); } @@ -367,6 +390,8 @@ class AdvsController extends PublicController } } + $options = $this->optionRepository->findAllBy('adv_id', $id); + if ($isCommentActive) { $CommentModel = new CommentModel(); $comments = $CommentModel->getComments($adv->id)->get(); @@ -388,7 +413,8 @@ class AdvsController extends PublicController $this->template->set('meta_image', $coverPhoto); if ($adv->created_by_id == isset(auth()->user()->id) OR $adv->status == "approved") { - return $this->view->make('visiosoft.module.advs::ad-detail/detail', compact('adv', 'complaints', 'recommended_advs', 'categories', 'features', 'comments', 'qrSRC')); + return $this->view->make('visiosoft.module.advs::ad-detail/detail', compact('adv', 'complaints', + 'recommended_advs', 'categories', 'features', 'comments', 'qrSRC', 'options')); } else { return back(); } @@ -417,6 +443,8 @@ class AdvsController extends PublicController } } + $options = $this->optionRepository->findAllBy('adv_id', $id); + if ($this->adv_model->is_enabled('customfields')) { $features = app('Visiosoft\CustomfieldsModule\Http\Controller\cfController')->view($adv); } @@ -424,7 +452,7 @@ class AdvsController extends PublicController $isActiveDopings = $this->adv_model->is_enabled('dopings'); return $this->view->make('visiosoft.module.advs::new-ad/preview/preview', - compact('adv', 'categories', 'features', 'isActiveDopings')); + compact('adv', 'categories', 'features', 'isActiveDopings', 'options')); } public function getLocations() @@ -546,6 +574,26 @@ class AdvsController extends PublicController } } + // Create options + $deletedOptions = $request->deleted_options; + $newOptions = $request->new_options; + if (!empty($deletedOptions)) { + $deletedOptions = explode(',', $request->deleted_options); + $this->optionRepository->newQuery() + ->whereIn('id', $deletedOptions) + ->where('adv_id', $request->update_id) + ->delete(); + } + if (!empty($newOptions)) { + $newOptions = explode(',', $request->new_options); + foreach ($newOptions as $option) { + $this->optionRepository->create([ + 'name' => $option, + 'adv_id' => $request->update_id, + ]); + } + } + $adv->is_get_adv = $request->is_get_adv; $adv->save(); @@ -587,8 +635,9 @@ class AdvsController extends PublicController } $form->render($request->update_id); + $adv = $this->adv_repository->find($request->update_id); + if ($this->request->address_id != "") { - $adv = $form->getFormEntry(); $address = $address->find($this->request->address_id); $adv->country_id = $address->country_id; $adv->city = $address->city; @@ -601,8 +650,7 @@ class AdvsController extends PublicController $post['id'] = $request->update_id; $events->dispatch(new priceChange($post));//price history if ($request->url == "") { - $LastAdv = $advModel->getLastUserAdv(); - $advRepository->cover_image_update($LastAdv); + $advRepository->cover_image_update($adv); } if ($form->hasFormErrors()) { @@ -668,6 +716,8 @@ class AdvsController extends PublicController } } + $options = $this->optionRepository->findAllBy('adv_id', $id); + //Cloudinary Module $isActiveCloudinary = new AdvModel(); $isActiveCloudinary = $isActiveCloudinary->is_enabled('cloudinary'); @@ -688,7 +738,8 @@ class AdvsController extends PublicController $custom_fields = app('Visiosoft\CustomfieldsModule\Http\Controller\cfController')->edit($adv, $categories, $cats); } - return $this->view->make('visiosoft.module.advs::new-ad/new-create', compact('id', 'cats_d', 'request', 'Cloudinary', 'cities', 'adv', 'custom_fields')); + return $this->view->make('visiosoft.module.advs::new-ad/new-create', compact('id', 'cats_d', + 'request', 'Cloudinary', 'cities', 'adv', 'custom_fields', 'options')); } public function statusAds($id, $type, SettingRepositoryInterface $settings, Dispatcher $events) @@ -946,11 +997,12 @@ class AdvsController extends PublicController { $id = $request->id; $quantity = $request->quantity; + $name = $request->name; $thisModel = new AdvModel(); $adv = $thisModel->isAdv($id); $response = array(); if ($adv) { - $cart = $thisModel->addCart($adv, $quantity); + $cart = $thisModel->addCart($adv, $quantity, $name); $response['status'] = "success"; } else { $response['status'] = "error"; diff --git a/addons/default/visiosoft/advs-module/src/Option/Contract/OptionInterface.php b/addons/default/visiosoft/advs-module/src/Option/Contract/OptionInterface.php new file mode 100644 index 000000000..0a4ae493f --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/Option/Contract/OptionInterface.php @@ -0,0 +1,8 @@ +model = $model; + } +} diff --git a/addons/default/visiosoft/advs-module/src/Option/OptionRouter.php b/addons/default/visiosoft/advs-module/src/Option/OptionRouter.php new file mode 100644 index 000000000..1c4060b64 --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/Option/OptionRouter.php @@ -0,0 +1,8 @@ + {% if setting_value('visiosoft.theme.base::latest_and_view_all_btn') %} - {{ trans('theme::field.latest_ads') }} + {{ trans('visiosoft.theme.base::field.latest_ads') }} {{ trans('theme::field.show_all') }} + href="{{ url_route('visiosoft.module.advs::list') }}">{{ trans('visiosoft.theme.base::field.show_all') }} {% endif %} diff --git a/addons/default/visiosoft/base-theme/resources/views/layouts/default.twig b/addons/default/visiosoft/base-theme/resources/views/layouts/default.twig index 667e38454..daf89d630 100644 --- a/addons/default/visiosoft/base-theme/resources/views/layouts/default.twig +++ b/addons/default/visiosoft/base-theme/resources/views/layouts/default.twig @@ -12,22 +12,22 @@ - {% include "theme::partials/metadata" %} + {% include "visiosoft.theme.base::partials/metadata" %} {% block styles %}{% endblock %} -{% include "theme::partials/header" %} +{% include "visiosoft.theme.base::partials/header" %} {{ addBlock('layouts/default/section')|raw }} - {% include "theme::partials/messages" %} + {% include "visiosoft.theme.base::partials/messages" %} {% if (request_path() == '/') %} - {% include "theme::index/default" %} + {% include "visiosoft.theme.base::index/default" %} {% else %} {% block content %}{% endblock %} {% endif %} @@ -35,9 +35,9 @@ -{% include "theme::partials/footer" %} -{% include "theme::partials/assets" %} -{% include "theme::partials/settings" %} +{% include "visiosoft.theme.base::partials/footer" %} +{% include "visiosoft.theme.base::partials/assets" %} +{% include "visiosoft.theme.base::partials/settings" %} \ No newline at end of file diff --git a/addons/default/visiosoft/base-theme/resources/views/partials/assets.twig b/addons/default/visiosoft/base-theme/resources/views/partials/assets.twig index 2833942f0..7b843d4d3 100644 --- a/addons/default/visiosoft/base-theme/resources/views/partials/assets.twig +++ b/addons/default/visiosoft/base-theme/resources/views/partials/assets.twig @@ -14,7 +14,7 @@ {{ asset_add("theme.js", "visiosoft.theme.base::js/jquery.maskedinput.js") }} {{ asset_add("theme.js", "visiosoft.theme.base::js/intlTelInput.min.js") }} {{ asset_add("theme.js", "visiosoft.theme.base::js/utils.js") }} -{{ asset_add("theme.js", "visiosoft.theme.base::js/phoneField.js") }} +{{ asset_add("theme.js", "visiosoft.theme.base::js/phonefield.js") }} {{ asset_add("theme.js", "visiosoft.theme.base::js/jquery.inputmask.bundle.min.js") }} {# Theme Scripts #} diff --git a/addons/default/visiosoft/base-theme/resources/views/partials/header.twig b/addons/default/visiosoft/base-theme/resources/views/partials/header.twig index 443c4a973..90418c6ab 100644 --- a/addons/default/visiosoft/base-theme/resources/views/partials/header.twig +++ b/addons/default/visiosoft/base-theme/resources/views/partials/header.twig @@ -1,5 +1,5 @@ - {% include "theme::partials/navigation" %} + {% include "visiosoft.theme.base::partials/navigation" %} diff --git a/addons/default/visiosoft/base-theme/resources/views/partials/metatags.twig b/addons/default/visiosoft/base-theme/resources/views/partials/metatags.twig index 311344e88..387e7c4c5 100644 --- a/addons/default/visiosoft/base-theme/resources/views/partials/metatags.twig +++ b/addons/default/visiosoft/base-theme/resources/views/partials/metatags.twig @@ -8,8 +8,11 @@ - {{ setting_value('streams::name', config_get('streams::distribution.name')) }} - › + {% set showTitle = template.showTitle is same as(false) ? false : true %} + {% if showTitle %} + {{ setting_value('streams::name', config_get('streams::distribution.name')) }} + › + {% endif %} {{ trans(template.meta_title) }} diff --git a/addons/default/visiosoft/base-theme/resources/views/partials/navigation.twig b/addons/default/visiosoft/base-theme/resources/views/partials/navigation.twig index 168d5248c..3b0bc3433 100644 --- a/addons/default/visiosoft/base-theme/resources/views/partials/navigation.twig +++ b/addons/default/visiosoft/base-theme/resources/views/partials/navigation.twig @@ -37,7 +37,7 @@ {{ trans('visiosoft.theme.base::field.profile') }} - {{ trans("theme::button.post_ad.name") }} + {{ trans("visiosoft.theme.base::button.post_ad.name") }} {% endif %} @@ -56,7 +56,7 @@ {{ trans('visiosoft.theme.base::field.profile') }} - {{ trans("theme::button.post_ad.name") }} + {{ trans("visiosoft.theme.base::button.post_ad.name") }} {% endif %} diff --git a/addons/default/visiosoft/cats-module/src/Http/Controller/Admin/CategoryController.php b/addons/default/visiosoft/cats-module/src/Http/Controller/Admin/CategoryController.php index b8f501a3c..b6731aefe 100644 --- a/addons/default/visiosoft/cats-module/src/Http/Controller/Admin/CategoryController.php +++ b/addons/default/visiosoft/cats-module/src/Http/Controller/Admin/CategoryController.php @@ -154,7 +154,7 @@ class CategoryController extends AdminController } - return $this->view->make('visiosoft.module.cats::cats/admin-cat', compact('formBuilder')); + return $this->view->make('visiosoft.module.cats::cats/admin-cat'); } public function endsWith($string, $test) { diff --git a/addons/default/visiosoft/defaultadmin-theme/src/Listener/AddViewAdsButton.php b/addons/default/visiosoft/defaultadmin-theme/src/Listener/AddViewAdsButton.php index c9bf758f8..2ec46d7eb 100644 --- a/addons/default/visiosoft/defaultadmin-theme/src/Listener/AddViewAdsButton.php +++ b/addons/default/visiosoft/defaultadmin-theme/src/Listener/AddViewAdsButton.php @@ -41,13 +41,15 @@ class AddViewAdsButton protected function addViewAdsButton(UserTableBuilder $builder) { $buttons = $builder->getButtons(); - $dropdown = array_merge($buttons['settings']['dropdown'], [ - "ads" => [ - "text" => trans('visiosoft.theme.defaultadmin::button.view_ads'), - "href" => "admin/advs?filter_User={entry.id}" - ] - ]); - $buttons['settings']['dropdown'] = $dropdown; - $builder->setButtons($buttons); + if (isset($buttons['settings'])) { + $dropdown = array_merge($buttons['settings']['dropdown'], [ + "ads" => [ + "text" => trans('visiosoft.theme.defaultadmin::button.view_ads'), + "href" => "admin/advs?filter_User={entry.id}" + ] + ]); + $buttons['settings']['dropdown'] = $dropdown; + $builder->setButtons($buttons); + } } } \ No newline at end of file diff --git a/addons/default/visiosoft/location-module/resources/views/new-ad/modals.twig b/addons/default/visiosoft/location-module/resources/views/new-ad/modals.twig index 4c53a0c88..4da987afa 100755 --- a/addons/default/visiosoft/location-module/resources/views/new-ad/modals.twig +++ b/addons/default/visiosoft/location-module/resources/views/new-ad/modals.twig @@ -102,4 +102,4 @@ -{{ asset_add("scripts.js", "visiosoft.theme.base::js/phoneField.js") }} +{{ asset_add("scripts.js", "visiosoft.theme.base::js/phonefield.js") }} diff --git a/addons/default/visiosoft/profile-module/resources/assets/css/profile-nav.scss b/addons/default/visiosoft/profile-module/resources/assets/css/profile-nav.scss index 568efa021..ede9f1436 100644 --- a/addons/default/visiosoft/profile-module/resources/assets/css/profile-nav.scss +++ b/addons/default/visiosoft/profile-module/resources/assets/css/profile-nav.scss @@ -3,14 +3,9 @@ bottom: 10%; z-index: 1; - button { - color: rgba(0,0,0,.5); - border: 0; - padding: .25rem .75rem; - font-size: 1.25rem; - line-height: 1; - background-color: #E91E63; - border-radius: .25rem; + img { + width: 3rem; + height: 3rem; } } @@ -28,13 +23,15 @@ -webkit-transition: 300ms ease; transition: 300ms ease; @media only screen and (min-width: 768px) { - padding: 1.5rem 2.25rem; height: initial; position: initial; -webkit-transform: initial; -ms-transform: initial; transform: initial; } + @media only screen and (min-width: 992px) { + padding: 1.5rem 2.25rem; + } &.reveal { -webkit-transform: translateX(0%); diff --git a/addons/default/visiosoft/profile-module/resources/images/nav-menu.svg b/addons/default/visiosoft/profile-module/resources/images/nav-menu.svg new file mode 100644 index 000000000..4389e33bb --- /dev/null +++ b/addons/default/visiosoft/profile-module/resources/images/nav-menu.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/addons/default/visiosoft/profile-module/resources/views/profile/partials/navigation.twig b/addons/default/visiosoft/profile-module/resources/views/profile/partials/navigation.twig index 77a5cb711..8d1d9a576 100644 --- a/addons/default/visiosoft/profile-module/resources/views/profile/partials/navigation.twig +++ b/addons/default/visiosoft/profile-module/resources/views/profile/partials/navigation.twig @@ -1,7 +1,6 @@ - - - + diff --git a/addons/default/visiosoft/profile-module/src/Http/Middleware/authCheck.php b/addons/default/visiosoft/profile-module/src/Http/Middleware/authCheck.php new file mode 100644 index 000000000..68d10d61a --- /dev/null +++ b/addons/default/visiosoft/profile-module/src/Http/Middleware/authCheck.php @@ -0,0 +1,32 @@ +auth = $auth; + $this->request = $request; + } + + /** + * @param Guard $auth + * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector + */ + public function handle(Request $request, Closure $next) + { + if ($this->auth->check()) { + return redirect($this->request->get('redirect', '/')); + } + return $next($request); + } +} \ No newline at end of file diff --git a/addons/default/visiosoft/profile-module/src/ProfileModuleServiceProvider.php b/addons/default/visiosoft/profile-module/src/ProfileModuleServiceProvider.php index aae345323..8e3b03d72 100644 --- a/addons/default/visiosoft/profile-module/src/ProfileModuleServiceProvider.php +++ b/addons/default/visiosoft/profile-module/src/ProfileModuleServiceProvider.php @@ -6,6 +6,7 @@ use Visiosoft\ProfileModule\Adress\Contract\AdressRepositoryInterface; use Visiosoft\ProfileModule\Adress\AdressRepository; use Anomaly\Streams\Platform\Model\Profile\ProfileAdressEntryModel; use Visiosoft\ProfileModule\Adress\AdressModel; +use Visiosoft\ProfileModule\Http\Middleware\authCheck; use Visiosoft\ProfileModule\Profile\Password\ForgotPassFormBuilder; use Visiosoft\ProfileModule\Profile\Password\PasswordFormBuilder; use Visiosoft\ProfileModule\Profile\Profile\ProfileFormBuilder; @@ -105,6 +106,15 @@ class ProfileModuleServiceProvider extends AddonServiceProvider ], 'ajax/phone-validation' => 'Visiosoft\ProfileModule\Http\Controller\UserAuthenticator@phoneValidation', + 'register' => [ + 'middleware' => [ + authCheck::class + ], + 'ttl' => 0, + 'as' => 'anomaly.module.users::register', + 'uses' => 'Anomaly\UsersModule\Http\Controller\RegisterController@register', + ], + /* Login */ 'login-in' => 'Visiosoft\ProfileModule\Http\Controller\UserAuthenticator@attempt', diff --git a/addons/default/visiosoft/singlefile-field_type/src/Table/ValueTableBuilder.php b/addons/default/visiosoft/singlefile-field_type/src/Table/ValueTableBuilder.php index d9e5a4698..9805cc021 100644 --- a/addons/default/visiosoft/singlefile-field_type/src/Table/ValueTableBuilder.php +++ b/addons/default/visiosoft/singlefile-field_type/src/Table/ValueTableBuilder.php @@ -47,7 +47,7 @@ class ValueTableBuilder extends TableBuilder protected $buttons = [ 'view' => [ 'target' => '_blank', - 'href' => 'admin/files/view/{entry.id}', + 'href' => '/files/{entry.path}', ], 'remove' => [ 'data-dismiss' => 'file', diff --git a/resources/streams/config/currencies.php b/resources/streams/config/currencies.php index 905163534..5f7d2d29e 100644 --- a/resources/streams/config/currencies.php +++ b/resources/streams/config/currencies.php @@ -77,7 +77,7 @@ return [ 'separator' => ',', 'point' => '.', 'decimals' => 2, - 'symbol' => 'L', + 'symbol' => 'Leke', ], 'AMD' => [ 'name' => 'Armenian Dram',
+ "{{ catText }}" + {{ advs.total }} {{ trans('visiosoft.module.advs::field.ads')|lower }} + {{ trans('visiosoft.module.advs::field.were_found') }} +