mirror of
https://github.com/oguzhaninan/Stacer.git
synced 2026-05-25 00:40:40 -04:00
add remove startup app btn
This commit is contained in:
@@ -16,6 +16,10 @@ body {
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
|
||||
button {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
[v-cloak] {
|
||||
display: none;
|
||||
}
|
||||
@@ -177,6 +181,20 @@ body {
|
||||
width: 500px;
|
||||
}
|
||||
|
||||
.add-startup-app {
|
||||
background-color: transparent;
|
||||
border: 1px solid #293945;
|
||||
padding: 8px 15px;
|
||||
color: #eee;
|
||||
float: right;
|
||||
margin: 10px 0px 0px 0px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.add-startup-app:hover {
|
||||
background-color: #293945;
|
||||
}
|
||||
|
||||
#uninstaller-table ul,
|
||||
#system-service-table ul,
|
||||
#startup-apps-table ul{
|
||||
@@ -190,7 +208,9 @@ body {
|
||||
#startup-apps-table ul li{
|
||||
font-size:15px;
|
||||
color:#aeb5bf;
|
||||
margin: 10px 3px;
|
||||
margin: 6px 3px;
|
||||
float: left;
|
||||
width: calc(100% - 68px);
|
||||
background-color: #293945;
|
||||
cursor: pointer;
|
||||
border-radius: 4px;
|
||||
@@ -238,12 +258,37 @@ body {
|
||||
background-image: url(../img/app-uninstall.png);
|
||||
}
|
||||
|
||||
.tdl-content li span {
|
||||
display: block;
|
||||
float: left;
|
||||
width: 320px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.remove-startup-app {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin: -2px 10px 0px 0px;
|
||||
background: transparent url(../img/app-uninstall.png) no-repeat;
|
||||
display: none;
|
||||
float: right;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.tdl-content li:hover .remove-startup-app {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#uninstaller-table .tdl-content,
|
||||
#system-service-table .tdl-content,
|
||||
#startup-apps-table .tdl-content{
|
||||
#system-service-table .tdl-content{
|
||||
height:490px;
|
||||
}
|
||||
|
||||
#startup-apps-table .tdl-content{
|
||||
height:460px;
|
||||
}
|
||||
|
||||
#installed-packages-title,
|
||||
#system-service-title,
|
||||
#startup-apps-title{
|
||||
@@ -340,12 +385,17 @@ a.loader {
|
||||
float: right;
|
||||
margin: 10px 10px 0 0;
|
||||
border-radius: 5px;
|
||||
padding: 10px 25px;
|
||||
color: #aeb5bf;
|
||||
padding: 8px 20px;
|
||||
color: #eee;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
background-color: #293945;
|
||||
border: 0;
|
||||
background-color: transparent;
|
||||
border: 1px solid #293945;
|
||||
}
|
||||
|
||||
#clean-btn:hover,
|
||||
#system-scan-btn:hover {
|
||||
background-color: #293945;
|
||||
}
|
||||
|
||||
#system-scan-btn {
|
||||
@@ -906,7 +956,7 @@ a.loader {
|
||||
/*prompt style*/
|
||||
.promptDialog {
|
||||
position: fixed;
|
||||
background-color: rgba(0,0,0,.3);
|
||||
background-color: rgba(0,0,0,.4);
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
@@ -943,12 +993,12 @@ a.loader {
|
||||
.dialog select {
|
||||
color: #ddd;
|
||||
border-radius: 4px;
|
||||
padding: 8px 15px;
|
||||
padding: 9px 15px;
|
||||
width: 280px;
|
||||
font-size: 15px;
|
||||
border:0;
|
||||
background-color: #293945;
|
||||
margin: 10px 0px;
|
||||
margin: 8px 0px;
|
||||
}
|
||||
|
||||
.dialog button {
|
||||
|
||||
26
dist/components/StartupApps.js
vendored
26
dist/components/StartupApps.js
vendored
@@ -23,22 +23,20 @@ var _propertiesReader2 = _interopRequireDefault(_propertiesReader);
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
exports.default = {
|
||||
template: '<div id="startup-apps-table">\n\t\t\t\t\t<div id="startup-apps-title">\n\t\t\t\t\t\t<span style="padding:0;">System Startup Applications</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="tdl-content scroll">\n\t\t\t\t\t\t<span class="fl w100 empty-list" v-show="! apps.length" >\n\t\t\t\t\t\t\tNo startup apps found.\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<ul v-show="apps.length">\n\t\t\t\t\t\t\t<li v-for="app in apps">\n\t\t\t\t\t\t\t\t{{ app.name }}\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" :id="app.file" :checked="app.isStart" @change="statusChange" />\n\t\t\t\t\t\t\t\t<label :for="app.file"></label>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</div>\n\t\t\t\t\t<button @click="this.showPrompt = true" class="add-startup-app">Add Startup App</button>\n\t\t\t\t\t\n\t\t\t\t\t<div class="promptDialog" v-show="showPrompt">\n\t\t\t\t\t\t<div class="dialog">\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<span>Application</span>\n\t\t\t\t\t\t\t\t<input type="text" v-model="appName" placeholder="App Name" />\n\t\t\t\t\t\t\t\t<input type="text" v-model="appComment" placeholder="App Comment" />\n\t\t\t\t\t\t\t\t<select v-model="execApp">\n\t\t\t\t\t\t\t\t\t<option selected>Choose App</option>\n\t\t\t\t\t\t\t\t\t<option v-for="app in executableApps">{{ app }}</option>\n\t\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t\t<button @click="saveApp">Add</button>\n\t\t\t\t\t\t\t\t<button @click="cancelPrompt">Cancel</button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>',
|
||||
template: '<div id="startup-apps-table">\n\t\t\t\t\t<div id="startup-apps-title">\n\t\t\t\t\t\t<span style="padding:0;">System Startup Applications ({{apps.length}})</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="tdl-content scroll">\n\t\t\t\t\t\t<span class="fl w100 empty-list" v-show="! apps.length">\n\t\t\t\t\t\t\tNo startup apps found.\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<ul v-show="apps.length">\n\t\t\t\t\t\t\t<li v-for="app in apps">\n\t\t\t\t\t\t\t\t<span>{{ app.name }}</span>\n\t\t\t\t\t\t\t\t<input type="checkbox" class="switch" :id="app.file" :checked="app.isStart" @change="statusChange" />\n\t\t\t\t\t\t\t\t<label :for="app.file"></label>\n\t\t\t\t\t\t\t\t<button :name="app.file" @click="removeApp" class="remove-startup-app"></button>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</div>\n\t\t\t\t\t<button @click="showPrompt = true" class="add-startup-app">Add Startup App</button>\n\t\t\t\t\t\n\t\t\t\t\t<div class="promptDialog" v-show="showPrompt">\n\t\t\t\t\t\t<div class="dialog">\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<span>Application</span>\n\t\t\t\t\t\t\t\t<input type="text" v-model="appName" placeholder="App Name" />\n\t\t\t\t\t\t\t\t<input type="text" v-model="appComment" placeholder="App Comment" />\n\t\t\t\t\t\t\t\t<input type="text" v-model="appExec" placeholder="Command" />\n\t\t\t\t\t\t\t\t<button @click="saveApp">Add</button>\n\t\t\t\t\t\t\t\t<button @click="cancelPrompt">Cancel</button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>',
|
||||
data: function data() {
|
||||
return {
|
||||
apps: [],
|
||||
executableApps: [],
|
||||
showPrompt: false,
|
||||
appName: '',
|
||||
appComment: '',
|
||||
execApp: 'Choose App'
|
||||
appExec: ''
|
||||
};
|
||||
},
|
||||
created: function created() {
|
||||
var _this = this;
|
||||
|
||||
this.getApps();
|
||||
this.executableApps = _fs2.default.readdirSync('/usr/bin');
|
||||
|
||||
_chokidar2.default.watch(_config.commands.autostartApps, { persistent: true, ignoreInitial: true }).on('add', function (path) {
|
||||
return _this.getApps();
|
||||
@@ -48,13 +46,25 @@ exports.default = {
|
||||
},
|
||||
|
||||
methods: {
|
||||
removeApp: function removeApp(e) {
|
||||
_fs2.default.unlinkSync(_config.commands.autostartApps + e.target.name);
|
||||
},
|
||||
saveApp: function saveApp() {
|
||||
var desktopFile = '[Desktop Entry]\n\t\t\t\t\t\t\t\tName=asdasd\n\t\t\t\t\t\t\t\tExec=Buka\n\t\t\t\t\t\t\t\tX-GNOME-Autostart-enabled=true\n\t\t\t\t\t\t\t\tType=Application\n\t\t\t\t\t\t\t\tTerminal=false\n\t\t\t\t\t\t\t\tComment=yorum';
|
||||
if (this.appName && this.appComment && this.appExec) {
|
||||
var desktopFile = '[Desktop Entry]\n\t\t\t\t\t\t\t\t\t\rName=' + this.appName + '\n\t\t\t\t\t\t\t\t\t\rExec=' + this.appExec + '\n\t\t\t\t\t\t\t\t\t\rComment=' + this.appComment + '\n\t\t\t\t\t\t\t\t\t\rType=ApplicationR\n\t\t\t\t\t\t\t\t\t\rTerminal=false\n\t\t\t\t\t\t\t\t\t\rX-GNOME-Autostart-enabled=true';
|
||||
|
||||
try {
|
||||
_fs2.default.writeFileSync(_config.commands.autostartApps + this.appName + '.desktop', desktopFile);
|
||||
} catch (err) {} finally {
|
||||
this.cancelPrompt();
|
||||
}
|
||||
} else {
|
||||
(0, _helpers.showMessage)('Do not leave required fields blank.', 'error');
|
||||
}
|
||||
},
|
||||
cancelPrompt: function cancelPrompt() {
|
||||
this.showPrompt = false;
|
||||
this.appName = this.appComment = '';
|
||||
this.execApp = 'Choose App';
|
||||
this.appName = this.appComment = this.appExec = '';
|
||||
},
|
||||
getApps: function getApps() {
|
||||
var _this2 = this;
|
||||
@@ -104,8 +114,6 @@ exports.default = {
|
||||
}
|
||||
|
||||
_fs2.default.writeFileSync(_config.commands.autostartApps + '/' + fileName, data);
|
||||
|
||||
(0, _helpers.showMessage)('Operation successfully.', 'success');
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
(0, _helpers.showMessage)('Operation failed.', 'error');
|
||||
|
||||
@@ -7,17 +7,18 @@ import properties from 'properties-reader'
|
||||
export default {
|
||||
template: `<div id="startup-apps-table">
|
||||
<div id="startup-apps-title">
|
||||
<span style="padding:0;">System Startup Applications</span>
|
||||
<span style="padding:0;">System Startup Applications ({{apps.length}})</span>
|
||||
</div>
|
||||
<div class="tdl-content scroll">
|
||||
<span class="fl w100 empty-list" v-show="! apps.length" >
|
||||
<span class="fl w100 empty-list" v-show="! apps.length">
|
||||
No startup apps found.
|
||||
</span>
|
||||
<ul v-show="apps.length">
|
||||
<li v-for="app in apps">
|
||||
{{ app.name }}
|
||||
<span>{{ app.name }}</span>
|
||||
<input type="checkbox" class="switch" :id="app.file" :checked="app.isStart" @change="statusChange" />
|
||||
<label :for="app.file"></label>
|
||||
<button :name="app.file" @click="removeApp" class="remove-startup-app"></button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -29,10 +30,7 @@ export default {
|
||||
<span>Application</span>
|
||||
<input type="text" v-model="appName" placeholder="App Name" />
|
||||
<input type="text" v-model="appComment" placeholder="App Comment" />
|
||||
<select v-model="execApp">
|
||||
<option selected>Choose App</option>
|
||||
<option v-for="app in executableApps">{{ app }}</option>
|
||||
</select>
|
||||
<input type="text" v-model="appExec" placeholder="Command" />
|
||||
<button @click="saveApp">Add</button>
|
||||
<button @click="cancelPrompt">Cancel</button>
|
||||
</div>
|
||||
@@ -42,35 +40,48 @@ export default {
|
||||
data() {
|
||||
return ({
|
||||
apps: [],
|
||||
executableApps: [],
|
||||
showPrompt: false,
|
||||
appName: '',
|
||||
appComment: '',
|
||||
execApp: 'Choose App'
|
||||
appExec: ''
|
||||
})
|
||||
},
|
||||
created() {
|
||||
this.getApps()
|
||||
this.executableApps = fs.readdirSync('/usr/bin')
|
||||
|
||||
chokidar.watch(commands.autostartApps, { persistent: true, ignoreInitial: true })
|
||||
.on('add', path => this.getApps() )
|
||||
.on('unlink', path => this.getApps() )
|
||||
},
|
||||
methods: {
|
||||
removeApp( e ) {
|
||||
fs.unlinkSync(commands.autostartApps + e.target.name)
|
||||
},
|
||||
saveApp() {
|
||||
let desktopFile = `[Desktop Entry]
|
||||
Name=asdasd
|
||||
Exec=Buka
|
||||
X-GNOME-Autostart-enabled=true
|
||||
Type=Application
|
||||
Terminal=false
|
||||
Comment=yorum`
|
||||
if ( this.appName && this.appComment && this.appExec ) {
|
||||
let desktopFile = `[Desktop Entry]
|
||||
\rName=${this.appName}
|
||||
\rExec=${this.appExec}
|
||||
\rComment=${this.appComment}
|
||||
\rType=ApplicationR
|
||||
\rTerminal=false
|
||||
\rX-GNOME-Autostart-enabled=true`
|
||||
|
||||
try {
|
||||
fs.writeFileSync(commands.autostartApps + this.appName + '.desktop', desktopFile)
|
||||
} catch(err) {
|
||||
|
||||
} finally {
|
||||
this.cancelPrompt()
|
||||
}
|
||||
}
|
||||
else {
|
||||
showMessage('Do not leave required fields blank.', 'error')
|
||||
}
|
||||
},
|
||||
cancelPrompt() {
|
||||
this.showPrompt = false
|
||||
this.appName = this.appComment = ''
|
||||
this.execApp = 'Choose App'
|
||||
this.appName = this.appComment = this.appExec = ''
|
||||
},
|
||||
getApps() {
|
||||
try {
|
||||
@@ -119,8 +130,6 @@ export default {
|
||||
}
|
||||
|
||||
fs.writeFileSync(commands.autostartApps + '/' + fileName, data)
|
||||
|
||||
showMessage('Operation successfully.', 'success')
|
||||
}
|
||||
catch( err ) {
|
||||
console.log(err)
|
||||
|
||||
Reference in New Issue
Block a user