├── .DS_Store
├── fonts
├── GOODTIME.ttf
├── FontAwesome.otf
├── fontawesome-webfont.eot
├── fontawesome-webfont.ttf
├── SourceSansPro-Regular.otf
├── fontawesome-webfont.woff
├── fontawesome-webfont.woff2
├── glyphicons-halflings-regular.woff
└── glyphicons-halflings-regular.woff2
├── README.md
├── tmpls
├── week-days.html
├── events-list.html
├── month-day.html
├── year-month.html
├── modal.html
├── week.html
├── month.html
├── year.html
└── day.html
├── .gitattributes
├── funciones.php
├── config.php
├── eventos.sql
├── obtener_eventos.php
├── js
├── es-ES.js
├── underscore-min.js
├── bootstrap.min.js
├── calendar.js
└── bootstrap-datetimepicker.js
├── descripcion_evento.php
├── css
├── bootstrap-datetimepicker.min.css
├── calendar.css
└── font-awesome.min.css
└── index.php
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icodeart/Calendario-Bootstrap-php-mysql/HEAD/.DS_Store
--------------------------------------------------------------------------------
/fonts/GOODTIME.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icodeart/Calendario-Bootstrap-php-mysql/HEAD/fonts/GOODTIME.ttf
--------------------------------------------------------------------------------
/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icodeart/Calendario-Bootstrap-php-mysql/HEAD/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icodeart/Calendario-Bootstrap-php-mysql/HEAD/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icodeart/Calendario-Bootstrap-php-mysql/HEAD/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/fonts/SourceSansPro-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icodeart/Calendario-Bootstrap-php-mysql/HEAD/fonts/SourceSansPro-Regular.otf
--------------------------------------------------------------------------------
/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icodeart/Calendario-Bootstrap-php-mysql/HEAD/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icodeart/Calendario-Bootstrap-php-mysql/HEAD/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icodeart/Calendario-Bootstrap-php-mysql/HEAD/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icodeart/Calendario-Bootstrap-php-mysql/HEAD/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Calendario by icodeart
2 | Calendario con eventos en php y mysql diseñado en Bootstrap.
3 |
4 | # Uso
5 | Modificar el archivo config.php con la informacion de tu base de dato e importar el archivo sql a tu base de datos.
6 |
7 | # Funcionamiento
8 | https://www.youtube.com/watch?v=fIiNIcID7ik
9 |
--------------------------------------------------------------------------------
/tmpls/week-days.html:
--------------------------------------------------------------------------------
1 | <% _.each(events, function(event){ %>
2 |
7 | <% }); %>
8 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 | # Custom for Visual Studio
5 | *.cs diff=csharp
6 |
7 | # Standard to msysgit
8 | *.doc diff=astextplain
9 | *.DOC diff=astextplain
10 | *.docx diff=astextplain
11 | *.DOCX diff=astextplain
12 | *.dot diff=astextplain
13 | *.DOT diff=astextplain
14 | *.pdf diff=astextplain
15 | *.PDF diff=astextplain
16 | *.rtf diff=astextplain
17 | *.RTF diff=astextplain
18 |
--------------------------------------------------------------------------------
/tmpls/events-list.html:
--------------------------------------------------------------------------------
1 |
2 |
14 |
--------------------------------------------------------------------------------
/tmpls/month-day.html:
--------------------------------------------------------------------------------
1 |
2 |
<%= day %>
3 | <% if (events.length > 0) { %>
4 |
5 | <% _.each(events, function(event) { %>
6 |
9 | <% }); %>
10 |
11 | <% } %>
12 |
13 |
--------------------------------------------------------------------------------
/tmpls/year-month.html:
--------------------------------------------------------------------------------
1 | <%= month_name %>
2 | <% if (events.length > 0) { %>
3 | <%= events.length %>
4 |
5 | <% _.each(events, function(event) { %>
6 |
9 | <% }); %>
10 |
11 | <% } %>
12 |
--------------------------------------------------------------------------------
/tmpls/modal.html:
--------------------------------------------------------------------------------
1 | <% event.date_start = new Date(parseInt(event.start));
2 | event.date_end = new Date(parseInt(event.end)); %>
3 |
4 | Starts on <%= event.date_start.getDate() %> <%= calendar.locale["m" + event.date_start.getMonth()] %> <%= event.date_start.getFullYear() %>, at <%= event.date_start.getHours() %>:<%= event.date_start.getMinutes() %>
5 | Ends on <%= event.date_end.getDate() %> <%= calendar.locale["m" + event.date_end.getMonth()] %> <%= event.date_end.getFullYear() %> at <%= event.date_end.getHours() %>:<%= event.date_end.getMinutes() %>
6 |
7 |
8 |
11 |
--------------------------------------------------------------------------------
/tmpls/week.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | <% _.each(months, function(name) { %>
10 |
<%= name %>
11 | <%= start.getDate() %> <%= cal.locale['ms' + start.getMonth()] %>
12 |
13 | <% start.setDate(start.getDate() + 1); %>
14 | <% }) %>
15 |
16 |
17 | <%= cal._week() %>
18 |
19 |
--------------------------------------------------------------------------------
/tmpls/month.html:
--------------------------------------------------------------------------------
1 |
2 | <% _.each(months, function(name){ %>
3 |
<%= name %>
4 | <% }) %>
5 |
6 |
7 | <% for(i = 0; i < 6; i++) { %>
8 | <% if(cal.stop_cycling == true) break; %>
9 |
10 |
<%= cal._day(i, day++) %>
11 |
<%= cal._day(i, day++) %>
12 |
<%= cal._day(i, day++) %>
13 |
<%= cal._day(i, day++) %>
14 |
<%= cal._day(i, day++) %>
15 |
<%= cal._day(i, day++) %>
16 |
<%= cal._day(i, day++) %>
17 |
18 | <% } %>
19 |
--------------------------------------------------------------------------------
/tmpls/year.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
<%= cal._month(0) %>
4 |
<%= cal._month(1) %>
5 |
<%= cal._month(2) %>
6 |
<%= cal._month(3) %>
7 |
8 |
9 |
<%= cal._month(4) %>
10 |
<%= cal._month(5) %>
11 |
<%= cal._month(6) %>
12 |
<%= cal._month(7) %>
13 |
14 |
15 |
<%= cal._month(8) %>
16 |
<%= cal._month(9) %>
17 |
<%= cal._month(10) %>
18 |
<%= cal._month(11) %>
19 |
20 |
21 |
--------------------------------------------------------------------------------
/funciones.php:
--------------------------------------------------------------------------------
1 | ',"\"");
26 | $valor = str_replace($nopermitido, "", $valor);
27 | return $valor;
28 | }
29 |
30 | // Formatear una fecha a microtime para añadir al evento, tipo 1401517498985.
31 | function _formatear($fecha)
32 | {
33 | return strtotime(substr($fecha, 6, 4)."-".substr($fecha, 3, 2)."-".substr($fecha, 0, 2)." " .substr($fecha, 10, 6)) * 1000;
34 | }
35 | ?>
36 |
--------------------------------------------------------------------------------
/config.php:
--------------------------------------------------------------------------------
1 | set_charset('utf8');
33 |
34 | // verificamos si hubo algun error y lo mostramos
35 | if ($conexion->connect_errno) {
36 | echo "Error al conectar la base de datos {$conexion->connect_errno}";
37 | }
38 |
39 | // Url donde estara el proyecto, debe terminar con un "/" al final
40 | $base_url="http://localhost/calendario/";
41 |
42 | ?>
43 |
44 |
--------------------------------------------------------------------------------
/eventos.sql:
--------------------------------------------------------------------------------
1 | -- phpMyAdmin SQL Dump
2 | -- version 4.6.6
3 | -- https://www.phpmyadmin.net/
4 | --
5 | -- Servidor: localhost
6 | -- Tiempo de generación: 06-11-2017 a las 19:48:21
7 | -- Versión del servidor: 5.7.17-log
8 | -- Versión de PHP: 5.6.30
9 |
10 | SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
11 | SET time_zone = "+00:00";
12 |
13 |
14 | /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
15 | /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
16 | /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
17 | /*!40101 SET NAMES utf8mb4 */;
18 |
19 | --
20 | -- Base de datos: `control_stock`
21 | --
22 |
23 | -- --------------------------------------------------------
24 |
25 | --
26 | -- Estructura de tabla para la tabla `agenda`
27 | --
28 |
29 | CREATE TABLE `agenda` (
30 | `id` int(10) UNSIGNED NOT NULL,
31 | `title` varchar(150) COLLATE utf8_spanish_ci DEFAULT NULL,
32 | `body` text COLLATE utf8_spanish_ci NOT NULL,
33 | `url` varchar(150) COLLATE utf8_spanish_ci NOT NULL,
34 | `class` varchar(45) COLLATE utf8_spanish_ci NOT NULL DEFAULT 'event-important',
35 | `start` varchar(15) COLLATE utf8_spanish_ci NOT NULL,
36 | `end` varchar(15) COLLATE utf8_spanish_ci NOT NULL,
37 | `inicio_normal` varchar(50) COLLATE utf8_spanish_ci NOT NULL,
38 | `final_normal` varchar(50) COLLATE utf8_spanish_ci NOT NULL
39 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci;
40 |
41 | --
42 | -- Indices de la tabla `agenda`
43 | --
44 | ALTER TABLE `agenda`
45 | ADD PRIMARY KEY (`id`),
46 | ADD UNIQUE KEY `inicio_normal` (`inicio_normal`),
47 | ADD UNIQUE KEY `final_normal` (`final_normal`);
48 |
49 | --
50 | -- AUTO_INCREMENT de las tablas volcadas
51 | --
52 |
53 | --
54 | -- AUTO_INCREMENT de la tabla `agenda`
55 | --
56 | ALTER TABLE `agenda`
57 | MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=89;
58 | /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
59 | /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
60 | /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
61 |
--------------------------------------------------------------------------------
/obtener_eventos.php:
--------------------------------------------------------------------------------
1 | query($sql)->num_rows)
30 | {
31 |
32 | // creamos un array
33 | $datos = array();
34 |
35 | //guardamos en un array multidimensional todos los datos de la consulta
36 | $i=0;
37 |
38 | // Ejecutamos nuestra sentencia sql
39 | $e = $conexion->query($sql);
40 |
41 | while($row=$e->fetch_array()) // realizamos un ciclo while para traer los agenda encontrados en la base de dato
42 | {
43 | // Alimentamos el array con los datos de los agenda
44 | $datos[$i] = $row;
45 | $i++;
46 | }
47 |
48 | // Transformamos los datos encontrado en la BD al formato JSON
49 | echo json_encode(
50 | array(
51 | "success" => 1,
52 | "result" => $datos
53 | )
54 | );
55 |
56 | }
57 | else
58 | {
59 | // Si no existen agenda mostramos este mensaje.
60 | echo "No hay datos";
61 | }
62 |
63 |
64 | ?>
65 |
--------------------------------------------------------------------------------
/js/es-ES.js:
--------------------------------------------------------------------------------
1 | if(!window.calendar_languages) {
2 | window.calendar_languages = {};
3 | }
4 | window.calendar_languages['es-ES'] = {
5 | error_noview: 'Calendario: Vista {0} no encontrada',
6 | error_dateformat: 'Calendario: Formato de fecha inválido {0}. Debe ser "now" o "yyyy-mm-dd"',
7 | error_loadurl: 'Calendario: URL de carga de eventos no configurada',
8 | error_where: 'Calendario: Dirección de navegación incorrecta {0}. Los valores correctos son "next" o "prev" o "today"',
9 | error_timedevide: 'Calendario: parámetro para el separador de hora debe dividir 60 por un entero. Por ejemplo 10, 15, 30',
10 |
11 | no_events_in_day: 'No hay eventos hoy',
12 |
13 | title_year: 'Año {0}',
14 | title_month: '{0} {1}',
15 | title_week: 'Semana {0} del {1}',
16 | title_day: '{0} {1} {2} {3}',
17 |
18 | week: 'Semana {0}',
19 | all_day: 'Todo el día',
20 | time: 'Tiempo',
21 | events: 'Desarrollos',
22 | before_time: 'Tiempo antes de la cinta final',
23 | after_time: 'Fin después de una cinta temporal',
24 |
25 | m0: 'Enero',
26 | m1: 'Febrero',
27 | m2: 'Marzo',
28 | m3: 'Abril',
29 | m4: 'Mayo',
30 | m5: 'Junio',
31 | m6: 'Julio',
32 | m7: 'Agosto',
33 | m8: 'Septiembre',
34 | m9: 'Octubre',
35 | m10: 'Noviembre',
36 | m11: 'Diciembre',
37 |
38 | ms0: 'Ene',
39 | ms1: 'Feb',
40 | ms2: 'Mar',
41 | ms3: 'Abr',
42 | ms4: 'May',
43 | ms5: 'Jun',
44 | ms6: 'Jul',
45 | ms7: 'Ago',
46 | ms8: 'Sep',
47 | ms9: 'Oct',
48 | ms10: 'Nov',
49 | ms11: 'Dic',
50 |
51 | d0: 'Domingo',
52 | d1: 'Lunes',
53 | d2: 'Martes',
54 | d3: 'Miércoles',
55 | d4: 'Jueves',
56 | d5: 'Viernes',
57 | d6: 'Sábado',
58 |
59 | easter: 'Pascuas',
60 | easterMonday: 'Lunes de Pascuas',
61 |
62 | first_day: 1,
63 |
64 | holidays: {
65 | '01-01': "Año Nuevo",
66 | '06-01': "Día de Reyes",
67 | '19-03': "San José",
68 | 'easter-3': "Jueves Santo",
69 | 'easter-2': "Viernes Santo",
70 | 'easter': "Pascua",
71 | 'easter+1': "Lunes de Pascua",
72 | '01-05': "Día del Trabajador",
73 | '15-08': "Asunción",
74 | '12-10': "Fiesta Nacional de España",
75 | '01-11': "Día de todos los Santos",
76 | '06-12': "Día de la Constitución",
77 | '08-12': "Inmaculada Concepción",
78 | '25-12': "Navidad"
79 | }
80 | };
81 |
--------------------------------------------------------------------------------
/tmpls/day.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
<%= cal.locale.time %>
4 |
<%= cal.locale.events %>
5 |
6 | <% if(all_day.length) {%>
7 |
8 |
<%= cal.locale.all_day %>
9 |
10 | <% _.each(all_day, function(event){ %>
11 |
12 | <%= event.title %>
13 |
14 | <% }); %>
15 |
16 |
17 | <% }; %>
18 | <% if(before_time.length) {%>
19 |
20 |
<%= cal.locale.before_time %>
21 |
22 | <% _.each(before_time, function(event){ %>
23 |
24 | <%= event.end_hour %>
25 | <%= event.title %>
26 |
27 | <% }); %>
28 |
29 |
30 | <% }; %>
31 |
32 | <% _.each(by_hour, function(event){ %>
33 |
34 | <%= event.start_hour %> - <%= event.end_hour %>
35 | <%= event.title %>
36 |
37 | <% }); %>
38 |
39 |
40 | <% for(i = 0; i < hours; i++){ %>
41 |
42 | <% for(l = 0; l < in_hour; l++){ %>
43 |
44 |
<%= cal._hour(i, l) %>
45 |
46 |
47 | <% }; %>
48 |
49 | <% }; %>
50 |
51 |
52 | <% if(after_time.length) {%>
53 |
54 |
<%= cal.locale.after_time %>
55 |
56 | <% _.each(after_time, function(event){ %>
57 |
58 | <%= event.start_hour %>
59 | <%= event.title %>
60 |
61 | <% }); %>
62 |
63 |
64 | <% }; %>
65 |
--------------------------------------------------------------------------------
/descripcion_evento.php:
--------------------------------------------------------------------------------
1 | query("SELECT * FROM agenda WHERE id=$id");
33 |
34 | // Obtenemos los datos
35 | $row = $bd->fetch_assoc();
36 |
37 | // titulo
38 | $titulo=$row['title'];
39 |
40 | // cuerpo
41 | $evento=$row['body'];
42 |
43 | // Fecha inicio
44 | $inicio=$row['inicio_normal'];
45 |
46 | // Fecha Termino
47 | $final=$row['final_normal'];
48 |
49 | // Eliminar evento
50 | if (isset($_POST['eliminar_evento']))
51 | {
52 | $id = evaluar($_GET['id']);
53 | $sql = "DELETE FROM agenda WHERE id = $id";
54 | if ($conexion->query($sql))
55 | {
56 | echo "Evento eliminado";
57 |
58 |
59 | }
60 | else
61 | {
62 | echo "El evento no se pudo eliminar";
63 | }
64 | }
65 | ?>
66 |
67 |
68 |
69 |
70 |
71 | =$titulo?>
72 |
73 |
74 |
75 | =$titulo?>
76 |
77 | Fecha inicio: =$inicio?>
78 | Fecha termino: =$final?>
79 | Descripcion:=$evento?>
80 |
81 |
86 |
87 |
--------------------------------------------------------------------------------
/css/bootstrap-datetimepicker.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Datetimepicker for Bootstrap v3
3 | * https://github.com/Eonasdan/bootstrap-datetimepicker/
4 | */
5 | .bootstrap-datetimepicker-widget{top:0;left:0;width:260px;padding:4px;margin-top:1px;z-index:99999!important;border-radius:4px}.bootstrap-datetimepicker-widget.timepicker-sbs{width:600px}.bootstrap-datetimepicker-widget.bottom:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,.2);position:absolute;top:-7px;left:7px}.bootstrap-datetimepicker-widget.bottom:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;top:-6px;left:8px}.bootstrap-datetimepicker-widget.top:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #ccc;border-top-color:rgba(0,0,0,.2);position:absolute;bottom:-7px;left:6px}.bootstrap-datetimepicker-widget.top:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #fff;position:absolute;bottom:-6px;left:7px}.bootstrap-datetimepicker-widget .dow{width:14.2857%}.bootstrap-datetimepicker-widget.pull-right:before{left:auto;right:6px}.bootstrap-datetimepicker-widget.pull-right:after{left:auto;right:7px}.bootstrap-datetimepicker-widget>ul{list-style-type:none;margin:0}.bootstrap-datetimepicker-widget .timepicker-hour,.bootstrap-datetimepicker-widget .timepicker-minute,.bootstrap-datetimepicker-widget .timepicker-second{width:100%;font-weight:bold;font-size:1.2em}.bootstrap-datetimepicker-widget table[data-hour-format="12"] .separator{width:4px;padding:0;margin:0}.bootstrap-datetimepicker-widget .datepicker>div{display:none}.bootstrap-datetimepicker-widget .picker-switch{text-align:center}.bootstrap-datetimepicker-widget table{width:100%;margin:0}.bootstrap-datetimepicker-widget td,.bootstrap-datetimepicker-widget th{text-align:center;width:20px;height:20px;border-radius:4px}.bootstrap-datetimepicker-widget td.day:hover,.bootstrap-datetimepicker-widget td.hour:hover,.bootstrap-datetimepicker-widget td.minute:hover,.bootstrap-datetimepicker-widget td.second:hover{background:#eee;cursor:pointer}.bootstrap-datetimepicker-widget td.old,.bootstrap-datetimepicker-widget td.new{color:#999}.bootstrap-datetimepicker-widget td.today{position:relative}.bootstrap-datetimepicker-widget td.today:before{content:'';display:inline-block;border-left:7px solid transparent;border-bottom:7px solid #428bca;border-top-color:rgba(0,0,0,.2);position:absolute;bottom:4px;right:4px}.bootstrap-datetimepicker-widget td.active,.bootstrap-datetimepicker-widget td.active:hover{background-color:#428bca;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.bootstrap-datetimepicker-widget td.active.today:before{border-bottom-color:#fff}.bootstrap-datetimepicker-widget td.disabled,.bootstrap-datetimepicker-widget td.disabled:hover{background:none;color:#999;cursor:not-allowed}.bootstrap-datetimepicker-widget td span{display:block;width:47px;height:54px;line-height:54px;float:left;margin:2px;cursor:pointer;border-radius:4px}.bootstrap-datetimepicker-widget td span:hover{background:#eee}.bootstrap-datetimepicker-widget td span.active{background-color:#428bca;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.bootstrap-datetimepicker-widget td span.old{color:#999}.bootstrap-datetimepicker-widget td span.disabled,.bootstrap-datetimepicker-widget td span.disabled:hover{background:none;color:#999;cursor:not-allowed}.bootstrap-datetimepicker-widget th.switch{width:145px}.bootstrap-datetimepicker-widget th.next,.bootstrap-datetimepicker-widget th.prev{font-size:21px}.bootstrap-datetimepicker-widget th.disabled,.bootstrap-datetimepicker-widget th.disabled:hover{background:none;color:#999;cursor:not-allowed}.bootstrap-datetimepicker-widget thead tr:first-child th{cursor:pointer}.bootstrap-datetimepicker-widget thead tr:first-child th:hover{background:#eee}.input-group.date .input-group-addon span{display:block;cursor:pointer;width:16px;height:16px}.bootstrap-datetimepicker-widget.left-oriented:before{left:auto;right:6px}.bootstrap-datetimepicker-widget.left-oriented:after{left:auto;right:7px}.bootstrap-datetimepicker-widget ul.list-unstyled li div.timepicker div.timepicker-picker table.table-condensed tbody>tr>td{padding:0!important}
--------------------------------------------------------------------------------
/js/underscore-min.js:
--------------------------------------------------------------------------------
1 | (function(){var n=this,t=n._,r={},e=Array.prototype,u=Object.prototype,i=Function.prototype,a=e.push,o=e.slice,c=e.concat,l=u.toString,f=u.hasOwnProperty,s=e.forEach,p=e.map,h=e.reduce,v=e.reduceRight,d=e.filter,g=e.every,m=e.some,y=e.indexOf,b=e.lastIndexOf,x=Array.isArray,_=Object.keys,j=i.bind,w=function(n){return n instanceof w?n:this instanceof w?(this._wrapped=n,void 0):new w(n)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=w),exports._=w):n._=w,w.VERSION="1.4.4";var A=w.each=w.forEach=function(n,t,e){if(null!=n)if(s&&n.forEach===s)n.forEach(t,e);else if(n.length===+n.length){for(var u=0,i=n.length;i>u;u++)if(t.call(e,n[u],u,n)===r)return}else for(var a in n)if(w.has(n,a)&&t.call(e,n[a],a,n)===r)return};w.map=w.collect=function(n,t,r){var e=[];return null==n?e:p&&n.map===p?n.map(t,r):(A(n,function(n,u,i){e[e.length]=t.call(r,n,u,i)}),e)};var O="Reduce of empty array with no initial value";w.reduce=w.foldl=w.inject=function(n,t,r,e){var u=arguments.length>2;if(null==n&&(n=[]),h&&n.reduce===h)return e&&(t=w.bind(t,e)),u?n.reduce(t,r):n.reduce(t);if(A(n,function(n,i,a){u?r=t.call(e,r,n,i,a):(r=n,u=!0)}),!u)throw new TypeError(O);return r},w.reduceRight=w.foldr=function(n,t,r,e){var u=arguments.length>2;if(null==n&&(n=[]),v&&n.reduceRight===v)return e&&(t=w.bind(t,e)),u?n.reduceRight(t,r):n.reduceRight(t);var i=n.length;if(i!==+i){var a=w.keys(n);i=a.length}if(A(n,function(o,c,l){c=a?a[--i]:--i,u?r=t.call(e,r,n[c],c,l):(r=n[c],u=!0)}),!u)throw new TypeError(O);return r},w.find=w.detect=function(n,t,r){var e;return E(n,function(n,u,i){return t.call(r,n,u,i)?(e=n,!0):void 0}),e},w.filter=w.select=function(n,t,r){var e=[];return null==n?e:d&&n.filter===d?n.filter(t,r):(A(n,function(n,u,i){t.call(r,n,u,i)&&(e[e.length]=n)}),e)},w.reject=function(n,t,r){return w.filter(n,function(n,e,u){return!t.call(r,n,e,u)},r)},w.every=w.all=function(n,t,e){t||(t=w.identity);var u=!0;return null==n?u:g&&n.every===g?n.every(t,e):(A(n,function(n,i,a){return(u=u&&t.call(e,n,i,a))?void 0:r}),!!u)};var E=w.some=w.any=function(n,t,e){t||(t=w.identity);var u=!1;return null==n?u:m&&n.some===m?n.some(t,e):(A(n,function(n,i,a){return u||(u=t.call(e,n,i,a))?r:void 0}),!!u)};w.contains=w.include=function(n,t){return null==n?!1:y&&n.indexOf===y?n.indexOf(t)!=-1:E(n,function(n){return n===t})},w.invoke=function(n,t){var r=o.call(arguments,2),e=w.isFunction(t);return w.map(n,function(n){return(e?t:n[t]).apply(n,r)})},w.pluck=function(n,t){return w.map(n,function(n){return n[t]})},w.where=function(n,t,r){return w.isEmpty(t)?r?null:[]:w[r?"find":"filter"](n,function(n){for(var r in t)if(t[r]!==n[r])return!1;return!0})},w.findWhere=function(n,t){return w.where(n,t,!0)},w.max=function(n,t,r){if(!t&&w.isArray(n)&&n[0]===+n[0]&&65535>n.length)return Math.max.apply(Math,n);if(!t&&w.isEmpty(n))return-1/0;var e={computed:-1/0,value:-1/0};return A(n,function(n,u,i){var a=t?t.call(r,n,u,i):n;a>=e.computed&&(e={value:n,computed:a})}),e.value},w.min=function(n,t,r){if(!t&&w.isArray(n)&&n[0]===+n[0]&&65535>n.length)return Math.min.apply(Math,n);if(!t&&w.isEmpty(n))return 1/0;var e={computed:1/0,value:1/0};return A(n,function(n,u,i){var a=t?t.call(r,n,u,i):n;e.computed>a&&(e={value:n,computed:a})}),e.value},w.shuffle=function(n){var t,r=0,e=[];return A(n,function(n){t=w.random(r++),e[r-1]=e[t],e[t]=n}),e};var k=function(n){return w.isFunction(n)?n:function(t){return t[n]}};w.sortBy=function(n,t,r){var e=k(t);return w.pluck(w.map(n,function(n,t,u){return{value:n,index:t,criteria:e.call(r,n,t,u)}}).sort(function(n,t){var r=n.criteria,e=t.criteria;if(r!==e){if(r>e||r===void 0)return 1;if(e>r||e===void 0)return-1}return n.indexi;){var o=i+a>>>1;u>r.call(e,n[o])?i=o+1:a=o}return i},w.toArray=function(n){return n?w.isArray(n)?o.call(n):n.length===+n.length?w.map(n,w.identity):w.values(n):[]},w.size=function(n){return null==n?0:n.length===+n.length?n.length:w.keys(n).length},w.first=w.head=w.take=function(n,t,r){return null==n?void 0:null==t||r?n[0]:o.call(n,0,t)},w.initial=function(n,t,r){return o.call(n,0,n.length-(null==t||r?1:t))},w.last=function(n,t,r){return null==n?void 0:null==t||r?n[n.length-1]:o.call(n,Math.max(n.length-t,0))},w.rest=w.tail=w.drop=function(n,t,r){return o.call(n,null==t||r?1:t)},w.compact=function(n){return w.filter(n,w.identity)};var R=function(n,t,r){return A(n,function(n){w.isArray(n)?t?a.apply(r,n):R(n,t,r):r.push(n)}),r};w.flatten=function(n,t){return R(n,t,[])},w.without=function(n){return w.difference(n,o.call(arguments,1))},w.uniq=w.unique=function(n,t,r,e){w.isFunction(t)&&(e=r,r=t,t=!1);var u=r?w.map(n,r,e):n,i=[],a=[];return A(u,function(r,e){(t?e&&a[a.length-1]===r:w.contains(a,r))||(a.push(r),i.push(n[e]))}),i},w.union=function(){return w.uniq(c.apply(e,arguments))},w.intersection=function(n){var t=o.call(arguments,1);return w.filter(w.uniq(n),function(n){return w.every(t,function(t){return w.indexOf(t,n)>=0})})},w.difference=function(n){var t=c.apply(e,o.call(arguments,1));return w.filter(n,function(n){return!w.contains(t,n)})},w.zip=function(){for(var n=o.call(arguments),t=w.max(w.pluck(n,"length")),r=Array(t),e=0;t>e;e++)r[e]=w.pluck(n,""+e);return r},w.object=function(n,t){if(null==n)return{};for(var r={},e=0,u=n.length;u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},w.indexOf=function(n,t,r){if(null==n)return-1;var e=0,u=n.length;if(r){if("number"!=typeof r)return e=w.sortedIndex(n,t),n[e]===t?e:-1;e=0>r?Math.max(0,u+r):r}if(y&&n.indexOf===y)return n.indexOf(t,r);for(;u>e;e++)if(n[e]===t)return e;return-1},w.lastIndexOf=function(n,t,r){if(null==n)return-1;var e=null!=r;if(b&&n.lastIndexOf===b)return e?n.lastIndexOf(t,r):n.lastIndexOf(t);for(var u=e?r:n.length;u--;)if(n[u]===t)return u;return-1},w.range=function(n,t,r){1>=arguments.length&&(t=n||0,n=0),r=arguments[2]||1;for(var e=Math.max(Math.ceil((t-n)/r),0),u=0,i=Array(e);e>u;)i[u++]=n,n+=r;return i},w.bind=function(n,t){if(n.bind===j&&j)return j.apply(n,o.call(arguments,1));var r=o.call(arguments,2);return function(){return n.apply(t,r.concat(o.call(arguments)))}},w.partial=function(n){var t=o.call(arguments,1);return function(){return n.apply(this,t.concat(o.call(arguments)))}},w.bindAll=function(n){var t=o.call(arguments,1);return 0===t.length&&(t=w.functions(n)),A(t,function(t){n[t]=w.bind(n[t],n)}),n},w.memoize=function(n,t){var r={};return t||(t=w.identity),function(){var e=t.apply(this,arguments);return w.has(r,e)?r[e]:r[e]=n.apply(this,arguments)}},w.delay=function(n,t){var r=o.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},w.defer=function(n){return w.delay.apply(w,[n,1].concat(o.call(arguments,1)))},w.throttle=function(n,t){var r,e,u,i,a=0,o=function(){a=new Date,u=null,i=n.apply(r,e)};return function(){var c=new Date,l=t-(c-a);return r=this,e=arguments,0>=l?(clearTimeout(u),u=null,a=c,i=n.apply(r,e)):u||(u=setTimeout(o,l)),i}},w.debounce=function(n,t,r){var e,u;return function(){var i=this,a=arguments,o=function(){e=null,r||(u=n.apply(i,a))},c=r&&!e;return clearTimeout(e),e=setTimeout(o,t),c&&(u=n.apply(i,a)),u}},w.once=function(n){var t,r=!1;return function(){return r?t:(r=!0,t=n.apply(this,arguments),n=null,t)}},w.wrap=function(n,t){return function(){var r=[n];return a.apply(r,arguments),t.apply(this,r)}},w.compose=function(){var n=arguments;return function(){for(var t=arguments,r=n.length-1;r>=0;r--)t=[n[r].apply(this,t)];return t[0]}},w.after=function(n,t){return 0>=n?t():function(){return 1>--n?t.apply(this,arguments):void 0}},w.keys=_||function(n){if(n!==Object(n))throw new TypeError("Invalid object");var t=[];for(var r in n)w.has(n,r)&&(t[t.length]=r);return t},w.values=function(n){var t=[];for(var r in n)w.has(n,r)&&t.push(n[r]);return t},w.pairs=function(n){var t=[];for(var r in n)w.has(n,r)&&t.push([r,n[r]]);return t},w.invert=function(n){var t={};for(var r in n)w.has(n,r)&&(t[n[r]]=r);return t},w.functions=w.methods=function(n){var t=[];for(var r in n)w.isFunction(n[r])&&t.push(r);return t.sort()},w.extend=function(n){return A(o.call(arguments,1),function(t){if(t)for(var r in t)n[r]=t[r]}),n},w.pick=function(n){var t={},r=c.apply(e,o.call(arguments,1));return A(r,function(r){r in n&&(t[r]=n[r])}),t},w.omit=function(n){var t={},r=c.apply(e,o.call(arguments,1));for(var u in n)w.contains(r,u)||(t[u]=n[u]);return t},w.defaults=function(n){return A(o.call(arguments,1),function(t){if(t)for(var r in t)null==n[r]&&(n[r]=t[r])}),n},w.clone=function(n){return w.isObject(n)?w.isArray(n)?n.slice():w.extend({},n):n},w.tap=function(n,t){return t(n),n};var I=function(n,t,r,e){if(n===t)return 0!==n||1/n==1/t;if(null==n||null==t)return n===t;n instanceof w&&(n=n._wrapped),t instanceof w&&(t=t._wrapped);var u=l.call(n);if(u!=l.call(t))return!1;switch(u){case"[object String]":return n==t+"";case"[object Number]":return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case"[object Date]":case"[object Boolean]":return+n==+t;case"[object RegExp]":return n.source==t.source&&n.global==t.global&&n.multiline==t.multiline&&n.ignoreCase==t.ignoreCase}if("object"!=typeof n||"object"!=typeof t)return!1;for(var i=r.length;i--;)if(r[i]==n)return e[i]==t;r.push(n),e.push(t);var a=0,o=!0;if("[object Array]"==u){if(a=n.length,o=a==t.length)for(;a--&&(o=I(n[a],t[a],r,e)););}else{var c=n.constructor,f=t.constructor;if(c!==f&&!(w.isFunction(c)&&c instanceof c&&w.isFunction(f)&&f instanceof f))return!1;for(var s in n)if(w.has(n,s)&&(a++,!(o=w.has(t,s)&&I(n[s],t[s],r,e))))break;if(o){for(s in t)if(w.has(t,s)&&!a--)break;o=!a}}return r.pop(),e.pop(),o};w.isEqual=function(n,t){return I(n,t,[],[])},w.isEmpty=function(n){if(null==n)return!0;if(w.isArray(n)||w.isString(n))return 0===n.length;for(var t in n)if(w.has(n,t))return!1;return!0},w.isElement=function(n){return!(!n||1!==n.nodeType)},w.isArray=x||function(n){return"[object Array]"==l.call(n)},w.isObject=function(n){return n===Object(n)},A(["Arguments","Function","String","Number","Date","RegExp"],function(n){w["is"+n]=function(t){return l.call(t)=="[object "+n+"]"}}),w.isArguments(arguments)||(w.isArguments=function(n){return!(!n||!w.has(n,"callee"))}),"function"!=typeof/./&&(w.isFunction=function(n){return"function"==typeof n}),w.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},w.isNaN=function(n){return w.isNumber(n)&&n!=+n},w.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"==l.call(n)},w.isNull=function(n){return null===n},w.isUndefined=function(n){return n===void 0},w.has=function(n,t){return f.call(n,t)},w.noConflict=function(){return n._=t,this},w.identity=function(n){return n},w.times=function(n,t,r){for(var e=Array(n),u=0;n>u;u++)e[u]=t.call(r,u);return e},w.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))};var M={escape:{"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"}};M.unescape=w.invert(M.escape);var S={escape:RegExp("["+w.keys(M.escape).join("")+"]","g"),unescape:RegExp("("+w.keys(M.unescape).join("|")+")","g")};w.each(["escape","unescape"],function(n){w[n]=function(t){return null==t?"":(""+t).replace(S[n],function(t){return M[n][t]})}}),w.result=function(n,t){if(null==n)return null;var r=n[t];return w.isFunction(r)?r.call(n):r},w.mixin=function(n){A(w.functions(n),function(t){var r=w[t]=n[t];w.prototype[t]=function(){var n=[this._wrapped];return a.apply(n,arguments),D.call(this,r.apply(w,n))}})};var N=0;w.uniqueId=function(n){var t=++N+"";return n?n+t:t},w.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var T=/(.)^/,q={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"},B=/\\|'|\r|\n|\t|\u2028|\u2029/g;w.template=function(n,t,r){var e;r=w.defaults({},r,w.templateSettings);var u=RegExp([(r.escape||T).source,(r.interpolate||T).source,(r.evaluate||T).source].join("|")+"|$","g"),i=0,a="__p+='";n.replace(u,function(t,r,e,u,o){return a+=n.slice(i,o).replace(B,function(n){return"\\"+q[n]}),r&&(a+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'"),e&&(a+="'+\n((__t=("+e+"))==null?'':__t)+\n'"),u&&(a+="';\n"+u+"\n__p+='"),i=o+t.length,t}),a+="';\n",r.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{e=Function(r.variable||"obj","_",a)}catch(o){throw o.source=a,o}if(t)return e(t,w);var c=function(n){return e.call(this,n,w)};return c.source="function("+(r.variable||"obj")+"){\n"+a+"}",c},w.chain=function(n){return w(n).chain()};var D=function(n){return this._chain?w(n).chain():n};w.mixin(w),A(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=e[n];w.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!=n&&"splice"!=n||0!==r.length||delete r[0],D.call(this,r)}}),A(["concat","join","slice"],function(n){var t=e[n];w.prototype[n]=function(){return D.call(this,t.apply(this._wrapped,arguments))}}),w.extend(w.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}})}).call(this);
--------------------------------------------------------------------------------
/css/calendar.css:
--------------------------------------------------------------------------------
1 | [class*="cal-cell"] {
2 | float: left;
3 | margin-left: 0;
4 | min-height: 1px;
5 | }
6 | .cal-row-fluid {
7 | width: 100%;
8 | *zoom: 1;
9 | }
10 | .cal-row-fluid:before,
11 | .cal-row-fluid:after {
12 | display: table;
13 | content: "";
14 | line-height: 0;
15 | }
16 | .cal-row-fluid:after {
17 | clear: both;
18 | }
19 | .cal-row-fluid [class*="cal-cell"] {
20 | display: block;
21 | width: 100%;
22 | -webkit-box-sizing: border-box;
23 | -moz-box-sizing: border-box;
24 | box-sizing: border-box;
25 | float: left;
26 | margin-left: 0%;
27 | *margin-left: -0.05213764337851929%;
28 | }
29 | .cal-row-fluid [class*="cal-cell"]:first-child {
30 | margin-left: 0;
31 | }
32 | .cal-row-fluid .controls-row [class*="cal-cell"] + [class*="cal-cell"] {
33 | margin-left: 0%;
34 | }
35 | .cal-row-fluid .cal-cell7 {
36 | width: 100%;
37 | *width: 99.94669509594883%;
38 | }
39 | .cal-row-fluid .cal-cell6 {
40 | width: 85.71428571428571%;
41 | *width: 85.66098081023453%;
42 | }
43 | .cal-row-fluid .cal-cell5 {
44 | width: 71.42857142857142%;
45 | *width: 71.37526652452024%;
46 | }
47 | .cal-row-fluid .cal-cell4 {
48 | width: 57.14285714285714%;
49 | *width: 57.089552238805965%;
50 | }
51 | .cal-row-fluid .cal-cell3 {
52 | width: 42.857142857142854%;
53 | *width: 42.80383795309168%;
54 | }
55 | .cal-row-fluid .cal-cell2 {
56 | width: 28.57142857142857%;
57 | *width: 28.518123667377395%;
58 | }
59 | .cal-row-fluid .cal-cell1 {
60 | width: 14.285714285714285%;
61 | *width: 14.232409381663112%;
62 | }
63 | .cal-week-box .cal-offset7,
64 | .cal-row-fluid .cal-offset7,
65 | .cal-row-fluid .cal-offset7:first-child {
66 | margin-left: 100%;
67 | *margin-left: 99.89339019189765%;
68 | }
69 | .cal-week-box .cal-offset6,
70 | .cal-row-fluid .cal-offset6,
71 | .cal-row-fluid .cal-offset6:first-child {
72 | margin-left: 85.71428571428571%;
73 | *margin-left: 85.60767590618336%;
74 | }
75 | .cal-week-box .cal-offset5,
76 | .cal-row-fluid .cal-offset5,
77 | .cal-row-fluid .cal-offset5:first-child {
78 | margin-left: 71.42857142857142%;
79 | *margin-left: 71.32196162046907%;
80 | }
81 | .cal-week-box .cal-offset4,
82 | .cal-row-fluid .cal-offset4,
83 | .cal-row-fluid .cal-offset4:first-child {
84 | margin-left: 57.14285714285714%;
85 | *margin-left: 57.03624733475479%;
86 | }
87 | .cal-week-box .cal-offset3,
88 | .cal-row-fluid .cal-offset3,
89 | .cal-row-fluid .cal-offset3:first-child {
90 | margin-left: 42.857142857142854%;
91 | *margin-left: 42.750533049040506%;
92 | }
93 | .cal-week-box .cal-offset2,
94 | .cal-row-fluid .cal-offset2,
95 | .cal-row-fluid .cal-offset2:first-child {
96 | margin-left: 28.57142857142857%;
97 | *margin-left: 28.46481876332622%;
98 | }
99 | .cal-week-box .cal-offset1,
100 | .cal-row-fluid .cal-offset1,
101 | .cal-row-fluid .cal-offset1:first-child {
102 | margin-left: 14.285714285714285%;
103 | *margin-left: 14.17910447761194%;
104 | }
105 | .cal-row-fluid .cal-cell1 {
106 | width: 14.285714285714285%;
107 | *width: 14.233576642335766%;
108 | }
109 | [class*="cal-cell"].hide,
110 | .cal-row-fluid [class*="cal-cell"].hide {
111 | display: none;
112 | }
113 | [class*="cal-cell"].pull-right,
114 | .cal-row-fluid [class*="cal-cell"].pull-right {
115 | float: right;
116 | }
117 | .cal-row-head [class*="cal-cell"]:first-child,
118 | .cal-row-head [class*="cal-cell"] {
119 | min-height: auto;
120 | overflow: hidden;
121 | text-overflow: ellipsis;
122 | }
123 | .cal-events-num {
124 | margin-top: 20px;
125 | }
126 | .cal-month-day {
127 | position: relative;
128 | display: block;
129 | width: 100%;
130 | }
131 | #cal-week-box {
132 | position: absolute;
133 | width: 70px;
134 | left: -71px;
135 | top: -1px;
136 | padding: 8px 5px;
137 | cursor: pointer;
138 | }
139 | #cal-day-tick {
140 | position: absolute;
141 | right: 50%;
142 | bottom: -21px;
143 | padding: 0px 5px;
144 | cursor: pointer;
145 | z-index: 5;
146 | text-align: center;
147 | width: 26px;
148 | margin-right: -17px;
149 | }
150 | .cal-year-box #cal-day-tick {
151 | margin-right: -7px;
152 | }
153 | #cal-slide-box {
154 | position: relative;
155 | }
156 | #cal-slide-tick {
157 | position: absolute;
158 | width: 16px;
159 | margin-left: -7px;
160 | height: 9px;
161 | top: -1px;
162 | z-index: 1;
163 | }
164 | #cal-slide-tick.tick-month1 {
165 | left: 12.5%;
166 | }
167 | #cal-slide-tick.tick-month2 {
168 | left: 37.5%;
169 | }
170 | #cal-slide-tick.tick-month3 {
171 | left: 62.5%;
172 | }
173 | #cal-slide-tick.tick-month4 {
174 | left: 87.5%;
175 | }
176 | #cal-slide-tick.tick-day1 {
177 | left: 7.14285714285715%;
178 | }
179 | #cal-slide-tick.tick-day2 {
180 | left: 21.42857142857143%;
181 | }
182 | #cal-slide-tick.tick-day3 {
183 | left: 35.71428571428572%;
184 | }
185 | #cal-slide-tick.tick-day4 {
186 | left: 50%;
187 | }
188 | #cal-slide-tick.tick-day5 {
189 | left: 64.2857142857143%;
190 | }
191 | #cal-slide-tick.tick-day6 {
192 | left: 78.57142857142859%;
193 | }
194 | #cal-slide-tick.tick-day7 {
195 | left: 92.85714285714285%;
196 | }
197 | .events-list {
198 | position: absolute;
199 | bottom: 0;
200 | left: 0;
201 | overflow: hidden;
202 | }
203 | #cal-slide-content ul.unstyled {
204 | margin-bottom: 0;
205 | }
206 | .cal-week-box {
207 | position: relative;
208 | }
209 | .cal-week-box [data-event-class] {
210 | white-space: nowrap;
211 | height: 30px;
212 | margin: 1px 1px;
213 | line-height: 30px;
214 | text-overflow: ellipsis;
215 | overflow: hidden;
216 | padding-left: 10px;
217 | }
218 | .cal-week-box .cal-column {
219 | position: absolute;
220 | height: 100%;
221 | z-index: -1;
222 | }
223 | .cal-week-box .arrow-before,
224 | .cal-week-box .arrow-after {
225 | position: relative;
226 | }
227 | .cal-week-box .arrow-after:after {
228 | content: "";
229 | position: absolute;
230 | top: 0px;
231 | width: 0;
232 | height: 0;
233 | right: 0;
234 | border-top: 15px solid #ffffff;
235 | border-left: 8px solid;
236 | border-bottom: 15px solid #FFFFFF;
237 | }
238 | .cal-week-box .arrow-before:before {
239 | content: "";
240 | position: absolute;
241 | top: 0px;
242 | width: 0;
243 | height: 0;
244 | left: 1px;
245 | border-top: 15px solid transparent;
246 | border-left: 8px solid #FFFFFF;
247 | border-bottom: 15px solid transparent;
248 | }
249 | #cal-day-box {
250 | text-wrap: none;
251 | }
252 | #cal-day-box .cal-day-hour-part {
253 | height: 30px;
254 | box-sizing: border-box;
255 | -moz-box-sizing: border-box;
256 | -webkit-box-sizing: border-box;
257 | border-bottom: thin dashed #e1e1e1;
258 | }
259 | #cal-day-box .cal-day-hour .day-highlight {
260 | height: 30px;
261 | }
262 | #cal-day-box .cal-hours {
263 | font-weight: bolder;
264 | }
265 | #cal-day-box .cal-day-hour:nth-child(odd) {
266 | background-color: #fafafa;
267 | }
268 | #cal-day-box #cal-day-panel {
269 | position: sticky;
270 | padding-left: 60px;
271 | }
272 | #cal-day-box #cal-day-panel-hour {
273 | position: absolute;
274 | width: 100%;
275 | margin-left: -60px;
276 | z-index: -1;
277 | }
278 | #cal-day-box .day-event {
279 | max-width: 200px;
280 | overflow: hidden;
281 | }
282 | #cal-day-box .day-highlight {
283 | line-height: 30px;
284 | padding-left: 8px;
285 | padding-right: 8px;
286 | box-sizing: border-box;
287 | -moz-box-sizing: border-box;
288 | -webkit-box-sizing: border-box;
289 | border: 1px solid #c3c3c3;
290 | margin: 1px 1px;
291 | overflow: hidden;
292 | text-overflow: ellipsis;
293 | }
294 | #cal-day-box .day-highlight.dh-event-important {
295 | border: 1px solid #ad2121;
296 | }
297 | #cal-day-box .day-highlight.dh-event-warning {
298 | border: 1px solid #e3bc08;
299 | }
300 | #cal-day-box .day-highlight.dh-event-info {
301 | border: 1px solid #1e90ff;
302 | }
303 | #cal-day-box .day-highlight.dh-event-inverse {
304 | border: 1px solid #1b1b1b;
305 | }
306 | #cal-day-box .day-highlight.dh-event-success {
307 | border: 1px solid #006400;
308 | }
309 | #cal-day-box .day-highlight.dh-event-special {
310 | background-color: #ffe6ff;
311 | border: 1px solid #800080;
312 | }
313 | .event {
314 | display: block;
315 | background-color: #c3c3c3;
316 | width: 12px;
317 | height: 12px;
318 | margin-right: 2px;
319 | margin-bottom: 2px;
320 | -webkit-box-shadow: inset 0px 0px 5px 0px rgba(0, 0, 0, 0.4);
321 | box-shadow: inset 0px 0px 5px 0px rgba(0, 0, 0, 0.4);
322 | border-radius: 8px;
323 | border: 1px solid #ffffff;
324 | }
325 | .event-block {
326 | display: block;
327 | background-color: #c3c3c3;
328 | width: 20px;
329 | height: 100%;
330 | }
331 | .cal-event-list .event.pull-left {
332 | margin-top: 3px;
333 | }
334 | .event-important {
335 | background-color: #ad2121;
336 | }
337 | .event-info {
338 | background-color: #1e90ff;
339 | }
340 | .event-warning {
341 | background-color: #e3bc08;
342 | }
343 | .event-inverse {
344 | background-color: #1b1b1b;
345 | }
346 | .event-success {
347 | background-color: #006400;
348 | }
349 | .event-special {
350 | background-color: #800080;
351 | }
352 | .day-highlight:hover,
353 | .day-highlight {
354 | background-color: #dddddd;
355 | }
356 | .day-highlight.dh-event-important:hover,
357 | .day-highlight.dh-event-important {
358 | background-color: #fae3e3;
359 | }
360 | .day-highlight.dh-event-warning:hover,
361 | .day-highlight.dh-event-warning {
362 | background-color: #fdf1ba;
363 | }
364 | .day-highlight.dh-event-info:hover,
365 | .day-highlight.dh-event-info {
366 | background-color: #d1e8ff;
367 | }
368 | .day-highlight.dh-event-inverse:hover,
369 | .day-highlight.dh-event-inverse {
370 | background-color: #c1c1c1;
371 | }
372 | .day-highlight.dh-event-success:hover,
373 | .day-highlight.dh-event-success {
374 | background-color: #caffca;
375 | }
376 | .day-highlight.dh-event-special:hover,
377 | .day-highlight.dh-event-special {
378 | background-color: #ffe6ff;
379 | }
380 | .cal-row-head [class*="cal-cell"]:first-child,
381 | .cal-row-head [class*="cal-cell"] {
382 | font-weight: bolder;
383 | text-align: center;
384 | border: 0px solid;
385 | padding: 14px 0;
386 | z-index: 1;
387 | margin-top: -4%;
388 | }
389 | .cal-row-head [class*="cal-cell"] small {
390 | font-weight: normal;
391 | }
392 | .cal-year-box .row-fluid:hover,
393 | .cal-row-fluid:hover {
394 | background-color: #fafafa;
395 | }
396 | .cal-month-day {
397 | height: 100px;
398 | }
399 | [class*="cal-cell"]:hover {
400 | background-color: #ededed;
401 | }
402 | .cal-year-box [class*="span"],
403 | .cal-month-box [class*="cal-cell"] {
404 | min-height: 100px;
405 | border-right: 1px solid #e1e1e1;
406 | position: relative;
407 | }
408 | .cal-year-box [class*="span"] {
409 | min-height: 60px;
410 | }
411 | .cal-year-box .row-fluid [class*="span"]:last-child,
412 | .cal-month-box .cal-row-fluid [class*="cal-cell"]:last-child {
413 | border-right: 0px;
414 | }
415 | .cal-year-box .row-fluid,
416 | .cal-month-box .cal-row-fluid {
417 | border-bottom: 1px solid #e1e1e1;
418 | margin-left: 0px;
419 | margin-right: 0px;
420 | }
421 | .cal-year-box .row-fluid:last-child,
422 | .cal-month-box .cal-row-fluid:last-child {
423 | border-bottom: 0px;
424 | }
425 | .cal-month-box,
426 | .cal-year-box,
427 | .cal-week-box {
428 | border-top: 1px solid #e1e1e1;
429 | border-bottom: 1px solid #e1e1e1;
430 | border-right: 1px solid #e1e1e1;
431 | border-left: 1px solid #e1e1e1;
432 | border-radius: 2px;
433 | }
434 | span[data-cal-date] {
435 | font-size: 1.2em;
436 | font-weight: normal;
437 | opacity: 0.5;
438 | cursor: pointer;
439 | transition: all 0.3s ease-in-out;
440 | -webkit-transition: all 0.1s ease-in-out;
441 | -moz-transition: all 0.1s ease-in-out;
442 | -ms-transition: all 0.1s ease-in-out;
443 | -o-transition: all 0.1s ease-in-out;
444 | margin-top: 15px;
445 | margin-right: 15px;
446 | }
447 | span[data-cal-date]:hover {
448 | opacity: 1;
449 | }
450 | .cal-day-outmonth span[data-cal-date] {
451 | opacity: 0.1;
452 | cursor: default;
453 | }
454 | .cal-day-today {
455 | background-color: #e8fde7;
456 | }
457 | .cal-day-today span[data-cal-date] {
458 | color: darkgreen;
459 | }
460 | .cal-month-box .cal-day-today span[data-cal-date] {
461 | font-size: 1.9em;
462 | }
463 | .cal-day-holiday span[data-cal-date] {
464 | color: #800080;
465 | }
466 | .cal-day-weekend span[data-cal-date] {
467 | color: darkred;
468 | }
469 | #cal-week-box {
470 | border: 1px solid #e1e1e1;
471 | border-right: 0px;
472 | border-radius: 5px 0 0 5px;
473 | background-color: #fafafa;
474 | text-align: right;
475 | }
476 | #cal-day-tick {
477 | border: 1px solid #e1e1e1;
478 | border-top: 0px solid;
479 | border-radius: 0 0 5px 5px;
480 | background-color: #ededed;
481 | text-align: center;
482 | }
483 | #cal-slide-box {
484 | border-top: 0px solid #8c8c8c;
485 | }
486 | #cal-slide-content {
487 | padding: 20px;
488 | color: #ffffff;
489 | background-color: steelblue;
490 | }
491 | #cal-slide-tick {
492 | background-image: url("../img/tick.png?2");
493 | }
494 | #cal-slide-content a.event-item {
495 | color: #ffffff;
496 | font-weight: normal;
497 | line-height: 22px;
498 | }
499 | .events-list {
500 | max-height: 47px;
501 | padding-left: 5px;
502 | }
503 | .cal-column {
504 | border-left: 1px solid #e1e1e1;
505 | }
506 | a.cal-event-week {
507 | text-decoration: none;
508 | color: #151515;
509 | }
510 | .badge-important {
511 | background-color: #b94a48;
512 | }
513 |
--------------------------------------------------------------------------------
/index.php:
--------------------------------------------------------------------------------
1 | query($query)or die('');
69 |
70 | header("Location:$base_url");
71 |
72 |
73 | // Obtenemos el ultimo id insetado
74 | $im=$conexion->query("SELECT MAX(id) AS id FROM agenda");
75 | $row = $im->fetch_row();
76 | $id = trim($row[0]);
77 |
78 | // para generar el link del evento
79 | $link = "$base_url"."descripcion_evento.php?id=$id";
80 |
81 | // y actualizamos su link
82 | $query="UPDATE agenda SET url = '$link' WHERE id = $id";
83 |
84 | // Ejecutamos nuestra sentencia sql
85 | $conexion->query($query);
86 |
87 | // redireccionamos a nuestro calendario
88 | //header("Location:$base_url");
89 | }
90 | }
91 |
92 | ?>
93 |
94 |
95 |
96 |
97 |
98 | Calendario
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
128 |
129 |
130 |
131 |
132 |
133 |
137 |
138 |
139 |
140 |
141 |
145 |
146 |
One fine body…
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
263 |
264 |
331 |
332 |