Compare commits
10 Commits
50258a116a
...
88b4725a69
Author | SHA1 | Date | |
---|---|---|---|
88b4725a69 | |||
793f6ec7da | |||
9ceb854168 | |||
27d26848e2 | |||
01785b7bb9 | |||
18e5f8f173 | |||
b3e543863a | |||
f9a589c05f | |||
50c804d445 | |||
ea35db2164 |
0
crm-panel/.gitignore → .gitignore
vendored
0
crm-panel/.gitignore → .gitignore
vendored
82
app/Http/Controllers/AboutController.php
Normal file
82
app/Http/Controllers/AboutController.php
Normal file
@@ -0,0 +1,82 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\About;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class AboutController extends Controller
|
||||
{
|
||||
// Show all blocks
|
||||
public function index()
|
||||
{
|
||||
$abouts = About::orderBy('display_order')->get();
|
||||
return view('abouts.index', compact('abouts'));
|
||||
}
|
||||
|
||||
// Show form to create new block
|
||||
public function create()
|
||||
{
|
||||
return view('abouts.create');
|
||||
}
|
||||
|
||||
public function show($id)
|
||||
{
|
||||
$about = About::findOrFail($id);
|
||||
return view('abouts.show', compact('about'));
|
||||
}
|
||||
|
||||
|
||||
// Store new block to DB
|
||||
public function store(Request $request)
|
||||
{
|
||||
$data = $this->validateData($request);
|
||||
|
||||
About::create($data);
|
||||
|
||||
return redirect()->route('abouts.index')->with('success', 'Block created successfully.');
|
||||
}
|
||||
|
||||
// Show form to edit a block
|
||||
public function edit($id)
|
||||
{
|
||||
$about = About::findOrFail($id);
|
||||
return view('abouts.edit', compact('about'));
|
||||
}
|
||||
|
||||
// Update existing block
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$about = About::findOrFail($id);
|
||||
|
||||
$data = $this->validateData($request);
|
||||
|
||||
$about->update($data);
|
||||
|
||||
return redirect()->route('abouts.index')->with('success', 'Block updated successfully.');
|
||||
}
|
||||
|
||||
// Delete a block
|
||||
public function destroy($id)
|
||||
{
|
||||
$about = About::findOrFail($id);
|
||||
$about->delete();
|
||||
|
||||
return redirect()->route('abouts.index')->with('success', 'Block deleted successfully.');
|
||||
}
|
||||
|
||||
// Validation rules
|
||||
protected function validateData(Request $request)
|
||||
{
|
||||
return $request->validate([
|
||||
'title' => 'nullable|string|max:255',
|
||||
'description' => 'nullable|string',
|
||||
'icon_class' => 'nullable|string|max:255',
|
||||
'button_text' => 'nullable|string|max:100',
|
||||
'button_url' => 'nullable|string|max:255',
|
||||
'image' => 'nullable|image|max:2048', // max 2MB image upload
|
||||
'display_order' => 'nullable|integer',
|
||||
'extra_classes' => 'nullable|string|max:255',
|
||||
]);
|
||||
}
|
||||
}
|
145
app/Http/Controllers/BlogController.php
Normal file
145
app/Http/Controllers/BlogController.php
Normal file
@@ -0,0 +1,145 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Blog;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class BlogController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$blogs = Blog::orderBy('display_order')->get();
|
||||
return view('blogs.index', compact('blogs'));
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
return view('blogs.create');
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'title' => 'required',
|
||||
'thumbnail' => 'required|image|mimes:jpeg,png,jpg,webp',
|
||||
'banner' => 'nullable|image|mimes:jpeg,png,jpg,webp',
|
||||
'subtitle1' => 'nullable|string',
|
||||
'description1' => 'nullable|string',
|
||||
'subtitle2' => 'nullable|string',
|
||||
'description2' => 'nullable|string',
|
||||
'image' => 'nullable|image|mimes:jpeg,png,jpg,webp',
|
||||
'button_text' => 'required|string',
|
||||
'button_url' => 'nullable|string',
|
||||
'display_order' => 'nullable|integer',
|
||||
'is_published' => 'nullable|boolean',
|
||||
]);
|
||||
if ($request->hasFile('thumbnail')) {
|
||||
$validated['thumbnail'] = $request->file('thumbnail')->store('blogs/thumbnails', 'public');
|
||||
}
|
||||
|
||||
if ($request->hasFile('banner')) {
|
||||
$validated['banner'] = $request->file('banner')->store('blogs/banners', 'public');
|
||||
}
|
||||
|
||||
if ($request->hasFile('image')) {
|
||||
$validated['image'] = $request->file('image')->store('blogs/images', 'public');
|
||||
}
|
||||
|
||||
$validated['is_published'] = $request->has('is_published'); // checkbox handling
|
||||
|
||||
Blog::create($validated);
|
||||
|
||||
return redirect()->route('blogs.index')->with('success', 'Blog created successfully');
|
||||
}
|
||||
|
||||
|
||||
public function show($id)
|
||||
{
|
||||
$blog = Blog::findOrFail($id);
|
||||
return view('blogs.show', compact('blog'));
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
$blog = Blog::findOrFail($id);
|
||||
return view('blogs.edit', compact('blog'));
|
||||
}
|
||||
|
||||
public function update(Request $request, Blog $blog)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'title' => 'required|string',
|
||||
'thumbnail' => 'required|image|mimes:jpeg,png,jpg,webp',
|
||||
'banner' => 'nullable|image|mimes:jpeg,png,jpg,webp',
|
||||
'subtitle1' => 'nullable|string',
|
||||
'description1' => 'nullable|string',
|
||||
'subtitle2' => 'nullable|string',
|
||||
'description2' => 'nullable|string',
|
||||
'image' => 'nullable|image|mimes:jpeg,png,jpg,webp',
|
||||
'button_text' => 'required|string',
|
||||
'button_url' => 'nullable|string',
|
||||
'display_order' => 'nullable|integer',
|
||||
'is_published' => 'nullable|boolean',
|
||||
]);
|
||||
|
||||
if ($request->hasFile('thumbnail')) {
|
||||
if ($blog->thumbnail && Storage::disk('public')->exists($blog->thumbnail)) {
|
||||
Storage::disk('public')->delete($blog->thumbnail);
|
||||
}
|
||||
$validated['thumbnail'] = $request->file('thumbnail')->store('blogs/thumbnails', 'public');
|
||||
}
|
||||
|
||||
// Handle banner file
|
||||
if ($request->hasFile('banner')) {
|
||||
if ($blog->banner && Storage::disk('public')->exists($blog->banner)) {
|
||||
Storage::disk('public')->delete($blog->banner);
|
||||
}
|
||||
$validated['banner'] = $request->file('banner')->store('blogs/banners', 'public');
|
||||
}
|
||||
|
||||
// Handle image file
|
||||
if ($request->hasFile('image')) {
|
||||
if ($blog->image && Storage::disk('public')->exists($blog->image)) {
|
||||
Storage::disk('public')->delete($blog->image);
|
||||
}
|
||||
$validated['image'] = $request->file('image')->store('blogs/images', 'public');
|
||||
}
|
||||
|
||||
$validated['is_published'] = $request->has('is_published'); // checkbox handling
|
||||
|
||||
$blog->update($validated);
|
||||
|
||||
return redirect()->route('blogs.index')->with('success', 'Blog updated successfully');
|
||||
}
|
||||
|
||||
public function destroy($id)
|
||||
{
|
||||
$blog = Blog::findOrFail($id);
|
||||
if ($blog->image && Storage::disk('public')->exists($blog->image)) {
|
||||
Storage::disk('public')->delete($blog->image);
|
||||
}
|
||||
$blog->delete();
|
||||
return redirect()->route('blogs.index')->with('success', 'Blog deleted successfully');
|
||||
}
|
||||
|
||||
public function togglePublish(Request $request, $id)
|
||||
{
|
||||
$blog = Blog::findOrFail($id);
|
||||
$blog->is_published = $request->input('is_published'); // input, not has()
|
||||
$blog->save();
|
||||
|
||||
return response()->json(['success' => true, 'message' => 'Publish status updated.']);
|
||||
}
|
||||
|
||||
public function updateOrder(Request $request)
|
||||
{
|
||||
foreach ($request->order as $item) {
|
||||
Blog::where('id', $item['id'])->update(['display_order' => $item['display_order']]);
|
||||
}
|
||||
|
||||
return response()->json(['status' => 'success']);
|
||||
}
|
||||
|
||||
}
|
@@ -4,6 +4,7 @@ namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Company;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Requests\CompanyRequest;
|
||||
|
||||
class CompanyController extends Controller
|
||||
{
|
||||
@@ -18,22 +19,21 @@ class CompanyController extends Controller
|
||||
return view('companies.create');
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
public function store(CompanyRequest $request)
|
||||
{
|
||||
$request->validate([
|
||||
'name' => 'required',
|
||||
'email' => 'nullable|email',
|
||||
'logo' => 'nullable|image|dimensions:min_width=100,min_height=100',
|
||||
'website' => 'nullable|url',
|
||||
]);
|
||||
// Store the validated data from the form
|
||||
$validatedData = $request->validated();
|
||||
|
||||
// Handle the logo upload if it exists
|
||||
if ($request->hasFile('logo')) {
|
||||
$path = $request->file('logo')->store('public/logos');
|
||||
$request->merge(['logo' => $path]);
|
||||
$logoPath = $request->file('logo')->store('logos', 'public');
|
||||
$validatedData['logo'] = $logoPath;
|
||||
}
|
||||
|
||||
Company::create($request->all());
|
||||
// Create the company with the validated data
|
||||
$company = Company::create($validatedData);
|
||||
|
||||
// Redirect or return a response
|
||||
return redirect()->route('companies.index')->with('success', 'Company created successfully.');
|
||||
}
|
||||
|
||||
@@ -47,22 +47,21 @@ class CompanyController extends Controller
|
||||
return view('companies.edit', compact('company'));
|
||||
}
|
||||
|
||||
public function update(Request $request, Company $company)
|
||||
public function update(CompanyRequest $request, Company $company)
|
||||
{
|
||||
$request->validate([
|
||||
'name' => 'required',
|
||||
'email' => 'nullable|email',
|
||||
'logo' => 'nullable|image|dimensions:min_width=100,min_height=100',
|
||||
'website' => 'nullable|url',
|
||||
]);
|
||||
// Store the validated data from the form
|
||||
$validatedData = $request->validated();
|
||||
|
||||
// Handle the logo upload if it exists
|
||||
if ($request->hasFile('logo')) {
|
||||
$path = $request->file('logo')->store('public/logos');
|
||||
$company->logo = $path;
|
||||
$logoPath = $request->file('logo')->store('logos', 'public');
|
||||
$validatedData['logo'] = $logoPath;
|
||||
}
|
||||
|
||||
$company->update($request->all());
|
||||
// Update the company with the validated data
|
||||
$company->update($validatedData);
|
||||
|
||||
// Redirect or return a response
|
||||
return redirect()->route('companies.index')->with('success', 'Company updated successfully.');
|
||||
}
|
||||
|
@@ -5,6 +5,7 @@ namespace App\Http\Controllers;
|
||||
use App\Models\Employee;
|
||||
use App\Models\Company;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Requests\EmployeeRequest;
|
||||
|
||||
class EmployeeController extends Controller
|
||||
{
|
||||
@@ -20,19 +21,18 @@ class EmployeeController extends Controller
|
||||
return view('employees.create', compact('companies'));
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
public function store(EmployeeRequest $request)
|
||||
{
|
||||
$request->validate([
|
||||
'first_name' => 'required',
|
||||
'last_name' => 'required',
|
||||
'company_id' => 'required|exists:companies,id',
|
||||
'email' => 'nullable|email',
|
||||
'phone' => 'nullable|string',
|
||||
]);
|
||||
|
||||
Employee::create($request->all());
|
||||
|
||||
return redirect()->route('employees.index');
|
||||
$employee = new Employee();
|
||||
$employee->first_name = $request->first_name;
|
||||
$employee->last_name = $request->last_name;
|
||||
$employee->company_id = $request->company_id;
|
||||
$employee->email = $request->email;
|
||||
$employee->phone = $request->phone;
|
||||
|
||||
$employee->save();
|
||||
|
||||
return redirect()->route('employees.index')->with('success', 'Employee created successfully!');
|
||||
}
|
||||
|
||||
public function show(Employee $employee)
|
61
app/Http/Controllers/FrontendController.php
Normal file
61
app/Http/Controllers/FrontendController.php
Normal file
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
// app/Http/Controllers/FrontendController.php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Post;
|
||||
use App\Models\Slider;
|
||||
use App\Models\Preparation;
|
||||
use App\Models\Service;
|
||||
use App\Models\About;
|
||||
use App\Models\Testimonial;
|
||||
use App\Models\Blog;
|
||||
|
||||
class FrontendController extends Controller
|
||||
{
|
||||
public function homePage()
|
||||
{
|
||||
$data['sliderItems'] = Slider::all();
|
||||
$data['preparations'] = Preparation::all();
|
||||
$data['services'] = Service::all();
|
||||
$data['abouts'] = About::all();
|
||||
// $data['contact'] = Contact::first();
|
||||
$data['testimonials'] = Testimonial::all();
|
||||
// $data['partners'] = Partner::all();
|
||||
// $data['passers'] = Passer::all();
|
||||
$data['blogs'] = Blog::where('is_published', true)
|
||||
->orderBy('display_order', 'asc')
|
||||
->take(3)
|
||||
->get();
|
||||
|
||||
return view('frontend.home',$data);
|
||||
}
|
||||
public function aboutPage()
|
||||
{
|
||||
$posts = Post::all();
|
||||
return view('frontend.about', compact('posts'));
|
||||
}
|
||||
|
||||
public function blogDetails($id)
|
||||
{
|
||||
$blog = Blog::findOrFail($id);
|
||||
$otherBlogs = Blog::where('id', '!=', $id)->latest()->take(5)->get(); // Latest 5 except current
|
||||
return view('frontend.blog-details', compact('blog', 'otherBlogs'));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
slider
|
||||
preparation
|
||||
service
|
||||
about
|
||||
contact
|
||||
testimonial
|
||||
partners
|
||||
passers
|
||||
blog
|
||||
*/
|
62
app/Http/Controllers/PostController.php
Normal file
62
app/Http/Controllers/PostController.php
Normal file
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Post;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class PostController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$posts = Post::paginate(10); // paginated, no dumb errors
|
||||
return view('posts.index', compact('posts'));
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
return view('posts.create');
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'title' => 'required|string|max:255',
|
||||
'content' => 'required|string',
|
||||
]);
|
||||
|
||||
Post::create($validated);
|
||||
|
||||
return redirect()->route('posts.index')->with('success', 'Post created successfully.');
|
||||
}
|
||||
|
||||
public function show(Post $post)
|
||||
{
|
||||
return view('posts.show', compact('post'));
|
||||
}
|
||||
|
||||
public function edit(Post $post)
|
||||
{
|
||||
return view('posts.edit', compact('post'));
|
||||
}
|
||||
|
||||
public function update(Request $request, Post $post)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'title' => 'required|string|max:255',
|
||||
'content' => 'required|string',
|
||||
]);
|
||||
|
||||
$post->update($validated);
|
||||
|
||||
return redirect()->route('posts.index')->with('success', 'Post updated successfully.');
|
||||
}
|
||||
|
||||
public function destroy(Post $post)
|
||||
{
|
||||
$post->delete();
|
||||
|
||||
return redirect()->route('posts.index')->with('success', 'Post deleted successfully.');
|
||||
}
|
||||
|
||||
}
|
59
app/Http/Controllers/PreparationController.php
Normal file
59
app/Http/Controllers/PreparationController.php
Normal file
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Preparation;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class PreparationController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$preparations = Preparation::all();
|
||||
return view('preparations.index', compact('preparations'));
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
return view('preparations.create');
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'title' => 'required|string|max:225',
|
||||
'content' => 'required|string',
|
||||
]);
|
||||
|
||||
Preparation::create($validated);
|
||||
return redirect()->route('preparations.index')->with('success', 'Preparation created successfully');
|
||||
}
|
||||
|
||||
public function show(Preparation $preparation)
|
||||
{
|
||||
return view('preparations.show', compact('preparation'));
|
||||
}
|
||||
|
||||
public function edit(Preparation $preparation)
|
||||
{
|
||||
return view('preparations.edit', compact('preparation'));
|
||||
}
|
||||
|
||||
public function update(Request $request, Preparation $preparation)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'title' => 'required|string|max:225',
|
||||
'content' => 'required|string',
|
||||
]);
|
||||
|
||||
$preparation->update($validated);
|
||||
return redirect()->route('preparations.index')->with('success', 'Preparation updated successfully');
|
||||
}
|
||||
|
||||
public function destroy(Preparation $preparation)
|
||||
{
|
||||
$preparation->delete();
|
||||
|
||||
return redirect()->route('preparations.index')->with('success', 'Preparation deleted successfully');
|
||||
}
|
||||
}
|
81
app/Http/Controllers/ServiceController.php
Normal file
81
app/Http/Controllers/ServiceController.php
Normal file
@@ -0,0 +1,81 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Service;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class ServiceController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$services = Service::all();
|
||||
return view('services.index', compact('services'));
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
return view('services.create');
|
||||
}
|
||||
public function store(Request $request)
|
||||
{
|
||||
|
||||
$validated = $request->validate([
|
||||
'title' => 'required|string|max:225',
|
||||
'description' => 'required|string',
|
||||
'button_url' => 'nullable|url',
|
||||
'image' => 'nullable|image|mimes:jpeg,png,jpg,webp|max:2048',
|
||||
]);
|
||||
|
||||
if ($request->hasFile('image')) {
|
||||
$validated['image'] = $request->file('image')->store('services', 'public');
|
||||
}
|
||||
|
||||
Service::create($validated);
|
||||
|
||||
return redirect()->route('services.index')->with('success', 'Service created successfully');
|
||||
}
|
||||
|
||||
public function show(Service $service)
|
||||
{
|
||||
return view('services.show', compact('service'));
|
||||
}
|
||||
|
||||
public function edit(Service $service)
|
||||
{
|
||||
return view('services.edit', compact('service'));
|
||||
}
|
||||
|
||||
public function update(Request $request, Service $service)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'title' => 'required|string|max:225',
|
||||
'description' => 'required|string',
|
||||
'button_url' => 'nullable|string',
|
||||
'image' => 'nullable|image|mimes:jpeg,png,jpg,webp|max:2048',
|
||||
]);
|
||||
|
||||
if ($request->hasFile('image')) {
|
||||
// Delete old image
|
||||
if ($service->image) {
|
||||
Storage::disk('public')->delete($service->image);
|
||||
}
|
||||
|
||||
$validated['image'] = $request->file('image')->store('services', 'public');
|
||||
}
|
||||
|
||||
$service->update($validated);
|
||||
return redirect()->route('services.index')->with('success', 'Service updated successfully');
|
||||
}
|
||||
|
||||
public function destroy(Service $service)
|
||||
{
|
||||
if ($service->image) {
|
||||
Storage::disk('public')->delete($service->image);
|
||||
}
|
||||
|
||||
$service->delete();
|
||||
return redirect()->route('services.index')->with('success', 'Service deleted successfully');
|
||||
}
|
||||
}
|
92
app/Http/Controllers/SliderController.php
Normal file
92
app/Http/Controllers/SliderController.php
Normal file
@@ -0,0 +1,92 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Slider;
|
||||
|
||||
class SliderController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$sliders = Slider::all();
|
||||
return view('sliders.index', compact('sliders'));
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
return view('sliders.create');
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
if ($request->hasFile('logo')) {
|
||||
$logoPath = $request->file('logo')->store('logos', 'public');
|
||||
$validatedData['logo'] = $logoPath;
|
||||
}
|
||||
// $imagePath = $request->file('image')->store('sliders', 'public');
|
||||
$slider = Slider::create([
|
||||
'title' => $request->title,
|
||||
'subtitle' => $request->subtitle,
|
||||
'description' => $request->description,
|
||||
// 'image' => hasFile('image'),
|
||||
'button_text' => $request->button_text,
|
||||
'button_url' => $request->button_url,
|
||||
]);
|
||||
return redirect()->route('sliders.index')->with('success', 'Slider created successfully');
|
||||
}
|
||||
|
||||
public function destroy($id)
|
||||
{
|
||||
$slider = Slider::findOrFail($id);
|
||||
|
||||
// Optionally delete the image from storage
|
||||
if ($slider->image && \Storage::disk('public')->exists($slider->image)) {
|
||||
\Storage::disk('public')->delete($slider->image);
|
||||
}
|
||||
|
||||
$slider->delete();
|
||||
|
||||
return redirect()->route('sliders.index')->with('success', 'Slider deleted successfully');
|
||||
}
|
||||
public function show($id)
|
||||
{
|
||||
$slider = Slider::findOrFail($id);
|
||||
return view('sliders.show', compact('slider'));
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
$slider = Slider::findOrFail($id);
|
||||
return view('sliders.edit', compact('slider'));
|
||||
}
|
||||
|
||||
public function update(Request $request, Slider $slider)
|
||||
{
|
||||
// dd($slider->toArray());
|
||||
$validated = $request->validate([
|
||||
'title' => 'nullable|string|max:255',
|
||||
'subtitle' => 'nullable|string|max:255',
|
||||
'description' => 'nullable|string',
|
||||
'button_text' => 'nullable|string|max:255',
|
||||
'button_url' => 'nullable|string|max:255',
|
||||
'image' => 'nullable|image',
|
||||
]);
|
||||
|
||||
// If image is uploaded
|
||||
if ($request->hasFile('image')) {
|
||||
// Delete old image if exists
|
||||
if ($slider->image && \Storage::disk('public')->exists($slider->image)) {
|
||||
\Storage::disk('public')->delete($slider->image);
|
||||
}
|
||||
$imagePath = $request->file('image')->store('sliders', 'public');
|
||||
$validated['image'] = $imagePath;
|
||||
}
|
||||
|
||||
$slider->update($validated);
|
||||
|
||||
return redirect()->route('sliders.index')->with('success', 'Slider updated successfully');
|
||||
}
|
||||
|
||||
}
|
||||
|
88
app/Http/Controllers/TestimonialController.php
Normal file
88
app/Http/Controllers/TestimonialController.php
Normal file
@@ -0,0 +1,88 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Testimonial;
|
||||
|
||||
class TestimonialController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$testimonials = Testimonial::all();
|
||||
return view('testimonials.index', compact('testimonials'));
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
return view('testimonials.create');
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'name' => 'required|string|max:225',
|
||||
'message' => 'required|string',
|
||||
'image' => 'nullable|image|mimes:jpeg,png,jpg,webp|max:2048',
|
||||
]);
|
||||
|
||||
if ($request->hasFile('image')) {
|
||||
$validated['image'] = $request->file('image')->store('testimonials', 'public');
|
||||
}
|
||||
|
||||
Testimonial::create($validated);
|
||||
|
||||
return redirect()->route('testimonials.index')->with('success', 'Testimonials created successfully');
|
||||
}
|
||||
|
||||
public function destroy($id)
|
||||
{
|
||||
$testimonial = Testimonial::findOrFail($id);
|
||||
|
||||
// Optionally delete the image from storage
|
||||
if ($testimonial->image && \Storage::disk('public')->exists($testimonial->image)) {
|
||||
\Storage::disk('public')->delete($testimonial->image);
|
||||
}
|
||||
|
||||
$testimonial->delete();
|
||||
|
||||
return redirect()->route('testimonials.index')->with('success', 'testimonial deleted successfully');
|
||||
}
|
||||
public function show($id)
|
||||
{
|
||||
$testimonial = Testimonial::findOrFail($id);
|
||||
return view('testimonials.show', compact('testimonial'));
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
$testimonial = Testimonial::findOrFail($id);
|
||||
return view('testimonials.edit', compact('testimonial'));
|
||||
}
|
||||
|
||||
public function update(Request $request, testimonial $testimonial)
|
||||
{
|
||||
// dd($testimonial->toArray());
|
||||
$validated = $request->validate([
|
||||
'name' => 'nullable|string|max:255',
|
||||
'message' => 'nullable|string',
|
||||
'image' => 'nullable|image',
|
||||
]);
|
||||
|
||||
// If image is uploaded
|
||||
if ($request->hasFile('image')) {
|
||||
// Delete old image if exists
|
||||
if ($testimonial->image && \Storage::disk('public')->exists($testimonial->image)) {
|
||||
\Storage::disk('public')->delete($testimonial->image);
|
||||
}
|
||||
$imagePath = $request->file('image')->store('testimonials', 'public');
|
||||
$validated['image'] = $imagePath;
|
||||
}
|
||||
|
||||
$testimonial->update($validated);
|
||||
|
||||
return redirect()->route('testimonials.index')->with('success', 'testimonial updated successfully');
|
||||
}
|
||||
|
||||
}
|
||||
|
31
app/Http/Requests/CompanyRequest.php
Normal file
31
app/Http/Requests/CompanyRequest.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class CompanyRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true; // Change this to true to allow validation
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'name' => 'required|string|max:255', // Name is required
|
||||
'email' => 'nullable|email|max:255', // Email is optional but must be a valid email if provided
|
||||
'logo' => 'nullable|image|dimensions:min_width=100,min_height=100', // Logo must be an image and at least 100x100 pixels
|
||||
'website' => 'nullable|url|max:255', // Website is optional but must be a valid URL if provided
|
||||
];
|
||||
}
|
||||
}
|
32
app/Http/Requests/EmployeeRequest.php
Normal file
32
app/Http/Requests/EmployeeRequest.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class EmployeeRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'first_name' => 'required|string|max:255', // First name is required and a string
|
||||
'last_name' => 'required|string|max:255', // Last name is required and a string
|
||||
'company_id' => 'required|exists:companies,id', // Company should be valid
|
||||
'email' => 'nullable|email|max:255', // Email is optional but must be a valid email if provided
|
||||
'phone' => 'nullable|string|max:20', // Phone is optional and can be a string up to 20 characters
|
||||
];
|
||||
}
|
||||
}
|
@@ -16,4 +16,9 @@ class Company extends Model
|
||||
'logo',
|
||||
'website',
|
||||
];
|
||||
|
||||
public function employees()
|
||||
{
|
||||
return $this->hasMany(Employee::class);
|
||||
}
|
||||
}
|
@@ -17,4 +17,9 @@ class Employee extends Model
|
||||
'email',
|
||||
'phone',
|
||||
];
|
||||
public function company()
|
||||
{
|
||||
return $this->belongsTo(Company::class);
|
||||
}
|
||||
|
||||
}
|
13
app/Models/Post.php
Normal file
13
app/Models/Post.php
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Post extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
protected $fillable = ['title', 'content'];
|
||||
}
|
10
app/Models/Preparation.php
Normal file
10
app/Models/Preparation.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Preparation extends Model
|
||||
{
|
||||
protected $fillable = ['title', 'content'];
|
||||
}
|
10
app/Models/Service.php
Normal file
10
app/Models/Service.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Service extends Model
|
||||
{
|
||||
protected $fillable = ['title', 'description', 'image', 'button_url'];
|
||||
}
|
14
app/Models/Slider.php
Normal file
14
app/Models/Slider.php
Normal file
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Slider extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
protected $fillable = ['title', 'subtitle', 'description', 'image', 'button_text', 'button_url'];
|
||||
|
||||
}
|
22
app/Models/about.php
Normal file
22
app/Models/about.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class about extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
protected $fillable = [
|
||||
'title',
|
||||
'description',
|
||||
'icon_class',
|
||||
'button_text',
|
||||
'button_url',
|
||||
'image',
|
||||
'display_order',
|
||||
'extra_classes'
|
||||
];
|
||||
//
|
||||
}
|
23
app/Models/blog.php
Normal file
23
app/Models/blog.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class blog extends Model
|
||||
{
|
||||
protected $fillable =[
|
||||
'title',
|
||||
'thumbnail',
|
||||
'banner',
|
||||
'subtitle1',
|
||||
'description1',
|
||||
'subtitle2',
|
||||
'description2',
|
||||
'image',
|
||||
'button_url',
|
||||
'button_text',
|
||||
'display_order',
|
||||
'is_published'
|
||||
];
|
||||
}
|
10
app/Models/testimonial.php
Normal file
10
app/Models/testimonial.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class testimonial extends Model
|
||||
{
|
||||
protected $fillable = ['name', 'message', 'image'];
|
||||
}
|
0
crm-panel/composer.lock → composer.lock
generated
0
crm-panel/composer.lock → composer.lock
generated
@@ -1,11 +0,0 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('content')
|
||||
<div class="container mt-5">
|
||||
<h1>Dashboard</h1>
|
||||
<div class="d-flex gap-3 mt-3">
|
||||
<a href="{{ route('companies.index') }}" class="btn btn-primary">Manage Companies</a>
|
||||
<a href="{{ route('employees.index') }}" class="btn btn-secondary">Manage Employees</a>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
@@ -1,22 +0,0 @@
|
||||
<?php
|
||||
use App\Http\Controllers\CompanyController;
|
||||
use App\Http\Controllers\EmployeeController;
|
||||
use App\Http\Controllers\Auth\AuthenticatedSessionController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::get('/', function () {
|
||||
return view('welcome');
|
||||
});
|
||||
|
||||
Route::get('/dashboard', function () {
|
||||
return view('dashboard');
|
||||
})->middleware(['auth', 'verified'])->name('dashboard');
|
||||
|
||||
Route::middleware('auth')->group(function () {
|
||||
Route::resource('companies', CompanyController::class);
|
||||
Route::resource('employees', EmployeeController::class);
|
||||
});
|
||||
|
||||
Route::post('/logout', [AuthenticatedSessionController::class, 'destroy'])->name('logout');
|
||||
|
||||
require __DIR__.'/auth.php';
|
30
database/migrations/2025_06_03_063452_create_posts_table.php
Normal file
30
database/migrations/2025_06_03_063452_create_posts_table.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('posts', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('title');
|
||||
$table->text('content');
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('posts');
|
||||
}
|
||||
};
|
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('sliders', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('title')->nullable();
|
||||
$table->string('subtitle')->nullable();
|
||||
$table->string('description')->nullable();
|
||||
$table->string('image')->nullable();
|
||||
$table->string('button_text')->nullable();
|
||||
$table->string('button_url')->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('sliders');
|
||||
}
|
||||
};
|
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('preparations', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('title')->nullable();
|
||||
$table->string('content')->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('preparations');
|
||||
}
|
||||
};
|
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('preparations', function (Blueprint $table) {
|
||||
$table->text('content')->change(); // or longText
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
//
|
||||
}
|
||||
};
|
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('services', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('title');
|
||||
$table->text('description');
|
||||
$table->string('image')->nullable();
|
||||
$table->string('button_url')->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('services');
|
||||
}
|
||||
};
|
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('abouts', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('title')->nullable();
|
||||
$table->text('description')->nullable();
|
||||
$table->string('icon_class')->nullable();
|
||||
$table->string('button_text')->nullable();
|
||||
$table->string('button_url')->nullable();
|
||||
$table->string('image')->nullable();
|
||||
$table->integer('display_order')->nullable();
|
||||
$table->string('extra_classes')->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('abouts');
|
||||
}
|
||||
};
|
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('testimonials', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('name');
|
||||
$table->text('message');
|
||||
$table->string('image');
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('testimonials');
|
||||
}
|
||||
};
|
40
database/migrations/2025_06_06_113520_create_blogs_table.php
Normal file
40
database/migrations/2025_06_06_113520_create_blogs_table.php
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('blogs', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('title');
|
||||
$table->string('thumbnail');
|
||||
$table->string('banner')->nullable();
|
||||
$table->string('subtitle1')->nullable();
|
||||
$table->text('description1')->nullable();
|
||||
$table->string('subtitle2')->nullable();
|
||||
$table->text('description2')->nullable();
|
||||
$table->string('image')->nullable();
|
||||
$table->string('button_text');
|
||||
$table->string('button_url')->nullable();
|
||||
$table->integer('display_order')->nullable();
|
||||
$table->boolean('is_published')->default(false);
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists(table: 'blog');
|
||||
}
|
||||
};
|
2
crm-panel/package-lock.json → package-lock.json
generated
2
crm-panel/package-lock.json → package-lock.json
generated
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "crm-panel",
|
||||
"name": "ccms",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
3322
public/assets/css/animate.css
vendored
Normal file
3322
public/assets/css/animate.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
11731
public/assets/css/bootstrap.min.css
vendored
Normal file
11731
public/assets/css/bootstrap.min.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
206
public/assets/css/flaticon.css
Normal file
206
public/assets/css/flaticon.css
Normal file
@@ -0,0 +1,206 @@
|
||||
@font-face {
|
||||
font-family: "flaticon";
|
||||
src: url("../fonts/flaticon-92c18bb4a83ca25255a20027c5427312.ttf") format("truetype"),
|
||||
url("../fonts/flaticon-92c18bb4a83ca25255a20027c5427312.woff") format("woff"),
|
||||
url("../fonts/flaticon-92c18bb4a83ca25255a20027c5427312.woff2") format("woff2"),
|
||||
url("../fonts/flaticon-92c18bb4a83ca25255a20027c5427312.eot#iefix") format("embedded-opentype"),
|
||||
url("../fonts/flaticon-92c18bb4a83ca25255a20027c5427312.svg#flaticon") format("svg");
|
||||
}
|
||||
|
||||
i[class^="flaticon-"]:before, i[class*=" flaticon-"]:before {
|
||||
font-family: flaticon !important;
|
||||
font-style: normal;
|
||||
font-weight: normal !important;
|
||||
font-variant: normal;
|
||||
text-transform: none;
|
||||
line-height: 1;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.flaticon-cardiovascular:before {
|
||||
content: "\f101";
|
||||
}
|
||||
.flaticon-map:before {
|
||||
content: "\f102";
|
||||
}
|
||||
.flaticon-heart-beat:before {
|
||||
content: "\f103";
|
||||
}
|
||||
.flaticon-send:before {
|
||||
content: "\f104";
|
||||
}
|
||||
.flaticon-first-aid-kit:before {
|
||||
content: "\f105";
|
||||
}
|
||||
.flaticon-heart:before {
|
||||
content: "\f106";
|
||||
}
|
||||
.flaticon-support:before {
|
||||
content: "\f107";
|
||||
}
|
||||
.flaticon-cardiology:before {
|
||||
content: "\f108";
|
||||
}
|
||||
.flaticon-healthcare:before {
|
||||
content: "\f109";
|
||||
}
|
||||
.flaticon-cardiogram:before {
|
||||
content: "\f10a";
|
||||
}
|
||||
.flaticon-call:before {
|
||||
content: "\f10b";
|
||||
}
|
||||
.flaticon-shopping-cart:before {
|
||||
content: "\f10c";
|
||||
}
|
||||
.flaticon-search:before {
|
||||
content: "\f10d";
|
||||
}
|
||||
.flaticon-exit:before {
|
||||
content: "\f10e";
|
||||
}
|
||||
.flaticon-microsurgery:before {
|
||||
content: "\f10f";
|
||||
}
|
||||
.flaticon-phone-call:before {
|
||||
content: "\f110";
|
||||
}
|
||||
.flaticon-email:before {
|
||||
content: "\f111";
|
||||
}
|
||||
.flaticon-clock:before {
|
||||
content: "\f112";
|
||||
}
|
||||
.flaticon-share:before {
|
||||
content: "\f113";
|
||||
}
|
||||
.flaticon-chat:before {
|
||||
content: "\f114";
|
||||
}
|
||||
.flaticon-pdf:before {
|
||||
content: "\f115";
|
||||
}
|
||||
.flaticon-arrow-down:before {
|
||||
content: "\f116";
|
||||
}
|
||||
.flaticon-straight-quotes:before {
|
||||
content: "\f117";
|
||||
}
|
||||
.flaticon-veterinarian:before {
|
||||
content: "\f118";
|
||||
}
|
||||
.flaticon-hospital:before {
|
||||
content: "\f119";
|
||||
}
|
||||
.flaticon-heart-disease:before {
|
||||
content: "\f11a";
|
||||
}
|
||||
.flaticon-cardiology-2:before {
|
||||
content: "\f11b";
|
||||
}
|
||||
.flaticon-diagnosis:before {
|
||||
content: "\f11c";
|
||||
}
|
||||
.flaticon-arrow-pointing-to-right:before {
|
||||
content: "\f11d";
|
||||
}
|
||||
.flaticon-map-1:before {
|
||||
content: "\f11e";
|
||||
}
|
||||
.flaticon-heart-2:before {
|
||||
content: "\f11f";
|
||||
}
|
||||
.flaticon-heart-3:before {
|
||||
content: "\f120";
|
||||
}
|
||||
.flaticon-organ-transplantation:before {
|
||||
content: "\f121";
|
||||
}
|
||||
.flaticon-heart-attack:before {
|
||||
content: "\f122";
|
||||
}
|
||||
.flaticon-heart-4:before {
|
||||
content: "\f123";
|
||||
}
|
||||
.flaticon-vaccine:before {
|
||||
content: "\f124";
|
||||
}
|
||||
.flaticon-heart-5:before {
|
||||
content: "\f125";
|
||||
}
|
||||
.flaticon-heart-6:before {
|
||||
content: "\f126";
|
||||
}
|
||||
.flaticon-cardiologist:before {
|
||||
content: "\f127";
|
||||
}
|
||||
.flaticon-health-care:before {
|
||||
content: "\f128";
|
||||
}
|
||||
.flaticon-heart-7:before {
|
||||
content: "\f129";
|
||||
}
|
||||
.flaticon-defribillator:before {
|
||||
content: "\f12a";
|
||||
}
|
||||
.flaticon-heart-8:before {
|
||||
content: "\f12b";
|
||||
}
|
||||
.flaticon-emergency-call:before {
|
||||
content: "\f12c";
|
||||
}
|
||||
.flaticon-awards:before {
|
||||
content: "\f12d";
|
||||
}
|
||||
.flaticon-ecg-reading:before {
|
||||
content: "\f12e";
|
||||
}
|
||||
.flaticon-patient:before {
|
||||
content: "\f12f";
|
||||
}
|
||||
.flaticon-patient-1:before {
|
||||
content: "\f130";
|
||||
}
|
||||
.flaticon-medical-insurance:before {
|
||||
content: "\f131";
|
||||
}
|
||||
.flaticon-search-1:before {
|
||||
content: "\f132";
|
||||
}
|
||||
.flaticon-placeholder:before {
|
||||
content: "\f133";
|
||||
}
|
||||
.flaticon-healthcare-2:before {
|
||||
content: "\f134";
|
||||
}
|
||||
.flaticon-file:before {
|
||||
content: "\f135";
|
||||
}
|
||||
.flaticon-tick-mark:before {
|
||||
content: "\f136";
|
||||
}
|
||||
.flaticon-doctor:before {
|
||||
content: "\f137";
|
||||
}
|
||||
.flaticon-doctor-1:before {
|
||||
content: "\f138";
|
||||
}
|
||||
.flaticon-right-arrow:before {
|
||||
content: "\f139";
|
||||
}
|
||||
.flaticon-share-1:before {
|
||||
content: "\f13a";
|
||||
}
|
||||
.flaticon-left-quote:before {
|
||||
content: "\f13b";
|
||||
}
|
||||
.flaticon-comment:before {
|
||||
content: "\f13c";
|
||||
}
|
||||
.flaticon-phone-call-1:before {
|
||||
content: "\f13d";
|
||||
}
|
||||
.flaticon-bubble-chat:before {
|
||||
content: "\f13e";
|
||||
}
|
2337
public/assets/css/font-awesome.css
vendored
Normal file
2337
public/assets/css/font-awesome.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
72
public/assets/css/fontello.css
vendored
Normal file
72
public/assets/css/fontello.css
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
@font-face {
|
||||
font-family: 'fontello';
|
||||
src: url('../fonts/fontello-51113876.eot');
|
||||
src: url('../fonts/fontello-51113876.eot#iefix') format('embedded-opentype'),
|
||||
url('../fonts/fontello-51113876.woff2') format('woff2'),
|
||||
url('../fonts/fontello-51113876.woff') format('woff'),
|
||||
url('../fonts/fontello-51113876.ttf') format('truetype'),
|
||||
url('../fonts/fontello-51113876.svg#fontello') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
|
||||
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
|
||||
/*
|
||||
@media screen and (-webkit-min-device-pixel-ratio:0) {
|
||||
@font-face {
|
||||
font-family: 'fontello';
|
||||
src: url('https://themetechmount.com/html/dezily/font/fontello.svg?51113876#fontello') format('svg');
|
||||
}
|
||||
}
|
||||
*/
|
||||
[class^="icon-"]:before, [class*=" icon-"]:before {
|
||||
font-family: "fontello";
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
speak: never;
|
||||
|
||||
display: inline-block;
|
||||
text-decoration: inherit;
|
||||
width: 1em;
|
||||
margin-right: .2em;
|
||||
text-align: center;
|
||||
/* opacity: .8; */
|
||||
|
||||
/* For safety - reset parent styles, that can break glyph codes*/
|
||||
font-variant: normal;
|
||||
text-transform: none;
|
||||
|
||||
/* fix buttons height, for twitter bootstrap */
|
||||
line-height: 1em;
|
||||
|
||||
/* Animation center compensation - margins should be symmetric */
|
||||
/* remove if not needed */
|
||||
margin-left: .2em;
|
||||
|
||||
/* you can be more comfortable with increased icons size */
|
||||
/* font-size: 120%; */
|
||||
|
||||
/* Font smoothing. That was taken from TWBS */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
|
||||
/* Uncomment for 3D effect */
|
||||
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
|
||||
}
|
||||
|
||||
.icon-ok:before { content: '\e800'; } /* '' */
|
||||
.icon-left-dir:before { content: '\e801'; } /* '' */
|
||||
.icon-logout:before { content: '\e802'; } /* '' */
|
||||
.icon-right-dir:before { content: '\e803'; } /* '' */
|
||||
.icon-quote-left-alt:before { content: '\e804'; } /* '' */
|
||||
.icon-ok-circle:before { content: '\e805'; } /* '' */
|
||||
.icon-ok-circled:before { content: '\e806'; } /* '' */
|
||||
.icon-share:before { content: '\e807'; } /* '' */
|
||||
.icon-phone:before { content: '\e808'; } /* '' */
|
||||
.icon-mail:before { content: '\e809'; } /* '' */
|
||||
.icon-plus:before { content: '\e80a'; } /* '' */
|
||||
.icon-plus-1:before { content: '\e80b'; } /* '' */
|
||||
.icon-right-open:before { content: '\e80c'; } /* '' */
|
||||
.icon-left-open:before { content: '\e80d'; } /* '' */
|
||||
.icon-angle-circled-right:before { content: '\f138'; } /* '' */
|
||||
.icon-right:before { content: '\f178'; } /* '' */
|
3772
public/assets/css/main.css
Normal file
3772
public/assets/css/main.css
Normal file
File diff suppressed because it is too large
Load Diff
399
public/assets/css/megamenu.css
Normal file
399
public/assets/css/megamenu.css
Normal file
@@ -0,0 +1,399 @@
|
||||
|
||||
/* MEGAMENU STYLE
|
||||
=================================*/
|
||||
nav.main-menu .mega-menu-item.megamenu-fw {
|
||||
position: static;
|
||||
}
|
||||
nav.main-menu .megamenu-fw .mega-submenu, nav.main-menu .megamenu-content {
|
||||
width: auto !important;
|
||||
}
|
||||
nav.main-menu .megamenu-fw .mega-submenu .row{
|
||||
margin: 0;
|
||||
}
|
||||
nav.main-menu .megamenu-content {
|
||||
width: 100%;
|
||||
}
|
||||
nav.main-menu .megamenu-content .title{
|
||||
margin: 0;
|
||||
display: block;
|
||||
background: rgba(0, 0, 0, 0) none repeat scroll 0 0;
|
||||
font-weight: 500;
|
||||
font-size: 14px;
|
||||
text-transform: capitalize;
|
||||
padding: 6px 20px;
|
||||
color: inherit;
|
||||
border-right: 1px solid transparent;
|
||||
}
|
||||
nav.main-menu .mega-menu-item.megamenu-fw .mega-submenu {
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
nav.main-menu ul {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
list-style: none;
|
||||
}
|
||||
nav.main-menu ul li {
|
||||
position: relative;
|
||||
}
|
||||
nav.main-menu{
|
||||
margin-bottom: 0;
|
||||
-moz-border-radius: 0px;
|
||||
-webkit-border-radius: 0px;
|
||||
-o-border-radius: 0px;
|
||||
border-radius: 0px;
|
||||
border: none;
|
||||
z-index: 2;
|
||||
}
|
||||
nav.main-menu li ul.mega-submenu {
|
||||
position: absolute;
|
||||
display: block;
|
||||
width: 250px;
|
||||
opacity: 0.5;
|
||||
z-index: 2;
|
||||
border: 0;
|
||||
top: 50px;
|
||||
-webkit-transform-origin: top;
|
||||
transform-origin: top;
|
||||
-webkit-animation-fill-mode: forwards;
|
||||
animation-fill-mode: forwards;
|
||||
transition: all .5s ease;
|
||||
-webkit-transition: all .5s ease;
|
||||
-moz-transition: all 500ms ease;
|
||||
-o-transition: all 500ms ease;
|
||||
-ms-transition: all 500ms ease;
|
||||
background: #fff;
|
||||
border-radius: 0;
|
||||
box-shadow: 0 3px 25px 0px rgb(43 52 59 / 10%), 0 0 0 rgb(43 52 59 / 10%) inset;
|
||||
-webkit-box-shadow: 0 3px 25px 0px rgb(43 52 59 / 10%), 0 0 0 rgb(43 52 59 / 10%) inset;
|
||||
background-clip: padding-box;
|
||||
border-top: 3px solid #006836;
|
||||
-webkit-transition: all 0.2s ease-out;
|
||||
transition: all 0.5s ease-out;
|
||||
-moz-transition: all 0.5s ease-out;
|
||||
-ms-transition: all 0.5s ease-out;
|
||||
-webkit-box-shadow: 0px 4px 4px 1px rgb(0 0 0 / 20%);
|
||||
box-shadow: 0px 4px 4px 1px rgb(0 0 0 / 20%);
|
||||
-webkit-transform: rotateX(-90deg);
|
||||
transform: rotateX(-90deg);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
}
|
||||
nav.main-menu ul.menu > li{
|
||||
z-index: 11;
|
||||
display: inline-block;
|
||||
}
|
||||
nav.main-menu ul.menu li ul > li:not(:first-child) {
|
||||
border-top: 1px solid;
|
||||
border-color: var(--base-grey);
|
||||
}
|
||||
nav.main-menu ul.menu li ul.mega-submenu li a {
|
||||
font-size: 14px;
|
||||
line-height: 24px;
|
||||
font-weight: 400;
|
||||
display: block;
|
||||
padding: 10px 10px 10px 20px;
|
||||
text-align: left;
|
||||
color: var(--base-bodyfont-color);
|
||||
background-color: var(--base-white);
|
||||
font-family: var(--base-bodyfont);
|
||||
border-radius: 0;
|
||||
-webkit-transition: all .3s linear;
|
||||
transition: all .3s linear;
|
||||
}
|
||||
nav.main-menu ul.menu li ul.mega-submenu li a span {
|
||||
display: inline!important;
|
||||
padding: 4px 8px;
|
||||
background: #ff6f00;
|
||||
color: var(--base-white) !important;
|
||||
text-shadow: none;
|
||||
border-radius: 0;
|
||||
margin-left: 14px;
|
||||
position: relative;
|
||||
text-transform: uppercase;
|
||||
font-size: 11px!important;
|
||||
font-weight: 500!important;
|
||||
}
|
||||
nav.main-menu ul.menu li ul.mega-submenu li a span:before {
|
||||
right: 100%;
|
||||
top: 50%;
|
||||
border: solid transparent;
|
||||
content: " ";
|
||||
height: 0;
|
||||
width: 0;
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
border-color: var(--base-white);
|
||||
border-right-color: #ff6f00;
|
||||
border-width: 5px;
|
||||
margin-top: -5px;
|
||||
}
|
||||
ul.menu-col li a{
|
||||
color: #6f6f6f;
|
||||
}
|
||||
ul.menu-col li a:hover,
|
||||
ul.menu-col li a:focus{
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
|
||||
/* Responsive
|
||||
=================================*/
|
||||
|
||||
@media (min-width: 1200px) {
|
||||
|
||||
nav.main-menu li.mega-menu-item ul.mega-submenu li ul {
|
||||
left: 100%;
|
||||
top: 0;
|
||||
border-top: 0;
|
||||
}
|
||||
nav.main-menu li.mega-menu-item:last-child > ul {
|
||||
right: 0;
|
||||
left: auto;
|
||||
}
|
||||
nav.main-menu ul.menu > li > a{
|
||||
display: block;
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
font-size: 14px;
|
||||
line-height: 26px;
|
||||
font-family: var(--base-headingfont);
|
||||
}
|
||||
nav.main-menu li.mega-menu-item ul.mega-submenu li.mega-menu-item > a.mega-menu-link:before {
|
||||
font-family: 'FontAwesome';
|
||||
float: right;
|
||||
content: "\f105";
|
||||
margin-top: 0;
|
||||
}
|
||||
nav.main-menu ul.mega-submenu.megamenu-content .col-menu{
|
||||
padding: 0;
|
||||
width: 240px;
|
||||
border-right: solid 1px #f0f0f0;
|
||||
}
|
||||
nav.main-menu ul.mega-submenu.megamenu-content .col-menu:first-child{
|
||||
border-left: none;
|
||||
}
|
||||
nav.main-menu ul.mega-submenu.megamenu-content .col-menu:last-child{
|
||||
border-right: none;
|
||||
}
|
||||
nav.main-menu ul.mega-submenu.megamenu-content .content ul.menu-col li:last-child a{
|
||||
border-bottom: unset;
|
||||
}
|
||||
nav.main-menu li.mega-menu-item.on ul.mega-submenu.megamenu-content .content{
|
||||
display: block !important;
|
||||
height: auto !important;
|
||||
}
|
||||
nav.main-menu li.mega-menu-item:hover > ul.mega-submenu {
|
||||
opacity: 1;
|
||||
display: block;
|
||||
visibility: visible;
|
||||
height: auto;
|
||||
filter: alpha(opacity=100);
|
||||
-webkit-transform: rotateX(0);
|
||||
transform: rotateX(0);
|
||||
}
|
||||
|
||||
header.ttm-header-style-01 .site-navigation nav.main-menu li ul.mega-submenu { top: 82px; }
|
||||
header.ttm-header-style-02 .site-navigation nav.main-menu li ul.mega-submenu { top: 82px; }
|
||||
header.ttm-header-style-03 .site-navigation nav.main-menu li ul.mega-submenu { top: 100px; }
|
||||
}
|
||||
|
||||
|
||||
@media (max-width: 1199px) {
|
||||
|
||||
.menubar{
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
z-index: 9;
|
||||
}
|
||||
.menubar-box {
|
||||
display: block;
|
||||
width: 30px;
|
||||
height: 24px;
|
||||
}
|
||||
.menubar-inner, .menubar-inner:after, .menubar-inner:before {
|
||||
position: absolute;
|
||||
width: 30px;
|
||||
height: 3px;
|
||||
transition-timing-function: ease;
|
||||
transition-duration: .15s;
|
||||
transition-property: transform;
|
||||
border-radius: 4px;
|
||||
background-color: #2f2f2f;
|
||||
}
|
||||
.menubar--squeeze .menubar-inner {
|
||||
top: 50%;
|
||||
display: block;
|
||||
margin-top: -2px;
|
||||
transition-timing-function: cubic-bezier(.55,.055,.675,.19);
|
||||
transition-duration: .1s;
|
||||
}
|
||||
.menubar-inner:after, .menubar-inner:before {
|
||||
display: block;
|
||||
content: '';
|
||||
}
|
||||
.menubar-inner:after {
|
||||
bottom: -8px;
|
||||
}
|
||||
.menubar-inner:before {
|
||||
top: -8px;
|
||||
}
|
||||
.menubar--squeeze.is-active .menubar-inner {
|
||||
transition-delay: .14s;
|
||||
transition-timing-function: cubic-bezier(.215,.61,.355,1);
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
.menubar--squeeze.is-active .menubar-inner:before {
|
||||
top: 0;
|
||||
transition: top .1s ease,opacity .1s ease .14s;
|
||||
opacity: 0;
|
||||
}
|
||||
.menubar--squeeze.is-active .menubar-inner:after {
|
||||
bottom: 0;
|
||||
transition: bottom .1s ease,transform .1s cubic-bezier(.215,.61,.355,1) .14s;
|
||||
transform: rotate(-90deg);
|
||||
}
|
||||
nav.main-menu{
|
||||
display: none ;
|
||||
max-height: 10000px;
|
||||
position: absolute;
|
||||
box-shadow: 0 0 10px 0 rgba(0, 43, 92, 0.08);
|
||||
z-index: 100;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background-color: var(--base-white);
|
||||
border-top: 3px solid;
|
||||
overflow: visible;
|
||||
}
|
||||
nav.main-menu.show{
|
||||
display: block;
|
||||
max-height: 10000px;
|
||||
}
|
||||
nav.main-menu ul.menu, nav.main-menu ul.menu > li{
|
||||
display: block;
|
||||
position: relative;
|
||||
}
|
||||
nav.main-menu ul.menu > li > a{
|
||||
display: block;
|
||||
font-weight: 600;
|
||||
font-size: 16px;
|
||||
padding: 15px 15px;
|
||||
line-height: 20px;
|
||||
text-align: left;
|
||||
background-color: var(--base-white);
|
||||
}
|
||||
nav.main-menu ul.menu > li {
|
||||
border-top: solid 1px;
|
||||
border-color: var(--base-grey);
|
||||
}
|
||||
nav.main-menu ul.menu > li:first-child{
|
||||
border-top: none;
|
||||
}
|
||||
nav.main-menu ul.menu li > ul.mega-submenu li a:hover{
|
||||
background-color: var(--base-white);
|
||||
}
|
||||
nav.main-menu li.mega-menu-item a.mega-menu-link:after{
|
||||
font-family: 'FontAwesome';
|
||||
content: "\f105";
|
||||
float: right;
|
||||
font-size: 16px;
|
||||
}
|
||||
nav.main-menu li.mega-menu-item.on > a.mega-menu-link:after{
|
||||
content: "\f107";
|
||||
}
|
||||
nav.main-menu ul.menu-left > li:last-child > ul.mega-submenu{
|
||||
border-bottom: solid 1px #e0e0e0;
|
||||
}
|
||||
nav.main-menu ul.menu li.mega-menu-item ul.mega-submenu{
|
||||
width: 100%;
|
||||
background-color: var(--base-white);
|
||||
float: none;
|
||||
border: none;
|
||||
padding: 0 0 0 15px;
|
||||
-moz-box-shadow: 0px 0px 0px;
|
||||
-webkit-box-shadow: 0px 0px 0px;
|
||||
-o-box-shadow: 0px 0px 0px;
|
||||
box-shadow: 0px 0px 0px;
|
||||
-moz-border-radius: 0px 0px 0px;
|
||||
-webkit-border-radius: 0px 0px 0px;
|
||||
-o-border-radius: 0px 0px 0px;
|
||||
border-radius: 0px 0px 0px;
|
||||
}
|
||||
nav.main-menu ul.menu li ul.mega-submenu li a { padding: 10px 25px; }
|
||||
nav.main-menu ul.menu li ul.mega-submenu li.active > a { background-color: var(--base-white); }
|
||||
nav.main-menu ul.menu li.mega-menu-item ul.mega-submenu.active {
|
||||
position: relative;
|
||||
visibility: visible;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
opacity: 1;
|
||||
z-index: 1;
|
||||
display: contents;
|
||||
background-color: inherit;
|
||||
box-shadow: unset;
|
||||
}
|
||||
nav.main-menu ul.menu ul.mega-submenu li.mega-menu-item.on > ul.mega-submenu{
|
||||
display: inline-block;
|
||||
margin-top: -10px;
|
||||
}
|
||||
nav.main-menu .mega-menu-item .megamenu-content .col-menu .title{
|
||||
padding: 10px 15px 10px 0;
|
||||
line-height: 24px;
|
||||
font-size: 14px;
|
||||
text-transform: none;
|
||||
font-weight: 500;
|
||||
letter-spacing: 0px;
|
||||
margin-bottom: 0;
|
||||
cursor: pointer;
|
||||
background-color: transparent;
|
||||
border-right: 0;
|
||||
border-bottom: solid 1px #e0e0e0;
|
||||
}
|
||||
nav.main-menu .mega-menu-item .megamenu-content .col-menu .title:before{
|
||||
font-family: 'FontAwesome';
|
||||
content: "\f105";
|
||||
float: right;
|
||||
font-size: 16px;
|
||||
margin-left: 10px;
|
||||
position: relative;
|
||||
right: 0;
|
||||
}
|
||||
nav.main-menu .mega-menu-item .megamenu-content .col-menu:last-child .title{
|
||||
border-bottom: none;
|
||||
}
|
||||
nav.main-menu .mega-menu-item .megamenu-content .col-menu.on:last-child .title{
|
||||
border-bottom: solid 1px #e0e0e0;
|
||||
}
|
||||
nav.main-menu .mega-menu-item .megamenu-content .col-menu:last-child ul.menu-col li:last-child a{
|
||||
border-bottom: none;
|
||||
}
|
||||
nav.main-menu .mega-menu-item .megamenu-content .col-menu.on .title:before{
|
||||
content: "\f107";
|
||||
}
|
||||
nav.main-menu .megamenu-content{
|
||||
padding: 0;
|
||||
}
|
||||
nav.main-menu .megamenu-content .col-menu{
|
||||
padding-bottom: 0;
|
||||
max-width: 100%;
|
||||
flex: 100%;
|
||||
}
|
||||
nav.main-menu .megamenu-content .title{
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
padding: 10px 15px;
|
||||
margin-bottom: 0;
|
||||
font-weight: normal;
|
||||
}
|
||||
nav.main-menu .megamenu-content .content{
|
||||
display: none;
|
||||
}
|
||||
nav.main-menu .megamenu-content .content.active{
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
}
|
170
public/assets/css/prettyPhoto.css
Normal file
170
public/assets/css/prettyPhoto.css
Normal file
@@ -0,0 +1,170 @@
|
||||
div.pp_default .pp_top,div.pp_default .pp_top .pp_middle,div.pp_default .pp_top .pp_left,div.pp_default .pp_top .pp_right,div.pp_default .pp_bottom,div.pp_default .pp_bottom .pp_left,div.pp_default .pp_bottom .pp_middle,div.pp_default .pp_bottom .pp_right{height:13px}
|
||||
div.pp_default .pp_top .pp_left{background:url("../images/prettyPhoto/default/sprite.png") -78px -93px no-repeat}
|
||||
div.pp_default .pp_top .pp_middle{background:url("../images/prettyPhoto/default/sprite_x.png") top left repeat-x}
|
||||
div.pp_default .pp_top .pp_right{background:url("../images/prettyPhoto/default/sprite.png") -112px -93px no-repeat}
|
||||
div.pp_default .pp_content .ppt{color:#f8f8f8}
|
||||
div.pp_default .pp_content_container .pp_left{background:url("../images/prettyPhoto/default/sprite_y.png") -7px 0 repeat-y;padding-left:13px}
|
||||
div.pp_default .pp_content_container .pp_right{background:url("../images/prettyPhoto/default/sprite_y.png") top right repeat-y;padding-right:13px}
|
||||
div.pp_default .pp_next:hover{background:url("../images/prettyPhoto/default/sprite_next.png") center right no-repeat;cursor:pointer}
|
||||
div.pp_default .pp_previous:hover{background:url("../images/prettyPhoto/default/sprite_prev.png") center left no-repeat;cursor:pointer}
|
||||
div.pp_default .pp_expand{background:url("../images/prettyPhoto/default/sprite.png") 0 -29px no-repeat;cursor:pointer;width:28px;height:28px}
|
||||
div.pp_default .pp_expand:hover{background:url("../images/prettyPhoto/default/sprite.png") 0 -56px no-repeat;cursor:pointer}
|
||||
div.pp_default .pp_contract{background:url("../images/prettyPhoto/default/sprite.png") 0 -84px no-repeat;cursor:pointer;width:28px;height:28px}
|
||||
div.pp_default .pp_contract:hover{background:url("../images/prettyPhoto/default/sprite.png") 0 -113px no-repeat;cursor:pointer}
|
||||
div.pp_default .pp_close{width:30px;height:30px;background:url("../images/prettyPhoto/default/sprite.png") 2px 1px no-repeat;cursor:pointer}
|
||||
div.pp_default .pp_gallery ul li a{background:url("../images/prettyPhoto/default/default_thumb.png") center center #f8f8f8;border:1px solid #aaa}
|
||||
div.pp_default .pp_social{margin-top:7px}
|
||||
div.pp_default .pp_gallery a.pp_arrow_previous,div.pp_default .pp_gallery a.pp_arrow_next{position:static;left:auto}
|
||||
div.pp_default .pp_nav .pp_play,div.pp_default .pp_nav .pp_pause{background:url("../images/prettyPhoto/default/sprite.png") -51px 1px no-repeat;height:30px;width:30px}
|
||||
div.pp_default .pp_nav .pp_pause{background-position:-51px -29px}
|
||||
div.pp_default a.pp_arrow_previous,div.pp_default a.pp_arrow_next{background:url("../images/prettyPhoto/default/sprite.png") -31px -3px no-repeat;height:20px;width:20px;margin:4px 0 0}
|
||||
div.pp_default a.pp_arrow_next{left:52px;background-position:-82px -3px}
|
||||
div.pp_default .pp_content_container .pp_details{margin-top:5px}
|
||||
div.pp_default .pp_nav{clear:none;height:30px;width:110px;position:relative}
|
||||
div.pp_default .pp_nav .currentTextHolder{font-family:Georgia;font-style:italic;color:#999;font-size:11px;left:75px;line-height:25px;position:absolute;top:2px;margin:0;padding:0 0 0 10px}
|
||||
div.pp_default .pp_close:hover,div.pp_default .pp_nav .pp_play:hover,div.pp_default .pp_nav .pp_pause:hover,div.pp_default .pp_arrow_next:hover,div.pp_default .pp_arrow_previous:hover{opacity:0.7}
|
||||
div.pp_default .pp_description{font-size:11px;font-weight:700;line-height:14px;margin:5px 50px 5px 0}
|
||||
div.pp_default .pp_bottom .pp_left{background:url("../images/prettyPhoto/default/sprite.png") -78px -127px no-repeat}
|
||||
div.pp_default .pp_bottom .pp_middle{background:url("../images/prettyPhoto/default/sprite_x.png") bottom left repeat-x}
|
||||
div.pp_default .pp_bottom .pp_right{background:url("../images/prettyPhoto/default/sprite.png") -112px -127px no-repeat}
|
||||
div.pp_default .pp_loaderIcon{background:url("../images/prettyPhoto/default/loader.gif") center center no-repeat}
|
||||
div.light_rounded .pp_top .pp_left{background:url("../images/prettyPhoto/light_rounded/sprite.png") -88px -53px no-repeat}
|
||||
div.light_rounded .pp_top .pp_right{background:url("../images/prettyPhoto/light_rounded/sprite.png") -110px -53px no-repeat}
|
||||
div.light_rounded .pp_next:hover{background:url("../images/prettyPhoto/light_rounded/btnNext.png") center right no-repeat;cursor:pointer}
|
||||
div.light_rounded .pp_previous:hover{background:url("../images/prettyPhoto/light_rounded/btnPrevious.png") center left no-repeat;cursor:pointer}
|
||||
div.light_rounded .pp_expand{background:url("../images/prettyPhoto/light_rounded/sprite.png") -31px -26px no-repeat;cursor:pointer}
|
||||
div.light_rounded .pp_expand:hover{background:url("../images/prettyPhoto/light_rounded/sprite.png") -31px -47px no-repeat;cursor:pointer}
|
||||
div.light_rounded .pp_contract{background:url("../images/prettyPhoto/light_rounded/sprite.png") 0 -26px no-repeat;cursor:pointer}
|
||||
div.light_rounded .pp_contract:hover{background:url("../images/prettyPhoto/light_rounded/sprite.png") 0 -47px no-repeat;cursor:pointer}
|
||||
div.light_rounded .pp_close{width:75px;height:22px;background:url("../images/prettyPhoto/light_rounded/sprite.png") -1px -1px no-repeat;cursor:pointer}
|
||||
div.light_rounded .pp_nav .pp_play{background:url("../images/prettyPhoto/light_rounded/sprite.png") -1px -100px no-repeat;height:15px;width:14px}
|
||||
div.light_rounded .pp_nav .pp_pause{background:url("../images/prettyPhoto/light_rounded/sprite.png") -24px -100px no-repeat;height:15px;width:14px}
|
||||
div.light_rounded .pp_arrow_previous{background:url("../images/prettyPhoto/light_rounded/sprite.png") 0 -71px no-repeat}
|
||||
div.light_rounded .pp_arrow_next{background:url("../images/prettyPhoto/light_rounded/sprite.png") -22px -71px no-repeat}
|
||||
div.light_rounded .pp_bottom .pp_left{background:url("../images/prettyPhoto/light_rounded/sprite.png") -88px -80px no-repeat}
|
||||
div.light_rounded .pp_bottom .pp_right{background:url("../images/prettyPhoto/light_rounded/sprite.png") -110px -80px no-repeat}
|
||||
div.dark_rounded .pp_top .pp_left{background:url("../images/prettyPhoto/dark_rounded/sprite.png") -88px -53px no-repeat}
|
||||
div.dark_rounded .pp_top .pp_right{background:url("../images/prettyPhoto/dark_rounded/sprite.png") -110px -53px no-repeat}
|
||||
div.dark_rounded .pp_content_container .pp_left{background:url("../images/prettyPhoto/dark_rounded/contentPattern.png") top left repeat-y}
|
||||
div.dark_rounded .pp_content_container .pp_right{background:url("../images/prettyPhoto/dark_rounded/contentPattern.png") top right repeat-y}
|
||||
div.dark_rounded .pp_next:hover{background:url("../images/prettyPhoto/dark_rounded/btnNext.png") center right no-repeat;cursor:pointer}
|
||||
div.dark_rounded .pp_previous:hover{background:url("../images/prettyPhoto/dark_rounded/btnPrevious.png") center left no-repeat;cursor:pointer}
|
||||
div.dark_rounded .pp_expand{background:url("../images/prettyPhoto/dark_rounded/sprite.png") -31px -26px no-repeat;cursor:pointer}
|
||||
div.dark_rounded .pp_expand:hover{background:url("../images/prettyPhoto/dark_rounded/sprite.png") -31px -47px no-repeat;cursor:pointer}
|
||||
div.dark_rounded .pp_contract{background:url("../images/prettyPhoto/dark_rounded/sprite.png") 0 -26px no-repeat;cursor:pointer}
|
||||
div.dark_rounded .pp_contract:hover{background:url("../images/prettyPhoto/dark_rounded/sprite.png") 0 -47px no-repeat;cursor:pointer}
|
||||
div.dark_rounded .pp_close{width:75px;height:22px;background:url("../images/prettyPhoto/dark_rounded/sprite.png") -1px -1px no-repeat;cursor:pointer}
|
||||
div.dark_rounded .pp_description{margin-right:85px;color:#fff}
|
||||
div.dark_rounded .pp_nav .pp_play{background:url("../images/prettyPhoto/dark_rounded/sprite.png") -1px -100px no-repeat;height:15px;width:14px}
|
||||
div.dark_rounded .pp_nav .pp_pause{background:url("../images/prettyPhoto/dark_rounded/sprite.png") -24px -100px no-repeat;height:15px;width:14px}
|
||||
div.dark_rounded .pp_arrow_previous{background:url("../images/prettyPhoto/dark_rounded/sprite.png") 0 -71px no-repeat}
|
||||
div.dark_rounded .pp_arrow_next{background:url("../images/prettyPhoto/dark_rounded/sprite.png") -22px -71px no-repeat}
|
||||
div.dark_rounded .pp_bottom .pp_left{background:url("../images/prettyPhoto/dark_rounded/sprite.png") -88px -80px no-repeat}
|
||||
div.dark_rounded .pp_bottom .pp_right{background:url("../images/prettyPhoto/dark_rounded/sprite.png") -110px -80px no-repeat}
|
||||
div.dark_rounded .pp_loaderIcon{background:url("../images/prettyPhoto/dark_rounded/loader.gif") center center no-repeat}
|
||||
div.dark_square .pp_left,div.dark_square .pp_middle,div.dark_square .pp_right,div.dark_square .pp_content{background:#000}
|
||||
div.dark_square .pp_description{color:#fff;margin:0 85px 0 0}
|
||||
div.dark_square .pp_loaderIcon{background:url("../images/prettyPhoto/dark_square/loader.gif") center center no-repeat}
|
||||
div.dark_square .pp_expand{background:url("../images/prettyPhoto/dark_square/sprite.png") -31px -26px no-repeat;cursor:pointer}
|
||||
div.dark_square .pp_expand:hover{background:url("../images/prettyPhoto/dark_square/sprite.png") -31px -47px no-repeat;cursor:pointer}
|
||||
div.dark_square .pp_contract{background:url("../images/prettyPhoto/dark_square/sprite.png") 0 -26px no-repeat;cursor:pointer}
|
||||
div.dark_square .pp_contract:hover{background:url("../images/prettyPhoto/dark_square/sprite.png") 0 -47px no-repeat;cursor:pointer}
|
||||
div.dark_square .pp_close{width:75px;height:22px;background:url("../images/prettyPhoto/dark_square/sprite.png") -1px -1px no-repeat;cursor:pointer}
|
||||
div.dark_square .pp_nav{clear:none}
|
||||
div.dark_square .pp_nav .pp_play{background:url("../images/prettyPhoto/dark_square/sprite.png") -1px -100px no-repeat;height:15px;width:14px}
|
||||
div.dark_square .pp_nav .pp_pause{background:url("../images/prettyPhoto/dark_square/sprite.png") -24px -100px no-repeat;height:15px;width:14px}
|
||||
div.dark_square .pp_arrow_previous{background:url("../images/prettyPhoto/dark_square/sprite.png") 0 -71px no-repeat}
|
||||
div.dark_square .pp_arrow_next{background:url("../images/prettyPhoto/dark_square/sprite.png") -22px -71px no-repeat}
|
||||
div.dark_square .pp_next:hover{background:url("../images/prettyPhoto/dark_square/btnNext.png") center right no-repeat;cursor:pointer}
|
||||
div.dark_square .pp_previous:hover{background:url("../images/prettyPhoto/dark_square/btnPrevious.png") center left no-repeat;cursor:pointer}
|
||||
div.light_square .pp_expand{background:url("../images/prettyPhoto/light_square/sprite.png") -31px -26px no-repeat;cursor:pointer}
|
||||
div.light_square .pp_expand:hover{background:url("../images/prettyPhoto/light_square/sprite.png") -31px -47px no-repeat;cursor:pointer}
|
||||
div.light_square .pp_contract{background:url("../images/prettyPhoto/light_square/sprite.png") 0 -26px no-repeat;cursor:pointer}
|
||||
div.light_square .pp_contract:hover{background:url("../images/prettyPhoto/light_square/sprite.png") 0 -47px no-repeat;cursor:pointer}
|
||||
div.light_square .pp_close{width:75px;height:22px;background:url("../images/prettyPhoto/light_square/sprite.png") -1px -1px no-repeat;cursor:pointer}
|
||||
div.light_square .pp_nav .pp_play{background:url("../images/prettyPhoto/light_square/sprite.png") -1px -100px no-repeat;height:15px;width:14px}
|
||||
div.light_square .pp_nav .pp_pause{background:url("../images/prettyPhoto/light_square/sprite.png") -24px -100px no-repeat;height:15px;width:14px}
|
||||
div.light_square .pp_arrow_previous{background:url("../images/prettyPhoto/light_square/sprite.png") 0 -71px no-repeat}
|
||||
div.light_square .pp_arrow_next{background:url("../images/prettyPhoto/light_square/sprite.png") -22px -71px no-repeat}
|
||||
div.light_square .pp_next:hover{background:url("../images/prettyPhoto/light_square/btnNext.png") center right no-repeat;cursor:pointer}
|
||||
div.light_square .pp_previous:hover{background:url("../images/prettyPhoto/light_square/btnPrevious.png") center left no-repeat;cursor:pointer}
|
||||
div.facebook .pp_top .pp_left{background:url("../images/prettyPhoto/facebook/sprite.png") -88px -53px no-repeat}
|
||||
div.facebook .pp_top .pp_middle{background:url("../images/prettyPhoto/facebook/contentPatternTop.png") top left repeat-x}
|
||||
div.facebook .pp_top .pp_right{background:url("../images/prettyPhoto/facebook/sprite.png") -110px -53px no-repeat}
|
||||
div.facebook .pp_content_container .pp_left{background:url("../images/prettyPhoto/facebook/contentPatternLeft.png") top left repeat-y}
|
||||
div.facebook .pp_content_container .pp_right{background:url("../images/prettyPhoto/facebook/contentPatternRight.png") top right repeat-y}
|
||||
div.facebook .pp_expand{background:url("../images/prettyPhoto/facebook/sprite.png") -31px -26px no-repeat;cursor:pointer}
|
||||
div.facebook .pp_expand:hover{background:url("../images/prettyPhoto/facebook/sprite.png") -31px -47px no-repeat;cursor:pointer}
|
||||
div.facebook .pp_contract{background:url("../images/prettyPhoto/facebook/sprite.png") 0 -26px no-repeat;cursor:pointer}
|
||||
div.facebook .pp_contract:hover{background:url("../images/prettyPhoto/facebook/sprite.png") 0 -47px no-repeat;cursor:pointer}
|
||||
div.facebook .pp_close{width:22px;height:22px;background:url("../images/prettyPhoto/facebook/sprite.png") -1px -1px no-repeat;cursor:pointer}
|
||||
div.facebook .pp_description{margin:0 37px 0 0}
|
||||
div.facebook .pp_loaderIcon{background:url("../images/prettyPhoto/facebook/loader.gif") center center no-repeat}
|
||||
div.facebook .pp_arrow_previous{background:url("../images/prettyPhoto/facebook/sprite.png") 0 -71px no-repeat;height:22px;margin-top:0;width:22px}
|
||||
div.facebook .pp_arrow_previous.disabled{background-position:0 -96px;cursor:default}
|
||||
div.facebook .pp_arrow_next{background:url("../images/prettyPhoto/facebook/sprite.png") -32px -71px no-repeat;height:22px;margin-top:0;width:22px}
|
||||
div.facebook .pp_arrow_next.disabled{background-position:-32px -96px;cursor:default}
|
||||
div.facebook .pp_nav{margin-top:0}
|
||||
div.facebook .pp_nav p{font-size:15px;padding:0 3px 0 4px}
|
||||
div.facebook .pp_nav .pp_play{background:url("../images/prettyPhoto/facebook/sprite.png") -1px -123px no-repeat;height:22px;width:22px}
|
||||
div.facebook .pp_nav .pp_pause{background:url("../images/prettyPhoto/facebook/sprite.png") -32px -123px no-repeat;height:22px;width:22px}
|
||||
div.facebook .pp_next:hover{background:url("../images/prettyPhoto/facebook/btnNext.png") center right no-repeat;cursor:pointer}
|
||||
div.facebook .pp_previous:hover{background:url("../images/prettyPhoto/facebook/btnPrevious.png") center left no-repeat;cursor:pointer}
|
||||
div.facebook .pp_bottom .pp_left{background:url("../images/prettyPhoto/facebook/sprite.png") -88px -80px no-repeat}
|
||||
div.facebook .pp_bottom .pp_middle{background:url("../images/prettyPhoto/facebook/contentPatternBottom.png") top left repeat-x}
|
||||
div.facebook .pp_bottom .pp_right{background:url("../images/prettyPhoto/facebook/sprite.png") -110px -80px no-repeat}
|
||||
div.pp_pic_holder a:focus{outline:none}
|
||||
div.pp_overlay{background:#000;display:none;left:0;position:absolute;top:0;width:100%;z-index:9500}
|
||||
div.pp_pic_holder{display:none;position:absolute;width:100px;z-index:10000}
|
||||
.pp_content{height:40px;min-width:40px}
|
||||
* html .pp_content{width:40px}
|
||||
.pp_content_container{position:relative;text-align:left;width:100%}
|
||||
.pp_content_container .pp_left{padding-left:20px}
|
||||
.pp_content_container .pp_right{padding-right:20px}
|
||||
.pp_content_container .pp_details{float:left;margin:10px 0 2px}
|
||||
.pp_description{display:none;margin:0}
|
||||
.pp_social{float:left;margin:0}
|
||||
.pp_social .facebook{float:left;margin-left:5px;width:55px;overflow:hidden}
|
||||
.pp_social .twitter{float:left}
|
||||
.pp_nav{clear:right;float:left;margin:3px 10px 0 0}
|
||||
.pp_nav p{float:left;white-space:nowrap;margin:2px 4px}
|
||||
.pp_nav .pp_play,.pp_nav .pp_pause{float:left;margin-right:4px;text-indent:-10000px}
|
||||
a.pp_arrow_previous,a.pp_arrow_next{display:block;float:left;height:15px;margin-top:3px;overflow:hidden;text-indent:-10000px;width:14px}
|
||||
.pp_hoverContainer{position:absolute;top:0;width:100%;z-index:2000}
|
||||
.pp_gallery{display:none;left:50%;margin-top:-50px;position:absolute;z-index:10000}
|
||||
.pp_gallery div{float:left;overflow:hidden;position:relative}
|
||||
.pp_gallery ul{float:left;height:35px;position:relative;white-space:nowrap;margin:0 0 0 5px;padding:0}
|
||||
.pp_gallery ul a{border:1px rgba(0,0,0,0.5) solid;display:block;float:left;height:33px;overflow:hidden}
|
||||
.pp_gallery ul a img{border:0}
|
||||
.pp_gallery li{display:block;float:left;margin:0 5px 0 0;padding:0}
|
||||
.pp_gallery li.default a{background:url("../images/prettyPhoto/facebook/default_thumbnail.gif") 0 0 no-repeat;display:block;height:33px;width:50px}
|
||||
.pp_gallery .pp_arrow_previous,.pp_gallery .pp_arrow_next{margin-top:7px!important}
|
||||
a.pp_next{background:url("../images/prettyPhoto/light_rounded/btnNext.png") 10000px 10000px no-repeat;display:block;float:right;height:100%;text-indent:-10000px;width:49%}
|
||||
a.pp_previous{background:url("../images/prettyPhoto/light_rounded/btnNext.png") 10000px 10000px no-repeat;display:block;float:left;height:100%;text-indent:-10000px;width:49%}
|
||||
a.pp_expand,a.pp_contract{cursor:pointer;display:none;height:20px;position:absolute;right:30px;text-indent:-10000px;top:10px;width:20px;z-index:20000}
|
||||
a.pp_close{position:absolute;right:0;top:0;display:block;line-height:22px;text-indent:-10000px}
|
||||
.pp_loaderIcon{display:block;height:24px;left:50%;position:absolute;top:50%;width:24px;margin:-12px 0 0 -12px}
|
||||
#pp_full_res{line-height:1!important}
|
||||
#pp_full_res .pp_inline{text-align:left}
|
||||
#pp_full_res .pp_inline p{margin:0 0 15px}
|
||||
div.ppt{color:#fff;display:none;font-size:17px;z-index:9999;margin:0 0 5px 15px}
|
||||
div.pp_default .pp_content,div.light_rounded .pp_content{background-color:#fff}
|
||||
div.pp_default #pp_full_res .pp_inline,div.light_rounded .pp_content .ppt,div.light_rounded #pp_full_res .pp_inline,div.light_square .pp_content .ppt,div.light_square #pp_full_res .pp_inline,div.facebook .pp_content .ppt,div.facebook #pp_full_res .pp_inline{color:#000}
|
||||
div.pp_default .pp_gallery ul li a:hover,div.pp_default .pp_gallery ul li.selected a,.pp_gallery ul a:hover,.pp_gallery li.selected a{border-color:#fff}
|
||||
div.pp_default .pp_details,div.light_rounded .pp_details,div.dark_rounded .pp_details,div.dark_square .pp_details,div.light_square .pp_details,div.facebook .pp_details{position:relative}
|
||||
div.light_rounded .pp_top .pp_middle,div.light_rounded .pp_content_container .pp_left,div.light_rounded .pp_content_container .pp_right,div.light_rounded .pp_bottom .pp_middle,div.light_square .pp_left,div.light_square .pp_middle,div.light_square .pp_right,div.light_square .pp_content,div.facebook .pp_content{background:#fff}
|
||||
div.light_rounded .pp_description,div.light_square .pp_description{margin-right:85px}
|
||||
div.light_rounded .pp_gallery a.pp_arrow_previous,div.light_rounded .pp_gallery a.pp_arrow_next,div.dark_rounded .pp_gallery a.pp_arrow_previous,div.dark_rounded .pp_gallery a.pp_arrow_next,div.dark_square .pp_gallery a.pp_arrow_previous,div.dark_square .pp_gallery a.pp_arrow_next,div.light_square .pp_gallery a.pp_arrow_previous,div.light_square .pp_gallery a.pp_arrow_next{margin-top:12px!important}
|
||||
div.light_rounded .pp_arrow_previous.disabled,div.dark_rounded .pp_arrow_previous.disabled,div.dark_square .pp_arrow_previous.disabled,div.light_square .pp_arrow_previous.disabled{background-position:0 -87px;cursor:default}
|
||||
div.light_rounded .pp_arrow_next.disabled,div.dark_rounded .pp_arrow_next.disabled,div.dark_square .pp_arrow_next.disabled,div.light_square .pp_arrow_next.disabled{background-position:-22px -87px;cursor:default}
|
||||
div.light_rounded .pp_loaderIcon,div.light_square .pp_loaderIcon{background:url("../images/prettyPhoto/light_rounded/loader.gif") center center no-repeat}
|
||||
div.dark_rounded .pp_top .pp_middle,div.dark_rounded .pp_content,div.dark_rounded .pp_bottom .pp_middle{background:url("../images/prettyPhoto/dark_rounded/contentPattern.png") top left repeat}
|
||||
div.dark_rounded .currentTextHolder,div.dark_square .currentTextHolder{color:#c4c4c4}
|
||||
div.dark_rounded #pp_full_res .pp_inline,div.dark_square #pp_full_res .pp_inline{color:#fff}
|
||||
.pp_top,.pp_bottom{height:20px;position:relative}
|
||||
* html .pp_top,* html .pp_bottom{padding:0 20px}
|
||||
.pp_top .pp_left,.pp_bottom .pp_left{height:20px;left:0;position:absolute;width:20px}
|
||||
.pp_top .pp_middle,.pp_bottom .pp_middle{height:20px;left:20px;position:absolute;right:20px}
|
||||
* html .pp_top .pp_middle,* html .pp_bottom .pp_middle{left:0;position:static}
|
||||
.pp_top .pp_right,.pp_bottom .pp_right{height:20px;left:auto;position:absolute;right:0;top:0;width:20px}
|
||||
.pp_fade,.pp_gallery li.default a img{display:none}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user