Compare commits

...

5 Commits

Author SHA1 Message Date
subhra74 0591902de1 misc 2019-07-21 09:49:36 +02:00
subhra74 1784d8abdc refactoring 2019-07-20 09:02:38 +02:00
subhra74 cf9150872c Updated readme 2019-07-19 08:21:29 +02:00
subhra74 f5595df57f updated readme 2019-07-19 08:03:55 +02:00
subhra74 6aa833b546 updated readme with new link 2019-07-19 07:48:30 +02:00
129 changed files with 12761 additions and 1414 deletions

View File

@ -1,4 +1,4 @@
# Easy Cloud Shell
# Linux Web Console
Easy to use web based file manager with built in text editor, terminal, image viewer and video player
@ -19,12 +19,12 @@ run commands using built in terminal, and view images and videos, all from your
Installation
- Install java
- Download the binary archive from https://github.com/subhra74/easy-cloud-shell/releases
- Download the binary archive from https://github.com/subhra74/linux-web-console/releases
- Extract the archive to a suitable location
- Make file executable with chmod
- Run ./start-cloud-shell.sh (For security reasons do not use root user)
- Run ./web-console.sh (For security reasons do not use root user)
- Open recent version on Chrome or Firefox and visit https://[your ip address]:8055/ or, on local machine use https://localhost:8055/
- Ignore any certificate error, appeared due to newly created self signed certificate by easy cloud shell.
- Ignore any certificate error, appeared due to newly created self signed certificate by linux web console.
- Initial credential:
Username: admin
Password: admin

View File

@ -1,10 +1,10 @@
1. Install java and make sure java is in PATH
2. Download the binary archive from https://github.com/subhra74/easy-cloud-shell/releases
2. Download the binary archive from https://github.com/subhra74/linux-web-console/releases
3. Extract the archive to a suitable location and switch to that directory
4. Make file executable with chmod if required
5. Run ./start-cloud-shell.sh (For security reasons do not use root user)
5. Run ./start-web-console.sh (For security reasons do not use root user)
6. Open recent version on Chrome or Firefox and visit https://[your ip address]:8055/ or, on local machine use https://localhost:8055/
7. Ignore any certificate error, appeared due to newly created self signed certificate by easy cloud shell.
7. Ignore any certificate error, appeared due to newly created self signed certificate by the app.
8. Initial credential: admin/admin
Please change default username and password from Settings tab in the app.
Also you can change default port by setting environment variable server.port=<any port number>

View File

@ -1,178 +1,178 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>webshell</groupId>
<artifactId>app</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>app</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jetbrains.pty4j</groupId>
<artifactId>pty4j</artifactId>
<version>0.9.3</version>
</dependency>
<!-- <dependency> -->
<!-- <groupId>org.jetbrains.pty4j</groupId> -->
<!-- <artifactId>purejavacomm</artifactId> -->
<!-- <version>0.0.11.1</version> -->
<!-- </dependency> -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>0.10.5</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>0.10.5</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-jackson</artifactId>
<version>0.10.5</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.54</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna-platform</artifactId>
<version>5.3.1</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>5.3.1</version>
</dependency>
<!-- <dependency> -->
<!-- <groupId>log4j</groupId> -->
<!-- <artifactId>log4j</artifactId> -->
<!-- <version>1.2.17</version> -->
<!-- </dependency> -->
<!-- <dependency> -->
<!-- <groupId>com.google.guava</groupId> -->
<!-- <artifactId>guava</artifactId> -->
<!-- <version>27.0-jre</version> -->
<!-- </dependency> -->
<!-- <dependency> -->
<!-- <groupId>log4j</groupId> -->
<!-- <artifactId>log4j</artifactId> -->
<!-- <version>1.2.17</version> -->
<!-- </dependency> -->
<!-- https://mvnrepository.com/artifact/org.jetbrains/annotations -->
<!-- <dependency> -->
<!-- <groupId>org.jetbrains</groupId> -->
<!-- <artifactId>annotations</artifactId> -->
<!-- <version>16.0.3</version> -->
<!-- </dependency> -->
<!-- https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15on -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.62</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.bouncycastle/bcpkix-jdk15on -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
<version>1.62</version>
</dependency>
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>1.21</version>
</dependency>
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-dist</artifactId>
<version>3.13.3</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-core</artifactId>
<version>3.13.3</version>
</dependency>
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-json</artifactId>
<version>3.13.3</version>
</dependency>
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-parent</artifactId>
<version>3.13.3</version>
<type>pom</type>
</dependency>
</dependencies>
<repositories>
<repository>
<id>bintray-jetbrains-pty4j</id>
<name>bintray</name>
<url>https://jetbrains.bintray.com/pty4j</url>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<finalName>cloud-shell</finalName>
</build>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>web-console</groupId>
<artifactId>app</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>app</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jetbrains.pty4j</groupId>
<artifactId>pty4j</artifactId>
<version>0.9.3</version>
</dependency>
<!-- <dependency> -->
<!-- <groupId>org.jetbrains.pty4j</groupId> -->
<!-- <artifactId>purejavacomm</artifactId> -->
<!-- <version>0.0.11.1</version> -->
<!-- </dependency> -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>0.10.5</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>0.10.5</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-jackson</artifactId>
<version>0.10.5</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.54</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna-platform</artifactId>
<version>5.3.1</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>5.3.1</version>
</dependency>
<!-- <dependency> -->
<!-- <groupId>log4j</groupId> -->
<!-- <artifactId>log4j</artifactId> -->
<!-- <version>1.2.17</version> -->
<!-- </dependency> -->
<!-- <dependency> -->
<!-- <groupId>com.google.guava</groupId> -->
<!-- <artifactId>guava</artifactId> -->
<!-- <version>27.0-jre</version> -->
<!-- </dependency> -->
<!-- <dependency> -->
<!-- <groupId>log4j</groupId> -->
<!-- <artifactId>log4j</artifactId> -->
<!-- <version>1.2.17</version> -->
<!-- </dependency> -->
<!-- https://mvnrepository.com/artifact/org.jetbrains/annotations -->
<!-- <dependency> -->
<!-- <groupId>org.jetbrains</groupId> -->
<!-- <artifactId>annotations</artifactId> -->
<!-- <version>16.0.3</version> -->
<!-- </dependency> -->
<!-- https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15on -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.62</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.bouncycastle/bcpkix-jdk15on -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
<version>1.62</version>
</dependency>
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>1.21</version>
</dependency>
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-dist</artifactId>
<version>3.13.3</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-core</artifactId>
<version>3.13.3</version>
</dependency>
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-json</artifactId>
<version>3.13.3</version>
</dependency>
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-parent</artifactId>
<version>3.13.3</version>
<type>pom</type>
</dependency>
</dependencies>
<repositories>
<repository>
<id>bintray-jetbrains-pty4j</id>
<name>bintray</name>
<url>https://jetbrains.bintray.com/pty4j</url>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<finalName>web-console</finalName>
</build>
</project>

View File

@ -31,17 +31,17 @@ public class HealthApiController {
@Autowired
private SystemHealthMonitor healthMon;
@GetMapping("/app/sys/stats")
@GetMapping("/sys/stats")
public SystemStats getStats() {
return this.healthMon.getStats();
}
@GetMapping("/app/sys/procs")
@GetMapping("/sys/procs")
public List<ProcessInfo> getProcessList() {
return this.healthMon.getProcessList();
}
@PostMapping("/app/sys/procs")
@PostMapping("/sys/procs")
public Map<String, Boolean> killProcesses(
@RequestBody List<Integer> pidList) {
Map<String, Boolean> map = new HashMap<>();

View File

@ -1,24 +1,18 @@
package cloudshell.app;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class AppApplicationTests {
@Autowired
private BCryptPasswordEncoder passwordEncoder;
@Test
public void contextLoads() {
System.out.println("Password match: " + passwordEncoder.matches("Starscream@64",
"$2a$10$greBvSdJwMfmrz7Fof0mB.i2oiBNypVeGa9KCBOZ2BPMxXBa3xJUK"));
}
}
package cloudshell.app;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = AppApplicationTests.class)
public class AppApplicationTests {
@Test
public void contextLoads() {
}
}

View File

@ -1,7 +0,0 @@
#/bin/sh
mkdir ~/.easy-cloud-shell
nohup java -jar cloud-shell.jar >$HOME/.easy-cloud-shell/log.txt 2>&1&

4
app/start-web-console.sh Normal file
View File

@ -0,0 +1,4 @@
#/bin/sh
mkdir ~/.linux-web-console
nohup java -jar web-console.jar >$HOME/.linux-web-console/log.txt 2>&1&

View File

@ -42,5 +42,3 @@ testem.log
# System Files
.DS_Store
Thumbs.db
ui/package-lock.json

View File

@ -1,4 +1,4 @@
# WebShellJs
# WebConsole
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.2.2.

View File

@ -3,7 +3,7 @@
"version": 1,
"newProjectRoot": "projects",
"projects": {
"cloud-shell-js": {
"web-console": {
"root": "",
"sourceRoot": "src",
"projectType": "application",
@ -13,7 +13,7 @@
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/cloud-shell-js",
"outputPath": "dist/web-console",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
@ -57,18 +57,18 @@
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "cloud-shell-js:build"
"browserTarget": "web-console:build"
},
"configurations": {
"production": {
"browserTarget": "cloud-shell-js:build:production"
"browserTarget": "web-console:build:production"
}
}
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "cloud-shell-js:build"
"browserTarget": "web-console:build"
}
},
"test": {
@ -102,7 +102,7 @@
}
}
},
"cloud-shell-js-e2e": {
"web-console-e2e": {
"root": "e2e/",
"projectType": "application",
"prefix": "",
@ -111,11 +111,11 @@
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "e2e/protractor.conf.js",
"devServerTarget": "cloud-shell-js:serve"
"devServerTarget": "web-console:serve"
},
"configurations": {
"production": {
"devServerTarget": "cloud-shell-js:serve:production"
"devServerTarget": "web-console:serve:production"
}
}
},
@ -131,5 +131,5 @@
}
}
},
"defaultProject": "cloud-shell-js"
"defaultProject": "web-console"
}

View File

@ -10,7 +10,7 @@ describe('workspace-project App', () => {
it('should display welcome message', () => {
page.navigateTo();
expect(page.getTitleText()).toEqual('Welcome to web-shell-js!');
expect(page.getTitleText()).toEqual('Welcome to web-console!');
});
afterEach(async () => {

11356
ui/web-console/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
{
"name": "cloud-shell-js",
"name": "web-console",
"version": "0.0.0",
"scripts": {
"ng": "ng",
@ -19,18 +19,18 @@
"@angular/platform-browser": "~7.2.0",
"@angular/platform-browser-dynamic": "~7.2.0",
"@angular/router": "~7.2.0",
"core-js": "^2.5.4",
"rxjs": "~6.3.3",
"tslib": "^1.9.0",
"zone.js": "~0.8.26",
"@ng-bootstrap/ng-bootstrap": "^4.2.0",
"@swimlane/ngx-charts": "^12.0.1",
"bootstrap": "^4.3.1",
"chart.js": "^2.8.0",
"core-js": "^2.5.4",
"font-awesome": "^4.7.0",
"ng2-ace-editor": "^0.3.9",
"ng2-charts": "^2.2.3",
"rxjs": "~6.3.3",
"tslib": "^1.9.0",
"xterm": "^3.14.5",
"zone.js": "~0.8.26"
"ng2-charts": "2.2.5",
"xterm": "^3.14.5"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.12.0",
@ -53,4 +53,4 @@
"tslint": "~5.11.0",
"typescript": "~3.2.2"
}
}
}

View File

@ -1,175 +1,175 @@
.selected-tab{
border-bottom: 3px solid dodgerblue;
border-right: 1px solid rgb(230,230,230);
}
.normal-tab{
border-bottom: 3px solid rgb(240,240,240);
border-right: 1px solid rgb(230,230,230);
}
.nav-tree {
height: 100%;
width: 250px;
min-width: 250px;
background: rgb(240, 240, 240);
overflow: hidden;
overflow-x: auto;
overflow-y: auto;
border-right: 1px solid rgb(230, 230, 230);
padding-top: 10px;
}
.file-list {
flex: 1;
overflow: hidden;
overflow-x: auto;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
position: relative;
max-width: calc(100vw - 250px);
}
.file-list-header {
display: flex;
height: 51px;
background: white;
border-bottom: 1px solid rgb(230, 230, 230);
cursor: pointer;
position: sticky;
top: 0px;
box-shadow: 0px 0px 6px 0px rgb(230, 230, 230);
}
.file-list-item-row {
display: flex;
height: 51px;
border-bottom: 1px solid rgb(240, 240, 240);
overflow: hidden;
}
.desktop-file-list-first-item {
flex: 2;
overflow-x: hidden;
line-height: 50px;
display: flex;
padding-left: 10px;
}
.desktop-file-list-other-item {
flex: 1;
line-height: 50px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.mobile-file-list-row {
display: none;
width: 100%;
}
.desktop-nav {
display: flex;
padding: 10px;
padding-left: 15px;
background: rgb(245, 245, 245);
border-bottom: 1px solid rgb(230, 230, 230);
flex-wrap: nowrap;
overflow: hidden;
}
.mobile-nav {
display: none;
justify-content: space-around;
flex-wrap: nowrap;
overflow: hidden;
background: rgb(245, 245, 245);
border-top: 1px solid rgb(230, 230, 230);
}
.desktop-file-tabs {
height: 50px;
width: 100%;
display: flex;
background: rgb(240, 240, 240);
border-bottom: 1px solid rgb(220,220,220);
}
.dropdown-ctx-menu {
display: flex;
width: 200px;
flex-direction: column;
position: fixed;
right: 0px;
max-height: 50vh;
background: white;
border: 1px solid rgb(200, 200, 200);
box-shadow: 3px 3px 10px 0px rgb(200, 200, 200);
z-index: 301;
overflow-y: auto;
}
.noselect {
-webkit-touch-callout: none;
/* iOS Safari */
-webkit-user-select: none;
/* Safari */
-khtml-user-select: none;
/* Konqueror HTML */
-moz-user-select: none;
/* Firefox */
-ms-user-select: none;
/* Internet Explorer/Edge */
user-select: none;
/* Non-prefixed version, currently
supported by Chrome and Opera */
}
@media (max-width:800px) {
[class="nav-tree"] {
display: none;
}
[class="file-list"] {
max-width: 100vw;
}
[class="file-list-header"] {
display: none;
}
[class*="file-list-content-wrapper"] {
padding-top: 0px;
}
[class*="file-list-item-row"] {
height: 80px;
}
[class="desktop-file-list-first-item"] {
display: none;
}
[class="desktop-file-list-other-item"] {
display: none;
}
[class="mobile-file-list-row"] {
display: flex;
}
[class="desktop-file-list-other-item"] {
display: none;
}
[class="desktop-nav"] {
display: none;
}
[class="mobile-nav"] {
display: flex;
}
[class*="desktop-file-tabs"] {
display: none;
}
[class="dropdown-ctx-menu"] {
bottom: 40px;
}
}
@media (min-width:800px) {
[class="dropdown-ctx-menu"] {
top: 100px;
}
.selected-tab{
border-bottom: 3px solid dodgerblue;
border-right: 1px solid rgb(230,230,230);
}
.normal-tab{
border-bottom: 3px solid rgb(240,240,240);
border-right: 1px solid rgb(230,230,230);
}
.nav-tree {
height: 100%;
width: 250px;
min-width: 250px;
background: rgb(240, 240, 240);
overflow: hidden;
overflow-x: auto;
overflow-y: auto;
border-right: 1px solid rgb(230, 230, 230);
padding-top: 10px;
}
.file-list {
flex: 1;
overflow: hidden;
overflow-x: auto;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
position: relative;
max-width: calc(100vw - 250px);
}
.file-list-header {
display: flex;
height: 51px;
background: white;
border-bottom: 1px solid rgb(230, 230, 230);
cursor: pointer;
position: sticky;
top: 0px;
box-shadow: 0px 0px 6px 0px rgb(230, 230, 230);
}
.file-list-item-row {
display: flex;
height: 51px;
border-bottom: 1px solid rgb(240, 240, 240);
overflow: hidden;
}
.desktop-file-list-first-item {
flex: 2;
overflow-x: hidden;
line-height: 50px;
display: flex;
padding-left: 10px;
}
.desktop-file-list-other-item {
flex: 1;
line-height: 50px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.mobile-file-list-row {
display: none;
width: 100%;
}
.desktop-nav {
display: flex;
padding: 10px;
padding-left: 15px;
background: rgb(245, 245, 245);
border-bottom: 1px solid rgb(230, 230, 230);
flex-wrap: nowrap;
overflow: hidden;
}
.mobile-nav {
display: none;
justify-content: space-around;
flex-wrap: nowrap;
overflow: hidden;
background: rgb(245, 245, 245);
border-top: 1px solid rgb(230, 230, 230);
}
.desktop-file-tabs {
height: 50px;
width: 100%;
display: flex;
background: rgb(240, 240, 240);
border-bottom: 1px solid rgb(220,220,220);
}
.dropdown-ctx-menu {
display: flex;
width: 200px;
flex-direction: column;
position: fixed;
right: 0px;
max-height: 50vh;
background: white;
border: 1px solid rgb(200, 200, 200);
box-shadow: 3px 3px 10px 0px rgb(200, 200, 200);
z-index: 301;
overflow-y: auto;
}
.noselect {
-webkit-touch-callout: none;
/* iOS Safari */
-webkit-user-select: none;
/* Safari */
-khtml-user-select: none;
/* Konqueror HTML */
-moz-user-select: none;
/* Firefox */
-ms-user-select: none;
/* Internet Explorer/Edge */
user-select: none;
/* Non-prefixed version, currently
supported by Chrome and Opera */
}
@media (max-width:800px) {
[class="nav-tree"] {
display: none;
}
[class="file-list"] {
max-width: 100vw;
}
[class="file-list-header"] {
display: none;
}
[class*="file-list-content-wrapper"] {
padding-top: 0px;
}
[class*="file-list-item-row"] {
height: 80px;
}
[class="desktop-file-list-first-item"] {
display: none;
}
[class="desktop-file-list-other-item"] {
display: none;
}
[class="mobile-file-list-row"] {
display: flex;
}
[class="desktop-file-list-other-item"] {
display: none;
}
[class="desktop-nav"] {
display: none;
}
[class="mobile-nav"] {
display: flex;
}
[class*="desktop-file-tabs"] {
display: none;
}
[class="dropdown-ctx-menu"] {
bottom: 40px;
}
}
@media (min-width:800px) {
[class="dropdown-ctx-menu"] {
top: 100px;
}
}

View File

@ -1,170 +1,170 @@
.fullscreen {
width: 100vw;
height: 100vh;
position: fixed;
bottom: 0px;
right: 0px;
display: flex;
flex-direction: column;
background: black;
color: white;
z-index: 100;
}
.minimized {
width: 200px;
position: fixed;
right: 10px;
bottom: 0px;
color: white;
background: black;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
}
.rounded-top {
border-top-left-radius: 10px;
border-top-right-radius: 10px;
}
.normal {
width: 740px;
height: 450px;
position: fixed;
bottom: 0px;
right: 10px;
display: flex;
flex-direction: column;
background: black;
color: white;
z-index: 100;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
}
.term-normal {
height: 410px;
}
.term-fullscreen {
height: calc(100vh - 40px);
}
.router-wrapper {
padding-top: 55px;
height: 100%;
}
.desktop-title {
flex: 1;
line-height: 55px;
color: gray;
font-size: 22px;
}
.mobile-title {
flex: 1;
line-height: 55px;
color: gray;
font-size: 22px;
display: none;
}
.desktop-nav {
height: 55px;
/* background: rgb(33, 37, 43); */
background: rgb(36, 46, 43);;
display: flex;
justify-content: flex-end;
box-shadow: 0px 3px 6px 0px rgb(200, 200, 200);
margin-bottom: 5px;
position: fixed;
width: 100vw;
z-index: 150;
padding-left: 20px;
padding-right: 20px;
left: 0px;
top: 0px;
}
.mobile-nav {
background: rgb(33, 37, 43);
display: none;
justify-content: space-around;
box-shadow: 0px 3px 6px 0px rgb(200, 200, 200);
margin-bottom: 5px;
position: fixed;
width: 100vw;
z-index: 150;
padding-left: 20px;
padding-right: 20px;
left: 0px;
top: 0px;
}
.desktop-terminal-wrapper {
display: block;
}
.terminal-btn {
position: fixed;
right: 30px;
bottom: 30px;
border-radius: 50%;
background: rgb(20, 20, 20);
color: white;
width: 50px;
text-align: center;
height: 50px;
z-index: 300;
box-shadow: 2px 2px 5px gray;
}
.active-link {
background: rgb(62, 66, 81)
}
.device-keyboard {
padding-right: 10px;
cursor: pointer;
color: white;
display: none;
}
@media (max-width:800px) {
[class="desktop-nav"] {
display: none;
}
[class="mobile-nav"] {
display: flex;
}
[class*="desktop-terminal-wrapper"] {
display: none;
}
[class="terminal-btn"] {
bottom: 60px;
right: 30px;
}
[class*="desktop-title"] {
display: none;
}
[class*="mobile-title"] {
display: block;
}
[class="device-keyboard"] {
display: block;
}
[class="term-fullscreen"]{
height: 50vh
}
}
.bg-gradient {
background: #3A1C71;
/* fallback for old browsers */
background: -webkit-linear-gradient(to right, #FFAF7B, #D76D77, #3A1C71);
/* Chrome 10-25, Safari 5.1-6 */
background: linear-gradient(to right, #FFAF7B, #D76D77, #3A1C71);
/* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
.fullscreen {
width: 100vw;
height: 100vh;
position: fixed;
bottom: 0px;
right: 0px;
display: flex;
flex-direction: column;
background: black;
color: white;
z-index: 100;
}
.minimized {
width: 200px;
position: fixed;
right: 10px;
bottom: 0px;
color: white;
background: black;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
}
.rounded-top {
border-top-left-radius: 10px;
border-top-right-radius: 10px;
}
.normal {
width: 740px;
height: 450px;
position: fixed;
bottom: 0px;
right: 10px;
display: flex;
flex-direction: column;
background: black;
color: white;
z-index: 100;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
}
.term-normal {
height: 410px;
}
.term-fullscreen {
height: calc(100vh - 40px);
}
.router-wrapper {
padding-top: 55px;
height: 100%;
}
.desktop-title {
flex: 1;
line-height: 55px;
color: gray;
font-size: 22px;
}
.mobile-title {
flex: 1;
line-height: 55px;
color: gray;
font-size: 22px;
display: none;
}
.desktop-nav {
height: 55px;
/* background: rgb(33, 37, 43); */
background: rgb(36, 46, 43);;
display: flex;
justify-content: flex-end;
box-shadow: 0px 3px 6px 0px rgb(200, 200, 200);
margin-bottom: 5px;
position: fixed;
width: 100vw;
z-index: 150;
padding-left: 20px;
padding-right: 20px;
left: 0px;
top: 0px;
}
.mobile-nav {
background: rgb(33, 37, 43);
display: none;
justify-content: space-around;
box-shadow: 0px 3px 6px 0px rgb(200, 200, 200);
margin-bottom: 5px;
position: fixed;
width: 100vw;
z-index: 150;
padding-left: 20px;
padding-right: 20px;
left: 0px;
top: 0px;
}
.desktop-terminal-wrapper {
display: block;
}
.terminal-btn {
position: fixed;
right: 30px;
bottom: 30px;
border-radius: 50%;
background: rgb(20, 20, 20);
color: white;
width: 50px;
text-align: center;
height: 50px;
z-index: 300;
box-shadow: 2px 2px 5px gray;
}
.active-link {
background: rgb(62, 66, 81)
}
.device-keyboard {
padding-right: 10px;
cursor: pointer;
color: white;
display: none;
}
@media (max-width:800px) {
[class="desktop-nav"] {
display: none;
}
[class="mobile-nav"] {
display: flex;
}
[class*="desktop-terminal-wrapper"] {
display: none;
}
[class="terminal-btn"] {
bottom: 60px;
right: 30px;
}
[class*="desktop-title"] {
display: none;
}
[class*="mobile-title"] {
display: block;
}
[class="device-keyboard"] {
display: block;
}
[class="term-fullscreen"]{
height: 50vh
}
}
.bg-gradient {
background: #3A1C71;
/* fallback for old browsers */
background: -webkit-linear-gradient(to right, #FFAF7B, #D76D77, #3A1C71);
/* Chrome 10-25, Safari 5.1-6 */
background: linear-gradient(to right, #FFAF7B, #D76D77, #3A1C71);
/* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
}

View File

@ -1,13 +1,13 @@
.search-box{
border-bottom: 1px solid rgb(200,200,200);
margin-right: 10px;
}
.search-text{
border: none;
margin-left: 5px;
}
.search-text:focus{
outline: none;
.search-box{
border-bottom: 1px solid rgb(200,200,200);
margin-right: 10px;
}
.search-text{
border: none;
margin-left: 5px;
}
.search-text:focus{
outline: none;
}

Some files were not shown because too many files have changed in this diff Show More