mirror of
https://github.com/snipe/snipe-it.git
synced 2024-11-14 01:24:06 -08:00
186 lines
5.1 KiB
JavaScript
Executable file
186 lines
5.1 KiB
JavaScript
Executable file
|
|
/**
|
|
* Module containing core application logic.
|
|
* @param {jQuery} $ Insulated jQuery object
|
|
* @param {JSON} settings Insulated `window.snipeit.settings` object.
|
|
* @return {IIFE} Immediately invoked. Returns self.
|
|
*/
|
|
|
|
var lineOptions = {
|
|
|
|
legend: {
|
|
position: "bottom"
|
|
},
|
|
scales: {
|
|
yAxes: [{
|
|
ticks: {
|
|
fontColor: "rgba(0,0,0,0.5)",
|
|
fontStyle: "bold",
|
|
beginAtZero: true,
|
|
maxTicksLimit: 5,
|
|
padding: 20
|
|
},
|
|
gridLines: {
|
|
drawTicks: false,
|
|
display: false
|
|
}
|
|
}],
|
|
xAxes: [{
|
|
gridLines: {
|
|
zeroLineColor: "transparent"
|
|
},
|
|
ticks: {
|
|
padding: 20,
|
|
fontColor: "rgba(0,0,0,0.5)",
|
|
fontStyle: "bold"
|
|
}
|
|
}]
|
|
}
|
|
|
|
};
|
|
|
|
var pieOptions = {
|
|
//Boolean - Whether we should show a stroke on each segment
|
|
segmentShowStroke: true,
|
|
//String - The colour of each segment stroke
|
|
segmentStrokeColor: "#fff",
|
|
//Number - The width of each segment stroke
|
|
segmentStrokeWidth: 1,
|
|
//Number - The percentage of the chart that we cut out of the middle
|
|
percentageInnerCutout: 50, // This is 0 for Pie charts
|
|
//Number - Amount of animation steps
|
|
animationSteps: 100,
|
|
//String - Animation easing effect
|
|
animationEasing: "easeOutBounce",
|
|
//Boolean - Whether we animate the rotation of the Doughnut
|
|
animateRotate: true,
|
|
//Boolean - Whether we animate scaling the Doughnut from the centre
|
|
animateScale: false,
|
|
//Boolean - whether to make the chart responsive to window resizing
|
|
responsive: true,
|
|
// Boolean - whether to maintain the starting aspect ratio or not when responsive, if set to false, will take up entire container
|
|
maintainAspectRatio: false,
|
|
|
|
//String - A legend template
|
|
legendTemplate: "<ul class=\"<%=name.toLowerCase()%>-legend\"><% for (var i=0; i<segments.length; i++){%><li>" +
|
|
"<i class='fa fa-circle-o' style='color: <%=segments[i].fillColor%>'></i>" +
|
|
"<%if(segments[i].label){%><%=segments[i].label%><%}%> foo</li><%}%></ul>",
|
|
//String - A tooltip template
|
|
tooltipTemplate: "<%=value %> <%=label%> "
|
|
};
|
|
|
|
//-----------------
|
|
//- END PIE CHART -
|
|
//-----------------
|
|
|
|
|
|
|
|
(function($, settings) {
|
|
var Components = {};
|
|
Components.modals = {};
|
|
|
|
// confirm delete modal
|
|
Components.modals.confirmDelete = function() {
|
|
var $el = $('table');
|
|
|
|
var events = {
|
|
'click': function(evnt) {
|
|
var $context = $(this);
|
|
var $dataConfirmModal = $('#dataConfirmModal');
|
|
var href = $context.attr('href');
|
|
var message = $context.attr('data-content');
|
|
var title = $context.attr('data-title');
|
|
|
|
$('#myModalLabel').text(title);
|
|
$dataConfirmModal.find('.modal-body').text(message);
|
|
$('#deleteForm').attr('action', href);
|
|
$dataConfirmModal.modal({
|
|
show: true
|
|
});
|
|
return false;
|
|
}
|
|
};
|
|
|
|
var render = function() {
|
|
$el.on('click', '.delete-asset', events['click']);
|
|
};
|
|
|
|
return {
|
|
render: render
|
|
};
|
|
};
|
|
|
|
|
|
/**
|
|
* Application start point
|
|
* Component definition stays out of load event, execution only happens.
|
|
*/
|
|
$(function() {
|
|
new Components.modals.confirmDelete().render();
|
|
});
|
|
}(jQuery, window.snipeit.settings));
|
|
|
|
|
|
|
|
|
|
|
|
$(document).ready(function () {
|
|
|
|
/*
|
|
* Slideout help menu
|
|
*/
|
|
$('.slideout-menu-toggle').on('click', function(event){
|
|
console.log('clicked');
|
|
event.preventDefault();
|
|
// create menu variables
|
|
var slideoutMenu = $('.slideout-menu');
|
|
var slideoutMenuWidth = $('.slideout-menu').width();
|
|
|
|
// toggle open class
|
|
slideoutMenu.toggleClass("open");
|
|
|
|
// slide menu
|
|
if (slideoutMenu.hasClass("open")) {
|
|
slideoutMenu.show();
|
|
slideoutMenu.animate({
|
|
right: "0px"
|
|
});
|
|
} else {
|
|
slideoutMenu.animate({
|
|
right: -slideoutMenuWidth
|
|
}, "-350px");
|
|
slideoutMenu.fadeOut();
|
|
}
|
|
});
|
|
|
|
/*
|
|
* iCheck checkbox plugin
|
|
*/
|
|
|
|
$('input[type="checkbox"].minimal, input[type="radio"].minimal').iCheck({
|
|
checkboxClass: 'icheckbox_minimal-blue',
|
|
radioClass: 'iradio_minimal-blue'
|
|
});
|
|
|
|
|
|
/*
|
|
* Select2
|
|
*/
|
|
|
|
var iOS = /iPhone|iPad|iPod/.test(navigator.userAgent) && !window.MSStream;
|
|
if(!iOS)
|
|
{
|
|
// Vue collision: Avoid overriding a vue select2 instance
|
|
// by checking to see if the item has already been select2'd.
|
|
$('select.select2:not(".select2-hidden-accessible")').each(function (i,obj) {
|
|
{
|
|
$(obj).select2();
|
|
}
|
|
});
|
|
}
|
|
$('.datepicker').datepicker();
|
|
|
|
|
|
|
|
});
|