aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/services
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/services')
-rw-r--r--src/components/services/content/ServiceWebview.js44
-rw-r--r--src/components/services/content/Services.js3
-rw-r--r--src/components/services/tabs/TabBarSortableList.js22
-rw-r--r--src/components/services/tabs/TabItem.js15
-rw-r--r--src/components/services/tabs/Tabbar.js3
5 files changed, 45 insertions, 42 deletions
diff --git a/src/components/services/content/ServiceWebview.js b/src/components/services/content/ServiceWebview.js
index a71017a6e..abbf21dee 100644
--- a/src/components/services/content/ServiceWebview.js
+++ b/src/components/services/content/ServiceWebview.js
@@ -16,6 +16,7 @@ export default class ServiceWebview extends Component {
16 service: PropTypes.instanceOf(ServiceModel).isRequired, 16 service: PropTypes.instanceOf(ServiceModel).isRequired,
17 setWebviewReference: PropTypes.func.isRequired, 17 setWebviewReference: PropTypes.func.isRequired,
18 reload: PropTypes.func.isRequired, 18 reload: PropTypes.func.isRequired,
19 isAppMuted: PropTypes.bool.isRequired,
19 enable: PropTypes.func.isRequired, 20 enable: PropTypes.func.isRequired,
20 }; 21 };
21 22
@@ -58,6 +59,7 @@ export default class ServiceWebview extends Component {
58 service, 59 service,
59 setWebviewReference, 60 setWebviewReference,
60 reload, 61 reload,
62 isAppMuted,
61 enable, 63 enable,
62 } = this.props; 64 } = this.props;
63 65
@@ -90,31 +92,23 @@ export default class ServiceWebview extends Component {
90 enable={enable} 92 enable={enable}
91 /> 93 />
92 )} 94 )}
93 {service.isEnabled && ( 95 <Webview
94 <div className="services__webview-wrapper"> 96 ref={(element) => { this.webview = element; }}
95 <Webview 97 autosize
96 ref={(element) => { this.webview = element; }} 98 src={service.url}
97 99 preload="./webview/plugin.js"
98 autosize 100 partition={`persist:service-${service.id}`}
99 src={service.url} 101 onDidAttach={() => setWebviewReference({
100 preload="./webview/plugin.js" 102 serviceId: service.id,
101 partition={`persist:service-${service.id}`} 103 webview: this.webview.view,
102 104 })}
103 onDidAttach={() => setWebviewReference({ 105 onUpdateTargetUrl={this.updateTargetUrl}
104 serviceId: service.id, 106 useragent={service.userAgent}
105 webview: this.webview.view, 107 muted={isAppMuted || service.isMuted}
106 })} 108 disablewebsecurity
107 109 allowpopups
108 onUpdateTargetUrl={this.updateTargetUrl} 110 />
109 111 {statusBar}
110 useragent={service.userAgent}
111
112 disablewebsecurity
113 allowpopups
114 />
115 {statusBar}
116 </div>
117 )}
118 </div> 112 </div>
119 ); 113 );
120 } 114 }
diff --git a/src/components/services/content/Services.js b/src/components/services/content/Services.js
index 5230508f7..b1322afc2 100644
--- a/src/components/services/content/Services.js
+++ b/src/components/services/content/Services.js
@@ -26,6 +26,7 @@ export default class Services extends Component {
26 handleIPCMessage: PropTypes.func.isRequired, 26 handleIPCMessage: PropTypes.func.isRequired,
27 openWindow: PropTypes.func.isRequired, 27 openWindow: PropTypes.func.isRequired,
28 reload: PropTypes.func.isRequired, 28 reload: PropTypes.func.isRequired,
29 isAppMuted: PropTypes.bool.isRequired,
29 update: PropTypes.func.isRequired, 30 update: PropTypes.func.isRequired,
30 }; 31 };
31 32
@@ -45,6 +46,7 @@ export default class Services extends Component {
45 setWebviewReference, 46 setWebviewReference,
46 openWindow, 47 openWindow,
47 reload, 48 reload,
49 isAppMuted,
48 update, 50 update,
49 } = this.props; 51 } = this.props;
50 const { intl } = this.context; 52 const { intl } = this.context;
@@ -78,6 +80,7 @@ export default class Services extends Component {
78 setWebviewReference={setWebviewReference} 80 setWebviewReference={setWebviewReference}
79 openWindow={openWindow} 81 openWindow={openWindow}
80 reload={() => reload({ serviceId: service.id })} 82 reload={() => reload({ serviceId: service.id })}
83 isAppMuted={isAppMuted}
81 enable={() => update({ 84 enable={() => update({
82 serviceId: service.id, 85 serviceId: service.id,
83 serviceData: { 86 serviceData: {
diff --git a/src/components/services/tabs/TabBarSortableList.js b/src/components/services/tabs/TabBarSortableList.js
index 3340cbbbb..2daf55676 100644
--- a/src/components/services/tabs/TabBarSortableList.js
+++ b/src/components/services/tabs/TabBarSortableList.js
@@ -2,17 +2,8 @@ import React, { Component } from 'react';
2import { observer, PropTypes as MobxPropTypes } from 'mobx-react'; 2import { observer, PropTypes as MobxPropTypes } from 'mobx-react';
3import PropTypes from 'prop-types'; 3import PropTypes from 'prop-types';
4import { SortableContainer } from 'react-sortable-hoc'; 4import { SortableContainer } from 'react-sortable-hoc';
5import { defineMessages, intlShape } from 'react-intl';
6 5
7import TabItem from './TabItem'; 6import TabItem from './TabItem';
8import { ctrlKey } from '../../../environment';
9
10const messages = defineMessages({
11 addNewService: {
12 id: 'sidebar.addNewService',
13 defaultMessage: '!!!Add new service',
14 },
15});
16 7
17@observer 8@observer
18class TabBarSortableList extends Component { 9class TabBarSortableList extends Component {
@@ -22,29 +13,25 @@ class TabBarSortableList extends Component {
22 openSettings: PropTypes.func.isRequired, 13 openSettings: PropTypes.func.isRequired,
23 reload: PropTypes.func.isRequired, 14 reload: PropTypes.func.isRequired,
24 toggleNotifications: PropTypes.func.isRequired, 15 toggleNotifications: PropTypes.func.isRequired,
16 toggleAudio: PropTypes.func.isRequired,
25 deleteService: PropTypes.func.isRequired, 17 deleteService: PropTypes.func.isRequired,
26 disableService: PropTypes.func.isRequired, 18 disableService: PropTypes.func.isRequired,
27 enableService: PropTypes.func.isRequired, 19 enableService: PropTypes.func.isRequired,
28 } 20 }
29 21
30 static contextTypes = {
31 intl: intlShape,
32 };
33
34 render() { 22 render() {
35 const { 23 const {
36 services, 24 services,
37 setActive, 25 setActive,
38 reload, 26 reload,
39 toggleNotifications, 27 toggleNotifications,
28 toggleAudio,
40 deleteService, 29 deleteService,
41 disableService, 30 disableService,
42 enableService, 31 enableService,
43 openSettings, 32 openSettings,
44 } = this.props; 33 } = this.props;
45 34
46 const { intl } = this.context;
47
48 return ( 35 return (
49 <ul 36 <ul
50 className="tabs" 37 className="tabs"
@@ -58,13 +45,14 @@ class TabBarSortableList extends Component {
58 shortcutIndex={index + 1} 45 shortcutIndex={index + 1}
59 reload={() => reload({ serviceId: service.id })} 46 reload={() => reload({ serviceId: service.id })}
60 toggleNotifications={() => toggleNotifications({ serviceId: service.id })} 47 toggleNotifications={() => toggleNotifications({ serviceId: service.id })}
48 toggleAudio={() => toggleAudio({ serviceId: service.id })}
61 deleteService={() => deleteService({ serviceId: service.id })} 49 deleteService={() => deleteService({ serviceId: service.id })}
62 disableService={() => disableService({ serviceId: service.id })} 50 disableService={() => disableService({ serviceId: service.id })}
63 enableService={() => enableService({ serviceId: service.id })} 51 enableService={() => enableService({ serviceId: service.id })}
64 openSettings={openSettings} 52 openSettings={openSettings}
65 /> 53 />
66 ))} 54 ))}
67 <li> 55 {/* <li>
68 <button 56 <button
69 className="sidebar__add-service" 57 className="sidebar__add-service"
70 onClick={() => openSettings({ path: 'recipes' })} 58 onClick={() => openSettings({ path: 'recipes' })}
@@ -72,7 +60,7 @@ class TabBarSortableList extends Component {
72 > 60 >
73 <span className="mdi mdi-plus" /> 61 <span className="mdi mdi-plus" />
74 </button> 62 </button>
75 </li> 63 </li> */}
76 </ul> 64 </ul>
77 ); 65 );
78 } 66 }
diff --git a/src/components/services/tabs/TabItem.js b/src/components/services/tabs/TabItem.js
index 638e17d95..a7136c43f 100644
--- a/src/components/services/tabs/TabItem.js
+++ b/src/components/services/tabs/TabItem.js
@@ -28,6 +28,14 @@ const messages = defineMessages({
28 id: 'tabs.item.enableNotification', 28 id: 'tabs.item.enableNotification',
29 defaultMessage: '!!!Enable notifications', 29 defaultMessage: '!!!Enable notifications',
30 }, 30 },
31 disableAudio: {
32 id: 'tabs.item.disableAudio',
33 defaultMessage: '!!!Disable audio',
34 },
35 enableAudio: {
36 id: 'tabs.item.enableAudio',
37 defaultMessage: '!!!Enable audio',
38 },
31 disableService: { 39 disableService: {
32 id: 'tabs.item.disableService', 40 id: 'tabs.item.disableService',
33 defaultMessage: '!!!Disable Service', 41 defaultMessage: '!!!Disable Service',
@@ -50,6 +58,7 @@ class TabItem extends Component {
50 shortcutIndex: PropTypes.number.isRequired, 58 shortcutIndex: PropTypes.number.isRequired,
51 reload: PropTypes.func.isRequired, 59 reload: PropTypes.func.isRequired,
52 toggleNotifications: PropTypes.func.isRequired, 60 toggleNotifications: PropTypes.func.isRequired,
61 toggleAudio: PropTypes.func.isRequired,
53 openSettings: PropTypes.func.isRequired, 62 openSettings: PropTypes.func.isRequired,
54 deleteService: PropTypes.func.isRequired, 63 deleteService: PropTypes.func.isRequired,
55 disableService: PropTypes.func.isRequired, 64 disableService: PropTypes.func.isRequired,
@@ -67,6 +76,7 @@ class TabItem extends Component {
67 shortcutIndex, 76 shortcutIndex,
68 reload, 77 reload,
69 toggleNotifications, 78 toggleNotifications,
79 toggleAudio,
70 deleteService, 80 deleteService,
71 disableService, 81 disableService,
72 enableService, 82 enableService,
@@ -96,6 +106,11 @@ class TabItem extends Component {
96 : intl.formatMessage(messages.enableNotifications), 106 : intl.formatMessage(messages.enableNotifications),
97 click: () => toggleNotifications(), 107 click: () => toggleNotifications(),
98 }, { 108 }, {
109 label: service.isMuted
110 ? intl.formatMessage(messages.enableAudio)
111 : intl.formatMessage(messages.disableAudio),
112 click: () => toggleAudio(),
113 }, {
99 label: intl.formatMessage(service.isEnabled ? messages.disableService : messages.enableService), 114 label: intl.formatMessage(service.isEnabled ? messages.disableService : messages.enableService),
100 click: () => (service.isEnabled ? disableService() : enableService()), 115 click: () => (service.isEnabled ? disableService() : enableService()),
101 }, { 116 }, {
diff --git a/src/components/services/tabs/Tabbar.js b/src/components/services/tabs/Tabbar.js
index 5f63aed16..fd4325107 100644
--- a/src/components/services/tabs/Tabbar.js
+++ b/src/components/services/tabs/Tabbar.js
@@ -15,6 +15,7 @@ export default class TabBar extends Component {
15 reorder: PropTypes.func.isRequired, 15 reorder: PropTypes.func.isRequired,
16 reload: PropTypes.func.isRequired, 16 reload: PropTypes.func.isRequired,
17 toggleNotifications: PropTypes.func.isRequired, 17 toggleNotifications: PropTypes.func.isRequired,
18 toggleAudio: PropTypes.func.isRequired,
18 deleteService: PropTypes.func.isRequired, 19 deleteService: PropTypes.func.isRequired,
19 updateService: PropTypes.func.isRequired, 20 updateService: PropTypes.func.isRequired,
20 } 21 }
@@ -59,6 +60,7 @@ export default class TabBar extends Component {
59 disableToolTip, 60 disableToolTip,
60 reload, 61 reload,
61 toggleNotifications, 62 toggleNotifications,
63 toggleAudio,
62 deleteService, 64 deleteService,
63 } = this.props; 65 } = this.props;
64 66
@@ -71,6 +73,7 @@ export default class TabBar extends Component {
71 onSortStart={disableToolTip} 73 onSortStart={disableToolTip}
72 reload={reload} 74 reload={reload}
73 toggleNotifications={toggleNotifications} 75 toggleNotifications={toggleNotifications}
76 toggleAudio={toggleAudio}
74 deleteService={deleteService} 77 deleteService={deleteService}
75 disableService={args => this.disableService(args)} 78 disableService={args => this.disableService(args)}
76 enableService={args => this.enableService(args)} 79 enableService={args => this.enableService(args)}