PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.7.3
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.7.3
4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.10.1 3.10.10 3.10.11 3.10.12 3.10.13 3.10.14 3.10.15 3.10.2 3.10.3 3.10.4 All 148 releases
visualizer / classes / Visualizer / Gutenberg / src / Components / ChartPermissions.js

ChartPermissions.js in Visualizer – Tables & Charts Manager with Built-in AI Generator 3.7.3, at classes/Visualizer/Gutenberg/src/Components/ChartPermissions.js

188 lines 5.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * WordPress dependencies
3 */
4 const { __ } = wp.i18n;
5
6 const { apiFetch } = wp;
7
8 const {
9 Component,
10 Fragment
11 } = wp.element;
12
13 const {
14 Button,
15 PanelBody,
16 SelectControl
17 } = wp.components;
18
19 class ChartPermissions extends Component {
20 constructor() {
21 super( ...arguments );
22
23 this.getPermissionData = this.getPermissionData.bind( this );
24
25 this.state = {
26 users: [],
27 roles: []
28 };
29 }
30
31 async componentDidMount() {
32 if ( 'business' === visualizerLocalize.isPro ) {
33 const permissions = this.props.chart['visualizer-permissions'];
34
35 if ( permissions.permissions !== undefined ) {
36 if ( permissions.permissions.read !== undefined && permissions.permissions.edit !== undefined ) {
37 if ( 'users' === permissions.permissions.read || 'users' === permissions.permissions.edit ) {
38 let data = await apiFetch({ path: '/visualizer/v1/get-permission-data?type=users' });
39 this.setState({ users: data });
40 }
41
42 if ( 'roles' === permissions.permissions.read || 'roles' === permissions.permissions.edit ) {
43 let data = await apiFetch({ path: '/visualizer/v1/get-permission-data?type=roles' });
44 this.setState({ roles: data });
45 }
46 }
47 }
48 }
49 }
50
51 async getPermissionData( type ) {
52 if ( 'business' === visualizerLocalize.isPro ) {
53 if ( 'users' === type && 0 === ( this.state.users ).length ) {
54 let data = await apiFetch({ path: `/visualizer/v1/get-permission-data?type=${type}` });
55 this.setState({ users: data });
56 }
57
58 if ( 'roles' === type && 0 === ( this.state.roles ).length ) {
59 let data = await apiFetch({ path: `/visualizer/v1/get-permission-data?type=${type}` });
60 this.setState({ roles: data });
61 }
62 }
63 }
64
65 render() {
66
67 let permissions = this.props.chart['visualizer-permissions'];
68
69 return (
70 <Fragment>
71
72 { ( 'business' === visualizerLocalize.isPro ) ?
73 <PanelBody
74 title={ __( 'Who can see this chart?' ) }
75 initialOpen={ false }
76 >
77
78 <SelectControl
79 label={ __( 'Select who can view the chart on the front-end.' ) }
80 value={ permissions.permissions.read }
81 options={ [
82 { value: 'all', label: 'All Users' },
83 { value: 'users', label: 'Select Users' },
84 { value: 'roles', label: 'Select Roles' }
85 ] }
86 onChange={ e => {
87 permissions.permissions.read = e;
88 this.props.edit( permissions );
89 if ( 'users' === e || 'roles' === e ) {
90 this.getPermissionData( e );
91 }
92 } }
93 />
94
95 { ( 'users' === permissions.permissions.read || 'roles' === permissions.permissions.read ) &&
96 <SelectControl
97 multiple
98 value={ permissions.permissions['read-specific'] }
99 options={ 'users' === permissions.permissions.read && this.state.users || 'roles' === permissions.permissions.read && this.state.roles }
100 onChange={ e => {
101 permissions.permissions['read-specific'] = e;
102 this.props.edit( permissions );
103 } }
104 />
105 }
106
107 </PanelBody> :
108 <PanelBody
109 title={ __( 'Who can see this chart?' ) }
110 icon="lock"
111 initialOpen={ false }
112 >
113
114 <p>{ __( 'Upgrade your license to at least the DEVELOPER version to activate this feature!' ) }</p>
115
116 <Button
117 isPrimary
118 href={ visualizerLocalize.proTeaser }
119 target="_blank"
120 >
121 { __( 'Buy Now' ) }
122 </Button>
123
124 </PanelBody>
125 }
126
127 { ( 'business' === visualizerLocalize.isPro ) ?
128 <PanelBody
129 title={ __( 'Who can edit this chart?' ) }
130 initialOpen={ false }
131 >
132
133 <SelectControl
134 label={ __( 'Select who can edit the chart on the front-end.' ) }
135 value={ permissions.permissions.edit }
136 options={ [
137 { value: 'all', label: 'All Users' },
138 { value: 'users', label: 'Select Users' },
139 { value: 'roles', label: 'Select Roles' }
140 ] }
141 onChange={ e => {
142 permissions.permissions.edit = e;
143 this.props.edit( permissions );
144 if ( 'users' === e || 'roles' === e ) {
145 this.getPermissionData( e );
146 }
147 } }
148 />
149
150 { ( 'users' === permissions.permissions.edit || 'roles' === permissions.permissions.edit ) &&
151 <SelectControl
152 multiple
153 value={ permissions.permissions['edit-specific'] }
154 options={ 'users' === permissions.permissions.edit && this.state.users || 'roles' === permissions.permissions.edit && this.state.roles }
155 onChange={ e => {
156 permissions.permissions['edit-specific'] = e;
157 this.props.edit( permissions );
158 } }
159 />
160 }
161
162 </PanelBody> :
163 <PanelBody
164 title={ __( 'Who can edit this chart?' ) }
165 icon="lock"
166 initialOpen={ false }
167 >
168
169 <p>{ __( 'Upgrade your license to at least the DEVELOPER version to activate this feature!' ) }</p>
170
171 <Button
172 isPrimary
173 href={ visualizerLocalize.proTeaser }
174 target="_blank"
175 >
176 { __( 'Buy Now' ) }
177 </Button>
178
179 </PanelBody>
180 }
181
182 </Fragment>
183 );
184 }
185 }
186
187 export default ChartPermissions;
188