-
WIBUHAX0R1337
-
/
home
/
coludnqa
/
rohihbs.com
/
wp-content
/
plugins
/
really-simple-ssl
/
settings
/
src
/
Settings
/
[ Home ]
Create Folder
Create File
Nama File / Folder
Size
Action
AutoComplete
--
NONE
Captcha
--
NONE
DataTable
--
NONE
DynamicDataTable
--
NONE
EventLog
--
NONE
GeoBlockList
--
NONE
Host
--
NONE
LearningMode
--
NONE
License
--
NONE
LimitLoginAttempts
--
NONE
MixedContentScan
--
NONE
RiskConfiguration
--
NONE
TwoFA
--
NONE
firewall
--
NONE
Button.js
1.483KB
Edit File
Delete File
Rename
CheckboxControl.js
3.936KB
Edit File
Delete File
Rename
Field.js
19.943KB
Edit File
Delete File
Rename
FieldsData.js
10.992KB
Edit File
Delete File
Rename
FilterData.js
0.576KB
Edit File
Delete File
Rename
GroupFilter.js
0.965KB
Edit File
Delete File
Rename
Help.js
1.478KB
Edit File
Delete File
Rename
Notices.js
0.764KB
Edit File
Delete File
Rename
Password.js
0.985KB
Edit File
Delete File
Rename
PermissionsPolicy.js
7.904KB
Edit File
Delete File
Rename
PostDropDown.js
2.86KB
Edit File
Delete File
Rename
PremiumOverlay.js
1.913KB
Edit File
Delete File
Rename
RolesDropDown.js
3.604KB
Edit File
Delete File
Rename
SelectControl.js
3KB
Edit File
Delete File
Rename
Settings.js
7.264KB
Edit File
Delete File
Rename
SettingsGroup.js
7.227KB
Edit File
Delete File
Rename
Support.js
1.897KB
Edit File
Delete File
Rename
import {useState, useEffect} from '@wordpress/element'; import SettingsPlaceholder from '../Placeholder/SettingsPlaceholder'; import {in_array} from '../utils/lib'; import SettingsGroup from './SettingsGroup'; import Help from './Help'; import useFields from './FieldsData'; import useMenu from '../Menu/MenuData'; import {__} from '@wordpress/i18n'; import useLetsEncryptData from '../LetsEncrypt/letsEncryptData'; import ErrorBoundary from "../utils/ErrorBoundary"; /** * Renders the selected settings * */ const Settings = () => { const [noticesExpanded, setNoticesExpanded] = useState(true); const { progress, fieldsLoaded, saveFields, fields, nextButtonDisabled, } = useFields(); const { subMenuLoaded, subMenu, selectedSubMenuItem, selectedMainMenuItem, nextMenuItem, previousMenuItem, } = useMenu(); const {setRefreshTests} = useLetsEncryptData(); const toggleNotices = () => { setNoticesExpanded(!noticesExpanded); }; const isTestsOnlyMenu = () => { const {menu_items: menuItems} = subMenu; for (const menuItem of menuItems) { if (menuItem.id === selectedSubMenuItem && menuItem.tests_only) { return true; } } return false; }; const saveData = async (isSaveAndContinueButton) => { if (!isSaveAndContinueButton && isTestsOnlyMenu()) { setRefreshTests(true); } else if (isSaveAndContinueButton) { await saveFields(true, false); } else { await saveFields(true, true); } }; const {menu_items: menuItems} = subMenu; if (!subMenuLoaded || !fieldsLoaded || menuItems.length === 0) { return ( <SettingsPlaceholder/> ); } let selectedFields = fields.filter( field => field.menu_id === selectedSubMenuItem); let groups = []; for (const selectedField of selectedFields) { if (!in_array(selectedField.group_id, groups)) { groups.push(selectedField.group_id); } } //convert progress notices to an array useful for the help blocks let notices = []; for (const notice of progress.notices) { let noticeIsLinkedToField = false; //notices that are linked to a field. Only in case of warnings. if (notice.show_with_options) { let noticeFields = selectedFields.filter( field => notice.show_with_options.includes(field.id)); noticeIsLinkedToField = noticeFields.length > 0; } //notices that are linked to a menu id. if (noticeIsLinkedToField || notice.menu_id === selectedSubMenuItem) { let help = {}; help.title = notice.output.title ? notice.output.title : false; help.label = notice.output.label; help.id = notice.id; help.text = notice.output.msg; help.url = notice.output.url; help.linked_field = notice.show_with_option; notices.push(help); } } //help items belonging to a field //if field is hidden, hide the notice as well for (const notice of selectedFields.filter( field => field.help && !field.conditionallyDisabled)) { let help = notice.help; //check if the notices array already includes this help item let existingNotices = notices.filter( noticeItem => noticeItem.id && noticeItem.id === help.id); if (existingNotices.length === 0) { // if (!help.id ) help['id'] = notice.id; notices.push(notice.help); } } let continueLink = nextButtonDisabled ? `#${selectedMainMenuItem}/${selectedSubMenuItem}` : `#${selectedMainMenuItem}/${nextMenuItem}`; // let btnSaveText = isTestsOnlyMenu() ? __('Refresh', 'really-simple-ssl') : // __('Save', 'really-simple-ssl'); let btnSaveText = __('Save', 'really-simple-ssl'); for (const menuItem of menuItems) { if (menuItem.id === selectedSubMenuItem && menuItem.tests_only) { btnSaveText = __('Refresh', 'really-simple-ssl'); } } return ( <> <div className="rsssl-wizard-settings"> {groups.map((group, i) => <SettingsGroup key={'settingsGroup-' + i} index={i} group={group} fields={selectedFields}/>) } <div className="rsssl-grid-item-footer-container"> <ScrollProgress/> <div className="rsssl-grid-item-footer"> <div className={'rsssl-grid-item-footer-buttons'}> {/*This will be shown only if current step is not the first one*/} {selectedSubMenuItem !== menuItems[0].id && <a className="rsssl-previous" href={`#${selectedMainMenuItem}/${previousMenuItem}`}> {__('Previous', 'really-simple-ssl')} </a> } <button className="button button-secondary" onClick={(e) => saveData(false)}> {btnSaveText} </button> {/*This will be shown only if current step is not the last one*/} {selectedSubMenuItem !== menuItems[menuItems.length - 1].id && <> <button disabled={nextButtonDisabled} className="button button-primary" onClick={(e) => {saveData(true);window.location.href=continueLink;} }> {__('Save and continue', 'really-simple-ssl')} </button> </> } </div> </div> </div> </div> <div className="rsssl-wizard-help"> <div className="rsssl-help-header"> <div className="rsssl-help-title rsssl-h4"> {__("Notifications", "really-simple-ssl")} </div> <div className="rsssl-help-control" onClick={ () => toggleNotices() }> {!noticesExpanded && __("Expand all","really-simple-ssl")} {noticesExpanded && __("Collapse all","really-simple-ssl")} </div> </div> { notices.map((field, i) => <ErrorBoundary key={'errorboundary-'+i} fallback={"Could not load notices"}> <Help noticesExpanded={noticesExpanded} index={i} help={field} fieldId={field.id}/> </ErrorBoundary> )} </div> </> ); }; export default Settings; export const ScrollProgress = () => { // calculate the scroll progress const [scrollProgress, setScrollProgress] = useState(0); useEffect(() => { window.addEventListener('scroll', () => { let scrollableHeight = document.documentElement.scrollHeight - document.documentElement.clientHeight; let scrollProgressPercentage = Math.round( (window.scrollY / scrollableHeight) * 100); // start at 5% and end at 100% scrollProgressPercentage = Math.max(5, scrollProgressPercentage); setScrollProgress(scrollProgressPercentage); }); }, []); // if you can't scroll return null if (document.documentElement.scrollHeight <= document.documentElement.clientHeight) { return null; } return ( // add width to span <span className={'rsssl-grid-item-footer-scroll-progress-container'}> <span className={'rsssl-grid-item-footer-scroll-progress'} style={{width: scrollProgress + '%'}}>{scrollProgress}%</span> </span> ); };
Save!!!
© 2022 - 2023 WIBUHAXOR V1 By Lutfifakee || Padang Blackhat