mirror of
https://github.com/openclassify/openclassify.git
synced 2026-02-09 14:56:13 -06:00
Merge branch 'master' into image-view-fix
This commit is contained in:
commit
7306281aac
@ -1,3 +1,13 @@
|
|||||||
$(".clickable-row").click(function () {
|
$(".clickable-row").click(function () {
|
||||||
window.location = $(this).data("href");
|
window.location = $(this).data("href");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('.hover-area').mouseover((e) => {
|
||||||
|
var el = $(e);
|
||||||
|
|
||||||
|
var img = $(`.${$(el[0].target).data('id')}`);
|
||||||
|
|
||||||
|
img.siblings('img').hide();
|
||||||
|
|
||||||
|
img.show();
|
||||||
|
});
|
||||||
|
|||||||
@ -36,4 +36,6 @@ return [
|
|||||||
'currency_converter_not_available' => 'The currency converter is not available.',
|
'currency_converter_not_available' => 'The currency converter is not available.',
|
||||||
'option_saved' => 'Option Saved',
|
'option_saved' => 'Option Saved',
|
||||||
'do_you_want_to_save_the_option' => 'Do you want to save the option?',
|
'do_you_want_to_save_the_option' => 'Do you want to save the option?',
|
||||||
|
'you_can_not_delete_a_system_status' => 'You can not delete a system status!',
|
||||||
|
'product_added_to_cart' => 'Product added to cart!',
|
||||||
];
|
];
|
||||||
|
|||||||
@ -11,10 +11,20 @@
|
|||||||
|
|
||||||
{% for adv in advs %}
|
{% for adv in advs %}
|
||||||
<div class="col-xl-4 col-6 p-sm-3 p-0">
|
<div class="col-xl-4 col-6 p-sm-3 p-0">
|
||||||
<div class="d-flex flex-column product-hb gallery-card border border-top-0 pb-3 px-md-1 px-0 pt-1 shadow-sm rounded">
|
<div class="d-flex flex-column product-hb gallery-card pb-3 px-1 pt-1 border shadow-sm rounded">
|
||||||
<div class="product-image-hb p-sm-3 p-1 mt-lg-2 mt-4">
|
<div class="product-image-hb p-sm-3 p-1">
|
||||||
<a href="{{ adv.detail_url }}">
|
<a href="{{ adv.detail_url }}" class="imgs" id="{{ adv.id }}">
|
||||||
<img class="product-image-in" src="{{ adv.cover_photo }}" alt="{{ adv.name }}">
|
{% set slicedPhotos = adv.getViewPhotoUrl|slice(0,3) %}
|
||||||
|
|
||||||
|
{% for key,photo in slicedPhotos %}
|
||||||
|
<img src="{{ photo }}" class="product-image-in ads-img img-{{ adv.id ~ '-' ~ key }}" alt="">
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
|
<div class="hover-area">
|
||||||
|
{% for key, photo in slicedPhotos %}
|
||||||
|
<div class="hover-{{ key }}" data-parent="{{ adv.id }}" data-id="img-{{ adv.id ~ '-' ~ key }}"></div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
</a>
|
</a>
|
||||||
{{ addBlock('list/extra-actions', {'ad': adv, 'vars': _context}, ['favs'])|raw }}
|
{{ addBlock('list/extra-actions', {'ad': adv, 'vars': _context}, ['favs'])|raw }}
|
||||||
</div>
|
</div>
|
||||||
@ -39,6 +49,8 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{ asset_add("scripts.js", "visiosoft.module.advs::js/list-table.js") }}
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block styles %}
|
{% block styles %}
|
||||||
@ -47,6 +59,7 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block customjs %}
|
{% block customjs %}
|
||||||
{{ asset_add("scripts.js", "visiosoft.module.advs::js/list-table.js") }}
|
|
||||||
{% include "theme::scroll-modal" %}
|
{% include "theme::scroll-modal" %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1163,6 +1163,7 @@ class AdvsController extends PublicController
|
|||||||
if ($adv and $adv->getStatus() == "approved") {
|
if ($adv and $adv->getStatus() == "approved") {
|
||||||
$cart = $thisModel->addCart($adv, $quantity, $name);
|
$cart = $thisModel->addCart($adv, $quantity, $name);
|
||||||
$response['status'] = "success";
|
$response['status'] = "success";
|
||||||
|
$response['msg'] = trans('visiosoft.module.advs::message.product_added_to_cart');
|
||||||
$count = $cart->getItems()->count;
|
$count = $cart->getItems()->count;
|
||||||
$response['count'] = $count;
|
$response['count'] = $count;
|
||||||
$response['item'] = [
|
$response['item'] = [
|
||||||
|
|||||||
@ -1,8 +1,16 @@
|
|||||||
<?php namespace Visiosoft\AdvsModule\Status;
|
<?php namespace Visiosoft\AdvsModule\Status;
|
||||||
|
|
||||||
|
use Anomaly\Streams\Platform\Entry\Contract\EntryInterface;
|
||||||
use Anomaly\Streams\Platform\Entry\EntryObserver;
|
use Anomaly\Streams\Platform\Entry\EntryObserver;
|
||||||
|
|
||||||
class StatusObserver extends EntryObserver
|
class StatusObserver extends EntryObserver
|
||||||
{
|
{
|
||||||
|
public function deleting(EntryInterface $entry)
|
||||||
|
{
|
||||||
|
if ($entry->is_system) {
|
||||||
|
abort(403, trans('visiosoft.module.advs::message.you_can_not_delete_a_system_status'));
|
||||||
|
}
|
||||||
|
|
||||||
|
parent::deleting($entry);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -80,6 +80,7 @@
|
|||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.product-price-hb~p{
|
.product-price-hb~p{
|
||||||
font-size:.7em;
|
font-size:.7em;
|
||||||
}
|
}
|
||||||
@ -92,4 +93,38 @@
|
|||||||
}
|
}
|
||||||
.gallery-card:hover>.product-info-hb>.review>p{
|
.gallery-card:hover>.product-info-hb>.review>p{
|
||||||
display: none;
|
display: none;
|
||||||
|
|
||||||
|
.imgs{
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.ads-img{
|
||||||
|
position:inherit;
|
||||||
|
}
|
||||||
|
.imgs .ads-img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.imgs .ads-img:first-child {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.hover-area{
|
||||||
|
position: absolute;
|
||||||
|
display: flex;
|
||||||
|
height: 100%;
|
||||||
|
width: 200px;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
.hover-0 {
|
||||||
|
width: 33%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.hover-1 {
|
||||||
|
width: 33%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.hover-2 {
|
||||||
|
width: 33%;
|
||||||
|
height: 100%;
|
||||||
}
|
}
|
||||||
@ -21,6 +21,7 @@
|
|||||||
transform: translateX(-100%);
|
transform: translateX(-100%);
|
||||||
-webkit-transition: 300ms ease;
|
-webkit-transition: 300ms ease;
|
||||||
transition: 300ms ease;
|
transition: 300ms ease;
|
||||||
|
background-color: #FCFCFC;
|
||||||
@media only screen and (min-width: 768px) {
|
@media only screen and (min-width: 768px) {
|
||||||
height: initial;
|
height: initial;
|
||||||
position: initial;
|
position: initial;
|
||||||
@ -29,7 +30,7 @@
|
|||||||
transform: initial;
|
transform: initial;
|
||||||
}
|
}
|
||||||
@media only screen and (min-width: 992px) {
|
@media only screen and (min-width: 992px) {
|
||||||
padding: 1.5rem 2.25rem;
|
padding: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.reveal {
|
&.reveal {
|
||||||
|
|||||||
@ -1,4 +1,20 @@
|
|||||||
.profile-section {
|
.profile-section {
|
||||||
|
h3 {
|
||||||
|
font-size: 1.25rem;
|
||||||
|
color: #707070;
|
||||||
|
@media only screen and (min-width: 768px) {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
& + p {
|
||||||
|
color: #707070;
|
||||||
|
font-size: 13px;
|
||||||
|
@media only screen and (min-width: 768px) {
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.nav-tabs {
|
.nav-tabs {
|
||||||
border-bottom: 1px solid #dee2e6;
|
border-bottom: 1px solid #dee2e6;
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
@ -63,7 +79,6 @@
|
|||||||
width: 130px;
|
width: 130px;
|
||||||
height: 130px;
|
height: 130px;
|
||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
border-radius: 50%;
|
|
||||||
@media (max-width: 992px) {
|
@media (max-width: 992px) {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
@ -116,22 +131,9 @@
|
|||||||
|
|
||||||
form {
|
form {
|
||||||
.new-profile-image {
|
.new-profile-image {
|
||||||
position: relative;
|
top: -10px;
|
||||||
bottom: 25px;
|
left: -10px;
|
||||||
right: 30px;
|
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
@media (max-width: 992px) {
|
|
||||||
bottom: 120px;
|
|
||||||
left: 100px;
|
|
||||||
top: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 576px) {
|
|
||||||
bottom: auto;
|
|
||||||
left: auto;
|
|
||||||
top: 10px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
.file-field {
|
.file-field {
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
|
|||||||
@ -504,4 +504,6 @@ return [
|
|||||||
'undefined_member' => 'Undefined Member',
|
'undefined_member' => 'Undefined Member',
|
||||||
'new_membership_report' => 'New Membership Report',
|
'new_membership_report' => 'New Membership Report',
|
||||||
'member_login_reports' => 'Member Login Reports',
|
'member_login_reports' => 'Member Login Reports',
|
||||||
|
|
||||||
|
'profile_instruction' => 'You can edit your profile information from this page.',
|
||||||
];
|
];
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
<img src="{{ img('visiosoft.module.profile::images/nav-menu.svg').url }}" alt="nav icon" id="navbarSideButton"
|
<img src="{{ img('visiosoft.module.profile::images/nav-menu.svg').url }}" alt="nav icon" id="navbarSideButton"
|
||||||
class="ml-2">
|
class="ml-2">
|
||||||
</div>
|
</div>
|
||||||
<div class="col-10 col-sm-6 col-md-3 profile-navigation border rounded navbar-side bg-white" id="navbarSide">
|
<div class="col-10 col-sm-6 col-md-3 profile-navigation border rounded navbar-side" id="navbarSide">
|
||||||
<span class="px-3 mb-2 link-unstyled">
|
<span class="px-3 mb-2 link-unstyled">
|
||||||
{{ img('visiosoft.module.profile::images/interface.svg').data|raw }}
|
{{ img('visiosoft.module.profile::images/interface.svg').data|raw }}
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
@ -12,19 +12,25 @@
|
|||||||
{% set profile_photo = user.file ? user.file.make.url : img('visiosoft.module.profile::images/profile-default.png').url %}
|
{% set profile_photo = user.file ? user.file.make.url : img('visiosoft.module.profile::images/profile-default.png').url %}
|
||||||
|
|
||||||
<div class="row px-3">
|
<div class="row px-3">
|
||||||
|
|
||||||
<!-- User Profile Form Section-->
|
<!-- User Profile Form Section-->
|
||||||
<div class="col-md-12 bg-light profile-section pb-4 px-5">
|
<div class="col-md-12 bg-white profile-section pb-4 px-1 px-sm-5 border">
|
||||||
<div class="tab-content py-3 px-3 px-sm-0" id="nav-tabContent">
|
<div class="tab-content py-3 px-3 px-sm-0" id="nav-tabContent">
|
||||||
<div class="tab-pane fade show active" id="nav-profile" role="tabpanel"
|
<div class="tab-pane fade show active" id="nav-profile" role="tabpanel"
|
||||||
aria-labelledby="nav-profile-tab">
|
aria-labelledby="nav-profile-tab">
|
||||||
|
<div class="col-12 mb-4 mb-md-5 mt-md-3 px-3 px-md-0">
|
||||||
|
<h3>{{ trans('visiosoft.module.profile::field.profile.name') }}</h3>
|
||||||
|
<p>{{ trans('visiosoft.module.profile::field.profile_instruction') }}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
{% set userForm = form('userProfile').entry(user.id).get() %}
|
{% set userForm = form('userProfile').entry(user.id).get() %}
|
||||||
{{ userForm.open()|raw }}
|
{{ userForm.open()|raw }}
|
||||||
<div class="mt-4 d-flex profile--desc flex-column flex-lg-row">
|
<div class="mt-4 d-flex profile--desc flex-column flex-lg-row">
|
||||||
<div class="profile-image d-flex d-sm-block m-auto m-sm-0 mr-sm-3">
|
<div class="profile-image d-flex d-sm-block m-auto m-sm-0 mr-sm-3 position-relative">
|
||||||
<img src="{{ profile_photo }}">
|
<img src="{{ profile_photo }}">
|
||||||
<i class="new-profile-image">{{ img('visiosoft.module.profile::images/camera.svg').data|raw }}</i>
|
<div class="new-profile-image position-absolute">
|
||||||
|
{{ img('visiosoft.module.profile::images/camera.svg').data|raw }}
|
||||||
|
</div>
|
||||||
{% if setting_value('visiosoft.module.profile::upload_avatar') %}
|
{% if setting_value('visiosoft.module.profile::upload_avatar') %}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
{{ userForm.fields.file|raw }}
|
{{ userForm.fields.file|raw }}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user