mirror of https://github.com/CIRCL/AIL-framework
				
				
				
			
		
			
				
	
	
		
			361 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			HTML
		
	
	
			
		
		
	
	
			361 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			HTML
		
	
	
<!DOCTYPE html>
 | 
						|
<html>
 | 
						|
 | 
						|
<head>
 | 
						|
	<title>AIL-Framework</title>
 | 
						|
	<link rel="icon" href="{{ url_for('static', filename='image/ail-icon.png')}}">
 | 
						|
 | 
						|
	<!-- Core CSS -->
 | 
						|
	<link href="{{ url_for('static', filename='css/bootstrap4.min.css') }}" rel="stylesheet">
 | 
						|
	<link href="{{ url_for('static', filename='css/font-awesome.min.css') }}" rel="stylesheet">
 | 
						|
	<link href="{{ url_for('static', filename='css/tags.css') }}" rel="stylesheet" type="text/css" />
 | 
						|
 | 
						|
	<!-- JS -->
 | 
						|
	<script src="{{ url_for('static', filename='js/jquery.js')}}"></script>
 | 
						|
	<script src="{{ url_for('static', filename='js/popper.min.js')}}"></script>
 | 
						|
	<script src="{{ url_for('static', filename='js/bootstrap4.min.js')}}"></script>
 | 
						|
	<script src="{{ url_for('static', filename='js/tags.js') }}"></script>
 | 
						|
 | 
						|
</head>
 | 
						|
<body>
 | 
						|
 | 
						|
	{% if UUID %}
 | 
						|
		<div id="modalsubmit" class="modal fade" role="dialog">
 | 
						|
			<div class="modal-dialog modal-lg">
 | 
						|
 | 
						|
				<div id="mymodalcontent" class="modal-content">
 | 
						|
					<div class="modal-header" style="border-bottom: 4px solid #cccccc; background-color: #cccccc; color: #ffffff;">
 | 
						|
						<p class="heading"><h1>Submitting Items ...</h1></p>
 | 
						|
 | 
						|
					</div>
 | 
						|
 | 
						|
					<div class="modal-body">
 | 
						|
 | 
						|
						<div class="progress mt-1" id="pr" hidden>
 | 
						|
							<div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar"
 | 
						|
							aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width:0%" id="progress-bar">
 | 
						|
								0%
 | 
						|
							</div>
 | 
						|
						</div>
 | 
						|
						<span class="btn btn-info mt-2" id="files_submitted_btn" hidden>
 | 
						|
							Files Submitted <span class="badge badge-light" id="files_submitted">1 / 1</span>
 | 
						|
						</span>
 | 
						|
 | 
						|
						<button class="btn btn-lg btn-warning"  style="margin: auto;" id="loading_button">
 | 
						|
							<i class="fas fa-sync-alt fa-spin"></i>
 | 
						|
							    Loading . . .
 | 
						|
						</button>
 | 
						|
 | 
						|
						<br></br>
 | 
						|
 | 
						|
						<div class="card border-danger" id="panel_error" hidden>
 | 
						|
							<div class="card-header bg-danger text-white">ERROR</div>
 | 
						|
							<div class="card-body">
 | 
						|
								<p id="error_message">error</p>
 | 
						|
							</div>
 | 
						|
						</div>
 | 
						|
 | 
						|
						<div class="list-group" id="submit_pastes" hidden>
 | 
						|
							<li class="list-group-item bg-dark text-white">Submitted Items</li>
 | 
						|
						</div>
 | 
						|
 | 
						|
					</div>
 | 
						|
 | 
						|
					<div class="modal-footer">
 | 
						|
						<a class="btn btn-light text-secondary" href="{{ url_for('tags_ui.get_obj_by_tags') }}?object_type=item<ags=infoleak:submission="manual"" target="_blank" id="submit_result" hidden>
 | 
						|
							<i class="fas fa-paper-plane fa-2x"></i>
 | 
						|
							<span class="label-icon">Submitted Items </span>
 | 
						|
						</a>
 | 
						|
						<button class="btn btn-success btn-tags ml-auto" data-dismiss="modal" id="success_submit_button" hidden>
 | 
						|
							<span class="label-icon">Success </span>
 | 
						|
							<i class="fas fa-check"></i>
 | 
						|
						</button>
 | 
						|
						<button class="btn btn-danger btn-tags ml-auto" data-dismiss="modal" id="error_submit_button" hidden>
 | 
						|
							<span class="label-icon">ERROR </span>
 | 
						|
							<i class="fas fa-times"></i>
 | 
						|
						</button>
 | 
						|
 | 
						|
					</div>
 | 
						|
				</div>
 | 
						|
			</div>
 | 
						|
		</div>
 | 
						|
	{% endif %}
 | 
						|
 | 
						|
 | 
						|
	{% include 'nav_bar.html' %}
 | 
						|
 | 
						|
	<div class="container-fluid">
 | 
						|
		<div class="row">
 | 
						|
 | 
						|
			{% include 'item_submit/menu_sidebar.html' %}
 | 
						|
 | 
						|
			<div class="col-12 col-lg-10" id="core_content">
 | 
						|
 | 
						|
				<form action="{{ url_for('PasteSubmit.submit') }}" id="pasteSubmitForm" method="post" enctype=multipart/form-data onsubmit="submitPaste()">
 | 
						|
 | 
						|
					<input type="hidden" id="tags_taxonomies" name="tags_taxonomies" value="test">
 | 
						|
					<input type="hidden" id="tags_galaxies" name="tags_galaxies" value="test">
 | 
						|
 | 
						|
					<div class="row">
 | 
						|
						<div class="col-xl-5">
 | 
						|
 | 
						|
							<div class="card mt-2">
 | 
						|
								<div class="card-header text-white" style="background-color: #337ab7;">
 | 
						|
									Files submission
 | 
						|
								</div>
 | 
						|
								<div class="card-body">
 | 
						|
 | 
						|
									<div class="form-group">
 | 
						|
										<label for="file">Submit a file</label>
 | 
						|
										<input type="file" class="form-control-file" id="file" name="file">
 | 
						|
									</div>
 | 
						|
 | 
						|
									<div class="form-group">
 | 
						|
										<label for="paste_name">Archive Password</label>
 | 
						|
										<input type="password" class="form-control" id="password" name="password" placeholder="Optionnal">
 | 
						|
									</div>
 | 
						|
								</div>
 | 
						|
							</div>
 | 
						|
 | 
						|
						</div>
 | 
						|
						<div class="col-xl-7">
 | 
						|
 | 
						|
							<div class="card mt-2">
 | 
						|
								<div class="card-header text-white" style="background-color: #337ab7;">
 | 
						|
									Tags :
 | 
						|
								</div>
 | 
						|
								<div class="card-body">
 | 
						|
 | 
						|
									<div class="input-group" >
 | 
						|
										<input id="ltags" type="text" class="form-control" autocomplete="off">
 | 
						|
									</div>
 | 
						|
 | 
						|
									<div class="dropdown">
 | 
						|
										<button type="button" class="btn btn-info dropdown-toggle mt-1 mb-3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" id="dropdown-taxonomie">
 | 
						|
										   Taxonomie Selected
 | 
						|
										</button>
 | 
						|
										<div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdown-taxonomie"> <!-- TODO: make dropdown-scrollable -->
 | 
						|
											<h6 class="dropdown-header">Taxonomie Tags</h6>
 | 
						|
										  <button class="dropdown-item" type="button" id="all-tags-taxonomies">All Tags <i class="fas fa-tags"></i></button>
 | 
						|
											<div class="dropdown-divider"></div>
 | 
						|
											{% for taxo in active_taxonomies %}
 | 
						|
													<button class="dropdown-item" type="button" id="{{ taxo }}-id{{ loop.index0 }}">{{ taxo }}</button>
 | 
						|
											{% endfor %}
 | 
						|
										</div>
 | 
						|
									</div>
 | 
						|
 | 
						|
									<div class="input-group">
 | 
						|
										<input id="ltagsgalaxies" type="text" class="form-control" autocomplete="off">
 | 
						|
									</div>
 | 
						|
 | 
						|
									<div class="dropdown">
 | 
						|
										<button type="button" class="btn btn-info dropdown-toggle mt-1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" id="dropdown-galaxy">
 | 
						|
										   Galaxy Selected
 | 
						|
										</button>
 | 
						|
										<div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdown-galaxy"> <!-- TODO: make dropdown-scrollable -->
 | 
						|
											<h6 class="dropdown-header">Galaxy Tags</h6>
 | 
						|
										  <button class="dropdown-item" type="button" id="all-tags-galaxies">All Tags <i class="fas fa-tags"></i></button>
 | 
						|
											<div class="dropdown-divider"></div>
 | 
						|
											{% for galaxy in active_galaxies %}
 | 
						|
													<button class="dropdown-item" type="button" id="{{ galaxy }}-idgalax{{ loop.index0 }}">{{ galaxy }}</button>
 | 
						|
											{% endfor %}
 | 
						|
										</div>
 | 
						|
									</div>
 | 
						|
 | 
						|
								</div>
 | 
						|
							</div>
 | 
						|
 | 
						|
						</div>
 | 
						|
					</div>
 | 
						|
 | 
						|
					<div class="form-group mt-3">
 | 
						|
						<textarea class="form-control" id="paste_content" name="paste_content" rows="25"></textarea>
 | 
						|
					</div>
 | 
						|
 | 
						|
					<div class="form-group">
 | 
						|
						<button class="btn btn-primary " name="submit" type="submit">Submit Item</button>
 | 
						|
					</div>
 | 
						|
 | 
						|
				</form>
 | 
						|
 | 
						|
			</div>
 | 
						|
 | 
						|
		</div>
 | 
						|
	</div>
 | 
						|
 | 
						|
 | 
						|
</body>
 | 
						|
 | 
						|
<script>
 | 
						|
var ltags
 | 
						|
var ltagsgalaxies
 | 
						|
 | 
						|
$(document).ready(function(){
 | 
						|
		$("#page-items-submit").addClass("active");
 | 
						|
 | 
						|
    $.getJSON("{{ url_for('Tags.get_all_tags_taxonomies') }}",
 | 
						|
    function(data) {
 | 
						|
 | 
						|
      ltags = $('#ltags').tagSuggest({
 | 
						|
        data: data,
 | 
						|
        maxDropHeight: 200,
 | 
						|
        name: 'ltags'
 | 
						|
      });
 | 
						|
    });
 | 
						|
 | 
						|
    $.getJSON("{{ url_for('Tags.get_all_tags_galaxy') }}",
 | 
						|
      function(data) {
 | 
						|
 | 
						|
        ltagsgalaxies = $('#ltagsgalaxies').tagSuggest({
 | 
						|
          data: data,
 | 
						|
          maxDropHeight: 200,
 | 
						|
          name: 'ltagsgalaxies'
 | 
						|
        });
 | 
						|
      });
 | 
						|
 | 
						|
		$('#modalsubmit').modal({backdrop: 'static'})
 | 
						|
    });
 | 
						|
 | 
						|
function toggle_sidebar(){
 | 
						|
	if($('#nav_menu').is(':visible')){
 | 
						|
		$('#nav_menu').hide();
 | 
						|
		$('#side_menu').removeClass('border-right')
 | 
						|
		$('#side_menu').removeClass('col-lg-2')
 | 
						|
		$('#core_content').removeClass('col-lg-10')
 | 
						|
	}else{
 | 
						|
		$('#nav_menu').show();
 | 
						|
		$('#side_menu').addClass('border-right')
 | 
						|
		$('#side_menu').addClass('col-lg-2')
 | 
						|
		$('#core_content').addClass('col-lg-10')
 | 
						|
	}
 | 
						|
}
 | 
						|
</script>
 | 
						|
 | 
						|
<script>
 | 
						|
function submitPaste(){
 | 
						|
	document.getElementById("tags_taxonomies").value = ltags.getValue();
 | 
						|
  document.getElementById("tags_galaxies").value = ltagsgalaxies.getValue();
 | 
						|
}
 | 
						|
</script>
 | 
						|
 | 
						|
<script>
 | 
						|
    jQuery("#all-tags-taxonomies").on("click", function(e){
 | 
						|
      //change input tags list
 | 
						|
      $.getJSON("{{ url_for('Tags.get_all_tags_taxonomies') }}",
 | 
						|
        function(data) {
 | 
						|
          ltags.setData(data)
 | 
						|
      });
 | 
						|
    });
 | 
						|
 | 
						|
</script>
 | 
						|
<script>
 | 
						|
    jQuery("#all-tags-galaxies").on("click", function(e){
 | 
						|
      $.getJSON("{{ url_for('Tags.get_all_tags_galaxy') }}",
 | 
						|
        function(data) {
 | 
						|
          ltagsgalaxies.setData(data)
 | 
						|
      });
 | 
						|
    });
 | 
						|
 | 
						|
{% for taxo in active_taxonomies %}
 | 
						|
    jQuery("#{{ taxo }}-id{{ loop.index0 }}").on("click", function(e){
 | 
						|
      $.getJSON("{{ url_for('Tags.get_tags_taxonomie') }}?taxonomie={{ taxo }}",
 | 
						|
        function(data) {
 | 
						|
          ltags.setData(data)
 | 
						|
  });
 | 
						|
});
 | 
						|
{% endfor %}
 | 
						|
</script>
 | 
						|
<script>
 | 
						|
{% for galaxy in active_galaxies %}
 | 
						|
    jQuery("#{{ galaxy }}-idgalax{{ loop.index0 }}").on("click", function(e){
 | 
						|
      $.getJSON("{{ url_for('Tags.get_tags_galaxy') }}?galaxy={{ galaxy }}",
 | 
						|
        function(data) {
 | 
						|
          ltagsgalaxies.setData(data)
 | 
						|
  });
 | 
						|
});
 | 
						|
{% endfor %}
 | 
						|
</script>
 | 
						|
 | 
						|
<script type="text/javascript">
 | 
						|
		var i = 0;
 | 
						|
		var err = 0;
 | 
						|
		$(".progress-bar").css("width", i + "%").text(i + " %");
 | 
						|
		function makeProgress(){
 | 
						|
 | 
						|
			$.getJSON("{{ url_for('PasteSubmit.submit_status') }}?UUID={{ UUID }}",
 | 
						|
        function(data) {
 | 
						|
 | 
						|
					var end = data.end;
 | 
						|
					var prog = data.prog;
 | 
						|
					var in_progress = data.in_progress;
 | 
						|
					var processing = data.processing;
 | 
						|
					var isError = data.isError;
 | 
						|
					var error = data.error;
 | 
						|
 | 
						|
					if(processing){
 | 
						|
						$("#loading_button").hide();
 | 
						|
						$("#pr").prop('hidden', false);
 | 
						|
						$("#files_submitted_btn").prop('hidden', false);
 | 
						|
					}
 | 
						|
 | 
						|
					if(i < 100){
 | 
						|
						$(".progress-bar").css("width", prog + "%").text(prog + " %");
 | 
						|
					}
 | 
						|
 | 
						|
					if(!end){
 | 
						|
 | 
						|
						document.getElementById('files_submitted').innerHTML = in_progress;
 | 
						|
 | 
						|
						//error handler
 | 
						|
						if(isError){
 | 
						|
							document.getElementById('error_message').innerHTML = error;
 | 
						|
							$("#panel_error").prop('hidden', false);
 | 
						|
							$("#error_submit_button").prop('hidden', false);
 | 
						|
							err = err + 1;
 | 
						|
						}
 | 
						|
 | 
						|
						// Wait for sometime before running this script again
 | 
						|
						if(err < 100){
 | 
						|
							setTimeout("makeProgress()", 100);
 | 
						|
						}
 | 
						|
					} else {
 | 
						|
						document.getElementById('files_submitted').innerHTML = in_progress;
 | 
						|
						$("#progress-bar").removeClass('progress-bar-animated');
 | 
						|
						$("#submit_result").prop('hidden', false);
 | 
						|
 | 
						|
						if(isError){
 | 
						|
							document.getElementById('error_message').innerHTML = error;
 | 
						|
							$("#panel_error").prop('hidden', false);
 | 
						|
							$("#error_submit_button").prop('hidden', false);
 | 
						|
 | 
						|
						} else {
 | 
						|
							$("#success_submit_button").prop('hidden', false);
 | 
						|
						}
 | 
						|
 | 
						|
						if(in_progress == '0 / '){
 | 
						|
							document.getElementById('files_submitted').innerHTML = '0 / 0'
 | 
						|
							$(".progress-bar").css("width", "100%").text("100 %");
 | 
						|
							$("#progress-bar").addClass('bg-danger')
 | 
						|
						} else {
 | 
						|
							var link = data.link;
 | 
						|
							$("#submit_pastes").append(link);
 | 
						|
							$("#submit_pastes").prop('hidden', false);
 | 
						|
						}
 | 
						|
 | 
						|
 | 
						|
					}
 | 
						|
 | 
						|
				}
 | 
						|
 | 
						|
			);
 | 
						|
 | 
						|
		}
 | 
						|
		makeProgress();
 | 
						|
</script>
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
</html>
 |