<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<!------ Include the above in your HEAD tag ---------->
<div class="container" style="margin-top:20px;">
<div class="row">
<div class="col-xs-6">
<h3 class="text-center">La Búsqueda</h3>
<div class="well" style="max-height: 300px;overflow: auto;">
<ul class="list-group checked-list-box">
<li class="list-group-item">Leerla hasta entenderla</li>
<li class="list-group-item" data-checked="true">Leer la ubicación del usuario</li>
<li class="list-group-item">Investigar hasta entender la intención</li>
</ul>
</div>
</div>
<div class="col-xs-6">
<h3 class="text-center">SCRB</h3>
<div class="well" style="max-height: 300px;overflow: auto;">
<ul id="check-list-box" class="list-group checked-list-box">
<li class="list-group-item" data-color="warning">Buscar los links</li>
<li class="list-group-item" data-color="warning">Comprobar que la información es correcta (dirección, teléfono...)</li>
<li class="list-group-item" data-color="warning">¿Echas en falta algo?</li>
</ul>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-6">
<h3 class="text-center">Funcionalidad de la página</h3>
<div class="well" style="max-height: 300px;overflow: auto;">
<ul class="list-group checked-list-box">
<li class="list-group-item" data-color="success">Los links funciona</li>
<li class="list-group-item" data-color="success">Se puede jugar al juego desde el móvil</li>
<li class="list-group-item" data-color="success">Se puede descargar el archivo prometido</li>
<li class="list-group-item" data-color="success">La aplicación (traductor, calculadora, conversor...) funciona</li>
<li class="list-group-item" data-color="success">El vídeo se puede ver y está en Español o Inglés</li>
</ul>
</div>
</div>
<div class="col-xs-6">
<h3 class="text-center">Datos de la página</h3>
<div class="well" style="max-height: 300px;overflow: auto;">
<ul class="list-group checked-list-box">
<li class="list-group-item" data-color="info">De qué fecha es la información ¿Se ha quedado anticuada?</li>
<li class="list-group-item" data-color="info">¿El autor sabe de lo que habla?</li>
<li class="list-group-item" data-color="info">¿El contenido es copiado?</li>
</ul>
</div>
</div>
<div class="row">
<div class="col-xs-6">
<h3 class="text-center">Antes de enviar la Tarea</h3>
<div class="well" style="max-height: 300px;overflow: auto;">
<ul class="list-group checked-list-box">
<li class="list-group-item" data-color="danger">Volver a leer la query, puede que se te haya olvidado lo que decía EXACTAMENTE</li>
<li class="list-group-item" data-color="danger">Revisar los duplicados</li>
<li class="list-group-item" data-color="danger">Echar un último vistazo a la tarea</li>
</ul>
</div>
</div>
</div>
</div>
/* CSS REQUIRED */
.state-icon {
left: -5px;
}
.list-group-item-primary {
color: rgb(255, 255, 255);
background-color: rgb(66, 139, 202);
}
/* DEMO ONLY - REMOVES UNWANTED MARGIN */
.well .list-group {
margin-bottom: 0px;
}
$(function () {
$('.list-group.checked-list-box .list-group-item').each(function () {
// Settings
var $widget = $(this),
$checkbox = $('<input type="checkbox" class="hidden" />'),
color = ($widget.data('color') ? $widget.data('color') : "primary"),
style = ($widget.data('style') == "button" ? "btn-" : "list-group-item-"),
settings = {
on: {
icon: 'glyphicon glyphicon-check'
},
off: {
icon: 'glyphicon glyphicon-unchecked'
}
};
$widget.css('cursor', 'pointer')
$widget.append($checkbox);
// Event Handlers
$widget.on('click', function () {
$checkbox.prop('checked', !$checkbox.is(':checked'));
$checkbox.triggerHandler('change');
updateDisplay();
});
$checkbox.on('change', function () {
updateDisplay();
});
// Actions
function updateDisplay() {
var isChecked = $checkbox.is(':checked');
// Set the button's state
$widget.data('state', (isChecked) ? "on" : "off");
// Set the button's icon
$widget.find('.state-icon')
.removeClass()
.addClass('state-icon ' + settings[$widget.data('state')].icon);
// Update the button's color
if (isChecked) {
$widget.addClass(style + color + ' active');
} else {
$widget.removeClass(style + color + ' active');
}
}
// Initialization
function init() {
if ($widget.data('checked') == true) {
$checkbox.prop('checked', !$checkbox.is(':checked'));
}
updateDisplay();
// Inject the icon if applicable
if ($widget.find('.state-icon').length == 0) {
$widget.prepend('<span class="state-icon ' + settings[$widget.data('state')].icon + '"></span>');
}
}
init();
});
$('#get-checked-data').on('click', function(event) {
event.preventDefault();
var checkedItems = {}, counter = 0;
$("#check-list-box li.active").each(function(idx, li) {
checkedItems[counter] = $(li).text();
counter++;
});
$('#display-json').html(JSON.stringify(checkedItems, null, '\t'));
});
});