first sync
Some checks failed
Deployment Verification / deploy-and-test (push) Failing after 29s

This commit is contained in:
2025-03-04 07:59:21 +01:00
parent 9cdcf486b6
commit 506716e703
1450 changed files with 577316 additions and 62 deletions

View File

@@ -0,0 +1,57 @@
<div class="ds-sidebar" id="ds-sidebar-container">
<a href="#" class="close-ds-sidebar" onclick="hide_datastore();">
<i class="flaticon-cross"></i>
</a>
<div class="ds-sidebar-wrapper">
<ul class="nav nav-tabs nav-line nav-color-primary" role="tablist">
<li class="nav-item"> <a class="nav-link active show" data-toggle="tab" href="#ds" role="tab" aria-controls="case" aria-selected="true">Datastore</a> </li>
</ul>
<div class="tab-content mt-3">
<div class="tab-pane fade show active" id="ds" role="tabpanel">
<div class="row">
</div>
<div class="tree well" id="msg_select_destination_folder" style="display:none;">
<div class="row">
<p class="mt-3 ml-3">Select the files and destination folder below. <span id="msg_mv_files" class="text-primary"></span> files selected to be moved to <span id="msg_mv_dst_folder" class="text-primary"></span></p>
<button type="button" class="btn btn-sm btn-outline-success ml-auto mr-2" onclick="validate_ds_file_move();">Validate</button>
<button type="button" class="btn btn-sm btn-outline-dark mr-4" onclick="reset_ds_file_view();load_datastore();">Cancel</button>
</div>
</div>
<div class="tree well" id="msg_select_destination_folder_folder" style="display:none;">
<div class="row">
<p class="mt-3 ml-3">Select a destination folder below. <span id="msg_mv_folder" class="text-primary"></span> selected to be moved to <span id="msg_mv_dst_folder_folder" class="text-primary"></span></p>
<button type="button" class="btn btn-sm btn-outline-success ml-auto mr-2" onclick="validate_ds_folder_move();">Validate</button>
<button type="button" class="btn btn-sm btn-outline-dark mr-4" onclick="reset_ds_file_view();load_datastore();">Cancel</button>
</div>
</div>
<div class="row mb-3">
<div class="col-9">
<div class="row">
<div id='ds_file_search' class="ml-3 pt-2 pl-2" style="width:70%;border-radius:3px;border-color:#fff;background:rgb(234, 234, 234);" ></div>
<button class="btn btn-sm btn-light ml-2 pt-2" onclick="filter_ds_files();" id="btn_filter_ds_files">
Search
</button>
<button class="btn btn-sm btn-light ml-2 pt-2" onclick="reset_ds_files_filter();">
Reset
</button>
<div class="ml-1 mt-1 fa-regular text-dark fa-circle-question" title="Filter help" onclick="show_ds_filter_help();"></div>
</div>
</div>
<div class="col-3 justify-content-end">
<button type="button" class="btn btn-sm btn-outline-dark float-right mb-1 mr-3 btn-ds-bulk-selector" onclick="toggle_select_file();"><i class="fa-solid fa-check-double mr-1"></i> Select</button>
<button type="button" class="btn btn-sm btn-outline-dark float-right mb-1 mr-3" onclick="refresh_ds();"><i class="fa-solid fa-arrows-rotate"></i> Refresh</button>
<button type="button" class="btn btn-sm btn-outline-danger float-right mt-1 mr-3 btn-ds-bulk" style="display:none;" onclick="delete_bulk_ds_file();"><i class="fa fa-trash text-danger mr-1"></i> Delete</button>
<button type="button" class="btn btn-sm btn-outline-dark float-right mt-1 mr-3 btn-ds-bulk" style="display:none;" onclick="move_ds_file();"><i class="fa-solid fa-arrow-right-arrow-left mr-1"></i> Move</button>
</div>
</div>
<div class="tree well" id="ds-tree-container">
<ul id="ds-tree-root">
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="ds-sidebar-container-ctxmenu"></div>

View File

@@ -0,0 +1,156 @@
{% if current_user.is_authenticated %}
<div class="modal " tabindex="-1" role="dialog" id="modal_switch_context" data-backdrop="true">
<div class="modal-lg modal-dialog" role="document">
<div class="modal-content">
<form method="post" action="" id="form_set_context">
<div class="modal-header">
<h5>Switch context</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body">
<div class="row mb-2">
<div class="col-12">
<div class="form-group">
<select class="selectpicker form-control" data-dropup-auto="false" data-live-search="true" id="user_context">
</select>
</div>
</div>
</div>
<div class="row mt-4">
<div class="col-12 d-flex">
<button type="button" class="btn btn-default mr-auto" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-outline-success ml-auto" id="submit_set_context">Switch</button>
</div>
</div>
</div>
</form>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div>
<div class="modal" tabindex="-1" role="dialog" id="modal_add_tasklog" data-backdrop="true">
<div class="modal-lg modal-dialog" role="document">
<form method="post" action="" id="form_add_tasklog">
<div class="modal-content">
<div class="modal-header">
<h5>Add task log</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body">
<div class="row mb-2">
<div class="col-12">
<p class="ml-2">Add a task log that will be registered under activities </p>
<textarea class="form-control" placeholder="Log content" id="log_content" name="log_content" rows="3" ></textarea>
</div>
</div>
<div class="row mt-4">
<div class="col-12 d-flex">
<button type="submit" class="btn btn-outline-success ml-auto" id="submit_new_tasklog">Submit</button>
</div>
</div>
</div>
</div><!-- /.modal-content -->
</form>
</div><!-- /.modal-dialog -->
</div>
<div class="modal" tabindex="-1" role="dialog" id="modal_ds_folder" data-backdrop="true">
<div class="modal-lg modal-dialog" role="document">
<form method="post" action="" id="form_ds_directory">
<div class="modal-content">
<div class="modal-header">
<h5>Datastore folder</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body">
<div class="row mb-2">
<div class="col-12">
<p class="ml-2">Input the folder name below</p>
<input class="form-control" placeholder="Folder name" id="ds_mod_folder_name" name="ds_folder_name">
</div>
</div>
<div class="row mt-4">
<div class="col-12 d-flex">
<button class="btn btn-outline-success ml-auto" onclick="save_ds_mod_folder();return false;">Submit</button>
</div>
</div>
</div>
</div><!-- /.modal-content -->
</form>
</div><!-- /.modal-dialog -->
</div>
<div class="modal" tabindex="-1" role="dialog" id="modal_ds_file" data-backdrop="true">
<div class="modal-lg modal-dialog" role="document">
<div class="modal-content" id="modal_ds_file_content">
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div>
<div class="modal " tabindex="-1" role="dialog" id="modal_dim_task_detail" data-backdrop="true">
<div class="modal-xl modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5>Task info</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body" id="info_dim_task_modal_body">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div>
<div class="modal" id="saveFilterModal" tabindex="-1" role="dialog" aria-labelledby="saveFilterModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="saveFilterModalLabel">Save Filter</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="form-group">
<label for="filterName">Filter Name *</label>
<input type="text" class="form-control" id="filterName" placeholder="Filter name">
</div>
<div class="form-group">
<label for="filterDescription">Filter Description</label>
<input type="text" class="form-control" id="filterDescription" placeholder="Filter description">
</div>
<div class="form-check">
<label class="form-check-label mt-3">
<input checked="" class="form-check-input" id="filterIsPrivate" name="filterIsPrivate" type="checkbox">
<span class="form-check-sign"> Private Filter
<i class="ml-1 mt-1 fa-regular fa-circle-question" title="If checked, the filter will be only visible to you" style="cursor:pointer;"></i>
</span>
</label>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-sm btn-outline-success" id="saveFilterButton">Save Filter</button>
</div>
</div>
</div>
</div>
<div class="modal" tabindex="-1" role="dialog" id="modal_help" data-backdrop="true">
</div>
{% endif %}

View File

@@ -0,0 +1,19 @@
<div class="modal" role="dialog" tabindex="-1" id="modal_comment" data-backdrop="false">
<div class="modal-lg modal-dialog modal-comment" role="document">
<div class="modal-content shadow-xl" id="modal_comment_content">
</div>
</div>
</div>
<script src="/static/assets/js/core/jquery.validate.js"></script>
<script src="/static/assets/js/plugin/datatables/dataTables.buttons.min.js"></script>
<script src="/static/assets/js/plugin/datatables/dataTables.contextualActions.min.js"></script>
<script src="/static/assets/js/plugin/datatables/dataTables.select.min.js"></script>
<script src="/static/assets/js/plugin/datatables/dataTables.responsive.min.js"></script>
<script src="/static/assets/js/plugin/datatables/buttons.html5.min.js"></script>
<script src="/static/assets/js/plugin/datatables/buttons.print.min.js"></script>
<script src="/static/assets/js/plugin/datatables/buttons.colVis.min.js"></script>
<script src="/static/assets/js/iris/datatablesUtils.js"></script>
<script src="/static/assets/js/plugin/select/select2.js"></script>
<script src="/static/assets/js/iris/case.js"></script>
<script src="/static/assets/js/iris/comments.js"></script>

View File

@@ -0,0 +1,6 @@
<link rel="stylesheet" href="/static/assets/css/bootstrap-select.min.css">
<link rel="stylesheet" href="/static/assets/css/select2.css">
<link href="/static/assets/css/dataTables.buttons.min.css" rel="stylesheet">
<link href="/static/assets/css/dataTables.contextualActions.min.css" rel="stylesheet">
<link href="/static/assets/css/dataTables.select.min.css" rel="stylesheet">
<link href="/static/assets/css/dataTables.responsive.css" rel="stylesheet">

View File

@@ -0,0 +1,86 @@
<div class="main-header">
<!-- Logo Header -->
<div class="logo-header" data-background-color="blue">
<a href="/dashboard?cid={{ session['current_case'].case_id }}" class="logo ml-2">
<img src="/static/assets/img/logo-white.png" alt="navbar brand" class="navbar-brand" width="100">
</a>
<button class="navbar-toggler sidenav-toggler ml-auto" type="button" data-toggle="collapse" data-target="collapse" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon">
<i class="icon-menu"></i>
</span>
</button>
<button class="topbar-toggler more"><i class="icon-options-vertical"></i></button>
<div class="nav-toggle">
<button class="btn btn-toggle toggle-sidebar">
<i class="icon-menu"></i>
</button>
</div>
</div>
<!-- End Logo Header -->
<!-- Navbar Header -->
<nav class="navbar navbar-header navbar-expand-lg bg-primary-gradient">
{% if current_user.is_authenticated %}
<div class="container-fluid">
<div class="collapse" id="search-nav">
<div class="input-group">
{% if session['current_case'] %}
<div class="text-light"><a class="text-white dropdown hidden-caret submenu" href="#" title="Go to case number" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true" onclick="setTimeout(focus_on_input_chg_case, 100);">
<i class="fa-solid fa-leaf mr-2"></i></a>
<ul class="dropdown-menu dropdown-left messages-notif-box animated shadow-xl" aria-labelledby="messageDropdown">
<li>
<div class="ml-2 mr-2 mt-2 mb-2 d-flex justify-content-between align-items-center">
<div class="input-group">
<input type="number" min="1" class="form-control" placeholder="Go to case number #" id="goto_case_number_input" aria-label="Go to case number #">
<div class="input-group-append">
<button class="btn btn-sm btn-outline-dark" type="button" title="Go" onclick="goto_case_number();">Go</button>
</div>
</div>
</div>
</li>
</ul>
<a class="text-light" title="Switch case" onclick="load_context_switcher();return false;" href="#">{{ session['current_case'].case_name }}</a> {{ session['current_case'].access|safe }}</div>
{% else %}
<div class="text-warning" style="cursor:pointer;" title="Switch case" onclick="load_context_switcher();return false;">No context</div>
{% endif %}
</div>
</div>
<ul class="navbar-nav topbar-nav align-items-center">
<li class="nav-item toggle-nav-search hidden-caret">
<a class="nav-link" data-toggle="collapse" href="#search-nav" role="button" aria-expanded="false" aria-controls="search-nav">
<i class="fa fa-search"></i>
</a>
</li>
<li class="nav-item hidden-caret">
<a class="nav-link" title="Switch case" onclick="load_context_switcher();return false;" href="#" role="button">
<i class="flaticon-repeat"></i>
</a>
</li>
<li class="nav-item hidden-caret">
<a class="nav-link" data-toggle="modal" title="Add task log" data-target="#modal_add_tasklog" href="#">
<i class="flaticon-interface-1"></i>
</a>
</li>
<li class="nav-item hidden-caret">
<a href="#" title="Datastore" class="nav-link ds-sidebar-toggler" onclick="load_datastore();">
<i class="flaticon-database"></i>
</a>
</li>
<li class="nav-item hidden-caret">
<a href="#" title="Quick actions" class="nav-link quick-sidebar-toggler">
<i class="flaticon-shapes-1"></i>
</a>
</li>
</ul>
</div>
{% endif %}
</nav>
<!-- End Navbar -->
</div>

View File

@@ -0,0 +1,76 @@
<div class="main-header">
<!-- Logo Header -->
<div class="logo-header" data-background-color="blue">
<a href="/" class="logo ml-2">
<img src="/static/assets/img/logo-white.png" alt="navbar brand" class="navbar-brand" width="100">
</a>
<button class="navbar-toggler sidenav-toggler ml-auto" type="button" data-toggle="collapse" data-target="collapse" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon">
<i class="icon-menu"></i>
</span>
</button>
<button class="topbar-toggler more"><i class="icon-options-vertical"></i></button>
<div class="nav-toggle">
<button class="btn btn-toggle toggle-sidebar">
<i class="icon-menu"></i>
</button>
</div>
</div>
<!-- End Logo Header -->
<!-- Navbar Header -->
<nav class="navbar navbar-header navbar-expand-lg bg-primary-gradient" >
{% if current_user.is_authenticated %}
<div class="container-fluid">
<div class="navbar-nav topbar-nav text-truncate col-xl-2" id="search-nav">
<div class="input-group">
{% if session['current_case'] %}
<a class="text-light" title="{{ session['current_case'].case_name }}" onclick="load_context_switcher();return false;" href="#">{{ session['current_case'].case_name }}</a> {{ session['current_case'].access|safe }}
{% else %}
<div class="text-warning" style="cursor:pointer;" title="Switch case" onclick="load_context_switcher();return false;">No context</div>
{% endif %}
</div>
</div>
{% include 'case-nav.html' %}
<ul class="navbar-nav topbar-nav align-items-center">
<li class="nav-item toggle-nav-search hidden-caret">
<a class="nav-link" data-toggle="collapse" href="#search-nav" role="button" aria-expanded="false" aria-controls="search-nav">
<i class="fa fa-search"></i>
</a>
</li>
<li class="nav-item hidden-caret">
<a class="nav-link" title="Switch case" onclick="load_context_switcher();return false;" href="#" role="button">
<i class="flaticon-repeat"></i>
</a>
</li>
<li class="nav-item hidden-caret">
<a class="nav-link" data-toggle="modal" title="Add task log" data-target="#modal_add_tasklog" href="#">
<i class="flaticon-interface-1"></i>
</a>
</li>
<li class="nav-item hidden-caret">
<a href="#" title="Datastore" class="nav-link ds-sidebar-toggler" onclick="load_datastore();">
<i class="flaticon-database"></i>
</a>
</li>
<li class="nav-item hidden-caret">
<a href="#" title="Quick actions" class="nav-link quick-sidebar-toggler">
<i class="flaticon-shapes-1"></i>
</a>
</li>
</ul>
</div>
{% endif %}
</nav>
<!-- End Navbar -->
</div>

View File

@@ -0,0 +1,128 @@
<div class="quick-sidebar">
<a href="#" class="close-quick-sidebar">
<i class="flaticon-cross"></i>
</a>
<div class="quick-sidebar-wrapper">
<ul class="nav nav-tabs nav-line nav-color-primary" role="tablist">
<li class="nav-item"> <a class="nav-link active show" data-toggle="tab" href="#case" role="tab" aria-controls="case" aria-selected="true">Case</a> </li>
<li class="nav-item"> <a class="nav-link" data-toggle="tab" href="#activities" aria-controls="activities" role="tab" onclick="load_case_activity();">Activities</a></li>
<li class="nav-item"> <a class="nav-link" data-toggle="tab" href="#dim_tasks" aria-controls="dim_tasks" role="tab" onclick="load_dim_limited_tasks();">DIM Tasks</a></li>
</ul>
<div class="tab-content mt-3">
<div class="tab-chat tab-pane fade" id="activities" role="tabpanel">
<div class="row">
<div class="col">
<button type="button" class="float-right btn btn-round btn-xs btn-icon btn-outline-default mr-3 ml-3" onclick="load_case_activity();">
<i class="fas fa-sync rotate"></i>
</button>
<ol class="activity-feed" id="case_activities">
</ol>
</div>
</div>
</div>
<div class="tab-chat tab-pane fade" id="dim_tasks" role="tabpanel">
<div class="row">
<div class="col">
<button type="button" class="float-right btn btn-round btn-xs btn-icon btn-outline-default mr-3 ml-3" onclick="load_dim_limited_tasks();">
<i class="fas fa-sync rotate"></i>
</button>
<ol class="activity-feed" id="dim_tasks_feed">
</ol>
</div>
</div>
</div>
<div class="tab-chat tab-pane fade show active" id="case" role="tabpanel">
<div class="messages-contact">
<div class="quick-wrapper">
<div class="quick-content settings-content">
<span class="category-title mt-0">Shortcuts</span>
<div class="quick-actions quick-actions-primary">
<div class="quick-actions-items">
<div class="quick-actions quick-actions-black">
<div class="row m-0">
<a class="col-11 col-md-11 p-0" title="Export page as PNG" href="#" onclick="exportInnerPng();" role="button">
<div class="quick-actions-item">
<i class="flaticon-photo-camera"></i>
<span class="text-dark">Take screenshot of content</span>
</div>
</a>
</div>
</div>
</div>
<div class="quick-actions-scroll scrollbar-outer">
<div class="quick-actions-items">
<div class="row m-0">
<a class="col-6 col-md-6 p-0" href="/case/ioc?cid={{session['current_case'].case_id}}">
<div class="quick-actions-item">
<i class="flaticon-inbox"></i>
<span class="text">Add IOC</span>
</div>
</a>
<a class="col-6 col-md-6 p-0" href="/case/assets?cid={{session['current_case'].case_id}}">
<div class="quick-actions-item">
<i class="flaticon-laptop"></i>
<span class="text">Add asset</span>
</div>
</a>
</div>
<div class="row m-0">
<a class="col-6 col-md-6 p-0" href="/case/notes?cid={{session['current_case'].case_id}}">
<div class="quick-actions-item">
<i class="flaticon-file-1"></i>
<span class="text">Add note</span>
</div>
</a>
<a class="col-6 col-md-6 p-0" href="/case/timeline?cid={{session['current_case'].case_id}}">
<div class="quick-actions-item">
<i class="flaticon-stopwatch"></i>
<span class="text">Add event</span>
</div>
</a>
</div>
<div class="row m-0">
<a class="col-6 col-md-6 p-0" href="/manage/cases?cid={{session['current_case'].case_id}}">
<div class="quick-actions-item">
<i class="flaticon-box"></i>
<span class="text">Upload evidence</span>
</div>
</a>
<a class="col-6 col-md-6 p-0" data-toggle="modal" data-target="#modal_add_tasklog" href="#">
<div class="quick-actions-item">
<i class="flaticon-interface-1"></i>
<span class="text">Add task log</span>
</div>
</a>
</div>
<div class="row m-0">
<a class="col-6 col-md-6 p-0" href="/case/evidences?cid={{session['current_case'].case_id}}">
<div class="quick-actions-item">
<i class="flaticon-price-tag"></i>
<span class="text">Register evidence</span>
</div>
</a>
</div>
</div>
</div>
<div class="quick-actions-items">
<div class="quick-actions quick-actions-danger">
<div class="row m-0">
<a class="col-11 col-md-11 p-0" title="Switch case" onclick="load_context_switcher();return false;" href="#" role="button">
<div class="quick-actions-item">
<i class="flaticon-repeat"></i>
<span class="text">Switch case</span>
</div>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,31 @@
<script>
function notify_error(message) {
$.notify({
icon: 'flaticon-alarm-1',
title: 'Error',
message: message
}, {
type: 'danger',
placement: {
from: 'top',
align: 'right'
},
time: 3000,
});
}
function notify_success(message) {
$.notify({
icon: 'flaticon-alarm-1',
title: 'Done',
message: message
}, {
type: 'success',
placement: {
from: 'top',
align: 'right'
},
time: 3000,
});
}
</script>

View File

@@ -0,0 +1,5 @@
{% if current_user %}
{% if current_user.has_mini_sidebar %}
sidebar_minimize
{% endif %}
{% endif %}

View File

@@ -0,0 +1,214 @@
<!-- Sidebar -->
<div class="sidebar sidebar-style-2">
<div class="sidebar-wrapper scrollbar scrollbar-inner">
<div class="sidebar-content">
{% if current_user.is_authenticated %}
<div class="user">
<div class="avatar-sm float-left mr-2">
<img src="/static/assets/img/profile.jpg" alt="..." class="avatar-img rounded-circle">
</div>
<div class="info">
<a data-toggle="collapse" href="#collapseExample" aria-expanded="true">
<span>
<span class="user-level">
{{ current_user.name }}
</span>
<small class="text-muted justify-content-center" style="font-size: 10px;" id="current_date"></small>
<span class="caret"></span>
</span>
</a>
<div class="clearfix"></div>
<div class="collapse in" id="collapseExample">
<ul class="nav">
<li>
<a href="/user/settings?cid={{session['current_case'].case_id}}">
<span class="link-collapse">My settings</span>
</a>
</li>
<li>
<a href={{ url_for('index.logout') }}>
<span class="link-collapse">Logout</span>
</a>
</li>
</ul>
</div>
</div>
</div>
<ul class="nav nav-primary" id="l_nav_tab">
<li class="nav-item">
<a href="/dashboard?cid={{session['current_case'].case_id}}">
<i class="flaticon-home"></i>
<span>Dashboard</span>
</a>
</li>
<li class="nav-item">
<a href="/overview?cid={{session['current_case'].case_id}}">
<i class="fa-solid fa-street-view"></i>
<span>Overview</span>
</a>
</li>
{% if demo_domain %}
<li class="nav-item">
<a href="/welcome">
<i class="fa-solid fa-door-open"></i>
<span>Welcome page</span>
</a>
</li>
{% endif %}
<li class="nav-section">
<span class="sidebar-mini-icon">
<i class="fa fa-ellipsis-h"></i>
</span>
<h4 class="text-section">Investigation</h4>
</li>
<li class="nav-item">
<a href="/case?cid={{session['current_case'].case_id}}">
<i class="flaticon-network"></i>
<span>Case</span>
</a>
</li>
{% if user_has_perm(std_permissions.alerts_read) %}
<li class="nav-item">
<a href="/alerts?cid={{session['current_case'].case_id}}">
<i class="flaticon-alarm-1"></i>
<span>Alerts</span>
</a>
</li>
{% endif %}
{% if user_has_perm(std_permissions.search_across_cases) %}
<li class="nav-item">
<a href="/search?cid={{session['current_case'].case_id}}">
<i class="flaticon-search-2"></i>
<span>Search</span>
</a>
</li>
{% endif %}
{% if user_has_perm(std_permissions.activities_read) or user_has_perm(std_permissions.all_activities_read) %}
<li class="nav-item">
<a href="/activities?cid={{session['current_case'].case_id}}">
<i class="flaticon-list"></i>
<span>Activities</span>
</a>
</li>
{% endif %}
<li class="nav-item">
<a href="/dim/tasks?cid={{session['current_case'].case_id}}">
<i class="flaticon-web-1"></i>
<span>DIM Tasks</span>
</a>
</li>
<li class="nav-section nav-advanced">
<span class="sidebar-mini-icon">
<i class="fa fa-ellipsis-h"></i>
</span>
<h4 class="text-section">Manage</h4>
</li>
<li class="nav-item">
<a href="/manage/cases?cid={{session['current_case'].case_id}}">
<i class="flaticon-folder"></i>
<span>Manage cases</span>
</a>
</li>
<li class="nav-item submenu nav-advanced">
<a data-toggle="collapse" href="#advanced-nav" class="" aria-expanded="false">
<i class="flaticon-interface-3"></i>
<span class="sub-item">Advanced</span>
<span class="caret"></span>
</a>
<div class="collapse" id="advanced-nav" style="">
<ul class="nav nav-collapse">
{% if user_has_perm(std_permissions.server_administrator) %}
<li class="nav-subitem">
<a href="/manage/modules?cid={{session['current_case'].case_id}}">
<i class="flaticon-technology-1"></i>
<span class="subsub-item">Modules</span>
</a>
</li>
{% endif %}
{% if user_has_perm(std_permissions.customers_read) %}
<li class="nav-subitem">
<a href="/manage/customers?cid={{session['current_case'].case_id}}">
<i class="flaticon-profile"></i>
<span class="subsub-item">Customers</span>
</a>
</li>
{% endif %}
{% if user_has_perm(std_permissions.server_administrator) %}
<li class="nav-subitem">
<a href="/manage/objects?cid={{session['current_case'].case_id}}">
<i class="flaticon-box-2"></i>
<span>Case Objects</span>
</a>
</li>
<li class="nav-subitem">
<a href="/manage/attributes?cid={{session['current_case'].case_id}}">
<i class="flaticon-layers-1"></i>
<span>Custom Attributes</span>
</a>
</li>
{% endif %}
{% if user_has_perm(std_permissions.case_templates_read) %}
<li class="nav-subitem">
<a href="/manage/case-templates?cid={{session['current_case'].case_id}}">
<i class="flaticon-interface-7"></i>
<span>Case Templates</span>
</a>
</li>
{% endif %}
{% if user_has_perm(std_permissions.server_administrator) %}
<li class="nav-subitem">
<a href="/manage/templates?cid={{session['current_case'].case_id}}">
<i class="flaticon-interface-6"></i>
<span>Report Templates</span>
</a>
</li>
<li class="nav-subitem">
<a href="/manage/access-control?cid={{session['current_case'].case_id}}">
<i class="flaticon-lock-1"></i>
<span>Access control</span>
</a>
</li>
<li class="nav-subitem">
<a href="/manage/settings?cid={{session['current_case'].case_id}}">
<i class="flaticon-settings"></i>
<span>Server settings</span>
</a>
</li>
{% endif %}
</ul>
</div>
</li>
{% endif %}
<li class="nav-item">
<a href="https://docs.dfir-iris.org" target="_blank" rel="noopener">
<i class="flaticon-round"></i>
<span>Help</span>
</a>
</li>
</ul>
</div>
<div class="mt--2">
<div class="row ml-2 mr-2">
<span class="text-dark text-center ml-auto mr-auto">{{ organisation_name }}</span>
</div>
<div class="row ml-2 mr-2">
<span class="text-dark text-center ml-auto mr-auto"><a href="https://github.com/dfir-iris/iris-web" target="_blank" rel="noopener">IRIS {{ iris_version }}</a> {% if has_updates %}
<a href="/manage/settings?cid={{session['current_case'].case_id}}"> <i class="ml-1 text-warning fas fa-exclamation-circle" title="Updates are available for the server"></i></a>{% endif %}
</span>
</div>
</div>
</div>
</div>
<!-- End Sidebar -->

View File

@@ -0,0 +1,118 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>IRIS - {% block title %}Case{% endblock %} {% if session['current_case'].case_id %}| {{ session['current_case'].case_name }} {% endif %}</title>
<meta content='width=device-width, initial-scale=1.0, shrink-to-fit=no' name='viewport' />
<link rel="icon" href="/static/assets/img/logo.ico" type="image/x-icon"/>
{% if demo_domain %}
<script defer data-domain="{{demo_domain}}" src="https://analytics.dfir-iris.org/js/plausible.js"></script>
{% endif %}
<!-- Fonts and icons -->
<script src="/static/assets/js/plugin/webfont/webfont.min.js"></script>
<script>
WebFont.load({
custom: {"families":["Lato:300,400,700,900", "Flaticon", "Font Awesome 5 Solid", "Font Awesome 5 Regular", "Font Awesome 5 Brands", "simple-line-icons"],
urls: ['/static/assets/css/fonts.css']},
active: function() {
sessionStorage.fonts = true;
}
});
</script>
<!-- CSS Files -->
<link rel="stylesheet" href="/static/assets/css/bootstrap.min.css">
<link rel="stylesheet" href="/static/assets/css/atlantis.css">
<link rel="stylesheet" href="/static/assets/css/bootstrap-select.min.css">
<link rel="stylesheet" href="/static/assets/css/suggestags.css">
<!-- Specific CSS goes HERE -->
{% block stylesheets %}{% endblock stylesheets %}
{% if current_user.in_dark_mode %}
<link rel="stylesheet" href="/static/assets/css/dark-theme.css">
{% endif %}
</head>
<body>
<div class="wrapper {% block layout %}{% endblock layout %} {% include 'includes/sidebar_handler.html' %}">
{% include 'includes/navigation.html' %}
{% include 'includes/sidenav.html' %}
<div class="main-panel">
<div class="content">
{% block content %}{% endblock content %}
</div>
<div id="minimized_modal_box" class="col-10 col-xs-11 col-sm-4 minimized_modal shadow-lg" style="display:none;" title="Maximize modal" onclick="modal_maximize();">
<div class="row mt-3 mb-3">
<div class="col-10 d-flex">
<span data-notify="title" id="minimized_modal_title" class="align-self-center"></span>
</div>
<div class="col-1 d-flex" style="padding-left:5px;">
<i class="fa-solid fa-arrow-up-right-dots align-self-center"></i>
</div>
</div>
</div>
{% include 'includes/footer.html' %}
</div>
{% include 'includes/quick-sidebar.html' %}
{% include 'includes/datastore-sidebar.html' %}
</div>
<!-- Core JS Files -->
<script src="/static/assets/js/core/jquery.3.2.1.min.js"></script>
<script src="/static/assets/js/core/popper.min.js"></script>
<script src="/static/assets/js/core/bootstrap.min.js"></script>
<script src="/static/assets/js/plugin/tagsinput/suggesttag.js"></script>
<!-- jQuery UI -->
<script src="/static/assets/js/plugin/jquery-ui-1.12.1.custom/jquery-ui.min.js"></script>
<script src="/static/assets/js/plugin/jquery-ui-touch-punch/jquery.ui.touch-punch.min.js"></script>
<!-- jQuery Scrollbar -->
<script src="/static/assets/js/plugin/jquery-scrollbar/jquery.scrollbar.min.js"></script>
<!-- Datatables -->
<script src="/static/assets/js/plugin/datatables/datatables.min.js"></script>
<!-- Bootstrap Notify -->
<script src="/static/assets/js/plugin/bootstrap-notify/bootstrap-notify.min.js"></script>
<script src="/static/assets/js/plugin/sweetalert/sweetalert.min.js"></script>
<script src="/static/assets/js/plugin/select/bootstrap-select.min.js"></script>
<script src="/static/assets/js/plugin/select/ajax-bootstrap-picker.js"></script>
<!-- HTML 2 Canvas -->
<script src="/static/assets/js/plugin/html2canvas/html2canvas.min.js"></script>
<!-- Atlantis JS -->
<script src="/static/assets/js/atlantis.min.js"></script>
<script src="/static/assets/js/plugin/ace/src-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
<script src="/static/assets/js/plugin/ace/src-noconflict/ext-language_tools.js" type="text/javascript"
charset="utf-8"></script>
<!-- Iris Common -->
<script src="/static/assets/js/iris/common.js"></script>
<script src="/static/assets/js/iris/datastore.js"></script>
<script src="/static/assets/js/core/crypto.core.js"></script>
<script src="/static/assets/js/core/crypto.md5.js"></script>
<script src="/static/assets/js/plugin/xss/xss.js"></script>
<script src="/static/assets/js/plugin/showdown/showdown.min.js" type="text/javascript" charset="utf-8"></script>
<!-- Specific JS goes HERE -->
{% block javascripts %}{% endblock javascripts %}
</body>
</html>

View File

@@ -0,0 +1,108 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>IRIS - {% block title %}Investigation{% endblock %} | CSIRT </title>
<meta content='width=device-width, initial-scale=1.0, shrink-to-fit=no' name='viewport' />
<link rel="icon" href="/static/assets/img/logo.ico" type="image/x-icon"/>
{% if demo_domain %}
<script defer data-domain="{{demo_domain}}" src="https://analytics.dfir-iris.org/js/plausible.js"></script>
{% endif %}
<!-- Fonts and icons -->
<script src="/static/assets/js/plugin/webfont/webfont.min.js"></script>
<script>
WebFont.load({
custom: {"families":["Lato:300,400,700,900", "Flaticon", "Font Awesome 5 Solid", "Font Awesome 5 Regular", "Font Awesome 5 Brands", "simple-line-icons"],
urls: ['/static/assets/css/fonts.css']},
active: function() {
sessionStorage.fonts = true;
}
});
</script>
<!-- CSS Files -->
<link rel="stylesheet" href="/static/assets/css/bootstrap.min.css">
<link rel="stylesheet" href="/static/assets/css/atlantis.css">
<link rel="stylesheet" href="/static/assets/css/bootstrap-select.min.css">
<link rel="stylesheet" href="/static/assets/css/suggestags.css">
<!-- Specific CSS goes HERE -->
{% block stylesheets %}{% endblock stylesheets %}
{% if current_user.in_dark_mode %}
<link rel="stylesheet" href="/static/assets/css/dark-theme.css">
{% endif %}
</head>
<body>
<div class="wrapper {% block layout %}{% endblock layout %} {% include 'includes/sidebar_handler.html' %}">
{% include 'includes/navigation.html' %}
{% include 'includes/sidenav.html' %}
<div class="main-panel">
<div class="content h-100 d-flex justify-content-center">
{% block content %}{% endblock content %}
</div>
{% include 'includes/footer.html' %}
</div>
{% include 'includes/quick-sidebar.html' %}
{% include 'includes/datastore-sidebar.html' %}
</div>
<!-- Core JS Files -->
<script src="/static/assets/js/core/jquery.3.2.1.min.js"></script>
<script src="/static/assets/js/core/popper.min.js"></script>
<script src="/static/assets/js/core/bootstrap.min.js"></script>
<script src="/static/assets/js/plugin/tagsinput/suggesttag.js"></script>
<!-- jQuery UI -->
<script src="/static/assets/js/plugin/jquery-ui-1.12.1.custom/jquery-ui.min.js"></script>
<script src="/static/assets/js/plugin/jquery-ui-touch-punch/jquery.ui.touch-punch.min.js"></script>
<!-- jQuery Scrollbar -->
<script src="/static/assets/js/plugin/jquery-scrollbar/jquery.scrollbar.min.js"></script>
<!-- Datatables -->
<script src="/static/assets/js/plugin/datatables/datatables.min.js"></script>
<!-- Bootstrap Notify -->
<script src="/static/assets/js/plugin/bootstrap-notify/bootstrap-notify.min.js"></script>
<script src="/static/assets/js/plugin/sweetalert/sweetalert.min.js"></script>
<script src="/static/assets/js/plugin/select/bootstrap-select.min.js"></script>
<!-- HTML 2 Canvas -->
<script src="/static/assets/js/plugin/html2canvas/html2canvas.min.js"></script>
<!-- Atlantis JS -->
<script src="/static/assets/js/atlantis.min.js"></script>
<script src="/static/assets/js/plugin/ace/src-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
<script src="/static/assets/js/plugin/ace/src-noconflict/ext-language_tools.js" type="text/javascript"
charset="utf-8"></script>
<!-- Iris Common -->
<script src="/static/assets/js/iris/common.js"></script>
<script src="/static/assets/js/iris/datastore.js"></script>
<script src="/static/assets/js/core/crypto.core.js"></script>
<script src="/static/assets/js/core/crypto.md5.js"></script>
<script src="/static/assets/js/plugin/xss/xss.js"></script>
<script src="/static/assets/js/plugin/showdown/showdown.min.js" type="text/javascript" charset="utf-8"></script>
<!-- Specific JS goes HERE -->
{% block javascripts %}{% endblock javascripts %}
</body>
</html>

View File

@@ -0,0 +1,103 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>IRIS - {% block title %}Case{% endblock %} {% if session['current_case'].case_id %}| {{ session['current_case'].case_name }} {% endif %} </title>
<meta content='width=device-width, initial-scale=1.0, shrink-to-fit=no' name='viewport' />
<link rel="icon" href="/static/assets/img/logo.ico" type="image/x-icon"/>
{% if demo_domain %}
<script defer data-domain="{{demo_domain}}" src="https://analytics.dfir-iris.org/js/plausible.js"></script>
{% endif %}
<!-- Fonts and icons -->
<script src="/static/assets/js/plugin/webfont/webfont.min.js"></script>
<script>
WebFont.load({
custom: {"families":["Lato:300,400,700,900", "Flaticon", "Font Awesome 5 Solid", "Font Awesome 5 Regular", "Font Awesome 5 Brands", "simple-line-icons"],
urls: ['/static/assets/css/fonts.css']},
active: function() {
sessionStorage.fonts = true;
}
});
</script>
<!-- CSS Files -->
<link rel="stylesheet" href="/static/assets/css/bootstrap.min.css">
<link rel="stylesheet" href="/static/assets/css/atlantis.css">
<link rel="stylesheet" href="/static/assets/css/suggestags.css">
<link rel="stylesheet" href="/static/assets/css/bootstrap-select.min.css">
<!-- Specific CSS goes HERE -->
{% block stylesheets %}{% endblock stylesheets %}
{% if current_user.in_dark_mode %}
<link rel="stylesheet" href="/static/assets/css/dark-theme.css">
{% endif %}
</head>
<body>
<div class="wrapper {% block layout %}{% endblock layout %} {% include 'includes/sidebar_handler.html' %}">
{% block content %}{% endblock content %}
{% include 'includes/quick-sidebar.html' %}
{% include 'includes/datastore-sidebar.html' %}
<div id="minimized_modal_box" class="col-10 col-xs-11 col-sm-4 minimized_modal shadow-lg" style="display:none;" title="Maximize modal" onclick="modal_maximize();">
<div class="row mt-3 mb-3">
<div class="col-10 d-flex">
<span data-notify="title" id="minimized_modal_title" class="align-self-center"></span>
</div>
<div class="col-1 d-flex" style="padding-left:5px;">
<i class="fa-solid fa-arrow-up-right-dots align-self-center"></i>
</div>
</div>
</div>
<div id="modal_md_helper"></div>
</div>
<!-- Core JS Files -->
<script src="/static/assets/js/core/jquery.3.2.1.min.js"></script>
<script src="/static/assets/js/core/popper.min.js"></script>
<script src="/static/assets/js/core/bootstrap.min.js"></script>
<script src="/static/assets/js/plugin/tagsinput/suggesttag.js"></script>
<!-- jQuery UI -->
<script src="/static/assets/js/plugin/jquery-ui-1.12.1.custom/jquery-ui.min.js"></script>
<script src="/static/assets/js/plugin/jquery-ui-touch-punch/jquery.ui.touch-punch.min.js"></script>
<!-- jQuery Scrollbar -->
<script src="/static/assets/js/plugin/jquery-scrollbar/jquery.scrollbar.min.js"></script>
<!-- Datatables -->
<script src="/static/assets/js/plugin/datatables/datatables.min.js"></script>
<!-- Bootstrap Notify -->
<script src="/static/assets/js/plugin/bootstrap-notify/bootstrap-notify.min.js"></script>
<script src="/static/assets/js/plugin/sweetalert/sweetalert.min.js"></script>
<script src="/static/assets/js/plugin/select/bootstrap-select.min.js"></script>
<script src="/static/assets/js/plugin/select/ajax-bootstrap-picker.js"></script>
<!-- HTML 2 Canvas -->
<script src="/static/assets/js/plugin/html2canvas/html2canvas.min.js"></script>
<!-- Atlantis JS -->
<script src="/static/assets/js/atlantis.min.js"></script>
<script src="/static/assets/js/plugin/ace/src-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
<script src="/static/assets/js/plugin/ace/src-noconflict/ext-language_tools.js" type="text/javascript"
charset="utf-8"></script>
<script src="/static/assets/js/iris/common.js"></script>
<script src="/static/assets/js/iris/datastore.js"></script>
<script src="/static/assets/js/core/crypto.core.js"></script>
<script src="/static/assets/js/core/crypto.md5.js"></script>
<script src="/static/assets/js/plugin/xss/xss.js"></script>
<script src="/static/assets/js/plugin/showdown/showdown.min.js" type="text/javascript" charset="utf-8"></script>
<!-- Specific JS goes HERE -->
{% block javascripts %}{% endblock javascripts %}
</body>
</html>

View File

@@ -0,0 +1,67 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>IRIS - {% block title %}Investigation{% endblock %} </title>
<meta content='width=device-width, initial-scale=1.0, shrink-to-fit=no' name='viewport' />
<link rel="icon" href="/static/assets/img/logo.ico" type="image/x-icon"/>
{% if demo_domain %}
<script defer data-domain="{{demo_domain}}" src="https://analytics.dfir-iris.org/js/plausible.js"></script>
{% endif %}
<!-- Fonts and icons -->
<script src="/static/assets/js/plugin/webfont/webfont.min.js"></script>
<script>
WebFont.load({
custom: {"families":["Lato:300,400,700,900", "Flaticon", "Font Awesome 5 Solid", "Font Awesome 5 Regular", "Font Awesome 5 Brands", "simple-line-icons"],
urls: ['/static/assets/css/fonts.min.css']},
active: function() {
sessionStorage.fonts = true;
}
});
</script>
<!-- CSS Files -->
<link rel="stylesheet" href="/static/assets/css/bootstrap.min.css">
<!-- Specific CSS goes HERE -->
{% block stylesheets %}{% endblock stylesheets %}
</head>
{% block content %}{% endblock content %}
<!-- Core JS Files -->
<script src="/static/assets/js/core/jquery.3.2.1.min.js"></script>
<script src="/static/assets/js/core/popper.min.js"></script>
<script src="/static/assets/js/core/bootstrap.min.js"></script>
<!-- jQuery UI -->
<script src="/static/assets/js/plugin/jquery-ui-1.12.1.custom/jquery-ui.min.js"></script>
<script src="/static/assets/js/plugin/jquery-ui-touch-punch/jquery.ui.touch-punch.min.js"></script>
<!-- jQuery Scrollbar -->
<script src="/static/assets/js/plugin/jquery-scrollbar/jquery.scrollbar.min.js"></script>
<!-- Datatables -->
<script src="/static/assets/js/plugin/datatables/datatables.min.js"></script>
<!-- Bootstrap Notify -->
<script src="/static/assets/js/plugin/bootstrap-notify/bootstrap-notify.min.js"></script>
<!-- Sweet Alert -->
<script src="/static/assets/js/plugin/sweetalert/sweetalert.min.js"></script>
<!-- Atlantis JS -->
<script src="/static/assets/js/plugin/html2canvas/html2canvas.min.js"></script>
<script src="/static/assets/js/core/crypto.core.js"></script>
<script src="/static/assets/js/core/crypto.md5.js"></script>
<script src="/static/assets/js/plugin/xss/xss.js"></script>
<!-- Specific JS goes HERE -->
{% block javascripts %}{% endblock javascripts %}
</html>

View File

@@ -0,0 +1,22 @@
<script>
function submit_new_customer() {
$.ajax({
url: '/customer/add',
type: "POST",
data: $('form#form_new_customer').serialize(),
dataType: "json",
success: function (data) {
jsdata = data;
if (jsdata.status == "success") {
$('#modal_add_customer').modal();
notify_success(jsdata.message);
} else {
$('#modal_customer_message').text(jsdata.message);
}
},
error: function (error) {
notify_error(error);
}
});
}
</script>

View File

@@ -0,0 +1,16 @@
{% if attributes and attributes|length > 0 %}
<div class="row text-center">
<ul class="nav nav-pills nav-default mr-4" id="pills-tab-custom-attr" role="tablist">
<li class="nav-item">
<a class="nav-link active show" id="pills-home-tab-nobd" data-toggle="pill" href="#details" role="tab" aria-controls="pills-home-nobd" aria-selected="false">Info</a>
</li>
{% for ca in attributes %}
<li class="nav-item submenu">
<a class="nav-link" data-toggle="pill" href="#{{page_uid}}{{ loop.index }}_{{ ca.lower() | replace(' ', '_' ) }}" role="tab" aria-controls="{{page_uid}}{{ loop.index }}_{{ ca.lower() | replace(' ', '_' ) }}" aria-selected="false">{{ca}}</a>
</li>
{% endfor %}
</ul>
</div>
{% endif %}

View File

@@ -0,0 +1,87 @@
{% if attributes and attributes|length > 0 %}
{% for ca in attributes %}
{% set outer_loop = loop %}
<div class="tab-pane {%if is_case_page %}{% if outer_loop.index == 1 %}{{"active show"}}{% endif %}{% endif %}"
id="{% if is_case_page %}itab_{% endif %}{{page_uid}}{{ outer_loop.index }}_{{ ca.lower() | replace(' ', '_' ) }}"
aria-labelledby="{% if is_case_page %}itab_{% endif %}{{page_uid}}{{ outer_loop.index }}_{{ ca.lower() | replace(' ', '_' ) }}-tab">
{% for cle in attributes[ca] %}
{% set tag_id = cle.lower() | replace(' ', '_' ) %}
<div class="form-group row">
<div class="col-12">
{% if attributes[ca][cle]["type"] == "input_string" %}
<div class="form-input">
<label for="{{ cle }}">{{ cle }} {% if attributes[ca][cle]['mandatory'] %} * {% endif %}
</label>
<input type="text" id="inpstd_{{page_uid}}{{ loop.index }}_{{ tag_id }}"
data-attr-for="{{cle}}" data-ref-tab="{{ca}}" class="form-control col-md-12"
{% if attributes[ca][cle]['value'] %} value="{{ attributes[ca][cle]['value'] }}" {% endif %}
{% if attributes[ca][cle]['mandatory'] %} required {% endif %}
/>
</div>
{% elif attributes[ca][cle]["type"] == "input_checkbox" %}
<div class="form-check">
<label class="form-check-label">
<input type="checkbox" id="inpchk_{{page_uid}}{{ loop.index }}_{{ tag_id }}"
data-attr-for="{{cle}}" data-ref-tab="{{ca}}" class="form-control col-md-12"
{% if attributes[ca][cle]['value'] == True %} checked {% endif %}
{% if attributes[ca][cle]['mandatory'] %} required {% endif %}
/>
<span class="form-check-sign"> {{ cle }}{% if attributes[ca][cle]['mandatory'] %} * {% endif %}
</span>
</label>
</div>
{% elif attributes[ca][cle]["type"] == "input_textfield" %}
<div class="form-input">
<label for="{{ cle }}">{{ cle }} {% if attributes[ca][cle]['mandatory'] %} * {% endif %}
</label>
<textarea class="form-control" id="inpstd_{{page_uid}}{{ loop.index }}_{{ tag_id }}"
data-attr-for="{{cle}}" data-ref-tab="{{ca}}"
rows="12" style="height:100%;"
{% if attributes[ca][cle]['mandatory'] %} required {% endif %}
>{{ attributes[ca][cle]['value'] }}</textarea>
</div>
{% elif attributes[ca][cle]["type"] == "input_select" %}
<div class="form-inline">
<label class="my-1 mr-2" for="inpselect_{{page_uid}}{{ loop.index }}_{{ tag_id }}">{{ cle }}</label>
<select class="custom-select my-1 mr-sm-2" id="inpselect_{{page_uid}}{{ loop.index }}_{{ tag_id }}"
data-attr-for="{{cle}}" data-ref-tab="{{ca}}">
{% for opt in attributes[ca][cle]['options'] %}
<option {% if opt == attributes[ca][cle]['value'] %} selected {% endif %}>{{ opt }}</option>
{% endfor %}
</select>
</div>
{% elif attributes[ca][cle]["type"] == "input_date" %}
<div class="form-input">
<label class="my-1 mr-2" for="inpstd_{{page_uid}}{{ loop.index }}_{{ tag_id }}">{{ cle }} {% if attributes[ca][cle]['mandatory'] %} * {% endif %}</label>
<input type="date" data-attr-for="{{cle}}" data-ref-tab="{{ca}}"
id="inpstd_{{page_uid}}{{ loop.index }}_{{ tag_id }}" value="{{ attributes[ca][cle]['value'] }}"
{% if attributes[ca][cle]['mandatory'] %} required {% endif %} >
</div>
{% elif attributes[ca][cle]["type"] == "input_datetime" %}
<div class="form-input">
<label class="my-1 mr-2" for="inpstd_{{page_uid}}{{ loop.index }}_{{ tag_id }}">{{ cle }} {% if attributes[ca][cle]['mandatory'] %} * {% endif %}</label>
<input type="datetime-local" data-attr-for="{{cle}}" data-ref-tab="{{ca}}"
id="inpstd_{{page_uid}}{{ loop.index }}_{{ tag_id }}" value="{{ attributes[ca][cle]['value'] }}"
{% if attributes[ca][cle]['mandatory'] %} required {% endif %}
>
</div>
{% elif attributes[ca][cle]["type"] == "raw" %}
<p>{{ cle }}</p>
{% elif attributes[ca][cle]["type"] == "html" %}
{{ attributes[ca][cle]['value']| safe }}
{% endif %}
</div>
</div>
{% endfor %}
</div>
{% endfor %}
{% endif %}

View File

@@ -0,0 +1,48 @@
{% extends "layouts/default_centered.html" %}
{% block title %} Access denied {% endblock title %}
{% block stylesheets %}
{% endblock stylesheets %}
{% block content %}
<br />
<br />
<div class="page-inner">
<div class="row d-flex justify-content-center mb-4">
<div class="col-12">
<h1 class="text-center mb-2"><i class="fa-solid fa-otter" style="font-size:60px;"></i></h1>
<h2 class="text-danger mt-2 mx-5 text-center">ACCESS DENIED</h2>
<h3 class="font-weight-light mx-5 text-center">Seems like you shouldn't be here</h3>
</div>
</div>
{% if caseid %}
<div class="mt-4 row d-flex text-center">
<div class="col-12">
<button class="btn btn-dark btn-sm" onclick="load_context_switcher();return false;">
<span class="menu-title" id="manage_group_cac_button">Get back on track</span>
</button>
</div>
</div>
{% endif %}
<div class="mt-4 row d-flex justify-content-center">
<div class="col-12">
{% if caseid %}
<p class="text-muted mb-4 text-center"><small>Access denied while trying to access case #{{ caseid }}<br />
{% else %}
<p class="text-muted mb-4 text-center"><small>Access denied while trying to access the resource<br />
Error UUID {{ error_uuid }}</small></p>
{% endif %}
</div>
</div>
</div>
{% endblock content %}
{% block javascripts %}
{% endblock javascripts %}

View File

@@ -0,0 +1,26 @@
{% extends "layouts/static-default.html" %}
{% block title %} 404 Error {% endblock title %}
{% block stylesheets %}
{% endblock stylesheets %}
{% block content %}
<br />
<br />
<h2 class="mx-5">SORRY!</h2>
<h3 class="font-weight-light mx-5">The page youre looking for was not found.</h3>
{% if msg %}
<h3 class="text-warning mx-5">
{{ msg }}
</h3>
{% endif %}
{% endblock content %}
{% block javascripts %}
{% endblock javascripts %}