Browse Source

Stage two

pull/210/head
Birger J. Nordølum 7 years ago
parent
commit
b2e48949cc
No known key found for this signature in database GPG Key ID: 1E2DC712B50089CC
  1. 5
      package-lock.json
  2. 8
      package.json
  3. 27662
      public/js/app.js
  4. 2
      public/mix-manifest.json
  5. 187
      resources/assets/js/app.js
  6. 1
      resources/assets/js/bootstrap.js
  7. 3
      resources/assets/sass/app.scss
  8. 9
      resources/views/app.blade.php
  9. 5
      resources/views/items/create.blade.php
  10. 5
      resources/views/items/edit.blade.php
  11. 37
      resources/views/items/scripts.blade.php
  12. 10
      webpack.mix.js

5
package-lock.json

@ -11773,6 +11773,11 @@
"jquery-mousewheel": "~3.1.13" "jquery-mousewheel": "~3.1.13"
} }
}, },
"select2-bootstrap-theme": {
"version": "0.1.0-beta.10",
"resolved": "https://registry.npmjs.org/select2-bootstrap-theme/-/select2-bootstrap-theme-0.1.0-beta.10.tgz",
"integrity": "sha1-uUJuz8A79KI152oTI3dXQxBGmsA="
},
"selfsigned": { "selfsigned": {
"version": "1.10.3", "version": "1.10.3",
"resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.3.tgz", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.3.tgz",

8
package.json

@ -22,6 +22,12 @@
"dependencies": { "dependencies": {
"huebee": "^2.0.0", "huebee": "^2.0.0",
"normalize.css": "^3.0.3", "normalize.css": "^3.0.3",
"select2": "^4.0.6-rc.1" "select2": "^4.0.6-rc.1",
"select2-bootstrap-theme": "0.1.0-beta.10"
},
"standard": {
"globals": [
"$"
]
} }
} }

27662
public/js/app.js

File diff suppressed because it is too large

2
public/mix-manifest.json

@ -1,5 +1,5 @@
{ {
"/js/app.js": "/js/app.js?id=c549dcaca8cb144629a6", "/js/app.js": "/js/app.js?id=8de65b5d43dafe542bef",
"/css/app.css": "/css/app.css?id=f49e3b104353d57ec9ed", "/css/app.css": "/css/app.css?id=f49e3b104353d57ec9ed",
"/js/vendor.js": "/js/vendor.js?id=ff934af2c14acea01420", "/js/vendor.js": "/js/vendor.js?id=ff934af2c14acea01420",
"/js/manifest.js": "/js/manifest.js?id=360cf4a2ac3af2c3da19" "/js/manifest.js": "/js/manifest.js?id=360cf4a2ac3af2c3da19"

187
resources/assets/js/app.js

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

1
resources/assets/js/bootstrap.js

@ -1,4 +1,3 @@
window._ = require('lodash'); window._ = require('lodash');
/** /**

3
resources/assets/sass/app.scss

@ -23,6 +23,7 @@
@import "select2"; @import "select2";
// @import "~select2/dist/css/select2.css"; // @import "~select2/dist/css/select2.css";
// @import "~select2-bootstrap-theme/dist/select2-bootstrap.css";
// jQuery UU // jQuery UU
// @import '~jquery-ui/themes/base/all.css'; // @import '~jquery-ui/themes/base/all.css';
@ -33,4 +34,4 @@
@import '~jquery-ui/themes/base/theme.css'; @import '~jquery-ui/themes/base/theme.css';
// Override // Override
@import 'override'; // @import 'override';

9
resources/views/app.blade.php

@ -25,6 +25,7 @@
<meta name="theme-color" content="#ffffff"> <meta name="theme-color" content="#ffffff">
<meta name="mobile-web-app-capable" content="yes"> <meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-capable" content="yes">
<meta name="csrf-token" content="{{ csrf_token() }}">
<link rel="stylesheet" href="{{ mix('css/app.css') }}" type="text/css" /> <link rel="stylesheet" href="{{ mix('css/app.css') }}" type="text/css" />
</head> </head>
@ -87,15 +88,11 @@
</div> </div>
</div> </div>
{{-- <script src="//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> --}}
{{-- <script>!window.jQuery && document.write('<script src="/js/jquery-3.3.1.min.js"><\/script>')</script> --}}
{{-- <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script> --}}
{{-- <script src="/js/app.js?v=2"></script> --}}
{{-- <script src="{{ mix('js/app.js') }}"></script> --}}
<script src="{{ mix('js/manifest.js') }}"></script> <script src="{{ mix('js/manifest.js') }}"></script>
<script src="{{ mix('js/vendor.js') }}"></script> <script src="{{ mix('js/vendor.js') }}"></script>
<script src="{{ mix('js/app.js') }}"></script> <script src="{{ mix('js/app.js') }}"></script>
@yield('scripts')
@stack('scripts')
</body> </body>
</html> </html>

5
resources/views/items/create.blade.php

@ -7,6 +7,7 @@
{!! Form::close() !!} {!! Form::close() !!}
@endsection @endsection
@section('scripts')
@push('scripts')
@include('items.scripts') @include('items.scripts')
@endsection @endpush

5
resources/views/items/edit.blade.php

@ -7,6 +7,7 @@
{!! Form::close() !!} {!! Form::close() !!}
@endsection @endsection
@section('scripts')
@push('scripts')
@include('items.scripts') @include('items.scripts')
@endsection @endpush

37
resources/views/items/scripts.blade.php

@ -1,38 +1,3 @@
{{-- <script src="{{ mix('js/app.js') }}"></script> --}}
<script> <script>
$( function() { var availableApps = @json($supported = App\Item::supportedOptions())
var elem = $('.color-picker')[0];
var hueb = new Huebee( elem, {
// options
});
var availableTags = [
<?php
$supported = App\Item::supportedOptions();
foreach($supported as $sapp) {
echo '"'.$sapp.'",';
}
?>
];
$( "#appname" ).autocomplete({
source: availableTags,
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();
});
}
}, "json");
}
});
$('.tags').select2();
});
</script> </script>

10
webpack.mix.js

@ -1,4 +1,4 @@
let mix = require('laravel-mix'); let mix = require('laravel-mix')
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -11,7 +11,11 @@ let mix = require('laravel-mix');
| |
*/ */
mix.extract([ mix
.autoload({
huebee: ['Huebee'] // only one
})
.extract([
'huebee', 'huebee',
'jquery', 'jquery',
'jquery-ui', 'jquery-ui',
@ -19,4 +23,4 @@ mix.extract([
]) ])
.js('resources/assets/js/app.js', 'public/js') .js('resources/assets/js/app.js', 'public/js')
.sass('resources/assets/sass/app.scss', 'public/css') .sass('resources/assets/sass/app.scss', 'public/css')
.version(); .version()

Loading…
Cancel
Save