Merge pull request #836 from openclassify/muammertop

#2279 country selection with flags & location table columns changed
This commit is contained in:
Dia Shalabi 2020-12-01 15:23:12 +03:00 committed by GitHub
commit 326fe123ab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 1071 additions and 88 deletions

View File

@ -218,10 +218,6 @@ a.sort-by-open-dropdown:hover {
cursor: pointer;
}
.filter-section .countries input[type=checkbox] {
display: none;
}
.gallery-tn {
object-fit: cover;
}

View File

@ -214,19 +214,12 @@ class AdvModel extends AdvsAdvsEntryModel implements AdvInterface
}
public function getAdvDetailLinkByModel($object, $type = null)
{
if ($type != null) {
$id = $object->id;
$seo = str_slug($object->name);
$seo = str_replace('_', '-', $seo);
return \route('adv_detail_seo', [$seo, $id]);
}
$id = $object->getObject()->id;
$seo = str_slug($object->getObject()->name);
$seo = str_replace('_', '-', $seo);
return \route('adv_detail_seo', [$seo, $id]);
}
public function getAdvDetailLinkByModel($object, $type = null)
{
$id = $object->id;
$seo = str_slug($object->slug, '-');
return \route('adv_detail_seo', [$seo, $id]);
}
public function getAdvDetailLinkByAdId($id)
{

View File

@ -10,6 +10,7 @@ use Illuminate\Contracts\Events\Dispatcher;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Cookie;
use Illuminate\Support\Str;
use Visiosoft\AdvsModule\Adv\AdvModel;
use Visiosoft\AdvsModule\Adv\Contract\AdvRepositoryInterface;
use Visiosoft\AdvsModule\Adv\Event\ChangedStatusAd;
@ -579,12 +580,16 @@ class AdvsController extends PublicController
$configurations = $this->optionConfigurationRepository->getConf($adv->id);
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', 'options', 'configurations'));
} else {
return back();
}
if (Str::slug($adv->slug, '-') != $seo) {
$this->messages->error(trans('visiosoft.module.advs::message.ad_doesnt_exist'));
return redirect()->route('visiosoft.module.advs::list');
} else 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', 'options', 'configurations'));
} else {
return back();
}
} else {
$this->messages->error(trans('visiosoft.module.advs::message.ad_doesnt_exist'));
return redirect()->route('visiosoft.module.advs::list');

View File

@ -1,32 +0,0 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Anomaly\Streams\Platform\Database\Migration\Migration;
class VisiosoftModuleLocationAddAbvToCountries extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('location_countries_translations', function (Blueprint $table) {
$table->string('abv');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('location_countries_translations', function (Blueprint $table) {
$table->string('abv');
});
}
}

View File

@ -0,0 +1,23 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Anomaly\Streams\Platform\Database\Migration\Migration;
class VisiosoftModuleLocationAddAbvCountry extends Migration
{
protected $delete = false;
protected $stream = [
'slug' => 'countries',
];
protected $fields = [
'abv' => 'anomaly.field_type.text',
];
protected $assignments = [
'abv',
];
}

View File

@ -26,4 +26,990 @@
height: 200px;
overflow: auto;
display: none
}
span.flag {
width: 21px;
height: 14px;
display: inline-block;
position: relative;
top: 2px;
}
img.flag {
/*width: 15px*/
}
.flag {
background-image: url('{{ img("visiosoft.module.location::images/flags.png").path }}');
background-repeat: no-repeat;
background-size: 100%
}
.flag-ad {
background-position: 0 .413223%
}
.flag-ae {
background-position: 0 .826446%
}
.flag-af {
background-position: 0 1.239669%
}
.flag-ag {
background-position: 0 1.652893%
}
.flag-ai {
background-position: 0 2.066116%
}
.flag-al {
background-position: 0 2.479339%
}
.flag-am {
background-position: 0 2.892562%
}
.flag-an {
background-position: 0 3.305785%
}
.flag-ao {
background-position: 0 3.719008%
}
.flag-aq {
background-position: 0 4.132231%
}
.flag-ar {
background-position: 0 4.545455%
}
.flag-as {
background-position: 0 4.958678%
}
.flag-at {
background-position: 0 5.371901%
}
.flag-au {
background-position: 0 5.785124%
}
.flag-aw {
background-position: 0 6.198347%
}
.flag-az {
background-position: 0 6.61157%
}
.flag-ba {
background-position: 0 7.024793%
}
.flag-bb {
background-position: 0 7.438017%
}
.flag-bd {
background-position: 0 7.85124%
}
.flag-be {
background-position: 0 8.264463%
}
.flag-bf {
background-position: 0 8.677686%
}
.flag-bg {
background-position: 0 9.090909%
}
.flag-bh {
background-position: 0 9.504132%
}
.flag-bi {
background-position: 0 9.917355%
}
.flag-bj {
background-position: 0 10.330579%
}
.flag-bm {
background-position: 0 10.743802%
}
.flag-bn {
background-position: 0 11.157025%
}
.flag-bo {
background-position: 0 11.570248%
}
.flag-br {
background-position: 0 11.983471%
}
.flag-bs {
background-position: 0 12.396694%
}
.flag-bt {
background-position: 0 12.809917%
}
.flag-bv {
background-position: 0 13.22314%
}
.flag-bw {
background-position: 0 13.636364%
}
.flag-by {
background-position: 0 14.049587%
}
.flag-bz {
background-position: 0 14.46281%
}
.flag-ca {
background-position: 0 14.876033%
}
.flag-cc {
background-position: 0 15.289256%
}
.flag-cd {
background-position: 0 15.702479%
}
.flag-cf {
background-position: 0 16.115702%
}
.flag-cg {
background-position: 0 16.528926%
}
.flag-ch {
background-position: 0 16.942149%
}
.flag-ci {
background-position: 0 17.355372%
}
.flag-ck {
background-position: 0 17.768595%
}
.flag-cl {
background-position: 0 18.181818%
}
.flag-cm {
background-position: 0 18.595041%
}
.flag-cn {
background-position: 0 19.008264%
}
.flag-co {
background-position: 0 19.421488%
}
.flag-cr {
background-position: 0 19.834711%
}
.flag-cu {
background-position: 0 20.247934%
}
.flag-cv {
background-position: 0 20.661157%
}
.flag-cx {
background-position: 0 21.07438%
}
.flag-cy {
background-position: 0 21.487603%
}
.flag-cz {
background-position: 0 21.900826%
}
.flag-de {
background-position: 0 22.31405%
}
.flag-dj {
background-position: 0 22.727273%
}
.flag-dk {
background-position: 0 23.140496%
}
.flag-dm {
background-position: 0 23.553719%
}
.flag-do {
background-position: 0 23.966942%
}
.flag-dz {
background-position: 0 24.380165%
}
.flag-ec {
background-position: 0 24.793388%
}
.flag-ee {
background-position: 0 25.206612%
}
.flag-eg {
background-position: 0 25.619835%
}
.flag-eh {
background-position: 0 26.033058%
}
.flag-er {
background-position: 0 26.446281%
}
.flag-es {
background-position: 0 26.859504%
}
.flag-et {
background-position: 0 27.272727%
}
.flag-fi {
background-position: 0 27.68595%
}
.flag-fj {
background-position: 0 28.099174%
}
.flag-fk {
background-position: 0 28.512397%
}
.flag-fm {
background-position: 0 28.92562%
}
.flag-fo {
background-position: 0 29.338843%
}
.flag-fr {
background-position: 0 29.752066%
}
.flag-ga {
background-position: 0 30.165289%
}
.flag-gd {
background-position: 0 30.578512%
}
.flag-ge {
background-position: 0 30.991736%
}
.flag-gf {
background-position: 0 31.404959%
}
.flag-gh {
background-position: 0 31.818182%
}
.flag-gi {
background-position: 0 32.231405%
}
.flag-gl {
background-position: 0 32.644628%
}
.flag-gm {
background-position: 0 33.057851%
}
.flag-gn {
background-position: 0 33.471074%
}
.flag-gp {
background-position: 0 33.884298%
}
.flag-gq {
background-position: 0 34.297521%
}
.flag-gr {
background-position: 0 34.710744%
}
.flag-gs {
background-position: 0 35.123967%
}
.flag-gt {
background-position: 0 35.53719%
}
.flag-gu {
background-position: 0 35.950413%
}
.flag-gw {
background-position: 0 36.363636%
}
.flag-gy {
background-position: 0 36.77686%
}
.flag-hk {
background-position: 0 37.190083%
}
.flag-hm {
background-position: 0 37.603306%
}
.flag-hn {
background-position: 0 38.016529%
}
.flag-hr {
background-position: 0 38.429752%
}
.flag-ht {
background-position: 0 38.842975%
}
.flag-hu {
background-position: 0 39.256198%
}
.flag-id {
background-position: 0 39.669421%
}
.flag-ie {
background-position: 0 40.082645%
}
.flag-il {
background-position: 0 40.495868%
}
.flag-in {
background-position: 0 40.909091%
}
.flag-io {
background-position: 0 41.322314%
}
.flag-iq {
background-position: 0 41.735537%
}
.flag-ir {
background-position: 0 42.14876%
}
.flag-is {
background-position: 0 42.561983%
}
.flag-it {
background-position: 0 42.975207%
}
.flag-jm {
background-position: 0 43.38843%
}
.flag-jo {
background-position: 0 43.801653%
}
.flag-jp {
background-position: 0 44.214876%
}
.flag-ke {
background-position: 0 44.628099%
}
.flag-kg {
background-position: 0 45.041322%
}
.flag-kh {
background-position: 0 45.454545%
}
.flag-ki {
background-position: 0 45.867769%
}
.flag-km {
background-position: 0 46.280992%
}
.flag-kn {
background-position: 0 46.694215%
}
.flag-kp {
background-position: 0 47.107438%
}
.flag-kr {
background-position: 0 47.520661%
}
.flag-kw {
background-position: 0 47.933884%
}
.flag-ky {
background-position: 0 48.347107%
}
.flag-kz {
background-position: 0 48.760331%
}
.flag-la {
background-position: 0 49.173554%
}
.flag-lb {
background-position: 0 49.586777%
}
.flag-lc {
background-position: 0 50%
}
.flag-li {
background-position: 0 50.413223%
}
.flag-lk {
background-position: 0 50.826446%
}
.flag-lr {
background-position: 0 51.239669%
}
.flag-ls {
background-position: 0 51.652893%
}
.flag-lt {
background-position: 0 52.066116%
}
.flag-lu {
background-position: 0 52.479339%
}
.flag-lv {
background-position: 0 52.892562%
}
.flag-ly {
background-position: 0 53.305785%
}
.flag-ma {
background-position: 0 53.719008%
}
.flag-mc {
background-position: 0 54.132231%
}
.flag-md {
background-position: 0 54.545455%
}
.flag-me {
background-position: 0 54.958678%
}
.flag-mg {
background-position: 0 55.371901%
}
.flag-mh {
background-position: 0 55.785124%
}
.flag-mk {
background-position: 0 56.198347%
}
.flag-ml {
background-position: 0 56.61157%
}
.flag-mm {
background-position: 0 57.024793%
}
.flag-mn {
background-position: 0 57.438017%
}
.flag-mo {
background-position: 0 57.85124%
}
.flag-mp {
background-position: 0 58.264463%
}
.flag-mq {
background-position: 0 58.677686%
}
.flag-mr {
background-position: 0 59.090909%
}
.flag-ms {
background-position: 0 59.504132%
}
.flag-mt {
background-position: 0 59.917355%
}
.flag-mu {
background-position: 0 60.330579%
}
.flag-mv {
background-position: 0 60.743802%
}
.flag-mw {
background-position: 0 61.157025%
}
.flag-mx {
background-position: 0 61.570248%
}
.flag-my {
background-position: 0 61.983471%
}
.flag-mz {
background-position: 0 62.396694%
}
.flag-na {
background-position: 0 62.809917%
}
.flag-nc {
background-position: 0 63.22314%
}
.flag-ne {
background-position: 0 63.636364%
}
.flag-nf {
background-position: 0 64.049587%
}
.flag-ng {
background-position: 0 64.46281%
}
.flag-ni {
background-position: 0 64.876033%
}
.flag-nl {
background-position: 0 65.289256%
}
.flag-no {
background-position: 0 65.702479%
}
.flag-np {
background-position: 0 66.115702%
}
.flag-nr {
background-position: 0 66.528926%
}
.flag-nu {
background-position: 0 66.942149%
}
.flag-nz {
background-position: 0 67.355372%
}
.flag-om {
background-position: 0 67.768595%
}
.flag-pa {
background-position: 0 68.181818%
}
.flag-pe {
background-position: 0 68.595041%
}
.flag-pf {
background-position: 0 69.008264%
}
.flag-pg {
background-position: 0 69.421488%
}
.flag-ph {
background-position: 0 69.834711%
}
.flag-pk {
background-position: 0 70.247934%
}
.flag-pl {
background-position: 0 70.661157%
}
.flag-pm {
background-position: 0 71.07438%
}
.flag-pn {
background-position: 0 71.487603%
}
.flag-pr {
background-position: 0 71.900826%
}
.flag-pt {
background-position: 0 72.31405%
}
.flag-pw {
background-position: 0 72.727273%
}
.flag-py {
background-position: 0 73.140496%
}
.flag-qa {
background-position: 0 73.553719%
}
.flag-re {
background-position: 0 73.966942%
}
.flag-ro {
background-position: 0 74.380165%
}
.flag-rs {
background-position: 0 74.793388%
}
.flag-ru {
background-position: 0 75.206612%
}
.flag-rw {
background-position: 0 75.619835%
}
.flag-sa {
background-position: 0 76.033058%
}
.flag-sb {
background-position: 0 76.446281%
}
.flag-sc {
background-position: 0 76.859504%
}
.flag-sd {
background-position: 0 77.272727%
}
.flag-se {
background-position: 0 77.68595%
}
.flag-sg {
background-position: 0 78.099174%
}
.flag-sh {
background-position: 0 78.512397%
}
.flag-si {
background-position: 0 78.92562%
}
.flag-sj {
background-position: 0 79.338843%
}
.flag-sk {
background-position: 0 79.752066%
}
.flag-sl {
background-position: 0 80.165289%
}
.flag-sm {
background-position: 0 80.578512%
}
.flag-sn {
background-position: 0 80.991736%
}
.flag-so {
background-position: 0 81.404959%
}
.flag-sr {
background-position: 0 81.818182%
}
.flag-ss {
background-position: 0 82.231405%
}
.flag-st {
background-position: 0 82.644628%
}
.flag-sv {
background-position: 0 83.057851%
}
.flag-sy {
background-position: 0 83.471074%
}
.flag-sz {
background-position: 0 83.884298%
}
.flag-tc {
background-position: 0 84.297521%
}
.flag-td {
background-position: 0 84.710744%
}
.flag-tf {
background-position: 0 85.123967%
}
.flag-tg {
background-position: 0 85.53719%
}
.flag-th {
background-position: 0 85.950413%
}
.flag-tj {
background-position: 0 86.363636%
}
.flag-tk {
background-position: 0 86.77686%
}
.flag-tl {
background-position: 0 87.190083%
}
.flag-tm {
background-position: 0 87.603306%
}
.flag-tn {
background-position: 0 88.016529%
}
.flag-to {
background-position: 0 88.429752%
}
.flag-tp {
background-position: 0 88.842975%
}
.flag-tr {
background-position: 0 89.256198%
}
.flag-tt {
background-position: 0 89.669421%
}
.flag-tv {
background-position: 0 90.082645%
}
.flag-tw {
background-position: 0 90.495868%
}
.flag-ty {
background-position: 0 90.909091%
}
.flag-tz {
background-position: 0 91.322314%
}
.flag-ua {
background-position: 0 91.735537%
}
.flag-ug {
background-position: 0 92.14876%
}
.flag-gb, .flag-uk {
background-position: 0 92.561983%
}
.flag-um {
background-position: 0 92.975207%
}
.flag-us {
background-position: 0 93.38843%
}
.flag-uy {
background-position: 0 93.801653%
}
.flag-uz {
background-position: 0 94.214876%
}
.flag-va {
background-position: 0 94.628099%
}
.flag-vc {
background-position: 0 95.041322%
}
.flag-ve {
background-position: 0 95.454545%
}
.flag-vg {
background-position: 0 95.867769%
}
.flag-vi {
background-position: 0 96.280992%
}
.flag-vn {
background-position: 0 96.694215%
}
.flag-vu {
background-position: 0 97.107438%
}
.flag-wf {
background-position: 0 97.520661%
}
.flag-ws {
background-position: 0 97.933884%
}
.flag-ye {
background-position: 0 98.347107%
}
.flag-za {
background-position: 0 98.760331%
}
.flag-zm {
background-position: 0 99.173554%
}
.flag-zr {
background-position: 0 99.586777%
}
.flag-zw {
background-position: 0 100%
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

View File

@ -6,18 +6,22 @@ var village;
//Country
$('.filter-country-btn').on('click', function () {
var selected__country_request = $('input[name="country[]"]').val();
if (countries == undefined) {
var promiseForCountries = new Promise(function (resolve, reject) {
locationCrud('', '/ajax/getCountry', 'POST', beforeSend(), function (callback) {
countries = callback;
resetValue('country', true, false)
$.each(countries, function (index, value) {
$('.filter-location-modal .countries').append(item('country', value.id, value.name));
$('.filter-location-modal .countries').append(item('country', value.id, value.name, value.abv.toLowerCase()));
});
if (countries == "")
$('.filter-location-modal .countries').html(null_msg);
else if ($('input[name="country"]').val() != "")
$(".filter-location-body .countries li[data-id='" + $('input[name="country"]').val() + "'] input[type='checkbox']").prop('checked', true);
else if ($('input[name="country"]').val() != ""){
$.each(selected__country_request.split(','), function (index, value){
$(".filter-location-body .countries li[data-id='" + value.trim() + "'] input[type='checkbox']").prop('checked', true);
})
}
resolve();
})
});
@ -31,10 +35,9 @@ $('.filter-country-btn').on('click', function () {
$('.filter-location-back').show();
scroolToModal()
});
//City
$('.filter-city-btn').on('click', function () {
var countries_value = $('input[name="country"]').val();
var countries_value = $('input[name="country[]"]').val();
var selected__city_request = $('input[name="city[]"]').val();
if (cities == undefined || $(this).attr('data-parent') != countries_value) {
$(this).attr('data-parent', countries_value);
@ -198,32 +201,28 @@ function SelectOnClick() {
var id = $(this).attr('data-id');
if ($(this).attr('data-field') == "country") {
$('.filter-location-modal,.filter-location-back,.filter-location-modal .countries').hide();
$('input[name="country"]').val(id)
$('.selected-city').html('');
$('input[name="city[]"]').val('');
text_html.html(input_text)
$(".filter-location-body input[type='checkbox']").prop('checked', false);
$(".filter-location-body li[data-id='" + id + "'] input[type='checkbox']").prop('checked', true);
} else {
if (input_val != "") {
input_val = input_val.split(',');
text = text_html.html().split(',');
} else {
input_val = [];
text = [];
}
if (this.checked) {
input_val.push(id);
text.push(input_text)
} else {
input_val.splice($.inArray(id, input_val), 1);
text.splice($.inArray(input_text, text), 1);
}
input.val(input_val.join(','))
text_html.html(text.join(','))
}
if (input_val != "") {
input_val = input_val.split(',');
text = text_html.html().split(',');
} else {
input_val = [];
text = [];
}
if (this.checked) {
input_val.push(id);
text.push(input_text)
} else {
input_val.splice($.inArray(id, input_val), 1);
text.splice($.inArray(input_text, text), 1);
}
input.val(input_val.join(','))
text_html.html(text.join(','))
});
}
@ -242,13 +241,26 @@ function locationCrud(params, url, type, beforeSend, callback) {
});
}
function item(field_name, id, value) {
return '<li class="px-2" data-id="' + id + '">\n' +
' <label class="w-100">\n' +
' <input type="checkbox" data-field="' + field_name + '" data-id="' + id + '">\n' +
' <small>' + value + '</small>\n' +
' </label>\n' +
' </li>';
function item(field_name, id, value, abv = '') {
if (field_name === 'country') {
return '<li class="px-2" data-id="' + id + '">\n' +
' <label class="w-100">\n' +
' <input type="checkbox" data-field="' + field_name + '" data-id="' + id + '">\n' +
' <span class="flag ml-1 flag-' + abv + '">\n' +
' </span>\n' +
' <small>' + value + '</small>\n' +
' </label>\n' +
' </li>';
} else {
return '<li class="px-2" data-id="' + id + '">\n' +
' <label class="w-100">\n' +
' <input type="checkbox" data-field="' + field_name + '" data-id="' + id + '">\n' +
' <small>' + value + '</small>\n' +
' </label>\n' +
' </li>';
}
}
function resetValue(location_type, reset_this, reset_parent) {

View File

@ -21,7 +21,7 @@
</span>
<i class="fas fa-sort-down float-right"></i>
</button>
<input name="country" value="{{ countryValue }}" type="hidden">
<input name="country[]" value="{% if countrySlug %}{{ countrySlug.id }}{% else %}{{ params.param['country']|join(',') }}{% endif %}" type="hidden" multiple>
</div>
<div class="col-12 px-0 py-1">