fluffy

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 5  →  ?path2? @ 6
/www/index.html
@@ -11,20 +11,22 @@
<link href='/node_modules/bootstrap/dist/css/bootstrap.min.css' rel='stylesheet' type='text/css'>
<link href='/node_modules/bootstrap/dist/css/bootstrap-theme.min.css' rel='stylesheet' type='text/css'>
<!-- DropZone -->
<link href='/node_modules/dropzone/dist/dropzone.css' rel='stylesheet' type='text/css'>
<!-- FileInput -->
<link href="/node_modules/bootstrap-fileinput/css/fileinput.min.css" media="all" rel="stylesheet" type="text/css" />
<!-- Bootstrap Select -->
<link href="/node_modules/bootstrap-select/dist/css/bootstrap-select.min.css" media="all" rel="stylesheet" type="text/css" />
<!-- Fluffy style -->
<!-- <link href='https://fonts.googleapis.com/css?family=Oswald&subset=latin,latin-ext' rel='stylesheet' type='text/css'> -->
<link href='/css/style.css' rel='stylesheet' type='text/css'>
 
</head>
<body>
<div id='cloud'></div>
<!-- Add button -->
<div class="add" data-toggle="modal" data-target="#myModal"></div>
<!-- Modal -->
<div id="myModal" class="modal fade" role="dialog">
<!-- Add and remove buttons -->
<div class="add" data-toggle="modal" data-target="#addModal">+</div>
<div class="remove" data-toggle="modal" data-target="#removeModal">-</div>
<!-- Add Modal -->
<div id="addModal" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
@@ -35,7 +37,7 @@
<div class="modal-body">
<div class="row">
<div class="col-md-6 col-sm-6 col-xs-12">
<form id="serve" data-toggle="validator" role="form" enctype="multipart/form-data" method="POST">
<form id="addService" data-toggle="validator" role="form" enctype="multipart/form-data" method="POST" action="/add">
<div class="form-group ">
<label class="control-label requiredField" for="service-url">
Service URL
@@ -58,14 +60,10 @@
<label class="control-label requiredField" for="dropzone">
Service Icon
</label>
<div id="service-icon" class="service-icon"></div>
<div id="dropzone-template">
<div class="dz-preview dz-file-preview">
<div class="dz-details">
<img data-dz-thumbnail />
</div>
</div>
<div class="file-loading">
<input id="service-icon" name="service-icon" type="file" required>
</div>
<div id="service-icon-errors" class="center-block" style="display:none"></div>
<div class="help-block with-errors">
An icon that should be used to represent the service.
</div>
@@ -80,13 +78,43 @@
</div>
</div>
</div>
<!-- Remove Modal -->
<div id="removeModal" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Remove Services</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-6 col-sm-6 col-xs-12">
<form id="removeService" data-toggle="validator" role="form" enctype="multipart/form-data" method="POST" action="/remove">
<div class="form-group">
<select name="remove-services" id="remove-services" class="selectpicker" multiple="multiple">
</select>
</div>
<div class="form-group">
<button id="remove" type="submit" class="btn btn-primary">Remove</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
 
<!-- Bootstrap JavaScript -->
<script src='/node_modules/bootstrap/dist/js/bootstrap.min.js'></script>
<!-- Bootstrap Validator -->
<script src='/node_modules/bootstrap-validator/dist/validator.min.js'></script>
<!-- DropZone -->
<script src='/node_modules/dropzone/dist/min/dropzone.min.js'></script>
<!-- FileInput -->
<script src='/node_modules/bootstrap-fileinput/js/fileinput.min.js'></script>
<!-- Bootstrap Select -->
<script src='/node_modules/bootstrap-select/js/bootstrap-select.js'></script>
<script>
$(document).ready(function() {
$.getJSON('/data/data.json', (services) => {
@@ -123,38 +151,32 @@
tooltipDiffY: 16
});
// Set up dropzone for icon upload.
$('#service-icon').dropzone({
url: '/',
autoProcessQueue: true,
uploadMultiple: false,
maxFiles: 1,
acceptedFiles: 'image/*',
resizeMethod: 'contain',
thumbnailWidth: 64,
thumbnailHeight: 64,
resizeWidth: 64,
resizeHeight: 64,
paramName: "image",
previewTemplate: document.querySelector('#dropzone-template').innerHTML,
renameFile: function(file) {
// set the filename to the name of the service
file.name = $('#service-name').val();
},
init: function() {
// only allow a single icon file to be uploaded
this.on("maxfilesexceeded", function(file) {
this.removeAllFiles();
this.addFile(file);
});
// Populate the dropbox for removing services.
services.forEach((service) => {
if ($("#remove-services option[value='" + service.tooltip + "']").length === 0) {
$("#remove-services").append('<option value="' + service.tooltip + '">' + service.tooltip + '</option>');
}
});
$('#remove-services').selectpicker('refresh');
// Initialize file input for adding service icons.
$('#service-icon').fileinput({
previewFileType: [ "image" ],
allowedFileTypes: [ "image" ],
allowedFileExtensions: [ "png" ],
maxFilesNum: 1
});
// Validation process to ensure that all parameters are passed.
$('#form').validator().on('submit', function (e) {
$('#addService').validator().on('submit', function (e) {
if (e.isDefaultPrevented())
return;
})
});
$('#removeService').validator().on('submit', function (e) {
if (e.isDefaultPrevented())
return;
});
});
});
</script>