PluginProbe ʕ •ᴥ•ʔ
Smash Balloon Social Post Feed – Simple Social Feeds for WordPress / 4.12.0
Smash Balloon Social Post Feed – Simple Social Feeds for WordPress v4.12.0
4.12.0 4.10.0 4.9.0 4.8.1 trunk 1.0 1.1 1.12.1 1.2.3 1.2.4 1.2.5 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.5 1.5.1 1.5.2 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.4.1 1.6.5 1.6.5.1 1.6.6 1.6.6.1 1.6.6.2 1.6.6.3 1.6.7 1.6.7.1 1.6.8 1.6.8.1 1.6.8.2 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.2.1 1.8.2.2 1.8.2.3 1.9.0 1.9.1 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.8.1 1.9.9 1.9.9.1 1.9.9.2 1.9.9.3 2.0 2.0.1 2.1 2.1.1 2.1.2 2.1.3 2.10 2.11 2.11.1 2.12 2.12.1 2.12.2 2.12.3 2.12.4 2.13 2.14 2.14.1 2.15 2.15.1 2.16 2.16.1 2.17 2.17.1 2.18 2.18.1 2.18.2 2.18.3 2.19 2.19.1 2.19.2 2.19.3 2.2 2.2.1 2.3 2.3.1 2.3.10 2.3.2 2.3.3 2.3.4 2.3.6 2.3.7 2.3.8 2.3.9 2.4 2.4.1 2.4.1.1 2.4.1.2 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.5 2.5.1 2.5.2 2.6 2.6.1 2.6.2 2.6.3 2.6.4 2.7 2.7.1 2.7.2 2.8 2.9 2.9.1 4.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.1 4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.3.0 4.3.1 4.3.2 4.3.3 4.3.4 4.7.5 4.7.6 4.7.7
custom-facebook-feed / admin / views / settings / tab / general.php
custom-facebook-feed / admin / views / settings / tab Last commit date
advanced.php 2 weeks ago feeds.php 2 weeks ago general.php 2 weeks ago translation.php 2 weeks ago translations.php 2 weeks ago
general.php
391 lines
1 <div v-if="selected === 'app-1'" id="cff-panel-general" role="tabpanel" aria-labelledby="cff-settings-tab-general" tabindex="0">
2 <div class="sb-tab-box sb-license-box clearfix">
3 <div class="tab-label">
4 <h3>{{generalTab.licenseBox.title}}</h3>
5 <p>{{generalTab.licenseBox.description}}</p>
6 </div>
7
8 <div class="cff-tab-form-field d-flex">
9 <div v-if="licenseType === 'free' && licenseStatus == 'valid'" class="cff-tab-field-inner-wrap cff-license" :class="['license-' + licenseStatus, 'license-type-' + licenseType, {'form-error': hasError, 'dev-site-license-field': isDevSite}]">
10 <div class="upgrade-info">
11 <span v-html="generalTab.licenseBox.upgradeText1"></span>
12 <span v-html="generalTab.licenseBox.upgradeText2"></span>
13 </div>
14 <span v-if="!isDevSite" class="license-status" v-html="generalTab.licenseBox.freeText"></span>
15 <div v-if="isDevSite">
16 <a :href="upgradeUrl" target="_blank" class="cff-btn cff-btn-blue cff-upgrade-license-btn">
17 <span v-html="svgIcons.rocket"></span>
18 {{genericText.upgradeToPro}}
19 </a>
20 </div>
21 <div v-else class="d-flex">
22 <div class="field-left-content">
23 <div class="sb-form-field">
24 <input type="password" name="license-key" id="license-key" class="cff-form-field" :aria-label="generalTab.licenseBox.inactiveFieldPlaceholder" :placeholder="generalTab.licenseBox.inactiveFieldPlaceholder" v-model="licenseKey">
25 </div>
26 <div class="form-info d-flex justify-between">
27
28 <span class="cff-manage-license">
29 <a :href="links.manageLicense">{{generalTab.licenseBox.manageLicense}}</a>
30 <a :href="links.manageLicense" @click.prevent.default="deactivateLicense">{{generalTab.licenseBox.deactivate}}</a>
31 </span>
32 <span>
33 <span class="test-connection" @click="testConnection()" v-if="testConnectionStatus === null">
34 {{generalTab.licenseBox.test}}
35 <span v-html="testConnectionIcon()" :class="testConnectionStatus">
36 </span>
37 </span>
38 <span v-html="testConnectionIcon()" class="test-connection" :class="testConnectionStatus" v-if="testConnectionStatus !== null">
39 </span>
40 <span class="cff-upgrade">
41 <a :href="upgradeUrl" target="_blank">{{generalTab.licenseBox.upgrade}}</a>
42 </span>
43 </span>
44 </div>
45 </div>
46 <div class="field-right-content">
47 <button type="button" class="cff-btn" v-on:click="licenseActiveAction" :class="{loading: loading, 'sb-btn-blue': licenseType === 'free'}">
48 <span v-if="loading && pressedBtnName === 'cff'" v-html="loaderSVG"></span>
49 <span class="cff-license-action-text" v-if="licenseType === 'pro'">{{generalTab.licenseBox.deactivate}}</span>
50 <span class="cff-license-action-text" v-if="licenseType === 'free'">{{generalTab.licenseBox.installPro}}</span>
51 </button>
52 </div>
53 </div>
54 </div>
55
56 <div v-else class="cff-tab-field-inner-wrap cff-license" :class="['license-' + licenseStatus, 'license-type-' + licenseType, {'form-error': hasError, 'dev-site-license-field': isDevSite}]">
57 <div class="upgrade-info">
58 <span v-html="generalTab.licenseBox.upgradeText1"></span>
59 <span v-html="generalTab.licenseBox.upgradeText2"></span>
60 </div>
61 <span v-if="!isDevSite" class="license-status" v-html="generalTab.licenseBox.freeText"></span>
62 <div class="mb-6" v-if="licenseErrorMsg !== null">
63 <span v-html="licenseErrorMsg" class="cff-error-text"></span>
64 </div>
65 <div v-if="isDevSite">
66 <a :href="upgradeUrl" target="_blank" class="cff-btn cff-btn-blue cff-upgrade-license-btn">
67 <span v-html="svgIcons.rocket"></span>
68 {{genericText.upgradeToPro}}
69 </a>
70 </div>
71 <div v-else class="d-flex">
72 <div class="field-left-content">
73 <div class="sb-form-field">
74 <input type="password" name="license-key" id="license-key" class="cff-form-field" :aria-label="generalTab.licenseBox.inactiveFieldPlaceholder" :placeholder="generalTab.licenseBox.inactiveFieldPlaceholder" v-model="licenseKey">
75 </div>
76 <div class="form-info d-flex justify-between">
77
78 <span class="cff-manage-license">
79 </span>
80 <span>
81 <span class="test-connection" @click="testConnection()" v-if="testConnectionStatus === null">
82 {{generalTab.licenseBox.test}}
83 <span v-html="testConnectionIcon()" :class="testConnectionStatus">
84 </span>
85 </span>
86 <span v-html="testConnectionIcon()" class="test-connection" :class="testConnectionStatus" v-if="testConnectionStatus !== null">
87 </span>
88 <span class="cff-upgrade">
89 <a :href="upgradeUrl" target="_blank">{{generalTab.licenseBox.upgrade}}</a>
90 </span>
91 </span>
92 </div>
93 </div>
94 <div class="field-right-content">
95 <button type="button" class="cff-btn sb-btn-blue" v-on:click="activateLicense">
96 <span v-if="loading && pressedBtnName === 'cff'" class="cff-loader-svg" v-html="loaderSVG"></span>
97 {{generalTab.licenseBox.activate}}
98 </button>
99 </div>
100 </div>
101 </div>
102
103 <div v-if="licenseType === 'pro' && licenseStatus === 'valid'" class="cff-tab-field-inner-wrap cff-license cff-license" :class="['license-' + licenseStatus, 'license-type-' + licenseType, {'form-error': hasError}]">
104 <span class="license-status" v-html="generalTab.licenseBox.activeText"></span>
105 <div class="d-flex">
106 <div class="field-left-content">
107 <div class="sb-form-field">
108 <input type="password" name="license-key" id="license-key" class="cff-form-field" :aria-label="generalTab.licenseBox.inactiveFieldPlaceholder" value="******************************" v-model="licenseKey">
109 <span class="field-icon fa fa-check-circle"></span>
110 </div>
111 <div class="form-info d-flex justify-between">
112 <span class="cff-manage-license">
113 <a :href="links.manageLicense" target="_blank">{{generalTab.licenseBox.manageLicense}}</a>
114 </span>
115 <span>
116 <span class="test-connection" @click="testConnection()" v-if="testConnectionStatus === null">
117 {{generalTab.licenseBox.test}}
118 <span v-html="testConnectionIcon()" :class="testConnectionStatus">
119 </span>
120 </span>
121 <span v-html="testConnectionIcon()" class="test-connection" :class="testConnectionStatus" v-if="testConnectionStatus !== null">
122 </span>
123
124 <span class="cff-upgrade">
125 <a :href="upgradeUrl" target="_blank">{{generalTab.licenseBox.upgrade}}</a>
126 </span>
127 </span>
128 </div>
129 </div>
130 <div class="field-right-content">
131 <button type="button" class="cff-btn" v-on:click="licenseActiveAction" :class="{loading: loading}">
132 <span v-if="loading && pressedBtnName === 'cff'" v-html="loaderSVG"></span>
133 {{generalTab.licenseBox.deactivate}}
134 </button>
135 </div>
136 </div>
137 </div>
138
139 <div v-if="licenseType === 'pro' && (
140 licenseStatus === 'inactive' ||
141 licenseStatus === 'site_inactive' ||
142 licenseStatus === 'invalid' ||
143 licenseStatus === 'deactivated' ||
144 licenseStatus === 'no_activations_left' ||
145 licenseStatus === 'expired')"
146 class="cff-tab-field-inner-wrap cff-license"
147 :class="['license-' + licenseStatus, 'license-type-' + licenseType, {'form-error': hasError}]"
148 >
149 <span class="license-status" v-html="generalTab.licenseBox.inactiveText"></span>
150 <div class="d-flex">
151 <div class="field-left-content">
152 <div class="sb-form-field">
153 <input type="password" name="license-key" id="license-key" class="cff-form-field" :aria-label="generalTab.licenseBox.inactiveFieldPlaceholder" :placeholder="generalTab.licenseBox.inactiveFieldPlaceholder" v-model="licenseKey">
154 <span class="field-icon field-icon-error fa fa-times-circle" v-if="licenseErrorMsg !== null"></span>
155 </div>
156 <div class="mb-6" v-if="licenseErrorMsg !== null">
157 <span v-html="licenseErrorMsg" class="cff-error-text"></span>
158 </div>
159 <div class="form-info d-flex justify-between">
160 <span></span>
161 <span>
162 <span class="test-connection" @click="testConnection()" v-if="testConnectionStatus === null">
163 {{generalTab.licenseBox.test}}
164 <span v-html="testConnectionIcon()" :class="testConnectionStatus">
165 </span>
166 </span>
167 <span v-html="testConnectionIcon()" class="test-connection" :class="testConnectionStatus" v-if="testConnectionStatus !== null">
168 </span>
169 <span class="cff-upgrade">
170 <a :href="upgradeUrl" target="_blank">{{generalTab.licenseBox.upgrade}}</a>
171 </span>
172 </span>
173 </div>
174 </div>
175 <div class="field-right-content">
176 <button type="button" class="cff-btn sb-btn-blue" v-on:click="activateLicense">
177 <span v-if="loading && pressedBtnName === 'cff'" v-html="loaderSVG"></span>
178 {{generalTab.licenseBox.activate}}
179 </button>
180 </div>
181 </div>
182 </div>
183
184 <!-- Extension license -->
185 <div v-if="licenseType !== 'free'" class="cff-tab-field-inner-wrap" v-for="extension in extensionsLicense" :class="[extension.name + '-license', 'license-' + extension.licenseStatus]">
186 <span class="license-status" v-html="extension.statusText"></span>
187
188 <!-- If extensions license is valid -->
189 <div class="d-flex" v-if="extension.licenseStatus !== false && extension.licenseStatus == 'valid'">
190 <div class="field-left-content">
191 <div class="sb-form-field">
192 <input type="password" class="cff-form-field" :aria-label="generalTab.licenseBox.inactiveFieldPlaceholder" value="show pass" v-model="extension.licenseKey">
193 <span v-if="extension.licenseStatus == 'valid'" class="field-icon fa fa-check-circle"></span>
194 </div>
195 <div class="form-info d-flex justify-between">
196 <span class="cff-manage-license">
197 <a :href="links.manageLicense" target="_blank">{{generalTab.licenseBox.manageLicense}}</a>
198 </span>
199 <span>
200 <span class="cff-upgrade">
201 <a :href="extension.upgradeUrl" target="_blank">{{generalTab.licenseBox.upgrade}}</a>
202 </span>
203 </span>
204 </div>
205 </div>
206 <div class="field-right-content">
207 <button type="button" class="cff-btn" v-on:click="licenseActiveAction(extension)" :class="{loading: loading}">
208 <span v-if="loading && pressedBtnName === extension.name" v-html="loaderSVG"></span>
209 <span class="cff-license-action-text" v-if="licenseType === 'pro'">{{generalTab.licenseBox.deactivate}}</span>
210 <span class="cff-license-action-text" v-if="licenseType === 'free'">{{generalTab.licenseBox.installPro}}</span>
211 </button>
212 </div>
213 </div>
214
215 <!-- If extensions license is not valid -->
216 <div class="d-flex" v-else>
217 <div class="field-left-content">
218 <div class="sb-form-field" :class="{'sb-field-error': extensionFieldHasError && pressedBtnName === extension.name}">
219 <input type="password" class="cff-form-field" :aria-label="generalTab.licenseBox.inactiveFieldPlaceholder" :placeholder="generalTab.licenseBox.inactiveFieldPlaceholder" v-model="extensionsLicenseKey[extension.name]">
220 </div>
221 <div class="form-info d-flex justify-between">
222 <span class="cff-manage-license">
223 <a :href="links.manageLicense" target="_blank">{{generalTab.licenseBox.manageLicense}}</a>
224 </span>
225 <span>
226 <span class="cff-upgrade">
227 <a :href="extension.upgradeUrl" target="_blank">{{generalTab.licenseBox.upgrade}}</a>
228 </span>
229 </span>
230 </div>
231 </div>
232 <div class="field-right-content">
233 <button @click="activateExtensionLicense(extension)" type="button" class="cff-btn cff-btn-blue" :class="{loading: loading}">
234 <span v-if="loading && pressedBtnName === extension.name" v-html="loaderSVG"></span>
235 {{generalTab.licenseBox.activate}}
236 </button>
237 </div>
238 </div>
239 </div>
240 </div>
241 </div>
242
243 <div class="sb-tab-box sb-manage-sources-box clearfix">
244 <div class="tab-label">
245 <h3>{{generalTab.manageSource.title}}</h3>
246 </div>
247 <div class="cff-tab-form-field">
248 <div class="sb-form-field">
249 <span class="help-text">
250 {{generalTab.manageSource.description}}
251 </span>
252 <div class="sb-sources-list" role="group" :aria-label="generalTab.manageSource.title">
253 <div class="sb-srcs-item sb-srcs-new" role="button" tabindex="0" :aria-label="genericText.addSource" @click.prevent.default="activateView('sourcePopup','creationRedirect')" @keydown.enter.prevent.default="activateView('sourcePopup','creationRedirect')" @keydown.space.prevent.default="activateView('sourcePopup','creationRedirect')">
254 <span class="add-new-icon">
255 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="http://www.w3.org/2000/svg">
256 <path d="M14.25 8H8.25V14H6.25V8H0.25V6H6.25V0H8.25V6H14.25V8Z" fill="#0068A0"/>
257 </svg>
258 </span>
259 <span>{{genericText.addSource}}</span>
260 </div>
261 <div class="sb-srcs-item" v-for="(source, sourceIndex) in sourcesList" :class="{expanded: expandedFeedID == sourceIndex + 1, 'sb-account-has-error' : source.error !== ''}">
262 <div class="cff-fb-srcs-item-ins">
263 <div class="sb-srcs-item-avatar">
264 <img :src="typeof source.avatar_url !== 'undefined' && source.account_type === 'group' ? source.avatar_url : 'https://graph.facebook.com/'+source.account_id+'/picture'" alt="" aria-hidden="true">
265 </div>
266 <div class="sb-srcs-item-inf">
267 <div class="sb-srcs-item-name">
268 {{source.username}}
269 <div class="sb-group-small-notice" v-if="source?.account_type === 'group'">
270 <svg width="16" height="16" viewBox="0 0 13 13" fill="none">
271 <path d="M6.50008 0.666664C3.28008 0.666664 0.666748 3.28 0.666748 6.5C0.666748 9.72 3.28008 12.3333 6.50008 12.3333C9.72008 12.3333 12.3334 9.72 12.3334 6.5C12.3334 3.28 9.72008 0.666664 6.50008 0.666664ZM7.08342 9.41667H5.91675V8.25H7.08342V9.41667ZM7.08342 7.08333H5.91675V3.58333H7.08342V7.08333Z" fill="#D72C2C"/>
272 </svg>
273 <div class="cff-fb-onbrd-tltp-elem cff-fb-onbrd-tltp-elem-2 sb-tr-2" data-active="true">
274 <div class="sb-pointer">
275 <svg width="21" height="11" viewBox="0 0 21 11" fill="none" xmlns="http://www.w3.org/2000/svg">
276 <path d="M8.59642 0.811655C9.39546 -0.135356 10.8545 -0.135357 11.6536 0.811654L20.25 11H0L8.59642 0.811655Z" fill="white"/>
277 </svg>
278 </div>
279 <div class="cff-fb-onbrd-tltp-txt sb-small-p sb-dark-text ">
280 <span v-html="genericText.deperecatedGroupText"></span>
281 </div>
282 </div>
283
284 </div>
285 </div>
286 <div class="sb-srcs-item-used">
287 <span v-html="printUsedInText(source.used_in)"></span>
288 <div v-if="source.used_in > 0" class="sb-control-elem-tltp"><div class="sb-control-elem-tltp-icon" role="button" tabindex="0" :aria-label="(genericText.viewSourceInstances || 'View where this source is used') + ': ' + source.username" v-html="svgIcons['info']" @click.prevent.default="viewSourceInstances(source)" @keydown.enter.prevent.default="viewSourceInstances(source)" @keydown.space.prevent.default="viewSourceInstances(source)"></div></div>
289 <div v-if="source.error !== '' || source.error_encryption" class="sb-source-error-wrap">
290 <svg width="13" height="13" viewBox="0 0 13 13" fill="none" xmlns="http://www.w3.org/2000/svg">
291 <path d="M6.50008 0.666664C3.28008 0.666664 0.666748 3.28 0.666748 6.5C0.666748 9.72 3.28008 12.3333 6.50008 12.3333C9.72008 12.3333 12.3334 9.72 12.3334 6.5C12.3334 3.28 9.72008 0.666664 6.50008 0.666664ZM7.08342 9.41667H5.91675V8.25H7.08342V9.41667ZM7.08342 7.08333H5.91675V3.58333H7.08342V7.08333Z" fill="#D72C2C"/>
292 </svg>
293
294 <span v-html="source.error !== '' ? genericText.errorSource : genericText.errorEncryption"></span><a href="#" @click.prevent.default="activateView('sourcePopup', 'creationRedirect')" v-html="genericText.reconnect"></a>
295 </div>
296 <div v-if="source.error === '' && typeof( source.needs_update ) !== 'undefined' && source.needs_update" class="sb-source-error-wrap">
297 <svg width="13" height="13" viewBox="0 0 13 13" fill="none" xmlns="http://www.w3.org/2000/svg">
298 <path d="M6.50008 0.666664C3.28008 0.666664 0.666748 3.28 0.666748 6.5C0.666748 9.72 3.28008 12.3333 6.50008 12.3333C9.72008 12.3333 12.3334 9.72 12.3334 6.5C12.3334 3.28 9.72008 0.666664 6.50008 0.666664ZM7.08342 9.41667H5.91675V8.25H7.08342V9.41667ZM7.08342 7.08333H5.91675V3.58333H7.08342V7.08333Z" fill="#D72C2C"/>
299 </svg>
300
301 <span v-html="genericText.updateRequired"></span><a href="#" @click.prevent.default="activateView('sourcePopup','creationRedirect')" v-html="genericText.reconnect"></a>
302 </div>
303 </div>
304 </div>
305 <div class="sb-srcs-item-actions">
306 <div class="sb-srcs-item-actions-btn sb-srcs-item-delete" role="button" tabindex="0" :aria-label="(genericText.deleteSource || 'Delete') + ': ' + source.username" @click.stop.prevent.default="openDialogBox('deleteSource', source)" @keydown.enter.prevent.default="openDialogBox('deleteSource', source)" @keydown.space.prevent.default="openDialogBox('deleteSource', source)" v-html="svgIcons['delete']"></div>
307 <div class="sb-srcs-item-actions-btn sb-srcs-item-cog" v-if="expandedFeedID != sourceIndex + 1" role="button" tabindex="0" :aria-label="(genericText.sourceSettings || 'Source settings') + ': ' + source.username" v-html="svgIcons['cog']" @click="displayFeedSettings(source, sourceIndex)" @keydown.enter.prevent.default="displayFeedSettings(source, sourceIndex)" @keydown.space.prevent.default="displayFeedSettings(source, sourceIndex)"></div>
308 <div class="sb-srcs-item-actions-btn sb-srcs-item-angle-up" v-if="expandedFeedID == sourceIndex + 1" role="button" tabindex="0" :aria-label="(genericText.collapse || 'Collapse') + ': ' + source.username" v-html="svgIcons['angleUp']" @click="hideFeedSettings()" @keydown.enter.prevent.default="hideFeedSettings()" @keydown.space.prevent.default="hideFeedSettings()"></div>
309 </div>
310 </div>
311 <div class="cff-fb-srcs-info cff-fb-fs" v-if="expandedFeedID == sourceIndex + 1">
312 <div class="cff-fb-srcs-info-item">
313 <strong>{{genericText.id}}</strong>
314 <span>{{source.account_id}}</span>
315 <div class="cff-fb-srcs-info-icon" role="button" tabindex="0" :aria-label="(genericText.copyAccountId || 'Copy account ID') + ': ' + source.username" v-html="svgIcons['copy2']" @click.prevent.default="copyToClipBoard(source.account_id)" @keydown.enter.prevent.default="copyToClipBoard(source.account_id)" @keydown.space.prevent.default="copyToClipBoard(source.account_id)"></div>
316 </div>
317 </div>
318 </div>
319
320 </div>
321 </div>
322 </div>
323 </div>
324
325
326 <div class="sb-tab-box sb-preserve-settings-box clearfix">
327 <div class="tab-label">
328 <h3>{{generalTab.preserveBox.title}}</h3>
329 </div>
330
331 <div class="cff-tab-form-field">
332 <div class="sb-form-field">
333 <label for="preserve-settings" class="cff-checkbox">
334 <input type="checkbox" name="preserve-settings" id="preserve-settings" v-model="model.general.preserveSettings" :aria-label="generalTab.preserveBox.title">
335 <span class="toggle-track">
336 <div class="toggle-indicator"></div>
337 </span>
338 </label>
339 <span class="help-text">
340 {{generalTab.preserveBox.description}}
341 </span>
342 </div>
343 </div>
344 </div>
345
346 <div class="sb-tab-box sb-import-box sb-reset-box-style clearfix">
347 <div class="tab-label">
348 <h3>{{generalTab.importBox.title}}</h3>
349 </div>
350 <div class="cff-tab-form-field">
351 <div class="sb-form-field">
352 <div class="d-flex mb-15">
353 <button type="button" class="cff-btn sb-btn-lg import-btn" id="import-btn" @click="importFile" :disabled="uploadStatus !== null">
354 <span class="icon" v-html="importBtnIcon()" :class="uploadStatus"></span>
355 {{generalTab.importBox.button}}
356 </button>
357 <div class="input-hidden">
358 <input id="import_file" type="file" value="import_file" ref="file" tabindex="-1" aria-hidden="true" v-on:change="uploadFile">
359 </div>
360 </div>
361 <span class="help-text">
362 {{generalTab.importBox.description}}
363 </span>
364 </div>
365 </div>
366 </div>
367
368 <div class="sb-tab-box sb-export-box clearfix">
369 <div class="tab-label">
370 <h3>{{generalTab.exportBox.title}}</h3>
371 </div>
372 <div class="cff-tab-form-field">
373 <div class="sb-form-field">
374 <div class="d-flex mb-15">
375 <select name="" id="cff-feeds-list" class="cff-select" v-model="exportFeed" ref="export_feed" :aria-label="generalTab.exportBox.title">
376 <option value="none" selected disabled>Select Feed</option>
377 <option v-for="feed in feeds" :value="feed.id">{{ feed.name }}</option>
378 </select>
379 <button type="button" class="cff-btn sb-btn-lg export-btn" @click="exportFeedSettings" :disabled="exportFeed === 'none'">
380 <span class="icon" v-html="exportSVG"></span>
381 {{generalTab.exportBox.button}}
382 </button>
383 </div>
384 <span class="help-text">
385 {{generalTab.exportBox.description}}
386 </span>
387 </div>
388 </div>
389 </div>
390 </div>
391