Compare commits

...

46 Commits

Author SHA1 Message Date
c3ce84143f Logger para ver Nosotros 2020-06-10 22:50:04 -04:00
6e3418402c FIX: testo multilinea en faq 2020-06-10 21:01:09 -04:00
e378054972 Desacople e implementacion de email 2020-06-09 18:06:36 -04:00
450819f6b4 FIX: para subir a produccion 2020-06-08 17:05:55 -04:00
c65cc00a9e Ignorar carpetas de imagenes de proyectos 2020-06-08 17:05:17 -04:00
42f193efc1 FIX: fix anterior modifica forma de ver imagen inicial 2020-06-08 15:58:07 -04:00
ac19b02797 FIX: imagen de thumbnail 2020-06-08 15:49:25 -04:00
7aa3546e0a Cambios en diseño 2020-06-04 12:33:07 -04:00
5c538f8e93 FIX: los segmentos no eran cargados de forma global 2020-06-04 12:05:24 -04:00
a9750631c2 UF/m² pasa a ser un campo 2020-06-04 11:57:49 -04:00
ade2ebcfc2 FIX: gastos en blanco 2020-06-04 11:51:29 -04:00
0c0724aacf Formateo de los gastos comunes 2020-06-04 11:49:03 -04:00
6cbc4b4763 FIX: campos que cambiaron 2020-06-04 11:19:30 -04:00
c1d4046c93 varios 2020-06-04 00:29:31 -04:00
cc566d4a39 FIX: no cargaba el valor 2020-06-04 00:16:45 -04:00
2833e58bef FIX: se habia elminado campo destacado 2020-06-04 00:10:20 -04:00
4923c6c67d FIX: varias observaciones 2020-06-03 23:54:15 -04:00
5864efd24f FIX: uf/m2 cuando m2 es 0 2020-06-03 22:05:19 -04:00
080ed4553e Se agregan los campos por segmento 2020-06-03 21:59:11 -04:00
2d2eccb600 Orden de js y FIX: cambio a estado avisos 2020-05-31 13:31:23 -04:00
84e6808883 Menu de productos 2020-05-31 12:46:59 -04:00
26bd5207f3 FIX: no se podia cargar imagenes 2020-05-31 11:59:40 -04:00
cb08e0af64 FIX: no destacaba 2020-05-29 20:42:38 -04:00
5510766ecb FIX: imagenes en producto 2020-05-29 20:31:50 -04:00
bec6882d27 FIX: image_folder para ModelFactory 2020-05-29 20:25:08 -04:00
243697a054 FIX: se asignaban indices para destacados.json 2020-05-29 20:18:19 -04:00
0e5e34cd5f FIX: Editar producto creaba uno nuevo 2020-05-29 20:11:04 -04:00
4796639b2e FIX: Agregar o editar producto 2020-05-29 20:00:40 -04:00
88df2f547a FIX: funcion destacados no debiese obligar retorn si se esta asignado valor 2020-05-29 19:45:42 -04:00
cf7538913a FIX: logo en producto 2020-05-29 18:47:14 -04:00
3d270b1e8d Mejora de productos 2020-05-29 18:36:56 -04:00
6744b8aa90 Base admin 2020-05-27 17:49:12 -04:00
079ccdf0b9 FIX: marquee 2020-05-27 17:46:30 -04:00
ba438e540e FIX: proporcion de imagenes en ficha de productos 2020-05-27 17:44:07 -04:00
b7f0ffe682 Update del link para marquee 2020-05-27 17:36:23 -04:00
08cf6df8fc Marquee de indicadores 2020-05-27 17:20:15 -04:00
13320628ae FIX: descripcion del producto 2020-05-27 13:43:26 -04:00
24c74d2887 Admin producto y mirar mapa 2020-05-27 13:39:14 -04:00
31f308f5c7 Zona admin 2020-05-26 23:04:49 -04:00
d0aba43371 Se agregan archivos a todo lo modificable 2020-05-26 23:04:37 -04:00
c8ceba4776 Proyectos -> Productos 2020-05-26 23:03:28 -04:00
e27cd5c68d Proyectos -> Productos 2020-05-26 23:03:14 -04:00
168fbbcb09 Paleta de colores para SASS 2020-05-26 23:02:13 -04:00
6cc02239f9 Se arregla las imagenes para que se vean iguales 2020-05-19 21:43:44 -04:00
c50385139a FIX: tamaños de las imagenes 2020-05-19 20:43:24 -04:00
9b67d9bcef Link en el banner 2020-05-19 20:43:07 -04:00
110 changed files with 3573 additions and 1178 deletions

1
.gitignore vendored
View File

@ -12,3 +12,4 @@ composer.lock
# Uploads
/public/uploads/
/resources/data/
/public/assets/images/*/

View File

@ -37,7 +37,7 @@ foreach ($files as $file) {
$container = $builder->build();
$container->set('env', $__environment);
$app = Bridge::create($container);
$app->setBasePath($container->get('base_url'));
$app->setBasePath($container->get('urls.base'));
foreach ($folders as $folder) {
$filename = implode(DIRECTORY_SEPARATOR, [

View File

@ -1,3 +0,0 @@
<?php
// Global visit counter
//$app->add(new ProVM\KI\Common\Middleware\Visits($app->getContainer()->get('file.visits'), $app->getContainer()->get('visits.time')));

View File

@ -13,7 +13,8 @@ return [
'assets' => $c->get('urls.assets'),
'images' => implode('/', [$c->get('urls.assets'), 'images']),
'styles' => $c->get('urls.styles'),
'scripts' => $c->get('urls.scripts')
'scripts' => $c->get('urls.scripts'),
'admin' => implode('/', [$c->get('urls.base'), 'admin'])
];
},
'assets' => function(Container $c) {
@ -38,7 +39,8 @@ return [
],
'scripts' => [
'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js',
'https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.8.4/semantic.min.js'
'https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.8.4/semantic.min.js',
'https://cdn.jsdelivr.net/npm/jquery.marquee@1.5.0/jquery.marquee.min.js'
]
];
},
@ -50,8 +52,32 @@ return [
$file = json_decode(trim(file_get_contents($filename)));
return $file->visits;
},
Slim\Views\Blade::class => function(Container $c) {
return new Slim\Views\Blade(
'segmentos' => function(Container $c) {
$filename = implode(DIRECTORY_SEPARATOR, [
$c->get('folders.data'),
'segmentos.json'
]);
$segmentos = json_decode(trim(file_get_contents($filename)));
return $segmentos;
},
'email' => function(Container $c) {
$filename = implode(DIRECTORY_SEPARATOR, [
$c->get('folders.data'),
'emails.json'
]);
$emails = json_decode(trim(file_get_contents($filename)));
return $emails->settings;
},
'emails' => function(Container $c) {
$filename = implode(DIRECTORY_SEPARATOR, [
$c->get('folders.data'),
'emails.json'
]);
$emails = json_decode(trim(file_get_contents($filename)));
return $emails->emails;
},
ProVM\KI\Common\Alias\View::class => function(Container $c) {
return new ProVM\KI\Common\Implementation\View(
$c->get('folders.templates'),
$c->get('folders.cache'),
null,
@ -62,7 +88,10 @@ return [
'header' => (object) [
'fecha' => ucwords(Carbon::today()->locale('es')->isoFormat('D MMMM YYYY')),
'hora' => Carbon::now()->format('H:i a'),
'uf' => $c->get('ProVM\KI\Common\Service\Indicadores')->get('uf', Carbon::today())->valor
'uf' => $c->get('ProVM\KI\Common\Service\Indicadores')->get('uf', Carbon::today())->valor,
'menu' => (object) [
'segmentos' => $c->get('segmentos')
]
],
'footer' => (object) [
'visitas' => $c->get('visitas')
@ -72,5 +101,24 @@ return [
},
ProVM\KI\Common\Service\Indicadores::class => function(Container $c) {
return new ProVM\KI\Common\Service\Indicadores($c->get('urls.indicadores'));
},
ProVM\Common\Factory\Model::class => function(Container $c) {
return new ProVM\Common\Factory\Model(
$c->get('folders.data'),
$c->get('folders.public')
);
},
ProVM\KI\Common\Alias\Message::class => function(Container $c) {
return new ProVM\KI\Common\Implementation\Message();
},
ProVM\KI\Common\Alias\Mailer::class => function(Container $c) {
return new ProVM\KI\Common\Implementation\Mailer([
'host' => $c->get('email')->host->name,
'username' => $c->get('email')->user->name,
'password' => $c->get('email')->user->password
]);
},
Psr\Log\LoggerInterface::class => function(Container $c) {
return new ProVM\Common\Implementation\Logger(implode(DIRECTORY_SEPARATOR, [$c->get('folders.base'), 'admin.log']));
}
];

6
common/Alias/Mailer.php Normal file
View File

@ -0,0 +1,6 @@
<?php
namespace ProVM\KI\Common\Alias;
interface Mailer {
public function send(Message $message): bool;
}

4
common/Alias/Message.php Normal file
View File

@ -0,0 +1,4 @@
<?php
namespace ProVM\KI\Common\Alias;
interface Message {}

9
common/Alias/View.php Normal file
View File

@ -0,0 +1,9 @@
<?php
namespace ProVM\KI\Common\Alias;
use Psr\Http\Message\ResponseInterface as Response;
interface View {
public function render(Response $response, $template, array $data = []);
public function fetch($template, array $data = []);
}

View File

@ -0,0 +1,90 @@
<?php
namespace ProVM\KI\Common\Controller\Web\Admin;
use Psr\Container\ContainerInterface as Container;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use ProVM\KI\Common\Alias\View;
class Faq {
public function __invoke(Request $request, Response $response, View $view, Container $container) {
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'faqs.json'
]);
$faqs = json_decode(trim(file_get_contents($filename)));
return $view->render($response, 'admin.faq', compact('faqs'));
}
public function add(Request $request, Response $response, Container $container) {
$post = $request->getParsedBody();
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'faqs.json'
]);
$faqs = json_decode(trim(file_get_contents($filename)));
$faq = (object) [
'titulo' => '',
'contenido' => ''
];
if (isset($post['id']) and isset($faqs[$post['id']])) {
$faq = $faqs[$post['id']];
}
$changed = false;
foreach ($faq as $k => $v) {
if ($v != $post[$k]) {
$faq->$k = $post[$k];
$changed = true;
}
}
if (isset($post['id'])) {
$faqs[$post['id']] = $faq;
} else {
$faqs []= $faq;
}
$status = false;
if ($changed) {
$faqs = array_values($faqs);
$status = (file_put_contents($filename, json_encode($faqs, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_UNICODE | \JSON_UNESCAPED_SLASHES)) !== false);
}
$output = [
'informacion' => $post,
'estado' => $status,
'faqs' => $faqs
];
$response->getBody()->write(json_encode($output));
return $response
->withHeader('Content-Type', 'application/json')
->withStatus(201);
}
public function delete(Request $request, Response $response, Container $container) {
$post = $request->getParsedBody();
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'faqs.json'
]);
$faqs = json_decode(trim(file_get_contents($filename)));
$status = false;
if (isset($post['id']) and isset($faqs[$post['id']])) {
unset($faqs[$post['id']]);
$faqs = array_values($faqs);
$status = (file_put_contents($filename, json_encode($faqs, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_UNICODE | \JSON_UNESCAPED_SLASHES)) !== false);
}
$output = [
'informacion' => $post,
'estado' => $status,
'faqs' => $faqs
];
$response->getBody()->write(json_encode($output));
return $response
->withHeader('Content-Type', 'application/json')
->withStatus(201);
}
}

View File

@ -0,0 +1,121 @@
<?php
namespace ProVM\KI\Common\Controller\Web\Admin;
use Psr\Container\ContainerInterface as Container;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use ProVM\KI\Common\Alias\View;
class Home {
public function __invoke(Request $request, Response $response, View $view, Container $container): Response {
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'avisos.json'
]);
$avisos = json_decode(trim(file_get_contents($filename)));
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'resumen.json'
]);
$resumen = json_decode(trim(file_get_contents($filename)));
return $view->render($response, 'admin.home', compact('avisos', 'resumen'));
}
public function add(Request $request, Response $response, Container $container): Response {
$post = $request->getParsedBody();
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'avisos.json'
]);
$avisos = json_decode(trim(file_get_contents($filename)));
if (isset($post['estado'])) {
$avisos->activo = ($post['estado'] !== 'false');
} else {
$aviso = (object) [
'titulo' => '',
'contenido' => ''
];
if (isset($post['id'])) {
$aviso = $avisos->avisos[$post['id']];
}
foreach ($aviso as $k => $v) {
if ($v != $post[$k]) {
$aviso->$k = $post[$k];
}
}
if (isset($post['id'])) {
$avisos->avisos[$post['id']] = $aviso;
} else {
$avisos->avisos []= $aviso;
}
}
$status = (file_put_contents($filename, json_encode($avisos, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_UNICODE | \JSON_UNESCAPED_SLASHES)) !== false);
$output = [
'informacion' => $post,
'estado' => $status,
'avisos' => $avisos
];
$response->getBody()->write(json_encode($output));
return $response
->withHeader('Content-Type', 'application/json')
->withStatus(201);
}
public function delete(Request $request, Response $response, Container $container): Response {
$post = $request->getParsedBody();
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'avisos.json'
]);
$avisos = json_decode(trim(file_get_contents($filename)));
if (isset($avisos->avisos[$post['id']])) {
unset($avisos->avisos[$post['id']]);
$avisos->avisos = array_values($avisos->avisos);
}
$status = (file_put_contents($filename, json_encode($avisos, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_UNICODE | \JSON_UNESCAPED_SLASHES)) !== false);
$output = [
'informacion' => $post,
'estado' => $status,
'avisos' => $avisos
];
$response->getBody()->write(json_encode($output));
return $response
->withHeader('Content-Type', 'application/json')
->withStatus(201);
}
public function edit(Request $request, Response $response, Container $container): Response {
$post = $request->getParsedBody();
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'resumen.json'
]);
$resumen = json_decode(trim(file_get_contents($filename)));
$ind = $resumen[$post['id']];
foreach ($ind as $k => $v) {
if ($v != $post[$k]) {
$ind->$k = $post[$k];
}
}
$resumen[$post['id']] = $ind;
$status = (file_put_contents($filename, json_encode($resumen, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_UNICODE | \JSON_UNESCAPED_SLASHES)) !== false);
$output = [
'informacion' => $post,
'estado' => $status,
'resumen' => $resumen
];
$response->getBody()->write(json_encode($output));
return $response
->withHeader('Content-Type', 'application/json')
->withStatus(201);
}
}

View File

@ -0,0 +1,51 @@
<?php
namespace ProVM\KI\Common\Controller\Web\Admin;
use Psr\Container\ContainerInterface as Container;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Log\LoggerInterface as Logger;
use ProVM\KI\Common\Alias\View;
class Nosotros {
public function __invoke(Request $request, Response $response, View $view, Container $container) {
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'nosotros.json'
]);
$nosotros = trim(json_decode(trim(file_get_contents($filename))));
return $view->render($response, 'admin.nosotros', compact('nosotros'));
}
public function guardar(Request $request, Response $response, Container $container, Logger $logger) {
$logger->info('Llamado a guardar en Nosotros.');
$post = $request->getParsedBody();
$logger->info('Información en post:', compact('post'));
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'nosotros.json'
]);
$nosotros = trim(json_decode(trim(file_get_contents($filename))));
$logger->info('Contenido de nosotros.json', compact('nosotros'));
$data = trim(json_decode(json_encode($post['nosotros'])));
$status = false;
if ($nosotros != $data) {
$status = (file_put_contents($filename, json_encode($post['nosotros'])) !== false);
if ($status) {
$logger->info('Guardados los cambios en nosotros.json');
} else {
$logger->notice('No se pudo guardar los cambios en nosotros.json');
}
} else {
$logger->info('No se han hecho cambios en nosotros.');
}
$code = 301;
if ($status) {
$code = 302;
}
return $response
->withHeader('Location', implode('/', [$container->get('urls')->admin, 'nosotros']))
->withStatus($code);
}
}

View File

@ -0,0 +1,159 @@
<?php
namespace ProVM\KI\Common\Controller\Web\Admin;
use Psr\Container\ContainerInterface as Container;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use ProVM\KI\Common\Alias\View;
use Carbon\Carbon;
use ProVM\Common\Factory\Model as ModelFactory;
use ProVM\KI\Producto;
class Productos {
public function __invoke(Request $request, Response $response, View $view, ModelFactory $factory): Response {
$productos = $factory->find(Producto::class)->many();
return $view->render($response, 'admin.productos', compact('productos'));
}
public function edit(Request $request, Response $response, View $view, Container $container, ModelFactory $factory, $producto): Response {
$producto = $factory->find(Producto::class)->where([['id', $producto]])->one();
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'segmentos.json'
]);
$segmentos = json_decode(trim(file_get_contents($filename)));
$properties = $producto->getProperties();
return $view->render($response, 'admin.producto', compact('producto', 'segmentos', 'properties'));
}
public function do_edit(Request $request, Response $response, Container $container, ModelFactory $factory, $producto): Response {
$post = $request->getParsedBody();
$producto = $factory->find(Producto::class)->where([['id', $producto]])->one();
$f = Carbon::today();
$post['publicacion'] = $producto->publicacion ?? implode(' ', [
$f->day,
'de',
ucfirst($f->locale('es')->isoFormat('MMMM')) . ',',
$f->year
]);
$post['id'] = $producto->id;
$producto->map((object) $post);
$producto->save();
return $response
->withHeader('Location', implode('/', [$container->get('urls')->admin, 'productos']));
}
public function add(Request $request, Response $response, View $view, Container $container): Response {
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'segmentos.json'
]);
$segmentos = json_decode(trim(file_get_contents($filename)));
return $view->render($response, 'admin.productos.add', compact('segmentos'));
}
public function do_add(Request $request, Response $response, Container $container, ModelFactory $factory): Response {
$post = $request->getParsedBody();
$f = Carbon::today();
$post['publicacion'] = implode(' ', [
$f->day,
'de',
ucfirst($f->locale('es')->isoFormat('MMMM')) . ',',
$f->year
]);
$producto = $factory->create(Producto::class, (object) $post);
if (isset($post['destacado']) and $post['destacado'] == 'on') {
$producto->destacado(true);
}
$producto->save();
return $response
->withHeader('Location', implode('/', [$container->get('urls')->admin, 'productos']));
}
public function delete(Request $request, Response $response, ModelFactory $factory): Response {
$post = $request->getParsedBody();
$producto = $factory->find(Producto::class)->where([['id', $post['id']]])->one();
$status = $producto->delete();
$output = [
'information' => $post,
'estado' => $status
];
$response->getBody()->write(json_encode($output));
return $response
->withHeader('Content-Type', 'application/json')
->withStatus(201);
}
public function add_image(Request $request, Response $response, ModelFactory $factory, $producto): Response {
$post = $request->getParsedBody();
$files = $request->getUploadedFiles();
$file = $files['imagen'];
$producto = $factory->find(Producto::class)->where([['id', $producto]])->one();
$status = $producto->addImagen($file);
$output = [
'informacion' => $producto->id,
'estado' => $status
];
$response->getBody()->write(json_encode($output));
return $response
->withHeader('Content-Type', 'application/json')
->withStatus(201);
}
public function set_video(Request $request, Response $response, Container $container, $producto): Response {
$post = $request->getParsedBody();
$files = $request->getUploadedFiles();
die();
$file = $files['video'];
$folder = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.public'),
'assets',
'images',
mb_strtolower($producto->nombre)
]);
}
public function delete_image(Request $request, Response $response, ModelFactory $factory, $producto): Response {
$post = $request->getParsedBody();
$producto = $factory->find(Producto::class)->where([['id', $producto]])->one();
$status = $producto->deleteImagen($post['imagen']);
$output = [
'estado' => $status
];
$response->getBody()->write(json_encode($output));
return $response
->withHeader('Content-Type', 'application/json')
->withStatus(201);
}
public function delete_video(Request $request, Response $response, Container $container, $producto): Response {
$post = $request->getParsedBody();
$folder = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.public'),
'assets',
'images',
mb_strtolower($producto->nombre)
]);
return $response;
}
public function fields(Request $request, Response $response): Response {
$post = $request->getParsedBody();
$class = implode("\\", [
'ProVM',
'KI',
'Productos',
rtrim($post['segmento'], 's')
]);
$obj = new $class;
$properties = $obj->getProperties();
$output = [
'information' => $post,
'fields' => $properties
];
$response->getBody()->write(json_encode($output, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE));
return $response
->withHeader('Content-Type', 'application/json')
->withStatus(201);
}
}

View File

@ -4,12 +4,11 @@ namespace ProVM\KI\Common\Controller\Web;
use Psr\Container\ContainerInterface as Container;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Slim\Views\Blade as View;
use Carbon\Carbon;
use ProVM\KI\Common\Alias\View;
class Base {
public function __invoke(Request $request, Response $response, View $view, Container $container) {
$aviso = true;
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'avisos.json'
@ -32,7 +31,12 @@ class Base {
}
$item->imagen = '<img src="' . $container->get('urls')->images . '/' . $item->imagen . '" />';
});
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'resumen.json'
]);
$resumen = json_decode(trim(file_get_contents($filename)));
$indicadores = ['uf' => 'UF', 'euro' => 'Euro', 'imacec' => 'IMACEC', 'dolar' => 'USD', 'ipc' => 'IPC', 'utm' => 'UTM', 'bitcoin' => 'BitCoin', 'libra_cobre' => 'Lb. Cu'];
return $view->render($response, 'home', compact('aviso', 'avisos', 'destacados', 'segmentos', 'indicadores'));
return $view->render($response, 'home', compact('avisos', 'destacados', 'segmentos', 'resumen', 'indicadores'));
}
}

View File

@ -1,12 +1,63 @@
<?php
namespace ProVM\KI\Common\Controller\Web;
use Psr\Container\ContainerInterface as Container;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Slim\Views\Blade as View;
use ProVM\KI\Common\Alias\Message;
use ProVM\KI\Common\Alias\Mailer;
use ProVM\KI\Common\Alias\View;
class Contacto {
public function __invoke(Request $request, Response $response, View $view) {
public function __invoke(Request $request, Response $response, View $view): Response {
return $view->render($response, 'contacto');
}
public function enviar(Request $request, Response $response, Container $container, Mailer $mailer): Response {
$post = $request->getParsedBody();
$body = [];
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.templates'),
'contacto',
'email.php'
]);
$html = file_get_contents($filename);
foreach ($post as $key => $val) {
$body []= ucwords($key) . ': ' . $val;
$html = str_replace('{{$' . $key . '}}', $val, $html);
}
$body = implode(PHP_EOL, $body);
$subject = 'Contacto Web - ' . $post['nombre'];
$message = $container->make(Message::class)
->setFrom($container->get('emails')[0])
->addTo($container->get('emails')[0])
->addCc($container->get('emails')[1])
->setSubject($subject)
->setBody($body)
->setHTMLBody($html);
$status = $mailer->send($message);
$message = $container->make(Message::class)
->setFrom($container->get('emails')[0])
->addTo($post['mail'], $post['nombre'])
->setSubject($subject)
->setBody('Su correo a CapitalInvestments ha sido recibido.');
$mailer->send($message);
$output = [
'informacion' => $post,
'estado' => $status,
'mail' => [
'from' => $post['mail'],
'to' => $container->get('emails')[0],
'cc' => $container->get('emails')[1],
'asunto' => $subject,
'mensaje' => $body,
'html' => $html
]
];
$response->getBody()->write(json_encode($output));
return $response
->withHeader('Content-Type', 'application/json')
->withStatus(201);
}
}

View File

@ -1,12 +1,18 @@
<?php
namespace ProVM\KI\Common\Controller\Web;
use Psr\Container\ContainerInterface as Container;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Slim\Views\Blade as View;
use ProVM\KI\Common\Alias\View;
class Faq {
public function __invoke(Request $request, Response $response, View $view) {
return $view->render($response, 'faq');
public function __invoke(Request $request, Response $response, View $view, Container $container) {
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'faqs.json'
]);
$faqs = json_decode(trim(file_get_contents($filename)));
return $view->render($response, 'faq', compact('faqs'));
}
}

View File

@ -1,12 +1,45 @@
<?php
namespace ProVM\KI\Common\Controller\Web;
use Psr\Container\ContainerInterface as Container;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Slim\Views\Blade as View;
use ProVM\KI\Common\Alias\View;
class Nosotros {
public function __invoke(Request $request, Response $response, View $view) {
return $view->render($response, 'nosotros');
public function __invoke(Request $request, Response $response, View $view, Container $container) {
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'nosotros.json'
]);
$nosotros = json_decode(trim(file_get_contents($filename)));
$min = 200;
$max_phrase = 50;
if (strlen($nosotros) > $min) {
$half = strlen($nosotros) / 2;
$pos = mb_strpos($nosotros, '.', $half); // Siguiente punto despues de la mitad
if ($pos > $half + $max_phrase) { // Si está muy lejos de la mitad busca otra posicion
$pos = mb_strrpos($nosotros, '.', -$half) + 1; // Punto antes de la mitad
}
$nosotros = $this->str_split_unicode($nosotros, $pos);
if (count($nosotros) > 2) {
$s1 = array_shift($nosotros);
$nosotros = [$s1, implode('', $nosotros)];
}
} else {
$nosotros = [$nosotros];
}
return $view->render($response, 'nosotros', compact('nosotros'));
}
protected function str_split_unicode($str, $l = 0) {
if ($l > 0) {
$ret = array();
$len = mb_strlen($str, "UTF-8");
for ($i = 0; $i < $len; $i += $l) {
$ret[] = mb_substr($str, $i, $l, "UTF-8");
}
return $ret;
}
return preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
}
}

View File

@ -0,0 +1,70 @@
<?php
namespace ProVM\KI\Common\Controller\Web;
use Psr\Container\ContainerInterface as Container;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use ProVM\KI\Common\Alias\View;
use ProVM\Common\Factory\Model as ModelFactory;
use ProVM\KI\Producto;
class Productos {
public function __invoke(Request $request, Response $response, Container $container, View $view): Response {
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'segmentos.json'
]);
$segmentos = json_decode(trim(file_get_contents($filename)));
return $view->render($response, 'productos.list', compact('segmentos'));
}
public function show(Request $request, Response $response, View $view, ModelFactory $factory, $producto): Response {
$producto = $factory->find(Producto::class)->where([['id', $producto]])->one();
return $view->render($response, 'productos.show', compact('producto'));
}
public function segmento(Request $request, Response $response, ModelFactory $factory, $segmento): Response {
$productos = $factory->find(Producto::class);
if ($segmento != 'todo') {
$productos = $productos->where([['segmento', ucwords($segmento)]]);
}
$productos = $productos->many();
$output = [
'information' => [
'segmento' => $segmento
],
'productos' => array_map(function($item) {
return $item->id;
}, $productos)
];
$response->getBody()->write(json_encode($output));
return $response
->withHeader('Content-Type', 'application/json')
->withStatus(201);
}
public function destacados(Request $request, Response $response, Container $container, $page): Response {
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'destacados.json'
]);
$destacados = json_decode(trim(file_get_contents($filename)));
$max = ceil(count($destacados) / 4);
$output = [
'information' => [
'page' => $page
],
'destacados' => []
];
$n = min(4, count($destacados));
for ($i = ($page - 1) * $n; $i < $page * $n; $i ++) {
$output['destacados'] []= $destacados[$i];
}
$response->getBody()->write(json_encode($output));
return $response
->withHeader('Content-Type', 'application/json')
->withStatus(201);
}
public function ficha(Request $request, Response $response, View $view, ModelFactory $factory, $producto): Response {
$producto = $factory->find(Producto::class)->where([['id', $producto]])->one();
$properties = $producto->getFicha();
return $view->render($response, 'productos.ficha', compact('producto', 'properties'));
}
}

View File

@ -1,117 +0,0 @@
<?php
namespace ProVM\KI\Common\Controller\Web;
use Psr\Container\ContainerInterface as Container;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Slim\Views\Blade as View;
class Proyectos {
public function __invoke(Request $request, Response $response, Container $container, View $view): Response {
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'segmentos.json'
]);
$segmentos = json_decode(trim(file_get_contents($filename)));
return $view->render($response, 'proyectos.list', compact('segmentos'));
}
public function show(Request $request, Response $response, Container $container, View $view, $proyecto): Response {
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'proyectos.json'
]);
$proyectos = json_decode(trim(file_get_contents($filename)));
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'destacados.json'
]);
$destacados = json_decode(trim(file_get_contents($filename)));
$destacado = false;
if (array_search($proyecto, $destacados) !== false) {
$destacado = true;
}
$id = $proyecto;
$proyecto = $proyectos[$proyecto];
$proyecto->destacado = $destacado;
$proyecto->id = $id;
$folder = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.public'),
'assets',
'images',
mb_strtolower($proyecto->edificio)
]);
$files = new \DirectoryIterator($folder);
$proyecto->images = [];
foreach ($files as $file) {
if ($file->isDir()) {
continue;
}
$proyecto->images []= $file->getFilename();
}
return $view->render($response, 'proyectos.show', compact('proyecto'));
}
public function segmento(Request $request, Response $response, Container $container, $segmento): Response {
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'proyectos.json'
]);
$proyectos = json_decode(trim(file_get_contents($filename)));
if ($segmento != 'todo') {
$proyectos = array_filter($proyectos, function($item) use ($segmento) {
return (str_replace(' ', '_', mb_strtolower($item->segmento)) == $segmento);
});
}
$output = [
'information' => [
'segmento' => $segmento
],
'proyectos' => array_keys($proyectos)
];
$response->getBody()->write(json_encode($output));
return $response
->withHeader('Content-Type', 'application/json')
->withStatus(201);
}
public function destacados(Request $request, Response $response, Container $container, $page): Response {
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'destacados.json'
]);
$destacados = json_decode(trim(file_get_contents($filename)));
$max = ceil(count($destacados) / 4);
$output = [
'information' => [
'page' => $page
],
'destacados' => []
];
for ($i = ($page - 1) * 4; $i < $page * 4; $i ++) {
$output['destacados'] []= $destacados[$i];
}
$response->getBody()->write(json_encode($output));
return $response
->withHeader('Content-Type', 'application/json')
->withStatus(201);
}
public function ficha(Request $request, Response $response, Container $container, View $view, $proyecto): Response {
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'proyectos.json'
]);
$proyectos = json_decode(trim(file_get_contents($filename)));
$filename = implode(DIRECTORY_SEPARATOR, [
$container->get('folders.data'),
'destacados.json'
]);
$destacados = json_decode(trim(file_get_contents($filename)));
$destacado = false;
if (array_search($proyecto, $destacados) !== false) {
$destacado = true;
}
$id = $proyecto;
$proyecto = $proyectos[$proyecto];
$proyecto->destacado = $destacado;
$proyecto->id = $id;
return $view->render($response, 'proyectos.ficha', compact('proyecto'));
}
}

View File

@ -0,0 +1,102 @@
<?php
namespace ProVM\KI\Common\Implementation;
use PHPMailer\PHPMailer\PHPMailer as BaseMailer;
use PHPMailer\PHPMailer\SMTP;
use ProVM\KI\Common\Alias\Mailer as MailerInterface;
use ProVM\KI\Common\Alias\Message;
class Mailer implements MailerInterface {
protected $host;
protected $port;
protected $user;
protected $is_secure = false;
public function __construct(array $settings) {
if (!isset($settings['host'])) {
throw new \Exception('Host is missing in ' . get_called_class());
}
$this->host = $settings['host'];
if (!isset($settings['username'])) {
throw new \Exception('User name is missing in ' . get_called_class());
}
$this->user = (object) ['name' => null, 'password' => null];
$this->user->name = $settings['username'];
if (!isset($settings['password'])) {
throw new \Exception('User password is missing in ' . get_called_class());
}
$this->user->password = $settings['password'];
$this->port = 25;
if (isset($settings['secure']) and $settings['secure'] == 'ssl') {
$this->is_secure = true;
$this->port = 465;
}
if (isset($settings['port'])) {
$this->port = $settings['port'];
}
}
public function isSecure(): bool {
return $this->is_secure;
}
public function send(Message $message): bool {
$mailer = new BaseMailer();
$mailer->isSMTP();
//$mailer->SMTPDebug = SMTP::DEBUG_SERVER;
$mailer->Host = $this->host;
$mailer->SMTPAuth = true;
$mailer->Username = $this->user->name;
$mailer->Password = $this->user->password;
$mailer->Port = $this->port;
if ($this->isSecure()) {
$mailer->SMTPSecure = BaseMailer::ENCRYPTION_STARTTLS;
}
try {
$from = $message->getFrom();
if ($from->name !== null) {
$mailer->setFrom($from->email, $from->name);
} else {
$mailer->setFrom($from->email);
}
foreach ($message->getTo() as $to) {
if ($to->name !== null) {
$mailer->addAddress($to->email, $to->name);
} else {
$mailer->addAddress($to->email);
}
}
$ccs = $message->getCc();
if (!empty($ccs)) {
foreach ($ccs as $cc) {
if ($cc->name !== null) {
$mailer->addCC($cc->email, $cc->name);
} else {
$mailer->addCC($cc->email);
}
}
}
$bccs = $message->getBcc();
if (!empty($bccs)) {
foreach ($bccs as $bcc) {
if ($bcc->name !== null) {
$mailer->addBCC($bcc->email, $bcc->name);
} else {
$mailer->addBCC($bcc->email);
}
}
}
$mailer->Subject = $message->getSubject();
if ($message->isHtml()) {
$mailer->Body = $message->getHtmlBody();
$mailer->isHTML();
$mailer->AltBody = $message->getBody();
} else {
$mailer->Body = $message->getBody();
}
$mailer->send();
return true;
} catch (\Exception $e) {
return false;
}
}
}

View File

@ -0,0 +1,100 @@
<?php
namespace ProVM\KI\Common\Implementation;
use ProVM\KI\Common\Alias\Message as MessageInterface;
class Message implements MessageInterface {
protected $from;
public function setFrom(string $email, string $name = null): Message {
$this->from = $this->formatEmail($email, $name);
return $this;
}
public function getFrom() {
return $this->from;
}
protected $reply_to;
public function addReplyTo(string $email, string $name = null): Message {
if ($this->reply_to === null) {
$this->reply_to = [];
}
$this->reply_to []= $this->formatEmail($email, $name);
return $this;
}
public function getReplyTo() {
return $this->reply_to;
}
protected $subject;
public function setSubject(string $subject): Message {
$this->subject = $subject;
return $this;
}
public function getSubject(): string {
return $this->subject;
}
protected $to;
public function addTo(string $email, string $name = null): Message {
if ($this->to === null) {
$this->to = [];
}
$this->to []= $this->formatEmail($email, $name);
return $this;
}
public function getTo(): array {
return $this->to;
}
protected $cc;
public function addCc(string $email, string $name = null): Message {
if ($this->cc === null) {
$this->cc = [];
}
$this->cc []= $this->formatEmail($email, $name);
return $this;
}
public function getCc() {
return $this->cc;
}
protected $bcc;
public function addBcc(string $email, string $name = null): Message {
if ($this->bcc === null) {
$this->bcc = [];
}
$this->bcc []= $this->formatEmail($email, $name);
return $this;
}
public function getBcc() {
return $this->bcc;
}
protected $body;
public function setBody(string $body): Message {
$this->body = $body;
return $this;
}
public function getBody(): string {
return $this->body;
}
protected $html;
protected $is_html = false;
public function setHtmlBody(string $body): Message {
$this->html = $body;
$this->is_html = true;
return $this;
}
public function getHtmlBody(): string {
return $this->html;
}
public function isHtml(): bool {
return $this->is_html;
}
protected function formatEmail(string $email, string $name = null) {
if (!$name && preg_match('#^(.+) +<(.*)>$#D', $email, $matches)) {
[, $name, $email] = $matches;
$name = stripslashes($name);
$tmp = substr($name, 1, -1);
if ($name === '"' . $tmp . '"') {
$name = $tmp;
}
}
return (object) ['name' => $name, 'email' => $email];
}
}

View File

@ -0,0 +1,7 @@
<?php
namespace ProVM\KI\Common\Implementation;
use Slim\Views\Blade as BaseView;
use ProVM\KI\Common\Alias\View as ViewInterface;
class View extends BaseView implements ViewInterface {}

View File

@ -9,12 +9,12 @@
"nyholm/psr7": "^1.2",
"nyholm/psr7-server": "^0.4.1",
"nesbot/carbon": "^2.32",
"guzzlehttp/guzzle": "^6.5"
"guzzlehttp/guzzle": "^6.5",
"phpmailer/phpmailer": "^6.1"
},
"require-dev": {
"phpunit/phpunit": "^8.5",
"kint-php/kint": "^3.3",
"zeuxisoo/slim-whoops": "^0.7.2",
"joshtronic/php-loremipsum": "^1.0"
},
"license": "UNLICENSED",
@ -27,7 +27,8 @@
"autoload": {
"psr-4": {
"ProVM\\KI\\Common\\": "common",
"ProVM\\KI\\": "src"
"ProVM\\KI\\": "src",
"ProVM\\Common\\": "provm/common"
}
}
}

View File

@ -0,0 +1,163 @@
<?php
namespace ProVM\Common\Factory;
use ProVM\Common\Implementation\Model as BaseModel;
class Model {
protected $data_folder;
protected $image_folder;
public function __construct(string $data_folder, string $image_folder) {
$this->data_folder = $data_folder;
$this->image_folder = $image_folder;
}
public function getFolder(): string {
return $this->data_folder;
}
public function get($file) {
$filename = implode(DIRECTORY_SEPARATOR, [
$this->data_folder,
$file
]);
return json_decode(trim(file_get_contents($filename)));
}
protected function reset() {
$this->class = null;
$this->conditions = null;
$this->limits = null;
}
protected $class;
public function find(string $class): Model {
if (!class_exists($class) or !is_subclass_of($class, \ProVM\Common\Implementation\Model::class)) {
throw new \InvalidArgumentException($class . ' is not defined.');
}
$this->reset();
$this->class = $class;
return $this;
}
/**
* JSON
* [
* {
* <field>,
* <value>,
* <operator>
* },
* ...
* ]
* @var array
*/
protected $conditions;
public function where(array $conditions): Model {
if ($this->conditions === null) {
$this->conditions = [];
}
foreach ($conditions as $condition) {
$c = ['field' => $condition[0], 'value' => $condition[1], 'operator' => '=='];
if (isset($condition[2])) {
$c['operator'] = $condition[2];
}
$this->conditions []= (object) $c;
}
return $this;
}
protected function parseWhere(array $data): array {
if ($this->conditions === null) {
return $data;
}
foreach ($this->conditions as $condition) {
$str = implode(' ', [
$condition->field,
$condition->operator,
(is_string($condition->value)) ? "'" . $condition->value . "'" : $condition->value
]);
return array_filter($data, function($item) use ($str) {
$bool = true;
eval("\$bool = (\$item->" . $str . ');');
return $bool;
});
}
}
protected $limits;
public function limit(int $limit): Model {
if ($this->limits === null) {
$this->limits = (object) ['limit' => null, 'offset' => 0];
}
$this->limits->limit = $limit;
return $this;
}
public function offset(int $offset): Model {
if ($this->limits === null) {
$this->limits = (object) ['limit' => null, 'offset' => 0];
}
$this->limits->offset = $offset;
return $this;
}
protected function parseLimits(array $data): array {
if ($this->limits === null or $this->limits->limit === null) {
return $data;
}
return array_slice($data, $this->limits->offset, $this->limits->limit);
}
protected function getFilename(): string {
$data = explode("\\", $this->class);
return implode(DIRECTORY_SEPARATOR, [
$this->data_folder,
str_replace(' ', '_', mb_strtolower(array_pop($data))) . 's.json'
]);
}
protected function build(): array {
$filename = $this->getFilename();
$data = json_decode(trim(file_get_contents($filename)));
$data = $this->parseWhere($data);
$data = $this->parseLimits($data);
return $data;
}
protected function fillObject($data): BaseModel {
$class = $this->class;
if (strpos($class, 'Producto') !== false) {
$segmento = str_replace(' ', '', $data->segmento);
$class = implode("\\", [
$class . 's',
rtrim($segmento, 's')
]);
}
$obj = new $class;
$obj->map($data);
$obj->setFactory($this);
$obj->setImageFolder($this->image_folder);
return $obj;
}
public function one(): BaseModel {
$data = $this->limit(1)->build();
$item = $data[0];
$obj = $this->fillObject($item);
return $obj;
}
public function many(): array {
$data = $this->build();
foreach ($data as &$item) {
$obj = $this->fillObject($item);
$item = $obj;
}
return $data;
}
public function array(): array {
return $this->build();
}
public function create(string $class, $data) {
if (strpos($class, 'Producto') !== false) {
$segmento = str_replace(' ', '', $data->segmento);
$class = implode("\\", [
$class . 's',
rtrim($segmento, 's')
]);
}
$obj = new $class;
$obj->map($data);
$obj->setFactory($this);
$obj->setImageFolder($this->image_folder);
return $obj;
}
}

View File

@ -0,0 +1,67 @@
<?php
namespace ProVM\Common\Implementation;
use Psr\Log\LoggerInterface;
use Psr\Log\LogLevel;
use Carbon\Carbon;
class Logger implements LoggerInterface {
protected $output_file;
public function __construct(string $filename) {
if (!file_exists($filename)) {
$f = fopen($filename, 'c');
fclose($f);
}
if (!file_exists($filename)) {
throw new \Exception('Can not create log file.');
}
$this->output_file = $filename;
}
public function emergency($message, array $context = []) {
return $this->log(LogLevel::EMERGENCY, $message, $context);
}
public function alert($message, array $context = []) {
return $this->log(LogLevel::ALERT, $message, $context);
}
public function critical($message, array $context = []) {
return $this->log(LogLevel::CRITICAL, $message, $context);
}
public function error($message, array $context = []) {
return $this->log(LogLevel::ERROR, $message, $context);
}
public function warning($message, array $context = []) {
return $this->log(LogLevel::WARNING, $message, $context);
}
public function notice($message, array $context = []) {
return $this->log(LogLevel::NOTICE, $message, $context);
}
public function info($message, array $context = []) {
return $this->log(LogLevel::INFO, $message, $context);
}
public function debug($message, array $context = []) {
return $this->log(LogLevel::DEBUG, $message, $context);
}
public function log($level, $message, array $context = []) {
$refl = new \ReflectionClass(LogLevel::class);
$levels = $refl->getConstants();
if (array_search($level, array_values($levels)) === false) {
throw new \InvalidArgumentException('Invalid log level.');
}
$f = Carbon::now('America/Santiago');
$output = [
'time' => $f->format('Y-m-d H:i:s,v'),
'message' => $message
];
if (count($context) > 0) {
$output['context'] = $context;
}
$data = json_decode(trim(file_get_contents($this->output_file)));
if ($data === null) {
$data = [];
}
$data []= $output;
file_put_contents($this->output_file, json_encode($data, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE));
}
}

View File

@ -0,0 +1,60 @@
<?php
namespace ProVM\Common\Implementation;
use ProVM\Common\Factory\Model as ModelFactory;
abstract class Model implements \JsonSerializable {
abstract public function map($data): Model;
protected $factory;
public function setFactory(ModelFactory $factory) {
$this->factory = $factory;
}
public function __get(string $name) {
if (!property_exists($this, $name)) {
throw new \InvalidArgumentException($name . ' is not a property of ' . get_called_class());
}
return $this->$name;
}
public function save() {
$filename = $this->getFilename();
$data = json_decode(trim(file_Get_contents($filename)));
if ($this->id === null) {
$this->id = array_reduce($data, function($max, $item) {
return (($max < $item->id) ? $item->id : $max);
}, 0) + 1;
$data []= $this->jsonSerialize();
} else {
foreach ($data as $i => $item) {
if ($item->id == $this->id) {
$data[$i] = $this->jsonSerialize();
}
}
}
$data = array_values($data);
return (file_put_contents($filename, json_encode($data, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE)) !== false);
}
public function delete() {
$filename = $this->getFilename();
$data = json_decode(trim(file_Get_contents($filename)));
foreach ($data as $i => $item) {
if ($item->id == $this->id) {
unset($data[$i]);
}
}
$data = array_values($data);
return (file_put_contents($filename, json_encode($data, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE)) !== false);
}
protected function getFilename(): string {
$data = explode("\\", get_called_class());
$folder = $this->factory->getFolder();
$class = array_pop($data);
$productos = ['Bodega', 'Oficina', 'Retail', 'Terreno'];
if (array_search($class, $productos) !== false) {
$class = 'Producto';
}
return implode(DIRECTORY_SEPARATOR, [
$folder,
str_replace(' ', '_', mb_strtolower($class)) . 's.json'
]);
}
}

View File

Before

Width:  |  Height:  |  Size: 992 KiB

After

Width:  |  Height:  |  Size: 992 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 352 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

@ -0,0 +1,5 @@
#admin { background-color: #f4f4f4; padding-top: 3rem; padding-bottom: 2rem; }
#admin .button { background-color: #429ab7; color: white; }
#admin .container > .header, #admin .container > .grid > .column > .header, #admin .container > .grid > .row > .column > .header { padding-bottom: 2rem; }

View File

@ -0,0 +1,14 @@
{
"version": 3,
"file": "admin.css",
"sources": [
"../../../resources/assets/sass/admin.scss",
"../../../resources/assets/sass/_pallete.scss"
],
"sourcesContent": [
"@import 'pallete';\r\n\r\n#admin {\r\n background-color: $gris-claro;\r\n padding-top: 3rem;\r\n padding-bottom: 2rem;\r\n\r\n .button {\r\n background-color: $marca;\r\n color: white;\r\n }\r\n\r\n .container>.header, .container>.grid>.column>.header, .container>.grid>.row>.column>.header {\r\n padding-bottom: 2rem;\r\n }\r\n}\r\n",
"$marca: #429ab7;\r\n$gris-oscuro: #808284;\r\n$gris-medio: #a7a9ab;\r\n$gris-claro: #f4f4f4;\r\n$azul-oscuro: #0d103c;\r\n"
],
"names": [],
"mappings": ";AAEA,AAAA,MAAM,CAAC;EACL,gBAAgB,ECAL,OAAO;EDClB,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,IAAI;CAUrB;;;AAbD,AAKE,MALI,CAKJ,OAAO,CAAC;EACN,gBAAgB,ECRZ,OAAO;EDSX,KAAK,EAAE,KAAK;CACb;;;AARH,AAUE,MAVI,CAUJ,UAAU,GAAC,OAAO,EAVpB,MAAM,CAUgB,UAAU,GAAC,KAAK,GAAC,OAAO,GAAC,OAAO,EAVtD,MAAM,CAUkD,UAAU,GAAC,KAAK,GAAC,IAAI,GAAC,OAAO,GAAC,OAAO,CAAC;EAC1F,cAAc,EAAE,IAAI;CACrB"
}

View File

@ -1,14 +1,5 @@
/* line 1, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/faqs.scss */
#faq {
background-color: #5d5d5d;
color: white;
padding-top: 3rem;
padding-bottom: 4rem;
}
#faq { background-color: #a7a9ab; color: white; padding-top: 3rem; padding-bottom: 4rem; }
/* line 8, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/faqs.scss */
#faq .header, #faq .title, #faq .content {
color: inherit;
}
#faq .header, #faq .title, #faq .content { color: inherit; }
/*# sourceMappingURL=faqs.css.map */
#faq .accordion { font-size: 1.2rem; }

View File

@ -2,11 +2,13 @@
"version": 3,
"file": "faqs.css",
"sources": [
"../../../resources/assets/sass/faqs.scss"
"../../../resources/assets/sass/faqs.scss",
"../../../resources/assets/sass/_pallete.scss"
],
"sourcesContent": [
"#faq {\r\n background-color: #5d5d5d;\r\n color: white;\r\n\r\n padding-top: 3rem;\r\n padding-bottom: 4rem;\r\n\r\n .header, .title, .content {\r\n color: inherit;\r\n }\r\n}\r\n"
"@import 'pallete';\r\n\r\n#faq {\r\n background-color: $gris-medio;\r\n color: white;\r\n\r\n padding-top: 3rem;\r\n padding-bottom: 4rem;\r\n\r\n .header, .title, .content {\r\n color: inherit;\r\n }\r\n}\r\n",
"$marca: #429ab7;\r\n$gris-oscuro: #808284;\r\n$gris-medio: #a7a9ab;\r\n$gris-claro: #f4f4f4;\r\n$azul-oscuro: #0d103c;\r\n"
],
"names": [],
"mappings": ";AAAA,AAAA,IAAI,CAAC;EACH,gBAAgB,EAAE,OAAO;EACzB,KAAK,EAAE,KAAK;EAEZ,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,IAAI;CAKrB;;;AAVD,AAOE,IAPE,CAOF,OAAO,EAPT,IAAI,CAOO,MAAM,EAPjB,IAAI,CAOe,QAAQ,CAAC;EACxB,KAAK,EAAE,OAAO;CACf"
"mappings": ";AAEA,AAAA,IAAI,CAAC;EACH,gBAAgB,ECDL,OAAO;EDElB,KAAK,EAAE,KAAK;EAEZ,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,IAAI;CAKrB;;;AAVD,AAOE,IAPE,CAOF,OAAO,EAPT,IAAI,CAOO,MAAM,EAPjB,IAAI,CAOe,QAAQ,CAAC;EACxB,KAAK,EAAE,OAAO;CACf"
}

View File

@ -1,176 +1,51 @@
/* line 1, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
.header {
color: inherit !important;
font-family: inherit !important;
}
.header { color: inherit !important; font-family: inherit !important; }
/* line 6, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
#banner {
padding-top: 12rem;
padding-bottom: 12rem;
background-color: rgba(0, 0, 0, 0.6);
background-position: center;
background-repeat: no-repeat;
background-size: 1920px auto;
background-blend-mode: multiply;
}
#banner { padding-top: 12rem; padding-bottom: 12rem; background-color: rgba(0, 0, 0, 0.6); background-position: center; background-repeat: no-repeat; background-size: 1920px auto; background-blend-mode: multiply; }
/* line 15, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
#banner #mensaje {
margin-bottom: 2rem;
color: white;
font-weight: 300;
font-size: 1.6rem;
}
#banner #mensaje { margin-bottom: 2rem; color: white; font-weight: 300; font-size: 1.6rem; }
/* line 21, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
#banner #mensaje .header {
font-weight: 900 !important;
font-size: 1.9rem;
}
#banner #mensaje .header { font-weight: 900 !important; font-size: 1.9rem; }
/* line 26, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
#banner .button {
font-family: inherit;
font-weight: 900;
}
#banner .button { font-family: inherit; font-weight: 900; background-color: #0d103c !important; color: white; }
/* line 32, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
#aviso {
color: white;
background-color: #429ab7;
padding-top: 5rem;
padding-bottom: 3rem;
font-size: 1.6rem;
font-weight: 300;
}
#aviso { color: white; background-color: #429ab7; padding-top: 5rem; padding-bottom: 3rem; font-size: 1.6rem; font-weight: 300; }
/* line 40, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
#aviso .header {
font-weight: 900;
}
#aviso .header { font-weight: 900; }
/* line 45, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
#destacados {
padding-top: 3rem;
padding-bottom: 5rem;
background-color: #a7a9ab;
min-height: 40rem;
}
#destacados { padding-top: 3rem; padding-bottom: 5rem; background-color: #a7a9ab; min-height: 40rem; }
/* line 51, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
#destacados .header {
color: #0d103c !important;
font-weight: 600;
}
#destacados .header { color: #0d103c !important; font-weight: 600; }
/* line 55, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
#destacados .titulo {
font-size: 1.6rem;
font-weight: 900;
padding-bottom: 1rem;
}
#destacados .titulo { font-size: 1.6rem; font-weight: 900; padding-bottom: 1rem; }
/* line 60, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
#destacados .ficha {
border-radius: 0;
border: 0;
box-shadow: none !important;
}
#destacados .ficha { border-radius: 0; border: 0; box-shadow: none !important; }
/* line 66, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
#destacados .ficha .content .segment {
background-color: #e6e6e7 !important;
padding-top: 0 !important;
padding-bottom: 0 !important;
font-weight: 300;
}
#destacados .ficha .content .segment { background-color: #f4f4f4 !important; padding-top: 0 !important; padding-bottom: 0 !important; font-weight: 300; }
/* line 72, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
#destacados .ficha .content .button {
font-family: inherit !important;
font-weight: 900;
padding-top: 0.3rem !important;
padding-bottom: 0.3rem !important;
background-color: #0d103c !important;
}
#destacados .ficha .content .button { font-family: inherit !important; font-weight: 900; padding-top: 0.3rem !important; padding-bottom: 0.3rem !important; background-color: #0d103c !important; }
/* line 80, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
#destacados .ficha .image {
overflow: hidden;
}
#destacados .ficha .image { height: 11rem; overflow: hidden; display: flex; align-items: center; }
/* line 83, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
#destacados .ficha .overlay {
background-color: #0d103c;
color: white;
opacity: 0.8;
text-align: center;
position: absolute;
z-index: 999;
top: 1.9rem;
right: -2.2rem;
width: 10rem;
padding-top: .3rem;
padding-bottom: .3rem;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg);
}
#destacados .ficha .image img { width: 100%; vertical-align: middle; }
/* line 102, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
#destacados .active {
font-weight: 900;
}
#destacados .ficha .overlay { background-color: #0d103c; color: white; opacity: 0.8; text-align: center; position: absolute; z-index: 999; top: 1.9rem; right: -2.2rem; width: 10rem; padding-top: .3rem; padding-bottom: .3rem; -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -ms-transform: rotate(45deg); -o-transform: rotate(45deg); transform: rotate(45deg); }
/* line 107, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
#segmentos {
padding-top: 4rem;
padding-bottom: 4rem;
}
#destacados .active { font-weight: 900; }
/* line 112, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
#resumen {
background-position: center;
background-position-y: -60rem;
background-repeat: no-repeat;
background-size: 2600px auto;
min-height: 20rem;
padding-top: 3rem;
}
#segmentos { padding-top: 4rem; padding-bottom: 4rem; }
/* line 120, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
#resumen .inverted.circular.segment {
background-color: rgba(0, 0, 0, 0.8);
}
#segmentos .titulo { color: #0d103c !important; }
/* line 125, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
#indicadores {
background-color: #bbbdc0;
padding-top: 1rem;
padding-bottom: 1rem;
min-height: 5rem;
}
#segmentos .grid .basic.segment .header { margin-top: 1rem; }
/* line 131, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
#indicadores .slideshow {
overflow: hidden;
height: 6rem;
}
#resumen { background-position: center; background-position-y: -60rem; background-repeat: no-repeat; background-size: 2600px auto; min-height: 20rem; padding-top: 3rem; }
/* line 135, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/home.scss */
#indicadores .slideshow .slide {
display: inline-block;
float: left;
background-color: white;
padding: 0;
margin: 1rem;
width: 8rem !important;
padding-top: .5rem;
padding-bottom: .5rem;
text-align: center;
}
#resumen .inverted.circular.segment { background-color: rgba(0, 0, 0, 0.8); }
/*# sourceMappingURL=home.css.map */
#indicadores { background-color: #a7a9ab; padding-top: 1rem; padding-bottom: 1rem; height: 4rem; }
#indicadores .slideshow { overflow: hidden; text-align: center; height: 2rem; }
#indicadores .slideshow .slide { display: inline; float: left; color: white; padding: 0; margin-right: 1rem; text-align: center; padding-left: 1rem; padding-right: 2rem; border-right: thin solid black; }
#indicadores .slideshow .slide .value:last-child { padding-left: 0.3rem; font-weight: 100 !important; }

View File

@ -2,11 +2,13 @@
"version": 3,
"file": "home.css",
"sources": [
"../../../resources/assets/sass/home.scss"
"../../../resources/assets/sass/home.scss",
"../../../resources/assets/sass/_pallete.scss"
],
"sourcesContent": [
".header {\r\n color: inherit !important;\r\n font-family: inherit !important;\r\n}\r\n\r\n#banner {\r\n padding-top: 12rem;\r\n padding-bottom: 12rem;\r\n background-color: rgba(0, 0, 0, 0.6);\r\n background-position: center;\r\n background-repeat: no-repeat;\r\n background-size: 1920px auto;\r\n background-blend-mode: multiply;\r\n\r\n #mensaje {\r\n margin-bottom: 2rem;\r\n color: white;\r\n font-weight: 300;\r\n font-size: 1.6rem;\r\n\r\n .header {\r\n font-weight: 900 !important;\r\n font-size: 1.9rem;\r\n }\r\n }\r\n .button {\r\n font-family: inherit;\r\n font-weight: 900;\r\n }\r\n}\r\n\r\n#aviso {\r\n color: white;\r\n background-color: #429ab7;\r\n padding-top: 5rem;\r\n padding-bottom: 3rem;\r\n font-size: 1.6rem;\r\n font-weight: 300;\r\n\r\n .header {\r\n font-weight: 900;\r\n }\r\n}\r\n\r\n#destacados {\r\n padding-top: 3rem;\r\n padding-bottom: 5rem;\r\n background-color: #a7a9ab;\r\n min-height: 40rem;\r\n\r\n .header {\r\n color: #0d103c !important;\r\n font-weight: 600;\r\n }\r\n .titulo {\r\n font-size: 1.6rem;\r\n font-weight: 900;\r\n padding-bottom: 1rem;\r\n }\r\n .ficha {\r\n border-radius: 0;\r\n border: 0;\r\n box-shadow: none !important;\r\n\r\n .content {\r\n .segment {\r\n background-color: #e6e6e7 !important;\r\n padding-top: 0 !important;\r\n padding-bottom: 0 !important;\r\n font-weight: 300;\r\n }\r\n .button {\r\n font-family: inherit !important;\r\n font-weight: 900;\r\n padding-top: 0.3rem !important;\r\n padding-bottom: 0.3rem !important;\r\n background-color: #0d103c !important;\r\n }\r\n }\r\n .image {\r\n overflow: hidden;\r\n }\r\n .overlay {\r\n background-color: #0d103c;\r\n color: white;\r\n opacity: 0.8;\r\n text-align: center;\r\n position: absolute;\r\n z-index: 999;\r\n top: 1.9rem;\r\n right: -2.2rem;\r\n width: 10rem;\r\n padding-top: .3rem;\r\n padding-bottom: .3rem;\r\n -webkit-transform: rotate(45deg);\r\n -moz-transform: rotate(45deg);\r\n -ms-transform: rotate(45deg);\r\n -o-transform: rotate(45deg);\r\n transform: rotate(45deg);\r\n }\r\n }\r\n .active {\r\n font-weight: 900;\r\n }\r\n}\r\n\r\n#segmentos {\r\n padding-top: 4rem;\r\n padding-bottom: 4rem;\r\n}\r\n\r\n#resumen {\r\n background-position: center;\r\n background-position-y: -60rem;\r\n background-repeat: no-repeat;\r\n background-size: 2600px auto;\r\n min-height: 20rem;\r\n padding-top: 3rem;\r\n\r\n .inverted.circular.segment {\r\n background-color: rgba(0, 0, 0, 0.8);\r\n }\r\n}\r\n\r\n#indicadores {\r\n background-color: #bbbdc0;\r\n padding-top: 1rem;\r\n padding-bottom: 1rem;\r\n min-height: 5rem;\r\n\r\n .slideshow {\r\n overflow: hidden;\r\n height: 6rem;\r\n\r\n .slide {\r\n display: inline-block;\r\n float: left;\r\n background-color: white;\r\n padding: 0;\r\n margin: 1rem;\r\n width: 8rem !important;\r\n padding-top: .5rem;\r\n padding-bottom: .5rem;\r\n text-align: center;\r\n }\r\n }\r\n}\r\n"
"@import 'pallete';\r\n\r\n.header {\r\n color: inherit !important;\r\n font-family: inherit !important;\r\n}\r\n\r\n#banner {\r\n padding-top: 12rem;\r\n padding-bottom: 12rem;\r\n background-color: rgba(0, 0, 0, 0.6);\r\n background-position: center;\r\n background-repeat: no-repeat;\r\n background-size: 1920px auto;\r\n background-blend-mode: multiply;\r\n\r\n #mensaje {\r\n margin-bottom: 2rem;\r\n color: white;\r\n font-weight: 300;\r\n font-size: 1.6rem;\r\n\r\n .header {\r\n font-weight: 900 !important;\r\n font-size: 1.9rem;\r\n }\r\n }\r\n .button {\r\n font-family: inherit;\r\n font-weight: 900;\r\n background-color: $azul-oscuro !important;\r\n color: white;\r\n }\r\n}\r\n\r\n#aviso {\r\n color: white;\r\n background-color: $marca;\r\n padding-top: 5rem;\r\n padding-bottom: 3rem;\r\n font-size: 1.6rem;\r\n font-weight: 300;\r\n\r\n .header {\r\n font-weight: 900;\r\n }\r\n}\r\n\r\n#destacados {\r\n padding-top: 3rem;\r\n padding-bottom: 5rem;\r\n background-color: $gris-medio;\r\n min-height: 40rem;\r\n\r\n .header {\r\n color: $azul-oscuro !important;\r\n font-weight: 600;\r\n }\r\n .titulo {\r\n font-size: 1.6rem;\r\n font-weight: 900;\r\n padding-bottom: 1rem;\r\n }\r\n .ficha {\r\n border-radius: 0;\r\n border: 0;\r\n box-shadow: none !important;\r\n\r\n .content {\r\n .segment {\r\n background-color: $gris-claro !important;\r\n padding-top: 0 !important;\r\n padding-bottom: 0 !important;\r\n font-weight: 300;\r\n }\r\n .button {\r\n font-family: inherit !important;\r\n font-weight: 900;\r\n padding-top: 0.3rem !important;\r\n padding-bottom: 0.3rem !important;\r\n background-color: #0d103c !important;\r\n }\r\n }\r\n .image {\r\n height: 11rem;\r\n overflow: hidden;\r\n display: flex;\r\n align-items: center;\r\n img {\r\n width: 100%;\r\n vertical-align: middle;\r\n }\r\n }\r\n .overlay {\r\n background-color: #0d103c;\r\n color: white;\r\n opacity: 0.8;\r\n text-align: center;\r\n position: absolute;\r\n z-index: 999;\r\n top: 1.9rem;\r\n right: -2.2rem;\r\n width: 10rem;\r\n padding-top: .3rem;\r\n padding-bottom: .3rem;\r\n -webkit-transform: rotate(45deg);\r\n -moz-transform: rotate(45deg);\r\n -ms-transform: rotate(45deg);\r\n -o-transform: rotate(45deg);\r\n transform: rotate(45deg);\r\n }\r\n }\r\n .active {\r\n font-weight: 900;\r\n }\r\n}\r\n\r\n#segmentos {\r\n padding-top: 4rem;\r\n padding-bottom: 4rem;\r\n\r\n .titulo {\r\n color: $azul-oscuro !important;\r\n }\r\n\r\n .grid {\r\n .basic.segment {\r\n .header {\r\n margin-top: 1rem;\r\n }\r\n }\r\n }\r\n}\r\n\r\n#resumen {\r\n background-position: center;\r\n background-position-y: -60rem;\r\n background-repeat: no-repeat;\r\n background-size: 2600px auto;\r\n min-height: 20rem;\r\n padding-top: 3rem;\r\n\r\n .inverted.circular.segment {\r\n background-color: rgba(0, 0, 0, 0.8);\r\n }\r\n}\r\n\r\n#indicadores {\r\n background-color: $gris-medio;\r\n padding-top: 1rem;\r\n padding-bottom: 1rem;\r\n height: 4rem;\r\n\r\n .slideshow {\r\n overflow: hidden;\r\n text-align: center;\r\n height: 2rem;\r\n\r\n .slide {\r\n display: inline;\r\n float: left;\r\n color: white;\r\n padding: 0;\r\n margin-right: 1rem;\r\n text-align: center;\r\n\r\n .value:last-child {\r\n padding-left: 0.3rem;\r\n font-weight: 100 !important;\r\n }\r\n padding-left: 1rem;\r\n padding-right: 2rem;\r\n border-right: thin solid black;\r\n }\r\n }\r\n}\r\n",
"$marca: #429ab7;\r\n$gris-oscuro: #808284;\r\n$gris-medio: #a7a9ab;\r\n$gris-claro: #f4f4f4;\r\n$azul-oscuro: #0d103c;\r\n"
],
"names": [],
"mappings": "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"
"mappings": "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"
}

View File

@ -1,112 +1,43 @@
/* line 1, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
body {
font-family: Roboto, sans-serif !important;
}
body { font-family: Roboto, sans-serif !important; }
/* line 5, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
.brand {
color: #000070 !important;
}
.brand { color: #000070 !important; }
/* line 8, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
.inverted.brand {
background-color: #000070 !important;
color: white !important;
}
.inverted.brand { background-color: #000070 !important; color: white !important; }
/* line 12, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
.button.brand {
box-shadow: none !important;
}
.button.brand { box-shadow: none !important; }
/* line 16, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
.title.image {
width: 15rem;
}
.title.image { width: 15rem; }
/* line 21, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
header #franja {
background-color: #707070;
color: white !important;
}
header #franja { background-color: #707070; color: white !important; }
/* line 25, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
header #franja .menu {
color: inherit !important;
}
header #franja .menu { color: inherit !important; }
/* line 28, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
header #franja .menu .spacer {
width: 3rem;
}
header #franja .menu .spacer { width: 3rem; }
/* line 31, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
header #franja .menu .input {
height: 1.3rem !important;
}
header #franja .menu .input { height: 1.3rem !important; }
/* line 36, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
header .menu {
margin-top: 0 !important;
margin-bottom: 0 !important;
}
header .menu { margin-top: 0 !important; margin-bottom: 0 !important; }
/* line 40, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
header .menu .logo {
font-size: 2rem;
font-weight: 900;
}
header .menu .logo { font-size: 2rem; font-weight: 900; }
/* line 47, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
a {
color: inherit !important;
}
header .menu #productos_menu .menu { border: thin solid white; box-shadow: none; }
/* line 51, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
.menu {
font-family: inherit !important;
}
header .menu #productos_menu .menu .item:hover { background-color: #a7a9ab !important; }
/* line 54, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
.item {
font-family: inherit !important;
color: inherit !important;
}
a { color: inherit !important; }
/* line 59, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
#contacto {
padding-top: 3rem;
padding-bottom: 3rem;
}
.menu { font-family: inherit !important; }
/* line 63, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
#contacto .header {
color: #0d103c !important;
font-weight: 900;
}
.item { font-family: inherit !important; color: inherit !important; }
/* line 67, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
#contacto .form .button {
background-color: #429ab7;
color: white;
}
#contacto { background-color: #f4f4f4; padding-top: 3rem; padding-bottom: 3rem; }
/* line 73, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
footer {
background-color: #429ab7;
color: white;
margin: 0;
}
#contacto .header { color: #0d103c !important; font-weight: 900; }
/* line 78, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
footer .menu {
margin: 0 !important;
}
#contacto .form .button { background-color: #429ab7; color: white; }
/* line 81, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/main.scss */
footer .menu .label {
background-color: white !important;
color: #429ab7 !important;
}
footer { background-color: #429ab7; color: white; margin: 0; }
/*# sourceMappingURL=main.css.map */
footer .menu { margin: 0 !important; }
footer .menu .label { background-color: white !important; color: #429ab7 !important; }

View File

@ -2,11 +2,13 @@
"version": 3,
"file": "main.css",
"sources": [
"../../../resources/assets/sass/main.scss"
"../../../resources/assets/sass/main.scss",
"../../../resources/assets/sass/_pallete.scss"
],
"sourcesContent": [
"body {\r\n font-family: Roboto, sans-serif !important;\r\n}\r\n\r\n.brand {\r\n color: #000070 !important;\r\n}\r\n.inverted.brand {\r\n background-color: #000070 !important;\r\n color: white !important;\r\n}\r\n.button.brand {\r\n box-shadow: none !important;\r\n}\r\n\r\n.title.image {\r\n width: 15rem;\r\n}\r\n\r\nheader {\r\n #franja {\r\n background-color: #707070;\r\n color: white !important;\r\n\r\n .menu {\r\n color: inherit !important;\r\n\r\n .spacer {\r\n width: 3rem;\r\n }\r\n .input {\r\n height: 1.3rem !important;\r\n }\r\n }\r\n }\r\n .menu {\r\n margin-top: 0 !important;\r\n margin-bottom: 0 !important;\r\n\r\n .logo {\r\n font-size: 2rem;\r\n font-weight: 900;\r\n }\r\n }\r\n}\r\n\r\na {\r\n color: inherit !important;\r\n}\r\n\r\n.menu {\r\n font-family: inherit !important;\r\n}\r\n.item {\r\n font-family: inherit !important;\r\n color: inherit !important;\r\n}\r\n\r\n#contacto {\r\n padding-top: 3rem;\r\n padding-bottom: 3rem;\r\n\r\n .header {\r\n color: #0d103c !important;\r\n font-weight: 900;\r\n }\r\n .form .button {\r\n background-color: #429ab7;\r\n color: white;\r\n }\r\n}\r\n\r\nfooter {\r\n background-color: #429ab7;\r\n color: white;\r\n margin: 0;\r\n\r\n .menu {\r\n margin: 0 !important;\r\n\r\n .label {\r\n background-color: white !important;\r\n color: #429ab7 !important;\r\n }\r\n }\r\n}\r\n"
"@import 'pallete';\r\n\r\nbody {\r\n font-family: Roboto, sans-serif !important;\r\n}\r\n\r\n.brand {\r\n color: #000070 !important;\r\n}\r\n.inverted.brand {\r\n background-color: #000070 !important;\r\n color: white !important;\r\n}\r\n.button.brand {\r\n box-shadow: none !important;\r\n}\r\n.title.image {\r\n width: 15rem;\r\n}\r\n\r\nheader {\r\n #franja {\r\n background-color: #707070;\r\n color: white !important;\r\n\r\n .menu {\r\n color: inherit !important;\r\n\r\n .spacer {\r\n width: 3rem;\r\n }\r\n .input {\r\n height: 1.3rem !important;\r\n }\r\n }\r\n }\r\n .menu {\r\n margin-top: 0 !important;\r\n margin-bottom: 0 !important;\r\n\r\n .logo {\r\n font-size: 2rem;\r\n font-weight: 900;\r\n }\r\n }\r\n}\r\n\r\na {\r\n color: inherit !important;\r\n}\r\n\r\n.menu {\r\n font-family: inherit !important;\r\n}\r\n.item {\r\n font-family: inherit !important;\r\n color: inherit !important;\r\n}\r\n\r\n#contacto {\r\n background-color: $gris-claro;\r\n padding-top: 3rem;\r\n padding-bottom: 3rem;\r\n\r\n .header {\r\n color: $azul-oscuro !important;\r\n font-weight: 900;\r\n }\r\n .form .button {\r\n background-color: $marca;\r\n color: white;\r\n }\r\n}\r\n\r\nfooter {\r\n background-color: $marca;\r\n color: white;\r\n margin: 0;\r\n\r\n .menu {\r\n margin: 0 !important;\r\n\r\n .label {\r\n background-color: white !important;\r\n color: $marca !important;\r\n }\r\n }\r\n}\r\n",
"$marca: #429ab7;\r\n$gris-oscuro: #808284;\r\n$gris-medio: #a7a9ab;\r\n$gris-claro: #f4f4f4;\r\n$azul-oscuro: #0d103c;\r\n"
],
"names": [],
"mappings": ";AAAA,AAAA,IAAI,CAAC;EACH,WAAW,EAAE,6BAA6B;CAC3C;;;AAED,AAAA,MAAM,CAAC;EACL,KAAK,EAAE,kBAAkB;CAC1B;;;AACD,AAAA,SAAS,AAAA,MAAM,CAAC;EACd,gBAAgB,EAAE,kBAAkB;EACpC,KAAK,EAAE,gBAAgB;CACxB;;;AACD,AAAA,OAAO,AAAA,MAAM,CAAC;EACZ,UAAU,EAAE,eAAe;CAC5B;;;AAED,AAAA,MAAM,AAAA,MAAM,CAAC;EACX,KAAK,EAAE,KAAK;CACb;;;AAED,AACE,MADI,CACJ,OAAO,CAAC;EACN,gBAAgB,EAAE,OAAO;EACzB,KAAK,EAAE,gBAAgB;CAYxB;;;AAfH,AAKI,MALE,CACJ,OAAO,CAIL,KAAK,CAAC;EACJ,KAAK,EAAE,kBAAkB;CAQ1B;;;AAdL,AAQM,MARA,CACJ,OAAO,CAIL,KAAK,CAGH,OAAO,CAAC;EACN,KAAK,EAAE,IAAI;CACZ;;;AAVP,AAWM,MAXA,CACJ,OAAO,CAIL,KAAK,CAMH,MAAM,CAAC;EACL,MAAM,EAAE,iBAAiB;CAC1B;;;AAbP,AAgBE,MAhBI,CAgBJ,KAAK,CAAC;EACJ,UAAU,EAAE,YAAY;EACxB,aAAa,EAAE,YAAY;CAM5B;;;AAxBH,AAoBI,MApBE,CAgBJ,KAAK,CAIH,KAAK,CAAC;EACJ,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;CACjB;;;AAIL,AAAA,CAAC,CAAC;EACA,KAAK,EAAE,kBAAkB;CAC1B;;;AAED,AAAA,KAAK,CAAC;EACJ,WAAW,EAAE,kBAAkB;CAChC;;;AACD,AAAA,KAAK,CAAC;EACJ,WAAW,EAAE,kBAAkB;EAC/B,KAAK,EAAE,kBAAkB;CAC1B;;;AAED,AAAA,SAAS,CAAC;EACR,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,IAAI;CAUrB;;;AAZD,AAIE,SAJO,CAIP,OAAO,CAAC;EACN,KAAK,EAAE,kBAAkB;EACzB,WAAW,EAAE,GAAG;CACjB;;;AAPH,AAQE,SARO,CAQP,KAAK,CAAC,OAAO,CAAC;EACZ,gBAAgB,EAAE,OAAO;EACzB,KAAK,EAAE,KAAK;CACb;;;AAGH,AAAA,MAAM,CAAC;EACL,gBAAgB,EAAE,OAAO;EACzB,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,CAAC;CAUV;;;AAbD,AAKE,MALI,CAKJ,KAAK,CAAC;EACJ,MAAM,EAAE,YAAY;CAMrB;;;AAZH,AAQI,MARE,CAKJ,KAAK,CAGH,MAAM,CAAC;EACL,gBAAgB,EAAE,gBAAgB;EAClC,KAAK,EAAE,kBAAkB;CAC1B"
"mappings": ";AAEA,AAAA,IAAI,CAAC;EACH,WAAW,EAAE,6BAA6B;CAC3C;;;AAED,AAAA,MAAM,CAAC;EACL,KAAK,EAAE,kBAAkB;CAC1B;;;AACD,AAAA,SAAS,AAAA,MAAM,CAAC;EACd,gBAAgB,EAAE,kBAAkB;EACpC,KAAK,EAAE,gBAAgB;CACxB;;;AACD,AAAA,OAAO,AAAA,MAAM,CAAC;EACZ,UAAU,EAAE,eAAe;CAC5B;;;AACD,AAAA,MAAM,AAAA,MAAM,CAAC;EACX,KAAK,EAAE,KAAK;CACb;;;AAED,AACE,MADI,CACJ,OAAO,CAAC;EACN,gBAAgB,EAAE,OAAO;EACzB,KAAK,EAAE,gBAAgB;CAYxB;;;AAfH,AAKI,MALE,CACJ,OAAO,CAIL,KAAK,CAAC;EACJ,KAAK,EAAE,kBAAkB;CAQ1B;;;AAdL,AAQM,MARA,CACJ,OAAO,CAIL,KAAK,CAGH,OAAO,CAAC;EACN,KAAK,EAAE,IAAI;CACZ;;;AAVP,AAWM,MAXA,CACJ,OAAO,CAIL,KAAK,CAMH,MAAM,CAAC;EACL,MAAM,EAAE,iBAAiB;CAC1B;;;AAbP,AAgBE,MAhBI,CAgBJ,KAAK,CAAC;EACJ,UAAU,EAAE,YAAY;EACxB,aAAa,EAAE,YAAY;CAM5B;;;AAxBH,AAoBI,MApBE,CAgBJ,KAAK,CAIH,KAAK,CAAC;EACJ,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;CACjB;;;AAIL,AAAA,CAAC,CAAC;EACA,KAAK,EAAE,kBAAkB;CAC1B;;;AAED,AAAA,KAAK,CAAC;EACJ,WAAW,EAAE,kBAAkB;CAChC;;;AACD,AAAA,KAAK,CAAC;EACJ,WAAW,EAAE,kBAAkB;EAC/B,KAAK,EAAE,kBAAkB;CAC1B;;;AAED,AAAA,SAAS,CAAC;EACR,gBAAgB,ECzDL,OAAO;ED0DlB,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,IAAI;CAUrB;;;AAbD,AAKE,SALO,CAKP,OAAO,CAAC;EACN,KAAK,EC7DK,OAAO,CD6DG,UAAU;EAC9B,WAAW,EAAE,GAAG;CACjB;;;AARH,AASE,SATO,CASP,KAAK,CAAC,OAAO,CAAC;EACZ,gBAAgB,ECrEZ,OAAO;EDsEX,KAAK,EAAE,KAAK;CACb;;;AAGH,AAAA,MAAM,CAAC;EACL,gBAAgB,EC3EV,OAAO;ED4Eb,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,CAAC;CAUV;;;AAbD,AAKE,MALI,CAKJ,KAAK,CAAC;EACJ,MAAM,EAAE,YAAY;CAMrB;;;AAZH,AAQI,MARE,CAKJ,KAAK,CAGH,MAAM,CAAC;EACL,gBAAgB,EAAE,gBAAgB;EAClC,KAAK,ECpFH,OAAO,CDoFK,UAAU;CACzB"
}

View File

@ -1,14 +1,5 @@
/* line 1, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/nosotros.scss */
#nosotros {
background-color: #5d5d5d;
color: white;
padding-top: 3rem;
padding-bottom: 4rem;
}
#nosotros { background-color: #a7a9ab; color: white; font-size: 1.2rem !important; padding-top: 3rem; padding-bottom: 4rem; }
/* line 8, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/nosotros.scss */
#nosotros .header {
color: inherit;
}
#nosotros .header { color: inherit; }
/*# sourceMappingURL=nosotros.css.map */
#nosotros .column { text-align: justify; }

View File

@ -2,11 +2,13 @@
"version": 3,
"file": "nosotros.css",
"sources": [
"../../../resources/assets/sass/nosotros.scss"
"../../../resources/assets/sass/nosotros.scss",
"../../../resources/assets/sass/_pallete.scss"
],
"sourcesContent": [
"#nosotros {\r\n background-color: #5d5d5d;\r\n color: white;\r\n\r\n padding-top: 3rem;\r\n padding-bottom: 4rem;\r\n\r\n .header {\r\n color: inherit;\r\n }\r\n}\r\n"
"@import 'pallete';\r\n\r\n#nosotros {\r\n background-color: $gris-medio;\r\n color: white;\r\n\r\n padding-top: 3rem;\r\n padding-bottom: 4rem;\r\n\r\n .header {\r\n color: inherit;\r\n }\r\n .column {\r\n text-align: justify;\r\n }\r\n}\r\n",
"$marca: #429ab7;\r\n$gris-oscuro: #808284;\r\n$gris-medio: #a7a9ab;\r\n$gris-claro: #f4f4f4;\r\n$azul-oscuro: #0d103c;\r\n"
],
"names": [],
"mappings": ";AAAA,AAAA,SAAS,CAAC;EACR,gBAAgB,EAAE,OAAO;EACzB,KAAK,EAAE,KAAK;EAEZ,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,IAAI;CAKrB;;;AAVD,AAOE,SAPO,CAOP,OAAO,CAAC;EACN,KAAK,EAAE,OAAO;CACf"
"mappings": ";AAEA,AAAA,SAAS,CAAC;EACR,gBAAgB,ECDL,OAAO;EDElB,KAAK,EAAE,KAAK;EAEZ,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,IAAI;CAQrB;;;AAbD,AAOE,SAPO,CAOP,OAAO,CAAC;EACN,KAAK,EAAE,OAAO;CACf;;;AATH,AAUE,SAVO,CAUP,OAAO,CAAC;EACN,UAAU,EAAE,OAAO;CACpB"
}

View File

@ -0,0 +1,2 @@
/*# sourceMappingURL=pallete.css.map */

View File

@ -0,0 +1,12 @@
{
"version": 3,
"file": "pallete.css",
"sources": [
"../../../resources/assets/sass/pallete.scss"
],
"sourcesContent": [
"$marca: #429ab7;\r\n$gris-oscuro: #808284;\r\n$gris-medio: #a7a9ab;\r\n$gris-claro: #f4f4f4;\r\n"
],
"names": [],
"mappings": ""
}

View File

@ -0,0 +1,45 @@
#producto { background-color: #a7a9ab; padding-bottom: 2rem; }
#producto .titulo { color: #0d103c !important; padding-top: 2rem; padding-bottom: 1rem; }
#producto .titulo .header { color: #0d103c !important; }
#producto .titulo .direccion { padding-left: 2rem; }
#producto .titulo .publicado { padding-top: .5rem; }
#producto #galeria { padding-bottom: 4rem; }
#producto #galeria > .image { height: 53rem; overflow: hidden; display: flex; align-items: center; }
#producto #galeria > .image img { width: 100%; vertical-align: middle; }
#producto #galeria #thumbnails { padding-top: 2rem; }
#producto #galeria #thumbnails .image { height: 8rem; overflow: hidden; display: flex; align-items: center; }
#producto #galeria #thumbnails .image img { width: 100%; vertical-align: middle; }
#producto #buscar { color: #404041 !important; padding-top: 2rem; }
#producto #buscar .header { color: inherit; }
#producto #buscar .divider { background-color: white; }
#producto #buscar .field input[type='text'] { background-color: inherit !important; }
#producto #buscar .slider .track-fill { background-color: #0d103c !important; }
#producto #buscar .price_label { margin-top: -1rem; float: right; }
#producto #datos .tabular .item { background-color: #f4f4f4 !important; border: thin solid white; }
#producto #datos .tabular .item:not(.active) { border: thin solid #f4f4f4; background-color: white !important; }
#producto #datos .tabular .item:last-child { margin-left: 1rem; }
#producto #datos .segment { border: none !important; background-color: #808284; color: white; }
#producto #datos .segment .informacion .row { border-bottom: thin dotted white; }
#producto #datos .segment .informacion .row:last-child { border-bottom: none; }

View File

@ -0,0 +1,14 @@
{
"version": 3,
"file": "producto.css",
"sources": [
"../../../resources/assets/sass/producto.scss",
"../../../resources/assets/sass/_pallete.scss"
],
"sourcesContent": [
"@import 'pallete';\r\n\r\n#producto {\r\n background-color: $gris-medio;\r\n padding-bottom: 2rem;\r\n\r\n .titulo {\r\n color: $azul-oscuro !important;\r\n .header {\r\n color: $azul-oscuro !important;\r\n }\r\n .direccion {\r\n padding-left: 2rem;\r\n }\r\n .publicado {\r\n padding-top: .5rem;\r\n }\r\n padding-bottom: 1rem;\r\n }\r\n\r\n #galeria {\r\n padding-bottom: 4rem;\r\n\r\n &>.image {\r\n height: 53rem;\r\n overflow: hidden;\r\n display: flex;\r\n align-items: center;\r\n img {\r\n width: 100%;\r\n vertical-align: middle;\r\n }\r\n }\r\n\r\n #thumbnails {\r\n padding-top: 2rem;\r\n\r\n .image {\r\n height: 8rem;\r\n overflow: hidden;\r\n display: flex;\r\n align-items: center;\r\n img {\r\n width: 100%;\r\n vertical-align: middle;\r\n }\r\n }\r\n }\r\n }\r\n #buscar {\r\n color: #404041 !important;\r\n padding-top: 2rem;\r\n\r\n .header {\r\n color: inherit;\r\n }\r\n .divider {\r\n background-color: white;\r\n }\r\n .field {\r\n input[type='text'] {\r\n background-color: inherit !important;\r\n }\r\n }\r\n .slider {\r\n .track-fill {\r\n background-color: #0d103c !important;\r\n }\r\n }\r\n .price_label {\r\n margin-top: -1rem;\r\n float: right;\r\n }\r\n }\r\n #datos {\r\n .tabular {\r\n .item {\r\n background-color: $gris-claro !important;\r\n border: thin solid white;\r\n\r\n &:not(.active) {\r\n border: thin solid $gris-claro;\r\n background-color: white !important;\r\n }\r\n &:last-child {\r\n margin-left: 1rem;\r\n }\r\n }\r\n }\r\n .segment {\r\n border: none !important;\r\n\r\n .informacion {\r\n .row {\r\n border-bottom: thin dotted white;\r\n\r\n &:last-child {\r\n border-bottom: none;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n",
"$marca: #429ab7;\r\n$gris-oscuro: #808284;\r\n$gris-medio: #a7a9ab;\r\n$gris-claro: #f4f4f4;\r\n$azul-oscuro: #0d103c;\r\n"
],
"names": [],
"mappings": "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"
}

View File

@ -0,0 +1,19 @@
#productos { background-color: #a7a9ab; padding-top: 2rem; }
#productos .titulo { color: #0d103c !important; }
#productos .tabular.menu .item { color: #404041 !important; }
#productos .grid { padding-top: 2rem; padding-bottom: 2rem; }
#productos .grid .ficha { border-radius: 0; border: 0; box-shadow: none !important; }
#productos .grid .ficha .content .segment { background-color: #e6e6e7 !important; padding-top: 0 !important; padding-bottom: 0 !important; font-weight: 300; }
#productos .grid .ficha .content .button { font-family: inherit !important; font-weight: 900; padding-top: 0.3rem !important; padding-bottom: 0.3rem !important; background-color: #0d103c !important; }
#productos .grid .ficha .image { height: 11rem; overflow: hidden; display: flex; align-items: center; }
#productos .grid .ficha .image img { width: 100%; vertical-align: middle; }
#productos .grid .ficha .overlay { background-color: #0d103c; color: white; opacity: 0.8; text-align: center; position: absolute; z-index: 999; top: 1.9rem; right: -2.2rem; width: 10rem; padding-top: .3rem; padding-bottom: .3rem; -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -ms-transform: rotate(45deg); -o-transform: rotate(45deg); transform: rotate(45deg); }

View File

@ -0,0 +1,14 @@
{
"version": 3,
"file": "productos.css",
"sources": [
"../../../resources/assets/sass/productos.scss",
"../../../resources/assets/sass/_pallete.scss"
],
"sourcesContent": [
"@import 'pallete';\r\n\r\n#productos {\r\n background-color: $gris-medio;\r\n padding-top: 2rem;\r\n\r\n .titulo {\r\n color: $azul-oscuro !important;\r\n }\r\n\r\n .tabular.menu .item {\r\n color: #404041 !important;\r\n }\r\n\r\n .grid {\r\n padding-top: 2rem;\r\n padding-bottom: 2rem;\r\n\r\n .ficha {\r\n border-radius: 0;\r\n border: 0;\r\n box-shadow: none !important;\r\n\r\n .content {\r\n .segment {\r\n background-color: #e6e6e7 !important;\r\n padding-top: 0 !important;\r\n padding-bottom: 0 !important;\r\n font-weight: 300;\r\n }\r\n .button {\r\n font-family: inherit !important;\r\n font-weight: 900;\r\n padding-top: 0.3rem !important;\r\n padding-bottom: 0.3rem !important;\r\n background-color: $azul-oscuro !important;\r\n }\r\n }\r\n .image {\r\n height: 11rem;\r\n overflow: hidden;\r\n display: flex;\r\n align-items: center;\r\n img {\r\n width: 100%;\r\n vertical-align: middle;\r\n }\r\n }\r\n .overlay {\r\n background-color: $azul-oscuro;\r\n color: white;\r\n opacity: 0.8;\r\n text-align: center;\r\n position: absolute;\r\n z-index: 999;\r\n top: 1.9rem;\r\n right: -2.2rem;\r\n width: 10rem;\r\n padding-top: .3rem;\r\n padding-bottom: .3rem;\r\n -webkit-transform: rotate(45deg);\r\n -moz-transform: rotate(45deg);\r\n -ms-transform: rotate(45deg);\r\n -o-transform: rotate(45deg);\r\n transform: rotate(45deg);\r\n }\r\n }\r\n }\r\n}\r\n",
"$marca: #429ab7;\r\n$gris-oscuro: #808284;\r\n$gris-medio: #a7a9ab;\r\n$gris-claro: #f4f4f4;\r\n$azul-oscuro: #0d103c;\r\n"
],
"names": [],
"mappings": ";AAEA,AAAA,UAAU,CAAC;EACT,gBAAgB,ECDL,OAAO;EDElB,WAAW,EAAE,IAAI;CAgElB;;;AAlED,AAIE,UAJQ,CAIR,OAAO,CAAC;EACN,KAAK,ECHK,OAAO,CDGG,UAAU;CAC/B;;;AANH,AAQE,UARQ,CAQR,QAAQ,AAAA,KAAK,CAAC,KAAK,CAAC;EAClB,KAAK,EAAE,kBAAkB;CAC1B;;;AAVH,AAYE,UAZQ,CAYR,KAAK,CAAC;EACJ,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,IAAI;CAmDrB;;;AAjEH,AAgBI,UAhBM,CAYR,KAAK,CAIH,MAAM,CAAC;EACL,aAAa,EAAE,CAAC;EAChB,MAAM,EAAE,CAAC;EACT,UAAU,EAAE,eAAe;CA6C5B;;;AAhEL,AAsBQ,UAtBE,CAYR,KAAK,CAIH,MAAM,CAKJ,QAAQ,CACN,QAAQ,CAAC;EACP,gBAAgB,EAAE,kBAAkB;EACpC,WAAW,EAAE,YAAY;EACzB,cAAc,EAAE,YAAY;EAC5B,WAAW,EAAE,GAAG;CACjB;;;AA3BT,AA4BQ,UA5BE,CAYR,KAAK,CAIH,MAAM,CAKJ,QAAQ,CAON,OAAO,CAAC;EACN,WAAW,EAAE,kBAAkB;EAC/B,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,iBAAiB;EAC9B,cAAc,EAAE,iBAAiB;EACjC,gBAAgB,EC/BZ,OAAO,CD+BoB,UAAU;CAC1C;;;AAlCT,AAoCM,UApCI,CAYR,KAAK,CAIH,MAAM,CAoBJ,MAAM,CAAC;EACL,MAAM,EAAE,KAAK;EACb,QAAQ,EAAE,MAAM;EAChB,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,MAAM;CAKpB;;;AA7CP,AAyCQ,UAzCE,CAYR,KAAK,CAIH,MAAM,CAoBJ,MAAM,CAKJ,GAAG,CAAC;EACF,KAAK,EAAE,IAAI;EACX,cAAc,EAAE,MAAM;CACvB;;;AA5CT,AA8CM,UA9CI,CAYR,KAAK,CAIH,MAAM,CA8BJ,QAAQ,CAAC;EACP,gBAAgB,EC7CV,OAAO;ED8Cb,KAAK,EAAE,KAAK;EACZ,OAAO,EAAE,GAAG;EACZ,UAAU,EAAE,MAAM;EAClB,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,GAAG;EACZ,GAAG,EAAE,MAAM;EACX,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,KAAK;EACZ,WAAW,EAAE,KAAK;EAClB,cAAc,EAAE,KAAK;EACrB,iBAAiB,EAAE,aAAa;EAChC,cAAc,EAAE,aAAa;EAC7B,aAAa,EAAE,aAAa;EAC5B,YAAY,EAAE,aAAa;EAC3B,SAAS,EAAE,aAAa;CACzB"
}

View File

@ -1,107 +0,0 @@
/* line 1, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyecto.scss */
#proyecto {
background-color: #a7a9ab;
padding-bottom: 2rem;
}
/* line 5, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyecto.scss */
#proyecto .titulo {
color: #404041;
padding-bottom: 1rem;
}
/* line 7, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyecto.scss */
#proyecto .titulo .header {
color: #0d103c !important;
}
/* line 10, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyecto.scss */
#proyecto .titulo .direccion {
padding-left: 2rem;
}
/* line 13, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyecto.scss */
#proyecto .titulo .publicado {
padding-top: .5rem;
}
/* line 19, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyecto.scss */
#proyecto #galeria {
padding-bottom: 4rem;
}
/* line 22, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyecto.scss */
#proyecto #galeria > .image img {
max-height: 60rem;
}
/* line 26, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyecto.scss */
#proyecto #galeria .grid {
padding-top: 2rem;
}
/* line 30, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyecto.scss */
#proyecto #buscar {
color: #404041 !important;
padding-top: 2rem;
}
/* line 34, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyecto.scss */
#proyecto #buscar .header {
color: inherit;
}
/* line 37, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyecto.scss */
#proyecto #buscar .divider {
background-color: white;
}
/* line 41, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyecto.scss */
#proyecto #buscar .field input[type='text'] {
background-color: inherit !important;
}
/* line 46, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyecto.scss */
#proyecto #buscar .slider .track-fill {
background-color: #0d103c !important;
}
/* line 50, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyecto.scss */
#proyecto #buscar .price_label {
margin-top: -1rem;
float: right;
}
/* line 57, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyecto.scss */
#proyecto #datos .tabular .item {
background-color: #a7a9ab !important;
border: thin solid white;
}
/* line 61, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyecto.scss */
#proyecto #datos .tabular .item:not(.active) {
border: thin solid #a7a9ab;
background-color: white !important;
}
/* line 65, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyecto.scss */
#proyecto #datos .tabular .item:last-child {
margin-left: 1rem;
}
/* line 70, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyecto.scss */
#proyecto #datos .segment {
border: none !important;
}
/* line 74, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyecto.scss */
#proyecto #datos .segment .informacion .row {
border-bottom: thin dotted white;
}
/* line 77, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyecto.scss */
#proyecto #datos .segment .informacion .row:last-child {
border-bottom: none;
}
/*# sourceMappingURL=proyecto.css.map */

View File

@ -1,12 +1,12 @@
{
"version": 3,
"file": "proyecto.css",
"file": "producto.css",
"sources": [
"../../../resources/assets/sass/proyecto.scss"
"../../../resources/assets/sass/producto.scss"
],
"sourcesContent": [
"#proyecto {\r\n background-color: #a7a9ab;\r\n padding-bottom: 2rem;\r\n\r\n .titulo {\r\n color: #404041;\r\n .header {\r\n color: #0d103c !important;\r\n }\r\n .direccion {\r\n padding-left: 2rem;\r\n }\r\n .publicado {\r\n padding-top: .5rem;\r\n }\r\n padding-bottom: 1rem;\r\n }\r\n\r\n #galeria {\r\n padding-bottom: 4rem;\r\n\r\n &>.image img {\r\n max-height: 60rem;\r\n }\r\n\r\n .grid {\r\n padding-top: 2rem;\r\n }\r\n }\r\n #buscar {\r\n color: #404041 !important;\r\n padding-top: 2rem;\r\n\r\n .header {\r\n color: inherit;\r\n }\r\n .divider {\r\n background-color: white;\r\n }\r\n .field {\r\n input[type='text'] {\r\n background-color: inherit !important;\r\n }\r\n }\r\n .slider {\r\n .track-fill {\r\n background-color: #0d103c !important;\r\n }\r\n }\r\n .price_label {\r\n margin-top: -1rem;\r\n float: right;\r\n }\r\n }\r\n #datos {\r\n .tabular {\r\n .item {\r\n background-color: #a7a9ab !important;\r\n border: thin solid white;\r\n\r\n &:not(.active) {\r\n border: thin solid #a7a9ab;\r\n background-color: white !important;\r\n }\r\n &:last-child {\r\n margin-left: 1rem;\r\n }\r\n }\r\n }\r\n .segment {\r\n border: none !important;\r\n\r\n .informacion {\r\n .row {\r\n border-bottom: thin dotted white;\r\n\r\n &:last-child {\r\n border-bottom: none;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n"
"#producto {\r\n background-color: #a7a9ab;\r\n padding-bottom: 2rem;\r\n\r\n .titulo {\r\n color: #404041;\r\n .header {\r\n color: #0d103c !important;\r\n }\r\n .direccion {\r\n padding-left: 2rem;\r\n }\r\n .publicado {\r\n padding-top: .5rem;\r\n }\r\n padding-bottom: 1rem;\r\n }\r\n\r\n #galeria {\r\n padding-bottom: 4rem;\r\n\r\n &>.image {\r\n height: 53rem;\r\n overflow: hidden;\r\n display: flex;\r\n align-items: center;\r\n img {\r\n width: 100%;\r\n vertical-align: middle;\r\n }\r\n }\r\n\r\n #thumbnails {\r\n padding-top: 2rem;\r\n\r\n .image {\r\n height: 8rem;\r\n overflow: hidden;\r\n display: flex;\r\n align-items: center;\r\n img {\r\n width: 100%;\r\n vertical-align: middle;\r\n }\r\n }\r\n }\r\n }\r\n #buscar {\r\n color: #404041 !important;\r\n padding-top: 2rem;\r\n\r\n .header {\r\n color: inherit;\r\n }\r\n .divider {\r\n background-color: white;\r\n }\r\n .field {\r\n input[type='text'] {\r\n background-color: inherit !important;\r\n }\r\n }\r\n .slider {\r\n .track-fill {\r\n background-color: #0d103c !important;\r\n }\r\n }\r\n .price_label {\r\n margin-top: -1rem;\r\n float: right;\r\n }\r\n }\r\n #datos {\r\n .tabular {\r\n .item {\r\n background-color: #a7a9ab !important;\r\n border: thin solid white;\r\n\r\n &:not(.active) {\r\n border: thin solid #a7a9ab;\r\n background-color: white !important;\r\n }\r\n &:last-child {\r\n margin-left: 1rem;\r\n }\r\n }\r\n }\r\n .segment {\r\n border: none !important;\r\n\r\n .informacion {\r\n .row {\r\n border-bottom: thin dotted white;\r\n\r\n &:last-child {\r\n border-bottom: none;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n"
],
"names": [],
"mappings": ";AAAA,AAAA,SAAS,CAAC;EACR,gBAAgB,EAAE,OAAO;EACzB,cAAc,EAAE,IAAI;CAiFrB;;;AAnFD,AAIE,SAJO,CAIP,OAAO,CAAC;EACN,KAAK,EAAE,OAAO;EAUd,cAAc,EAAE,IAAI;CACrB;;;AAhBH,AAMI,SANK,CAIP,OAAO,CAEL,OAAO,CAAC;EACN,KAAK,EAAE,kBAAkB;CAC1B;;;AARL,AASI,SATK,CAIP,OAAO,CAKL,UAAU,CAAC;EACT,YAAY,EAAE,IAAI;CACnB;;;AAXL,AAYI,SAZK,CAIP,OAAO,CAQL,UAAU,CAAC;EACT,WAAW,EAAE,KAAK;CACnB;;;AAdL,AAkBE,SAlBO,CAkBP,QAAQ,CAAC;EACP,cAAc,EAAE,IAAI;CASrB;;;AA5BH,AAqBI,SArBK,CAkBP,QAAQ,GAGJ,MAAM,CAAC,GAAG,CAAC;EACX,UAAU,EAAE,KAAK;CAClB;;;AAvBL,AAyBI,SAzBK,CAkBP,QAAQ,CAON,KAAK,CAAC;EACJ,WAAW,EAAE,IAAI;CAClB;;;AA3BL,AA6BE,SA7BO,CA6BP,OAAO,CAAC;EACN,KAAK,EAAE,kBAAkB;EACzB,WAAW,EAAE,IAAI;CAsBlB;;;AArDH,AAiCI,SAjCK,CA6BP,OAAO,CAIL,OAAO,CAAC;EACN,KAAK,EAAE,OAAO;CACf;;;AAnCL,AAoCI,SApCK,CA6BP,OAAO,CAOL,QAAQ,CAAC;EACP,gBAAgB,EAAE,KAAK;CACxB;;;AAtCL,AAwCM,SAxCG,CA6BP,OAAO,CAUL,MAAM,CACJ,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,EAAa;EACjB,gBAAgB,EAAE,kBAAkB;CACrC;;;AA1CP,AA6CM,SA7CG,CA6BP,OAAO,CAeL,OAAO,CACL,WAAW,CAAC;EACV,gBAAgB,EAAE,kBAAkB;CACrC;;;AA/CP,AAiDI,SAjDK,CA6BP,OAAO,CAoBL,YAAY,CAAC;EACX,UAAU,EAAE,KAAK;EACjB,KAAK,EAAE,KAAK;CACb;;;AApDL,AAwDM,SAxDG,CAsDP,MAAM,CACJ,QAAQ,CACN,KAAK,CAAC;EACJ,gBAAgB,EAAE,kBAAkB;EACpC,MAAM,EAAE,gBAAgB;CASzB;;;AAnEP,AA4DQ,SA5DC,CAsDP,MAAM,CACJ,QAAQ,CACN,KAAK,AAIF,IAAK,CAAA,OAAO,EAAE;EACb,MAAM,EAAE,kBAAkB;EAC1B,gBAAgB,EAAE,gBAAgB;CACnC;;;AA/DT,AAgEQ,SAhEC,CAsDP,MAAM,CACJ,QAAQ,CACN,KAAK,AAQF,WAAW,CAAC;EACX,WAAW,EAAE,IAAI;CAClB;;;AAlET,AAqEI,SArEK,CAsDP,MAAM,CAeJ,QAAQ,CAAC;EACP,MAAM,EAAE,eAAe;CAWxB;;;AAjFL,AAyEQ,SAzEC,CAsDP,MAAM,CAeJ,QAAQ,CAGN,YAAY,CACV,IAAI,CAAC;EACH,aAAa,EAAE,iBAAiB;CAKjC;;;AA/ET,AA4EU,SA5ED,CAsDP,MAAM,CAeJ,QAAQ,CAGN,YAAY,CACV,IAAI,AAGD,WAAW,CAAC;EACX,aAAa,EAAE,IAAI;CACpB"
"mappings": "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"
}

View File

@ -1,72 +0,0 @@
/* line 1, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyectos.scss */
#proyectos {
background-color: #a7a9ab;
padding-top: 2rem;
}
/* line 5, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyectos.scss */
#proyectos .titulo {
color: #0d103c;
}
/* line 9, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyectos.scss */
#proyectos .tabular.menu .item {
color: #404041 !important;
}
/* line 13, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyectos.scss */
#proyectos .grid {
padding-top: 2rem;
padding-bottom: 2rem;
}
/* line 17, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyectos.scss */
#proyectos .grid .ficha {
border-radius: 0;
border: 0;
box-shadow: none !important;
}
/* line 23, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyectos.scss */
#proyectos .grid .ficha .content .segment {
background-color: #e6e6e7 !important;
padding-top: 0 !important;
padding-bottom: 0 !important;
font-weight: 300;
}
/* line 29, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyectos.scss */
#proyectos .grid .ficha .content .button {
font-family: inherit !important;
font-weight: 900;
padding-top: 0.3rem !important;
padding-bottom: 0.3rem !important;
background-color: #0d103c !important;
}
/* line 37, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyectos.scss */
#proyectos .grid .ficha .image {
overflow: hidden;
}
/* line 40, ../../Workspace/git/provm/capitalinvestments/resources/assets/sass/proyectos.scss */
#proyectos .grid .ficha .overlay {
background-color: #0d103c;
color: white;
opacity: 0.8;
text-align: center;
position: absolute;
z-index: 999;
top: 1.9rem;
right: -2.2rem;
width: 10rem;
padding-top: .3rem;
padding-bottom: .3rem;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg);
}
/*# sourceMappingURL=proyectos.css.map */

View File

@ -1,7 +1,7 @@
{
"version": 3,
"mappings": "AAAA,UAAW;EACT,gBAAgB,EAAE,OAAO;EACzB,WAAW,EAAE,IAAI;EAEjB,kBAAQ;IACN,KAAK,EAAE,OAAO;EAGhB,8BAAoB;IAClB,KAAK,EAAE,kBAAkB;EAG3B,gBAAM;IACJ,WAAW,EAAE,IAAI;IACjB,cAAc,EAAE,IAAI;IAEpB,uBAAO;MACL,aAAa,EAAE,CAAC;MAChB,MAAM,EAAE,CAAC;MACT,UAAU,EAAE,eAAe;MAGzB,yCAAS;QACP,gBAAgB,EAAE,kBAAkB;QACpC,WAAW,EAAE,YAAY;QACzB,cAAc,EAAE,YAAY;QAC5B,WAAW,EAAE,GAAG;MAElB,wCAAQ;QACN,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE,GAAG;QAChB,WAAW,EAAE,iBAAiB;QAC9B,cAAc,EAAE,iBAAiB;QACjC,gBAAgB,EAAE,kBAAkB;MAGxC,8BAAO;QACL,QAAQ,EAAE,MAAM;MAElB,gCAAS;QACP,gBAAgB,EAAE,OAAO;QACzB,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,GAAG;QACZ,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,MAAM;QACX,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,KAAK;QAClB,cAAc,EAAE,KAAK;QACrB,iBAAiB,EAAE,aAAa;QAChC,cAAc,EAAE,aAAa;QAC7B,aAAa,EAAE,aAAa;QAC5B,YAAY,EAAE,aAAa;QAC3B,SAAS,EAAE,aAAa",
"sources": ["../../../resources/assets/sass/proyectos.scss"],
"sources": ["../../../resources/assets/sass/productos.scss"],
"names": [],
"file": "proyectos.css"
"file": "productos.css"
}

View File

@ -1,11 +1,11 @@
{
"version": 3,
"file": "proyectos.css",
"file": "productos.css",
"sources": [
"../../../resources/assets/sass/proyectos.scss"
"../../../resources/assets/sass/productos.scss"
],
"sourcesContent": [
"#proyectos {\r\n background-color: #a7a9ab;\r\n padding-top: 2rem;\r\n\r\n .titulo {\r\n color: #0d103c;\r\n }\r\n\r\n .tabular.menu .item {\r\n color: #404041 !important;\r\n }\r\n\r\n .grid {\r\n padding-top: 2rem;\r\n padding-bottom: 2rem;\r\n\r\n .ficha {\r\n border-radius: 0;\r\n border: 0;\r\n box-shadow: none !important;\r\n\r\n .content {\r\n .segment {\r\n background-color: #e6e6e7 !important;\r\n padding-top: 0 !important;\r\n padding-bottom: 0 !important;\r\n font-weight: 300;\r\n }\r\n .button {\r\n font-family: inherit !important;\r\n font-weight: 900;\r\n padding-top: 0.3rem !important;\r\n padding-bottom: 0.3rem !important;\r\n background-color: #0d103c !important;\r\n }\r\n }\r\n .image {\r\n overflow: hidden;\r\n }\r\n .overlay {\r\n background-color: #0d103c;\r\n color: white;\r\n opacity: 0.8;\r\n text-align: center;\r\n position: absolute;\r\n z-index: 999;\r\n top: 1.9rem;\r\n right: -2.2rem;\r\n width: 10rem;\r\n padding-top: .3rem;\r\n padding-bottom: .3rem;\r\n -webkit-transform: rotate(45deg);\r\n -moz-transform: rotate(45deg);\r\n -ms-transform: rotate(45deg);\r\n -o-transform: rotate(45deg);\r\n transform: rotate(45deg);\r\n }\r\n }\r\n }\r\n}\r\n"
"#productos {\r\n background-color: #a7a9ab;\r\n padding-top: 2rem;\r\n\r\n .titulo {\r\n color: #0d103c;\r\n }\r\n\r\n .tabular.menu .item {\r\n color: #404041 !important;\r\n }\r\n\r\n .grid {\r\n padding-top: 2rem;\r\n padding-bottom: 2rem;\r\n\r\n .ficha {\r\n border-radius: 0;\r\n border: 0;\r\n box-shadow: none !important;\r\n\r\n .content {\r\n .segment {\r\n background-color: #e6e6e7 !important;\r\n padding-top: 0 !important;\r\n padding-bottom: 0 !important;\r\n font-weight: 300;\r\n }\r\n .button {\r\n font-family: inherit !important;\r\n font-weight: 900;\r\n padding-top: 0.3rem !important;\r\n padding-bottom: 0.3rem !important;\r\n background-color: #0d103c !important;\r\n }\r\n }\r\n .image {\r\n overflow: hidden;\r\n }\r\n .overlay {\r\n background-color: #0d103c;\r\n color: white;\r\n opacity: 0.8;\r\n text-align: center;\r\n position: absolute;\r\n z-index: 999;\r\n top: 1.9rem;\r\n right: -2.2rem;\r\n width: 10rem;\r\n padding-top: .3rem;\r\n padding-bottom: .3rem;\r\n -webkit-transform: rotate(45deg);\r\n -moz-transform: rotate(45deg);\r\n -ms-transform: rotate(45deg);\r\n -o-transform: rotate(45deg);\r\n transform: rotate(45deg);\r\n }\r\n }\r\n }\r\n}\r\n"
],
"names": [],
"mappings": ";AAAA,AAAA,UAAU,CAAC;EACT,gBAAgB,EAAE,OAAO;EACzB,WAAW,EAAE,IAAI;CAyDlB;;;AA3DD,AAIE,UAJQ,CAIR,OAAO,CAAC;EACN,KAAK,EAAE,OAAO;CACf;;;AANH,AAQE,UARQ,CAQR,QAAQ,AAAA,KAAK,CAAC,KAAK,CAAC;EAClB,KAAK,EAAE,kBAAkB;CAC1B;;;AAVH,AAYE,UAZQ,CAYR,KAAK,CAAC;EACJ,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,IAAI;CA4CrB;;;AA1DH,AAgBI,UAhBM,CAYR,KAAK,CAIH,MAAM,CAAC;EACL,aAAa,EAAE,CAAC;EAChB,MAAM,EAAE,CAAC;EACT,UAAU,EAAE,eAAe;CAsC5B;;;AAzDL,AAsBQ,UAtBE,CAYR,KAAK,CAIH,MAAM,CAKJ,QAAQ,CACN,QAAQ,CAAC;EACP,gBAAgB,EAAE,kBAAkB;EACpC,WAAW,EAAE,YAAY;EACzB,cAAc,EAAE,YAAY;EAC5B,WAAW,EAAE,GAAG;CACjB;;;AA3BT,AA4BQ,UA5BE,CAYR,KAAK,CAIH,MAAM,CAKJ,QAAQ,CAON,OAAO,CAAC;EACN,WAAW,EAAE,kBAAkB;EAC/B,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,iBAAiB;EAC9B,cAAc,EAAE,iBAAiB;EACjC,gBAAgB,EAAE,kBAAkB;CACrC;;;AAlCT,AAoCM,UApCI,CAYR,KAAK,CAIH,MAAM,CAoBJ,MAAM,CAAC;EACL,QAAQ,EAAE,MAAM;CACjB;;;AAtCP,AAuCM,UAvCI,CAYR,KAAK,CAIH,MAAM,CAuBJ,QAAQ,CAAC;EACP,gBAAgB,EAAE,OAAO;EACzB,KAAK,EAAE,KAAK;EACZ,OAAO,EAAE,GAAG;EACZ,UAAU,EAAE,MAAM;EAClB,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,GAAG;EACZ,GAAG,EAAE,MAAM;EACX,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,KAAK;EACZ,WAAW,EAAE,KAAK;EAClB,cAAc,EAAE,KAAK;EACrB,iBAAiB,EAAE,aAAa;EAChC,cAAc,EAAE,aAAa;EAC7B,aAAa,EAAE,aAAa;EAC5B,YAAY,EAAE,aAAa;EAC3B,SAAS,EAAE,aAAa;CACzB"

View File

@ -0,0 +1,5 @@
$marca: #429ab7;
$gris-oscuro: #808284;
$gris-medio: #a7a9ab;
$gris-claro: #f4f4f4;
$azul-oscuro: #0d103c;

View File

@ -0,0 +1,16 @@
@import 'pallete';
#admin {
background-color: $gris-claro;
padding-top: 3rem;
padding-bottom: 2rem;
.button {
background-color: $marca;
color: white;
}
.container>.header, .container>.grid>.column>.header, .container>.grid>.row>.column>.header {
padding-bottom: 2rem;
}
}

View File

@ -1,5 +1,7 @@
@import 'pallete';
#faq {
background-color: #5d5d5d;
background-color: $gris-medio;
color: white;
padding-top: 3rem;
@ -8,4 +10,7 @@
.header, .title, .content {
color: inherit;
}
.accordion {
font-size: 1.2rem;
}
}

View File

@ -1,3 +1,5 @@
@import 'pallete';
.header {
color: inherit !important;
font-family: inherit !important;
@ -26,12 +28,14 @@
.button {
font-family: inherit;
font-weight: 900;
background-color: $azul-oscuro !important;
color: white;
}
}
#aviso {
color: white;
background-color: #429ab7;
background-color: $marca;
padding-top: 5rem;
padding-bottom: 3rem;
font-size: 1.6rem;
@ -45,11 +49,11 @@
#destacados {
padding-top: 3rem;
padding-bottom: 5rem;
background-color: #a7a9ab;
background-color: $gris-medio;
min-height: 40rem;
.header {
color: #0d103c !important;
color: $azul-oscuro !important;
font-weight: 600;
}
.titulo {
@ -64,7 +68,7 @@
.content {
.segment {
background-color: #e6e6e7 !important;
background-color: $gris-claro !important;
padding-top: 0 !important;
padding-bottom: 0 !important;
font-weight: 300;
@ -78,7 +82,14 @@
}
}
.image {
height: 11rem;
overflow: hidden;
display: flex;
align-items: center;
img {
width: 100%;
vertical-align: middle;
}
}
.overlay {
background-color: #0d103c;
@ -107,6 +118,18 @@
#segmentos {
padding-top: 4rem;
padding-bottom: 4rem;
.titulo {
color: $azul-oscuro !important;
}
.grid {
.basic.segment {
.header {
margin-top: 1rem;
}
}
}
}
#resumen {
@ -123,25 +146,31 @@
}
#indicadores {
background-color: #bbbdc0;
background-color: $gris-medio;
padding-top: 1rem;
padding-bottom: 1rem;
min-height: 5rem;
height: 4rem;
.slideshow {
overflow: hidden;
height: 6rem;
text-align: center;
height: 2rem;
.slide {
display: inline-block;
display: inline;
float: left;
background-color: white;
color: white;
padding: 0;
margin: 1rem;
width: 8rem !important;
padding-top: .5rem;
padding-bottom: .5rem;
margin-right: 1rem;
text-align: center;
.value:last-child {
padding-left: 0.3rem;
font-weight: 100 !important;
}
padding-left: 1rem;
padding-right: 2rem;
border-right: thin solid black;
}
}
}

View File

@ -1,3 +1,5 @@
@import 'pallete';
body {
font-family: Roboto, sans-serif !important;
}
@ -12,7 +14,6 @@ body {
.button.brand {
box-shadow: none !important;
}
.title.image {
width: 15rem;
}
@ -41,6 +42,15 @@ header {
font-size: 2rem;
font-weight: 900;
}
#productos_menu .menu {
border: thin solid white;
box-shadow: none;
.item:hover {
background-color: $gris-medio !important;
}
}
}
}
@ -57,21 +67,22 @@ a {
}
#contacto {
background-color: $gris-claro;
padding-top: 3rem;
padding-bottom: 3rem;
.header {
color: #0d103c !important;
color: $azul-oscuro !important;
font-weight: 900;
}
.form .button {
background-color: #429ab7;
background-color: $marca;
color: white;
}
}
footer {
background-color: #429ab7;
background-color: $marca;
color: white;
margin: 0;
@ -80,7 +91,7 @@ footer {
.label {
background-color: white !important;
color: #429ab7 !important;
color: $marca !important;
}
}
}

View File

@ -1,11 +1,18 @@
@import 'pallete';
#nosotros {
background-color: #5d5d5d;
background-color: $gris-medio;
color: white;
font-size: 1.2rem !important;
padding-top: 3rem;
padding-bottom: 4rem;
.header {
color: inherit;
}
.column {
text-align: justify;
}
}

View File

@ -1,11 +1,14 @@
#proyecto {
background-color: #a7a9ab;
@import 'pallete';
#producto {
background-color: $gris-medio;
padding-bottom: 2rem;
.titulo {
color: #404041;
color: $azul-oscuro !important;
padding-top: 2rem;
.header {
color: #0d103c !important;
color: $azul-oscuro !important;
}
.direccion {
padding-left: 2rem;
@ -19,12 +22,30 @@
#galeria {
padding-bottom: 4rem;
&>.image img {
max-height: 60rem;
&>.image {
height: 53rem;
overflow: hidden;
display: flex;
align-items: center;
img {
width: 100%;
vertical-align: middle;
}
}
.grid {
#thumbnails {
padding-top: 2rem;
.image {
height: 8rem;
overflow: hidden;
display: flex;
align-items: center;
img {
width: 100%;
vertical-align: middle;
}
}
}
}
#buscar {
@ -55,11 +76,11 @@
#datos {
.tabular {
.item {
background-color: #a7a9ab !important;
background-color: $gris-claro !important;
border: thin solid white;
&:not(.active) {
border: thin solid #a7a9ab;
border: thin solid $gris-claro;
background-color: white !important;
}
&:last-child {
@ -69,6 +90,8 @@
}
.segment {
border: none !important;
background-color: $gris-oscuro;
color: white;
.informacion {
.row {

View File

@ -1,9 +1,11 @@
#proyectos {
background-color: #a7a9ab;
@import 'pallete';
#productos {
background-color: $gris-medio;
padding-top: 2rem;
.titulo {
color: #0d103c;
color: $azul-oscuro !important;
}
.tabular.menu .item {
@ -31,14 +33,21 @@
font-weight: 900;
padding-top: 0.3rem !important;
padding-bottom: 0.3rem !important;
background-color: #0d103c !important;
background-color: $azul-oscuro !important;
}
}
.image {
height: 11rem;
overflow: hidden;
display: flex;
align-items: center;
img {
width: 100%;
vertical-align: middle;
}
}
.overlay {
background-color: #0d103c;
background-color: $azul-oscuro;
color: white;
opacity: 0.8;
text-align: center;

View File

@ -0,0 +1,19 @@
<?php
use ProVM\KI\Common\Controller\Web\Admin\Home;
$app->group('/admin', function($app) {
$folder = implode(DIRECTORY_SEPARATOR, [
__DIR__,
'admin'
]);
if (file_exists($folder)) {
$files = new DirectoryIterator($folder);
foreach ($files as $file) {
if ($file->isDir()) {
continue;
}
include_once $file->getRealPath();
}
}
$app->get('[/]', Home::class);
});

View File

@ -0,0 +1,8 @@
<?php
use ProVM\KI\Common\Controller\Web\Admin\Faq;
$app->group('/faqs', function($app) {
$app->post('/add', [Faq::class, 'add']);
$app->post('/delete', [Faq::class, 'delete']);
$app->get('[/]', Faq::class);
});

View File

@ -0,0 +1,13 @@
<?php
use ProVM\KI\Common\Controller\Web\Admin\Home;
$app->group('/home', function($app) {
$app->group('/avisos', function($app) {
$app->post('/add', [Home::class, 'add']);
$app->post('/delete', [Home::class, 'delete']);
});
$app->group('/resumen', function($app) {
$app->post('/edit', [Home::class, 'edit']);
});
$app->get('[/]', Home::class);
});

View File

@ -0,0 +1,7 @@
<?php
use ProVM\KI\Common\Controller\Web\Admin\Nosotros;
$app->group('/nosotros', function($app) {
$app->post('[/]', [Nosotros::class, 'guardar']);
$app->get('[/]', Nosotros::class);
});

View File

@ -0,0 +1,26 @@
<?php
use ProVM\KI\Common\Controller\Web\Admin\Productos;
$app->group('/productos', function($app) {
$app->post('/campos', [Productos::class, 'fields']);
$app->group('/add', function($app) {
$app->get('[/]', [Productos::class, 'add']);
$app->post('[/]', [Productos::class, 'do_add']);
});
$app->post('/delete', [Productos::class, 'delete']);
$app->get('[/]', Productos::class);
});
$app->group('/producto/{producto}', function($app) {
$app->group('/imagen', function($app) {
$app->post('/delete', [Productos::class, 'delete_image']);
});
$app->group('/imagenes', function($app) {
$app->post('/add', [Productos::class, 'add_image']);
});
$app->group('/video', function($app) {
$app->post('/set', [Productos::class, 'set_video']);
$app->post('/delete', [Productos::class, 'delete_video']);
});
$app->post('[/]', [Productos::class, 'do_edit']);
$app->get('[/]', [Productos::class, 'edit']);
});

View File

@ -2,3 +2,4 @@
use ProVM\KI\Common\Controller\Web\Contacto;
$app->get('/contacto', Contacto::class);
$app->post('/contacto', [Contacto::class, 'enviar']);

View File

@ -0,0 +1,12 @@
<?php
use ProVM\KI\Common\Controller\Web\Productos;
$app->group('/productos', function($app) {
$app->get('/segmento/{segmento}', [Productos::class, 'segmento']);
$app->get('/destacados/{page}', [Productos::class, 'destacados']);
$app->get('[/]', productos::class);
});
$app->group('/producto/{producto}', function($app) {
$app->get('/ficha', [Productos::class, 'ficha']);
$app->get('[/]', [Productos::class, 'show']);
});

View File

@ -1,12 +0,0 @@
<?php
use ProVM\KI\Common\Controller\Web\Proyectos;
$app->group('/proyectos', function($app) {
$app->get('/segmento/{segmento}', [Proyectos::class, 'segmento']);
$app->get('/destacados/{page}', [Proyectos::class, 'destacados']);
$app->get('[/]', Proyectos::class);
});
$app->group('/proyecto/{proyecto}', function($app) {
$app->get('/ficha', [Proyectos::class, 'ficha']);
$app->get('[/]', [Proyectos::class, 'show']);
});

View File

@ -0,0 +1,102 @@
@extends('admin.layout.base')
@section('page_content')
<div class="ui grid">
<div class="nine wide column">
<div class="ui header">
FAQ's
</div>
<table class="ui table">
<thead>
<tr>
<th>Pregunta</th>
<th class="center aligned">Borrar</th>
</tr>
</thead>
<tbody>
@foreach($faqs as $i => $faq)
<tr>
<td class="titulo" data-id="{{$i}}">{{$faq->titulo}}</td>
<td class="center aligned"><i class="trash alternate outline icon" data-id="{{$i}}"></i>
</tr>
@endforeach
</tbody>
</table>
<form class="ui form">
<input type="hidden" name="id" />
<div class="field">
<label>Pregunta</label>
<input type="text" name="titulo" />
</div>
<div class="field">
<label>Respuesta</label>
<textarea rows="1" name="contenido"></textarea>
</div>
<button class="ui button enviar">AGREGAR</button>
<button class="ui button resetear" type="reset">BORRAR</button>
</form>
</div>
</div>
@endsection
@push('scripts')
<script type="text/javascript">
var faq = {
edit: false,
faqs: [
@foreach ($faqs as $faq)
{
titulo: '{{$faq->titulo}}',
contenido: "{{implode("\\n", explode(PHP_EOL, $faq->contenido))}}"
},
@endforeach
],
setup: () => {
$('.titulo').css('cursor', 'pointer').click(function() {
var id = $(this).attr('data-id')
$("input[name='id']").val(id)
$("input[name='titulo']").val(faq.faqs[id].titulo)
$("textarea[name='contenido']").val(faq.faqs[id].contenido)
$('.button.enviar').html('EDITAR')
faq.edit = true
})
$('.trash.icon').css('cursor', 'pointer').click(function() {
var id = $(this).attr('data-id')
var url = '{{$urls->admin}}/faqs/delete'
$.post(url, {id: id}, (data) => {
if (data.estado) {
window.location.reload()
}
})
})
$('.button.resetear').click(() => {
$("input[name='id']").val('')
$('.button.enviar').html('AGREGAR')
faq.edit = false
})
$('.form').trigger('reset')
$('.form').submit((e) => {
e.preventDefault()
var input = {
titulo: $("input[name='titulo']").val(),
contenido: $("textarea[name='contenido']").val()
}
if (faq.edit) {
input['id'] = $("input[name='id']").val()
}
var url = '{{$urls->admin}}/faqs/add'
$.post(url, input, (data) => {
if (data.estado) {
window.location.reload()
}
})
return false
})
}
}
$(document).ready(() => {
faq.setup()
})
</script>
@endpush

View File

@ -0,0 +1,178 @@
@extends('admin.layout.base')
@section('page_content')
<div class="ui grid">
<div class="row">
<div class="nine wide column">
<div class="ui header">
AVISOS
</div>
<table class="ui table">
<thead>
<tr>
<th colspan="2">Pregunta</th>
<th class="center aligned">Borrar</th>
</tr>
</thead>
<tbody>
@foreach ($avisos->avisos as $i => $aviso)
<tr>
<td class="link titulo" data-id="{{$i}}">{{$aviso->titulo}}</td>
<td class="link contenido" data-id="{{$i}}">{{$aviso->contenido}}</td>
<td class="center aligned"><i class="trash alternate outline icon" data-id="{{$i}}"></i></td>
</tr>
@endforeach
</tbody>
<tfooter>
<tr>
<td colspan="3">
<form class="ui form" id="avisos">
<input type="hidden" name="id" />
<div class="inline fields">
<div class="field">
<input type="text" name="titulo" placeholder="Título" />
</div>
<div class="field">
<input type="text" name="contenido" placeholder="Bajada" />
</div>
<button class="ui button accion">CREAR</button>
<button class="ui button" type="reset">BORRAR</button>
</div>
</form>
</td>
</tr>
</tfooter>
</table>
<div class="ui slider checkbox">
<input type="checkbox" tabindex="0" class="hidden" value="{{$avisos->activo}}">
<label>Activo</label>
</div>
</div>
</div>
<div class="row">
<div class="nine wide column">
<div class="ui header">
INDICADORES
</div>
<form class="ui form" id="resumen">
<table class="ui table">
<thead>
<tr>
<th>Enunciado</th>
<th>Cantidad</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach ($resumen as $i => $indicador)
<tr>
<td><input type="text" name="titulo{{$i}}" value="{{$indicador->titulo}}" /></td>
<td><input type="text" name="cantidad{{$i}}" value="{{$indicador->cantidad}}" /></td>
<td><button class="ui button guardar" data-id="{{$i}}">GUARDAR</button></td>
</tr>
@endforeach
</tbody>
</table>
</form>
</div>
</div>
</div>
@endsection
@push('scripts')
<script type="text/javascript">
var home = {
edit: false,
editAviso: (id) => {
var titulo = $(".link.titulo[data-id='" + id + "']").html()
var contenido = $(".link.contenido[data-id='" + id + "']").html()
$("input[name='id']").val(id)
$("input[name='titulo']").val(titulo)
$("input[name='contenido']").val(contenido)
home.edit = true
$('.accion').html('EDITAR')
},
submitAviso: (e) => {
e.preventDefault()
input = {
titulo: $("input[name='titulo']").val(),
contenido: $("input[name='contenido']").val()
}
if (home.edit) {
input['id'] = $("input[name='id']").val()
}
if (input['titulo'] == '') {
return false
}
var url = '{{$urls->admin}}/home/avisos/add'
$.post(url, input, (data) => {
if (data.estado) {
window.location.reload()
}
}, 'json')
return false
},
deleteAviso: (id) => {
var url = '{{$urls->admin}}/home/avisos/delete'
$.post(url, {id: id}, (data) => {
if (data.estado) {
window.location.reload()
}
}, 'json')
},
setup: () => {
$('.link').css('cursor', 'pointer').click(function() {
var id = $(this).attr('data-id')
home.editAviso(id)
})
$('#avisos').trigger('reset')
$('#avisos').submit((e) => {
home.submitAviso(e)
})
$(".button[type='reset']").click((e) => {
$("input[name='id']").val('')
$('.accion').html('CREAR')
home.edit = false
})
$('.trash.icon').css('cursor', 'pointer').click(function() {
var id = $(this).attr('data-id')
home.deleteAviso(id)
})
$('.checkbox').checkbox({
onChange: function() {
var state = $(this).is(':checked')
var url = '{{$urls->admin}}/home/avisos/add'
$.post(url, {estado: state}, (data) => {
console.debug(data)
})
}
})
@if ($avisos->activo)
$('.checkbox').checkbox('set checked')
@endif
$('#resumen').submit((e) => {
e.preventDefault()
return false
})
$('.guardar').click(function() {
var id = $(this).attr('data-id')
var url = '{{$urls->admin}}/home/resumen/edit'
input = {
id: id,
titulo: $("input[name='titulo" + id + "']").val(),
cantidad: $("input[name='cantidad" + id + "']").val()
}
$.post(url, input, (data) => {
if (data.estado) {
window.location.reload()
}
})
})
}
}
$(document).ready(() => {
home.setup()
})
</script>
@endpush

View File

@ -0,0 +1,5 @@
<!DOCTYPE html>
<html lang="{{$page_language}}">
@include('admin.layout.head')
@include('admin.layout.body')
</html>

View File

@ -0,0 +1,10 @@
<body>
@include('admin.layout.header')
<div id="admin">
<div class="ui container">
@yield('page_content')
</div>
</div>
@include('admin.layout.footer')
@include('layout.scripts')
</body>

View File

@ -0,0 +1,10 @@
<footer>
<div class="ui container">
<div class="ui tiny text menu">
<div class="item">
Copyright
Todos los derechos reservados 2020 ProVM<i class="copyright outline icon"></i>
</div>
</div>
</div>
</footer>

View File

@ -0,0 +1,7 @@
<head>
<meta charset="utf-8" />
<title>
Capital Investments
</title>
@include('admin.layout.styles')
</head>

View File

@ -0,0 +1,7 @@
<header>
@include('admin.layout.header.menu')
</header>
@push('styles')
<link rel="stylesheet" type="text/css" href="{{$urls->styles}}/admin.css" />
@endpush

View File

@ -0,0 +1,26 @@
<div class="ui container">
<nav class="ui massive text menu">
<a class="item logo" href="{{$urls->admin}}">
<div class="ui title image">
<img src="{{$urls->images}}/logo.png" alt="Capital Investments" title="Capital Investments" />
</div>
</a>
<div class="right menu">
<a class="item" href="{{$urls->admin}}/home">
HOME
</a>
<a class="item" href="{{$urls->admin}}/nosotros">
NOSOTROS
</a>
<a class="item" href="{{$urls->admin}}/productos">
PRODUCTOS
</a>
<a class="item" href="{{$urls->admin}}/faqs">
FAQs
</a>
<a class="item" href="{{$urls->base}}">
Salir
</a>
</div>
</nav>
</div>

View File

@ -0,0 +1,14 @@
@if (isset($assets->styles))
@foreach ($assets->styles as $style)
<link rel="stylesheet" type="text/css" href="{{$style}}" />
@endforeach
@endif
<link rel="stylesheet" type="text/css" href="{{$urls->styles}}/admin.css" />
@if (isset($assets->fonts))
@foreach ($assets->fonts as $type => $fonts)
@foreach ($fonts as $font)
<link type="{{$type}}" href="{{$font}}" />
@endforeach
@endforeach
@endif
@stack('styles')

View File

@ -0,0 +1,18 @@
@extends('admin.layout.base')
@section('page_content')
<div class="ui grid">
<div class="ten wide column">
<div class="ui header">
NOSOTROS
</div>
<form class="ui form" method="post" action="{{$urls->admin}}/nosotros">
<div class="field">
<label>Descripci&oacute;n</label>
<textarea name="nosotros">{{$nosotros}}</textarea>
</div>
<button class="ui button">GUARDAR</button>
</form>
</div>
</div>
@endsection

View File

@ -0,0 +1,232 @@
@extends('admin.layout.base')
@section('page_content')
<div class="ui header">
PRODUCTO
</div>
<form class="ui form" method="post" action="{{$urls->admin}}/producto/{{$producto->id}}" enctype="multipart/form-data">
<div class="ui three columns grid">
<div class="column">
<div class="field">
<label>Nombre</label>
<input type="text" name="nombre" value="{{$producto->nombre ?? ''}}" />
</div>
</div>
<div class="column">
<div class="fields">
<div class="field">
<label>Direcci&oacute;n</label>
<input type="text" name="calle" value="{{$producto->direccion->calle ?? ''}}" />
</div>
<div class="field">
<label>Comuna</label>
<input type="text" name="comuna" value="{{$producto->direccion->comuna ?? ''}}" />
</div>
<div class="field">
<label>Ciudad</label>
<input type="text" name="ciudad" value="{{$producto->direccion->ciudad ?? ''}}" />
</div>
</div>
</div>
<div class="column">
<div class="field">
<label>Segmento</label>
<div class="ui selection dropdown" id="segmento">
<input type="hidden" name="segmento" />
<i class="dropdown icon"></i>
<div class="default text">Segmento</div>
<div class="menu">
@foreach ($segmentos as $segmento)
<div class="item" data-value="{{$segmento->titulo}}">{{$segmento->titulo}}</div>
@endforeach
</div>
</div>
</div>
</div>
<div class="column">
<div class="field">
<label>Valor en UF</label>
<input type="text" name="valor" value="{{str_replace('.', '', $producto->valor ?? '')}}" />
</div>
</div>
<div class="column">
<div class="field">
<label>Destacado</label>
<div class="ui toggle checkbox">
<input type="checkbox" name="destacado" />
</div>
</div>
</div>
<span id="campos"></span>
@foreach ($properties as $property)
<div class="column">
<div class="field">
<label>{{$property->label}}</label>
<input type="text" name="{{$property->name}}" value="{{$producto->{$property->name} ?? ''}}" />
</div>
</div>
@endforeach
<span id="end_campos"></span>
<div class="row">
<div class="ten wide column">
<div class="field">
<label>Descripci&oacute;n</label>
<textarea rows="1" name="descripcion">{{$producto->descripcion ?? ''}}</textarea>
</div>
</div>
</div>
<div class="column">
<div class="field">
<label>Im&aacute;genes</label>
<input type="file" name="imagen" />
</div>
<div id="imagenes" class="ui list"></div>
</div>
</div>
<br />
<button class="ui button">GUARDAR</button>
</form>
@endsection
@push('scripts')
<script type="text/javascript">
var producto = {
months: {
long: [],
short: []
},
date: new Date(2018, 0, 1),
listImage: (image) => {
var icon = $('<i></i>').attr('class', 'trash alternate outline icon')
icon.css('cursor', 'pointer').click(function() {
var url = '{{$urls->admin}}/producto/{{$producto->id}}/imagen/delete'
$.post(url, {imagen: image}, (data) => {
if (data.estado) {
window.location.reload()
}
})
})
$('#imagenes').append(
$('<div></div>').attr('class', 'item').append(
icon
).append(
$('<div></div>').attr('class', 'content').html(image)
)
)
},
setMonths: () => {
for (i = 0; i < 12; i ++) {
producto.date.setMonth(i)
producto.months.long.push(producto.date.toLocaleString('es-ES', {month: "long"}).replace(
/\w\S*/g,
function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
}
))
producto.months.short.push(producto.date.toLocaleString('es-ES', {month: "short"}).replace(
/\w\S*/g,
function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
}
))
}
},
setup: () => {
producto.setMonths()
$('#segmento').dropdown({
onChange: () => {
producto.changeSegmento()
}
})
$('#segmento').dropdown('set selected', '{{$producto->segmento}}')
producto.linkCalendar()
$('.checkbox').checkbox()
@if ($producto->destacado())
$('.checkbox').checkbox('set checked')
@endif
$("input[name='imagen']").change(function() {
var data = new FormData()
data.append('imagen', $(this)[0].files[0])
var url = '{{$urls->admin}}/producto/{{$producto->id}}/imagenes/add'
$.ajax({
url: url,
method: 'post',
data: data,
contentType: false,
processData: false,
success: (data) => {
if (data.estado) {
window.location.reload()
}
}
})
})
@foreach ($producto->imagenes() as $image)
producto.listImage('{{$image}}')
@endforeach
},
linkCalendar: () => {
var div = $("input[name='entrega']").parent()
div.find('input').remove()
div.append(
$('<div></div>').attr('class', 'ui calendar').append(
$('<input />').attr('type', 'text').attr('name', 'entrega').attr('placeholder', 'Entrega')
)
)
$('.calendar').calendar({
type: 'month',
text: {
months: producto.months.long,
monthsShort: producto.months.short
},
formatInput: false,
onChange: function(a, b) {
if (typeof a == 'undefined') {
a = new Date()
}
$(this).find('input').val(('0' + (a.getMonth() + 1)).slice(-2) + '/' + a.getFullYear())
}
})
@if (isset($producto->entrega))
var entrega = new Date('{{str_pad(implode('-', array_reverse(explode('/', $producto->entrega))), 7, '20', STR_PAD_LEFT)}}-01T01:00')
$('.calendar').calendar('set date', entrega)
@endif
},
changeSegmento: () => {
var segmento = $('#segmento').dropdown('get value')
if (segmento == '{{$producto->segmento}}') {
return
}
var url = '{{$urls->admin}}/productos/campos'
$.post(url, {segmento: segmento}, (data) => {
var div = $('#campos')
var end = $('#end_campos')
var current = div.next()
var next = current.next()
if (current[0] == end[0] || next[0] == end[0]) {
} else {
while (next[0] != end[0] || next.length == 0) {
current.remove()
current = next
next = next.next()
}
}
$.each(data.fields, (i, el) => {
var campo = $('<div></div>').attr('class', 'column').append(
$('<div></div>').attr('class', 'field').append(
$('<label></label>').html(el.label)
).append(
$('<input />').attr('type', 'text').attr('name', el.name)
)
)
end.before(campo)
})
producto.linkCalendar()
})
}
}
$(document).ready(() => {
producto.setup()
})
</script>
@endpush

View File

@ -0,0 +1,60 @@
@extends('admin.layout.base')
@section('page_content')
<div class="ui grid">
<div class="nine wide column">
<div class="ui header">
PRODUCTOS
</div>
<table class="ui table">
<thead>
<tr>
<th class="right aligned" colspan="3">
<a href="{{$urls->admin}}/productos/add">
<button class="ui button">NUEVO</button>
</a>
</th>
</tr>
<tr>
<th>Producto</th>
<th class="center aligned">Editar</th>
<th class="center aligned">Borrar</th>
</tr>
</thead>
<tbody>
@foreach ($productos as $producto)
<tr>
<td>
<a href="{{$urls->admin}}/producto/{{$producto->id}}">
{{$producto->nombre}}
</a>
</td>
<td class="center aligned">
<a href="{{$urls->admin}}/producto/{{$producto->id}}">
<i class="edit icon"></i>
</a>
</td>
<td class="center aligned"><i class="trash alternate outline icon" data-id="{{$producto->id}}"></i></td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection
@push('scripts')
<script type="text/javascript">
$(document).ready(() => {
$('.trash.icon').css('cursor', 'pointer').click(function() {
var id = $(this).attr('data-id')
var url = '{{$urls->admin}}/productos/delete'
$.post(url, {id: id}, (data) => {
if (data.estado) {
window.location.reload()
}
})
})
})
</script>
@endpush

View File

@ -0,0 +1,154 @@
@extends('admin.layout.base')
@section('page_content')
<div class="ui header">
AGREGAR PRODUCTO
</div>
<form class="ui form" method="post" action="{{$urls->admin}}/productos/add" enctype="multipart/form-data">
<div class="ui three columns grid">
<div class="column">
<div class="field">
<label>Nombre</label>
<input type="text" name="nombre" />
</div>
</div>
<div class="column">
<div class="fields">
<div class="field">
<label>Direcci&oacute;n</label>
<input type="text" name="calle" />
</div>
<div class="field">
<label>Comuna</label>
<input type="text" name="comuna" />
</div>
<div class="field">
<label>Ciudad</label>
<input type="text" name="ciudad" />
</div>
</div>
</div>
<div class="column">
<div class="field">
<label>Segmento</label>
<div class="ui selection dropdown" id="segmento">
<input type="hidden" name="segmento" />
<i class="dropdown icon"></i>
<div class="default text">Segmento</div>
<div class="menu">
@foreach ($segmentos as $segmento)
<div class="item" data-value="{{$segmento->titulo}}">{{$segmento->titulo}}</div>
@endforeach
</div>
</div>
</div>
</div>
<div class="column">
<div class="field">
<label>Valor en UF</label>
<input type="text" name="valor" />
</div>
</div>
<div class="column">
<div class="field">
<label>Destacado</label>
<div class="ui toggle checkbox">
<input type="checkbox" name="destacado" />
</div>
</div>
</div>
<div id="campos"></div>
<div id="end_campos"></div>
<div class="row">
<div class="ten wide column">
<div class="field">
<label>Descripci&oacute;n</label>
<textarea rows="1" name="descripcion"></textarea>
</div>
</div>
</div>
</div>
<br />
<button class="ui button">AGREGAR</button>
</form>
@endsection
@push('scripts')
<script type="text/javascript">
var producto = {
months: {
long: [],
short: []
},
date: new Date(2018, 0, 1),
setMonths: () => {
for (i = 0; i < 12; i ++) {
producto.date.setMonth(i)
producto.months.long.push(producto.date.toLocaleString('es-ES', {month: "long"}).replace(
/\w\S*/g,
function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
}
))
producto.months.short.push(producto.date.toLocaleString('es-ES', {month: "short"}).replace(
/\w\S*/g,
function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
}
))
}
},
setup: () => {
producto.setMonths()
$('#segmento').dropdown({
onChange: () => {
producto.changeSegmento()
}
})
$('.calendar').calendar({
type: 'month',
text: {
months: producto.months.long,
monthsShort: producto.months.short
},
formatInput: false,
onChange: function(a) {
$(this).find('input').val(('0' + (a.getMonth() + 1)).slice(-2) + '/' + a.getFullYear())
}
})
$('.checkbox').checkbox()
},
changeSegmento: () => {
var segmento = $('#segmento').dropdown('get value')
var url = '{{$urls->admin}}/productos/campos'
$.post(url, {segmento: segmento}, (data) => {
var div = $('#campos')
var end = $('#end_campos')
var current = div.next()
var next = current.next()
if (current[0] == end[0] || next[0] == end[0]) {
} else {
while (next[0] != end[0] || next.length == 0) {
current.remove()
current = next
next = next.next()
}
}
$.each(data.fields, (i, el) => {
var campo = $('<div></div>').attr('class', 'column').append(
$('<div></div>').attr('class', 'field').append(
$('<label></label>').html(el.label)
).append(
$('<input />').attr('type', 'text').attr('name', el.name)
)
)
end.before(campo)
})
})
}
}
$(document).ready(() => {
producto.setup()
})
</script>
@endpush

View File

@ -0,0 +1,39 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Contacto Web - {{$nombre}}</title>
<!--[if !mso]><!-- -->
<link href='http://fonts.googleapis.com/css2?family=Roboto' rel='stylesheet' type='text/css' />
<!--<![endif]-->
</head>
<body>
<table style="font-family: Roboto, sans-serif; font-size: 12pt; color: rgb(109, 110, 112);">
<tr>
<td style="font-weight: 700; text-align: right;">
Nombre
</td>
<td colspan="6">
{{$nombre}}
</td>
</tr>
<tr>
<td style="font-weight: 700; text-align: right;">
Email
</td>
<td colspan="6">
{{$mail}}
</td>
</tr>
<tr>
<td style="font-weight: 700; text-align: right; vertical-align: top;">
Mensaje
</td>
<td colspan="6">
{{$mensaje}}
</td>
</tr>
</table>
</body>
</html>

View File

@ -7,42 +7,17 @@
FAQ's
</div>
<div class="ui accordion">
<div class="title">
<i class="dropdown icon"></i>
Lorem ipsum?
</div>
<div class="content">
<p>
dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
</p>
</div>
<div class="title">
<i class="dropdown icon"></i>
Duis aute irure dolor
</div>
<div class="content">
</div>
<div class="title">
<i class="dropdown icon"></i>
Reprehenderit in voluptate
</div>
<div class="content">
</div>
<div class="title">
<i class="dropdown icon"></i>
Velit esse cillum dolore
</div>
<div class="content">
</div>
<div class="title">
<i class="dropdown icon"></i>
Fugiat nulla pariatur
</div>
<div class="content">
</div>
@foreach ($faqs as $faq)
<div class="title">
<i class="dropdown icon"></i>
{{$faq->titulo}}
</div>
<div class="content">
<p>
{!!nl2br($faq->contenido)!!}
</p>
</div>
@endforeach
</div>
</div>
</div>

View File

@ -1,4 +1,4 @@
@if (isset($aviso) and $aviso)
@if (isset($avisos->activo) and $avisos->activo)
<div id="aviso">
<div class="ui container">
<div class="ui center aligned grid">
@ -9,7 +9,7 @@
Bono Pie 10%
</div>
<div class="row">
@foreach ($avisos as $i => $av)
@foreach ($avisos->avisos as $i => $av)
<i class="circle outline tiny icon" data-id="{{$i + 1}}"></i>
@endforeach
</div>
@ -22,7 +22,7 @@
<script type="text/javascript">
var avisos = {
avisos: [
@foreach ($avisos as $av)
@foreach ($avisos->avisos as $av)
{
titulo: '{{$av->titulo}}',
contenido: '{{$av->contenido}}'

View File

@ -8,9 +8,11 @@
</div>
"Comienza a Invertir Hoy"
</div>
<button class="ui inverted brand big button">
PROYECTOS
</button>
<a href="{{$urls->base}}/productos">
<button class="ui big button">
PRODUCTOS
</button>
</a>
</div>
</div>
</div>

View File

@ -1,15 +1,15 @@
<div id="destacados">
<div class="ui container">
<div class="ui header titulo">
PROYECTOS DESTACADOS
PRODUCTOS DESTACADOS
</div>
<div class="ui four columns stackable grid" id="proyectos">
<div class="ui four columns stackable grid" id="productos">
@for ($i = 0; $i < min(4, count($destacados)); $i ++)
<div class="column">
<div class="ui card ficha">
<div class="content">
<div class="header titulo">
Proyecto
producto
</div>
<div class="meta">
<div class="right floated">
@ -45,18 +45,18 @@
id: '#destacados',
buildCard: (div, id) => {
$.ajax({
url: '{{$urls->base}}/proyecto/' + id + '/ficha',
url: '{{$urls->base}}/producto/' + id + '/ficha',
success: function(data) {
div.append(data)
}
})
},
fillCards: (data) => {
var proyectos = $(destacados.id).find('#proyectos')
proyectos.html('')
var productos = $(destacados.id).find('#productos')
productos.html('')
$.each(data, function(i, el) {
var div = $('<div></div>').attr('class', 'column')
proyectos.append(
productos.append(
div
)
destacados.buildCard(div, el)
@ -118,7 +118,7 @@
})
},
findPage: (page) => {
$.getJSON('{{$urls->base}}/proyectos/destacados/' + page, function(data) {
$.getJSON('{{$urls->base}}/productos/destacados/' + page, function(data) {
$('#destacados').find('.pagina.active').removeClass('.active')
destacados.curr_page = data.information.page
destacados.buildPaging()

View File

@ -1,7 +1,5 @@
<div id="indicadores">
<div class="ui container">
<div class="slideshow ui center aligned grid">
</div>
<div class="marquee slideshow">
</div>
</div>
@ -70,6 +68,7 @@
},
@endforeach
],
data: [],
id: '#indicadores',
current: {{count($indicadores)}},
findIndicador: (i) => {
@ -77,16 +76,22 @@
return $.ajax({
url: '{{$urls->base}}/indicador/' + indicador.sim,
success: (data) => {
var div = $('<div></div>').attr('class', 'two wide column slide').append(
$('<div></div>').attr('class', 'ui header').attr('data-title', 'Fecha').attr('data-content', data.valor.fecha).append(indicador.titulo).append(
$('<div></div>').attr('class', 'sub header').html(data.valor.valor)
)
)
div.find('.header').popup(9)
$(indicadores.id).find('.slideshow').append(div)
indicadores.data.push(data.valor)
indicadores.putIndicador(indicador.titulo, data.valor)
}
})
},
putIndicador: (titulo, data) => {
var div = $('<div></div>').attr('class', 'slide').append(
$('<div></div>').attr('class', 'ui horizontal mini statistic').attr('data-title', 'Fecha').attr('data-content', data.fecha).append(
$('<div></div>').attr('class', 'value').html(titulo)
).append(
$('<div></div>').attr('class', 'value').html(data.valor)
)
)
div.find('.header').popup()
$(indicadores.id).find('.slideshow').append(div)
},
setup: () => {
var promises = []
promise = null
@ -95,7 +100,13 @@
promises.push(promise)
})
Promise.all(promises).then(() => {
//slideshow.setup()
$.each(indicadores.data, (i, el) => {
indicadores.putIndicador(indicadores.indicadores[i].titulo, el)
})
$('.marquee').marquee({
duration: 20000,
gap: 50
})
})
}
}

View File

@ -1,38 +1,19 @@
<div id="resumen">
<div class="ui container">
<div class="ui center aligned grid">
<div class="three wide column">
<div class="ui inverted circular segment">
<div class="ui big header">
123
<div class="sub header">
Negocios Cerrados
@foreach ($resumen as $ind)
<div class="three wide column">
<div class="ui inverted circular segment">
<div class="ui big header">
{{$ind->cantidad}}
<div class="sub header">
{{$ind->titulo}}
</div>
</div>
</div>
</div>
</div>
<div class="column"></div>
<div class="three wide column">
<div class="ui inverted circular segment">
<div class="ui big header">
12
<div class="sub header">
Proyectos Publicados
</div>
</div>
</div>
</div>
<div class="column"></div>
<div class="three wide column">
<div class="ui inverted circular segment">
<div class="ui big header">
10
<div class="sub header">
Texto Relleno
</div>
</div>
</div>
</div>
<div class="column"></div>
@endforeach
</div>
</div>
</div>
@ -47,17 +28,22 @@
@push('scripts')
<script type="text/javascript">
var max_width = 0
var resumen = {
max_width: 0,
setup: () => {
$('#resumen .circular.segment').each(function(i, el) {
var width = $(this).css('width')
var w = parseInt(width)
if (w > resumen.max_width) {
resumen.max_width = w
}
$(this).css('width', resumen.max_width + 'px')
$(this).css('height', resumen.max_width + 'px')
})
}
}
$(document).ready(function() {
$('#resumen .circular.segment').each(function(i, el) {
var width = $(this).css('width')
var w = parseInt(width)
if (w > max_width) {
max_width = w
}
$(this).css('width', max_width + 'px')
$(this).css('height', max_width + 'px')
})
resumen.setup()
})
</script>
@endpush

View File

@ -1,11 +1,13 @@
<div id="segmentos" class="ui container">
<div class="ui header">
<div class="ui header titulo">
SEGMENTOS DE NEGOCIO
</div>
<div class="ui center aligned stackable grid">
@foreach ($segmentos as $segmento)
<div class="three wide column">
@include('home.segmentos.ficha')
<a href="{{$urls->base}}/productos#{{mb_strtolower($segmento->titulo)}}">
@include('home.segmentos.ficha')
</a>
</div>
@endforeach
</div>

View File

@ -27,6 +27,10 @@
Enviar
</button>
</div>
<div class="ui message transition hidden" id="mensaje_contacto">
<i class="close icon"></i>
<span id="msg"></span>
</div>
</div>
</form>
</div>
@ -65,3 +69,59 @@
</div>
</div>
</div>
@push('scripts')
<script type="text/javascript">
var contacto = {
id: "contacto_form",
data: {
nombre: '',
mail: '',
mensaje: ''
},
output: {
id: 'mensaje_contacto',
success: 'Mensaje enviado.',
},
url: '{{$urls->base}}/contacto',
getData: () => {
var form = $(contacto.id)
contacto.data.nombre = form.find("[name='nombre']").val()
contacto.data.mail = form.find("[name='mail']").val()
contacto.data.mensaje = form.find("[name='mensaje']").val()
},
send: () => {
$.post(contacto.url, contacto.data, (data) => {
$(contacto.output.id).find('#msg').html(contacto.output.success)
$(contacto.output.id).addClass('success').removeClass('hidden').show()
$(contacto.output.id).find('.close').click(function() {
$(contacto.output.id).find('#msg').html('')
$(contacto.output.id).addClass('hidden').removeClass('success error')
})
}, 'json')
},
checkIds: () => {
if (contacto.id.indexOf('#') < 0) {
contacto.id = '#' + contacto.id
}
if (contacto.output.id.indexOf('#') < 0) {
contacto.output.id = '#' + contacto.output.id
}
},
setup: () => {
contacto.checkIds()
$(contacto.id).submit((e) => {
e.preventDefault()
contacto.getData()
contacto.send()
return false
})
}
}
$(document).ready(() => {
contacto.setup()
})
</script>
@endpush

View File

@ -26,14 +26,6 @@
&thinsp;
{{$header->hora}}
</div>
<div class="right menu">
<div class="item">
<div class="ui icon input">
<input type="text" placeholder="Buscar" name="search" id="search" />
<i class="search link icon"></i>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@ -9,9 +9,14 @@
<a class="item" href="{{$urls->base}}/nosotros">
NOSOTROS
</a>
<a class="item" href="{{$urls->base}}/proyectos">
PRODUCTOS
</a>
<div class="ui simple dropdown item" id="productos_menu">
<a href="{{$urls->base}}/productos">PRODUCTOS</a>
<div class="menu">
@foreach ($header->menu->segmentos as $segmento)
<a class="item" href="{{$urls->base}}/productos#{{mb_strtolower($segmento->titulo)}}">{{$segmento->titulo}}</a>
@endforeach
</div>
</div>
<a class="item" href="{{$urls->base}}/faqs">
FAQs
</a>

View File

@ -7,46 +7,11 @@
NOSOTROS
</div>
<div class="ui two columns grid">
<div class="column">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit
amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia
deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi
ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim
id est laborum.
</div>
<div class="column">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit
amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia
deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi
ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim
id est laborum.
</div>
@foreach ($nosotros as $par)
<div class="column">
{{$par}}
</div>
@endforeach
</div>
</div>
</div>

View File

@ -0,0 +1,36 @@
<div class="ui card ficha">
<div class="content">
<div class="header">
{{$producto->nombre}}
</div>
<div class="right floated meta">
{{$producto->segmento}}
</div>
<div class="descripcion">
{{$producto->direccion->comuna}}
</div>
</div>
<div class="medium image">
@if ($producto->destacado())
<div class="overlay">Destacado</div>
@endif
<img src="{{$urls->images}}/{{$producto->imagen()}}" />
</div>
<div class="content">
@foreach ($properties as $property)
<div class="ui basic segment">
<span class="right floated">
{{$property->prefix}}{{$producto->{$property->name} }}{{$property->suffix}}
</span>
{{$property->label}}
</div>
@endforeach
<span class="right floated">
<a href="{{$urls->base}}/producto/{{$producto->id}}">
<button class="ui inverted brand button">
Ver
</button>
</a>
</span>
</div>
</div>

View File

@ -0,0 +1,117 @@
@extends('layout.base')
@section('page_content')
<div id="productos">
<div class="ui container">
<div class="ui header titulo">
PRODUCTOS
</div>
<div class="ui top attached tabular menu">
<a class="active item" data-tab="todo">
Todo
</a>
@foreach ($segmentos as $segmento)
<a class="item" data-tab="{{mb_strtolower($segmento->titulo)}}">
{{$segmento->titulo}}
</a>
@endforeach
</div>
<div class="ui active tab bottom attached" data-tab="todo">
<div class="ui four column stackable grid"></div>
</div>
@foreach ($segmentos as $segmento)
<div class="ui tab bottom attached" data-tab="{{mb_strtolower($segmento->titulo)}}">
<div class="ui four column stackable grid"></div>
</div>
@endforeach
</div>
</div>
@endsection
@push('styles')
<link rel="stylesheet" type="text/css" href="{{$urls->styles}}/productos.css" />
@endpush
@push('scripts')
<script type="text/javascript">
var productos = {
id: '#productos',
current_hash: '',
loaded: {
todo: false,
@foreach ($segmentos as $segmento)
'{{mb_strtolower($segmento->titulo)}}': false,
@endforeach
},
loadSegmento: (segmento) => {
if (productos.loaded[segmento]) {
return
}
var name = segmento
if (name.indexOf(' ') > -1) {
name = name.replaceAll(' ', '_')
}
var url = '{{$urls->base}}/productos/segmento/' + name
$(".tab[data-tab='" + segmento + "']").find('.grid').html('')
productos.loaded[segmento] = true
$.getJSON(url, (data) => {
$(".tab[data-tab='" + segmento + "']").find('.grid').append(
$('<div></div>').attr('class', 'ui active centered inline loader')
)
if (data.productos.length == 0) {
$(".tab[data-tab='" + segmento + "']").find('.grid').html('No hay productos en este segmento.')
return
}
$.each(data.productos, (i, el) => {
productos.getProducto(segmento, el)
})
})
},
getProducto: (segmento, id_producto) => {
var url = '{{$urls->base}}/producto/' + id_producto + '/ficha'
$.ajax({
url: url,
success: (data) => {
if ($(".tab[data-tab='" + segmento + "']").find('.grid').find('.loader').length > 0) {
$(".tab[data-tab='" + segmento + "']").find('.grid').html('')
}
$(".tab[data-tab='" + segmento + "']").find('.grid').append(
$('<div></div>').attr('class', 'column').append(data)
)
}
})
},
setup: () => {
productos.loadSegmento('todo')
$(productos.id).find('.tabular.menu .item').tab({
onFirstLoad: (tabPath, parameterArray, historyEvent) => {
if (tabPath == 'todo') {
return
}
productos.loadSegmento(tabPath)
}
})
$('#productos_menu').find('.menu .item').click(function() {
productos.getHash($(this).attr('href').split('#')[1])
})
if (window.location.hash) {
productos.getHash(window.location.hash)
}
},
getHash: (hash) => {
if (typeof hash == 'undefined') {
hash = window.location.hash
}
var start = (hash).replace('#', '').replace('%20', ' ')
if (productos.current_hash == start) {
return
}
productos.current_hash = start
$(productos.id).find('.tabular.menu .item').tab('change tab', start)
}
}
$(document).ready(() => {
productos.setup()
})
</script>
@endpush

View File

@ -30,15 +30,38 @@
@push('scripts')
<script type="text/javascript">
function changePrice(min, max) {
var buscar = {
min: 1000,
max: 30000,
changePrice: (min, max) => {
$("input[name='precio']").val(min + '-' + max)
formatter = new Intl.NumberFormat('de-DE')
$('.price_label').html(formatter.format(min) + ' - ' + formatter.format(max) + ' UF')
},
setup: () => {
buscar.changePrice(buscar.min, buscar.max)
$('#precio').slider({
min: buscar.min,
max: buscar.max,
start: buscar.min,
end: buscar.max,
step: 500,
onChange: (range, min, max) => {
buscar.changePrice(min, max)
}
})
}
}
/*function changePrice(min, max) {
$("input[name='precio']").val(min + '-' + max)
formatter = new Intl.NumberFormat('de-DE')
$('.price_label').html(formatter.format(min) + ' - ' + formatter.format(max) + ' UF')
}
var gMin = 1000
var gMax = 30000
var gMax = 30000*/
$(document).ready(() => {
changePrice(gMin, gMax)
buscar.setup()
/*changePrice(gMin, gMax)
$('#precio').slider({
min: gMin,
max: gMax,
@ -48,7 +71,7 @@
onChange: (range, min, max) => {
changePrice(min, max)
}
})
})*/
})
</script>
@endpush

View File

@ -0,0 +1,43 @@
<div id="datos">
<div class="ui top attached tabular menu">
<a class="active item" data-tab="informacion">Informaci&oacute;n</a>
<a class="item" data-tab="mapa">Ver Mapa</a>
@if (property_exists($producto, 'descripcion'))
<a class="item" data-tab="descripcion">Descripci&oacute;n del producto</a>
@endif
</div>
<div class="ui bottom attached basic segment active tab" data-tab="informacion">
<div class="ui grid">
<div class="four wide column">
<div class="ui two columns grid informacion">
@include('productos.producto.ficha')
</div>
</div>
<div class="twelve wide column">
{{$producto->descripcion ?? ''}}
</div>
</div>
</div>
<div class="ui bottom attached basic segment tab" data-tab="mapa">
<div class="ui embed" id="map" data-source="Google Maps"
data-url="https://maps.google.com/maps?hl=es&amp;amp;q={{($producto->direccion) ? str_replace(' ', '%20', implode(', ', [
$producto->direccion->calle, $producto->direccion->comuna
])) : 'Santiago,%20Chile'}}&amp;amp;ie=UTF8&amp;amp;z={{($producto->direccion) ? 16 : 11}}&amp;amp;iwloc=B&amp;amp;output=embed"></div>
</div>
@if (property_exists($producto, 'descripcion'))
<div class="ui bottom attached basic segment tab" data-tab="descripcion">
<p>
{!!nl2br($producto->descripcion)!!}
</p>
</div>
@endif
</div>
@push('scripts')
<script type="text/javascript">
$(document).ready(() => {
$('#datos').find('.tabular .item').tab()
$('#map').embed()
})
</script>
@endpush

View File

@ -0,0 +1,10 @@
@foreach ($producto->getShow() as $property)
<div class="row">
<div class="column">
{{$property->label}}:
</div>
<div class="column">
{{$property->prefix}}{{$producto->{$property->name} ?? ''}}{{$property->suffix}}
</div>
</div>
@endforeach

View File

@ -0,0 +1,68 @@
<div id="galeria">
@if (count($producto->imagenes()))
<div class="ui image" data-id="0">
<img src="{{$urls->images}}/{{$producto->imagen()}}" />
</div>
<div class="ui grid" id="thumbnails">
@foreach ($producto->imagenes() as $i => $image)
@if ($i == 0)
@continue
@endif
<div class="three wide column">
<div class="ui image" data-id="{{$i}}">
<img src="{{$urls->images}}/{{mb_strtolower($producto->nombre)}}/{{$image}}" />
</div>
</div>
@endforeach
</div>
@endif
</div>
@push('scripts')
<script type="text/javascript">
var galeria = {
images: [
@foreach ($producto->imagenes() as $image)
'{{$urls->images}}/{{mb_strtolower($producto->nombre)}}/{{$image}}',
@endforeach
],
populateThumbs: (current) => {
var thumbs = $('#thumbnails')
thumbs.html('')
$.each(galeria.images, (i, el) => {
if (i == current) {
return
}
thumbs.append(
$('<div></div>').attr('class', 'three wide column').append(
$('<div></div>').attr('class', 'ui image').attr('data-id', i).append(
$('<img />').attr('src', el)
)
)
)
$('#thumbnails .image').css('cursor', 'pointer')
})
$('#galeria').find('.grid .image').click(function(e) {
var id = $(this).attr('data-id')
galeria.changeImage(id)
})
},
changeImage: (id) => {
var big = $('#galeria>.image')
big.find('img').attr('src', galeria.images[id])
big.attr('data-id', id)
galeria.populateThumbs(id)
},
setup: () => {
$('#galeria').find('.grid .image').click(function(e) {
var id = $(this).attr('data-id')
galeria.changeImage(id)
})
$('#thumbnails .image').css('cursor', 'pointer')
}
}
$(document).ready(() => {
galeria.setup()
})
</script>
@endpush

View File

@ -0,0 +1,25 @@
@extends('layout.base')
@section('page_content')
<div id="producto">
<div class="ui container">
<div class="titulo">
<span class="ui header">
{{$producto->nombre}}
</span>
<span class="direccion">
{{'' . ($producto->direccion ?? '')}}
</span>
<div class="publicado">
Publicado el {{$producto->publicacion ?? ''}}
</div>
</div>
@include('productos.producto.galeria')
@include('productos.producto.datos')
</div>
</div>
@endsection
@push('styles')
<link rel="stylesheet" type="text/css" href="{{$urls->styles}}/producto.css" />
@endpush

View File

@ -1,58 +0,0 @@
<div class="ui card ficha">
<div class="content">
<div class="header">
{{$proyecto->edificio}}
</div>
<div class="right floated meta">
{{$proyecto->segmento}}
</div>
<div class="descripcion">
{{$proyecto->comuna}}
</div>
</div>
<div class="medium image">
@if ($proyecto->destacado)
<div class="overlay">Destacado</div>
@endif
<img src="{{$urls->images}}/{{$proyecto->imagen}}" />
</div>
<div class="content">
<div class="ui basic segment">
<span class="right floated">
{{$proyecto->valor}} UF
</span>
Valor depto
</div>
<div class="ui basic segment">
<span class="right floated">
{{$proyecto->bono}} UF
</span>
Bono Pie
</div>
<div class="ui basic segment">
<span class="right floated">
{{$proyecto->rentabilidad}}%
</span>
Rentabilidad
</div>
<div class="ui basic segment">
<span class="right floated">
{{$proyecto->cuota}} UF
</span>
Valor cuota
</div>
<div class="ui basic segment">
<span class="right floated">
{{$proyecto->entrega}}
</span>
Entrega Estimada
</div>
<span class="right floated">
<a href="{{$urls->base}}/proyecto/{{$proyecto->id}}">
<button class="ui inverted brand button">
Ver
</button>
</a>
</span>
</div>
</div>

View File

@ -1,79 +0,0 @@
@extends('layout.base')
@section('page_content')
<div id="proyectos">
<div class="ui container">
<div class="ui header titulo">
PRODUCTOS
</div>
<div class="ui top attached tabular menu">
<a class="active item" data-tab="todo">
Todo
</a>
@foreach ($segmentos as $segmento)
<a class="item" data-tab="{{mb_strtolower($segmento->titulo)}}">
{{$segmento->titulo}}
</a>
@endforeach
</div>
<div class="ui active tab bottom attached" data-tab="todo">
<div class="ui four column stackable grid"></div>
</div>
@foreach ($segmentos as $segmento)
<div class="ui tab bottom attached" data-tab="{{mb_strtolower($segmento->titulo)}}">
<div class="ui four column stackable grid"></div>
</div>
@endforeach
</div>
</div>
@endsection
@push('styles')
<link rel="stylesheet" type="text/css" href="{{$urls->styles}}/proyectos.css" />
@endpush
@push('scripts')
<script type="text/javascript">
function loadSegmento(segmento) {
var name = segmento
if (name.indexOf(' ') > -1) {
name = name.replaceAll(' ', '_')
}
var url = '{{$urls->base}}/proyectos/segmento/' + name
$(".tab[data-tab='" + segmento + "']").find('.grid').html('')
$.getJSON(url, (data) => {
$(".tab[data-tab='" + segmento + "']").find('.grid').append(
$('<div></div>').attr('class', 'ui active centered inline loader')
)
$.each(data.proyectos, (i, el) => {
getProyecto(segmento, el)
})
})
}
function getProyecto(segmento, id_proyecto) {
var url = '{{$urls->base}}/proyecto/' + id_proyecto + '/ficha'
$.ajax({
url: url,
success: (data) => {
if ($(".tab[data-tab='" + segmento + "']").find('.grid').find('.loader').length > 0) {
$(".tab[data-tab='" + segmento + "']").find('.grid').html('')
}
$(".tab[data-tab='" + segmento + "']").find('.grid').append(
$('<div></div>').attr('class', 'column').append(data)
)
}
})
}
$(document).ready(() => {
loadSegmento('todo')
$('#proyectos').find('.tabular.menu .item').tab({
onFirstLoad: (tabPath, parameterArray, historyEvent) => {
if (tabPath == 'todo') {
return
}
loadSegmento(tabPath)
}
})
})
</script>
@endpush

Some files were not shown because too many files have changed in this diff Show More