delete electron
12
.gitignore
vendored
@@ -1,12 +0,0 @@
|
||||
.vscode/
|
||||
.idea/
|
||||
node_modules/
|
||||
release-builds/
|
||||
dest/
|
||||
dist/
|
||||
bundle/*.js
|
||||
bundle/**/*.js
|
||||
bundle/**/**/*.js
|
||||
npm-debug\.log
|
||||
package-lock\.json
|
||||
|
||||
21
LICENSE
@@ -1,21 +0,0 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2017 Oguzhan Inan
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
150
README.md
@@ -1,150 +0,0 @@
|
||||
|
||||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/oguzhaninan/Stacer/master/Screenshots/Header.png" width="800">
|
||||
</p>
|
||||
<p align="center">
|
||||
<b>Linux System Optimizer and Monitoring</b>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/sindresorhus/awesome-electron">
|
||||
<img alt="Awesome" src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg"/>
|
||||
</a>
|
||||
<a href="https://sourceforge.net/projects/stacer/files/" rel="nofollow">
|
||||
<img alt="Download Stacer" src="https://img.shields.io/sourceforge/dt/stacer.svg"/>
|
||||
</a>
|
||||
<a href="http://www.kernel.org">
|
||||
<img alt="Platform (GNU/Linux)" src="https://img.shields.io/badge/platform-GNU/Linux-blue.svg"/>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://sourceforge.net/projects/stacer/files/" >
|
||||
<img src="https://a.fsdn.com/con/app/sf-download-button" />
|
||||
</a>
|
||||
</p>
|
||||
|
||||
## Reviews
|
||||
<p align="left">
|
||||
<a href="http://www.omgubuntu.co.uk/2017/01/stacer-system-optimizer-for-ubuntu">
|
||||
<img width="70px" src="http://www.omgubuntu.co.uk/wp-content/themes/omgubuntu-theme-3.6.1/images/logo.png"/>
|
||||
</a>
|
||||
<a href="http://www.diolinux.com.br/2017/02/stacer-um-programa-para-otimizar-o-ubuntu.html">
|
||||
<img width="170px" src="http://coletivo.semanadolinux.com.br/images/site/diolinux.png"/>
|
||||
</a>
|
||||
<a href="https://www.genbeta.com/linux/stacer-una-app-todo-en-uno-que-te-deja-monitorizar-y-optimizar-el-sistema-en-ubuntu">
|
||||
<img width="160px" src="http://seanfee.com/wp-content/uploads/2014/04/Logo_genbeta.jpg"/>
|
||||
</a>
|
||||
<a href="http://computerhoy.com/noticias/software/stacer-herramienta-que-te-permite-optimizar-ubuntu-57974">
|
||||
<img width="130px" src="http://computerhoy.com/sites/computerhoy.com/themes/computerhoy/logo-puntocom.png"/>
|
||||
</a>
|
||||
<a href="http://www.dobreprogramy.pl/Stacer-program-do-optymalizacji-Ubuntu-ktory-wyglada-jakby-uciekl-z-Windowsa,News,78941.html">
|
||||
<img width="160px" src="http://storage.dobreprogramy.pl/artykuly/9urodziny/logoDP-napis.png"/>
|
||||
</a>
|
||||
<a href="http://blog.desdelinux.net/optimizar-debian-ubuntu-linux-mint-derivados-stacer/">
|
||||
<img width="160px" src="http://i.imgur.com/eV1WxYZ.png"/>
|
||||
</a>
|
||||
<a href="http://www.techrepublic.com/article/how-to-install-stacer-for-quick-linux-system-optimization/">
|
||||
<img width="160px" src="https://static1.squarespace.com/static/55afdc11e4b000b229a97849/t/55b13f1de4b044f556a02524/1437679408913/"/>
|
||||
</a>
|
||||
<a href="https://www.fossmint.com/stacer-ubuntu-system-optimizer/">
|
||||
<img width="160px" src="https://www.fossmint.com/wp-content/uploads/2017/02/logo.png"/>
|
||||
</a>
|
||||
<a href="http://www.2daygeek.com/stacer-linux-system-optimizer-and-monitoring-tool/">
|
||||
<img width="160px" src="http://www.2daygeek.com/wp-content/uploads/2015/12/2day-geek-new-logo-final.png"/>
|
||||
</a>
|
||||
<a href="http://www.noobslab.com/2017/03/stacer-sytem-optimizer-must-have.html">
|
||||
<img width="160px" src="http://2.bp.blogspot.com/-Pnf0jwJPpEg/VzJxbWzYgCI/AAAAAAAAHhA/5WJys7XD_1QFHF-CfEp6Bo7VrVaubN3sgCK4B/s1600/nl-logo-1.gif"/>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
## Installing
|
||||
|
||||
### Required for Ubuntu 14
|
||||
|
||||
Run `sudo apt-get install systemd -f`
|
||||
|
||||
### AppImage
|
||||
|
||||
1. Download `stacer-1.0.7-x86_64.AppImage` from the [Stacer releases page](https://github.com/oguzhaninan/Stacer/releases).
|
||||
2. Make it executable `sudo chmod a+x stacer*.AppImage`
|
||||
3. Run `./stacer*.AppImage`
|
||||
|
||||
### Debian Linux x64
|
||||
|
||||
1. Download `stacer_1.0.7_amd64.deb` from the [Stacer releases page](https://github.com/oguzhaninan/Stacer/releases).
|
||||
2. Run `sudo dpkg --install stacer_1.0.7_amd64.deb` on the downloaded package.
|
||||
3. Launch Stacer using the installed `stacer` command.
|
||||
|
||||
### Debian Linux x86
|
||||
|
||||
1. Download `stacer_1.0.7_i386.deb` from the [Stacer releases page](https://github.com/oguzhaninan/Stacer/releases).
|
||||
2. Run `sudo dpkg --install stacer_1.0.7_i386.deb` on the downloaded package.
|
||||
3. Launch Stacer using the installed `stacer` command.
|
||||
|
||||
### Fedora
|
||||
|
||||
1. Download `stacer-1.0.7.rpm` from the [Stacer releases page](https://github.com/oguzhaninan/Stacer/releases).
|
||||
2. Run `sudo rpm --install stacer-1.0.7.rpm` on the downloaded package.
|
||||
3. Launch Stacer using the installed `stacer` command.
|
||||
|
||||
## Build from source
|
||||
|
||||
1. `git clone https://github.com/oguzhaninan/Stacer.git`
|
||||
2. `cd Stacer`
|
||||
3. `npm install && npm run build && npm start`
|
||||
|
||||
## Uninstalling
|
||||
- Run `sudo dpkg -r stacer`
|
||||
|
||||
## Screenshots
|
||||
|
||||
### Dashboard
|
||||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/oguzhaninan/Stacer/master/Screenshots/Screenshot-v1.0.7-1.png" width="700">
|
||||
</p>
|
||||
|
||||
### System Cleaner
|
||||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/oguzhaninan/Stacer/master/Screenshots/Screenshot-v1.0.7-2.png" width="700">
|
||||
</p>
|
||||
|
||||
### Startup Apps
|
||||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/oguzhaninan/Stacer/master/Screenshots/Screenshot-v1.0.7-3.png" width="700">
|
||||
</p>
|
||||
|
||||
### Startup Apps - Add App
|
||||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/oguzhaninan/Stacer/master/Screenshots/Screenshot-v1.0.7-4.png" width="700">
|
||||
</p>
|
||||
|
||||
### Services
|
||||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/oguzhaninan/Stacer/master/Screenshots/Screenshot-v1.0.7-5.png" width="700">
|
||||
</p>
|
||||
|
||||
### Processes
|
||||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/oguzhaninan/Stacer/master/Screenshots/Screenshot-v1.0.7-6.png" width="700">
|
||||
</p>
|
||||
|
||||
### Uninstaller
|
||||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/oguzhaninan/Stacer/master/Screenshots/Screenshot-v1.0.7-7.png" width="700">
|
||||
</p>
|
||||
|
||||
### Resources
|
||||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/oguzhaninan/Stacer/master/Screenshots/Screenshot-v1.0.7-8.png" width="700">
|
||||
</p>
|
||||
|
||||
### Resources
|
||||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/oguzhaninan/Stacer/master/Screenshots/Screenshot-v1.0.7-9.png" width="700">
|
||||
</p>
|
||||
|
||||
### Settings
|
||||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/oguzhaninan/Stacer/master/Screenshots/Screenshot-v1.0.7-10.png" width="700">
|
||||
</p>
|
||||
|
Before Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 88 KiB |
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 123 KiB |
|
Before Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 88 KiB |
|
Before Width: | Height: | Size: 36 KiB |
6
assets/css/amaran.min.css
vendored
@@ -1,6 +0,0 @@
|
||||
.amaran-overlay{position:fixed;width:100%;height:100%;top:0;left:0;background:rgba(153,204,51,.9);display:block;z-index:777}.amaran-overlay .amaran-wrapper{z-index:9999}
|
||||
.amaran.awesome{width:300px;min-height:65px;background:#f3f3f3;color:#222;margin:15px;padding:5px 5px 5px 70px;font-family:"Open Sans",Helvetica,Arial,sans-serif;font-size:16px;font-weight:600;box-shadow:1px 1px 1px #000}.amaran.awesome .icon{width:50px;height:50px;position:absolute;top:50%;left:10px;background:#000;margin-top:-25px;border-radius:50%;text-align:center;line-height:50px;font-size:22px}.amaran.awesome p{padding:0;margin:0}.amaran.awesome p span{font-weight:300}.amaran.awesome p span.light{font-size:13px;display:block;color:#777}.amaran.awesome.ok p.bold{color:#178B13}.amaran.awesome.ok .icon{background-color:#178B13;color:#fff}.amaran.awesome.error p.bold{color:#D82222}.amaran.awesome.error .icon{background-color:#D82222;color:#fff}.amaran.awesome.warning p.bold{color:#9F6000}.amaran.awesome.warning .icon{background-color:#9F6000;color:#fff}.amaran.awesome.yellow p.bold{color:#CFA846}.amaran.awesome.yellow .icon{background-color:#CFA846;color:#fff}.amaran.awesome.blue p.bold{color:#2980b9}.amaran.awesome.blue .icon{background-color:#2980b9;color:#fff}.amaran.awesome.green p.bold{color:#e12b28}.amaran.awesome.green .icon{background-color:#e12b28;color:#fff}.amaran.awesome.purple p.bold{color:#5B54AA}.amaran.awesome.purple .icon{background-color:#5B54AA;color:#fff}
|
||||
.amaran.colorful{width:300px;min-height:45px;overflow:hidden;background-color:transparent;z-index:1}.amaran.colorful .colorful-inner{width:100%;min-height:45px;display:block;position:relative;background-color:#484860;padding:15px 25px 15px 15px;color:#fff;font-size:14px;border-bottom:1px solid rgba(0,0,0,.2);border-radius:4px}.amaran.colorful .amaran-close{color:#fff;z-index:2;top:8px;right:8px;text-align:center;line-height:23px}.amaran-wrapper.center .amaran.colorful{margin:0 auto}
|
||||
.amaran.default{width:300px;min-height:45px;background:#1B1E24;background:-webkit-linear-gradient(left,#111213,#111213 15%,#1b1e24 15%,#1b1e24);background:linear-gradient(to right,#111213,#111213 15%,#1b1e24 15%,#1b1e24);color:#fff;font-family:"Open Sans",Helvetica,Arial,sans-serif;font-size:13px;font-weight:300;margin:5px;overflow:hidden;border-bottom:1px solid #111213;border-radius:6px}.amaran.default .default-spinner{width:45px;min-height:45px;display:block;float:left;position:relative}.amaran.default .default-spinner span{width:18px;height:18px;background:#27ae60;display:block;border-radius:50%;position:absolute;top:50%;left:50%;margin-left:-11px;margin-top:-9px}.amaran.default .default-message{padding:5px; width:240px; float:left}.amaran.default .default-message span{padding:3px;}.amaran.default .default-message:after{clear:both}
|
||||
@charset "UTF-8";.amaran-close,.amaran-sticky{height:20px;top:2px;cursor:pointer}.amaran-wrapper *{box-sizing:border-box}.amaran-wrapper{position:fixed;z-index:9999}.amaran-wrapper.top{top:0;bottom:auto}.amaran-wrapper.bottom{bottom:0;top:auto}.amaran-wrapper.left{left:0}.amaran-wrapper.right{right:0;left:auto}.amaran-wrapper.center{width:50%;height:50%;margin:auto;position:fixed;top:0;left:0;bottom:0;right:0}.amaran{width:200px;background:rgba(0,0,0,.7);padding:3px;color:#fff;border-radius:4px;display:none;font-size:13px;cursor:pointer;position:relative;text-align:left;min-height:50px;margin:10px}.amaran-close,.amaran-sticky{width:20px;display:block;position:absolute}.amaran-close{right:2px}.amaran-close:before{content:"x";color:#fff;font-weight:700;font-family:Arial,sans-serif;font-size:18px}.amaran-sticky{right:20px}.amaran-sticky:before{content:"●";color:#fff;font-weight:700;font-family:Arial,sans-serif;font-size:18px}.amaran-sticky.sticky:before{color:#e12b28}
|
||||
.amaran.user{width:300px;min-height:100px;background:#f3f3f3;color:#222;margin:15px;font-family:"Open Sans",Helvetica,Arial,sans-serif;font-size:13px;font-weight:300;box-shadow:1px 1px 1px #000;border-radius:0;padding:0}.amaran.user .icon{width:100px;height:100px;position:relative;background:#000;float:left}.amaran.user img{max-width:100%}.amaran.user .info{padding-left:110px;padding-top:10px}.amaran.user b{display:block;font-size:16px}.amaran.user.blue{background:#2773ed;color:#fff}.amaran.user.yellow{background:#f4b300;color:#fff}.amaran.user.green{background:#78ba00;color:#fff}
|
||||
@@ -1,76 +0,0 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
@font-face {
|
||||
font-family: "stacer-fonts";
|
||||
src:url("../font/stacer-fonts.eot");
|
||||
src:url("../font/stacer-fonts.eot?#iefix") format("embedded-opentype"),
|
||||
url("../font/stacer-fonts.woff") format("woff"),
|
||||
url("../font/stacer-fonts.ttf") format("truetype"),
|
||||
url("../font/stacer-fonts.svg#stacer-fonts") format("svg");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
|
||||
}
|
||||
|
||||
[data-icon]:before {
|
||||
font-family: "stacer-fonts" !important;
|
||||
content: attr(data-icon);
|
||||
font-style: normal !important;
|
||||
font-weight: normal !important;
|
||||
font-variant: normal !important;
|
||||
text-transform: none !important;
|
||||
speak: none;
|
||||
line-height: 1;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
[class^="icon-"]:before,
|
||||
[class*=" icon-"]:before {
|
||||
font-family: "stacer-fonts" !important;
|
||||
font-style: normal !important;
|
||||
font-weight: normal !important;
|
||||
font-variant: normal !important;
|
||||
text-transform: none !important;
|
||||
speak: none;
|
||||
line-height: 1;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.icon-service:before {
|
||||
content: "\69";
|
||||
}
|
||||
.icon-startup:before {
|
||||
content: "\67";
|
||||
}
|
||||
.icon-dash:before {
|
||||
content: "\64";
|
||||
}
|
||||
.icon-stats:before {
|
||||
content: "\6a";
|
||||
}
|
||||
.icon-terminal:before {
|
||||
content: "\6c";
|
||||
}
|
||||
.icon-cleaner:before {
|
||||
content: "\6e";
|
||||
}
|
||||
.icon-uninstaller:before {
|
||||
content: "\6b";
|
||||
}
|
||||
.icon-collapse:before {
|
||||
content: "\62";
|
||||
}
|
||||
.icon-expand:before {
|
||||
content: "\63";
|
||||
}
|
||||
.icon-settings:before {
|
||||
content: "\61";
|
||||
}
|
||||
.icon-sort-asc:before {
|
||||
content: "\65";
|
||||
}
|
||||
.icon-sort-desc:before {
|
||||
content: "\66";
|
||||
}
|
||||
@@ -1,424 +0,0 @@
|
||||
|
||||
/*LOADING*/
|
||||
|
||||
#loading {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: #1b1e24;
|
||||
z-index: 999999;
|
||||
}
|
||||
|
||||
.loader_text {
|
||||
display: block;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
font-size: 21px;
|
||||
color: #2FAC9B;
|
||||
margin-top: 230px;
|
||||
}
|
||||
|
||||
#loader {
|
||||
text-align: center;
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
#loader span {
|
||||
display: inline-block;
|
||||
height: 15px;
|
||||
width: 15px;
|
||||
background: #2FAC9B;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
#loader span:nth-child(1) {
|
||||
-webkit-animation: temp 1s 0.05s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
animation: temp 1s 0.05s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
width: 7.5px;
|
||||
height: 7.5px;
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#loader span:nth-child(2) {
|
||||
-webkit-animation: temp 1s 0.1s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
animation: temp 1s 0.1s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
width: 7.5px;
|
||||
height: 7.5px;
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#loader span:nth-child(3) {
|
||||
-webkit-animation: temp 1s 0.15s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
animation: temp 1s 0.15s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
width: 7.5px;
|
||||
height: 7.5px;
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#loader span:nth-child(4) {
|
||||
-webkit-animation: temp 1s 0.2s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
animation: temp 1s 0.2s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
width: 7.5px;
|
||||
height: 7.5px;
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#loader span:nth-child(5) {
|
||||
-webkit-animation: temp 1s 0.25s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
animation: temp 1s 0.25s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
width: 7.5px;
|
||||
height: 7.5px;
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#loader span:nth-child(6) {
|
||||
-webkit-animation: temp 1s 0.3s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
animation: temp 1s 0.3s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
width: 7.5px;
|
||||
height: 7.5px;
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#loader span:nth-child(7) {
|
||||
-webkit-animation: temp 1s 0.35s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
animation: temp 1s 0.35s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
width: 7.5px;
|
||||
height: 7.5px;
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#loader span:nth-child(8) {
|
||||
-webkit-animation: temp 1s 0.4s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
animation: temp 1s 0.4s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
width: 7.5px;
|
||||
height: 7.5px;
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#loader span:nth-child(9) {
|
||||
-webkit-animation: temp 1s 0.45s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
animation: temp 1s 0.45s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
width: 7.5px;
|
||||
height: 7.5px;
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#loader span:nth-child(10) {
|
||||
-webkit-animation: temp 1s 0.5s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
animation: temp 1s 0.5s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
width: 7.5px;
|
||||
height: 7.5px;
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#loader span:nth-child(11) {
|
||||
-webkit-animation: temp 1s 0.55s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
animation: temp 1s 0.55s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
width: 7.5px;
|
||||
height: 7.5px;
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#loader span:nth-child(12) {
|
||||
-webkit-animation: temp 1s 0.6s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
animation: temp 1s 0.6s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
width: 7.5px;
|
||||
height: 7.5px;
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#loader span:nth-child(13) {
|
||||
-webkit-animation: temp 1s 0.65s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
animation: temp 1s 0.65s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
width: 7.5px;
|
||||
height: 7.5px;
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#loader span:nth-child(14) {
|
||||
-webkit-animation: temp 1s 0.7s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
animation: temp 1s 0.7s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
width: 7.5px;
|
||||
height: 7.5px;
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#loader span:nth-child(15) {
|
||||
-webkit-animation: temp 1s 0.75s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
animation: temp 1s 0.75s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
width: 7.5px;
|
||||
height: 7.5px;
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#loader span:nth-child(16) {
|
||||
-webkit-animation: temp 1s 0.8s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
animation: temp 1s 0.8s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
width: 7.5px;
|
||||
height: 7.5px;
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#loader span:nth-child(17) {
|
||||
-webkit-animation: temp 1s 0.85s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
animation: temp 1s 0.85s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
width: 7.5px;
|
||||
height: 7.5px;
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#loader span:nth-child(18) {
|
||||
-webkit-animation: temp 1s 0.9s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
animation: temp 1s 0.9s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
width: 7.5px;
|
||||
height: 7.5px;
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#loader span:nth-child(19) {
|
||||
-webkit-animation: temp 1s 0.95s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
animation: temp 1s 0.95s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
width: 7.5px;
|
||||
height: 7.5px;
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#loader span:nth-child(20) {
|
||||
-webkit-animation: temp 1s 1s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
animation: temp 1s 1s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
|
||||
width: 7.5px;
|
||||
height: 7.5px;
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
@-webkit-keyframes scale {
|
||||
0% {
|
||||
-webkit-transform: scale(0);
|
||||
transform: scale(0);
|
||||
}
|
||||
25% {
|
||||
-webkit-transform: scale(0.9, 0.9);
|
||||
transform: scale(0.9, 0.9);
|
||||
background: #93e1d7;
|
||||
}
|
||||
50% {
|
||||
-webkit-transform: scale(1, 1);
|
||||
transform: scale(1, 1);
|
||||
margin: 0 3px;
|
||||
background: #2FAC9B;
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: scale(0);
|
||||
transform: scale(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes scale {
|
||||
0% {
|
||||
-webkit-transform: scale(0);
|
||||
transform: scale(0);
|
||||
}
|
||||
25% {
|
||||
-webkit-transform: scale(0.9, 0.9);
|
||||
transform: scale(0.9, 0.9);
|
||||
background: #93e1d7;
|
||||
}
|
||||
50% {
|
||||
-webkit-transform: scale(1, 1);
|
||||
transform: scale(1, 1);
|
||||
margin: 0 3px;
|
||||
background: #2FAC9B;
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: scale(0);
|
||||
transform: scale(0);
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes rotateY {
|
||||
0% {
|
||||
-webkit-transform: rotateY(0deg);
|
||||
transform: rotateY(0deg);
|
||||
}
|
||||
50% {
|
||||
-webkit-transform: rotateY(90deg);
|
||||
transform: rotateY(90deg);
|
||||
background: #93e1d7;
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotateY(0deg);
|
||||
transform: rotateY(0deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes rotateY {
|
||||
0% {
|
||||
-webkit-transform: rotateY(0deg);
|
||||
transform: rotateY(0deg);
|
||||
}
|
||||
50% {
|
||||
-webkit-transform: rotateY(90deg);
|
||||
transform: rotateY(90deg);
|
||||
background: #93e1d7;
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotateY(0deg);
|
||||
transform: rotateY(0deg);
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes rotateX {
|
||||
0% {
|
||||
-webkit-transform: rotateX(0deg);
|
||||
transform: rotateX(0deg);
|
||||
}
|
||||
50% {
|
||||
-webkit-transform: rotateX(90deg) scale(0.5, 0.5);
|
||||
transform: rotateX(90deg) scale(0.5, 0.5);
|
||||
background: #93e1d7;
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotateX(0deg);
|
||||
transform: rotateX(0deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes rotateX {
|
||||
0% {
|
||||
-webkit-transform: rotateX(0deg);
|
||||
transform: rotateX(0deg);
|
||||
}
|
||||
50% {
|
||||
-webkit-transform: rotateX(90deg) scale(0.5, 0.5);
|
||||
transform: rotateX(90deg) scale(0.5, 0.5);
|
||||
background: #93e1d7;
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotateX(0deg);
|
||||
transform: rotateX(0deg);
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes push {
|
||||
0% {
|
||||
-webkit-transform: translateX(0px) scale(0.9, 0.6);
|
||||
transform: translateX(0px) scale(0.9, 0.6);
|
||||
}
|
||||
50% {
|
||||
-webkit-transform: translateY(-20px) scale(0.7, 1.1);
|
||||
transform: translateY(-20px) scale(0.7, 1.1);
|
||||
background: #6bd6c8;
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: translateX(0px) scale(0.9, 0.6);
|
||||
transform: translateX(0px) scale(0.9, 0.6);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes push {
|
||||
0% {
|
||||
-webkit-transform: translateX(0px) scale(0.9, 0.6);
|
||||
transform: translateX(0px) scale(0.9, 0.6);
|
||||
}
|
||||
50% {
|
||||
-webkit-transform: translateY(-20px) scale(0.7, 1.1);
|
||||
transform: translateY(-20px) scale(0.7, 1.1);
|
||||
background: #6bd6c8;
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: translateX(0px) scale(0.9, 0.6);
|
||||
transform: translateX(0px) scale(0.9, 0.6);
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes rotateZ {
|
||||
0% {
|
||||
-webkit-transform: rotateZ(-20deg);
|
||||
transform: rotateZ(-20deg);
|
||||
}
|
||||
50% {
|
||||
-webkit-transform: rotateZ(20deg) scaleY(1.2);
|
||||
transform: rotateZ(20deg) scaleY(1.2);
|
||||
background: #6bd6c8;
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotateZ(-20deg);
|
||||
transform: rotateZ(-20deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes rotateZ {
|
||||
0% {
|
||||
-webkit-transform: rotateZ(-20deg);
|
||||
transform: rotateZ(-20deg);
|
||||
}
|
||||
50% {
|
||||
-webkit-transform: rotateZ(20deg) scaleY(1.2);
|
||||
transform: rotateZ(20deg) scaleY(1.2);
|
||||
background: #6bd6c8;
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotateZ(-20deg);
|
||||
transform: rotateZ(-20deg);
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes cuve {
|
||||
0% {
|
||||
-webkit-transform: rotateY(-90deg) perspective(50px);
|
||||
transform: rotateY(-90deg) perspective(50px);
|
||||
background: #195c53;
|
||||
}
|
||||
50% {
|
||||
-webkit-transform: rotateY(0deg);
|
||||
transform: rotateY(0deg);
|
||||
background: #6bd6c8;
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotateY(90deg) perspective(50px);
|
||||
transform: rotateY(90deg) perspective(50px);
|
||||
-webkit-transform-origin: 100% 50%;
|
||||
transform-origin: 100% 50%;
|
||||
background: #195c53;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes cuve {
|
||||
0% {
|
||||
-webkit-transform: rotateY(-90deg) perspective(50px);
|
||||
transform: rotateY(-90deg) perspective(50px);
|
||||
background: #195c53;
|
||||
}
|
||||
50% {
|
||||
-webkit-transform: rotateY(0deg);
|
||||
transform: rotateY(0deg);
|
||||
background: #6bd6c8;
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotateY(90deg) perspective(50px);
|
||||
transform: rotateY(90deg) perspective(50px);
|
||||
-webkit-transform-origin: 100% 50%;
|
||||
transform-origin: 100% 50%;
|
||||
background: #195c53;
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes temp {
|
||||
50% {
|
||||
-webkit-transform: scale(1, 5);
|
||||
transform: scale(1, 5);
|
||||
background: #195c53;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes temp {
|
||||
50% {
|
||||
-webkit-transform: scale(1, 5);
|
||||
transform: scale(1, 5);
|
||||
background: #195c53;
|
||||
}
|
||||
}
|
||||
@@ -1,926 +0,0 @@
|
||||
body * {
|
||||
outline: 0;
|
||||
font-family: 'Ubuntu', sans-serif;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Ubuntu', sans-serif;
|
||||
src: url(../font/Ubuntu-Regular.ttf) format("truetype");
|
||||
}
|
||||
|
||||
body {
|
||||
overflow: hidden;
|
||||
float: left;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
|
||||
#main {
|
||||
width: calc(100% - 55px);
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
button {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
[v-cloak] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.fl {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.fr {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.w100 {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.content {
|
||||
float: left;
|
||||
width: calc(100% - 10px);
|
||||
height: 1000px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.content h1 {
|
||||
width: calc(100% - 20px);
|
||||
float: left;
|
||||
display: block;
|
||||
margin: 0 0 10px 10px;
|
||||
padding: 5px 0 10px 0;
|
||||
text-align: center;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
|
||||
/*---------SIDEBAR---------*/
|
||||
|
||||
.sidebar-nav {
|
||||
width: 55px;
|
||||
height: 620px;
|
||||
position: fixed;
|
||||
top: 0px;
|
||||
text-align: center;
|
||||
left: 0;
|
||||
z-index: 99;
|
||||
}
|
||||
|
||||
.sidebar-nav ul {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.sidebar-nav ul li {
|
||||
float: left;
|
||||
display: inline-block;
|
||||
padding: 15px 13px;
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.sidebar-nav ul li label {
|
||||
padding: 5px 0px 0 45px;
|
||||
display: none;
|
||||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.sidebar-nav ul li:hover>label {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.sidebar-nav ul li img {
|
||||
width: 43px;
|
||||
}
|
||||
|
||||
.sidebar-nav ul li i {
|
||||
font-size: 29px;
|
||||
height: 28px;
|
||||
display: block;
|
||||
float: left;
|
||||
}
|
||||
|
||||
|
||||
/*---------SIDEBAR---------*/
|
||||
|
||||
|
||||
/*---------DASHBOARD---------*/
|
||||
|
||||
.cont,
|
||||
.line-cont {
|
||||
width: 200px;
|
||||
border-radius: 4px;
|
||||
font-size: 16px;
|
||||
text-align: center;
|
||||
margin: 15px;
|
||||
padding: 10px 30px 20px 30px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.cont h3,
|
||||
.line-cont h3,
|
||||
.system-info h3 {
|
||||
display: block;
|
||||
letter-spacing: 1px;
|
||||
padding: 0;
|
||||
margin: 0px 0px 12px 0px;
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.line-cont span {
|
||||
display: block;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.line-cont h3 {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.line-cont {
|
||||
float: right;
|
||||
width: 350px;
|
||||
padding: 20px 30px;
|
||||
}
|
||||
|
||||
.system-info {
|
||||
width: 330px;
|
||||
float: left;
|
||||
display: block;
|
||||
font-size: 16px;
|
||||
margin: 20px;
|
||||
padding: 10px 25px 15px 25px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.system-info ul {
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
font-weight: normal;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
.line-cont div {
|
||||
margin: 0px 0px 15px 0px;
|
||||
}
|
||||
|
||||
.circle-bar {
|
||||
background-repeat: no-repeat;
|
||||
background-position: center 65px;
|
||||
}
|
||||
|
||||
|
||||
/*---------DASHBOARD---------*/
|
||||
|
||||
|
||||
/*--------SWITCH-----------*/
|
||||
|
||||
.switch {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.switch+label,
|
||||
.switch+label::after {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
width: 44px;
|
||||
height: 22px;
|
||||
border-radius: 9999px;
|
||||
transition: 300ms;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.switch+label::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 3px;
|
||||
width: 17px;
|
||||
height: 17px;
|
||||
margin-top: 2px;
|
||||
box-shadow: 0 5px 5px -1px rgba(0, 0, 0, 0.2), 0 0 0 2px #EF4836;
|
||||
}
|
||||
|
||||
.switch:checked+label::after {
|
||||
left: 22px;
|
||||
box-shadow: 0 5px 5px -1px rgba(0, 0, 0, 0.2), 0 0 0 2px #4BD865;
|
||||
}
|
||||
|
||||
.switch+label:hover:active::after {
|
||||
width: 23px;
|
||||
}
|
||||
|
||||
.switch:checked+label:hover:active::after {
|
||||
left: 17px;
|
||||
}
|
||||
|
||||
|
||||
/*--------SWITCH-----------*/
|
||||
|
||||
|
||||
/*----------SCROLL--------*/
|
||||
|
||||
.scroll {
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
.scroll::-webkit-scrollbar-track {
|
||||
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.scroll::-webkit-scrollbar {
|
||||
width: 10px;
|
||||
}
|
||||
|
||||
.scroll::-webkit-scrollbar-thumb {
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
|
||||
/*----------SCROLL--------*/
|
||||
|
||||
|
||||
/*---------ITEM LIST---------*/
|
||||
|
||||
.item-list {
|
||||
width: 700px;
|
||||
height: 520px;
|
||||
margin: 15px auto 20px auto;
|
||||
}
|
||||
|
||||
.item-list ul {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
height: calc(100% - 40px);
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.item-list ul li {
|
||||
position: relative;
|
||||
float: left;
|
||||
display: block;
|
||||
cursor: pointer;
|
||||
font-size: 15px;
|
||||
margin: 6px 3px;
|
||||
width: calc(100% - 70px);
|
||||
border-radius: 4px;
|
||||
padding: 10px 15px 10px 50px;
|
||||
}
|
||||
|
||||
.item-list h3,
|
||||
.processes h3 {
|
||||
margin: 0px;
|
||||
float: left;
|
||||
display: block;
|
||||
height: 20px;
|
||||
padding: 10px 0px 10px 15px;
|
||||
font-size: 15px;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.item-list ul li span {
|
||||
display: block;
|
||||
float: left;
|
||||
width: calc(100% - 120px);
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.item-list input[type=text],
|
||||
.processes input[type=text] {
|
||||
border-radius: 50px;
|
||||
font-size: 13px;
|
||||
float: right;
|
||||
padding: 5px 10px;
|
||||
margin: 6px 10px 6px 0px;
|
||||
}
|
||||
|
||||
|
||||
/*---------ITEM LIST---------*/
|
||||
|
||||
|
||||
/*---------STARTUP APPS---------*/
|
||||
|
||||
.startup-apps-list {
|
||||
width: 600px;
|
||||
height: 460px;
|
||||
margin-top: 45px;
|
||||
}
|
||||
|
||||
.startup-apps-list ul li {
|
||||
background-image: url(../img/app.png);
|
||||
background-repeat: no-repeat;
|
||||
background-position: 13px 9px;
|
||||
}
|
||||
|
||||
.startup-apps-list ul li:hover .remove-startup-app {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.remove-startup-app {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin: -2px 10px 0px 0px;
|
||||
background: transparent url(../img/trash.png) no-repeat;
|
||||
display: block;
|
||||
float: right;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.edit-startup-app {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin: -2px 10px 0px 0px;
|
||||
background: transparent url(../img/edit.png) no-repeat;
|
||||
display: block;
|
||||
float: right;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.add-startup-app {
|
||||
border: 0;
|
||||
padding: 8px 15px;
|
||||
float: right;
|
||||
margin: 10px 140px 0px 0px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
|
||||
/*---------STARTUP APPS---------*/
|
||||
|
||||
|
||||
/*---------SYSTEM SERVICES---------*/
|
||||
|
||||
.services-list {
|
||||
margin-top: 45px;
|
||||
}
|
||||
|
||||
.services-list ul {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.services-list ul li {
|
||||
background-image: url(../img/service.png);
|
||||
background-repeat: no-repeat;
|
||||
background-position: 13px 11px;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
|
||||
/*---------SYSTEM SERVICES---------*/
|
||||
|
||||
|
||||
/*---------UNINSTALLER---------*/
|
||||
|
||||
.uninstaller-list {
|
||||
height: 490px;
|
||||
margin-top: 45px;
|
||||
}
|
||||
|
||||
.uninstaller-list ul {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.uninstaller-list ul li {
|
||||
background-image: url(../img/package.png);
|
||||
background-repeat: no-repeat;
|
||||
background-position: 13px 9px;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
.uninstaller-list .spin-loader {
|
||||
margin: 20px 0 0 100px;
|
||||
}
|
||||
|
||||
.uninstaller-list label {
|
||||
float: right;
|
||||
margin: 1px 5px 0px 0px;
|
||||
border-radius: 100%;
|
||||
position: relative;
|
||||
display: block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
border-radius: 100px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#uninstall-selected {
|
||||
padding: 7px 15px;
|
||||
cursor: pointer;
|
||||
font-size: 15px;
|
||||
margin: 15px 268px;
|
||||
background-color: transparent;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
#uninstall-selected:disabled {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
|
||||
/*---------UNINSTALLER---------*/
|
||||
|
||||
|
||||
/*---------ITEM TABLE---------*/
|
||||
|
||||
.item-table {
|
||||
float: right;
|
||||
margin: 10px 10px 0px 0px;
|
||||
width: 630px;
|
||||
height: 480px;
|
||||
}
|
||||
|
||||
.item-table ul {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.item-table ul li {
|
||||
width: 100%;
|
||||
display: block;
|
||||
float: left;
|
||||
padding: 2px 0px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
input[type=checkbox] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.cleaner-side i,
|
||||
.item-table i {
|
||||
border-radius: 50%;
|
||||
display: block;
|
||||
height: 12px;
|
||||
position: absolute;
|
||||
top: 9px;
|
||||
width: 12px;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.cleaner-side input[type=checkbox]:checked+i::after,
|
||||
.item-table input[type=checkbox]:checked+i::after {
|
||||
border-radius: 50%;
|
||||
content: '';
|
||||
display: block;
|
||||
height: 6px;
|
||||
left: 3px;
|
||||
position: absolute;
|
||||
top: 3px;
|
||||
width: 6px;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.item-table span {
|
||||
display: block;
|
||||
float: left;
|
||||
width: 550px;
|
||||
overflow: hidden;
|
||||
margin-left: 25px;
|
||||
text-overflow: ellipsis;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.item-table label {
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
float: left;
|
||||
line-height: 30px;
|
||||
padding: 0 15px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.item-table h3 {
|
||||
display: block;
|
||||
float: left;
|
||||
margin: 0;
|
||||
font-weight: 500;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.item-table h3 span {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
|
||||
/*---------ITEM TABLE---------*/
|
||||
|
||||
|
||||
/*---------CLEANER SIDEBAR---------*/
|
||||
|
||||
.cleaner-side {
|
||||
margin: 10px 0 0 10px;
|
||||
width: 200px;
|
||||
float: left;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.cleaner-side ul {
|
||||
float: left;
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.cleaner-side ul li {
|
||||
padding: 0;
|
||||
margin: 0 0 8px 0;
|
||||
}
|
||||
|
||||
.cleaner-side ul li label {
|
||||
display: block;
|
||||
padding: 10px 0px 10px 10px;
|
||||
width: 195px;
|
||||
font-size: 14px;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.cleaner-side i {
|
||||
margin: 4px 0 0 0;
|
||||
}
|
||||
|
||||
.cleaner-side span {
|
||||
margin-left: 22px;
|
||||
width: 160px;
|
||||
display: block;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
|
||||
/*---------CLEANER SIDEBAR---------*/
|
||||
|
||||
|
||||
/*---------STATISTICS---------*/
|
||||
|
||||
.resources {
|
||||
padding: 0px 20px;
|
||||
}
|
||||
|
||||
.resources h4 {
|
||||
display: block;
|
||||
float: left;
|
||||
padding: 10px;
|
||||
font-weight: 400;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.resources h4 i {
|
||||
margin: 1px 0 0 10px;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
float: right;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#cpus-chart,
|
||||
#memory-chart,
|
||||
#network-chart {
|
||||
float: left;
|
||||
height: 125px;
|
||||
width: calc(100% - 20px);
|
||||
padding: 10px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
|
||||
/*---------STATISTICS---------*/
|
||||
|
||||
.empty-list {
|
||||
font-size: 22px;
|
||||
text-align: center;
|
||||
padding: 180px 0px;
|
||||
width: 100%;
|
||||
float: left;
|
||||
margin: 30px auto;
|
||||
display: block;
|
||||
background: url(../img/not-found.png) no-repeat center 30px;
|
||||
}
|
||||
|
||||
#clean-btn,
|
||||
#system-scan-btn {
|
||||
clear: right;
|
||||
float: right;
|
||||
margin: 10px 10px 0 0;
|
||||
border-radius: 5px;
|
||||
padding: 8px 20px;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#system-scan-btn {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.slide-fade-enter-active {
|
||||
transition: all .2s ease;
|
||||
}
|
||||
|
||||
.slide-fade-leave-active {
|
||||
transition: all .2s ease;
|
||||
}
|
||||
|
||||
.slide-fade-enter,
|
||||
.slide-fade-leave-to {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.update-check {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
text-align: left;
|
||||
padding: 7px 0;
|
||||
z-index: 99999;
|
||||
}
|
||||
|
||||
.update-check span {
|
||||
float: left;
|
||||
display: block;
|
||||
padding: 5px 20px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.update-check button {
|
||||
border: 0;
|
||||
cursor: pointer;
|
||||
font-size: 15px;
|
||||
float: right;
|
||||
display: block;
|
||||
border-radius: 4px;
|
||||
padding: 6px 15px;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
|
||||
/*prompt style*/
|
||||
|
||||
.promptDialog {
|
||||
background-color: rgba(0, 0, 0, .4);
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 999;
|
||||
position: fixed;
|
||||
}
|
||||
|
||||
.promptDialog .dialog {
|
||||
width: 350px;
|
||||
margin: 0 auto;
|
||||
position: relative;
|
||||
top: 40%;
|
||||
transform: translateY(-50%);
|
||||
box-shadow: 0px 0px 20px #10161b;
|
||||
}
|
||||
|
||||
.promptDialog .dialog div:first-child {
|
||||
border-radius: 4px;
|
||||
background-color: #202b33;
|
||||
padding: 10px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.dialog span {
|
||||
color: #ddd;
|
||||
display: block;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
.dialog input,
|
||||
.dialog select {
|
||||
color: #ddd;
|
||||
border-radius: 4px;
|
||||
padding: 9px 15px;
|
||||
width: 280px;
|
||||
font-size: 15px;
|
||||
border: 0;
|
||||
background-color: #293945;
|
||||
margin: 8px 0px;
|
||||
}
|
||||
|
||||
.dialog button {
|
||||
padding: 7px 15px;
|
||||
border: 0;
|
||||
color: #ddd;
|
||||
border: 1px solid #293945;
|
||||
cursor: pointer;
|
||||
font-size: 15px;
|
||||
margin: 5px 10px;
|
||||
background-color: transparent;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.dialog button:hover {
|
||||
background-color: #293945;
|
||||
}
|
||||
|
||||
|
||||
/*----SETTINGS-----*/
|
||||
|
||||
.settings div {
|
||||
float: left;
|
||||
margin: 10px 15px 0 10px;
|
||||
}
|
||||
|
||||
.settings div label {
|
||||
float: left;
|
||||
font-size: 15px;
|
||||
padding: 0 0 5px 0;
|
||||
}
|
||||
|
||||
.settings div select {
|
||||
float: left;
|
||||
border: 0px;
|
||||
border-radius: 3px;
|
||||
clear: left;
|
||||
margin: 8px 0 0 0;
|
||||
padding: 5px 10px;
|
||||
width: 150px;
|
||||
}
|
||||
|
||||
.settings-btn {
|
||||
position: fixed;
|
||||
top: 7px;
|
||||
padding: 0;
|
||||
right: 0;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
border-top-left-radius: 5px;
|
||||
border-bottom-left-radius: 5px;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
|
||||
/*------Processes--------*/
|
||||
|
||||
.processes {
|
||||
float: left;
|
||||
position: relative;
|
||||
margin: 0 10px;
|
||||
padding: 0;
|
||||
width: calc(100% - 20px);
|
||||
}
|
||||
|
||||
.processes button {
|
||||
display: block;
|
||||
float: right;
|
||||
margin: 10px 0;
|
||||
padding: 6px 15px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.processes button:disabled {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.processes .tbody {
|
||||
height: 440px;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
.refreshCont {
|
||||
float: left;
|
||||
margin: 12px 0 0 0;
|
||||
}
|
||||
|
||||
.refreshCont label {
|
||||
display: block;
|
||||
font-size: 15px;
|
||||
padding: 3px 0 0 0;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.refreshProcesses {
|
||||
-webkit-appearance: none;
|
||||
width: 80px;
|
||||
height: 2px;
|
||||
margin: 0 0 0 10px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.refreshProcesses::-webkit-slider-thumb {
|
||||
-webkit-appearance: none;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-radius: 100%;
|
||||
position: relative;
|
||||
z-index: 99;
|
||||
}
|
||||
|
||||
|
||||
/*-----Datatable-----*/
|
||||
|
||||
.datatable {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
box-sizing: border-box;
|
||||
font-size: 15px;
|
||||
border-top-right-radius: 5px;
|
||||
border-top-left-radius: 5px;
|
||||
table-layout: fixed;
|
||||
border-spacing: 1px;
|
||||
}
|
||||
|
||||
.datatable tr:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.datatable th i {
|
||||
font-size: 13px;
|
||||
display: block;
|
||||
float: right;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.datatable td,
|
||||
.datatable th {
|
||||
padding: 8px;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
|
||||
/*----Spinner Loader------*/
|
||||
|
||||
.spin-loader {
|
||||
position: relative;
|
||||
width: 45px;
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
.spin-loader div {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-radius: 100%;
|
||||
background: #2285c3;
|
||||
position: absolute;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: ease;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.dot1,
|
||||
.dot2 {
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.dot3 {
|
||||
left: 1em;
|
||||
}
|
||||
|
||||
.dot4 {
|
||||
left: 2em;
|
||||
}
|
||||
|
||||
@keyframes reveal {
|
||||
from {
|
||||
transform: scale(0.001);
|
||||
}
|
||||
to {
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes slide {
|
||||
to {
|
||||
transform: translateX(1em)
|
||||
}
|
||||
}
|
||||
|
||||
.dot1 {
|
||||
animation-name: reveal;
|
||||
}
|
||||
|
||||
.dot2,
|
||||
.dot3 {
|
||||
animation-name: slide;
|
||||
}
|
||||
|
||||
.dot4 {
|
||||
animation-name: reveal;
|
||||
animation-direction: reverse;
|
||||
}
|
||||
@@ -1,314 +0,0 @@
|
||||
/**
|
||||
AUTHOR <email@address>
|
||||
*/
|
||||
|
||||
.dark {
|
||||
background-color: #202b33;
|
||||
}
|
||||
|
||||
.dark .content h1 {
|
||||
color: #ccc;
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
|
||||
|
||||
/*----SIDEBAR-NAV----*/
|
||||
|
||||
.dark .sidebar-nav {
|
||||
background-color: #293945;
|
||||
}
|
||||
|
||||
.dark .sidebar-nav ul li label {
|
||||
color: #2285c3;
|
||||
}
|
||||
|
||||
.dark .sidebar-nav ul li:not(.nav-active) i {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.dark .sidebar-nav ul li:hover {
|
||||
background-color: #1b242b;
|
||||
}
|
||||
|
||||
.dark .nav-active {
|
||||
background-color: #202b33;
|
||||
}
|
||||
|
||||
.dark .sidebar-nav ul li:hover>i,
|
||||
.dark .nav-active i {
|
||||
color: #2285c3;
|
||||
}
|
||||
|
||||
|
||||
/*-----DASHBOARD-----*/
|
||||
|
||||
|
||||
/*chart-trail-color*/
|
||||
|
||||
.dark svg path:first-child {
|
||||
stroke: #202b33;
|
||||
}
|
||||
|
||||
.dark .cont,
|
||||
.dark .line-cont {
|
||||
background-color: #293945;
|
||||
color: #eee;
|
||||
}
|
||||
|
||||
.dark .cont h3,
|
||||
.dark .line-cont h3,
|
||||
.dark .system-info h3 {
|
||||
color: #eee;
|
||||
}
|
||||
|
||||
.dark .system-info ul li {
|
||||
color: #748390;
|
||||
}
|
||||
|
||||
|
||||
/*----SWITCH-----*/
|
||||
|
||||
.dark .switch+label,
|
||||
.dark .switch:not(:checked)+label:hover:active {
|
||||
background-color: #EF4836;
|
||||
}
|
||||
|
||||
.dark .switch+label::after {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.dark .switch:checked+label {
|
||||
box-shadow: inset 0 0 0 13px #4BD865;
|
||||
}
|
||||
|
||||
.dark .scroll::-webkit-scrollbar-thumb {
|
||||
background-color: #314452;
|
||||
}
|
||||
|
||||
|
||||
/*----ITEM LIST-----*/
|
||||
|
||||
.dark .item-list ul li {
|
||||
background-color: #293945;
|
||||
}
|
||||
|
||||
.dark .item-list ul li:hover {
|
||||
background-color: #314452;
|
||||
}
|
||||
|
||||
.dark .item-list h3,
|
||||
.dark .item-list ul li,
|
||||
.dark .processes h3 {
|
||||
color: #aeb5bf;
|
||||
}
|
||||
|
||||
.dark .item-list input[type=text],
|
||||
.dark .processes input[type=text] {
|
||||
background-color: #202b33;
|
||||
border: 1px solid #314452;
|
||||
color: #aeb5bf;
|
||||
}
|
||||
|
||||
|
||||
/*----ITEM TABLE----*/
|
||||
|
||||
.dark .item-table {
|
||||
border: 1px solid #314452;
|
||||
}
|
||||
|
||||
.dark .item-table ul li {
|
||||
border-bottom: 1px solid #314452;
|
||||
}
|
||||
|
||||
.dark .item-table ul li:hover {
|
||||
background-color: #293945;
|
||||
}
|
||||
|
||||
.dark .cleaner-side i,
|
||||
.dark .item-table i {
|
||||
background-color: #748390;
|
||||
}
|
||||
|
||||
.dark .item-table input[type=checkbox]:checked+i::after,
|
||||
.dark .cleaner-side input[type=checkbox]:checked+i::after {
|
||||
background-color: #293945;
|
||||
}
|
||||
|
||||
.dark .item-table span {
|
||||
color: #aeb5bf;
|
||||
}
|
||||
|
||||
.dark .item-table h3 {
|
||||
background-color: #293945;
|
||||
color: #aeb5bf;
|
||||
}
|
||||
|
||||
|
||||
/*----CLEANER SIDE-----*/
|
||||
|
||||
.dark .cleaner-side ul li label {
|
||||
color: #aeb5bf;
|
||||
}
|
||||
|
||||
.dark .cleaner-side ul li {
|
||||
border: 1px solid #314452;
|
||||
}
|
||||
|
||||
.dark .cleaner-side ul li label:hover {
|
||||
background-color: #293945;
|
||||
color: #2285c3;
|
||||
}
|
||||
|
||||
.dark #clean-btn,
|
||||
.dark #system-scan-btn {
|
||||
color: #eee;
|
||||
border: 1px solid #293945;
|
||||
}
|
||||
|
||||
.dark #clean-btn:hover,
|
||||
.dark #system-scan-btn:hover {
|
||||
background-color: #293945;
|
||||
}
|
||||
|
||||
|
||||
/*----STARTUP APPS----*/
|
||||
|
||||
.dark .add-startup-app {
|
||||
background-color: #2196f3;
|
||||
color: #eee;
|
||||
}
|
||||
|
||||
.dark .add-startup-app:hover {
|
||||
background-color: #2285c3;
|
||||
}
|
||||
|
||||
|
||||
/*----RESURCES----*/
|
||||
|
||||
.dark .resources h4 {
|
||||
color: #aeb5bf;
|
||||
}
|
||||
|
||||
.dark .resources h4 i {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.dark #cpus-chart,
|
||||
.dark #memory-chart,
|
||||
.dark #network-chart {
|
||||
background-color: #293945;
|
||||
}
|
||||
|
||||
|
||||
/*----UNINSTALLER----*/
|
||||
|
||||
.dark .uninstaller-list label {
|
||||
border: 2px solid #fff;
|
||||
background-color: #314452;
|
||||
}
|
||||
|
||||
.dark .uninstaller-list input[type=checkbox]:checked+label {
|
||||
background-color: #2285c3;
|
||||
}
|
||||
|
||||
.dark #uninstall-selected {
|
||||
color: #aeb5bf;
|
||||
border: 1px solid #293945;
|
||||
}
|
||||
|
||||
.dark #uninstall-selected:disabled {
|
||||
color: #293945;
|
||||
}
|
||||
|
||||
.dark #uninstall-selected:disabled:hover {
|
||||
color: #202b33;
|
||||
}
|
||||
|
||||
.dark #uninstall-selected:hover {
|
||||
background-color: #293945;
|
||||
}
|
||||
|
||||
|
||||
/*-----UPDATE-BAR-----*/
|
||||
|
||||
.dark .update-check {
|
||||
background-color: #16a085;
|
||||
}
|
||||
|
||||
.dark .update-check span {
|
||||
color: #202b33;
|
||||
}
|
||||
|
||||
.dark .update-check button {
|
||||
color: #fff;
|
||||
background-color: #202b33;
|
||||
}
|
||||
|
||||
.dark .update-check button:hover {
|
||||
background-color: #293945;
|
||||
}
|
||||
|
||||
|
||||
/*----SETTINGS-----*/
|
||||
|
||||
.dark .settings div label {
|
||||
color: #748390;
|
||||
}
|
||||
|
||||
.dark .settings div select {
|
||||
background-color: #293945;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.dark .empty-list {
|
||||
color: #748390;
|
||||
}
|
||||
|
||||
|
||||
/*----PROCESS-----*/
|
||||
|
||||
.dark .processes button {
|
||||
background-color: #293945;
|
||||
border: 1px solid #314452;
|
||||
color: #a9b1bb;
|
||||
}
|
||||
|
||||
.dark .processes button:hover {
|
||||
background-color: #314452;
|
||||
}
|
||||
|
||||
.dark .refreshCont label {
|
||||
color: #aab1ba;
|
||||
}
|
||||
|
||||
.dark .refreshProcesses {
|
||||
background: #293945;
|
||||
}
|
||||
|
||||
.dark .refreshProcesses::-webkit-slider-thumb {
|
||||
border: 7px solid #2285c3;
|
||||
}
|
||||
|
||||
/*-----DATATABLE-----*/
|
||||
|
||||
.dark .datatable {
|
||||
background-color: #314452;
|
||||
}
|
||||
|
||||
.dark .datatable tr:not(.selectedRow) {
|
||||
background-color: #293945;
|
||||
color: #ddd;
|
||||
}
|
||||
|
||||
.dark .datatable tr:hover {
|
||||
background-color: #314452;
|
||||
}
|
||||
|
||||
.dark .datatable th {
|
||||
color: #2285c3;
|
||||
}
|
||||
|
||||
.dark .selectedRow {
|
||||
background-color: #314452;
|
||||
color: #a9b1bb;
|
||||
}
|
||||
@@ -1,326 +0,0 @@
|
||||
/**
|
||||
AUTHOR <email@address>
|
||||
*/
|
||||
|
||||
.light {
|
||||
background-color: #efefef;
|
||||
}
|
||||
|
||||
.light .content h1 {
|
||||
color: #6d7278;
|
||||
border-bottom: 1px solid #bdc4ca;
|
||||
}
|
||||
|
||||
|
||||
/*----SIDEBAR-NAV----*/
|
||||
|
||||
.light .sidebar-nav {
|
||||
background-color: #fff;
|
||||
box-shadow: 0px 0px 20px 0px #ddd;
|
||||
}
|
||||
|
||||
.light .sidebar-nav ul li label {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.light .sidebar-nav ul li:not(.nav-active) i {
|
||||
color: #6d7278;
|
||||
}
|
||||
|
||||
.light .sidebar-nav ul li:hover,
|
||||
.light .nav-active {
|
||||
background-color: #2285c3;
|
||||
}
|
||||
|
||||
.light .sidebar-nav ul li:hover>i,
|
||||
.light li.nav-active>i {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
|
||||
/*-----DASHBOARD-----*/
|
||||
|
||||
|
||||
/*chart-trail-color*/
|
||||
|
||||
.light svg path:first-child {
|
||||
stroke: #ddd;
|
||||
}
|
||||
|
||||
.light .cont,
|
||||
.light .line-cont {
|
||||
background-color: #fff;
|
||||
box-shadow: 0px 0px 20px 0px #ddd;
|
||||
color: #6d7278;
|
||||
}
|
||||
|
||||
.light .cont h3,
|
||||
.light .line-cont h3,
|
||||
.light .system-info h3 {
|
||||
color: #6d7278;
|
||||
}
|
||||
|
||||
.light .system-info ul li {
|
||||
color: #6d7278;
|
||||
}
|
||||
|
||||
|
||||
/*----SWITCH-----*/
|
||||
|
||||
.light .switch+label,
|
||||
.light .switch:not(:checked)+label:hover:active {
|
||||
background-color: #EF4836;
|
||||
}
|
||||
|
||||
.light .switch+label::after {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.light .switch:checked+label {
|
||||
box-shadow: inset 0 0 0 13px #4BD865;
|
||||
}
|
||||
|
||||
.light .scroll::-webkit-scrollbar-thumb {
|
||||
background-color: #748390;
|
||||
}
|
||||
|
||||
|
||||
/*----ITEM LIST-----*/
|
||||
|
||||
.light .item-list ul li {
|
||||
background-color: #fff;
|
||||
box-shadow: 0px 0px 10px 0px #ddd;
|
||||
}
|
||||
|
||||
.light .item-list ul li:hover {
|
||||
background-color: #748390;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.light .item-list h3,
|
||||
.light .item-list ul li,
|
||||
.light .processes h3 {
|
||||
color: #6d7278;
|
||||
}
|
||||
|
||||
.light .item-list input[type=text],
|
||||
.light .processes input[type=text] {
|
||||
background-color: #fff;
|
||||
border: 1px solid #eee;
|
||||
box-shadow: 0px 0px 5px 0px #ddd;
|
||||
color: #aeb5bf;
|
||||
}
|
||||
|
||||
|
||||
/*----ITEM TABLE----*/
|
||||
|
||||
.light .item-table {
|
||||
background-color: #fff;
|
||||
box-shadow: 0px 0px 20px 0px #ddd;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.light .item-table ul li {
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.light .item-table ul li:hover {
|
||||
background-color: #bdc4ca;
|
||||
}
|
||||
|
||||
.light .cleaner-side i,
|
||||
.light .item-table i {
|
||||
background-color: #748390;
|
||||
}
|
||||
|
||||
.light .item-table input[type=checkbox]:checked+i::after,
|
||||
.light .cleaner-side input[type=checkbox]:checked+i::after {
|
||||
background-color: #293945;
|
||||
}
|
||||
|
||||
.light .item-table span {
|
||||
color: #748390;
|
||||
}
|
||||
|
||||
.light .item-table h3 {
|
||||
background-color: #bdc4ca;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
|
||||
/*----CLEANER SIDE-----*/
|
||||
|
||||
.light .cleaner-side ul li label {
|
||||
color: #aeb5bf;
|
||||
}
|
||||
|
||||
.light .cleaner-side ul li {
|
||||
background-color: #fff;
|
||||
box-shadow: 0px 0px 20px 0px #ddd;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.light .cleaner-side ul li label:hover {
|
||||
background-color: #bdc4ca;
|
||||
color: #2285c3;
|
||||
}
|
||||
|
||||
.light #clean-btn,
|
||||
.light #system-scan-btn {
|
||||
color: #fff;
|
||||
background-color: #748390;
|
||||
box-shadow: 0px 0px 20px 0px #ddd;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.light #clean-btn:hover,
|
||||
.light #system-scan-btn:hover {
|
||||
background-color: #bdc4ca;
|
||||
}
|
||||
|
||||
|
||||
/*----STARTUP APPS----*/
|
||||
|
||||
.light .add-startup-app {
|
||||
background-color: #2196f3;
|
||||
color: #eee;
|
||||
}
|
||||
|
||||
.light .add-startup-app:hover {
|
||||
background-color: #2285c3;
|
||||
}
|
||||
|
||||
|
||||
/*----RESURCES----*/
|
||||
|
||||
.light .resources h4 {
|
||||
color: #6d7278;
|
||||
}
|
||||
|
||||
.light .resources h4 i {
|
||||
color: #6d7278;
|
||||
}
|
||||
|
||||
.light #cpus-chart,
|
||||
.light #memory-chart,
|
||||
.light #network-chart {
|
||||
background-color: #fff;
|
||||
box-shadow: 0px 0px 20px 0px #ddd;
|
||||
}
|
||||
|
||||
|
||||
/*----UNINSTALLER----*/
|
||||
|
||||
.light .uninstaller-list label {
|
||||
border: 2px solid #aeb5bf;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
.light .uninstaller-list input[type=checkbox]:checked+label {
|
||||
background-color: #2285c3;
|
||||
}
|
||||
|
||||
.light #uninstall-selected {
|
||||
color: #202b33;
|
||||
border: 1px solid #748390;
|
||||
}
|
||||
|
||||
.light #uninstall-selected:disabled {
|
||||
color: #748390;
|
||||
}
|
||||
|
||||
.dark #uninstall-selected:disabled:hover {
|
||||
color: #202b33;
|
||||
}
|
||||
|
||||
.light #uninstall-selected:hover {
|
||||
background-color: #748390;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
|
||||
/*-----UPDATE-BAR-----*/
|
||||
|
||||
.light .update-check {
|
||||
background-color: #16a085;
|
||||
}
|
||||
|
||||
.light .update-check span {
|
||||
color: #202b33;
|
||||
}
|
||||
|
||||
.light .update-check button {
|
||||
color: #fff;
|
||||
background-color: #202b33;
|
||||
}
|
||||
|
||||
.light .update-check button:hover {
|
||||
background-color: #293945;
|
||||
}
|
||||
|
||||
|
||||
/*----SETTINGS-----*/
|
||||
|
||||
.light .settings div label {
|
||||
color: #6d7278;
|
||||
}
|
||||
|
||||
.light .settings div select {
|
||||
background-color: #748390;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.light .empty-list {
|
||||
color: #748390;
|
||||
}
|
||||
|
||||
|
||||
/*----PROCESS-----*/
|
||||
|
||||
.light .processes button {
|
||||
background-color: #748390;
|
||||
border: 0;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.light .processes button:hover {
|
||||
background-color: #bdc4ca;
|
||||
}
|
||||
|
||||
.light .refreshCont label {
|
||||
color: #6d7278;
|
||||
}
|
||||
|
||||
.light .refreshProcesses {
|
||||
background: #6d7278;
|
||||
}
|
||||
|
||||
.light .refreshProcesses::-webkit-slider-thumb {
|
||||
border: 7px solid #2285c3;
|
||||
}
|
||||
|
||||
|
||||
/*-----DATATABLE-----*/
|
||||
|
||||
.light .datatable {
|
||||
box-shadow: 0px 0px 20px 0px #ddd;
|
||||
background-color: #bdc4ca;
|
||||
}
|
||||
|
||||
.light .datatable tr:not(.selectedRow) {
|
||||
background-color: #fff;
|
||||
color: #6d7278;
|
||||
}
|
||||
|
||||
.light .datatable tr:hover {
|
||||
background-color: #aeb5bf;
|
||||
}
|
||||
|
||||
.light .datatable th {
|
||||
color: #2285c3;
|
||||
}
|
||||
|
||||
.light .selectedRow {
|
||||
background-color: #aeb5bf;
|
||||
color: #6d7278;
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>Generated by Fontastic.me</metadata>
|
||||
<defs>
|
||||
<font id="stacer-fonts" horiz-adv-x="512">
|
||||
<font-face font-family="stacer-fonts" units-per-em="512" ascent="480" descent="-32"/>
|
||||
<missing-glyph horiz-adv-x="512" />
|
||||
|
||||
<glyph glyph-name="service" unicode="i" d="M238 256c0 20-7 37-22 52-14 14-31 21-51 21-21 0-38-7-52-21-14-15-22-32-22-52 0-20 8-37 22-52 14-14 31-21 52-21 20 0 37 7 51 21 15 15 22 32 22 52z m219-146c0 10-3 18-11 25-7 8-16 11-25 11-10 0-19-3-26-11-7-7-11-15-11-25 0-10 4-19 11-26 7-7 15-11 26-11 10 0 18 4 25 11 8 7 11 16 11 26z m0 292c0 10-3 19-11 26-7 7-16 11-25 11-10 0-19-4-26-11-7-7-11-16-11-26 0-10 4-18 11-26 7-7 15-10 26-10 10 0 18 3 25 10 8 8 11 16 11 26z m-110-120l0-53c0-2 0-4-2-5-1-2-2-3-4-3l-44-7c-3-7-6-14-10-22 7-9 15-20 26-33 1-2 2-4 2-6 0-2-1-4-2-5-4-6-12-14-23-26-12-11-19-17-23-17-2 0-4 1-6 2l-33 26c-7-3-14-6-22-9-2-20-4-35-6-44-2-5-4-7-9-7l-53 0c-2 0-4 1-6 2-1 2-2 3-3 5l-6 44c-7 2-14 5-22 9l-33-26c-2-1-4-2-6-2-2 0-4 1-6 3-27 25-41 40-41 45 0 2 1 4 2 6 2 3 6 8 12 15 5 7 10 13 13 17-4 9-8 17-10 24l-43 7c-2 0-4 1-5 2-2 2-2 4-2 6l0 53c0 2 0 4 2 5 1 2 3 3 4 3l45 7c2 7 5 14 9 22-7 9-15 20-26 33-1 2-2 4-2 6 0 2 1 4 2 5 4 6 12 14 23 26 12 11 19 17 23 17 2 0 4-1 6-2l33-26c6 3 14 6 22 9 2 21 4 35 6 44 2 5 5 7 9 7l53 0c2 0 4-1 6-2 2-2 3-3 3-5l6-44c7-2 14-5 22-9l33 26c2 1 4 2 6 2 2 0 4-1 6-3 28-25 41-40 41-45 0-2 0-4-2-6-2-3-6-8-12-15-5-8-10-13-13-17 5-10 8-17 10-24l44-6c1-1 3-2 4-3 2-2 2-4 2-6z m183-152l0-40c0-3-14-6-42-9-3-5-5-10-9-15 10-22 15-35 15-39 0-1-1-2-1-2-24-14-35-21-36-21-1 0-6 5-13 14-7 9-12 15-15 19-4 0-7 0-8 0-2 0-5 0-9 0-3-4-8-10-15-19-7-9-11-14-13-14 0 0-12 7-35 21-1 0-2 1-2 2 0 4 5 17 15 39-3 5-6 10-9 15-28 3-42 6-42 9l0 40c0 3 14 6 42 9 3 5 6 10 9 14-10 22-15 35-15 40 0 1 1 1 2 2 0 0 4 2 10 6 5 3 11 6 16 9 6 3 9 5 9 5 2 0 6-5 13-13 7-9 12-16 15-20 4 1 7 1 9 1 1 0 4 0 8-1 10 14 19 24 26 32l2 1c1 0 13-7 36-20 0-1 1-1 1-2 0-5-5-18-15-40 3-4 6-9 9-14 28-3 42-6 42-9z m0 292l0-40c0-3-14-6-42-9-3-5-5-10-9-14 10-22 15-35 15-40 0-1-1-1-1-2-24-13-35-20-36-20-1 0-6 4-13 13-7 9-12 16-15 20-4-1-7-1-8-1-2 0-5 0-9 1-3-4-8-11-15-20-7-9-11-13-13-13 0 0-12 7-35 20-1 1-2 1-2 2 0 5 5 18 15 40-3 4-6 9-9 14-28 3-42 6-42 9l0 40c0 3 14 6 42 9 3 6 6 11 9 15-10 22-15 35-15 39 0 1 1 2 2 2 0 1 4 3 10 6 5 4 11 7 16 10 6 3 9 4 9 4 2 0 6-4 13-13 7-9 12-15 15-19 4 0 7 0 9 0 1 0 4 0 8 0 10 13 19 24 26 32l2 0c1 0 13-6 36-20 0 0 1-1 1-2 0-4-5-17-15-39 3-4 6-9 9-15 28-3 42-6 42-9z"/>
|
||||
<glyph glyph-name="startup" unicode="g" d="M430 384c0 8-3 14-8 19-6 6-12 8-20 8-7 0-14-2-19-8-5-5-8-11-8-19 0-8 3-14 8-19 5-6 12-8 19-8 8 0 14 2 20 8 5 5 8 11 8 19z m64 82c0-47-7-88-22-123-14-34-38-69-72-103-16-15-34-32-56-50l-6-108c0-3-2-6-4-8l-110-64c-1 0-3-1-5-1-2 0-4 1-6 3l-18 18c-3 3-4 6-3 9l25 79-81 80-79-24c0 0-1 0-2 0-3 0-5 1-7 2l-18 19c-3 3-4 7-1 11l64 109c1 3 4 5 7 5l108 6c19 21 35 40 51 55 35 36 69 61 102 74 32 14 73 20 123 20 3 0 5 0 7-2 2-2 3-4 3-7z"/>
|
||||
<glyph glyph-name="dash" unicode="d" d="M110 183c0 10-4 19-11 26-7 7-16 10-26 10-10 0-19-3-26-10-7-7-10-16-10-26 0-10 3-19 10-26 7-7 16-11 26-11 10 0 19 4 26 11 7 7 11 16 11 26z m55 128c0 10-4 19-11 26-7 7-16 10-26 10-10 0-19-3-26-10-7-7-11-16-11-26 0-10 4-19 11-26 7-7 16-11 26-11 10 0 19 4 26 11 7 7 11 16 11 26z m122-138l29 110c1 5 0 9-2 13-3 5-7 8-11 9-5 1-10 1-14-2-5-3-7-6-9-11l-29-109c-11-1-21-6-30-13-9-7-15-17-18-28-4-15-2-29 6-42 7-13 18-21 33-25 15-4 29-2 42 6 13 7 21 18 25 33 3 11 3 23-2 33-4 11-11 20-20 26z m188 10c0 10-3 19-10 26-7 7-16 10-26 10-10 0-19-3-26-10-7-7-11-16-11-26 0-10 4-19 11-26 7-7 16-11 26-11 10 0 19 4 26 11 7 7 10 16 10 26z m-182 183c0 10-4 18-11 26-7 7-16 10-26 10-10 0-19-3-26-10-7-8-11-16-11-26 0-10 4-19 11-26 7-7 16-11 26-11 10 0 19 4 26 11 7 7 11 16 11 26z m128-55c0 10-4 19-11 26-7 7-16 10-26 10-10 0-19-3-26-10-7-7-11-16-11-26 0-10 4-19 11-26 7-7 16-11 26-11 10 0 19 4 26 11 7 7 11 16 11 26z m91-128c0-50-13-96-40-138-4-6-9-8-16-8l-400 0c-7 0-12 2-16 8-27 42-40 88-40 138 0 35 7 68 20 99 14 32 32 59 55 82 23 23 50 41 82 55 31 13 64 20 99 20 35 0 68-7 99-20 32-14 59-32 82-55 23-23 41-50 55-82 13-31 20-64 20-99z"/>
|
||||
<glyph glyph-name="stats" unicode="j" d="M17 222c-14 4-20 13-16 29 3 14 12 20 27 16 0 0 50-12 50-12 0 0-26-41-26-41 0 0-35 8-35 8m455-6c4 4 10 6 16 6 7-1 12-3 16-8 11-11 11-22-1-33 0 0-128-115-128-115-5-4-10-6-16-6-5 0-9 2-14 5 0 0-146 112-146 112 0 0-28 8-28 8 0 0 26 40 26 40 0 0 18-4 18-4 4-1 7-2 8-4 0 0 135-104 135-104 0 0 114 103 114 103m-251 112c0 0-178-280-178-280-4-8-11-12-20-12-4 0-8 2-12 5-5 3-9 8-10 14-1 7 0 12 3 17 0 0 191 300 191 300 3 6 7 9 14 11 6 2 12 1 19-3 0 0 125-80 125-80 0 0 115 166 115 166 4 6 9 9 15 10 6 1 12-1 17-5 13-8 15-18 6-31 0 0-128-185-128-185-9-12-19-14-32-6 0 0-125 79-125 79"/>
|
||||
<glyph glyph-name="terminal" unicode="l" d="M495 451l-478 0c-10 0-17-8-17-17l0-83 512 0 0 83c0 9-7 17-17 17z m-173-72c-12 0-22 10-22 22 0 12 10 22 22 22 13 0 23-10 23-22 0-12-10-22-23-22z m61 0c-12 0-22 10-22 22 0 12 10 22 22 22 12 0 22-10 22-22 0-12-10-22-22-22z m61 0c-13 0-23 10-23 22 0 12 10 22 23 22 12 0 22-10 22-22 0-12-10-22-22-22z m-444-61l0-240c0-9 7-17 17-17l478 0c10 0 17 8 17 17l0 240z m235-141l-54-47c-7-6-18-5-24 2-6 7-5 18 2 24l40 33-40 34c-7 6-8 17-2 24 6 7 17 8 24 2l54-47c8-7 8-19 0-25z m107-51l-66 0c-9 0-17 8-17 17 0 9 8 17 17 17l66 0c9 0 17-8 17-17 0-9-8-17-17-17z"/>
|
||||
<glyph glyph-name="cleaner" unicode="n" d="M502 502c-13 13-35 13-48 0l-136-136-81 81c-21 20-54 20-74 0l-59-58 8-8-101-64c-6-4-10-10-11-17-1-8 2-15 7-20l273-273c5-5 11-7 17-7 1 0 2 0 3 0 7 1 13 5 17 11l64 101 8-8 58 59c20 20 20 53 0 74l-81 81 136 136c13 13 13 35 0 48z m-209-441l-47 47 46 68-68-46-40 40 29 43-43-29-45 45 36 53-53-36-47 47 85 54 201-201z"/>
|
||||
<glyph glyph-name="uninstaller" unicode="k" d="M256 47l183 99 0 182-183-67z m-18 247l199 72-199 73-200-73z m237 72l0-220c0-6-1-13-5-18-3-6-8-10-14-14l-201-109c-5-3-11-5-17-5-7 0-12 2-18 5l-201 109c-6 4-10 8-14 14-3 5-5 12-5 18l0 220c0 7 2 14 7 21 4 6 10 10 17 13l201 73c4 2 9 2 13 2 4 0 8 0 12-2l201-73c8-3 13-7 18-13 4-7 6-14 6-21z"/>
|
||||
<glyph glyph-name="collapse" unicode="b" d="M256 238l0-128c0-5-2-10-5-13-4-4-8-6-13-6-5 0-10 2-13 6l-41 41-95-95c-2-2-4-3-7-3-2 0-4 1-6 3l-33 33c-2 2-3 4-3 6 0 3 1 5 3 7l95 95-41 41c-4 3-6 8-6 13 0 5 2 9 6 13 3 3 8 5 13 5l128 0c5 0 9-2 13-5 3-4 5-8 5-13z m216 192c0-3-1-5-3-7l-95-95 41-41c4-3 6-8 6-13 0-5-2-9-6-13-3-3-8-5-13-5l-128 0c-5 0-9 2-13 5-3 4-5 8-5 13l0 128c0 5 2 10 5 13 4 4 8 6 13 6 5 0 10-2 13-6l41-41 95 95c2 2 4 3 7 3 2 0 4-1 6-3l33-33c2-2 3-4 3-6z"/>
|
||||
<glyph glyph-name="expand" unicode="c" d="M252 210c0-2-1-4-3-6l-94-95 41-41c3-4 5-8 5-13 0-5-2-9-5-13-4-4-8-5-13-5l-128 0c-5 0-9 1-13 5-4 4-5 8-5 13l0 128c0 5 1 9 5 13 4 3 8 5 13 5 5 0 9-2 13-5l41-41 95 94c2 2 4 3 6 3 3 0 5-1 7-3l32-32c2-2 3-4 3-7z m223 247l0-128c0-5-1-9-5-13-4-3-8-5-13-5-5 0-9 2-13 5l-41 41-95-94c-2-2-4-3-6-3-3 0-5 1-7 3l-32 32c-2 2-3 4-3 7 0 2 1 4 3 6l94 95-41 41c-3 4-5 8-5 13 0 5 2 9 5 13 4 4 8 5 13 5l128 0c5 0 9-1 13-5 4-4 5-8 5-13z"/>
|
||||
<glyph glyph-name="settings" unicode="a" d="M128 91c0 5-2 10-5 13-4 4-8 6-13 6-5 0-10-2-13-6-4-3-6-8-6-13 0-5 2-9 6-12 3-4 8-6 13-6 5 0 9 2 13 6 3 3 5 7 5 12z m184 120l-195-194c-7-7-15-11-26-11-9 0-18 4-26 11l-30 30c-7 7-11 16-11 26 0 10 4 19 11 26l195 195c7-19 18-35 32-50 15-14 31-25 50-33z m181 125c0-8-2-18-6-31-9-25-25-46-47-62-23-16-47-24-74-24-36 0-66 13-91 38-25 25-37 55-37 90 0 36 12 66 37 91 25 25 55 37 91 37 11 0 22-1 34-4 13-3 23-8 31-14 3-2 5-4 5-8 0-3-2-5-5-8l-84-48 0-64 56-30c1 0 8 5 22 13 14 9 27 17 39 24 12 6 18 10 20 10 3 0 5-1 7-3 1-2 2-4 2-7z"/>
|
||||
<glyph glyph-name="sort-asc" unicode="e" d="M210 101c0-3-1-5-3-7l-91-91c-2-2-4-3-6-3-3 0-5 1-7 3l-91 91c-3 3-4 6-2 10 1 4 4 6 8 6l55 0 0 393c0 3 1 5 3 6 1 2 4 3 6 3l55 0c3 0 5-1 7-3 1-1 2-3 2-6l0-393 55 0c3 0 5-1 7-3 1-2 2-4 2-6z m302-37l0-55c0-3-1-5-3-6-1-2-3-3-6-3l-238 0c-3 0-5 1-6 3-2 1-3 3-3 6l0 55c0 3 1 5 3 7 1 1 3 2 6 2l238 0c3 0 5-1 6-2 2-2 3-4 3-7z m-55 146l0-55c0-2-1-4-2-6-2-2-4-3-7-3l-183 0c-3 0-5 1-6 3-2 2-3 4-3 6l0 55c0 3 1 5 3 7 1 2 3 2 6 2l183 0c3 0 5 0 7-2 1-2 2-4 2-7z m-55 147l0-55c0-3-1-5-2-7-2-2-4-2-7-2l-128 0c-3 0-5 0-6 2-2 2-3 4-3 7l0 55c0 2 1 4 3 6 1 2 3 3 6 3l128 0c3 0 5-1 7-3 1-2 2-4 2-6z m-55 146l0-55c0-3 0-5-2-7-2-1-4-2-7-2l-73 0c-3 0-5 1-6 2-2 2-3 4-3 7l0 55c0 3 1 5 3 6 1 2 3 3 6 3l73 0c3 0 5-1 7-3 2-1 2-3 2-6z"/>
|
||||
<glyph glyph-name="sort-desc" unicode="f" d="M347 64l0-55c0-3 0-5-2-6-2-2-4-3-7-3l-73 0c-3 0-5 1-6 3-2 1-3 3-3 6l0 55c0 3 1 5 3 7 1 1 3 2 6 2l73 0c3 0 5-1 7-2 2-2 2-4 2-7z m-137 37c0-3-1-5-3-7l-91-91c-2-2-4-3-6-3-3 0-5 1-7 3l-91 91c-3 3-4 6-2 10 1 4 4 6 8 6l55 0 0 393c0 3 1 5 3 6 1 2 4 3 6 3l55 0c3 0 5-1 7-3 1-1 2-3 2-6l0-393 55 0c3 0 5-1 7-3 1-2 2-4 2-6z m192 109l0-55c0-2-1-4-2-6-2-2-4-3-7-3l-128 0c-3 0-5 1-6 3-2 2-3 4-3 6l0 55c0 3 1 5 3 7 1 2 3 2 6 2l128 0c3 0 5 0 7-2 1-2 2-4 2-7z m55 147l0-55c0-3-1-5-2-7-2-2-4-2-7-2l-183 0c-3 0-5 0-6 2-2 2-3 4-3 7l0 55c0 2 1 4 3 6 1 2 3 3 6 3l183 0c3 0 5-1 7-3 1-2 2-4 2-6z m55 146l0-55c0-3-1-5-3-7-1-1-3-2-6-2l-238 0c-3 0-5 1-6 2-2 2-3 4-3 7l0 55c0 3 1 5 3 6 1 2 3 3 6 3l238 0c3 0 5-1 6-3 2-1 3-3 3-6z"/>
|
||||
</font></defs></svg>
|
||||
|
Before Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 614 B |
|
Before Width: | Height: | Size: 805 B |
|
Before Width: | Height: | Size: 510 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 507 B |
|
Before Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 953 B |
|
Before Width: | Height: | Size: 650 B |
|
Before Width: | Height: | Size: 378 B |
@@ -1,28 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Stacer</title>
|
||||
<script>
|
||||
window.$ = window.jQuery = require('jquery');
|
||||
</script>
|
||||
<link rel="stylesheet" type="text/css" href="../assets/css/font.css">
|
||||
<link rel="stylesheet" type="text/css" href="../assets/css/style.css">
|
||||
<link rel="stylesheet" type="text/css" href="../assets/css/loader.css">
|
||||
<link rel="stylesheet" type="text/css" href="../assets/css/amaran.min.css">
|
||||
<!--Themes-->
|
||||
<link rel="stylesheet" type="text/css" href="../assets/css/themes/dark.css">
|
||||
<link rel="stylesheet" type="text/css" href="../assets/css/themes/light.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<app v-cloak />
|
||||
</body>
|
||||
|
||||
<!-- Scripts -->
|
||||
<script src="../libs/vue.min.js"></script>
|
||||
<script src="index.js"></script>
|
||||
<!-- Scripts -->
|
||||
|
||||
</html>
|
||||
1
libs/amaran.min.js
vendored
8
libs/vue.min.js
vendored
48
main.js
@@ -1,48 +0,0 @@
|
||||
const {
|
||||
app,
|
||||
BrowserWindow,
|
||||
} = require('electron')
|
||||
|
||||
const electron = require('electron')
|
||||
|
||||
var win
|
||||
|
||||
function createWindow() {
|
||||
const _width = 935, _height = 620
|
||||
win = new BrowserWindow({
|
||||
width: _width,
|
||||
height: _height,
|
||||
minWidth: _width,
|
||||
minHeight: _height,
|
||||
maxWidth: _width,
|
||||
maxHeight: _height,
|
||||
maximizable: false,
|
||||
resizable: false,
|
||||
icon: './assets/img/icons/icon256x256.png'
|
||||
})
|
||||
|
||||
try {
|
||||
const screenSize = electron.screen.getPrimaryDisplay().size;
|
||||
const w = (screenSize.width - _width ) / 2 ,
|
||||
h = (screenSize.height - _height ) / 2
|
||||
win.setPosition(w,h)
|
||||
}
|
||||
catch(err) {
|
||||
win.center()
|
||||
}
|
||||
|
||||
win.setMenu(null)
|
||||
|
||||
win.loadURL(`file://${__dirname}/bundle/index.html`)
|
||||
|
||||
win.on('closed', () => win = null )
|
||||
}
|
||||
|
||||
app.on('ready', createWindow)
|
||||
|
||||
app.on('window-all-closed', () => app.quit() )
|
||||
|
||||
app.on('activate', () => {
|
||||
if (win === null)
|
||||
createWindow()
|
||||
})
|
||||
57
package.json
@@ -1,57 +0,0 @@
|
||||
{
|
||||
"name": "stacer",
|
||||
"productName": "Stacer",
|
||||
"version": "1.0.7",
|
||||
"description": "Linux System Optimizer and Monitoring",
|
||||
"license": "MIT",
|
||||
"main": "main.js",
|
||||
"author": "Oguzhan Inan <oguzhan3488@gmail.com>",
|
||||
"keywords": [
|
||||
"linux",
|
||||
"system",
|
||||
"optimizer",
|
||||
"monitoring"
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/oguzhaninan/Stacer.git"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/oguzhaninan/Stacer/issues"
|
||||
},
|
||||
"build": {
|
||||
"linux": {
|
||||
"icon": "assets/img/icons"
|
||||
}
|
||||
},
|
||||
"homepage": "https://github.com/oguzhaninan/Stacer",
|
||||
"scripts": {
|
||||
"start": "yarn run build; electron .",
|
||||
"build": "babel src/ -d bundle/",
|
||||
"clean": "rm bundle/*.js bundle/**/*.js bundle/**/**/*.js",
|
||||
"package-x86": "electron-packager . --overwrite --platform=linux --arch=ia32 --icon=assets/img/icons/icon256x256.png --prune=true --out=release-builds --electron-version=1.6.10",
|
||||
"package-x64": "electron-packager . --overwrite --platform=linux --arch=x64 --icon=assets/img/icons/icon256x256.png --prune=true --out=release-builds --electron-version=1.6.10",
|
||||
"installer-x86": "electron-installer-debian --src release-builds/Stacer-linux-ia32/ --arch i386 --dest dest/installers/ --icon assets/img/icons/icon256x256.png",
|
||||
"installer-x64": "electron-installer-debian --src release-builds/Stacer-linux-x64/ --arch amd64 --dest dest/installers/ --icon assets/img/icons/icon256x256.png",
|
||||
"release-x86": "npm run package-x86 && npm run installer-x86",
|
||||
"release-x64": "npm run package-x64 && npm run installer-x64",
|
||||
"clean-package": "rm -r release-builds/ dest/"
|
||||
},
|
||||
"dependencies": {
|
||||
"chart.js": "^2.6.0",
|
||||
"chartkick": "^2.2.4",
|
||||
"chokidar": "^1.7.0",
|
||||
"jquery": "^3.2.1",
|
||||
"progressbar.js": "^1.0.1",
|
||||
"properties-reader": "^0.0.15",
|
||||
"sudo-prompt": "^7.0.0",
|
||||
"systeminformation": "^3.18.0",
|
||||
"winston": "^2.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-cli": "^6.24.1",
|
||||
"babel-preset-es2015": "^6.24.1",
|
||||
"electron": "^1.6.10",
|
||||
"electron-builder": "^18.6.2"
|
||||
}
|
||||
}
|
||||
@@ -1,116 +0,0 @@
|
||||
import Dashboard from './dashboard/Dashboard'
|
||||
import SystemCleaner from './system-cleaner/SystemCleaner'
|
||||
import StartupApps from './startup-apps/StartupApps'
|
||||
import Services from './services/Services'
|
||||
import Process from './process/Process'
|
||||
import Uninstaller from './uninstaller/Uninstaller'
|
||||
import Resources from './resources/Resources'
|
||||
import Settings from './settings/Settings'
|
||||
|
||||
export default {
|
||||
template: `<div id="main" class="fr">
|
||||
|
||||
<div class="sidebar-nav">
|
||||
<ul>
|
||||
<li :class="isActiveNav(1)" @click="activeNav = 1" >
|
||||
<i class="icon-dash"></i>
|
||||
<label>{{ lang('dashboard') }}</label>
|
||||
</li>
|
||||
<li :class="isActiveNav(2)" @click="activeNav = 2" >
|
||||
<i class="icon-cleaner"></i>
|
||||
<label>{{ lang('sysCleaner') }}</label>
|
||||
</li>
|
||||
<li :class="isActiveNav(3)" @click="activeNav = 3" >
|
||||
<i class="icon-startup"></i>
|
||||
<label>{{ lang('startupApps') }}</label>
|
||||
</li>
|
||||
<li :class="isActiveNav(4)" @click="activeNav = 4" >
|
||||
<i class="icon-service"></i>
|
||||
<label>{{ lang('services') }}</label>
|
||||
</li>
|
||||
<li :class="isActiveNav(5)" @click="activeNav = 5" >
|
||||
<i class="icon-terminal"></i>
|
||||
<label>{{ lang('process') }}</label>
|
||||
</li>
|
||||
<li :class="isActiveNav(6)" @click="activeNav = 6" >
|
||||
<i class="icon-uninstaller"></i>
|
||||
<label>{{ lang('uninstaller') }}</label>
|
||||
</li>
|
||||
<li :class="isActiveNav(7)" @click="activeNav = 7" >
|
||||
<i class="icon-stats"></i>
|
||||
<label>{{ lang('resources') }}</label>
|
||||
</li>
|
||||
<li :class="isActiveNav(8)" @click="activeNav = 8" >
|
||||
<i class="icon-settings"></i>
|
||||
<label>{{ lang('appSettings') }}</label>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<dashboard v-show="activeNav == 1">
|
||||
<h1> {{ lang('dashboard') }} </h1>
|
||||
</dashboard>
|
||||
|
||||
<system-cleaner v-show="activeNav == 2">
|
||||
<h1> {{ lang('sysCleaner') }} </h1>
|
||||
</system-cleaner>
|
||||
|
||||
<startup-apps v-show="activeNav == 3">
|
||||
<h1> {{ lang('startupApps') }} </h1>
|
||||
</startup-apps>
|
||||
|
||||
<services v-show="activeNav == 4">
|
||||
<h1> {{ lang('services') }} </h1>
|
||||
</services>
|
||||
|
||||
<process v-show="activeNav == 5">
|
||||
<h1> {{ lang('process') }} </h1>
|
||||
</process>
|
||||
|
||||
<uninstaller v-show="activeNav == 6">
|
||||
<h1> {{ lang('uninstaller') }} </h1>
|
||||
</uninstaller>
|
||||
|
||||
<resources v-show="activeNav == 7">
|
||||
<h1> {{ lang('resources') }} </h1>
|
||||
</resources>
|
||||
|
||||
<settings v-show="activeNav == 8">
|
||||
<h1> {{ lang('appSettings') }} </h1>
|
||||
</settings>
|
||||
|
||||
<!--Startup Loading-->
|
||||
<div id="loading">
|
||||
<span class="loader_text"> Loading... </span>
|
||||
<div id="loader">
|
||||
<span></span><span></span><span></span>
|
||||
<span></span><span></span><span></span>
|
||||
<span></span><span></span><span></span>
|
||||
<span></span><span></span><span></span>
|
||||
<span></span><span></span><span></span>
|
||||
<span></span><span></span><span></span>
|
||||
<span></span><span></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>`,
|
||||
data() {
|
||||
return ({
|
||||
activeNav: 1
|
||||
})
|
||||
},
|
||||
components: {
|
||||
'dashboard': Dashboard,
|
||||
'system-cleaner': SystemCleaner,
|
||||
'startup-apps': StartupApps,
|
||||
'services': Services,
|
||||
'process': Process,
|
||||
'uninstaller': Uninstaller,
|
||||
'resources': Resources,
|
||||
'settings': Settings,
|
||||
},
|
||||
methods: {
|
||||
isActiveNav(val) {
|
||||
return this.activeNav == val ? 'nav-active' : ''
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
export default {
|
||||
template: `<div class="cont fl">
|
||||
<h3>{{ title }}</h3>
|
||||
<svg viewBox="0 0 106 76" class="circle-bar" :style="'background-image: url(../assets/img/' + img + ')'">
|
||||
<path d="M 58,73 m -45,0 a 45,45 0 1 1 80,0" stroke="#202b33" stroke-width="14" fill-opacity="0" />
|
||||
<path :id="idd" d="M 58,73 m -45,0 a 45,45 0 1 1 80,0" :stroke="stroke" stroke-width="14" fill-opacity="0" />
|
||||
</svg>
|
||||
<span>{{ text }}</span>
|
||||
</div>`,
|
||||
props: ['stroke', 'text', 'idd', 'img', 'title']
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
import {
|
||||
Path
|
||||
} from 'progressbar.js'
|
||||
import si from 'systeminformation'
|
||||
import CircleBar from './CircleBar'
|
||||
|
||||
export default {
|
||||
template: `<circle-bar :title="lang('cpu')" idd="cpu-cont" stroke="#2ecc71" :text="cpuValue + '%'" img="cpu.png" />`,
|
||||
components: {
|
||||
'circle-bar': CircleBar
|
||||
},
|
||||
data() {
|
||||
return ({
|
||||
cpuValue: 0
|
||||
})
|
||||
},
|
||||
mounted() {
|
||||
let cpuBar = new Path('#cpu-cont', {
|
||||
duration: 1000
|
||||
})
|
||||
|
||||
setInterval(() => {
|
||||
si.currentLoad(val => {
|
||||
this.cpuValue = val.currentload.toFixed(0)
|
||||
cpuBar.animate(this.cpuValue / 100)
|
||||
})
|
||||
}, 1000)
|
||||
}
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
import {
|
||||
shell
|
||||
} from 'electron'
|
||||
import si from 'systeminformation'
|
||||
//Components
|
||||
import SystemInfo from './SystemInfo'
|
||||
import UpBar from './UpBar'
|
||||
import DownBar from './DownBar'
|
||||
import CpuBar from './CpuBar'
|
||||
import MemoryBar from './MemoryBar'
|
||||
import DiskBar from './DiskBar'
|
||||
|
||||
export default {
|
||||
template: `<transition name="slide-fade">
|
||||
<div class="content">
|
||||
<slot></slot>
|
||||
<cpu-bar/>
|
||||
<memory-bar/>
|
||||
<disk-bar/>
|
||||
|
||||
<down-bar/>
|
||||
<system-info/>
|
||||
<up-bar/>
|
||||
|
||||
<!--Update Check-->
|
||||
<div class="update-check" v-show="update_check">
|
||||
<span>{{ lang('updateMsg') }}</span>
|
||||
<button @click="download_update">
|
||||
{{ lang('downloadUpdate') }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</transition>`,
|
||||
data() {
|
||||
return ({
|
||||
update_check: false
|
||||
})
|
||||
},
|
||||
components: {
|
||||
'system-info': SystemInfo,
|
||||
'up-bar': UpBar,
|
||||
'down-bar': DownBar,
|
||||
'cpu-bar': CpuBar,
|
||||
'memory-bar': MemoryBar,
|
||||
'disk-bar': DiskBar
|
||||
},
|
||||
methods: {
|
||||
// open the link on browser
|
||||
download_update() {
|
||||
shell.openExternal('https://github.com/oguzhaninan/Stacer/releases/latest')
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// Update check
|
||||
try {
|
||||
$.getJSON('https://api.github.com/repos/oguzhaninan/Stacer/releases/latest', data => {
|
||||
let currentVersion = require('../../../package.json').version.toString()
|
||||
let releaseVersion = data.tag_name.substr(1).toString()
|
||||
|
||||
this.update_check = (currentVersion != releaseVersion)
|
||||
})
|
||||
} catch (err) {
|
||||
logger.error('Update Check', err)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
import {
|
||||
Path
|
||||
} from 'progressbar.js'
|
||||
import si from 'systeminformation'
|
||||
import helpers from '../../utils/helpers'
|
||||
import CircleBar from './CircleBar'
|
||||
|
||||
export default {
|
||||
template: `<circle-bar :title="lang('disk')" idd="disk-cont" stroke="#e74c3c" :text="this.diskUsed + ' / ' + this.diskTotal + 'GB'" img="disk.png" />`,
|
||||
components: {
|
||||
'circle-bar': CircleBar
|
||||
},
|
||||
data() {
|
||||
return ({
|
||||
diskUsed: 0,
|
||||
diskTotal: 0,
|
||||
diskBar: null
|
||||
})
|
||||
},
|
||||
mounted() {
|
||||
this.diskBar = new Path('#disk-cont', {
|
||||
duration: 5000
|
||||
})
|
||||
|
||||
this.diskInfo()
|
||||
setInterval(this.diskInfo, 5000)
|
||||
},
|
||||
methods: {
|
||||
diskInfo() {
|
||||
si.fsSize(disk => {
|
||||
this.diskUsed = helpers.prettyDiskSize(disk[0].used)
|
||||
this.diskTotal = helpers.prettyDiskSize(disk[0].size)
|
||||
this.diskBar.animate(disk[0].use / 100)
|
||||
})}
|
||||
}
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
import {
|
||||
Line
|
||||
} from 'progressbar.js'
|
||||
import si from 'systeminformation'
|
||||
|
||||
export default {
|
||||
template: `<div class="line-cont">
|
||||
<h3>{{ lang('download') }}</h3>
|
||||
<div id="down-bar"></div>
|
||||
<span>{{ downSpeed + ' kB/s' }}</span>
|
||||
</div>`,
|
||||
data() {
|
||||
return ({
|
||||
downSpeed: 0
|
||||
})
|
||||
},
|
||||
mounted() {
|
||||
let downBar = new Line('#down-bar', {
|
||||
strokeWidth: 5,
|
||||
duration: 1000,
|
||||
color: '#3498db',
|
||||
trailColor: '#202b33'
|
||||
})
|
||||
|
||||
let max = 1000
|
||||
// Get network name
|
||||
si.networkInterfaceDefault(defaultNetwork => {
|
||||
setInterval(() => {
|
||||
// get down speed
|
||||
si.networkStats(defaultNetwork, data => {
|
||||
let speed = Math.abs(data.rx_sec / 1024).toFixed(2)
|
||||
this.downSpeed = speed > 0 ? speed : 0
|
||||
// down bar update
|
||||
max = max < this.downSpeed ? this.downSpeed : max
|
||||
let percent = this.downSpeed / max < 1 ? this.downSpeed / max : 1
|
||||
downBar.animate(percent)
|
||||
})
|
||||
}, 1000)
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
import {
|
||||
Path
|
||||
} from 'progressbar.js'
|
||||
import si from 'systeminformation'
|
||||
import helpers from '../../utils/helpers'
|
||||
import CircleBar from './CircleBar'
|
||||
|
||||
export default {
|
||||
template: `<circle-bar :title="lang('memory')" idd="mem-cont" stroke="#f1c40f" :text="memoryValue" img="memory.png" />`,
|
||||
components: {
|
||||
'circle-bar': CircleBar
|
||||
},
|
||||
data() {
|
||||
return ({
|
||||
memoryValue: 0
|
||||
})
|
||||
},
|
||||
mounted() {
|
||||
let memoryBar = new Path('#mem-cont', {
|
||||
duration: 1500
|
||||
})
|
||||
|
||||
setInterval(() => {
|
||||
si.mem(ram => {
|
||||
let usedMem = ram.total - ram.available
|
||||
let totalMem = ram.total
|
||||
this.memoryValue = helpers.prettyMemSize(usedMem) + ' / ' + helpers.prettyMemSize(totalMem) + 'GB'
|
||||
memoryBar.animate(usedMem / totalMem)
|
||||
})
|
||||
}, 1500)
|
||||
}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
import si from 'systeminformation'
|
||||
|
||||
export default {
|
||||
template: `<div class="system-info">
|
||||
<h3>{{ lang('systemInfo') }}</h3>
|
||||
<ul> <li v-for="info in information"> {{ info }} </li> </ul>
|
||||
</div>`,
|
||||
data() {
|
||||
return {
|
||||
information: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
si.osInfo(o => {
|
||||
this.information.push(lang('hostname') + ': ' + isUndefined(o.hostname))
|
||||
this.information.push(lang('platform') + ': ' + isUndefined(o.platform) + " " + isUndefined(o.arch))
|
||||
this.information.push(lang('distribution') + ': ' + isUndefined(o.distro) + " " + isUndefined(o.release))
|
||||
this.information.push(lang('kernelRel') + ': ' + isUndefined(o.kernel))
|
||||
si.cpu(c => {
|
||||
this.information.push(lang('cpuModel') + ': ' + isUndefined(c.manufacturer) + " " + isUndefined(c.brand))
|
||||
this.information.push(lang('cpuSpeed') + ': ' + isUndefined(c.speed) + "GHz")
|
||||
this.information.push(lang('cpuCores') + ': ' + c.cores)
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
function isUndefined(o) {
|
||||
if(typeof o == 'string') return o
|
||||
else return 'Undefined'
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
import {
|
||||
Line
|
||||
} from 'progressbar.js'
|
||||
import si from 'systeminformation'
|
||||
|
||||
export default {
|
||||
template: `<div class="line-cont">
|
||||
<h3>{{ lang('upload') }}</h3>
|
||||
<div id="up-bar"></div>
|
||||
<span>{{ this.upSpeed + ' kB/s' }}</span>
|
||||
</div>`,
|
||||
data() {
|
||||
return ({
|
||||
upSpeed: 0
|
||||
})
|
||||
},
|
||||
mounted() {
|
||||
let upBar = new Line('#up-bar', {
|
||||
strokeWidth: 5,
|
||||
duration: 1000,
|
||||
color: '#3498db',
|
||||
trailColor: '#202b33'
|
||||
})
|
||||
|
||||
let max = 1000
|
||||
// Get network name
|
||||
si.networkInterfaceDefault(defaultNetwork => {
|
||||
setInterval(() => {
|
||||
// get upload speed
|
||||
si.networkStats(defaultNetwork, data => {
|
||||
let speed = Math.abs(data.tx_sec / 1024).toFixed(2)
|
||||
this.upSpeed = speed > 0 ? speed : 0
|
||||
// up bar update
|
||||
max = max < this.upSpeed ? this.upSpeed : max
|
||||
let percent = this.upSpeed / max < 1 ? this.upSpeed / max : 1
|
||||
upBar.animate(percent)
|
||||
})
|
||||
}, 1000)
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -1,170 +0,0 @@
|
||||
import {
|
||||
spawnSync
|
||||
} from 'child_process'
|
||||
import {
|
||||
showMessage
|
||||
} from '../../utils/helpers.js'
|
||||
|
||||
import ProcessesList from './ProcessesList'
|
||||
|
||||
export default {
|
||||
template: `<transition name="slide-fade">
|
||||
<div class="content">
|
||||
<slot></slot>
|
||||
<div class="processes">
|
||||
<div class="fl w100">
|
||||
<h3 class="fl">{{ lang('process') }} ({{ processes.length }})</h3>
|
||||
<input type="text" v-model="searchString" :placeholder="lang('search') + '...'" />
|
||||
</div>
|
||||
<table class="datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th @click="sortPid" scope="col" width="80">
|
||||
PID <i :class="sortAmount(sPid)"></i>
|
||||
</th>
|
||||
<th @click="sortCpu" scope="col" width="70">
|
||||
%CPU <i :class="sortAmount(sCpu)"></i>
|
||||
</th>
|
||||
<th @click="sortMem" scope="col" width="80">
|
||||
%MEM <i :class="sortAmount(sMem)"></i>
|
||||
</th>
|
||||
<th @click="sortRss" scope="col" width="80">
|
||||
RSS <i :class="sortAmount(sRss)"></i>
|
||||
</th>
|
||||
<th @click="sortVSize" scope="col" width="80">
|
||||
VSIZE <i :class="sortAmount(sVSize)"></i>
|
||||
</th>
|
||||
<th @click="sortUser" scope="col" width="100">
|
||||
User <i :class="sortAmount(sUser)"></i>
|
||||
</th>
|
||||
<th @click="sortCmd" scope="col">
|
||||
Process <i :class="sortAmount(sCmd)"></i>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
<div class="tbody scroll">
|
||||
<table class="datatable" style="margin-top: -18px;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" width="80"></th>
|
||||
<th scope="col" width="70"></th>
|
||||
<th scope="col" width="80"></th>
|
||||
<th scope="col" width="80"></th>
|
||||
<th scope="col" width="80"></th>
|
||||
<th scope="col" width="100"></th>
|
||||
<th scope="col"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="p in processes" @click="selectPid(p.pid)" :class="(selectedPid == p.pid) ? 'selectedRow' : ' '">
|
||||
<td :title="p.pid">{{ p.pid }}</th>
|
||||
<td :title="p.pcpu">{{ p.pcpu }}</td>
|
||||
<td :title="p.pmem">{{ p.pmem }}</td>
|
||||
<td :title="p.rss">{{ p.rss }}</td>
|
||||
<td :title="p.vsize">{{ p.vsize }}</td>
|
||||
<td :title="p.uname">{{ p.uname }}</td>
|
||||
<td :title="p.cmd">{{ p.cmd }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="refreshCont">
|
||||
<label>{{ lang('refresh') }} ({{ refreshInterval }})</label>
|
||||
<input type="range" min="1" max="10" step="1" v-model="refreshInterval" class="refreshProcesses"/>
|
||||
</div>
|
||||
<button @click="endProcess" :disabled="selectedPid == 0">{{ lang('endProcess') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</transition>`,
|
||||
data() {
|
||||
return ({
|
||||
processes: [],
|
||||
sPid: 0,
|
||||
sMem: 0,
|
||||
sRss: 0,
|
||||
sVSize: 0,
|
||||
sUser: 0,
|
||||
sCmd: 0,
|
||||
sCpu: 1,
|
||||
sort: ['--sort', '-pcpu'],
|
||||
searchString: '',
|
||||
selectedPid: 0,
|
||||
refreshInterval: 2,
|
||||
interval: null
|
||||
})
|
||||
},
|
||||
created() {
|
||||
this.interval = setInterval(() => this.processes = ProcessesList(this.searchString, this.sort), this.refreshInterval * 1000)
|
||||
},
|
||||
watch: {
|
||||
refreshInterval(val) {
|
||||
clearInterval(this.interval)
|
||||
this.interval = setInterval(() => this.processes = ProcessesList(this.searchString, this.sort), val * 1000)
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
selectPid(pid) {
|
||||
if (this.selectedPid == pid)
|
||||
this.selectedPid = 0
|
||||
else
|
||||
this.selectedPid = pid
|
||||
},
|
||||
sortPid() {
|
||||
this.sPid = this.changeAmount(this.sPid)
|
||||
this.changeSort(this.sPid, 'pid')
|
||||
},
|
||||
sortCpu() {
|
||||
this.sCpu = this.changeAmount(this.sCpu)
|
||||
this.changeSort(this.sCpu, 'pcpu')
|
||||
},
|
||||
sortMem() {
|
||||
this.sMem = this.changeAmount(this.sMem)
|
||||
this.changeSort(this.sMem, 'pmem')
|
||||
},
|
||||
sortRss() {
|
||||
this.sRss = this.changeAmount(this.sRss)
|
||||
this.changeSort(this.sRss, 'rss')
|
||||
},
|
||||
sortVSize() {
|
||||
this.sVSize = this.changeAmount(this.sVSize)
|
||||
this.changeSort(this.sVSize, 'vsize')
|
||||
},
|
||||
sortUser() {
|
||||
this.sUser = this.changeAmount(this.sUser)
|
||||
this.changeSort(this.sUser, 'uname')
|
||||
},
|
||||
sortCmd() {
|
||||
this.sCmd = this.changeAmount(this.sCmd)
|
||||
this.changeSort(this.sCmd, 'cmd')
|
||||
},
|
||||
sortAmount(s) {
|
||||
switch (s) {
|
||||
case 1:
|
||||
return 'icon-sort-desc'
|
||||
case -1:
|
||||
return 'icon-sort-asc'
|
||||
default:
|
||||
return ''
|
||||
}
|
||||
},
|
||||
changeSort(column, header) {
|
||||
this.sort = column == 0 ? [] : ['--sort', column == 1 ? '-' + header : header]
|
||||
},
|
||||
changeAmount(column) {
|
||||
this.sPid = this.sMem = this.sRss = this.sVSize = this.sUser = this.sCmd = this.sCpu = 0
|
||||
return column == 1 ? -1 : (column == 0 ? 1 : 0)
|
||||
},
|
||||
endProcess() {
|
||||
if (this.selectedPid != 0) {
|
||||
var kill = spawnSync('kill', [this.selectedPid])
|
||||
|
||||
if (kill.stderr.toString().indexOf('permitted') !== -1)
|
||||
showMessage(lang('permitted'), 'error')
|
||||
else
|
||||
logger.error('Process Kill', kill.stderr.toString())
|
||||
}
|
||||
this.selectedPid = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
import {
|
||||
spawnSync
|
||||
} from 'child_process'
|
||||
import {
|
||||
formatBytes
|
||||
} from '../../utils/helpers'
|
||||
import fs from 'fs'
|
||||
|
||||
export default (search = '', sort = []) => {
|
||||
search = search.toLowerCase()
|
||||
|
||||
let ps = spawnSync('ps', ['ax', '-o', 'pid,rss,pmem,vsize,uname,pcpu,cmd', ...sort, '--no-headings'])
|
||||
|
||||
if (ps.stderr.toString())
|
||||
logger.error('List Processes', ps.stderr.toString())
|
||||
|
||||
if ( search )
|
||||
return ps.stdout.toString().split('\n')
|
||||
.filter(p => p.toLowerCase().indexOf(search) !== -1)
|
||||
.map(p => procParse(p.trim())).slice(0, -1)
|
||||
else
|
||||
return ps.stdout.toString().split('\n')
|
||||
.map(p => procParse(p.trim())).slice(0, -1)
|
||||
}
|
||||
|
||||
function procParse(data) {
|
||||
let columns = data.split(/\s+/)
|
||||
|
||||
return {
|
||||
pid: columns[0],
|
||||
rss: formatBytes(columns[1] * 1024),
|
||||
pmem: columns[2],
|
||||
vsize: formatBytes(columns[3] * 1024),
|
||||
uname: columns[4],
|
||||
pcpu: columns[5],
|
||||
cmd: columns.slice(6).join(' ')
|
||||
}
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
import si from 'systeminformation'
|
||||
import Chartkick from 'chartkick'
|
||||
|
||||
export default {
|
||||
template: `<div>
|
||||
<h4>{{ lang('cpuHistory') }} <slot></slot></h4>
|
||||
<div id="cpus-chart" :style="'height:' + fheight"></div>
|
||||
</div>`,
|
||||
props: ['fheight'],
|
||||
data() {
|
||||
return ({
|
||||
cpuValues: [],
|
||||
cpuData: [],
|
||||
seconds: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
|
||||
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
|
||||
]
|
||||
})
|
||||
},
|
||||
mounted() {
|
||||
si.currentLoad(val => {
|
||||
let cpuCount = val.cpus.length
|
||||
|
||||
for (var i = 0; i < cpuCount; i++)
|
||||
this.cpuValues.push([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
])
|
||||
|
||||
let cpuChart = new Chartkick.LineChart('cpus-chart', this.cpuData, {
|
||||
colors: ['#2ecc71', '#e74c3c', '#3498db', '#f1c40f', '#9b59b6', '#34495e',
|
||||
'#1abc9c', '#e67e22', '#46f0f0', '#f032e6', '#fabebe', '#008080',
|
||||
'#e6beff', '#aa6e28', '#d2f53c', '#800000', '#aaffc3', '#808000',
|
||||
'#000080', '#808080'],
|
||||
legend: true,
|
||||
min: 0,
|
||||
max: 100,
|
||||
points: false
|
||||
})
|
||||
|
||||
setInterval(() => {
|
||||
si.currentLoad(val => {
|
||||
this.cpuValues.forEach((cpu, i) => this.cpuValues[i].splice(0, 1))
|
||||
this.cpuValues.forEach((cpu, i) => this.cpuValues[i].push(val.cpus[i].load.toFixed(1)))
|
||||
|
||||
this.cpuData = []
|
||||
|
||||
this.cpuValues.forEach((cpu, i) => {
|
||||
let name = 'CPU' + (i + 1) + ' ' + val.cpus[i].load.toFixed(1) + '%'
|
||||
this.cpuData.push({
|
||||
name: name,
|
||||
data: this.cpuValues[i].map((d, i) => [this.seconds[i], d])
|
||||
})
|
||||
})
|
||||
|
||||
cpuChart.updateData(this.cpuData)
|
||||
})
|
||||
}, 1000)
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
import helpers from '../../utils/helpers'
|
||||
import si from 'systeminformation'
|
||||
import Chartkick from 'chartkick'
|
||||
|
||||
export default {
|
||||
template: `<div>
|
||||
<h4>{{ lang('memHistory') }} <slot></slot></h4>
|
||||
<div id="memory-chart" :style="'height:' + fheight"></div>
|
||||
</div>`,
|
||||
props: ['fheight'],
|
||||
data() {
|
||||
return ({
|
||||
memoryValues: [],
|
||||
memoryData: [],
|
||||
seconds: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
|
||||
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
|
||||
]
|
||||
})
|
||||
},
|
||||
mounted() {
|
||||
si.mem(ram => {
|
||||
let totalMem = helpers.prettyMemSize(ram.total)
|
||||
let totalSwap = helpers.prettyMemSize(ram.swaptotal)
|
||||
|
||||
for (var i = 0; i < 2; i++)
|
||||
this.memoryValues.push([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
])
|
||||
|
||||
let memoryChart = new Chartkick.LineChart('memory-chart', this.memoryData, {
|
||||
colors: ['#2ecc71', '#e74c3c', '#3498db', '#f1c40f', '#9b59b6', '#34495e', '#1abc9c', '#e67e22'],
|
||||
min: 0,
|
||||
max: Math.max(totalMem, totalSwap),
|
||||
legend: true,
|
||||
points: false
|
||||
})
|
||||
|
||||
setInterval(() => {
|
||||
si.mem(ram => {
|
||||
let usedMem = helpers.prettyMemSize(ram.total - ram.available)
|
||||
let usedSwap = helpers.prettyMemSize(ram.swapused)
|
||||
|
||||
this.memoryValues.forEach((m, i) => this.memoryValues[i].splice(0, 1))
|
||||
|
||||
this.memoryValues[0].push(usedMem)
|
||||
this.memoryValues[1].push(usedSwap)
|
||||
|
||||
this.memoryData = []
|
||||
|
||||
this.memoryData.push({
|
||||
name: lang('memory'),
|
||||
data: this.memoryValues[0].map((d, i) => [this.seconds[i], d])
|
||||
})
|
||||
|
||||
this.memoryData.push({
|
||||
name: lang('swap').toString().toUpperCase(),
|
||||
data: this.memoryValues[1].map((d, i) => [this.seconds[i], d])
|
||||
})
|
||||
|
||||
memoryChart.updateData(this.memoryData)
|
||||
})
|
||||
}, 1000)
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
import helpers from '../../utils/helpers'
|
||||
import si from 'systeminformation'
|
||||
import Chartkick from 'chartkick'
|
||||
|
||||
export default {
|
||||
template: `<div>
|
||||
<h4>{{ lang('networkHistory') }} <slot></slot></h4>
|
||||
<div id="network-chart" :style="'height:' + fheight"></div>
|
||||
</div>`,
|
||||
props: ['fheight'],
|
||||
data() {
|
||||
return ({
|
||||
networkValues: [],
|
||||
networkData: [],
|
||||
seconds: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
|
||||
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
|
||||
]
|
||||
})
|
||||
},
|
||||
mounted() {
|
||||
si.networkInterfaceDefault(defaultNetwork => {
|
||||
|
||||
for (var i = 0; i < 2; i++)
|
||||
this.networkValues.push([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
])
|
||||
|
||||
let networkChart = new Chartkick.LineChart('network-chart', this.networkData, {
|
||||
colors: ['#2ecc71', '#e74c3c', '#3498db', '#f1c40f', '#9b59b6', '#34495e', '#1abc9c', '#e67e22'],
|
||||
legend: true,
|
||||
min: 0,
|
||||
points: false
|
||||
})
|
||||
|
||||
setInterval(() => {
|
||||
si.networkStats(defaultNetwork, data => {
|
||||
let downSpeed = Math.abs(data.rx_sec / 1024).toFixed(2) || 0.00
|
||||
let upSpeed = Math.abs(data.tx_sec / 1024).toFixed(2) || 0.00
|
||||
|
||||
this.networkValues.forEach((n, i) => this.networkValues[i].splice(0, 1))
|
||||
|
||||
this.networkValues[0].push(downSpeed > 0 ? downSpeed : 0)
|
||||
this.networkValues[1].push(upSpeed > 0 ? upSpeed : 0)
|
||||
|
||||
this.networkData = []
|
||||
|
||||
this.networkData.push({
|
||||
name: lang('download'),
|
||||
data: this.networkValues[0].map((d, i) => [this.seconds[i], d])
|
||||
})
|
||||
|
||||
this.networkData.push({
|
||||
name: lang('upload'),
|
||||
data: this.networkValues[1].map((d, i) => [this.seconds[i], d])
|
||||
})
|
||||
|
||||
networkChart.updateData(this.networkData)
|
||||
})
|
||||
}, 1000)
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
import 'chart.js'
|
||||
Chart.defaults.global.defaultFontColor = '#aaa'
|
||||
Chart.defaults.global.defaultFontFamily = 'Ubuntu'
|
||||
// Components
|
||||
import CpuHistory from './CpuHistory'
|
||||
import MemoryHistory from './MemoryHistory'
|
||||
import NetworkHistory from './NetworkHistory'
|
||||
|
||||
export default {
|
||||
template: `<transition name="slide-fade">
|
||||
<div class="content">
|
||||
<slot></slot>
|
||||
<div class="resources">
|
||||
<cpu-history v-show="fitChart == 0 || fitChart == 1" :fheight="fitHeight">
|
||||
<i :class="isFit ? 'icon-collapse' : 'icon-expand'" @click="fit(1)" />
|
||||
</cpu-history>
|
||||
<memory-history v-show="fitChart == 0 || fitChart == 2" :fheight="fitHeight">
|
||||
<i :class="isFit ? 'icon-collapse' : 'icon-expand'" @click="fit(2)" />
|
||||
</memory-history>
|
||||
<network-history v-show="fitChart == 0 || fitChart == 3" :fheight="fitHeight">
|
||||
<i :class="isFit ? 'icon-collapse' : 'icon-expand'" @click="fit(3)" />
|
||||
</network-history>
|
||||
</div>
|
||||
</div>
|
||||
</transition>`,
|
||||
components: {
|
||||
'cpu-history': CpuHistory,
|
||||
'memory-history': MemoryHistory,
|
||||
'network-history': NetworkHistory
|
||||
},
|
||||
data() {
|
||||
return ({
|
||||
fitChart: 0,
|
||||
fitHeight: '125px',
|
||||
isFit: false
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
fit(val) {
|
||||
if (this.fitChart == val) {
|
||||
this.fitChart = 0
|
||||
this.isFit = false
|
||||
} else {
|
||||
this.fitChart = val
|
||||
this.isFit = true
|
||||
}
|
||||
this.fitHeight = this.fitChart == 0 ? '125px' : '500px'
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
import {
|
||||
command,
|
||||
showMessage
|
||||
} from '../../utils/helpers'
|
||||
import sudo from 'sudo-prompt'
|
||||
|
||||
export default {
|
||||
template: `<li>
|
||||
{{ name }}
|
||||
<input type="checkbox" class="switch" :id="'s_' + name" :checked="isRun" @change="statusChange" />
|
||||
<label :for="'s_' + name" class="fr"></label>
|
||||
</li>`,
|
||||
props: ['name', 'is-run'],
|
||||
data() {
|
||||
return ({
|
||||
isBusy: false
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
statusChange(e) {
|
||||
let serviceName = e.target.id.substr(2)
|
||||
let isChecked = e.target.checked
|
||||
let status = isChecked ? 'start' : 'stop'
|
||||
|
||||
if (!this.isBusy) {
|
||||
this.isBusy = true
|
||||
sudo.exec(command(`systemctl ${status} ${serviceName}`), {
|
||||
name: 'Stacer'
|
||||
},
|
||||
(error, stdout, stderr) => {
|
||||
if (stderr) {
|
||||
e.target.checked = ! isChecked
|
||||
showMessage(lang('opFail'), 'error')
|
||||
logger.error('Service Status Change', stderr)
|
||||
} else {
|
||||
showMessage(serviceName + lang('service').toLowerCase() + status + (e.target.checked ? 'ed' : 'ped'), 'success')
|
||||
}
|
||||
|
||||
this.isBusy = false
|
||||
})
|
||||
} else {
|
||||
showMessage(lang('anotherProc'), 'error')
|
||||
e.target.checked = ! isChecked
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
import {
|
||||
spawnSync
|
||||
} from 'child_process'
|
||||
import {
|
||||
command,
|
||||
showMessage
|
||||
} from '../../utils/helpers'
|
||||
import si from 'systeminformation'
|
||||
// components
|
||||
import Service from './Service'
|
||||
|
||||
export default {
|
||||
template: `<transition name="slide-fade">
|
||||
<div class="content">
|
||||
<slot></slot>
|
||||
<div class="item-list services-list">
|
||||
<div class="fl w100">
|
||||
<h3 class="fl">{{ lang('serviceTitle') }} ({{ filteredServices.length }})</h3>
|
||||
<input type="text" v-model="searchString" :placeholder="lang('search') + '...'" />
|
||||
</div>
|
||||
<ul v-show="filteredServices.length" class="scroll">
|
||||
<service v-for="s in filteredServices" :name="s.name" :is-run="s.isRun" />
|
||||
</ul>
|
||||
<span class="empty-list" v-show="! filteredServices.length">
|
||||
{{ lang('noService') }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</transition>`,
|
||||
components: {
|
||||
'service': Service
|
||||
},
|
||||
data() {
|
||||
return ({
|
||||
servicesList: [],
|
||||
searchString: ''
|
||||
})
|
||||
},
|
||||
created() {
|
||||
const services = spawnSync('bash', ['-c', localStorage.getAllService])
|
||||
|
||||
let serviceNames = services.stdout.toString().trim().split('\n')
|
||||
|
||||
serviceNames.forEach(serviceName => {
|
||||
const isActive = spawnSync('systemctl', ['is-active', serviceName]).stdout.toString().trim()
|
||||
|
||||
let checked = isActive === 'active' ? 'checked' : ''
|
||||
|
||||
this.servicesList.push({
|
||||
name: serviceName,
|
||||
isRun: checked
|
||||
})
|
||||
})
|
||||
},
|
||||
computed: {
|
||||
// Search services
|
||||
filteredServices() {
|
||||
let tempServicesList = this.servicesList,
|
||||
searchString = this.searchString
|
||||
|
||||
if (!searchString) return tempServicesList
|
||||
|
||||
searchString = searchString.toString().trim().toLowerCase()
|
||||
|
||||
return tempServicesList.filter(item =>
|
||||
item.name.toString().trim().toLowerCase().indexOf(searchString) !== -1
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
import LanguageList from '../../languages/lang-list'
|
||||
import ThemeList from './theme-list'
|
||||
import { showMessage } from '../../utils/helpers'
|
||||
|
||||
export default {
|
||||
template: `<transition name="slide-fade">
|
||||
<div class="content settings">
|
||||
<slot></slot>
|
||||
<div>
|
||||
<label>{{ lang('appLanguage') }}</label>
|
||||
<select v-model="selectedLang" @change="langChange">
|
||||
<option :value="k" v-for="(v, k) in langList">{{v}}</option>
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<label>{{ lang('appTheme') }}</label>
|
||||
<select v-model="selectedTheme" @change="themeChange">
|
||||
<option :value="k" v-for="(v, k) in themeList">{{v}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</transition>`,
|
||||
data() {
|
||||
return({
|
||||
langList: LanguageList,
|
||||
selectedLang: '',
|
||||
|
||||
themeList: ThemeList,
|
||||
selectedTheme: ''
|
||||
})
|
||||
},
|
||||
created() {
|
||||
this.selectedLang = localStorage.getItem('appLanguage') || 'en'
|
||||
this.selectedTheme = localStorage.getItem('appTheme') || 'dark'
|
||||
},
|
||||
methods: {
|
||||
langChange() {
|
||||
localStorage.setItem('appLanguage', this.selectedLang)
|
||||
showMessage(lang('changedLang'), 'warning')
|
||||
},
|
||||
themeChange() {
|
||||
localStorage.setItem('appTheme', this.selectedTheme)
|
||||
document.body.classList = [this.selectedTheme]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
export default {
|
||||
"dark": "Dark",
|
||||
"light": "Light"
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
import fs from 'fs'
|
||||
import {
|
||||
showMessage
|
||||
} from '../../utils/helpers'
|
||||
|
||||
export default {
|
||||
template: `<li>
|
||||
<span>{{ name }}</span>
|
||||
<input type="checkbox" class="switch" :id="file" :checked="isStart" @change="statusChange" />
|
||||
<label :for="file" class="fr"></label>
|
||||
<button :name="file" @click="removeApp" class="remove-startup-app"></button>
|
||||
<button @click="editApp" class="edit-startup-app"></button>
|
||||
</li>`,
|
||||
props: ['name', 'file', 'is-start'],
|
||||
methods: {
|
||||
removeApp(e) {
|
||||
fs.unlinkSync(localStorage.autostartApps + e.target.name)
|
||||
},
|
||||
editApp(){
|
||||
//Emit an event to startupApps
|
||||
this.$emit('edit',this.name)
|
||||
},
|
||||
statusChange(e) {
|
||||
let fileName = e.target.id
|
||||
let isStart = e.target.checked
|
||||
|
||||
try {
|
||||
let data = fs.readFileSync(localStorage.autostartApps + '/' + fileName).toString()
|
||||
let check = data.match(/\X-GNOME-Autostart-enabled=.*/g)
|
||||
|
||||
if (check)
|
||||
data = data.replace(/\X-GNOME-Autostart-enabled=.*/gi, 'X-GNOME-Autostart-enabled=' + isStart)
|
||||
else
|
||||
data += ('X-GNOME-Autostart-enabled=' + isStart + '\n')
|
||||
|
||||
fs.writeFileSync(localStorage.autostartApps + '/' + fileName, data)
|
||||
} catch (err) {
|
||||
logger.error('StartupApps Status Change', stderr)
|
||||
showMessage(lang('opFail'), 'error')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,139 +0,0 @@
|
||||
import {
|
||||
showMessage
|
||||
} from '../../utils/helpers'
|
||||
import properties from 'properties-reader'
|
||||
import chokidar from 'chokidar'
|
||||
import fs from 'fs'
|
||||
import STApp from './STApp'
|
||||
|
||||
export default {
|
||||
template: `<transition name="slide-fade">
|
||||
<div class="content">
|
||||
<slot></slot>
|
||||
<div class="item-list startup-apps-list">
|
||||
<h3>{{ lang('startupTitle') }} ({{ apps.length }})</h3>
|
||||
<ul v-show="apps.length" class="scroll">
|
||||
<app v-for="app in apps" :name="app.name" :file="app.file" :is-start="app.isStart" @edit="editApp"></app>
|
||||
</ul>
|
||||
<span class="empty-list" v-show="! apps.length">
|
||||
{{ lang('noStartup') }}
|
||||
</span>
|
||||
</div>
|
||||
<button @click="showPrompt = true" class="add-startup-app">{{ lang('addStartup') }}</button>
|
||||
|
||||
<div class="promptDialog" v-show="showPrompt">
|
||||
<div class="dialog">
|
||||
<div>
|
||||
<span>{{ lang('app') }}</span>
|
||||
<input type="text" v-model="appName" :disabled="modeEdit" :placeholder="lang('appName')" />
|
||||
<input type="text" v-model="appComment" :placeholder="lang('appComment')" />
|
||||
<input type="text" v-model="appExec" :placeholder="lang('appCommand')" />
|
||||
<button @click="saveApp">{{ modeEdit? lang('update') : lang('add') }}</button>
|
||||
<button @click="cancelPrompt">{{ lang('cancel') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</transition>`,
|
||||
|
||||
components: {
|
||||
'app': STApp
|
||||
},
|
||||
data() {
|
||||
return ({
|
||||
apps: [],
|
||||
showPrompt: false,
|
||||
appName: '',
|
||||
appComment: '',
|
||||
appExec: '',
|
||||
modeEdit:false
|
||||
})
|
||||
},
|
||||
created() {
|
||||
this.getApps()
|
||||
|
||||
chokidar.watch(localStorage.autostartApps, {
|
||||
persistent: true,
|
||||
ignoreInitial: true
|
||||
})
|
||||
.on('add', path => this.getApps())
|
||||
.on('unlink', path => this.getApps())
|
||||
.on('change', path => this.getApps())
|
||||
},
|
||||
methods: {
|
||||
saveApp() {
|
||||
if (this.appName && this.appComment && this.appExec) {
|
||||
let desktopFile = `[Desktop Entry]
|
||||
\rName=${this.appName}
|
||||
\rExec=${this.appExec}
|
||||
\rComment=${this.appComment}
|
||||
\rType=Application
|
||||
\rTerminal=false
|
||||
\rX-GNOME-Autostart-enabled=true`
|
||||
try {
|
||||
if (!fs.existsSync(localStorage.autostartApps)) {
|
||||
fs.mkdirSync(localStorage.autostartApps)
|
||||
}
|
||||
fs.writeFileSync(localStorage.autostartApps + this.appName + '.desktop', desktopFile)
|
||||
} catch (err) {
|
||||
logger.error('StartupApps Save App', err)
|
||||
showMessage('Operation not successfully', 'error')
|
||||
} finally {
|
||||
this.cancelPrompt()
|
||||
}
|
||||
} else {
|
||||
showMessage('Do not leave required fields blank.', 'error')
|
||||
}
|
||||
},
|
||||
cancelPrompt() {
|
||||
this.showPrompt = false
|
||||
this.appName = this.appComment = this.appExec = ''
|
||||
this.modeEdit= false
|
||||
},
|
||||
getApps() {
|
||||
fs.readdir(localStorage.autostartApps, (err, files) => {
|
||||
if (!err) {
|
||||
this.apps.splice(0, this.apps.length) // array clear
|
||||
files.filter(file => file.endsWith('.desktop')).forEach(file => {
|
||||
try {
|
||||
var entry = properties(localStorage.autostartApps + '/' + file)
|
||||
if (entry.get('Desktop Entry.Name') != null) {
|
||||
let appName = entry.get('Desktop Entry.Name')
|
||||
let isStart = entry.get('Desktop Entry.X-GNOME-Autostart-enabled')
|
||||
let appComment = entry.get('Desktop Entry.Comment')
|
||||
let appExec = entry.get('Desktop Entry.Exec')
|
||||
|
||||
if (appName != null) {
|
||||
this.apps.push({
|
||||
name: appName,
|
||||
Exec:appExec,
|
||||
comment:appComment,
|
||||
file: file,
|
||||
isStart: (isStart != null ? isStart : true)
|
||||
})
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
logger.error('StartupApps Get Apps', error)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
logger.error('StartupApps Read Directory', err)
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
editApp(name){
|
||||
this.modeEdit = true
|
||||
for(let app of this.apps){
|
||||
if(app.name == name){
|
||||
this.appName = app.name
|
||||
this.appExec = app.Exec
|
||||
this.appComment = app.comment
|
||||
this.showPrompt = true
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
export default {
|
||||
template: `<li>
|
||||
<label>
|
||||
<slot></slot>
|
||||
<i></i>
|
||||
<span :title="text + '(' + length + ')'"> {{text}} ({{length}}) </span>
|
||||
</label>
|
||||
</li>`,
|
||||
props: ['length', 'text']
|
||||
}
|
||||
@@ -1,285 +0,0 @@
|
||||
import {
|
||||
spawn
|
||||
} from 'child_process'
|
||||
|
||||
import {
|
||||
command,
|
||||
showMessage,
|
||||
formatBytes
|
||||
} from '../../utils/helpers'
|
||||
import fs from 'fs'
|
||||
import sudo from 'sudo-prompt'
|
||||
// Components
|
||||
import SidebarItem from './SidebarItem'
|
||||
import TableTitle from './TableTitle'
|
||||
import TableItems from './TableItems'
|
||||
|
||||
export default {
|
||||
template: `<transition name="slide-fade">
|
||||
<div class="content">
|
||||
<slot></slot>
|
||||
<div class="cleaner-side">
|
||||
<ul>
|
||||
<sidebar-item :text="lang('packageCache')" :length="pkgCachesList.length">
|
||||
<input type="checkbox" v-model:checked="pkgCacheSelect">
|
||||
</sidebar-item>
|
||||
|
||||
<sidebar-item :text="lang('crashReports')" :length="crashReportsList.length">
|
||||
<input type="checkbox" v-model:checked="crashReportsSelect">
|
||||
</sidebar-item>
|
||||
|
||||
<sidebar-item :text="lang('systemLogs')" :length="systemLogsList.length">
|
||||
<input type="checkbox" v-model:checked="systemLogsSelect">
|
||||
</sidebar-item>
|
||||
|
||||
<sidebar-item :text="lang('appCache')" :length="appCachesList.length">
|
||||
<input type="checkbox" v-model:checked="appCacheSelect">
|
||||
</sidebar-item>
|
||||
|
||||
<sidebar-item :text="lang('trash')" :length="trashSize">
|
||||
<input type="checkbox" v-model:checked="trashSelect">
|
||||
</sidebar-item>
|
||||
</ul>
|
||||
|
||||
<input type="button" id="system-scan-btn" @click="systemScan" :value="lang('systemScan')" />
|
||||
</div>
|
||||
|
||||
<div class="item-table scroll">
|
||||
<ul>
|
||||
<table-title :text="lang('packageCache')" :length="pkgCachesList.length">
|
||||
<input type="checkbox" @change="checkAllPkgCaches">
|
||||
</table-title>
|
||||
|
||||
<table-items v-for="item in pkgCachesList" :text="item">
|
||||
<input type="checkbox" :value="item" v-model="checkedPkgCaches">
|
||||
</table-items>
|
||||
|
||||
|
||||
<table-title :text="lang('crashReports')" :length="crashReportsList.length">
|
||||
<input type="checkbox" @change="checkAllCrashReports">
|
||||
</table-title>
|
||||
|
||||
<table-items v-for="item in crashReportsList" :text="item">
|
||||
<input type="checkbox" :value="item" v-model="checkedCrashReports">
|
||||
</table-items>
|
||||
|
||||
|
||||
<table-title :text="lang('systemLogs')" :length="systemLogsList.length">
|
||||
<input type="checkbox" @change="checkAllSystemLogs">
|
||||
</table-title>
|
||||
|
||||
<table-items v-for="item in systemLogsList" :text="item">
|
||||
<input type="checkbox" :value="item" v-model="checkedSystemLogs">
|
||||
</table-items>
|
||||
|
||||
|
||||
<table-title :text="lang('appCache')" :length="appCachesList.length">
|
||||
<input type="checkbox" @change="checkAllAppCaches">
|
||||
</table-title>
|
||||
|
||||
<table-items v-for="item in appCachesList" :text="item">
|
||||
<input type="checkbox" :value="item" v-model="checkedAppCaches">
|
||||
</table-items>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<input type="button" id="clean-btn" @click="systemClean" :value="lang('clean')" />
|
||||
</div>
|
||||
</div>
|
||||
</transition>`,
|
||||
components: {
|
||||
'sidebar-item': SidebarItem,
|
||||
'table-title': TableTitle,
|
||||
'table-items': TableItems
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
pkgCacheSelect: false,
|
||||
crashReportsSelect: false,
|
||||
systemLogsSelect: false,
|
||||
appCacheSelect: false,
|
||||
trashSelect: false,
|
||||
|
||||
pkgCachesList: [],
|
||||
crashReportsList: [],
|
||||
systemLogsList: [],
|
||||
appCachesList: [],
|
||||
|
||||
checkedPkgCaches: [],
|
||||
checkedCrashReports: [],
|
||||
checkedSystemLogs: [],
|
||||
checkedAppCaches: [],
|
||||
|
||||
trashSize: '0 Bytes'
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
systemScan() {
|
||||
// Lists cleaning
|
||||
this.pkgCachesList = []
|
||||
this.crashReportsList = []
|
||||
this.systemLogsList = []
|
||||
this.appCachesList = []
|
||||
this.trashSize = '0 Bytes'
|
||||
|
||||
if (this.pkgCacheSelect) {
|
||||
fs.readdir(localStorage.pkgCachePath, 'utf8', (err, files) => {
|
||||
if (!err)
|
||||
files.filter(file => file)
|
||||
.forEach(file => {
|
||||
let stat = fs.statSync(localStorage.pkgCachePath + file)
|
||||
if (stat.isFile())
|
||||
this.pkgCachesList.push(file)
|
||||
})
|
||||
else
|
||||
logger.error('System Cleaner Get Package Caches', err)
|
||||
})
|
||||
} else {
|
||||
this.checkedPkgCaches = []
|
||||
}
|
||||
|
||||
if (this.crashReportsSelect) {
|
||||
fs.readdir(localStorage.crashReportsPath, 'utf8', (err, files) => {
|
||||
if (!err)
|
||||
files.forEach(file => this.crashReportsList.push(file))
|
||||
else
|
||||
logger.error('System Cleaner Get Crash Reports', err)
|
||||
})
|
||||
} else {
|
||||
this.checkedCrashReports = []
|
||||
}
|
||||
|
||||
if (this.systemLogsSelect) {
|
||||
fs.readdir(localStorage.systemLogsPath, 'utf8', (err, files) => {
|
||||
if (!err)
|
||||
files.forEach(file => this.systemLogsList.push(file))
|
||||
else
|
||||
logger.error('System Cleaner Get System Logs', err)
|
||||
})
|
||||
} else {
|
||||
this.checkedSystemLogs = []
|
||||
}
|
||||
|
||||
if (this.appCacheSelect) {
|
||||
fs.readdir(localStorage.appCachePath, 'utf8', (err, files) => {
|
||||
if (!err)
|
||||
files.forEach(file => this.appCachesList.push(file))
|
||||
else
|
||||
logger.error('System Cleaner Get App Caches', err)
|
||||
})
|
||||
} else {
|
||||
this.checkedAppCaches = []
|
||||
}
|
||||
|
||||
if (this.trashSelect) {
|
||||
function getSize(path = '') {
|
||||
path += '/'
|
||||
let totalSize = 0
|
||||
try {
|
||||
let trashFiles = fs.readdirSync(localStorage.trashPath + path)
|
||||
trashFiles.forEach(fileName => {
|
||||
|
||||
let stats = fs.statSync(localStorage.trashPath + path + fileName)
|
||||
if (!stats.isDirectory())
|
||||
totalSize += stats.size
|
||||
else
|
||||
totalSize += getSize(path + fileName)
|
||||
})
|
||||
} catch (err) {
|
||||
logger.error('System Cleaner Get Trash Size', err)
|
||||
}
|
||||
return totalSize
|
||||
}
|
||||
|
||||
if (fs.existsSync(localStorage.trashPath))
|
||||
this.trashSize = formatBytes(getSize(), 0)
|
||||
}
|
||||
},
|
||||
// System clean
|
||||
systemClean() {
|
||||
let filesToRemove = ''
|
||||
|
||||
if (this.checkedPkgCaches) {
|
||||
this.checkedPkgCaches.forEach(file => {
|
||||
filesToRemove += `rm -rf ${localStorage.pkgCachePath}${file}; `
|
||||
})
|
||||
}
|
||||
|
||||
if (this.checkedCrashReports) {
|
||||
this.checkedCrashReports.forEach(file => {
|
||||
filesToRemove += `rm -rf ${localStorage.crashReportsPath}${file}; `
|
||||
})
|
||||
}
|
||||
|
||||
if (this.checkedSystemLogs) {
|
||||
this.checkedSystemLogs.forEach(file => {
|
||||
filesToRemove += `rm -rf ${localStorage.systemLogsPath}${file}; `
|
||||
})
|
||||
}
|
||||
|
||||
if (this.checkedAppCaches) {
|
||||
this.checkedAppCaches.forEach(file => {
|
||||
filesToRemove += `rm -rf ${localStorage.appCachePath}${file}; `
|
||||
})
|
||||
}
|
||||
|
||||
if (this.trashSelect) {
|
||||
filesToRemove += `rm -rf ${localStorage.trashPath};`
|
||||
filesToRemove += `rm -rf ${localStorage.trashInfoPath};`
|
||||
}
|
||||
|
||||
if (filesToRemove) {
|
||||
sudo.exec(command(filesToRemove), {
|
||||
name: 'Stacer'
|
||||
},
|
||||
(error, stdout, stderr) => {
|
||||
if (stderr) {
|
||||
showMessage(lang('sysCleanFail'), 'error')
|
||||
logger.error('System Cleaner Files Remove', err)
|
||||
}
|
||||
else {
|
||||
this.pkgCachesList = this.pkgCachesList.filter(item => this.checkedPkgCaches.indexOf(item) == -1)
|
||||
this.crashReportsList = this.crashReportsList.filter(item => this.checkedCrashReports.indexOf(item) == -1)
|
||||
this.systemLogsList = this.systemLogsList.filter(item => this.checkedSystemLogs.indexOf(item) == -1)
|
||||
this.appCachesList = this.appCachesList.filter(item => this.checkedAppCaches.indexOf(item) == -1)
|
||||
|
||||
this.checkedPkgCaches = []
|
||||
this.checkedCrashReports = []
|
||||
this.checkedSystemLogs = []
|
||||
this.checkedAppCaches = []
|
||||
this.trashSize = '0 Bytes'
|
||||
|
||||
showMessage(lang('sysCleanSuc'), 'success')
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
// Check all items
|
||||
checkAllPkgCaches(e) {
|
||||
this.checkedPkgCaches = []
|
||||
if (e.target.checked)
|
||||
this.checkedPkgCaches.push(...this.pkgCachesList)
|
||||
},
|
||||
checkAllCrashReports(e) {
|
||||
this.checkedCrashReports = []
|
||||
if (e.target.checked)
|
||||
this.checkedCrashReports.push(...this.crashReportsList)
|
||||
},
|
||||
checkAllSystemLogs(e) {
|
||||
this.checkedSystemLogs = []
|
||||
if (e.target.checked)
|
||||
this.checkedSystemLogs.push(...this.systemLogsList)
|
||||
},
|
||||
checkAllAppCaches(e) {
|
||||
this.checkedAppCaches = []
|
||||
if (e.target.checked)
|
||||
this.checkedAppCaches.push(...this.appCachesList)
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
appCacheSelect: checked => {
|
||||
if (checked)
|
||||
showMessage(lang('appCacheWarning'), 'warning')
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
export default {
|
||||
template: `<li>
|
||||
<label>
|
||||
<slot></slot>
|
||||
<i></i>
|
||||
<span> {{ text }} </span>
|
||||
</label>
|
||||
</li>`,
|
||||
props: ['text']
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
export default {
|
||||
template: `<h3 v-show="length">
|
||||
<label>
|
||||
<slot></slot>
|
||||
<i></i>
|
||||
<span>{{ lang('selectAll') }} ({{text}})</span>
|
||||
</label>
|
||||
</h3>`,
|
||||
props: ['length', 'text']
|
||||
}
|
||||
@@ -1,104 +0,0 @@
|
||||
import {
|
||||
spawnSync
|
||||
} from 'child_process'
|
||||
import sudo from 'sudo-prompt'
|
||||
|
||||
import {
|
||||
command,
|
||||
showMessage
|
||||
} from '../../utils/helpers'
|
||||
|
||||
export default {
|
||||
template: `<transition name="slide-fade">
|
||||
<div class="content">
|
||||
<slot></slot>
|
||||
<div class="item-list uninstaller-list">
|
||||
<div class="fl w100">
|
||||
<h3 class="fl">{{ lang('uninstallerTitle') }} ({{ filteredPackages.length }})</h3>
|
||||
<div class="spin-loader fl" v-show="isBusy">
|
||||
<div class="dot1"></div>
|
||||
<div class="dot2"></div>
|
||||
<div class="dot3"></div>
|
||||
<div class="dot4"></div>
|
||||
</div>
|
||||
<input type="text" v-model="searchString" :placeholder="lang('search') + '...'" />
|
||||
</div>
|
||||
<ul v-show="filteredPackages.length" class="scroll">
|
||||
<li v-for="package in filteredPackages">
|
||||
<input type ="checkbox" :value="package" :id="'p_' + package" v-model="selectedPackages"/>
|
||||
<label :for="'p_' + package"></label>
|
||||
{{ package }}
|
||||
</li>
|
||||
</ul>
|
||||
<span class="empty-list" v-show="! filteredPackages.length">
|
||||
{{ lang('noPackage') }}
|
||||
</span>
|
||||
<button :disabled="selectedPackages.length > 0 ? false : true" id="uninstall-selected" @click="uninstallSelected">
|
||||
{{ lang('uninstallSelecteds') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</transition>`,
|
||||
data() {
|
||||
return ({
|
||||
packagesList: [],
|
||||
selectedPackages: [],
|
||||
searchString: '',
|
||||
isBusy: false
|
||||
})
|
||||
},
|
||||
created() {
|
||||
const packages = spawnSync('bash', ['-c', localStorage.getInstalledPackages])
|
||||
|
||||
if (packages.stderr)
|
||||
logger.error('Uninstaller Get Packages', packages.stderr.toString())
|
||||
|
||||
let data = packages.stdout.toString().split('\n').filter(s => s != '')
|
||||
this.packagesList.push(...data)
|
||||
},
|
||||
methods: {
|
||||
uninstallSelected() {
|
||||
if (this.selectedPackages) {
|
||||
if (!this.isBusy) {
|
||||
this.isBusy = true
|
||||
|
||||
let sPackages = this.selectedPackages.join(' ')
|
||||
|
||||
sudo.exec(command(localStorage.removePackage + sPackages), {
|
||||
name: 'Stacer'
|
||||
},
|
||||
(error, stdout, stderr) => {
|
||||
if (stderr) {
|
||||
logger.error('Uninstaller Uninstall Selected', stderr)
|
||||
showMessage(lang('uninstallFail'), 'error')
|
||||
} else {
|
||||
this.packagesList = this.packagesList
|
||||
.filter(p => this.selectedPackages.indexOf(p) === -1)
|
||||
|
||||
showMessage(sPackages.split(' ').join('<br/>').concat('<br/>') + lang('packageUninstalled'), 'success')
|
||||
this.searchString = ''
|
||||
}
|
||||
this.isBusy = false
|
||||
this.selectedPackages = []
|
||||
})
|
||||
} else {
|
||||
showMessage(lang('anotherProc'), 'error')
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
filteredPackages() {
|
||||
let tempPackagesList = this.packagesList,
|
||||
searchString = this.searchString
|
||||
|
||||
if (!searchString) return tempPackagesList
|
||||
|
||||
searchString = searchString.toString().trim().toLowerCase()
|
||||
|
||||
return tempPackagesList.filter(item =>
|
||||
item.trim().toLowerCase().indexOf(searchString) !== -1
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
36
src/index.js
@@ -1,36 +0,0 @@
|
||||
import App from './components/App'
|
||||
import Language from './languages/Language'
|
||||
import config from './utils/config'
|
||||
import winston from 'winston'
|
||||
|
||||
const userData = require('electron').remote.app.getPath('userData')
|
||||
|
||||
window.vm = new Vue({
|
||||
el: 'app',
|
||||
components: {
|
||||
'app': App
|
||||
},
|
||||
beforeCreate() {
|
||||
// Set configs
|
||||
config()
|
||||
// Check Language
|
||||
let appLanguage = localStorage.appLanguage || 'en'
|
||||
let language = new Language(appLanguage)
|
||||
window.lang = (key) => language.get(key)
|
||||
// Check Theme
|
||||
let appTheme = localStorage.appTheme || 'dark'
|
||||
document.body.classList = [appTheme]
|
||||
|
||||
// Logger settings
|
||||
window.logger = new(winston.Logger)({
|
||||
transports: [
|
||||
new(winston.transports.File)({
|
||||
filename: userData + '/stacer.log'
|
||||
})
|
||||
]
|
||||
})
|
||||
},
|
||||
mounted() {
|
||||
setTimeout(() => document.getElementById('loading').remove(), 2500)
|
||||
}
|
||||
})
|
||||
@@ -1,15 +0,0 @@
|
||||
import langList from './lang-list'
|
||||
export default class Language {
|
||||
|
||||
constructor(lang) {
|
||||
if (Object.keys(langList).indexOf(lang) !== -1) {
|
||||
this.lang = require(`./langs/lang.${lang}`)
|
||||
} else {
|
||||
this.lang = require('./langs/lang.en')
|
||||
}
|
||||
}
|
||||
|
||||
get(key) {
|
||||
return this.lang.default[key]
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
export default {
|
||||
"ar": "العربية",
|
||||
"ca-es": "Catalan",
|
||||
"cs": "Czech",
|
||||
"de": "Deutsch (German)",
|
||||
"en": "English",
|
||||
"es": "Spanish",
|
||||
"fa": "Persian",
|
||||
"fr": "French",
|
||||
"hu": "Hungarian",
|
||||
"it": "Italiano",
|
||||
"kan": "Kannada",
|
||||
"oc": "Occitan",
|
||||
"pl": "Polish",
|
||||
"pt": "Portuguese",
|
||||
"ru": "Russian",
|
||||
"sv": "Swedish",
|
||||
"tr": "Turkish",
|
||||
"uk": "Ukrainian",
|
||||
"zh-cn": "Chinese Simplified",
|
||||
"zh-tw": "Traditional Chinese",
|
||||
}
|
||||
@@ -1,81 +0,0 @@
|
||||
/**
|
||||
Adrian Feld <adrian@feldorado.de>
|
||||
*/
|
||||
export default {
|
||||
// Top Menu
|
||||
dashboard: "Dashboard",
|
||||
sysCleaner: "System Cleaner",
|
||||
startupApps: "Startup Apps",
|
||||
services: "Dienste",
|
||||
process: "Prozesse",
|
||||
uninstaller: "Uninstaller",
|
||||
resources: "Ressourcen",
|
||||
// Dashboard Page
|
||||
cpu: "CPU",
|
||||
memory: "SPEICHER",
|
||||
disk: "DISK",
|
||||
download: "DOWNLOAD",
|
||||
upload: "UPLOAD",
|
||||
systemInfo: "SYSTEM INFO",
|
||||
hostname: "Hostname",
|
||||
platform: "Platform",
|
||||
distribution: "Distribution",
|
||||
kernelRel: "Kernel Release",
|
||||
cpuModel: "CPU Model",
|
||||
cpuSpeed: "CPU Speed",
|
||||
cpuCores: "CPU Cores",
|
||||
// System Cleaner Page
|
||||
packageCache: "Package Cache",
|
||||
crashReports: "Crash Reports",
|
||||
systemLogs: "System Logs",
|
||||
appCache: "App Cache",
|
||||
trash: "Trash",
|
||||
systemScan: "System Scan",
|
||||
clean: "Säubern",
|
||||
selectAll: "Alles auswählen",
|
||||
// Startup Apps Page
|
||||
startupTitle: "System Startup Applikationen",
|
||||
addStartup: "Hinzufügen Autostart",
|
||||
noStartup: "Keine Autostart Programme gefunden.",
|
||||
app: "Applikation",
|
||||
appName: "App Name",
|
||||
appComment: "App Kommentar",
|
||||
appCommand: "Befehl",
|
||||
add: "Hinzufügen",
|
||||
cancel: "Abbruch",
|
||||
// Services Page
|
||||
serviceTitle: "System Services",
|
||||
noService: "Kein Service gefunden",
|
||||
// Process Page
|
||||
endProcess: "End Process",
|
||||
refresh: "aktualisieren",
|
||||
// Uninstaller Page
|
||||
uninstallerTitle: "System Installed Packages",
|
||||
noPackage: "Kein Paket gefunden.",
|
||||
uninstallSelecteds: "Uninstall Gewählte",
|
||||
// Resources Page
|
||||
cpuHistory: "CPU Verlauf",
|
||||
memHistory: "Speicher Verlauf",
|
||||
networkHistory: "Netzwerk Verlauf",
|
||||
swap: "Swap",
|
||||
// Settings
|
||||
settings: "Einstellungen",
|
||||
appSettings: "Programm Einstellungen",
|
||||
appLanguage: "App Sprache",
|
||||
appTheme: "App Theme",
|
||||
// Global
|
||||
search: "Suche",
|
||||
downloadUpdate: "Download Update",
|
||||
updateMsg: "Es sind aktuelle Updates verfügbar.",
|
||||
// Messages
|
||||
opFail: "Operation failed.",
|
||||
sysCleanFail: "System reingung fehlgeschlagen.",
|
||||
sysCleanSuc: "System gereinigt.",
|
||||
appCacheWarning: "Lösche Applikationen \' caches can cause problems. Please be careful.",
|
||||
uninstallFail: "Deinstallation fehlgeschlagen.",
|
||||
packageUninstalled: " Pakete deinstalliert.",
|
||||
anotherProc: "Ein weiterer Prozess läuft.",
|
||||
changedLang: "Restart the program for the changes to take effect.",
|
||||
permitted: 'Operation unzulässig.',
|
||||
update: 'Update'
|
||||
}
|
||||
@@ -1,81 +0,0 @@
|
||||
/**
|
||||
AUTHOR <email@address>
|
||||
*/
|
||||
export default {
|
||||
// Top Menu
|
||||
dashboard: "لوحة التحكم",
|
||||
sysCleaner: "مُنظّف النظام",
|
||||
startupApps: "تطبيقات بدء التشغيل",
|
||||
services: "الخدمات",
|
||||
process: "العمليات",
|
||||
uninstaller: "لاغِي التثبيت",
|
||||
resources: "الموارد",
|
||||
// Dashboard Page
|
||||
cpu: "المعالج",
|
||||
memory: "الذاكرة المؤقتة",
|
||||
disk: "القرص الصلب",
|
||||
download: "تحميل",
|
||||
upload: "رفع",
|
||||
systemInfo: "معلومات النظام",
|
||||
hostname: "أسم المضيف",
|
||||
platform: "المنصة",
|
||||
distribution: "التوزيعة",
|
||||
kernelRel: "إصدار النواة",
|
||||
cpuModel: "نوع المعالج",
|
||||
cpuSpeed: "سرعة المعالج",
|
||||
cpuCores: "أنوية المعالج",
|
||||
// System Cleaner Page
|
||||
packageCache: "ذاكرة التخزين المؤقتة للحزم",
|
||||
crashReports: "تقارير الأعطال",
|
||||
systemLogs: "سجلات النظام",
|
||||
appCache: "ذاكرة التخزين المؤقتة للتطبيقات",
|
||||
trash: "النفاية",
|
||||
systemScan: "فحص النظام",
|
||||
clean: "تنظيف",
|
||||
selectAll: "تحديد الكل",
|
||||
// Startup Apps Page
|
||||
startupTitle: "تطبيقات بدء التشغيل للنظام",
|
||||
addStartup: "إضافة برنامج لقائمة بدء التشغيل",
|
||||
noStartup: "لم يتم العثور على أية تطبيقات بدء تشغيل.",
|
||||
app: "التطبيق",
|
||||
appName: "اسم التطبيق",
|
||||
appComment: "تعليق حول التطبيق",
|
||||
appCommand: "الأمر",
|
||||
add: "إضافة",
|
||||
cancel: "إلغاء",
|
||||
// Services Page
|
||||
serviceTitle: "خدمات النظام",
|
||||
noService: "لم يتم العثور على أية خدمة.",
|
||||
// Process Page
|
||||
endProcess: "إنهاء العملية",
|
||||
refresh: "تحديث",
|
||||
// Uninstaller Page
|
||||
uninstallerTitle: "حزم النظام المثبتة",
|
||||
noPackage: "لم يتم العثور على أية حزم.",
|
||||
uninstallSelecteds: "الغاء تثبيت المحدد.",
|
||||
// Resources Page
|
||||
cpuHistory: "سجل المعالج",
|
||||
memHistory: "سجل الذاكرة المؤقتة",
|
||||
networkHistory: "سجل الشبكة",
|
||||
swap: "المُبدل",
|
||||
// Settings
|
||||
settings: "الإعدادات",
|
||||
appSettings: "إعدادات التطبيق",
|
||||
appLanguage: "لغة التطبيق",
|
||||
appTheme: "نسق التطبيق",
|
||||
// Global
|
||||
search: "البحث",
|
||||
downloadUpdate: "تحميل التحديث",
|
||||
updateMsg: "هناك تحديثات متوفرة حاليًا.",
|
||||
// Messages
|
||||
opFail: "فشلت العملية.",
|
||||
sysCleanFail: "فشل تنظيف النظام.",
|
||||
sysCleanSuc: "تم تنظيف النظام بنجاح.",
|
||||
appCacheWarning: "حذف الملفات المخبئة\' للتطبيقات قد يسبب مشكلة. كُن حذرًا.",
|
||||
uninstallFail: "فشل إلغاء التثبيت.",
|
||||
packageUninstalled: " حزم حُذفت.",
|
||||
anotherProc: "عملية اخرى مستمرة.",
|
||||
changedLang: "أعد تشغيل البرنامج حتى تصبح التغييرات نافذة المفعول.",
|
||||
permitted: 'عملية غير مسموحة.',
|
||||
update: 'تحديث'
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
/**
|
||||
AUTHOR <email@address>
|
||||
*/
|
||||
export default {
|
||||
// Top Menu
|
||||
dashboard: "Panell de control",
|
||||
sysCleaner: "Netejador del sistema",
|
||||
startupApps: "Aplicacions d'inici",
|
||||
services: "Serveis",
|
||||
process: "Processos",
|
||||
uninstaller: "Desinstalador",
|
||||
resources: "Recursos",
|
||||
// Dashboard Page
|
||||
cpu: "CPU",
|
||||
memory: "MEMÒRIA",
|
||||
disk: "DISC",
|
||||
download: "BAIXADA",
|
||||
upload: "PUJADA",
|
||||
systemInfo: "INFORMACIÓ DEL SISTEMA",
|
||||
hostname: "Nom de l'amfitrió",
|
||||
platform: "Platforma",
|
||||
distribution: "Distributió",
|
||||
kernelRel: "Versió del nucli",
|
||||
cpuModel: "Model de CPU",
|
||||
cpuSpeed: "Velocitat de la CPU",
|
||||
cpuCores: "Nuclis de la CPU",
|
||||
// System Cleaner Page
|
||||
packageCache: "Paquet de memòria cau",
|
||||
crashReports: "Informes de fallida",
|
||||
systemLogs: "Registres del sistema",
|
||||
appCache: "Memòria cau d'aplicacions",
|
||||
trash: "Paperera",
|
||||
systemScan: "Escaneig del sistema",
|
||||
clean: "Neteja",
|
||||
selectAll: "Selecciona-ho tot",
|
||||
// Startup Apps Page
|
||||
startupTitle: "Aplicacions d'inici del sistema",
|
||||
addStartup: "Afegeix una aplicació d'inici",
|
||||
noStartup: "No s'ha trobat cap aplicació d'inici.",
|
||||
app: "Aplicació",
|
||||
appName: "Nom de l'aplicació",
|
||||
appComment: "Comentari de l'aplicació",
|
||||
appCommand: "Ordre",
|
||||
add: "Afegeix",
|
||||
cancel: "Cancel·la",
|
||||
// Services Page
|
||||
serviceTitle: "Serveis del sistema",
|
||||
noService: "No s'ha trobat cap servei",
|
||||
// Process Page
|
||||
endProcess: "Finalitza el procés",
|
||||
refresh: "Actualitza",
|
||||
// Uninstaller Page
|
||||
uninstallerTitle: "Paquets instal·lats del sistema",
|
||||
noPackage: "No s'ha trobat cap paquet.",
|
||||
uninstallSelecteds: "Desinstal·la els seleccionats",
|
||||
// Resources Page
|
||||
cpuHistory: "Històric de la CPU",
|
||||
memHistory: "Històric de la memòria",
|
||||
networkHistory: "Històric de la xarxa",
|
||||
swap: "Memòria d'intercanvi",
|
||||
// Settings
|
||||
settings: "Configuració",
|
||||
appSettings: "Configuració de l'aplicació",
|
||||
appLanguage: "Idioma de l'aplicació",
|
||||
appTheme: "Tema de l'aplicació",
|
||||
// Global
|
||||
search: "Cerca",
|
||||
downloadUpdate: "Baixa l'actualització",
|
||||
updateMsg: "Hi ha actualitzacions disponibles.",
|
||||
// Messages
|
||||
opFail: "Operació fallida.",
|
||||
sysCleanFail: "La neteja del sistema ha fallat.",
|
||||
sysCleanSuc: "S'ha netejat el sistema.",
|
||||
appCacheWarning: "L'eliminació de la memòria cau de les aplicacions pot causar problemes. Aneu amb compte.",
|
||||
uninstallFail: "Desinstal·lació fallida.",
|
||||
packageUninstalled: " paquets desinstal·lats.",
|
||||
anotherProc: "Un altre procés continua.",
|
||||
changedLang: "Reinicieu el programa perquè els canvis tinguin efecte.",
|
||||
permitted: 'Operació no permesa.',
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
/**
|
||||
AUTHOR <pavel@tizek.cz>
|
||||
*/
|
||||
export default {
|
||||
// Top Menu
|
||||
dashboard: "Přehled",
|
||||
sysCleaner: "Systémový čistič",
|
||||
startupApps: "Po spuštění",
|
||||
services: "Služby",
|
||||
process: "Procesy",
|
||||
uninstaller: "Odinstalovat",
|
||||
resources: "Zdroje",
|
||||
// Dashboard Page
|
||||
cpu: "CPU",
|
||||
memory: "PAMĚŤ",
|
||||
disk: "DISK",
|
||||
download: "STAHOVÁNÍ",
|
||||
upload: "NAHRÁVÁNÍ",
|
||||
systemInfo: "SYSTÉMOVÉ INFORMACE",
|
||||
hostname: "Zařízení",
|
||||
platform: "Platforma",
|
||||
distribution: "Distribuce",
|
||||
kernelRel: "Verze kernelu",
|
||||
cpuModel: "Procesor",
|
||||
cpuSpeed: "Frekvence CPU",
|
||||
cpuCores: "CPU jádra",
|
||||
// System Cleaner Page
|
||||
packageCache: "Cache balíků",
|
||||
crashReports: "Záznamy pádů",
|
||||
systemLogs: "Systémový log",
|
||||
appCache: "Cache aplikací",
|
||||
trash: "Koš",
|
||||
systemScan: "Skenovat",
|
||||
clean: "Vyčistit",
|
||||
selectAll: "Vybrat vše",
|
||||
// Startup Apps Page
|
||||
startupTitle: "Aplikace po spuštění",
|
||||
addStartup: "Přidat aplikaci",
|
||||
noStartup: "Žádná aplikace po spuštění.",
|
||||
app: "Aplikace",
|
||||
appName: "Název aplikace",
|
||||
appComment: "Komentář",
|
||||
appCommand: "Příkaz",
|
||||
add: "Přidat",
|
||||
cancel: "Zrušit",
|
||||
// Services Page
|
||||
serviceTitle: "Systémové služby",
|
||||
noService: "Žádná služba nenalezena",
|
||||
// Process Page
|
||||
endProcess: "Ukončit proces",
|
||||
refresh: "Obnovit",
|
||||
// Uninstaller Page
|
||||
uninstallerTitle: "Systémové aplikace",
|
||||
noPackage: "Žádná aplikace nenalezena.",
|
||||
uninstallSelecteds: "Odinstalovat vybrané",
|
||||
// Resources Page
|
||||
cpuHistory: "Historie procesoru",
|
||||
memHistory: "Historie paměti",
|
||||
networkHistory: "Historie sítě",
|
||||
swap: "Swap",
|
||||
// Settings
|
||||
settings: "Nastavení",
|
||||
appSettings: "Nastavení aplikace",
|
||||
appLanguage: "Jazyk aplikace",
|
||||
appTheme: "Téma aplikace",
|
||||
// Global
|
||||
search: "Hledat",
|
||||
downloadUpdate: "Stáhnout aktualizaci",
|
||||
updateMsg: "Máte nejnovější verzi.",
|
||||
// Messages
|
||||
opFail: "Operace selhala.",
|
||||
sysCleanFail: "Čištění systému selhalo.",
|
||||
sysCleanSuc: "Systém vyčištěn.",
|
||||
appCacheWarning: "Mazáný cache aplikací může způsobit problémy. Buďte opatrní.",
|
||||
uninstallFail: "Odinstalace selhala.",
|
||||
packageUninstalled: " balíků odinstalováno.",
|
||||
anotherProc: "Právě běží jiný proces.",
|
||||
changedLang: "Restartujte aplikaci pro načtení změn.",
|
||||
permitted: 'Operace zamítnuta.',
|
||||
}
|
||||
@@ -1,81 +0,0 @@
|
||||
/**
|
||||
AUTHOR <email@address>
|
||||
*/
|
||||
export default {
|
||||
// Top Menu
|
||||
dashboard: "Dashboard",
|
||||
sysCleaner: "System Cleaner",
|
||||
startupApps: "Startup Apps",
|
||||
services: "Services",
|
||||
process: "Processes",
|
||||
uninstaller: "Uninstaller",
|
||||
resources: "Resources",
|
||||
// Dashboard Page
|
||||
cpu: "CPU",
|
||||
memory: "MEMORY",
|
||||
disk: "DISK",
|
||||
download: "DOWNLOAD",
|
||||
upload: "UPLOAD",
|
||||
systemInfo: "SYSTEM INFO",
|
||||
hostname: "Hostname",
|
||||
platform: "Platform",
|
||||
distribution: "Distribution",
|
||||
kernelRel: "Kernel Release",
|
||||
cpuModel: "CPU Model",
|
||||
cpuSpeed: "CPU Speed",
|
||||
cpuCores: "CPU Cores",
|
||||
// System Cleaner Page
|
||||
packageCache: "Package Cache",
|
||||
crashReports: "Crash Reports",
|
||||
systemLogs: "System Logs",
|
||||
appCache: "App Cache",
|
||||
trash: "Trash",
|
||||
systemScan: "System Scan",
|
||||
clean: "Clean",
|
||||
selectAll: "Select All",
|
||||
// Startup Apps Page
|
||||
startupTitle: "System Startup Applications",
|
||||
addStartup: "Add Startup App",
|
||||
noStartup: "No startup apps found.",
|
||||
app: "Application",
|
||||
appName: "App Name",
|
||||
appComment: "App Comment",
|
||||
appCommand: "Command",
|
||||
add: "Add",
|
||||
cancel: "Cancel",
|
||||
// Services Page
|
||||
serviceTitle: "System Services",
|
||||
noService: "No Service Found",
|
||||
// Process Page
|
||||
endProcess: "End Process",
|
||||
refresh: "Refresh",
|
||||
// Uninstaller Page
|
||||
uninstallerTitle: "System Installed Packages",
|
||||
noPackage: "No package found.",
|
||||
uninstallSelecteds: "Uninstall Selecteds",
|
||||
// Resources Page
|
||||
cpuHistory: "CPU History",
|
||||
memHistory: "Memory History",
|
||||
networkHistory: "Network History",
|
||||
swap: "Swap",
|
||||
// Settings
|
||||
settings: "Settings",
|
||||
appSettings: "Application Settings",
|
||||
appLanguage: "App Language",
|
||||
appTheme: "App Theme",
|
||||
// Global
|
||||
search: "Search",
|
||||
downloadUpdate: "Download Update",
|
||||
updateMsg: "There are updates currently available.",
|
||||
// Messages
|
||||
opFail: "Operation failed.",
|
||||
sysCleanFail: "System cleaning failed.",
|
||||
sysCleanSuc: "System cleaned.",
|
||||
appCacheWarning: "Deleting applications\' caches can cause problems. Please be careful.",
|
||||
uninstallFail: "Uninstall failed.",
|
||||
packageUninstalled: " packages uninstalled.",
|
||||
anotherProc: "Another process continues.",
|
||||
changedLang: "Restart the program for the changes to take effect.",
|
||||
permitted: 'Operation not permitted.',
|
||||
update: 'Update'
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
/**
|
||||
AUTHOR <email@address>
|
||||
*/
|
||||
export default {
|
||||
// Top Menu
|
||||
dashboard: "Panel de instrumentos",
|
||||
sysCleaner: "Limpiador del Sistema",
|
||||
startupApps: "Aplicaciones de inicio",
|
||||
services: "Servicios",
|
||||
process: "Proceso",
|
||||
uninstaller: "Desinstalador",
|
||||
resources: "Recursos",
|
||||
// Dashboard Page
|
||||
cpu: "CPU",
|
||||
memory: "MEMORIA",
|
||||
disk: "DISCO",
|
||||
download: "DESCARGAR",
|
||||
upload: "ENVÍOS",
|
||||
systemInfo: "INFORMACIÓN DEL SISTEMA",
|
||||
hostname: "Nombre de host",
|
||||
platform: "Plataforma",
|
||||
distribution: "Distribución",
|
||||
kernelRel: "Versión del kernel",
|
||||
cpuModel: "Modelo de CPU",
|
||||
cpuSpeed: "Cpu Speed",
|
||||
cpuCores: "Cpu Cores",
|
||||
// System Cleaner Page
|
||||
packageCache: "Cache Package",
|
||||
crashReports: "Informes de fallos",
|
||||
systemLogs: "Sistema Logs",
|
||||
appCache: "App Cache",
|
||||
trash: "Basura",
|
||||
systemScan: "Análisis del Sistemas",
|
||||
clean: "Limpiar",
|
||||
selectAll: "Seleccionar Todo",
|
||||
// Startup Apps Page
|
||||
startupTitle: "Aplicaciones en el inicio del sistema",
|
||||
addStartup: "Añadir una aplicación de inicio",
|
||||
noStartup: "No se encontra aplicaciones de inicio.",
|
||||
app: "Aplicación",
|
||||
appName: "Nombre de l'App",
|
||||
appComment: "Comentario de l'App",
|
||||
appCommand: "Commando",
|
||||
add: "Añadir",
|
||||
cancel: "Anular",
|
||||
// Services Page
|
||||
serviceTitle: "Servicios del Sistema",
|
||||
noService: "No se encuentra servicio",
|
||||
// Process Page
|
||||
endProcess: "Proceso Final",
|
||||
refresh: "Refresco",
|
||||
// Uninstaller Page
|
||||
uninstallerTitle: "Paquetes instalado en el sistema",
|
||||
noPackage: "No se encontró paquetes.",
|
||||
uninstallSelecteds: "Desinstalación Seleccionada",
|
||||
// Resources Page
|
||||
cpuHistory: "Actividades Cpu",
|
||||
memHistory: "Actividades Mémoire",
|
||||
networkHistory: "Actividades Internet",
|
||||
swap: "Swap",
|
||||
// Settings
|
||||
settings: "Opciones",
|
||||
appSettings: "Configuración de la Aplicación",
|
||||
appLanguage: "Lengua App",
|
||||
appTheme: "Tema App",
|
||||
// Global
|
||||
search: "Buscar",
|
||||
downloadUpdate: "Descargar la actualización",
|
||||
updateMsg: "Actualmente hay actualizaciones disponibles.",
|
||||
// Messages
|
||||
opFail: "La operación ha fallado.",
|
||||
sysCleanFail: "Limpieza del sistema ha fallado.",
|
||||
sysCleanSuc: "Sistema Limpiado.",
|
||||
appCacheWarning: "Eliminación de aplicaciones\' Caches pueden causar problemas. Por favor, tenga cuidado.",
|
||||
uninstallFail: "Desinstalación falló.",
|
||||
packageUninstalled: " Paquetes desinstalados.",
|
||||
anotherProc: "Otro proceso está abierto.",
|
||||
changedLang: "Reiniciar el programa para que los cambios surtan efecto.",
|
||||
permitted: 'Transacción no autorizada.',
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
/**
|
||||
AUTHOR <neonramzy@aol.com>
|
||||
*/
|
||||
export default {
|
||||
// Top Menu
|
||||
dashboard: "داشبورد",
|
||||
sysCleaner: "پاکسازی سیستم",
|
||||
startupApps: "برنامه های استارت آپ",
|
||||
services: "سرویس ها",
|
||||
process: "پردازش ها",
|
||||
uninstaller: "حذف برنامه ها",
|
||||
resources: "منابع",
|
||||
// Dashboard Page
|
||||
cpu: "پردازنده",
|
||||
memory: "حافظه",
|
||||
disk: "دیسک",
|
||||
download: "دریافت",
|
||||
upload: "ارسال",
|
||||
systemInfo: "اطلاعات سیستم",
|
||||
hostname: "نام میزبان",
|
||||
platform: "سکوی پردارشی",
|
||||
distribution: "توزیع",
|
||||
kernelRel: "نسخه کرنل",
|
||||
cpuModel: "نسخه پردازنده",
|
||||
cpuSpeed: "سرعت پردازنده",
|
||||
cpuCores: " هسته های پردازنده",
|
||||
// System Cleaner Page
|
||||
packageCache: "حافظه نهان بسته",
|
||||
crashReports: "گزارشات کرش",
|
||||
systemLogs: "گزارشات سیستم",
|
||||
appCache: "حافظه نهان برنامه",
|
||||
trash: "سطل زباله",
|
||||
systemScan: "بررسی سیستم",
|
||||
clean: "پاکسازی",
|
||||
selectAll: "انتخاب همه",
|
||||
// Startup Apps Page
|
||||
startupTitle: "برنامه های استارت آپ سیستم",
|
||||
addStartup: "افزودن برنامه در استارآپ",
|
||||
noStartup: "برنامه ای در استارت آپ وجود ندارد",
|
||||
app: "برنامه",
|
||||
appName: "نام برنامه",
|
||||
appComment: "توضیح برنامه",
|
||||
appCommand: "دستور",
|
||||
add: "افزودن",
|
||||
cancel: "لغو",
|
||||
// Services Page
|
||||
serviceTitle: "سرویس های سیستم",
|
||||
noService: "سرویسی پیدا نشد",
|
||||
// Process Page
|
||||
endProcess: "پایان پردازش",
|
||||
refresh: "بازخوانی",
|
||||
// Uninstaller Page
|
||||
uninstallerTitle: "بسته های نصب شده سیستم",
|
||||
noPackage: "بسته ای پیدا نشد.",
|
||||
uninstallSelecteds: "حذف انتخاب شده ها",
|
||||
// Resources Page
|
||||
cpuHistory: "تاریخچه پردازنده",
|
||||
memHistory: "تاریخچه حافظه",
|
||||
networkHistory: "تاریخچه شبکه",
|
||||
swap: "سواپ",
|
||||
// Settings
|
||||
settings: "تنظیمات",
|
||||
appSettings: "تنظیمات برنامه",
|
||||
appLanguage: "زبان برنامه",
|
||||
appTheme: "تم برنامه",
|
||||
// Global
|
||||
search: "جستجو",
|
||||
downloadUpdate: "دریافت بروزرسانی",
|
||||
updateMsg: "اماده ی بروزرسانی",
|
||||
// Messages
|
||||
opFail: "عملیات ناموفق",
|
||||
sysCleanFail: "پاکسازی سیستم ناموفق",
|
||||
sysCleanSuc: " پاکسازی سیستم انجام شد",
|
||||
appCacheWarning: "ممکن است پاکسازی حافظه نهان مشکلاتی ایجاد کند،مراقب باشید",
|
||||
uninstallFail: "حذف ناموفق",
|
||||
packageUninstalled: " بسته حذف شد",
|
||||
anotherProc: "پردازش دیگری فعال است",
|
||||
changedLang: "برای اعمال تغییرات،مجددا برنامه را راه اندازی کنید",
|
||||
permitted: 'عملیات مجاز نیست',
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
/**
|
||||
AUTHOR <email@address>
|
||||
*/
|
||||
export default {
|
||||
// Top Menu
|
||||
dashboard: "Tableau de bord",
|
||||
sysCleaner: "Nettoyeur Système",
|
||||
startupApps: "Applications au démarrage",
|
||||
services: "Services",
|
||||
process: "Processus",
|
||||
uninstaller: "Désinstalleur",
|
||||
resources: "Ressources",
|
||||
// Dashboard Page
|
||||
cpu: "CPU",
|
||||
memory: "MÉMOIRE",
|
||||
disk: "DISQUE",
|
||||
download: "TÉLÉCHARGEMENT",
|
||||
upload: "TÉLÉVERSEMENT",
|
||||
systemInfo: "INFORMATIONS SYSTÈME",
|
||||
hostname: "Nom d’Hôte",
|
||||
platform: "Plateforme",
|
||||
distribution: "Distribution",
|
||||
kernelRel: "Version du Noyau",
|
||||
cpuModel: "Modèle du Processeur",
|
||||
cpuSpeed: "Vitesse",
|
||||
cpuCores: "Nombre de cœurs",
|
||||
// System Cleaner Page
|
||||
packageCache: "Cache des Paquets",
|
||||
crashReports: "Rapport D’erreurs",
|
||||
systemLogs: "Journaux Système",
|
||||
appCache: "Cache des applications",
|
||||
trash: "Corbeille",
|
||||
systemScan: "Analyse du système",
|
||||
clean: "Nettoyer",
|
||||
selectAll: "Tout Sélectionner",
|
||||
// Startup Apps Page
|
||||
startupTitle: "Applications au démarrage du système",
|
||||
addStartup: "Ajouter une application au démarrage",
|
||||
noStartup: "Aucune application au démarrage n'a été trouvée.",
|
||||
app: "Application",
|
||||
appName: "Nom",
|
||||
appComment: "Commentaire",
|
||||
appCommand: "Commande",
|
||||
add: "Ajouter",
|
||||
cancel: "Annuler",
|
||||
// Services Page
|
||||
serviceTitle: "Services Système",
|
||||
noService: "Aucun service n’a pu être trouvé",
|
||||
// Process Page
|
||||
endProcess: "Stopper le Processus",
|
||||
refresh: "Rafraîchir",
|
||||
// Uninstaller Page
|
||||
uninstallerTitle: "Paquets Installés sur le Système",
|
||||
noPackage: "Aucun paquet n’a pu être trouvé.",
|
||||
uninstallSelecteds: "Désinstaller les paquets sélectionnés",
|
||||
// Resources Page
|
||||
cpuHistory: "Activité du Processeur",
|
||||
memHistory: "Activité de la Mémoire",
|
||||
networkHistory: "Activité du Réseau",
|
||||
swap: "Swap",
|
||||
// Settings
|
||||
settings: "Options",
|
||||
appSettings: "Options de l'Application",
|
||||
appLanguage: "Langue d'affichage",
|
||||
appTheme: "Thème",
|
||||
// Global
|
||||
search: "Chercher",
|
||||
downloadUpdate: "Télécharger la mise à jour",
|
||||
updateMsg: "Il existe actuellement des mises à jour disponibles.",
|
||||
// Messages
|
||||
opFail: "L'opération a échoué.",
|
||||
sysCleanFail: "Le nettoyage du système a échoué.",
|
||||
sysCleanSuc: "Système nettoyé.",
|
||||
appCacheWarning: "Supprimer le cache des applications peut pauser des problèmes d’instabilités, veuillez faire attention.",
|
||||
uninstallFail: "La désinstallation a échoué.",
|
||||
packageUninstalled: "Paquets désinstallés.",
|
||||
anotherProc: "Un autre processus est en cours d'exécution.",
|
||||
changedLang: "Redémarrez le programme pour que les modifications prennent effet.",
|
||||
permitted: 'Opération non autorisée.',
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
/**
|
||||
AUTHOR <sir.bence15@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
// Top Menu
|
||||
dashboard: "Irányítópult",
|
||||
sysCleaner: "Rendszer tisztító",
|
||||
startupApps: "Automatikusan induló programok",
|
||||
services: "Szolgáltatások",
|
||||
process: "Folyamatok",
|
||||
uninstaller: "Eltávolító",
|
||||
resources: "Erőforrások",
|
||||
// Dashboard Page
|
||||
cpu: "CPU",
|
||||
memory: "MEMÓRIA",
|
||||
disk: "LEMEZ",
|
||||
download: "LETÖLTÉS",
|
||||
upload: "FELTÖLTÉS",
|
||||
systemInfo: "RENDSZER INFORMÁCIÓ",
|
||||
hostname: "Gépnév",
|
||||
platform: "Környezet",
|
||||
distribution: "Disztribúció",
|
||||
kernelRel: "Kernel Verziója",
|
||||
cpuModel: "Cpu Típusa",
|
||||
cpuSpeed: "Cpu Sebessége",
|
||||
cpuCores: "Cpu Magok",
|
||||
// System Cleaner Page
|
||||
packageCache: "Csomagok Gyorsítótárja",
|
||||
crashReports: "Rendszerleállás Jelentések",
|
||||
systemLogs: "Rendszer Jelentések",
|
||||
appCache: "Alkalmazás Gyorsítótárja",
|
||||
trash: "Kuka",
|
||||
systemScan: "Rendszervizsgálat",
|
||||
clean: "Tisztítás",
|
||||
selectAll: "Összes kiválasztása",
|
||||
// Startup Apps Page
|
||||
startupTitle: "Automatikusan Induló Alkalmazások",
|
||||
addStartup: "Automatikusan Induló alkalmazás hozzáadása",
|
||||
noStartup: "Nem található automatikusan induló alkalmazás.",
|
||||
app: "Alkalmazás",
|
||||
appName: "Alkalmazás Neve",
|
||||
appComment: "Alkalmazás Hozzászolás",
|
||||
appCommand: "Parancs",
|
||||
add: "Hozzáadás",
|
||||
cancel: "Visszavonás",
|
||||
// Services Page
|
||||
serviceTitle: "Rendszer Szolgáltatások",
|
||||
noService: "Nem Található Szolgáltatás",
|
||||
// Process Page
|
||||
endProcess: "Szolgáltatás Befejezése",
|
||||
refresh: "Frissítés",
|
||||
// Uninstaller Page
|
||||
uninstallerTitle: "A Rendszerre Telepítette a Csomagok",
|
||||
noPackage: "Nem Található csomag.",
|
||||
uninstallSelecteds: "Kiválasztottak törlése",
|
||||
// Resources Page
|
||||
cpuHistory: "Cpu Előzmény",
|
||||
memHistory: "Memória Előzmény",
|
||||
networkHistory: "Hálózat Előzmény",
|
||||
swap: "Lapozófájl",
|
||||
// Settings
|
||||
settings: "Beállítások",
|
||||
appSettings: "Alkalmazás Beállításai",
|
||||
appLanguage: "Alkalmazás Nyelve",
|
||||
appTheme: "Alkalmazás Témája",
|
||||
// Global
|
||||
search: "Keresés",
|
||||
downloadUpdate: "Frissítés Letöltése",
|
||||
updateMsg: "Jelenleg nem elérhető új frissítés.",
|
||||
// Messages
|
||||
opFail: "Sikertelen művelet.",
|
||||
sysCleanFail: "Sikertelen rendszer tisztítás.",
|
||||
sysCleanSuc: "Rendszer kitisztítva.",
|
||||
appCacheWarning: "Alkalmazás letörlése\' Gyorsítótár okozhat problémát. Kérem legyen óvatos.",
|
||||
uninstallFail: "Sikertelen törlés.",
|
||||
packageUninstalled: " csomagok letörölve.",
|
||||
anotherProc: "Másik folyamat folytatódik.",
|
||||
changedLang: "Indítsa újra a programot, hogy életbe lépjenek a frissítések.",
|
||||
permitted: 'Művelet nem engedélyezett.',
|
||||
}
|
||||
@@ -1,81 +0,0 @@
|
||||
/**
|
||||
AUTHOR Patrick Barattin <p.barattin@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
// Top Menu
|
||||
dashboard: "Panenllo di controllo",
|
||||
sysCleaner: "Pulizia del sistema",
|
||||
startupApps: "Applicazioni all'avvio",
|
||||
services: "Servizi",
|
||||
process: "Processsi",
|
||||
uninstaller: "Disinstalla",
|
||||
resources: "Risorse",
|
||||
// Dashboard Page
|
||||
cpu: "CPU",
|
||||
memory: "MEMORIA",
|
||||
disk: "DISCO",
|
||||
download: "DOWNLOAD",
|
||||
upload: "UPLOAD",
|
||||
systemInfo: "INFO DI SISTEMA",
|
||||
hostname: "Nome dispositivo",
|
||||
platform: "Piattaforma",
|
||||
distribution: "Distribuzoine",
|
||||
kernelRel: "Versione del Kernel",
|
||||
cpuModel: "Moedllo CPU",
|
||||
cpuSpeed: "Velocità CPU",
|
||||
cpuCores: "CPU Cores",
|
||||
// System Cleaner Page
|
||||
packageCache: "Pacchetti in cache",
|
||||
crashReports: "Reporti dei crash",
|
||||
systemLogs: "Logs di sistema",
|
||||
appCache: "Cache dei programmi",
|
||||
trash: "Cestino",
|
||||
systemScan: "Analisi di sistema",
|
||||
clean: "Pulisci",
|
||||
selectAll: "Seleziona tutti",
|
||||
// Startup Apps Page
|
||||
startupTitle: "Programmi all'avvio del sistema",
|
||||
addStartup: "Aggiungi programma",
|
||||
noStartup: "Non è stato trovato nessun programma all'avvio",
|
||||
app: "Programmi",
|
||||
appName: "Nome Progrmmma",
|
||||
appComment: "Commento del programma",
|
||||
appCommand: "Comando",
|
||||
add: "Aggiungi",
|
||||
cancel: "Cancella",
|
||||
// Services Page
|
||||
serviceTitle: "Servizi di sistema",
|
||||
noService: "Nessun servizio trovato",
|
||||
// Process Page
|
||||
endProcess: "Fine Processo",
|
||||
refresh: "Ricarica",
|
||||
// Uninstaller Page
|
||||
uninstallerTitle: "Pacchetti di sistema installati",
|
||||
noPackage: "Nessun pacchetto trovato",
|
||||
uninstallSelecteds: "Disinstalla selezionati",
|
||||
// Resources Page
|
||||
cpuHistory: "Grafico CPU",
|
||||
memHistory: "Grafico Memoria",
|
||||
networkHistory: "Grafico Rete",
|
||||
swap: "Swap",
|
||||
// Settings
|
||||
settings: "Impostazioni",
|
||||
appSettings: "Impostazioni",
|
||||
appLanguage: "Lingua",
|
||||
appTheme: "Tema",
|
||||
// Global
|
||||
search: "Ricerca",
|
||||
downloadUpdate: "Scarica aggioranmenti",
|
||||
updateMsg: "Ci sono degli aggiornamenti disponibili",
|
||||
// Messages
|
||||
opFail: "Operazione fallita",
|
||||
sysCleanFail: "Pulizia del sistema fallita",
|
||||
sysCleanSuc: "Sistema pulito",
|
||||
appCacheWarning: "L\'eliminazione della cache può essere pericolosa, state attenti",
|
||||
uninstallFail: "Disinstallazione fallita",
|
||||
packageUninstalled: "Pacchetto disintallato",
|
||||
anotherProc: "Un\'altro processo è in esecuzione",
|
||||
changedLang: "Riavvia il programma per vedere le modifiche",
|
||||
permitted: 'Operazione non permessa',
|
||||
update: 'Aggiornamento'
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
/**
|
||||
AUTHOR <vinyasns@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
// Top Menu
|
||||
dashboard: "ಡ್ಯಾಶ್ಬೋರ್ಡ್",
|
||||
sysCleaner: "ಸಿಸ್ಟಮ್ ಕ್ಲೀನರ್",
|
||||
startupApps: "ಆರಂಭಿಕ ಅಪ್ಲಿಕೇಶನ್ಗಳು",
|
||||
services: "ಸೇವೆಗಳು",
|
||||
process: "ಪ್ರಕ್ರಿಯೆ",
|
||||
uninstaller: "ಅಸ್ಥಾಪನೆಗಾರ",
|
||||
resources: "ಸಂಪನ್ಮೂಲಗಳು",
|
||||
// Dashboard Page
|
||||
cpu: "ಕೇಂದ್ರ ಸಂಸ್ಕರಣ ಘಟಕ",
|
||||
memory: "ಸ್ಮೃತಿ",
|
||||
disk: "ಡಿಸ್ಕ್",
|
||||
download: "ಡೌನ್ಲೋಡ್",
|
||||
upload: "ಅಪ್ಲೋಡ್",
|
||||
systemInfo: "ಸಿಸ್ಟಮ್ ಮಾಹಿತಿ",
|
||||
hostname: "ಹೋಸ್ಟ್ ಹೆಸರು",
|
||||
platform: "ವೇದಿಕೆ",
|
||||
distribution: "ವಿತರಣೆ",
|
||||
kernelRel: "ಕರ್ನಲ್ ಬಿಡುಗಡೆ",
|
||||
cpuModel: "ಸಿಪಿಯು ಮಾದರಿ",
|
||||
cpuSpeed: "ಸಿಪಿಯು ವೇಗ",
|
||||
cpuCores: "ಸಿಪಿಯು ಕೋರ್ಗಳು",
|
||||
// System Cleaner Page
|
||||
packageCache: "ಪ್ಯಾಕೇಜ್ ಸಂಗ್ರಹ",
|
||||
crashReports: "ಕ್ರ್ಯಾಶ್ ವರದಿಗಳು",
|
||||
systemLogs: "ಸಿಸ್ಟಮ್ ದಾಖಲೆಗಳು",
|
||||
appCache: "ಅಪ್ಲಿಕೇಶನ್ ಸಂಗ್ರಹ",
|
||||
trash: "ಅನುಪಯುಕ್ತ",
|
||||
systemScan: "ಸಿಸ್ಟಮ್ ಸ್ಕ್ಯಾನ್",
|
||||
clean: "ಸ್ವಚ್ಛಗೊಳಿಸಿ",
|
||||
selectAll: "ಎಲ್ಲವನ್ನು ಆರಿಸು",
|
||||
// Startup Apps Page
|
||||
startupTitle: "ಸಿಸ್ಟಮ್ ಆರಂಭಿಕ ಅಪ್ಲಿಕೇಶನ್ಗಳು",
|
||||
addStartup: "ಆರಂಭಿಕ ಅಪ್ಲಿಕೇಶನ್ ಸೇರಿಸಿ",
|
||||
noStartup: "ಆರಂಭಿಕ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಕಂಡುಬಂದಿಲ್ಲ.",
|
||||
app: "ಅಪ್ಲಿಕೇಶನ್",
|
||||
appName: "ಅಪ್ಲಿಕೇಶನ್ ಹೆಸರು",
|
||||
appComment: "ಅಪ್ಲಿಕೇಶನ್ ಟಿಪ್ಪಣಿ",
|
||||
appCommand: "ಆದೇಶ",
|
||||
add: "ಸೇರಿಸಿ",
|
||||
cancel: "ರದ್ದುಮಾಡಿ",
|
||||
// Services Page
|
||||
serviceTitle: "ಸಿಸ್ಟಮ್ ಸೇವೆಗಳು",
|
||||
noService: "ಯಾವುದೇ ಸೇವೆ ಕಂಡುಬಂದಿಲ್ಲ",
|
||||
// Process Page
|
||||
endProcess: "ಪ್ರಕ್ರಿಯೆ ಕೊನೆಗೊಳಿಸಿ",
|
||||
refresh: "ರಿಫ್ರೆಶ್",
|
||||
// Uninstaller Page
|
||||
uninstallerTitle: "ಸಿಸ್ಟಮ್ ಅನುಸ್ಥಾಪಿಸಲಾದ ಪ್ಯಾಕೇಜುಗಳು",
|
||||
noPackage: "ಯಾವುದೇ ಪ್ಯಾಕೇಜ್ ಕಂಡುಬಂದಿಲ್ಲ.",
|
||||
uninstallSelecteds: "ಆಯ್ಕೆಮಾಡಿದನ್ನು ಅಸ್ಥಾಪಿಸು",
|
||||
// Resources Page
|
||||
cpuHistory: "ಸಿಪಿಯು ಇತಿಹಾಸ",
|
||||
memHistory: "ಸ್ಮೃತಿ ಇತಿಹಾಸ",
|
||||
networkHistory: "ನೆಟ್ವರ್ಕ್ ಇತಿಹಾಸ",
|
||||
swap: "ವಿನಿಮಯ",
|
||||
// Settings
|
||||
settings: "ಸೆಟ್ಟಿಂಗ್ಗಳು",
|
||||
appSettings: "ಅಪ್ಲಿಕೇಶನ್ ಸೆಟ್ಟಿಂಗ್ಗಳು",
|
||||
appLanguage: "ಅಪ್ಲಿಕೇಶನ್ ಭಾಷೆ",
|
||||
appTheme: "ಅಪ್ಲಿಕೇಶನ್ ಥೀಮ್",
|
||||
// Global
|
||||
search: "ಹುಡುಕು",
|
||||
downloadUpdate: "ನವೀಕರಣವನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಿ",
|
||||
updateMsg: "ನವೀಕರಣಗಳು ಪ್ರಸ್ತುತ ಲಭ್ಯವಿವೆ.",
|
||||
// Messages
|
||||
opFail: "ಕಾರ್ಯಾಚರಣೆ ವಿಫಲವಾಗಿದೆ.",
|
||||
sysCleanFail: "ಸಿಸ್ಟಮ್ ಶುಚಿಗೊಳಿಸುವಿಕೆ ವಿಫಲವಾಗಿದೆ.",
|
||||
sysCleanSuc: "ಸಿಸ್ಟಮ್ ಸ್ವಚ್ಛಗೊಳಿಸಲಾಗಿದೆ.",
|
||||
appCacheWarning: "ಅಪ್ಲಿಕೇಶನ್ ಸಂಗ್ರಹವನ್ನು ಅಳಿಸುವುದರಿಂದ ಸಮಸ್ಯೆಗಳಿಗೆ ಕಾರಣವಾಗಬಹುದು. ದಯವಿಟ್ಟು ಎಚ್ಚರದಿಂದಿರಿ.",
|
||||
uninstallFail: "ಅಸ್ಥಾಪನೆ ವಿಫಲವಾಗಿದೆ.",
|
||||
packageUninstalled: " ಪ್ಯಾಕೇಜುಗಳನ್ನು ಅಸ್ಥಾಪಿಸಲಾಗಿದೆ.",
|
||||
anotherProc: "ಮತ್ತೊಂದು ಪ್ರಕ್ರಿಯೆಯು ಮುಂದುವರಿಯುತ್ತದೆ.",
|
||||
changedLang: "ಬದಲಾವಣೆಗಳನ್ನು ಜಾರಿಗೆ ತರಲು ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ.",
|
||||
permitted: 'ಆಪರೇಷನ್ ಅನುಮತಿಸಲಾಗಿಲ್ಲ.',
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
/**
|
||||
AUTHOR <email@address>
|
||||
*/
|
||||
export default {
|
||||
// Top Menu
|
||||
dashboard: "Panèl de configuracion",
|
||||
sysCleaner: "Netejador sistèma",
|
||||
startupApps: "Aplicacions a l'aviada",
|
||||
services: "Servicis",
|
||||
process: "Processús",
|
||||
uninstaller: "Desinstallador",
|
||||
resources: "Ressorsas",
|
||||
// Dashboard Page
|
||||
cpu: "CPU",
|
||||
memory: "MEMÒRIA",
|
||||
disk: "DISC",
|
||||
download: "TELECARGAMENT",
|
||||
upload: "MANDADÍS",
|
||||
systemInfo: "INFORMACIONS SISTÈMA",
|
||||
hostname: "Nom d’Òste",
|
||||
platform: "Plataforma",
|
||||
distribution: "Distribucion",
|
||||
kernelRel: "Version del nucli",
|
||||
cpuModel: "Modèl del Processor",
|
||||
cpuSpeed: "Velocitat",
|
||||
cpuCores: "Nombre de còrs",
|
||||
// System Cleaner Page
|
||||
packageCache: "Escondedor dels paquets",
|
||||
crashReports: "Rapòrt d’errors",
|
||||
systemLogs: "Jornals sistèma",
|
||||
appCache: "Escondedor de las aplicacions",
|
||||
trash: "Banasta",
|
||||
systemScan: "Analisi del sistèma",
|
||||
clean: "Netejar",
|
||||
selectAll: "Seleccionar tot",
|
||||
// Startup Apps Page
|
||||
startupTitle: "Aplicacions a l'aviada del sistèma",
|
||||
addStartup: "Ajustar una aplicacion a l'aviada",
|
||||
noStartup: "Cap aplicacion a l'aviada pas trobada.",
|
||||
app: "Aplicacion",
|
||||
appName: "Nom",
|
||||
appComment: "Comentari",
|
||||
appCommand: "Comanda",
|
||||
add: "Ajustar",
|
||||
cancel: "Anullar",
|
||||
// Services Page
|
||||
serviceTitle: "Servicis sistèma",
|
||||
noService: "Cap servici sistèma trobat",
|
||||
// Process Page
|
||||
endProcess: "Arrestar lo processús",
|
||||
refresh: "Actualizar",
|
||||
// Uninstaller Page
|
||||
uninstallerTitle: "Paquets installats sul sistèma",
|
||||
noPackage: "Cap paquet pas trobat.",
|
||||
uninstallSelecteds: "Desinstallar los paquets seleccionats",
|
||||
// Resources Page
|
||||
cpuHistory: "Activitat del processor",
|
||||
memHistory: "Activitat de la memòria",
|
||||
networkHistory: "Activitat de la ret",
|
||||
swap: "Memòria de cambi",
|
||||
// Settings
|
||||
settings: "Paramètres",
|
||||
appSettings: "Opcions de l'aplicacion",
|
||||
appLanguage: "Lenga de l'aplicacion",
|
||||
appTheme: "Tèma",
|
||||
// Global
|
||||
search: "Cercar",
|
||||
downloadUpdate: "Telecargar la mesa a jorn",
|
||||
updateMsg: "I a de mesas a jorn disponiblas.",
|
||||
// Messages
|
||||
opFail: "L'operacion a fach mèuca.",
|
||||
sysCleanFail: "La netejada del sistèma a fracassat.",
|
||||
sysCleanSuc: "Sistèma netejat.",
|
||||
appCacheWarning: "Suprimir l'escondedor de las aplicacion pòt causar de problèmas, mèfi amb aquò.",
|
||||
uninstallFail: "La desinstallacion a fracassat.",
|
||||
packageUninstalled: "Paquets desinstallats.",
|
||||
anotherProc: "Un autre processús es a s'executar.",
|
||||
changedLang: "Reaviatz lo programa per aplicar los cambiaments.",
|
||||
permitted: 'Operacion pas autorizada.',
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
/**
|
||||
AUTHOR AngryPenguin <angrypenguinpoland@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
// Top Menu
|
||||
dashboard: "Deska Rozdzielcza",
|
||||
sysCleaner: "Czyszczenie Systemu",
|
||||
startupApps: "Aplikacje startowe",
|
||||
services: "Usługi",
|
||||
process: "Procesy",
|
||||
uninstaller: "Deinstalator",
|
||||
resources: "Zasoby",
|
||||
// Dashboard Page
|
||||
cpu: "PROCESOR",
|
||||
memory: "PAMIĘĆ RAM",
|
||||
disk: "DYSK",
|
||||
download: "POBIERANIE",
|
||||
upload: "WYSYŁANIE",
|
||||
systemInfo: "INFORMACJE O SYSTEMIE",
|
||||
hostname: "Nazwa hosta",
|
||||
platform: "Platforma",
|
||||
distribution: "Dystrybucja",
|
||||
kernelRel: "Wydanie jądra Linux",
|
||||
cpuModel: "Model Cpu",
|
||||
cpuSpeed: "Zegar Cpu",
|
||||
cpuCores: "Rdzenie Cpu",
|
||||
// System Cleaner Page
|
||||
packageCache: "Pamięć podręczna pakietów",
|
||||
crashReports: "Raporty błędów",
|
||||
systemLogs: "Logi systemowe",
|
||||
appCache: "Pamięć podręczna aplikacji",
|
||||
trash: "Kosz",
|
||||
systemScan: "Skanuj System",
|
||||
clean: "Wyczyść",
|
||||
selectAll: "Zaznacz wszystko",
|
||||
// Startup Apps Page
|
||||
startupTitle: "Systemowe aplikacje startowe",
|
||||
addStartup: "Dodaj aplikację startową",
|
||||
noStartup: "Nie znaleziono aplikacji startowych.",
|
||||
app: "Aplikacje",
|
||||
appName: "Nazwa aplikacji",
|
||||
appComment: "Komentarz do aplikacji",
|
||||
appCommand: "Polecenie",
|
||||
add: "Dodaj",
|
||||
cancel: "Anuluj",
|
||||
// Services Page
|
||||
serviceTitle: "Usługi Systemowe",
|
||||
noService: "Nie znaleziono usług",
|
||||
// Process Page
|
||||
endProcess: "Zakończ proces",
|
||||
refresh: "Odśwież",
|
||||
// Uninstaller Page
|
||||
uninstallerTitle: "Zainstalowane pakiety w systemie",
|
||||
noPackage: "Nie znaleziono pakietu.",
|
||||
uninstallSelecteds: "Odinstaluj zaznaczone",
|
||||
// Resources Page
|
||||
cpuHistory: "Historia użycia Cpu",
|
||||
memHistory: "Historia użycia pamięci",
|
||||
networkHistory: "Historia użycia internetu",
|
||||
swap: "Swap",
|
||||
// Settings
|
||||
settings: "Ustawienia",
|
||||
appSettings: "Ustawienia aplikacji",
|
||||
appLanguage: "Język aplikacji",
|
||||
appTheme: "Motyw aplikacji",
|
||||
// Global
|
||||
search: "Wyszukaj",
|
||||
downloadUpdate: "Pobierz aktualizację",
|
||||
updateMsg: "Są dostępne nowe aktualizacje.",
|
||||
// Messages
|
||||
opFail: "Operacja zakończona niepowodzeniem.",
|
||||
sysCleanFail: "Czyszczenie systemu nieudane.",
|
||||
sysCleanSuc: "System oczyszczony.",
|
||||
appCacheWarning: "Usuwanie aplikacji\' pamięci podręcznej może powodować problemy. Proszę bądź ostrożny.",
|
||||
uninstallFail: "Usuwanie nieudane.",
|
||||
packageUninstalled: " pakiety usunięte.",
|
||||
anotherProc: "Kolejny proces trwa.",
|
||||
changedLang: "Uruchom ponownie program aby wprowadzone zmiany odniosły efekt.",
|
||||
permitted: 'Operacja niedozwolona.',
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
/**
|
||||
AUTHOR <email@address>
|
||||
*/
|
||||
export default {
|
||||
// Top Menu
|
||||
dashboard: "Visão Geral",
|
||||
sysCleaner: "Limpador do sistema",
|
||||
startupApps: "Aplicativos de inicialização",
|
||||
services: "Serviços",
|
||||
process: "Processos",
|
||||
uninstaller: "Desinstalador",
|
||||
resources: "Recursos",
|
||||
// Dashboard Page
|
||||
cpu: "CPU",
|
||||
memory: "MEMÓRIA",
|
||||
disk: "DISCO",
|
||||
download: "DOWNLOAD",
|
||||
upload: "UPLOAD",
|
||||
systemInfo: "INFORMAÇÃO DO SISTEMA",
|
||||
hostname: "Nome de usuário",
|
||||
platform: "Plataforma",
|
||||
distribution: "Distribuição",
|
||||
kernelRel: "Lançamento do kernel",
|
||||
cpuModel: "Modelo do processador",
|
||||
cpuSpeed: "Velocidade do processador",
|
||||
cpuCores: "Núcleos do processador",
|
||||
// System Cleaner Page
|
||||
packageCache: "Cache do pacote",
|
||||
crashReports: "Relatórios de falha",
|
||||
systemLogs: "Registros do sistema",
|
||||
appCache: "Cache de aplicativos",
|
||||
trash: "Lixo",
|
||||
systemScan: "Verificação do sistema",
|
||||
clean: "Limpar",
|
||||
selectAll: "Selecionar tudo",
|
||||
// Startup Apps Page
|
||||
startupTitle: "Aplicativos de inicialização do sistema",
|
||||
addStartup: "Adicionar Aplicativo",
|
||||
noStartup: "Nenhum aplicativo de inicialização foi encontrado.",
|
||||
app: "Aplicação",
|
||||
appName: "Nome do aplicativo",
|
||||
appComment: "Descrição do aplicativo",
|
||||
appCommand: "Comando",
|
||||
add: "Adicionar",
|
||||
cancel: "Cancelar",
|
||||
// Services Page
|
||||
serviceTitle: "Serviços do sistema",
|
||||
noService: "Nenhum serviço encontrado.",
|
||||
// Process Page
|
||||
endProcess: "Finalizar processo",
|
||||
refresh: "Atualizar",
|
||||
// Uninstaller Page
|
||||
uninstallerTitle: "Pacotes instalados do sistema",
|
||||
noPackage: "Nenhum pacote encontrado.",
|
||||
uninstallSelecteds: "Desinstalar selecionados",
|
||||
// Resources Page
|
||||
cpuHistory: "Histórico do processador",
|
||||
memHistory: "Histórico da memória",
|
||||
networkHistory: "Histórico da rede",
|
||||
swap: "Trocar",
|
||||
// Settings
|
||||
settings: "Configurações",
|
||||
appSettings: "Configuraçes do aplicativo",
|
||||
appLanguage: "Linguagem",
|
||||
appTheme: "Tema",
|
||||
// Global
|
||||
search: "Pesquisar",
|
||||
downloadUpdate: "Baixar atualização",
|
||||
updateMsg: "Há atualizações disponíveis.",
|
||||
// Messages
|
||||
opFail: "Operação falhou.",
|
||||
sysCleanFail: "A limpeza do sistema falhou.",
|
||||
sysCleanSuc: "Sistema limpo.",
|
||||
appCacheWarning: "A exclusão de caches de aplicativos pode causar problemas. Por favor, preste atenção.",
|
||||
uninstallFail: "A desinstalação falhou.",
|
||||
packageUninstalled: " pacote desinstalado.",
|
||||
anotherProc: "Outro processo continua.",
|
||||
changedLang: "Reinicie o programa para que as alterações se concretizem.",
|
||||
permitted: 'Operação não permitida.',
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
/**
|
||||
AUTHOR BrainStorm <brainstorm@programist.ru>
|
||||
*/
|
||||
export default {
|
||||
// Top Menu
|
||||
dashboard: "Панель управления",
|
||||
sysCleaner: "Очистка системы",
|
||||
startupApps: "Автозагрузка",
|
||||
services: "Службы",
|
||||
process: "Процессы",
|
||||
uninstaller: "Удаление программ",
|
||||
resources: "Ресурсы",
|
||||
// Dashboard Page
|
||||
cpu: "ЦП",
|
||||
memory: "ПАМЯТЬ",
|
||||
disk: "ДИСК",
|
||||
download: "ЗАГРУЗКА",
|
||||
upload: "ОТДАЧА",
|
||||
systemInfo: "ИНФОРМАЦИЯ О СИСТЕМЕ",
|
||||
hostname: "Имя хоста",
|
||||
platform: "Платформа",
|
||||
distribution: "Дистрибутив",
|
||||
kernelRel: "Версия ядра",
|
||||
cpuModel: "Модель ЦП",
|
||||
cpuSpeed: "Скорость ЦП",
|
||||
cpuCores: "Ядра ЦП",
|
||||
// System Cleaner Page
|
||||
packageCache: "Кэш пакетов",
|
||||
crashReports: "Отчеты о падении",
|
||||
systemLogs: "Системные журналы",
|
||||
appCache: "Кэш приложений",
|
||||
trash: "Корзина",
|
||||
systemScan: "Проверка системы",
|
||||
clean: "Очистить",
|
||||
selectAll: "Выбрать все",
|
||||
// Startup Apps Page
|
||||
startupTitle: "Автозагрузка приложений",
|
||||
addStartup: "Добавить приложение в автозагрузку",
|
||||
noStartup: "Ни одного приложения в автозагрузке не найдено.",
|
||||
app: "Приложение",
|
||||
appName: "Имя приложения",
|
||||
appComment: "Комментарий приложения",
|
||||
appCommand: "Комманда",
|
||||
add: "Добавить",
|
||||
cancel: "Отмена",
|
||||
// Services Page
|
||||
serviceTitle: "Системные службы",
|
||||
noService: "Ни одной системной службы не найдено",
|
||||
// Process Page
|
||||
endProcess: "Завершить процесс",
|
||||
refresh: "Обновить",
|
||||
// Uninstaller Page
|
||||
uninstallerTitle: "Установленные системные пакеты",
|
||||
noPackage: "Ни одного пакета не найдено.",
|
||||
uninstallSelecteds: "Удалить выбранные",
|
||||
// Resources Page
|
||||
cpuHistory: "История ЦП",
|
||||
memHistory: "История памяти",
|
||||
networkHistory: "История сети",
|
||||
swap: "Своп",
|
||||
// Settings
|
||||
settings: "Параметры",
|
||||
appSettings: "Параметры приложения",
|
||||
appLanguage: "Язык",
|
||||
appTheme: "Тема оформления",
|
||||
// Global
|
||||
search: "Поиск",
|
||||
downloadUpdate: "Проверить обновления",
|
||||
updateMsg: "Доступны обновления приложения.",
|
||||
// Messages
|
||||
opFail: "Операция не выполнена.",
|
||||
sysCleanFail: "Очистка системы не выполнена.",
|
||||
sysCleanSuc: "Система очищена.",
|
||||
appCacheWarning: "Удаление кэша приложения может вызвать проблемы. Будьте осторожны.",
|
||||
uninstallFail: "Удаление не выполнено.",
|
||||
packageUninstalled: " пакетов удалено.",
|
||||
anotherProc: "Выполняется другой процесс.",
|
||||
changedLang: "Перезапустите программу для вступления в силу изменений.",
|
||||
permitted: 'Операция не разрешена.',
|
||||
}
|
||||
@@ -1,81 +0,0 @@
|
||||
/**
|
||||
AUTHOR <ecn@ecn.se>
|
||||
*/
|
||||
export default {
|
||||
// Top Menu
|
||||
dashboard: "Dashboard",
|
||||
sysCleaner: "Systemrensare",
|
||||
startupApps: "Uppstartsappar",
|
||||
services: "Tjänster",
|
||||
process: "Processer",
|
||||
uninstaller: "Avinstallerare",
|
||||
resources: "Resurser",
|
||||
// Dashboard Page
|
||||
cpu: "CPU",
|
||||
memory: "MINNE",
|
||||
disk: "DISK",
|
||||
download: "NERLADDNING",
|
||||
upload: "UPPLADDNING",
|
||||
systemInfo: "SYSTEM INFO",
|
||||
hostname: "Värdnamn",
|
||||
platform: "Plattform",
|
||||
distribution: "Distribution",
|
||||
kernelRel: "Kernelutgåva",
|
||||
cpuModel: "CPU-modell",
|
||||
cpuSpeed: "CPU-hastighet",
|
||||
cpuCores: "CPU-kärnor",
|
||||
// System Cleaner Page
|
||||
packageCache: "Packetcache",
|
||||
crashReports: "Kraschrapporter",
|
||||
systemLogs: "Systemloggar",
|
||||
appCache: "Appcache",
|
||||
trash: "Skräp",
|
||||
systemScan: "Systemskanning",
|
||||
clean: "Rensa",
|
||||
selectAll: "Välj alla",
|
||||
// Startup Apps Page
|
||||
startupTitle: "Systemets uppstartsapplikationer",
|
||||
addStartup: "Lägg till uppstartsapp",
|
||||
noStartup: "Inga uppstartsappar funna.",
|
||||
app: "Program",
|
||||
appName: "Appnamn",
|
||||
appComment: "Appkommentar",
|
||||
appCommand: "Kommando",
|
||||
add: "Lägg till",
|
||||
cancel: "Avbryt",
|
||||
// Services Page
|
||||
serviceTitle: "Systemtjänster",
|
||||
noService: "Inga tjänster funna.",
|
||||
// Process Page
|
||||
endProcess: "Avsluta process",
|
||||
refresh: "Uppdateras",
|
||||
// Uninstaller Page
|
||||
uninstallerTitle: "System Installed Packages",
|
||||
noPackage: "No package found.",
|
||||
uninstallSelecteds: "Uninstall Selecteds",
|
||||
// Resources Page
|
||||
cpuHistory: "CPU-historik",
|
||||
memHistory: "Minneshistorik",
|
||||
networkHistory: "Nätverkshistorik",
|
||||
swap: "Swap",
|
||||
// Settings
|
||||
settings: "Inställningar",
|
||||
appSettings: "Appikationsinställningar",
|
||||
appLanguage: "Applikationsspråk",
|
||||
appTheme: "Applikationstema",
|
||||
// Global
|
||||
search: "Sök",
|
||||
downloadUpdate: "Ladda ner uppdatering",
|
||||
updateMsg: "Det finns förnärvarande tillgängliga uppdateringar.",
|
||||
// Messages
|
||||
opFail: "Operation misslyckades.",
|
||||
sysCleanFail: "Systemrensning misslyckades.",
|
||||
sysCleanSuc: "System rensat.",
|
||||
appCacheWarning: "Ta bort applikationscache kan medföra problem. Var försiktig.",
|
||||
uninstallFail: "Avinstallation misslyckades.",
|
||||
packageUninstalled: " paket avinstallerade.",
|
||||
anotherProc: "En annan process fortsätter.",
|
||||
changedLang: "Starta om programmet för att ändringarna ska börja gälla.",
|
||||
permitted: 'Operationen är inte tillåten.',
|
||||
update: 'Uppdatera'
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
/**
|
||||
AUTHOR <email@address>
|
||||
*/
|
||||
export default {
|
||||
// Top Menu
|
||||
dashboard: "Başlangıç",
|
||||
sysCleaner: "Sistem Temizleyici",
|
||||
startupApps: "Başlangıç Uygulamaları",
|
||||
services: "Servisler",
|
||||
process: "Süreçler",
|
||||
uninstaller: "Kaldırıcı",
|
||||
resources: "Kaynaklar",
|
||||
// Dashboard Page
|
||||
cpu: "CPU",
|
||||
memory: "BELLEK",
|
||||
disk: "DİSK",
|
||||
download: "İNDİRME",
|
||||
upload: "YÜKLEME",
|
||||
systemInfo: "SİSTEM BİLGİSİ",
|
||||
hostname: "Hostname",
|
||||
platform: "Platform",
|
||||
distribution: "Dağıtım",
|
||||
kernelRel: "Çekirdek Sürümü",
|
||||
cpuModel: "Cpu Modeli",
|
||||
cpuSpeed: "Cpu Hızı",
|
||||
cpuCores: "Cpu Çekirdek",
|
||||
// System Cleaner Page
|
||||
packageCache: "Paket Önbelleği",
|
||||
crashReports: "Hata Raporları",
|
||||
systemLogs: "Sistem Günlükleri",
|
||||
appCache: "Uygulama Önbelleği",
|
||||
trash: "Çöp Kutusu",
|
||||
systemScan: "Sistemi Tara",
|
||||
clean: "Temizle",
|
||||
selectAll: "Hepsini Seç",
|
||||
// Startup Apps Page
|
||||
startupTitle: "Sistem Başlangıç Uygulamaları",
|
||||
addStartup: "Başlangıç Uygulaması Ekle",
|
||||
noStartup: "Başlangıç Uygulaması Bulunamadı.",
|
||||
app: "Uygulama",
|
||||
appName: "Uygulama Adı",
|
||||
appComment: "Uygulama Yorumu",
|
||||
appCommand: "Komut",
|
||||
add: "Ekle",
|
||||
cancel: "İptal",
|
||||
// Services Page
|
||||
serviceTitle: "Sistem Servisleri",
|
||||
noService: "Servis Bulunamadı.",
|
||||
// Process Page
|
||||
endProcess: "Süreci Sonlandır",
|
||||
refresh: "Yenile",
|
||||
// Uninstaller Page
|
||||
uninstallerTitle: "Sistemdeki Yüklü Paketler",
|
||||
noPackage: "Paket Bulunamadı.",
|
||||
uninstallSelecteds: "Seçilenleri Kaldır",
|
||||
// Resources Page
|
||||
cpuHistory: "Cpu Geçmişi",
|
||||
memHistory: "Bellek Geçmişi",
|
||||
networkHistory: "Ağ Geçmişi",
|
||||
swap: "Takas",
|
||||
// Settings
|
||||
settings: "Ayarlar",
|
||||
appSettings: "Uygulama Ayarları",
|
||||
appLanguage: "Uygulama Dili",
|
||||
appTheme: "Uygulama Tema",
|
||||
// Global
|
||||
search: "Arama",
|
||||
downloadUpdate: "Güncellemeyi İndir",
|
||||
updateMsg: "Mevcut yeni güncelleme var.",
|
||||
// Messages
|
||||
opFail: "İşlem başarısız.",
|
||||
sysCleanFail: "Sistem temizleme başarısız.",
|
||||
sysCleanSuc: "Sistem temizlendi.",
|
||||
appCacheWarning: "Uygulamaların önbelleklerini silmek sorunlara neden olabilir. Lütfen dikkatli olun.",
|
||||
uninstallFail: "Kaldırma başarısız.",
|
||||
packageUninstalled: " paketleri kaldırıldı.",
|
||||
anotherProc: "Başka işlem devam ediyor.",
|
||||
changedLang: "Değişikliklerin aktif olması için programı yeniden başlatın.",
|
||||
permitted: 'İşleme izin verilmedi.',
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
/**
|
||||
AUTHOR of Ukrainian translation <vpaslavskyi@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
// Top Menu
|
||||
dashboard: "Панель Приладів",
|
||||
sysCleaner: "Очистка Системи",
|
||||
startupApps: "Початкові Додатки",
|
||||
services: "Сервіси",
|
||||
process: "Процеси",
|
||||
uninstaller: "Видалення Програм",
|
||||
resources: "Ресурси",
|
||||
// Dashboard Page
|
||||
cpu: "ЦП",
|
||||
memory: "ПАМʼЯТЬ",
|
||||
disk: "ДИСК",
|
||||
download: "ЗАВАНТАЖЕННЯ",
|
||||
upload: "ВІДВАНТАЖЕННЯ",
|
||||
systemInfo: "СИСТЕМНА ІНФОРМАЦІЯ",
|
||||
hostname: "Ім'я хосту",
|
||||
platform: "Платформа",
|
||||
distribution: "Дистрибутив",
|
||||
kernelRel: "Випуск ядра",
|
||||
cpuModel: "Модель ЦП",
|
||||
cpuSpeed: "Швидкість ЦП",
|
||||
cpuCores: "Ядра ЦП",
|
||||
// System Cleaner Page
|
||||
packageCache: "Кеш пакунків",
|
||||
crashReports: "Аварійні звіти",
|
||||
systemLogs: "Системні журнали",
|
||||
appCache: "Кеш додатків",
|
||||
trash: "Сміття",
|
||||
systemScan: "Сканування системи",
|
||||
clean: "Очистити",
|
||||
selectAll: "Обрати Все",
|
||||
// Startup Apps Page
|
||||
startupTitle: "Початкові системні додатки",
|
||||
addStartup: "Дадати початковий додаток",
|
||||
noStartup: "Жодних початкових програм не знайдено.",
|
||||
app: "Додатки",
|
||||
appName: "Ім'я додатку",
|
||||
appComment: "Коментар додатку",
|
||||
appCommand: "Команда",
|
||||
add: "Додати",
|
||||
cancel: "Відміна",
|
||||
// Services Page
|
||||
serviceTitle: "Системні Сервіси",
|
||||
noService: "Не знайдено жодного сервісу",
|
||||
// Process Page
|
||||
endProcess: "Кінець Процесу",
|
||||
refresh: "Оновити",
|
||||
// Uninstaller Page
|
||||
uninstallerTitle: "Встановлені Системні Пакунки",
|
||||
noPackage: "Не знайдено жодного пакунку.",
|
||||
uninstallSelecteds: "Видалити Обране",
|
||||
// Resources Page
|
||||
cpuHistory: "Історія ЦП",
|
||||
memHistory: "Історія Пам'яті",
|
||||
networkHistory: "Історія Мережі",
|
||||
swap: "Своп",
|
||||
// Settings
|
||||
settings: "Налаштування",
|
||||
appSettings: "Налаштування Додатків",
|
||||
appLanguage: "Мова додатку",
|
||||
appTheme: "Тема Додатку",
|
||||
// Global
|
||||
search: "Пошук",
|
||||
downloadUpdate: "Завантажити Оновлення",
|
||||
updateMsg: "Присутні Оновлення Додатку.",
|
||||
// Messages
|
||||
opFail: "Операція не вдалась.",
|
||||
sysCleanFail: "Очищення Системи не вдалось.",
|
||||
sysCleanSuc: "Система очищена.",
|
||||
appCacheWarning: "Киш видалених додатків може призвести до проблем. Будь ласка, будьте обережні.",
|
||||
uninstallFail: "Видалення не вдалось.",
|
||||
packageUninstalled: " пакунки видалені.",
|
||||
anotherProc: "Продовжується інший процес.",
|
||||
changedLang: "Для вступу в дію оновлень, необхідне перезавантаження програми.",
|
||||
permitted: 'Операція не дозволяється.',
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
/**
|
||||
AUTHOR <yunlonglin1995@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
// Top Menu
|
||||
dashboard: "仪表板",
|
||||
sysCleaner: "系统清理",
|
||||
startupApps: "开机启动",
|
||||
services: "服务",
|
||||
process: "程序",
|
||||
uninstaller: "移除应用程序",
|
||||
resources: "系统资源",
|
||||
// Dashboard Page
|
||||
cpu: "CPU",
|
||||
memory: "内存",
|
||||
disk: "硬盘",
|
||||
download: "下载",
|
||||
upload: "上传",
|
||||
systemInfo: "系统信息",
|
||||
hostname: "系统名称",
|
||||
platform: "平台",
|
||||
distribution: "系统版本",
|
||||
kernelRel: "Kernel 版本",
|
||||
cpuModel: "Cpu Model",
|
||||
cpuSpeed: "Cpu 频率",
|
||||
cpuCores: "Cpu 核心数",
|
||||
// System Cleaner Page
|
||||
packageCache: "应用程序缓存",
|
||||
crashReports: "崩溃报告",
|
||||
systemLogs: "系统日志",
|
||||
appCache: "App 缓存",
|
||||
trash: "回收站",
|
||||
systemScan: "扫描系统",
|
||||
clean: "移除",
|
||||
selectAll: "全选",
|
||||
// Startup Apps Page
|
||||
startupTitle: "系统开机启动程序",
|
||||
addStartup: "添加开机启动程序",
|
||||
noStartup: "没有发现开机启动程序",
|
||||
app: "应用程序",
|
||||
appName: "名称",
|
||||
appComment: "简介",
|
||||
appCommand: "命令",
|
||||
add: "添加",
|
||||
cancel: "取消",
|
||||
// Services Page
|
||||
serviceTitle: "系统服务",
|
||||
noService: "没有发现系统服务",
|
||||
// Process Page
|
||||
endProcess: "结束程序",
|
||||
refresh: "刷新",
|
||||
// Uninstaller Page
|
||||
uninstallerTitle: "系统已安装程序",
|
||||
noPackage: "没有发现应用程序",
|
||||
uninstallSelecteds: "卸载所选程序",
|
||||
// Resources Page
|
||||
cpuHistory: "Cpu 历史",
|
||||
memHistory: "内存历史",
|
||||
networkHistory: "网络历史",
|
||||
swap: "交换",
|
||||
// Settings
|
||||
settings: "设置",
|
||||
appSettings: "程序设置",
|
||||
appLanguage: "选择语言",
|
||||
appTheme: "外观主题",
|
||||
// Global
|
||||
search: "搜索",
|
||||
downloadUpdate: "下载更新",
|
||||
updateMsg: "目前有更新可供下载",
|
||||
// Messages
|
||||
opFail: "操作失敗",
|
||||
sysCleanFail: "系统清理失敗",
|
||||
sysCleanSuc: "系统清理成功",
|
||||
appCacheWarning: "请注意,刪除应用程序缓存可能会造成其他问题",
|
||||
uninstallFail: "卸载失败",
|
||||
packageUninstalled: " 已卸载",
|
||||
anotherProc: "其他进程继续运行",
|
||||
changedLang: "请重启程序使更改的内容生效",
|
||||
permitted: '不允许该操作',
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
/**
|
||||
AUTHOR <allenh@mail.nctu.edu.tw>
|
||||
*/
|
||||
export default {
|
||||
// Top Menu
|
||||
dashboard: "儀表板",
|
||||
sysCleaner: "系統清理",
|
||||
startupApps: "開機啟動",
|
||||
services: "服務",
|
||||
process: "程序",
|
||||
uninstaller: "移除應用程式",
|
||||
resources: "系統資源",
|
||||
// Dashboard Page
|
||||
cpu: "CPU",
|
||||
memory: "記憶體",
|
||||
disk: "硬碟",
|
||||
download: "下載",
|
||||
upload: "上傳",
|
||||
systemInfo: "系統資訊",
|
||||
hostname: "系統名稱",
|
||||
platform: "平台",
|
||||
distribution: "系統版本",
|
||||
kernelRel: "Kernel 版本",
|
||||
cpuModel: "Cpu Model",
|
||||
cpuSpeed: "Cpu 時脈",
|
||||
cpuCores: "Cpu 核心數",
|
||||
// System Cleaner Page
|
||||
packageCache: "應用程式快取",
|
||||
crashReports: "當機報告",
|
||||
systemLogs: "系統記錄",
|
||||
appCache: "App 快取",
|
||||
trash: "垃圾桶",
|
||||
systemScan: "掃描系統",
|
||||
clean: "移除",
|
||||
selectAll: "全選",
|
||||
// Startup Apps Page
|
||||
startupTitle: "系統開機啟動程式",
|
||||
addStartup: "新增開機啟動程式",
|
||||
noStartup: "無任何開機啟動程式",
|
||||
app: "應用程式",
|
||||
appName: "名稱",
|
||||
appComment: "註解",
|
||||
appCommand: "指令",
|
||||
add: "新增",
|
||||
cancel: "取消",
|
||||
// Services Page
|
||||
serviceTitle: "系統服務",
|
||||
noService: "無任何系統服務",
|
||||
// Process Page
|
||||
endProcess: "終止程序",
|
||||
refresh: "重新整理",
|
||||
// Uninstaller Page
|
||||
uninstallerTitle: "系統已安裝程式",
|
||||
noPackage: "無任何應用程式",
|
||||
uninstallSelecteds: "移除選取項目",
|
||||
// Resources Page
|
||||
cpuHistory: "Cpu 記錄",
|
||||
memHistory: "記憶體記錄",
|
||||
networkHistory: "網路記錄",
|
||||
swap: "Swap",
|
||||
// Settings
|
||||
settings: "設定",
|
||||
appSettings: "程式設定",
|
||||
appLanguage: "選擇語言",
|
||||
appTheme: "外觀主題",
|
||||
// Global
|
||||
search: "搜尋",
|
||||
downloadUpdate: "下載更新",
|
||||
updateMsg: "目前有更新可供下載",
|
||||
// Messages
|
||||
opFail: "操作失敗",
|
||||
sysCleanFail: "系統清理失敗",
|
||||
sysCleanSuc: "系統清理成功",
|
||||
appCacheWarning: "請留意,刪除應用程式快取可能會造成其他問題",
|
||||
uninstallFail: "移除失敗",
|
||||
packageUninstalled: " 已移除",
|
||||
anotherProc: "另一程序繼續運作中",
|
||||
changedLang: "請重新啟動程式使變更生效",
|
||||
permitted: '不允許該項操作',
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
import {
|
||||
homedir
|
||||
} from 'os'
|
||||
import {
|
||||
spawnSync
|
||||
} from 'child_process'
|
||||
|
||||
export default () => {
|
||||
// Set app configs
|
||||
localStorage.crashReportsPath = "/var/crash/"
|
||||
localStorage.systemLogsPath = "/var/log/"
|
||||
localStorage.appCachePath = homedir() + "/.cache/"
|
||||
localStorage.autostartApps = homedir() + "/.config/autostart/"
|
||||
localStorage.getAllService = "systemctl list-unit-files --state=enabled,disabled --type=service | grep .service | cut -d ' ' -f1 | sed -e 's/.service//g' 2> /dev/null"
|
||||
localStorage.trashPath = homedir() + "/.local/share/Trash/files"
|
||||
localStorage.trashInfoPath = homedir() + "/.local/share/Trash/info"
|
||||
|
||||
// Package management settings
|
||||
var pm = localStorage.packageManagement
|
||||
|
||||
if (!pm) {
|
||||
var dpkg = spawnSync('dpkg', ['--version'])
|
||||
var rpm = spawnSync('rpm', ['--version'])
|
||||
var pacman = spawnSync('pacman', ['--version'])
|
||||
|
||||
if (!dpkg.error)
|
||||
localStorage.packageManagement = 'dpkg'
|
||||
else if (!rpm.error)
|
||||
localStorage.packageManagement = 'rpm'
|
||||
else if (!pacman.error)
|
||||
localStorage.packageManagement = 'pacman'
|
||||
else
|
||||
localStorage.packageManagement = 'dpkg'
|
||||
|
||||
switch (localStorage.packageManagement) {
|
||||
case 'dpkg':
|
||||
{
|
||||
localStorage.pkgCachePath = "/var/cache/apt/archives/"
|
||||
localStorage.getInstalledPackages = "dpkg --get-selections | grep -v deinstall | cut -f 1 2> /dev/null"
|
||||
localStorage.removePackage = "dpkg -r "
|
||||
}
|
||||
break;
|
||||
case 'rpm':
|
||||
{
|
||||
localStorage.pkgCachePath = ""
|
||||
localStorage.getInstalledPackages = "rpm -qa 2> /dev/null"
|
||||
localStorage.removePackage = "rpm --erase "
|
||||
}
|
||||
break;
|
||||
case 'pacman':
|
||||
{
|
||||
localStorage.pkgCachePath = "/var/cache/pacman/pkg/"
|
||||
localStorage.getInstalledPackages = "pacman -Q | cut -d ' ' -f 1 2> /dev/null"
|
||||
localStorage.removePackage = "pacman -R --noconfirm "
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
import '../../libs/amaran.min'
|
||||
|
||||
exports.prettyMemSize = (size) => {
|
||||
return (size / (Math.pow(1024, 3))).toFixed(2)
|
||||
}
|
||||
|
||||
exports.prettyDiskSize = (size) => {
|
||||
return (size / Math.pow(1000, 3)).toFixed(1)
|
||||
}
|
||||
|
||||
exports.showMessage = (message, status) => {
|
||||
let bgcolor
|
||||
switch (status) {
|
||||
case 'success':
|
||||
bgcolor = '#27ae60';
|
||||
break;
|
||||
case 'error':
|
||||
bgcolor = '#c0392b';
|
||||
break;
|
||||
default:
|
||||
bgcolor = '#f39c12';
|
||||
break;
|
||||
}
|
||||
$.amaran({
|
||||
'theme': 'colorful',
|
||||
'content': {
|
||||
bgcolor: bgcolor,
|
||||
message: message
|
||||
},
|
||||
'position': 'top right',
|
||||
'outEffect': 'slideTop',
|
||||
'delay': 5000
|
||||
})
|
||||
}
|
||||
|
||||
exports.command = (command) => `bash -c "${command}"`
|
||||
|
||||
exports.formatBytes = (bytes, decimals = 0) => {
|
||||
if (bytes == 0) return '0 Bytes'
|
||||
let k = 1024,
|
||||
dm = decimals + 1 || 3,
|
||||
sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],
|
||||
i = Math.floor(Math.log(bytes) / Math.log(k))
|
||||
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i]
|
||||
}
|
||||