|
|
@ -1,72 +1,68 @@ |
|
|
|
// jQuery & jQuery UI
|
|
|
|
import $ from 'jquery'; |
|
|
|
window.$ = window.jQuery = $; |
|
|
|
import 'jquery-ui/ui/widgets/autocomplete.js'; |
|
|
|
import 'jquery-ui/ui/widgets/sortable.js'; |
|
|
|
import 'select2/dist/js/select2.js'; |
|
|
|
|
|
|
|
// Huebee
|
|
|
|
import Huebee from 'huebee'; |
|
|
|
window.Huebee = Huebee; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$.when( $.ready ).then(function() { |
|
|
|
|
|
|
|
if($('.message-container').length) { |
|
|
|
setTimeout( |
|
|
|
function() |
|
|
|
{ |
|
|
|
$('.message-container').fadeOut(); |
|
|
|
}, 3500); |
|
|
|
} |
|
|
|
|
|
|
|
if($('.livestats-container').length) { |
|
|
|
$('.livestats-container').each(function(index){ |
|
|
|
var id = $(this).data('id'); |
|
|
|
var dataonly = $(this).data('dataonly'); |
|
|
|
var increaseby = (dataonly == 1) ? 20000 : 1000; |
|
|
|
var container = $(this); |
|
|
|
var max_timer = 30000; |
|
|
|
var timer = 5000; |
|
|
|
(function worker() { |
|
|
|
$.ajax({ |
|
|
|
url: '/get_stats/'+id, |
|
|
|
dataType: 'json', |
|
|
|
success: function(data) { |
|
|
|
container.html(data.html); |
|
|
|
if(data.status == 'active') timer = increaseby; |
|
|
|
else { |
|
|
|
if(timer < max_timer) timer += 2000; |
|
|
|
} |
|
|
|
}, |
|
|
|
complete: function() { |
|
|
|
// Schedule the next request when the current one's complete
|
|
|
|
setTimeout(worker, timer); |
|
|
|
} |
|
|
|
}); |
|
|
|
})(); |
|
|
|
}); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
function readURL(input) { |
|
|
|
/** |
|
|
|
* First we will load all of this project's JavaScript dependencies which |
|
|
|
* includes Vue and other libraries. It is a great starting point when |
|
|
|
* building robust, powerful web applications using Vue and Laravel. |
|
|
|
*/ |
|
|
|
|
|
|
|
if (input.files && input.files[0]) { |
|
|
|
var reader = new FileReader(); |
|
|
|
require('./bootstrap') |
|
|
|
|
|
|
|
reader.onload = function(e) { |
|
|
|
$('#appimage img').attr('src', e.target.result); |
|
|
|
}; |
|
|
|
|
|
|
|
reader.readAsDataURL(input.files[0]); |
|
|
|
} |
|
|
|
// jQuery & jQuery UI
|
|
|
|
import 'jquery-ui/ui/widgets/autocomplete.js' |
|
|
|
import 'jquery-ui/ui/widgets/sortable.js' |
|
|
|
import 'select2/dist/js/select2.js' |
|
|
|
|
|
|
|
$.when($.ready).then(function () { |
|
|
|
if ($('.message-container').length) { |
|
|
|
setTimeout( |
|
|
|
function () { |
|
|
|
$('.message-container').fadeOut() |
|
|
|
}, 3500) |
|
|
|
} |
|
|
|
|
|
|
|
if ($('.livestats-container').length) { |
|
|
|
$('.livestats-container').each(function (index) { |
|
|
|
var id = $(this).data('id') |
|
|
|
var dataonly = $(this).data('dataonly') |
|
|
|
var increaseby = (dataonly === 1) ? 20000 : 1000 |
|
|
|
var container = $(this) |
|
|
|
var maxTimer = 30000 |
|
|
|
var timer = 5000; |
|
|
|
(function worker () { |
|
|
|
$.ajax({ |
|
|
|
url: '/get_stats/' + id, |
|
|
|
dataType: 'json', |
|
|
|
success: function (data) { |
|
|
|
container.html(data.html) |
|
|
|
if (data.status === 'active') timer = increaseby |
|
|
|
else { |
|
|
|
if (timer < maxTimer) timer += 2000 |
|
|
|
} |
|
|
|
}, |
|
|
|
complete: function () { |
|
|
|
// Schedule the next request when the current one's complete
|
|
|
|
setTimeout(worker, timer) |
|
|
|
} |
|
|
|
}) |
|
|
|
})() |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
function readURL (input) { |
|
|
|
if (input.files && input.files[0]) { |
|
|
|
var reader = new FileReader() |
|
|
|
|
|
|
|
reader.onload = function (e) { |
|
|
|
$('#appimage img').attr('src', e.target.result) |
|
|
|
} |
|
|
|
|
|
|
|
reader.readAsDataURL(input.files[0]) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
$('#upload').change(function() { |
|
|
|
readURL(this); |
|
|
|
}); |
|
|
|
/*$(".droppable").droppable({ |
|
|
|
$('#upload').change(function () { |
|
|
|
readURL(this) |
|
|
|
}) |
|
|
|
/* $(".droppable").droppable({ |
|
|
|
tolerance: "intersect", |
|
|
|
drop: function( event, ui ) { |
|
|
|
var tag = $( this ).data('id'); |
|
|
@ -81,82 +77,103 @@ $.when( $.ready ).then(function() { |
|
|
|
}); |
|
|
|
|
|
|
|
} |
|
|
|
});*/ |
|
|
|
|
|
|
|
$( '#sortable' ).sortable({ |
|
|
|
stop: function (event, ui) { |
|
|
|
var idsInOrder = $('#sortable').sortable('toArray', { |
|
|
|
attribute: 'data-id' |
|
|
|
}); |
|
|
|
$.post( |
|
|
|
'/order', |
|
|
|
{ order:idsInOrder } |
|
|
|
); |
|
|
|
} |
|
|
|
}); */ |
|
|
|
|
|
|
|
$('#sortable').sortable({ |
|
|
|
stop: function (event, ui) { |
|
|
|
var idsInOrder = $('#sortable').sortable('toArray', { |
|
|
|
attribute: 'data-id' |
|
|
|
}) |
|
|
|
$.post( |
|
|
|
'/order', |
|
|
|
{ order: idsInOrder } |
|
|
|
) |
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
$('#sortable').sortable('disable'); |
|
|
|
|
|
|
|
|
|
|
|
$('#app').on('click', '#config-button', function(e) { |
|
|
|
e.preventDefault(); |
|
|
|
var app = $('#app'); |
|
|
|
var active = (app.hasClass('header')); |
|
|
|
app.toggleClass('header'); |
|
|
|
if(active) { |
|
|
|
$('.add-item').hide(); |
|
|
|
$('.item-edit').hide(); |
|
|
|
$('#app').removeClass('sidebar'); |
|
|
|
$('#sortable').sortable('disable'); |
|
|
|
} else { |
|
|
|
$('#sortable').sortable('enable'); |
|
|
|
setTimeout(function() { |
|
|
|
$('.add-item').fadeIn(); |
|
|
|
$('.item-edit').fadeIn(); |
|
|
|
}, 350); |
|
|
|
}) |
|
|
|
$('#sortable').sortable('disable') |
|
|
|
|
|
|
|
$('#app').on('click', '#config-button', function (e) { |
|
|
|
e.preventDefault() |
|
|
|
var app = $('#app') |
|
|
|
var active = (app.hasClass('header')) |
|
|
|
app.toggleClass('header') |
|
|
|
if (active) { |
|
|
|
$('.add-item').hide() |
|
|
|
$('.item-edit').hide() |
|
|
|
$('#app').removeClass('sidebar') |
|
|
|
$('#sortable').sortable('disable') |
|
|
|
} else { |
|
|
|
$('#sortable').sortable('enable') |
|
|
|
setTimeout(function () { |
|
|
|
$('.add-item').fadeIn() |
|
|
|
$('.item-edit').fadeIn() |
|
|
|
}, 350) |
|
|
|
} |
|
|
|
}).on('click', '#add-item, #pin-item', function (e) { |
|
|
|
e.preventDefault() |
|
|
|
var app = $('#app') |
|
|
|
var active = (app.hasClass('sidebar')) |
|
|
|
app.toggleClass('sidebar') |
|
|
|
}).on('click', '.close-sidenav', function (e) { |
|
|
|
e.preventDefault() |
|
|
|
var app = $('#app') |
|
|
|
app.removeClass('sidebar') |
|
|
|
}).on('click', '#test_config', function (e) { |
|
|
|
e.preventDefault() |
|
|
|
var apiUrl = $('#create input[name=url]').val() |
|
|
|
|
|
|
|
var overrideUrl = $('#create input[name="config[override_url]"').val() |
|
|
|
if (overrideUrl.length && overrideUrl !== '') { |
|
|
|
apiUrl = overrideUrl |
|
|
|
} |
|
|
|
|
|
|
|
var data = {} |
|
|
|
data['url'] = apiUrl |
|
|
|
$('input.config-item').each(function (index) { |
|
|
|
var config = $(this).data('config') |
|
|
|
data[config] = $(this).val() |
|
|
|
}) |
|
|
|
|
|
|
|
$.post('/test_config', { data: data }, function (data) { |
|
|
|
alert(data) |
|
|
|
}) |
|
|
|
}) |
|
|
|
$('#pinlist').on('click', 'a', function (e) { |
|
|
|
e.preventDefault() |
|
|
|
var current = $(this) |
|
|
|
var id = current.data('id') |
|
|
|
$.get('items/pintoggle/' + id + '/true', function (data) { |
|
|
|
var inner = $(data).filter('#sortable').html() |
|
|
|
$('#sortable').html(inner) |
|
|
|
current.toggleClass('active') |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
var elem = $('.color-picker')[0] |
|
|
|
var hueb = new Huebee(elem, { |
|
|
|
// options
|
|
|
|
}) |
|
|
|
|
|
|
|
$('#appname').autocomplete({ |
|
|
|
source: availableApps, |
|
|
|
select: function (event, ui) { |
|
|
|
$.post('/appload', { app: ui.item.value }, function (data) { |
|
|
|
$('#appimage').html("<img src='/storage/" + data.icon + "' /><input type='hidden' name='icon' value='" + data.icon + "' />") |
|
|
|
$('input[name=colour]').val(data.colour) |
|
|
|
hueb.setColor(data.colour) |
|
|
|
$('input[name=pinned]').prop('checked', true) |
|
|
|
if (data.config !== null) { |
|
|
|
$.get('/view/' + data.config, function (getdata) { |
|
|
|
$('#sapconfig').html(getdata).show() |
|
|
|
}) |
|
|
|
} |
|
|
|
}).on('click', '#add-item, #pin-item', function(e) { |
|
|
|
e.preventDefault(); |
|
|
|
var app = $('#app'); |
|
|
|
var active = (app.hasClass('sidebar')); |
|
|
|
app.toggleClass('sidebar'); |
|
|
|
|
|
|
|
}).on('click', '.close-sidenav', function(e) { |
|
|
|
e.preventDefault(); |
|
|
|
var app = $('#app'); |
|
|
|
app.removeClass('sidebar'); |
|
|
|
|
|
|
|
}).on('click', '#test_config', function(e) { |
|
|
|
e.preventDefault(); |
|
|
|
var apiurl = $('#create input[name=url]').val(); |
|
|
|
|
|
|
|
var override_url = $('#create input[name="config[override_url]"]').val(); |
|
|
|
if(override_url.length && override_url != '') { |
|
|
|
apiurl = override_url; |
|
|
|
} |
|
|
|
}, 'json') |
|
|
|
} |
|
|
|
}) |
|
|
|
|
|
|
|
var data = {}; |
|
|
|
data['url'] = apiurl; |
|
|
|
$('input.config-item').each(function(index){ |
|
|
|
var config = $(this).data('config'); |
|
|
|
data[config] = $(this).val(); |
|
|
|
}); |
|
|
|
|
|
|
|
$.post('/test_config', { data: data }, function(data) { |
|
|
|
alert(data); |
|
|
|
}); |
|
|
|
|
|
|
|
}); |
|
|
|
$('#pinlist').on('click', 'a', function(e) { |
|
|
|
e.preventDefault(); |
|
|
|
var current = $(this); |
|
|
|
var id = current.data('id'); |
|
|
|
$.get('items/pintoggle/'+id+'/true', function(data) { |
|
|
|
var inner = $(data).filter('#sortable').html(); |
|
|
|
$('#sortable').html(inner); |
|
|
|
current.toggleClass('active'); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
}); |
|
|
|
$('.tags').select2() |
|
|
|
// $('.tags').select2({
|
|
|
|
// theme: 'bootstrap'
|
|
|
|
// })
|
|
|
|
}) |
|
|
|