PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.10.7
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.10.7
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.10.7, at classes/Visualizer/Gutenberg/src/Components/ChartPermissions.js

190 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 className="vz-permission-tab"
77 >
78
79 <SelectControl
80 label={ __( 'Select who can view the chart on the front-end.' ) }
81 value={ permissions.permissions.read }
82 options={ [
83 { value: 'all', label: 'All Users' },
84 { value: 'users', label: 'Select Users' },
85 { value: 'roles', label: 'Select Roles' }
86 ] }
87 onChange={ e => {
88 permissions.permissions.read = e;
89 this.props.edit( permissions );
90 if ( 'users' === e || 'roles' === e ) {
91 this.getPermissionData( e );
92 }
93 } }
94 />
95
96 { ( 'users' === permissions.permissions.read || 'roles' === permissions.permissions.read ) &&
97 <SelectControl
98 multiple
99 value={ permissions.permissions['read-specific'] }
100 options={ 'users' === permissions.permissions.read && this.state.users || 'roles' === permissions.permissions.read && this.state.roles }
101 onChange={ e => {
102 permissions.permissions['read-specific'] = e;
103 this.props.edit( permissions );
104 } }
105 />
106 }
107
108 </PanelBody> :
109 <PanelBody
110 title={ __( 'Who can see this chart?' ) }
111 icon="lock"
112 initialOpen={ false }
113 >
114
115 <p>{ __( 'Upgrade your license to at least the DEVELOPER version to activate this feature!' ) }</p>
116
117 <Button
118 isPrimary
119 href={ visualizerLocalize.proTeaser }
120 target="_blank"
121 >
122 { __( 'Upgrade Now' ) }
123 </Button>
124
125 </PanelBody>
126 }
127
128 { ( 'business' === visualizerLocalize.isPro ) ?
129 <PanelBody
130 title={ __( 'Who can edit this chart?' ) }
131 initialOpen={ false }
132 className="vz-permission-tab"
133 >
134
135 <SelectControl
136 label={ __( 'Select who can edit the chart on the front-end.' ) }
137 value={ permissions.permissions.edit }
138 options={ [
139 { value: 'all', label: 'All Users' },
140 { value: 'users', label: 'Select Users' },
141 { value: 'roles', label: 'Select Roles' }
142 ] }
143 onChange={ e => {
144 permissions.permissions.edit = e;
145 this.props.edit( permissions );
146 if ( 'users' === e || 'roles' === e ) {
147 this.getPermissionData( e );
148 }
149 } }
150 />
151
152 { ( 'users' === permissions.permissions.edit || 'roles' === permissions.permissions.edit ) &&
153 <SelectControl
154 multiple
155 value={ permissions.permissions['edit-specific'] }
156 options={ 'users' === permissions.permissions.edit && this.state.users || 'roles' === permissions.permissions.edit && this.state.roles }
157 onChange={ e => {
158 permissions.permissions['edit-specific'] = e;
159 this.props.edit( permissions );
160 } }
161 />
162 }
163
164 </PanelBody> :
165 <PanelBody
166 title={ __( 'Who can edit this chart?' ) }
167 icon="lock"
168 initialOpen={ false }
169 >
170
171 <p>{ __( 'Upgrade your license to at least the DEVELOPER version to activate this feature!' ) }</p>
172
173 <Button
174 isPrimary
175 href={ visualizerLocalize.proTeaser }
176 target="_blank"
177 >
178 { __( 'Upgrade Now' ) }
179 </Button>
180
181 </PanelBody>
182 }
183
184 </Fragment>
185 );
186 }
187 }
188
189 export default ChartPermissions;
190