From ef55e26b49da3c194f6366a4559f1fc69aae9dfe Mon Sep 17 00:00:00 2001 From: Oguzhan Inan Date: Wed, 22 Mar 2017 20:55:15 +0300 Subject: [PATCH] add remove startup app btn --- assets/css/style.css | 70 +++++++++++++++++++++++++++++----- dist/components/StartupApps.js | 26 ++++++++----- src/components/StartupApps.js | 51 +++++++++++++++---------- 3 files changed, 107 insertions(+), 40 deletions(-) diff --git a/assets/css/style.css b/assets/css/style.css index c633e5d1..d76a5a99 100755 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -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 { diff --git a/dist/components/StartupApps.js b/dist/components/StartupApps.js index a4f66a9e..98176fc3 100644 --- a/dist/components/StartupApps.js +++ b/dist/components/StartupApps.js @@ -23,22 +23,20 @@ var _propertiesReader2 = _interopRequireDefault(_propertiesReader); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = { - template: '
\n\t\t\t\t\t
\n\t\t\t\t\t\tSystem Startup Applications\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tNo startup apps found.\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t{{ app.name }}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tApplication\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
', + template: '
\n\t\t\t\t\t
\n\t\t\t\t\t\tSystem Startup Applications ({{apps.length}})\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tNo startup apps found.\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t{{ app.name }}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tApplication\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
', 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'); diff --git a/src/components/StartupApps.js b/src/components/StartupApps.js index 6fbc4965..e3e04358 100644 --- a/src/components/StartupApps.js +++ b/src/components/StartupApps.js @@ -7,17 +7,18 @@ import properties from 'properties-reader' export default { template: `
- System Startup Applications + System Startup Applications ({{apps.length}})
- + No startup apps found.
  • - {{ app.name }} + {{ app.name }} +
@@ -29,10 +30,7 @@ export default { Application - +
@@ -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)