mirror of
				https://github.com/evilsocket/arc.git
				synced 2024-05-26 22:37:37 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			213 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			213 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!doctype html>
 | |
| <html lang="en">
 | |
| <head>
 | |
|   <title>Arc</title>
 | |
| 
 | |
|   <meta charset="utf-8">
 | |
|   <meta http-equiv="X-UA-Compatible" content="IE=edge">
 | |
|   <meta name="viewport" content="width=device-width, initial-scale=1">
 | |
|   <meta name="description" content="Arc Secrets Manager">
 | |
|   <meta name="author" content="Simone 'evilsocket' Margaritelli">
 | |
| 
 | |
|   <link rel="shortcut icon" type="image/png" href="/img/logo.png?v=2.3"/>
 | |
|   <link rel="apple-touch-icon" href="/img/logo.png?v=2.3"/>
 | |
| 
 | |
|   <link rel="stylesheet" href="/css/bootstrap/bootstrap.min.css">
 | |
|   <link rel="stylesheet" href="/css/bootstrap/bootstrap-datetimepicker.min.css">
 | |
|   <link rel="stylesheet" href="/css/fontawesome/font-awesome.min.css">
 | |
|   <link rel="stylesheet" href="/css/jquery.editable.css">
 | |
|   <link rel="stylesheet" href="/css/style.css">
 | |
| 
 | |
|   <!-- load app version and error handler first -->
 | |
|   <script type="text/javascript" src="/js/version.js"></script>
 | |
|   <script type="text/javascript" src="/js/crash.js"></script>
 | |
| 
 | |
|   <script type="text/javascript" src="/js/libs/jquery/jquery.min.js"></script>
 | |
|   <script type="text/javascript" src="/js/libs/jquery/jquery.editable.js"></script>
 | |
|   <script type="text/javascript" src="/js/libs/jquery/jquery.timeago.js"></script>
 | |
|   <script type="text/javascript" src="/js/libs/jquery/jquery-sortable.js"></script>
 | |
|   <script type="text/javascript" src="/js/libs/jquery/jq-ajax-progress.min.js"></script>
 | |
| 
 | |
|   <script type="text/javascript" src="/js/libs/bootstrap/bootstrap.bundle.min.js"></script>
 | |
|   <script type="text/javascript" src="/js/libs/bootstrap/bootstrap-datetimepicker.min.js"></script>
 | |
|   <script type="text/javascript" src="/js/libs/angular/angular.min.js"></script>
 | |
| 
 | |
|   <script type="text/javascript" src="/js/libs/ace/ace.js"></script>
 | |
|   <script type="text/javascript" src="/js/libs/ace/ext-modelist.js"></script>
 | |
| 
 | |
|   <script type="text/javascript" src="/js/api.js?v=2"></script>
 | |
|   <script type="text/javascript" src="/js/encoding.js"></script>
 | |
|   <script type="text/javascript" src="/js/aes_cbc.js"></script>
 | |
|   <script type="text/javascript" src="/js/aes.js"></script>
 | |
|   <script type="text/javascript" src="/js/entries/base.js"></script>
 | |
|   <script type="text/javascript" src="/js/entries/input.js"></script>
 | |
|   <script type="text/javascript" src="/js/entries/url.js"></script>
 | |
|   <script type="text/javascript" src="/js/entries/text.js"></script>
 | |
|   <script type="text/javascript" src="/js/entries/file.js"></script>
 | |
|   <script type="text/javascript" src="/js/entries/password.js"></script>
 | |
|   <script type="text/javascript" src="/js/entries/markdown.js"></script>
 | |
|   <script type="text/javascript" src="/js/entries/checkbox.js"></script>
 | |
|   <script type="text/javascript" src="/js/entries/html.js"></script>
 | |
|   <script type="text/javascript" src="/js/entries/btcaddr.js"></script>
 | |
|   <script type="text/javascript" src="/js/entries/otp.js"></script>
 | |
|   <script type="text/javascript" src="/js/entries/code.js"></script>
 | |
|   <script type="text/javascript" src="/js/entries.js"></script>
 | |
|   <script type="text/javascript" src="/js/record.js"></script>
 | |
|   <script type="text/javascript" src="/js/notify.js"></script>
 | |
|   <script type="text/javascript" src="/js/app.js"></script>
 | |
| </head>
 | |
| <body id="ngscope" ng-app="PM" ng-controller="PMController">
 | |
|   <div class="main-container container-fluid">
 | |
| 
 | |
|     <div ng-include src="'/views/modals/error.html?v=2'"></div>
 | |
|     <div ng-include src="'/views/modals/event.html'"></div>
 | |
|     <div ng-include src="'/views/modals/loader.html?v=7'"></div>
 | |
| 
 | |
|     <!-- if user is not logged, show login -->
 | |
|     <div id="login" class="container" ng-if="!arc.IsLogged()" ng-include src="'/views/login.html?v=5'"></div>
 | |
| 
 | |
|     <!-- user logged but empty encryption key -->
 | |
|     <div ng-if="arc.IsLogged() && !key" style="margin-bottom:-10px; margin-top:10px;" class="alert alert-warning">
 | |
|       No encryption key provided.
 | |
|     </div>
 | |
| 
 | |
|     <!-- if user is logged instead -->
 | |
|     <span ng-if="arc.IsLogged()" ng-switch on="arc.HasStore()">
 | |
| 
 | |
|       <div class="notifications badge badge-pill badge-warning" ng-if="status.events.length" ng-include src="'/views/notifications.html'">
 | |
|       </div>
 | |
| 
 | |
|       <!-- no store selected, show available stores -->
 | |
|       <div ng-switch-when="false">
 | |
|         <ul id="stores_list" class="list-group stores-list">
 | |
|           <li class="list-group-item">
 | |
|             <div class="row">
 | |
|               <div class="col-6">
 | |
|                 <center class="action-button" ng-click="doLogout()">
 | |
|                   <i class="fa fa-sign-out" aria-hidden="true"></i>
 | |
|                 </center>    
 | |
|               </div>
 | |
|               <div class="col-6" style="border-left: 1px solid #eee">
 | |
|                 <center class="action-button" ng-click="onNewStore()">
 | |
|                   <i class="fa fa-file" aria-hidden="true"></i>
 | |
|                 </center>
 | |
|               </div>
 | |
|             </div>
 | |
|             <!-- will show session expire time when approaching 5 minutes left -->
 | |
|             <div id="session_time_left" class="alert alert-warning" style="display:none"></div>
 | |
|           </li>
 | |
| 
 | |
|           <li class="list-group-item" ng-if="!stores.length">
 | |
|             <small class="action-label">
 | |
|               No stores found, create one using the <i class="fa fa-file" aria-hidden="true"></i> icon.
 | |
|             </small>
 | |
|           </li>          
 | |
| 
 | |
|           <li class="list-group-item store-list-item" ng-repeat="s in stores" ng-click="onShowStore(s.id)">
 | |
|             <span ng-include src="'/views/store_list_item.html'"></span>
 | |
|           </li>
 | |
|         </ul>
 | |
|       </div>
 | |
| 
 | |
|       <!-- store selected, load records from it -->
 | |
|       <div ng-switch-when="true">
 | |
|         <ul id="secrets_list" class="list-group secrets-list">
 | |
| 
 | |
|           <li class="list-group-item nohover">
 | |
|             <div class="row">
 | |
|               <div class="col-6">
 | |
|                 <div class="store-media">
 | |
|                   <i class="fa fa-database" aria-hidden="true"></i>
 | |
|                 </div>
 | |
|                 <h5 class="editable" id="store_title">{{ arc.store.title }}</h5>
 | |
|                 <script type="text/javascript">
 | |
|                   $('#store_title').editable(function(v){
 | |
|                     $('#ngscope').scope().onStoreTitleChanged(v);
 | |
|                   });
 | |
|                 </script>
 | |
|               </div>
 | |
|               <div class="col-6 input-group">
 | |
|                 <input 
 | |
|                    type="text" 
 | |
|                    id="search_filter" 
 | |
|                    class="search-filter form-control border" 
 | |
|                    ng-model="search" 
 | |
|                    ng-change="updateFilter()" 
 | |
|                    placeholder="Search ..."/>
 | |
|               </div>
 | |
|             </div>
 | |
|             <!-- will show session expire time when approaching 5 minutes left -->
 | |
|             <div id="session_time_left" class="alert alert-warning" style="display:none"></div>
 | |
|           </li>
 | |
| 
 | |
|           <li class="list-group-item nohover">
 | |
|             <div class="row">
 | |
|               <div class="col-4">
 | |
|                 <center class="action-button" ng-click="onBack()">
 | |
|                   <i class="fa fa-chevron-left" aria-hidden="true"></i>
 | |
|                 </center>    
 | |
|               </div>
 | |
|               <div class="col-4" style="border-left: 1px solid #eee">
 | |
|                 <center class="action-button" ng-click="onDeleteStore()">
 | |
|                   <i class="fa fa-trash-o" aria-hidden="true"></i>
 | |
|                 </center>
 | |
|               </div>
 | |
|               <div class="col-4" style="border-left: 1px solid #eee">
 | |
|                 <center class="action-button" ng-click="onNewSecret()">
 | |
|                   <i class="fa fa-file" aria-hidden="true"></i>
 | |
|                 </center>
 | |
|               </div>
 | |
|             </div>
 | |
|           </li>
 | |
| 
 | |
|           <li class="list-group-item" ng-if="!arc.records.length">
 | |
|             <small class="action-label">
 | |
|               No records found, create one using the <i class="fa fa-file" aria-hidden="true"></i> icon.
 | |
|             </small>
 | |
|           </li>       
 | |
| 
 | |
|           <li 
 | |
|              ng-repeat="r in arc.records | orderBy:['pinned','updated_at']:true" 
 | |
|              class="list-group-item" 
 | |
|              id="secret_list_item_{{ r.id }}" 
 | |
|              ng-if="filterSecret(r)" 
 | |
|              ng-click="onShowSecret(r.id)" 
 | |
|              ng-class="{'expired': isExpired(r), 'expiring': isExpiring(r), 'pinned': isPinned(r) }">
 | |
|             <span ng-include src="'/views/secret_list_item.html?v=17'"></span>
 | |
|           </li>
 | |
|         </ul>
 | |
| 
 | |
|         <div ng-include src="'/views/modals/secret.html?v=28'"></div>
 | |
|       </div>
 | |
|     </span>
 | |
| 
 | |
|   </div>
 | |
| 
 | |
| 
 | |
|   <footer>
 | |
|     <center>
 | |
|       <small>
 | |
| 
 | |
|         <span ng-if="arc.IsLogged()">
 | |
| 
 | |
|           <span ng-switch on="status.online">
 | |
|             <div ng-switch-when="false" style="color: red; font-weight: bold;">
 | |
|               The API is offline.
 | |
|             </div>
 | |
|             <div ng-switch-when="true">
 | |
|               Running v{{ status.version }}, started {{ status.started | timeago }}, {{ status.size | bytes }} big,
 | |
|               latency is {{ latency }} ms.
 | |
|             </div>
 | |
|           </span>
 | |
| 
 | |
|         </span>
 | |
| 
 | |
|         <a href="https://github.com/evilsocket/arc">Arc</a> was made with <span style="color:red">♥</span> by
 | |
|         <a href="https://www.evilsocket.net/" target="_blank" >Simone 'evilsocket' Margaritelli</a> 
 | |
|       </small>
 | |
|     </center>
 | |
|   </footer>
 | |
| 
 | |
| </body>
 | |
| </html>
 | 
