Version 5.0.0 release
No files matched your search
@@ -1 +1 @@
|
||||
:root{--condition-title-width:90px;--condition-line-width:3px;}.cRulesForm{max-width:100ch;}.cRulesForm__condition{display:flex;flex-wrap:wrap;gap:1em;align-items:baseline;}.cRulesForm__condition select{width:auto;}.cRulesForm__condition [type="number"]{width:12ch;}.cRulesForm__condition__title{background:var(--i-primary);color:var(--i-primary-contrast);border-radius:5px;width:90px;padding-top:.3em;padding-bottom:.3em;}.cRulesForm__conditionButtons{color:var(--i-color_primary);}.cRulesForm_conditionWrap:not( .ipsHide ) + .cRulesForm__conditionButtons{padding-top:1em;}.cRulesForm__conditionButton{color:inherit;padding:.4em 1em;border-radius:5px;font-weight:500;display:inline-flex;align-items:center;gap:.5em;}.cRulesForm__conditionButton:hover{background:var(--i-background_3);}.cRulesForm__conditionButton__icon{font-size:10px;}.cRulesForm__condition__close{position:absolute;inset-inline-end:-6px;top:-6px;width:1.8em;height:1.8em;font-size:12px;display:grid;place-content:center;border-radius:50%;background:var(--i-base-contrast_2);color:var(--i-base_1);}.cRulesForm__condition__toDesc{margin-bottom:.4em;}.cRulesForm__condition__toDesc:empty{display:none;}.cRulesForm__assign-rewards :is(select, [type="number"]){margin:0 .4em;}@media (min-width:768px){.cRulesForm__container::before{content:'';width:3px;background:var(--i-background_4);position:absolute;top:40px;bottom:40px;inset-inline-start:6em;}.cRulesForm__conditionButtons{padding-inline-start:6em;}.cRulesForm__condition--subCondition{margin-inline-start:2em;}}.ipsAchievementsBadge{display:inline-block;border-radius:4px;border:1px solid currentColor;color:var(--achievementsBadge--color, var(--i-color_hard));background:var(--achievementsBadge--background-color, var(--i-background_3));padding:.1em .6em;margin:0 .1em;font-size:95%;}[data-ips-scheme="dark"] .ipsAchievementsBadge{border-color:transparent;}.ipsAchievementsBadge--milestone{--achievementsBadge--color:#10967E;--achievementsBadge--background-color:#E5FDF9;}.ipsAchievementsBadge--location{--achievementsBadge--color:#8168BD;--achievementsBadge--background-color:#F4F0FF;}[data-ips-scheme="dark"] .ipsAchievementsBadge--milestone{--achievementsBadge--background-color:#10967E;--achievementsBadge--color:#E5FDF9;}[data-ips-scheme="dark"] .ipsAchievementsBadge--location{--achievementsBadge--background-color:#8168BD;--achievementsBadge--color:#F4F0FF;}
|
||||
:root{--condition-title-width:90px;--condition-line-width:3px;}.cRulesForm{max-width:100ch;}.cRulesForm__condition{display:flex;flex-wrap:wrap;gap:1em;align-items:baseline;}.cRulesForm__condition select{width:auto;}.cRulesForm__condition [type="number"]{width:12ch;}.cRulesForm__condition__title{background:var(--i-primary);color:var(--i-primary-contrast);border-radius:5px;width:90px;padding-top:.3em;padding-bottom:.3em;}.cRulesForm__conditionButtons{color:var(--i-color_primary);}.cRulesForm_conditionWrap:not( .ipsHide ) + .cRulesForm__conditionButtons{padding-top:1em;}.cRulesForm__conditionButton{color:inherit;padding:.4em 1em;border-radius:5px;font-weight:500;display:inline-flex;align-items:center;gap:.5em;}.cRulesForm__conditionButton:hover{background:var(--i-background_3);}.cRulesForm__conditionButton__icon{font-size:10px;}.cRulesForm__condition__close{position:absolute;inset-inline-end:-6px;top:-6px;width:1.8em;height:1.8em;font-size:12px;display:grid;place-content:center;border-radius:50%;background:var(--i-base-contrast_2);color:var(--i-base_1);}.cRulesForm__condition__toDesc{margin-bottom:.4em;}.cRulesForm__condition__toDesc:empty{display:none;}.cRulesForm__assign-rewards :is(select, [type="number"]){margin:0 .4em;}.cRulesForm [data-role="toggleFilter"] input[type="checkbox"][data-filter]{display:none;}@media (min-width:768px){.cRulesForm__container::before{content:'';width:3px;background:var(--i-background_4);position:absolute;top:40px;bottom:40px;inset-inline-start:6em;}.cRulesForm__conditionButtons{padding-inline-start:6em;}.cRulesForm__condition--subCondition{margin-inline-start:2em;}}.ipsAchievementsBadge{display:inline-block;border-radius:4px;border:1px solid currentColor;color:var(--achievementsBadge--color, var(--i-color_hard));background:var(--achievementsBadge--background-color, var(--i-background_3));padding:.1em .6em;margin:0 .1em;font-size:95%;}[data-ips-scheme="dark"] .ipsAchievementsBadge{border-color:transparent;}.ipsAchievementsBadge--milestone{--achievementsBadge--color:#10967E;--achievementsBadge--background-color:#E5FDF9;}.ipsAchievementsBadge--location{--achievementsBadge--color:#8168BD;--achievementsBadge--background-color:#F4F0FF;}[data-ips-scheme="dark"] .ipsAchievementsBadge--milestone{--achievementsBadge--background-color:#10967E;--achievementsBadge--color:#E5FDF9;}[data-ips-scheme="dark"] .ipsAchievementsBadge--location{--achievementsBadge--background-color:#8168BD;--achievementsBadge--color:#F4F0FF;}
|
||||
@@ -1 +1 @@
|
||||
.ipsControlStrip{display:flex;justify-content:end;gap:4px;position:relative;z-index:1;}.ipsControlStrip > *{flex:1 1 auto;}@media (min-width:500px){.ipsControlStrip > *{flex:0 0 auto;}}.ipsControlStrip a{display:flex;align-items:center;justify-content:center;color:inherit;min-width:2.4em;min-height:2.4em;border-radius:5px;}.ipsControlStrip_disabled{background:transparent;pointer-events:none;}.ipsControlStrip_disabled .ipsControlStrip_icon{opacity:.5;}:where(.ipsTree_row:hover .ipsControlStrip a){background:var(--i-background_3);}@media (hover:none){.ipsControlStrip a:not(:hover){background:var(--i-background_3);}}.ipsControlStrip a:hover{color:var(--i-primary-contrast);background:var(--i-primary);}:where(.ipsControlStrip:not(.ipsControlStrip_showText) .ipsControlStrip_item){border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px;}.ipsControlStrip_showText a{width:auto;padding:0 .7em;}.ipsControlStrip_item:where(:not(.ipsMenu *)){font-size:.9em;margin-inline-start:.6em;font-weight:600;}.ipsWidthHeight{background:#fff;border:1px dashed #000;margin-bottom:10px;}[dir="rtl"] .ipsWidthHeight{display:none;}.ui-icon-gripsmall-diagonal-se{background:url('../resources/core_84c1e40ea0e759e3f1505eb1788ddf3c_resizable.png');}.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;}.ui-resizable-se{cursor:nwse-resize;width:12px;height:12px;right:0px;bottom:0px;}[data-ips-scheme="light"] .ipsFieldRow_searchResult{background-color:#f4e5c4;border-color:#ebc46f;color:#7a5206;}[data-ips-scheme="dark"] .ipsFieldRow_searchResult{background-color:#534531;border-color:#786743;color:#f8e5d4;}[data-controller="ips.core.badgepreview"] svg{width:180px;}@media (min-width:1100px){.ipsBadgePicker--form{display:grid;grid-template-columns:180px 1fr 1fr 1fr;}:where(.ipsBadgePicker--form > li){grid-column:1/-1;}.ipsFieldRow--badge-creator-preview .ipsFieldRow__content{position:sticky;top:90px;}.ipsFieldRow--badge-creator{grid-column:auto;align-content:start !important;}.ipsFieldRow--badge-creator:not(.ipsHide, [hidden]){display:grid !important;grid-template-columns:1fr !important;}.ipsFieldRow--badge-creator .ipsFieldRow__label{text-align:start !important;display:flex !important;}.ipsFieldRow--badge-creator .ipsFieldRow__required{flex:0 0 auto !important;}.ipsFieldRow--badge-creator .sp-colorize{max-width:none;}.ipsFieldRow--badge-creator-preview:not([hidden], .ipsHide, #x){grid-column:1/2;grid-row-end:span 5;display:block !important;}.ipsFieldRow--badge-creator-icon{grid-column:3/5;}[data-controller="ips.core.badgepreview"] svg, .ipsFieldRow--badge-creator .sp-colorize-container{width:100%;}.ipsFieldRow--badge-creator [data-controller="core.admin.core.nodeCopySetting"]{display:none;}}.acpFormTabContent .ipsBox{border-width:0;border-radius:0;}:root{--i-layout-gutter:15px;}svg[style*="hidden"] rect[fill="#ffffff"], svg[style*="hidden"] path[fill="#ffffff"]{fill:var(--i-background_1);}svg[style*="hidden"] rect[fill="#edf0f5"]{fill:var(--i-background_1);}svg[style*="hidden"] text[fill="#444444"]{fill:var(--i-color_soft);}svg[style*="hidden"] text[fill="#222222"]{fill:var(--i-color_hard);}svg[style*="hidden"] text[fill="#000000"]{fill:var(--i-color_hard);}svg[style*="hidden"] rect[width="1"], svg[style*="hidden"] rect[height="1"]{fill:var(--i-background_3);}#elLogo{height:62px;display:flex;align-items:center;justify-content:center;}#elLogo img{width:30px;}#acpAppList .ipsNotification{top:3px;inset-inline-end:3px;}#acpAppList .acpAppList__sub .ipsNotification{position:static;margin-inline-start:1em;}#acpAppList #elHideMenu{width:16px;height:32px;line-height:32px;position:fixed;bottom:0;z-index:6000;background:var(--i-background_1);border-radius:5px 0 0 0;}#acpAppList #elHideMenu a{color:inherit !important;}body.cAdminDevModeOn #acpAppList #elHideMenu{bottom:60px;}#acpAppList #elHideMenu{inset-inline-start:54px;inset-inline-start:calc(60px - 16px);}#acpAppList #elHideMenu a{padding:0 !important;height:100% !important;}.acpSearch{background:var(--i-background_3);color:var(--i-color_root);border-radius:6px;flex:1 1 100%;display:flex;align-items:center;height:41px;margin-inline-end:10px;}.acpSearch:focus-within{background:var(--i-background_1);outline:2px solid var(--i-primary);outline-offset:-1px;}.acpSearch .fa-magnifying-glass{margin:0 1em;opacity:.6;}#acpSearchKeyword{border:0;background:transparent;max-width:100%;padding:.75em 0;color:inherit;box-shadow:none;flex:1 1 100%;outline:none;}@media (hover:none) and (max-width:1024px){#acpSearchKeyword{font-size:max(16px, 1em);}}#acpSearchKeyword::-webkit-input-placeholder{color:var(--i-color_soft);opacity:1;}#acpSearchKeyword::placeholder{color:var(--i-color_soft);opacity:1;}.acpSearch__close{display:grid;place-content:center;width:2em;height:2em;background-color:var(--i-background_1);border-radius:5px;margin:0 6px;}body:has(#acpLiveSearchResults:not([style*="block"])) .acpSearch__cloLine truncated
|
||||
.ipsControlStrip{display:flex;justify-content:end;gap:4px;position:relative;z-index:1;}.ipsControlStrip > *{flex:1 1 auto;}@media (min-width:500px){.ipsControlStrip > *{flex:0 0 auto;}}.ipsControlStrip a{display:flex;align-items:center;justify-content:center;color:inherit;min-width:2.4em;min-height:2.4em;border-radius:5px;}.ipsControlStrip_disabled{background:transparent;pointer-events:none;}.ipsControlStrip_disabled .ipsControlStrip_icon{opacity:.5;}:where(.ipsTree_row:hover .ipsControlStrip a){background:var(--i-background_3);}@media (hover:none){.ipsControlStrip a:not(:hover){background:var(--i-background_3);}}.ipsControlStrip a:hover{color:var(--i-primary-contrast);background:var(--i-primary);}:where(.ipsControlStrip:not(.ipsControlStrip_showText) .ipsControlStrip_item){border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px;}.ipsControlStrip_showText a{width:auto;padding:0 .7em;}.ipsControlStrip_item:where(:not(.ipsMenu *)){font-size:.9em;margin-inline-start:.6em;font-weight:600;}.ipsWidthHeight{background:#fff;border:1px dashed #000;margin-bottom:10px;}[dir="rtl"] .ipsWidthHeight{display:none;}.ui-icon-gripsmall-diagonal-se{background:url('../resources/core_84c1e40ea0e759e3f1505eb1788ddf3c_resizable.png');}.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;}.ui-resizable-se{cursor:nwse-resize;width:12px;height:12px;right:0px;bottom:0px;}[data-ips-scheme="light"] .ipsFieldRow_searchResult{background-color:#f4e5c4;border-color:#ebc46f;color:#7a5206;}[data-ips-scheme="dark"] .ipsFieldRow_searchResult{background-color:#534531;border-color:#786743;color:#f8e5d4;}[data-controller="ips.core.badgepreview"] svg{width:180px;}@media (min-width:1100px){.ipsBadgePicker--form{display:grid;grid-template-columns:180px 1fr 1fr 1fr;}:where(.ipsBadgePicker--form > li){grid-column:1/-1;}.ipsFieldRow--badge-creator-preview .ipsFieldRow__content{position:sticky;top:90px;}.ipsFieldRow--badge-creator{grid-column:auto;align-content:start !important;}.ipsFieldRow--badge-creator:not(.ipsHide, [hidden]){display:grid !important;grid-template-columns:1fr !important;}.ipsFieldRow--badge-creator .ipsFieldRow__label{text-align:start !important;display:flex !important;}.ipsFieldRow--badge-creator .ipsFieldRow__required{flex:0 0 auto !important;}.ipsFieldRow--badge-creator .sp-colorize{max-width:none;}.ipsFieldRow--badge-creator-preview:not([hidden], .ipsHide, #x){grid-column:1/2;grid-row-end:span 5;display:block !important;}.ipsFieldRow--badge-creator-icon{grid-column:3/5;}[data-controller="ips.core.badgepreview"] svg, .ipsFieldRow--badge-creator .sp-colorize-container{width:100%;}.ipsFieldRow--badge-creator [data-controller="core.admin.core.nodeCopySetting"]{display:none;}}.acpFormTabContent .ipsBox{border-width:0;border-radius:0;}.ipsSubmitRow{position:-webkit-sticky;position:sticky;bottom:0;z-index:3;}.ipsEditor__toolbar--main:has(.ipsEditor__anchored-panel:not([hidden])){z-index:4;}.ipsForm:has(.ipsSelectTree_active) + .ipsSubmitRow{position:static;}:root{--i-layout-gutter:15px;}svg[style*="hidden"] rect[fill="#ffffff"], svg[style*="hidden"] path[fill="#ffffff"]{fill:var(--i-background_1);}svg[style*="hidden"] rect[fill="#edf0f5"]{fill:var(--i-background_1);}svg[style*="hidden"] text[fill="#444444"]{fill:var(--i-color_soft);}svg[style*="hidden"] text[fill="#222222"]{fill:var(--i-color_hard);}svg[style*="hidden"] text[fill="#000000"]{fill:var(--i-color_hard);}svg[style*="hidden"] rect[width="1"], svg[style*="hidden"] rect[height="1"]{fill:var(--i-background_3);}#elLogo{height:62px;display:flex;align-items:center;justify-content:center;}#elLogo img{width:30px;}#acpAppList .ipsNotification{top:3px;inset-inline-end:3px;}#acpAppList .acpAppList__sub .ipsNotification{position:static;margin-inline-start:1em;}#acpAppList #elHideMenu{width:16px;height:32px;line-height:32px;position:fixed;bottom:0;z-index:6000;background:var(--i-background_1);border-radius:5px 0 0 0;}#acpAppList #elHideMenu a{color:inherit !important;}body.cAdminDevModeOn #acpAppList #elHideMenu{bottom:60px;}#acpAppList #elHideMenu{inset-inline-start:54px;inset-inline-start:calc(60px - 16px);}#acpAppList #elHideMenu a{padding:0 !important;height:100% !important;}.acpSearch{background:var(--i-background_3);color:var(--i-color_root);border-radius:6px;flex:1 1 100%;display:flex;align-items:center;height:41px;margin-inline-end:10px;}.acpSearch:focus-within{background:var(--i-background_1);outline:2px solid var(--i-primary);outline-offset:-1px;}.acpSearch .fa-magnifying-glass{margin:0 1em;opacity:.6;}#acpSearchKeyword{border:0;background:transparent;max-width:100%;padding:.75em 0;color:inherit;box-shadow:none;flex:1 1 100%;outline:none;}@media (hover:none) and (max-width:1024px){#acpSearchKeyword{font-size:max(16px, 1em);}}#acpSearchKeyword::-webkit-input-placeholder{color:var(--i-color_soft);opacity:1;}#acpSearchKeyword::placeholder{color:var(--i-color_softLine truncated
|
||||
@@ -1 +1 @@
|
||||
#elRestrictions_content li{margin-bottom:5px;}#elRestrictions_content .acpRestrictions_disabled{opacity:0.5;pointer-events:none;}#elRestrictions_root{margin:0;padding:0;}#elRestrictions_root > li{padding:15px;padding-inline-start:30px;border-bottom:1px solid #f0f0f0;}#elRestrictions_root > li > ul > li{margin-bottom:10px;}#elRestrictions_root > li > ul > li:last-child{margin-bottom:0;}[data-role="massToggle"], [data-role="toggle"]{opacity:0;transition:all 0.2s linear;}.acpRestrictions_header h2, .acpRestrictions_subHeader h3{display:inline;margin:0;}.acpRestrictions_header + ul{padding-inline-start:15px;}.acpRestrictions_header > label{font-size:15px;}.acpRestrictions_subHeader{font-weight:bold;margin:10px 0;}.acpRestrictions_subHeader h3{font-size:14px;cursor:pointer;}.acpRestrictions_subHeader:hover [data-role="massToggle"], .acpRestrictions_header:hover [data-role="toggle"]{opacity:1;}.acpRestrictions_subHeader h3:before{display:inline-block;font-family:var(--i-font-awesome);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:auto;font-weight:900;font-size:17px;content:'\f0da';margin-inline-end:5px;}[dir="rtl"] .acpRestrictions_subHeader h3:before{content:'\f0d9';}[dir="ltr"] .acpRestrictions_closed.acpRestrictions_subHeader h3:before{content:'\f0da';}[dir="rtl"] .acpRestrictions_closed.acpRestrictions_subHeader h3:before{content:'\f0d9';}.acpRestrictions_open.acpRestrictions_subHeader h3:before{content:'\f0d7';}.acpRestrictions_closed.acpRestrictions_subHeader + ul{display:none;}.ipsBadge.ipsBadge--label{min-width:60px;text-align:center;margin-inline-end:8px;}
|
||||
[data-role="massToggle"], [data-role="toggle"]{opacity:0;transition:all 0.2s linear;margin-inline-start:1em;}.acpRestrictions_header{display:flex;align-items:center;gap:.9em;}.acpRestrictions_subHeader{display:flex;align-items:center;gap:.6em;font-weight:600;margin:10px 0;}.acpRestrictions_header + ul{padding-inline-start:15px;}.acpRestrictions_header > label{font-size:15px;}.acpRestrictions_subHeader h3{font-size:14px;cursor:pointer;}.acpRestrictions_subHeader:hover [data-role="massToggle"], .acpRestrictions_header:hover [data-role="toggle"]{opacity:1;}.acpRestrictions_subHeader h3:before{display:inline-block;font-family:var(--i-font-awesome);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:auto;font-weight:900;content:'\f0da';margin-inline-end:.6em;}[dir="rtl"] .acpRestrictions_subHeader h3:before{content:'\f0d9';}[dir="ltr"] .acpRestrictions_closed.acpRestrictions_subHeader h3:before{content:'\f0da';}[dir="rtl"] .acpRestrictions_closed.acpRestrictions_subHeader h3:before{content:'\f0d9';}.acpRestrictions_open.acpRestrictions_subHeader h3:before{content:'\f0d7';}.acpRestrictions_panel ul{display:grid;gap:.6em;}.acpRestrictions_closed.acpRestrictions_subHeader + ul{display:none;}.ipsBadge.ipsBadge--label{min-width:60px;text-align:center;margin-inline-end:8px;}
|
||||
@@ -1 +1 @@
|
||||
[data-role="supportBlock"].ipsLoading{min-height:150px;}.ipsGrid--system-health [data-iconType]{font-size:1.4em;}.ipsGrid--system-health .ipsBox.elCritical{border:1px solid var(--i-color_negative);box-shadow:0 0 0 0 rgba(255, 82, 82, 1);animation:pulseCritical 1.5s infinite;}@keyframes pulseCritical{0%{box-shadow:0 0 0 0 rgba(255, 82, 82, 0.7);}85%{box-shadow:0 0 0 6px rgba(255, 82, 82, 0);}100%{box-shadow:0 0 0 1px rgba(255, 82, 82, 0);}}[data-controller="core.admin.support.contact"] .ipsField__checkboxOverflow__toggles{display:none;}#guidesForm .acpSearch{height:44px;}#guidesForm .acpSearch input:focus{box-shadow:none;}#guideSearchResults.ipsLoading{min-height:100px;}#featuredGuides ul, #guideSearchResults ul{padding-inline-start:10px;}#featuredGuides li a::before, #guideSearchResults li a::before{font-family:var(--i-font-awesome);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:auto;font-weight:900;content:'\f105';margin-inline-end:8px;}.elPhpinfo{width:100%;}@media screen and (max-width:979px){.elHealthChart .ipsChart_filters{display:none;}}.ipsDialog_content .ipsForm[data-controller="core.admin.support.contact"] > .i-background_2{margin:-15px;}
|
||||
[data-role="supportBlock"].ipsLoading{min-height:60px;}.ipsGrid--system-health [data-iconType]{font-size:1.4em;}.ipsGrid--system-health .ipsBox.elCritical{border:1px solid var(--i-color_negative);box-shadow:0 0 0 0 rgba(255, 82, 82, 1);animation:pulseCritical 1.5s infinite;}@keyframes pulseCritical{0%{box-shadow:0 0 0 0 rgba(255, 82, 82, 0.7);}85%{box-shadow:0 0 0 6px rgba(255, 82, 82, 0);}100%{box-shadow:0 0 0 1px rgba(255, 82, 82, 0);}}[data-controller="core.admin.support.contact"] .ipsField__checkboxOverflow__toggles{display:none;}#elInput_support_advice_search{background:transparent;border-width:0;box-shadow:none;outline:0;padding-inline-start:0;}#guideSearchResults.ipsLoading{min-height:100px;}#featuredGuides ul, #guideSearchResults ul{padding-inline-start:10px;}#featuredGuides li a::before, #guideSearchResults li a::before{font-family:var(--i-font-awesome);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:auto;font-weight:900;content:'\f105';margin-inline-end:8px;}.elPhpinfo{width:100%;}@media screen and (max-width:979px){.elHealthChart .ipsChart_filters{display:none;}}.ipsDialog_content .ipsForm[data-controller="core.admin.support.contact"] > .i-background_2{margin:-15px;}
|
||||
@@ -1 +1 @@
|
||||
body#elLogin{display:flex;justify-content:center;align-items:center;overflow:auto;padding-top:0;margin:0 auto;}#elLogin_box{width:98%;max-width:450px;}.cAcpLoginBox{padding-left:0;padding-right:0;}#elLogin_box .ipsFieldRow{padding:1em 1.5em;}.cAcpLoginBox .ipsTabs__panel{background:transparent;}.cAcpLoginBox_logo{text-align:center;margin:40px 0 30px;}.cAcpLoginBox_logo img{width:80%;margin:0 auto;display:block;}[data-ips-scheme="dark"] .cAcpLoginBox_logo img{filter:brightness(100);}.cAcpLoginBox_button{margin-bottom:5px;}.cAcpLoginBox input{filter:none;}#elTwoFactorAuthentication.ipsModal{position:inherit;background:none;}#elTwoFactorAuthentication{position:inherit;}#elTwoFactorAuthentication > div{box-shadow:none;border-radius:0;}
|
||||
body#elLogin{display:flex;justify-content:center;align-items:center;overflow:auto;padding-top:0;margin:0 auto;}#elLogin_box{width:98%;max-width:450px;}.cAcpLoginBox{padding-left:0;padding-right:0;}#elLogin_box .ipsFieldRow{padding:1em 1.5em;}.cAcpLoginBox .ipsTabs__panel{background:transparent;}.cAcpLoginBox_logo{text-align:center;margin:40px 0 30px;}.cAcpLoginBox_logo img{width:80%;margin:0 auto;display:block;}[data-ips-scheme="dark"] .cAcpLoginBox_logo img{filter:brightness(100);}.cAcpLoginBox_button{margin-bottom:5px;}.cAcpLoginBox input{filter:none;}#elTwoFactorAuthentication.ipsModal{position:inherit;background:none;}#elTwoFactorAuthentication{position:inherit;}#elTwoFactorAuthentication > div{box-shadow:none;}
|
||||
@@ -1 +1 @@
|
||||
[data-role="internalEmbed"]{background:var(--i-background_1);}[data-role="externalEmbed"], [data-role="internalEmbed"]{overflow:hidden;}#ipsEmbedLoading{display:none;}.unloaded #ipsEmbedLoading{background:var(--i-background_1);display:grid;grid-template-columns:42px 1fr;grid-template-rows:42px 1fr;gap:20px;padding:20px;position:fixed;inset:0;}@keyframes dummy_anim{0%, 100%{opacity:.5}50%{opacity:1}}#ipsEmbedLoading::before, #ipsEmbedLoading::after, #ipsEmbedLoading span::before, #ipsEmbedLoading span::after{display:block;content:'';background:var(--i-background_5);border-radius:6px;animation:dummy_anim 2s infinite;}#ipsEmbedLoading::before{width:100%;aspect-ratio:1;border-radius:50%;}#ipsEmbedLoading span{display:grid;gap:.5em;}#ipsEmbedLoading span::before{width:80%;}#ipsEmbedLoading span::after{width:60%;}#ipsEmbedLoading::after{grid-column:span 2;}#ipsEmbed{opacity:0.0001;overflow:hidden;}#ipsEmbed .twitter-tweet{border-radius:15px;overflow:hidden;}
|
||||
[data-role="internalEmbed"]{background:var(--i-background_1) !important;}[data-role="externalEmbed"], [data-role="internalEmbed"]{overflow:hidden;}#ipsEmbedLoading{display:none;}.unloaded #ipsEmbedLoading{background:var(--i-background_1);display:grid;grid-template-columns:42px 1fr;grid-template-rows:42px 1fr;gap:20px;padding:20px;position:fixed;inset:0;}@keyframes dummy_anim{0%, 100%{opacity:.5}50%{opacity:1}}#ipsEmbedLoading::before, #ipsEmbedLoading::after, #ipsEmbedLoading span::before, #ipsEmbedLoading span::after{display:block;content:'';background:var(--i-background_5);border-radius:6px;animation:dummy_anim 2s infinite;}#ipsEmbedLoading::before{width:100%;aspect-ratio:1;border-radius:50%;}#ipsEmbedLoading span{display:grid;gap:.5em;}#ipsEmbedLoading span::before{width:80%;}#ipsEmbedLoading span::after{width:60%;}#ipsEmbedLoading::after{grid-column:span 2;}#ipsEmbed{opacity:0.0001;overflow:hidden;}#ipsEmbed .twitter-tweet{border-radius:15px;overflow:hidden;}
|
||||
@@ -1 +1 @@
|
||||
*{margin:0;padding:0;}*, ::before, ::after{box-sizing:border-box;min-width:0;min-height:0;}html{-webkit-text-size-adjust:100%;accent-color:var(--i-primary);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;}hr{color:inherit;}hr, iframe, fieldset{border-width:0;}iframe:where([src*="youtube."], [src*="youtube-nocookie."], [src*="vimeo."]){width:100%;height:auto;aspect-ratio:16/9;}img, svg{border:0;display:inline-block;max-width:100%;height:auto;vertical-align:top;}:where(img::before){display:block;overflow:hidden;height:100%;}h1, h2, h3, h4, h5, h6{font-size:inherit;font-weight:inherit;}b, strong{font-weight:bolder;}menu, ol, ul, summary{list-style-type:none;}blockquote, q{quotes:none;}table{border-collapse:collapse;border-spacing:0;}input, textarea, select, button{background:none;border:0;color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;text-align:inherit;text-transform:inherit;}textarea, select{-webkit-appearance:none;appearance:none;box-shadow:none;}textarea{display:block;width:100%;}select{cursor:pointer;}[type="search"]{-webkit-appearance:none;appearance:none;}[type="date"], [type="time"]{accent-color:currentColor;}::placeholder{color:inherit;opacity:.5;}button, [type="submit"], summary{-webkit-appearance:none;appearance:none;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;}button{text-align:inherit;}details summary::-webkit-details-marker{display:none;}:focus{outline-color:transparent;}:focus-visible{outline:var(--i-outline-width) var(--i-outline-style) var(--i-outline-color);outline-offset:var(--i-outline-offset);}address{font-style:inherit;}dialog{border-width:0;margin:auto;}dialog:not([open]){display:none !important;}.sr-only, .ipsInvisible{border:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:1px !important;}[hidden]{display:none !important;}:root{--light__i-primary:hsl(220 85% 50%);--light__i-primary-relative-l:33;--light__i-secondary:hsl(220 49% 13%);--light__i-secondary-relative-l:10;--light__i-base:oklch(calc(var(--light__i-base-l) * 1%) calc(var(--light__i-base-c) * 1%) var(--light__i-base-h));--light__i-base-l:100;--light__i-base-c:30;--light__i-base-h:260;--dark__i-primary:hsl(215 85% 50%);--dark__i-primary-relative-l:37;--dark__i-secondary:hsl(215 18% 26%);--dark__i-secondary-relative-l:24;--dark__i-base:oklch(calc(var(--dark__i-base-l) * 1%) calc(var(--dark__i-base-c) * 1%) var(--dark__i-base-h));--dark__i-base-l:30;--dark__i-base-c:20;--dark__i-base-h:260;--set__i-default-scheme:system;--set__i-change-scheme:1;--set__i-logo--fo-fa:var(--i-font-family);--set__i-logo--fo-we:500;--set__i-desktop-logo--fo-si:18;--set__i-sidebar-ui-logo--fo-si:20;--set__i-mobile-logo--fo-si:18;--set__logo-light:;--set__logo-dark:;--set__i-logo--he:70;--set__i-sidebar-ui-logo--he:70;--set__mobile-logo-light:;--set__mobile-logo-dark:;--set__i-mobile-logo--he:70;--set__i-font-family:var(--i-font-family_system-ui);--set__i-font-size:14;--set__i-user-content-font-size:110;--set__i-position-logo:4;--set__i-position-navigation:5;--set__i-position-user:6;--set__i-position-breadcrumb:7;--set__i-position-search:9;--set__i-header-top--he:50;--set__i-header-primary--he:100;--set__i-header-secondary--he:50;--set__i-nav-bar-icons:0;--set__i-mobile-header--he:60;--set__i-sidebar-ui-header--he:65;--set__i-sidebar-width:350;--set__i-flip-sidebar:0;--set__i-sticky-sidebar:1;--set__i-layout-width:1500;--set__i-avatar-radius:1;--set__i-design-border:1;--set__i-design-radius:8;--set__i-design-shadow:2;--set__i-link-panels:1;--set__i-mobile-icons-location:footer;--set__i-mobile-footer-labels:1;--light__i-color_root:var(--i-base-contrast_3);--dark__i-color_root:var(--i-base-contrast_4);--light__i-color_soft:var(--i-base-contrast_1);--dark__i-color_soft:var(--i-base-contrast_2);--light__i-color_hard:var(--i-base-contrast_6);--dark__i-color_hard:var(--i-base-contrast_6);--light__i-link--co:var(--i-base-contrast_5);--dark__i-link--co:var(--i-base-contrast_5);--light__i-link-hover--co:var(--i-color_primary);--dark__i-link-hover--co:var(--i-color_primary);--light__i-headerTop--ba-co:var(--i-base-contrast_5);--dark__i-headerTop--ba-co:var(--i-base_3);--light__i-headerTop--co:var(--i-base_1);--dark__i-headerTop--co:var(--i-base-contrast_6);--light__i-headerPrimary--ba-co:var(--i-base-contrast_4);--dark__i-headerPrimary--ba-co:var(--i-base_3);--light__i-headerPrimary--co:var(--i-base_1);--dark__i-headerPrimary--co:var(--i-base-contrast_6);--light__i-headerSecondary--ba-co:var(--i-base-contrast_5);--dark__i-headerSecondary--ba-co:var(--i-base_4);--light__i-headerSecondary--co:var(--i-base_1);--dark__i-headerSecondary--co:var(--i-base-contrast_5);--light__i-headerMobile--ba-co:var(--i-base_1);--dark__i-headerMobile--ba-Line truncated
|
||||
*{margin:0;padding:0;}*, ::before, ::after{box-sizing:border-box;min-width:0;min-height:0;}html{-webkit-text-size-adjust:100%;accent-color:var(--i-primary);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;}hr{color:inherit;}hr, iframe, fieldset{border-width:0;}iframe:where([src*="youtube."], [src*="youtube-nocookie."], [src*="vimeo."]){width:100%;height:auto;aspect-ratio:16/9;}img, svg{border:0;display:inline-block;max-width:100%;height:auto;vertical-align:top;}:where(img::before){display:block;overflow:hidden;height:100%;}h1, h2, h3, h4, h5, h6{font-size:inherit;font-weight:inherit;}b, strong{font-weight:bolder;}menu, ol, ul, summary{list-style-type:none;}blockquote, q{quotes:none;}table{border-collapse:collapse;border-spacing:0;}input, textarea, select, button{background:none;border:0;color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;text-align:inherit;text-transform:inherit;}textarea, select{-webkit-appearance:none;appearance:none;box-shadow:none;}textarea{display:block;width:100%;}select{cursor:pointer;}[type="search"]{-webkit-appearance:none;appearance:none;}[type="date"], [type="time"]{accent-color:currentColor;}::placeholder{color:inherit;opacity:.5;}button, [type="submit"], summary{-webkit-appearance:none;appearance:none;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;}button{text-align:inherit;}details summary::-webkit-details-marker{display:none;}:focus{outline-color:transparent;}:focus-visible{outline:var(--i-outline-width) var(--i-outline-style) var(--i-outline-color);outline-offset:var(--i-outline-offset);}address{font-style:inherit;}dialog{border-width:0;margin:auto;}dialog:not([open]){display:none !important;}.sr-only, .ipsInvisible{border:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:1px !important;}[hidden]{display:none !important;}:root{--light__i-primary:hsl(220 85% 50%);--light__i-primary-relative-l:33;--light__i-secondary:hsl(220 49% 13%);--light__i-secondary-relative-l:10;--light__i-base:oklch(calc(var(--light__i-base-l) * 1%) calc(var(--light__i-base-c) * 1%) var(--light__i-base-h));--light__i-base-l:100;--light__i-base-c:30;--light__i-base-h:260;--dark__i-primary:hsl(215 85% 50%);--dark__i-primary-relative-l:37;--dark__i-secondary:hsl(215 18% 26%);--dark__i-secondary-relative-l:24;--dark__i-base:oklch(calc(var(--dark__i-base-l) * 1%) calc(var(--dark__i-base-c) * 1%) var(--dark__i-base-h));--dark__i-base-l:30;--dark__i-base-c:20;--dark__i-base-h:260;--set__i-default-scheme:system;--set__i-change-scheme:1;--set__i-logo--fo-fa:var(--i-font-family);--set__i-logo--fo-we:500;--set__i-desktop-logo--fo-si:18;--set__i-sidebar-ui-logo--fo-si:20;--set__i-mobile-logo--fo-si:18;--set__logo-light:;--set__logo-dark:;--set__i-logo--he:70;--set__i-sidebar-ui-logo--he:70;--set__mobile-logo-light:;--set__mobile-logo-dark:;--set__i-mobile-logo--he:70;--set__i-font-family:var(--i-font-family_system-ui);--set__i-font-size:14;--set__i-user-content-font-size:110;--set__i-position-logo:4;--set__i-position-navigation:5;--set__i-position-user:6;--set__i-position-breadcrumb:7;--set__i-position-search:9;--set__i-header-top--he:50;--set__i-header-primary--he:100;--set__i-header-secondary--he:50;--set__i-nav-bar-icons:0;--set__i-mobile-header--he:60;--set__i-sidebar-ui-header--he:65;--set__i-sidebar-width:350;--set__i-flip-sidebar:0;--set__i-sticky-sidebar:1;--set__i-layout-width:1500;--set__i-avatar-radius:1;--set__i-design-border:1;--set__i-design-radius:8;--set__i-design-shadow:2;--set__i-link-panels:1;--set__i-mobile-icons-location:footer;--set__i-mobile-footer-labels:1;--light__i-color_root:var(--i-base-contrast_3);--dark__i-color_root:var(--i-base-contrast_4);--light__i-color_soft:var(--i-base-contrast_1);--dark__i-color_soft:var(--i-base-contrast_2);--light__i-color_hard:var(--i-base-contrast_6);--dark__i-color_hard:var(--i-base-contrast_6);--light__i-link--co:var(--i-base-contrast_5);--dark__i-link--co:var(--i-base-contrast_5);--light__i-link-hover--co:var(--i-color_primary);--dark__i-link-hover--co:var(--i-color_primary);--light__i-headerTop--ba-co:var(--i-base-contrast_5);--dark__i-headerTop--ba-co:var(--i-base_3);--light__i-headerTop--co:var(--i-base_1);--dark__i-headerTop--co:var(--i-base-contrast_6);--light__i-headerPrimary--ba-co:var(--i-base-contrast_4);--dark__i-headerPrimary--ba-co:var(--i-base_3);--light__i-headerPrimary--co:var(--i-base_1);--dark__i-headerPrimary--co:var(--i-base-contrast_6);--light__i-headerSecondary--ba-co:var(--i-base-contrast_5);--dark__i-headerSecondary--ba-co:var(--i-base_4);--light__i-headerSecondary--co:var(--i-base_1);--dark__i-headerSecondary--co:var(--i-base-contrast_5);--light__i-headerMobile--ba-co:var(--i-base_1);--dark__i-headerMobile--ba-Line truncated
|
||||
@@ -1 +1 @@
|
||||
.ipsData--download-category{--icon:"\f019";}.ipsCarousel--downloads-file-screenshots{--i-carousel--pa:2em;--i-column-gap:1em;}.ipsCarousel--downloads-file-screenshots + .ipsCarouselNav{margin-bottom:1em;}.cFilePrice{color:var(--i-color_secondary);text-transform:uppercase;font-weight:500;}#elDownloadStatsLatest > .ipsWidget_latestItem{margin-inline-start:85px;}#elDownloadsSubmit_progress > .ipsProgress{height:32px;}#elDownloadsSubmit .ipsUploader__row{border:1px solid var(--i-background_3);}.cDownloadsPrimaryRadio{background:var(--i-background_1);border-radius:40px;position:absolute;top:110px;inset-inline-start:1em;padding:.3em .8em .3em .3em;font-size:max(11px, .8em) !important;}.ipsUploader__row.ipsAttach_error .cDownloadsPrimaryRadio{display:none;}#elURLFiles, #elImportFiles, #elURLScreenshots{position:relative;}.cDownloadsLinkedScreenshotItem{margin-bottom:5px;}.cDownloadsLinkedScreenshotItem_block{display:inline-block;width:20px;text-align:center;margin-inline-start:5px;}.cDownloadsLinkedScreenshotItem_block i{position:relative;top:1px;}
|
||||
.ipsData--download-category{--icon:"\f019";}.ipsCarousel--downloads-file-screenshots{--i-carousel--pa:2em;--i-column-gap:1em;}.ipsCarousel--downloads-file-screenshots + .ipsCarouselNav{margin-bottom:1em;}.cFilePrice{color:var(--i-color_secondary);text-transform:uppercase;font-weight:500;}#elDownloadStatsLatest > .ipsWidget_latestItem{margin-inline-start:85px;}#elDownloadsSubmit_progress > .ipsProgress{height:32px;}#elDownloadsSubmit .ipsUploader__row{border:1px solid var(--i-background_3);}.cDownloadsPrimaryRadio{background:var(--i-background_1);border-radius:40px;position:absolute;top:110px;inset-inline-start:1em;padding:.3em .8em .3em .3em;font-size:max(11px, .8em) !important;}.ipsUploader__row.ipsAttach_error .cDownloadsPrimaryRadio{display:none;}#elURLFiles, #elImportFiles, #elURLScreenshots{position:relative;}
|
||||
@@ -1 +1 @@
|
||||
#acpPageHeader.cNexusSupportHeader{padding-top:15px;}#acpPageHeader.cNexusSupportHeader .ipsUserPhoto{width:60%;margin-left:auto;margin-right:auto;}#acpPageHeader.cNexusSupportHeader .acpToolbar{margin-top:-30px;}#elCustomerIncome{width:100%;height:55px;background:rgba(0,0,0,0.03);text-align:center;font-size:18px;color:rgba(0,0,0,0.3);}#elCustomerStanding{display:flex;flex-wrap:wrap;}#elCustomerStanding > div{flex-grow:1;min-width:150px;margin-bottom:5px;}.cCustomerStanding_value{display:block;margin-bottom:5px;font-size:24px;}.cCustomerStanding_value + .ipsMinorTitle{font-weight:400;color:var(--i-color_soft);}.cCustomerStanding_positive{color:var(--i-color_positive);}.cCustomerStanding_negative{color:var(--i-color_negative);}.cCustomerStanding_arrow{width:18px;height:18px;line-height:18px;display:inline-block;font-size:9px;text-align:center;vertical-align:middle;border-radius:14px;color:#fff;margin-top:-5px;}.cCustomerStanding_positive .cCustomerStanding_arrow{background:var(--i-background_positive);}.cCustomerStanding_negative .cCustomerStanding_arrow{background:var(--i-background_negative);}.cCustomerStanding_progressIndicator{position:relative;}.cCustomerStanding_progress{background:rgb(52,128,187);background:linear-gradient(to right, rgba(52,128,187,1) 0%,rgba(102,187,106,1) 92%);height:16px;border:1px solid rgba(0,0,0,0.1);width:100%;}.cCustomerStanding_markers{margin:-5px -5px 0;height:18px;}.cCustomerStanding_markers > span{font-size:18px;color:#000;position:absolute;width:30px;margin-inline-start:-15px;text-align:center;}.cCustomerStanding_markers span.cCustomerStanding_markerAvg{color:#919191;}.cCustomerStanding_markers > span span{font-size:10px;margin-top:8px;position:relative;top:-10px;}.cCustomerCredit.i-background_positive .ipsMinorTitle{color:rgba(255,255,255,0.6);}.cCustomerCredit.i-background_positive a{color:#fff;}.cCustomerOther{overflow:hidden;}.cCustomerOther .cCustomerOther_icon{font-size:20px;line-height:1.2;}.cCustomerOther .ipsPhotoPanel.ipsPhotoPanel--tiny > div{margin-inline-start:30px !important;}.cCustomerOther .cCustomerOther_list{height:90px;margin-top:5px;}.cCustomerOther li{margin-top:5px;position:relative;}.cCustomerOther li:first-child{margin-top:0;}.cCustomerOther ul li:nth-child(2):after{position:absolute;inset:0;content:'';display:block;background:linear-gradient(to bottom, rgba(250,250,250,0) 0%,rgba(250,250,250,1) 100%);}.ipsApp .cCustomerOther .ipsButton{line-height:26px;}.ipsTabs--customerTabs .ipsTabs__tab{position:relative;}.ipsTabs--customerTabs .ipsTabs__tab .ipsNotification{inset-inline-end:auto;inset-inline-start:50%;top:0;margin-inline-start:3px;}@media screen and (max-width:767px){html[dir] .ipsTabs--customerTabs .ipsTabs__tab .ipsNotification{position:relative;top:0;left:0;right:0;}}.cNexusCustomerInvoice{display:block;margin-bottom:5px;font-size:20px;}.ipsApp .cNotesBox.ipsBox{background-color:#FFF8E1;color:#514930;border-color:#ded5ba;}.ipsApp .cNotesBox.ipsBox .ipsBox__header{background:#FFECB3;color:#514930;border-color:#ded5ba;}.ipsApp .cNotesBox.ipsBox .ipsBox__header a{color:#c5651c;}.cNotesBox .i-color_soft{color:inherit;opacity:.8;}.ipsApp .cCustomerNotes_none{background:transparent;padding-left:0;padding-right:0;}.cCustomerAddresses .ipsControlStrip{float:none;margin-top:10px;}.cNexusCards li{width:250px;height:155px;border-radius:8px;margin-bottom:15px;background:#617178;background:linear-gradient(135deg, #617178 0%,#859ca5 100%);position:relative;}.cNexusCards .cNexusCards_type.cPayment{position:absolute;bottom:10px;inset-inline-end:10px;width:60px;height:36px;}.cNexusCards .cNexusCards_number, .cNexusCards .cNexusCards_exp, .cNexusCards .cNexusCards_name{color:#f7f7f7;font-weight:bold;text-shadow:0px 1px 0px rgba(0,0,0,0.8);}.cNexusCards .cNexusCards_number, .cNexusCards .cNexusCards_exp{position:absolute;inset-inline-start:20px;font-family:'courier new', monospace;}.cNexusCards .cNexusCards_number{bottom:55px;font-size:18px;}.cNexusCards .cNexusCards_name{margin-top:75px;margin-left:10px;margin-right:10px;font-size:14px;width:230px;text-overflow:ellipsis;overflow:hidden;}.cNexusCards .cNexusCards_expTitle{font-size:9px;color:#000;text-transform:uppercase;position:absolute;bottom:30px;inset-inline-start:20px;}.cNexusCards .cNexusCards_exp{bottom:15px;}.cNexusCards .cNexusCards_delete{position:absolute;inset-inline-end:-5px;top:-5px;background:#333;color:#fff;width:30px;height:30px;border-radius:30px;font-size:20px;line-height:26px;text-align:center;}.cPayment{display:inline-block;width:66px;height:42px;border:1px solid rgba(0,0,0,0.1);line-height:40px;white-space:nowrap;font-size:9px;font-weight:bold;padding:0 5px;text-align:center;text-transform:uppercase;text-overflow:ellipsis;overflow:hidden;background-color:#f8f8f8;}.cPayment_cardTypeList{margin-inline-start:345px;}.cPayment_visa, .cPayment_mastercard, .cPayment_american_express, .cPayment_discover, .cPayment_diners_club, .cPayment_jcb, .cPayment_paypal, .cPayment_venmo{text-indent:100%;Line truncated
|
||||
#acpPageHeader.cNexusSupportHeader{padding-top:15px;}#acpPageHeader.cNexusSupportHeader .ipsUserPhoto{width:60%;margin-left:auto;margin-right:auto;}#acpPageHeader.cNexusSupportHeader .acpToolbar{margin-top:-30px;}#elCustomerIncome{width:100%;height:55px;background:rgba(0,0,0,0.03);text-align:center;font-size:18px;color:rgba(0,0,0,0.3);}#elCustomerStanding{display:flex;flex-wrap:wrap;}#elCustomerStanding > div{flex-grow:1;min-width:150px;margin-bottom:5px;}.cCustomerStanding_value{display:block;margin-bottom:5px;font-size:24px;}.cCustomerStanding_value + .ipsMinorTitle{font-weight:400;color:var(--i-color_soft);}.cCustomerStanding_positive{color:var(--i-color_positive);}.cCustomerStanding_negative{color:var(--i-color_negative);}.cCustomerStanding_arrow{width:18px;height:18px;line-height:18px;display:inline-block;font-size:9px;text-align:center;vertical-align:middle;border-radius:14px;color:#fff;margin-top:-5px;}.cCustomerStanding_positive .cCustomerStanding_arrow{background:var(--i-background_positive);}.cCustomerStanding_negative .cCustomerStanding_arrow{background:var(--i-background_negative);}.cCustomerStanding_progressIndicator{position:relative;}.cCustomerStanding_progress{background:rgb(52,128,187);background:linear-gradient(to right, rgba(52,128,187,1) 0%,rgba(102,187,106,1) 92%);height:16px;border:1px solid rgba(0,0,0,0.1);width:100%;}.cCustomerStanding_markers{margin:-5px -5px 0;height:18px;}.cCustomerStanding_markers > span{font-size:18px;color:#000;position:absolute;width:30px;margin-inline-start:-15px;text-align:center;}.cCustomerStanding_markers span.cCustomerStanding_markerAvg{color:#919191;}.cCustomerStanding_markers > span span{font-size:10px;margin-top:8px;position:relative;top:-10px;}.cCustomerCredit.i-background_positive .ipsMinorTitle{color:rgba(255,255,255,0.6);}.cCustomerCredit.i-background_positive a{color:#fff;}.cCustomerOther{overflow:hidden;}.cCustomerOther .cCustomerOther_icon{font-size:20px;line-height:1.2;}.cCustomerOther .cCustomerOther_list{height:90px;margin-top:5px;}.cCustomerOther li{margin-top:5px;position:relative;}.cCustomerOther li:first-child{margin-top:0;}.cCustomerOther ul li:nth-child(2):after{position:absolute;inset:0;content:'';display:block;background:linear-gradient(to bottom, rgba(250,250,250,0) 0%,rgba(250,250,250,1) 100%);}.ipsApp .cCustomerOther .ipsButton{line-height:26px;}.ipsTabs--customerTabs .ipsTabs__tab{position:relative;}.ipsTabs--customerTabs .ipsTabs__tab .ipsNotification{inset-inline-end:auto;inset-inline-start:50%;top:0;margin-inline-start:3px;}@media screen and (max-width:767px){html[dir] .ipsTabs--customerTabs .ipsTabs__tab .ipsNotification{position:relative;top:0;left:0;right:0;}}.cNexusCustomerInvoice{display:block;margin-bottom:5px;font-size:20px;}.ipsApp .cNotesBox.ipsBox{background-color:#FFF8E1;color:#514930;border-color:#ded5ba;}.ipsApp .cNotesBox.ipsBox .ipsBox__header{background:#FFECB3;color:#514930;border-color:#ded5ba;}.ipsApp .cNotesBox.ipsBox .ipsBox__header a{color:#c5651c;}.cNotesBox .i-color_soft{color:inherit;opacity:.8;}.ipsApp .cCustomerNotes_none{background:transparent;padding-left:0;padding-right:0;}.cCustomerAddresses .ipsControlStrip{float:none;margin-top:10px;}.cNexusCards li{width:250px;height:155px;border-radius:8px;margin-bottom:15px;background:#617178;background:linear-gradient(135deg, #617178 0%,#859ca5 100%);position:relative;}.cNexusCards .cNexusCards_type.cPayment{position:absolute;bottom:10px;inset-inline-end:10px;width:60px;height:36px;}.cNexusCards .cNexusCards_number, .cNexusCards .cNexusCards_exp, .cNexusCards .cNexusCards_name{color:#f7f7f7;font-weight:bold;text-shadow:0px 1px 0px rgba(0,0,0,0.8);}.cNexusCards .cNexusCards_number, .cNexusCards .cNexusCards_exp{position:absolute;inset-inline-start:20px;font-family:'courier new', monospace;}.cNexusCards .cNexusCards_number{bottom:55px;font-size:18px;}.cNexusCards .cNexusCards_name{margin-top:75px;margin-left:10px;margin-right:10px;font-size:14px;width:230px;text-overflow:ellipsis;overflow:hidden;}.cNexusCards .cNexusCards_expTitle{font-size:9px;color:#000;text-transform:uppercase;position:absolute;bottom:30px;inset-inline-start:20px;}.cNexusCards .cNexusCards_exp{bottom:15px;}.cNexusCards .cNexusCards_delete{position:absolute;inset-inline-end:-5px;top:-5px;background:#333;color:#fff;width:30px;height:30px;border-radius:30px;font-size:20px;line-height:26px;text-align:center;}.cPayment{display:inline-block;width:66px;height:42px;border:1px solid rgba(0,0,0,0.1);line-height:40px;white-space:nowrap;font-size:9px;font-weight:bold;padding:0 5px;text-align:center;text-transform:uppercase;text-overflow:ellipsis;overflow:hidden;background-color:#f8f8f8;}.cPayment_cardTypeList{margin-inline-start:345px;}.cPayment_visa, .cPayment_mastercard, .cPayment_american_express, .cPayment_discover, .cPayment_diners_club, .cPayment_jcb, .cPayment_paypal, .cPayment_venmo{text-indent:100%;padding:0;background-repeat:no-repeat;}.cPayment_visa, .cPayment_mastercard, .cPayment_americaLine truncated
|
||||
@@ -1,2 +1,2 @@
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('cms.front.blocks.navigation',{initialize:function(){this.on('click','details',this.loadNavigationItems);var openSection=$(this.scope).find('details[open]:first');if(openSection.length){this.loadNavigationItems(null,openSection);}},loadNavigationItems:function(e,details=null){if(details===null){details=$(e.target).parents('details:first');}
|
||||
var itemContainer=$(details).find('> [data-role="containerItems"]');var self=this;if(!itemContainer.html().trim().length){ips.getAjax()(ips.getSetting('baseURL')+'?app=cms&module=pages&controller=ajax&do=loadItems',{data:{navType:$(self.scope).attr('data-navType'),navId:$(self.scope).attr('data-navId'),container:$(details).data('container')}}).done(function(response){$(itemContainer).html(response);});}}});}(jQuery,_));;
|
||||
var itemContainer=$(details).find('> [data-role="containerItems"]');var self=this;if(!itemContainer.html().trim().length){ips.getAjax()(ips.getSetting('baseURL')+'?app=cms&module=pages&controller=ajax&do=loadItems',{data:{navType:$(self.scope).attr('data-navType'),navId:$(self.scope).attr('data-navId'),container:$(details).data('container')}}).done(function(response){$(itemContainer).html(response);if(!_.isUndefined(ips.getSetting('currentRecordId'))){$(itemContainer).find('a[data-id="'+ips.getSetting('currentRecordId')+'"]').attr('aria-current','page');}});}}});}(jQuery,_));;
|
||||
@@ -17,7 +17,7 @@ if(isInAdminGroup){ips.ui.alert.show({type:'confirm',message:ips.getString('memb
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.members.allowedCharacters',{initialize:function(){this.on('click','[data-action="easy"]',this.showEasy);this.on('click','[data-action="regex"]',this.showRegex);this.setup();},showEasy:function(e){if(e){e.preventDefault();}
|
||||
this.scope.find('[data-role="easy"]').show();this.scope.find('[data-role="regex"]').hide();this.scope.find('[data-role="easyInput"]').val('1');},showRegex:function(e){if(e){e.preventDefault();}
|
||||
this.scope.find('[data-role="regex"]').show();this.scope.find('[data-role="easy"]').hide();this.scope.find('[data-role="easyInput"]').val('0');},setup:function(){this.scope.find('[data-action="easy"]').show();this.scope.find('[data-action="regex"]').show();if(this.scope.attr('data-easy')==1){this.showEasy();}}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.members.achievementRuleForm',{initialize:function(){this.on('change','select[name="achievement_rule_action"]',this.changeRule);this.on('click','[data-action="filterReveal"]',this.showFilter);this.on('click','[data-action="filterCollapse"]',this.hideFilter);this.on('change keyup','input[type="number"]',this.changeNumber);this.on('change','select[name$="[badge]"]',this.changeBadge);this.setup();},setup:function(){this._select=this.scope.find('select[name="achievement_rule_action"]');this.changeRule();},changeBadge:function(e){this._changeBadge($(e.currentTarget).closest('select[name$="[badge]"]'));},_changeBadge:function(badgeSelectObj){const data=badgeSelectObj.attr('name').split('_');const translatable=$('#'+data[0]+'_'+data[1]+'_award_'+data[3].replace('[badge]','')+'_badge');if(badgeSelectObj.val()>0){translatable.each(function(){this.ipsShow();});}else{translatable.each(function(){this.ipsHide();});}},changeRule:function(e){if(e){e.preventDefault();}
|
||||
const ruleToShow=this.scope.find(`#rule_${this._select.val()}`);this.scope.find('[data-role="ruleWrap"]').each(function(){this.ipsHide()});ruleToShow.attr('data-ipsForm',true);ruleToShow.get(0).ipsShow();this._changeBadge($('select[name="'+this._select.val()+'_award_subject[badge]"]'));const otherBadge=$('select[name="'+this._select.val()+'_award_other[badge]"]');if(otherBadge.length){this._changeBadge(otherBadge);}
|
||||
$(document).trigger('contentChange',[ruleToShow]);},showFilter:function(e){const ruleWrap=$(e.currentTarget).closest('[data-role="ruleWrap"]');const toggleWrap=$(e.currentTarget).closest('[data-role="toggleFilter"]');const check=toggleWrap.find('input[type="checkbox"]');const toggleRow=toggleWrap.closest('[data-role="conditionButtons"]');check.prop('checked',true).trigger('change');toggleWrap.each(function(){this.ipsHide();});toggleRow.toggle(toggleRow.find('[data-role="toggleFilter"] input[type="checkbox"]:visible').length>0);ruleWrap.find(`#${check.attr('data-filter')}`).each(function(){this.ipsShow();});if(ruleWrap.find('input[type="number"]')){const self=this;ruleWrap.find('input[type="number"]').each(function(){self._pluralizeNumber($(this));});}},hideFilter:function(e){e.preventDefault();const filter=$(e.currentTarget).closest('[data-role="filterField"]');const filterName=filter.attr('id');const ruleWrap=filter.closest('[data-role="ruleWrap"]');const check=ruleWrap.find(`#${filterName}Checkbox`);const toggleWrap=check.closest('[data-role="toggleFilter"]');check.prop('checked',false).trigger('change');toggleWrap.each(function(){this.ipsShow();})
|
||||
toggleWrap.closest('[data-role="conditionButtons"]').each(function(){this.ipsShow();});filter.each(function(){this.ipsHide()});},changeNumber:function(e){this._pluralizeNumber($(e.currentTarget));},_pluralizeNumber:function(input){const span=input.next('[data-role="th"]');if(span.length){span.text(ips.pluralize(ips.getString('numberSuffix'),input.val()));}}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.members.achievementRuleForm',{initialize(){this.on('click','[data-action="filterReveal"]',this.showFilter);this.on('click','[data-action="filterCollapse"]',this.hideFilter);this.on('change keyup','input[type="number"]',this.changeNumber);},showFilter(e){const ruleWrap=e.currentTarget.closest('[data-role="ruleWrap"]');const toggleWrap=e.currentTarget.closest('[data-role="toggleFilter"]');const check=toggleWrap.querySelector('input[type="checkbox"]');const conditionButtons=toggleWrap.closest('[data-role="conditionButtons"]');check.checked=true;check.dispatchEvent(new Event('change',{bubbles:true}));toggleWrap.ipsHide();if(conditionButtons?.querySelector('[data-role="toggleFilter"] input[data-filter]:not(:checked)')){conditionButtons?.ipsShow();}else{conditionButtons?.ipsHide();}
|
||||
const filterName=check.dataset.filter;if(filterName){ruleWrap.querySelectorAll(`#${filterName}`).ipsShow();}
|
||||
ruleWrap.querySelectorAll('input[type="number"]').forEach(el=>this._pluralizeNumber(el));},hideFilter(e){e.preventDefault();const filter=e.currentTarget.closest('[data-role="filterField"]');const filterName=filter.id;const check=filter.closest('[data-role="ruleWrap"]').querySelector(`#${filterName}Checkbox`);const toggleWrap=check.closest('[data-role="toggleFilter"]');check.checked=false;check.dispatchEvent(new Event('change',{bubbles:true}));toggleWrap.ipsShow()
|
||||
toggleWrap.closest('[data-role="conditionButtons"]')?.ipsShow();filter.ipsHide();},changeNumber(e){this._pluralizeNumber(e.currentTarget);},_pluralizeNumber(input){const span=input.nextElementSibling;if(span?.matches('[data-role="th"]')){span.innerText=ips.pluralize(ips.getString('numberSuffix'),input.value);}}});}(jQuery,_));;
|
||||
@@ -1,6 +1,6 @@
|
||||
ips.templates.set('downloads.submit.screenshot'," <div class='ipsUploader__row ipsUploader__row--image ipsAttach {{#done}}ipsAttach_done{{/done}}' id='{{id}}' data-role='file' data-fileid='{{id}}' data-filesize='{{sizeRaw}}' data-fullsizeurl='{{imagesrc}}' data-thumbnailurl='{{thumbnail}}' data-fileType='image'> <div class='ipsUploader__rowPreview' data-role='preview'> <label for='{{field_name}}_primary_screenshot_{{id}}' class='i-cursor_pointer'> {{#thumb}} {{{thumb}}} {{/thumb}} <div class='ipsUploader__rowPreview__generic' {{#thumb}}style='display: none'{{/thumb}}> <i class='fa-solid fa-{{extIcon}}'></i> </div> </label> </div> <div class='ipsUploader_rowMeta'> <h2 class='ipsUploader_rowTitle' data-role='title'>{{title}}</h2> <p class='ipsUploader_rowDesc'> {{size}} {{#statusText}}· <span class='i-color_soft' data-role='status'>{{statusText}}</span>{{/statusText}} </p> {{#status}}<meter class='ipsMeter' data-role='progressbar' max='100'></meter>{{/status}} </div> <span data-role='insert' {{#insertable}}style='display: none'{{/insertable}}> <a href='#' class='ipsAttach_selection' data-ipsTooltip title='{{#lang}}insertIntoPost{{/lang}}'> <i class='fa-solid fa-plus'></i> </a> </span> {{#supportsDelete}} <div data-role='deleteFileWrapper' {{#newUpload}}style='display: none'{{/newUpload}}> <input type='hidden' name='{{field_name}}_keep[{{id}}]' value='1'> <a href='#' data-role='deleteFile' class='ipsUploader__rowDelete' data-ipsTooltip title='{{#lang}}attachRemove{{/lang}}'> × </a> </div> {{/supportsDelete}} {{^supportsDelete}} <div data-role='deleteFileWrapper' style='display: none'> <input type='hidden' name='{{field_name}}_keep[{{id}}]' value='1'> <a href='#' class='ipsUploader__rowDelete' data-role='deleteFile' data-ipsTooltip title='{{#lang}}attachRemove{{/lang}}'>×</a> </div> {{/supportsDelete}} <label for='{{field_name}}_primary_screenshot_{{id}}' class='cDownloadsPrimaryRadio' data-ipsTooltip title='{{#lang}}makePrimaryScreenshot{{/lang}}'> <input type='radio' name='{{field_name}}_primary_screenshot' id='{{field_name}}_primary_screenshot_{{id}}' value='{{id}}' {{#default}}checked{{/default}} class='ipsInput ipsInput--toggle'> {{#lang}}makePrimary{{/lang}} </label> </div>");ips.templates.set('downloads.submit.screenshotWrapper'," <div class='ipsUploader__container ipsUploader__container--images'>{{{content}}}</div>");ips.templates.set('downloads.submit.linkedScreenshot'," <li class='cDownloadsLinkedScreenshotItem'> <input type='url' name='{{name}}[{{id}}]' value='{{value}}'> <div class='cDownloadsLinkedScreenshotItem_block'> <input type='radio' name='screenshots_primary_screenshot' value='{{id}}' title='{{#lang}}makePrimaryScreenshot{{/lang}}' data-ipsTooltip {{extra}}> </div> <div class='cDownloadsLinkedScreenshotItem_block'> <a href='#' data-action='removeField' title='{{#lang}}removeScreenshot{{/lang}}' data-ipsTooltip><i class='fa-solid fa-xmark'></i></a> </div> </li>");;
|
||||
ips.templates.set('downloads.submit.screenshot'," <div class='ipsUploader__row ipsUploader__row--image ipsAttach {{#done}}ipsAttach_done{{/done}}' id='{{id}}' data-role='file' data-fileid='{{id}}' data-filesize='{{sizeRaw}}' data-fullsizeurl='{{imagesrc}}' data-thumbnailurl='{{thumbnail}}' data-fileType='image'> <div class='ipsUploader__rowPreview' data-role='preview'> <label for='{{field_name}}_primary_screenshot_{{id}}' class='i-cursor_pointer'> {{#thumb}} {{{thumb}}} {{/thumb}} <div class='ipsUploader__rowPreview__generic' {{#thumb}}style='display: none'{{/thumb}}> <i class='fa-solid fa-{{extIcon}}'></i> </div> </label> </div> <div class='ipsUploader_rowMeta'> <h2 class='ipsUploader_rowTitle' data-role='title'>{{title}}</h2> <p class='ipsUploader_rowDesc'> {{size}} {{#statusText}}· <span class='i-color_soft' data-role='status'>{{statusText}}</span>{{/statusText}} </p> {{#status}}<meter class='ipsMeter' data-role='progressbar' max='100'></meter>{{/status}} </div> <span data-role='insert' {{#insertable}}style='display: none'{{/insertable}}> <a href='#' class='ipsAttach_selection' data-ipsTooltip title='{{#lang}}insertIntoPost{{/lang}}'> <i class='fa-solid fa-plus'></i> </a> </span> {{#supportsDelete}} <div data-role='deleteFileWrapper' {{#newUpload}}style='display: none'{{/newUpload}}> <input type='hidden' name='{{field_name}}_keep[{{id}}]' value='1'> <a href='#' data-role='deleteFile' class='ipsUploader__rowDelete' data-ipsTooltip title='{{#lang}}attachRemove{{/lang}}'> × </a> </div> {{/supportsDelete}} {{^supportsDelete}} <div data-role='deleteFileWrapper' style='display: none'> <input type='hidden' name='{{field_name}}_keep[{{id}}]' value='1'> <a href='#' class='ipsUploader__rowDelete' data-role='deleteFile' data-ipsTooltip title='{{#lang}}attachRemove{{/lang}}'>×</a> </div> {{/supportsDelete}} <label for='{{field_name}}_primary_screenshot_{{id}}' class='cDownloadsPrimaryRadio' data-ipsTooltip title='{{#lang}}makePrimaryScreenshot{{/lang}}'> <input type='radio' name='{{field_name}}_primary_screenshot' id='{{field_name}}_primary_screenshot_{{id}}' value='{{id}}' {{#default}}checked{{/default}} class='ipsInput ipsInput--toggle'> {{#lang}}makePrimary{{/lang}} </label> </div>");ips.templates.set('downloads.submit.screenshotWrapper'," <div class='ipsUploader__container ipsUploader__container--images'>{{{content}}}</div>");ips.templates.set('downloads.submit.linkedScreenshot'," <li class='i-flex i-gap_2 cDownloadsLinkedScreenshotItem'> <input class='ipsInput i-flex_00 i-align-self_center' type='radio' name='screenshots_primary_screenshot' value='{{id}}' title='{{#lang}}makePrimaryScreenshot{{/lang}}' data-ipsTooltip {{extra}}> <input class='ipsInput i-flex_11' type='url' name='{{name}}[{{id}}]' value='{{value}}'> <button class='ipsButton ipsButton--text i-flex_00' type='button' data-action='removeField' title='{{#lang}}removeScreenshot{{/lang}}' data-ipsTooltip><i class='fa-solid fa-xmark'></i></button> </li>");;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('downloads.front.submit.linkedScreenshots',{initialize:function(){this.on('click','[data-action="addField"]',this.addFieldButton);this.on('click','[data-action="removeField"]',this.removeField);this.setup();},setup:function(){var initialValues=$.parseJSON($(this.scope).attr('data-initialValue'));if(initialValues==null){return;}
|
||||
var i;for(i in initialValues.values){this.addField(i,initialValues.values[i],i==initialValues.default);}},addField:function(id,value,isDefault){$(this.scope).find('[data-role="fieldsArea"]').append(ips.templates.render('downloads.submit.linkedScreenshot',{'name':$(this.scope).attr('data-name'),'id':id,'value':value,'extra':isDefault?'checked':''}));},removeField:function(e){e.preventDefault();$(e.currentTarget).closest('li').remove();},addFieldButton:function(){this.addField('linked_'+new Date().getTime(),'',false);}});}(jQuery,_));;
|
||||
var i;for(i in initialValues.values){this.addField(i,initialValues.values[i],i==initialValues.default);}},addField:function(id,value,isDefault){$(this.scope).find('[data-role="fieldsArea"]').append(ips.templates.render('downloads.submit.linkedScreenshot',{'name':$(this.scope).attr('data-name'),'id':id,'value':value,'extra':isDefault?'checked':''}));},removeField:function(e){$(e.currentTarget).closest('li').remove();},addFieldButton:function(){this.addField('linked_'+new Date().getTime(),'',false);}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('downloads.front.submit.main',{_progressbarTimeout:null,_requireScreenshots:false,_bulkUpload:false,_ui:{},_hiddenUploader:false,_overriddenUploader:false,_allowMultipleFiles:false,_newVersion:false,_uploadedCount:0,initialize:function(){this.on('uploadedCountChanged',this.uploadCounter);this.on('uploadProgress',this.uploadProgress);this.on('fileAdded',this.fileAdded);this.on('fileDeleted',this.fileDeleted);this.on('click','[data-action="confirmUrls"]',this.confirmURLs);this.on('click','[data-action="confirmImports"]',this.confirmImports);this.on('click','[data-action="confirmScreenshotUrls"]',this.confirmScreenshots);this.on('click','[data-action="uploadMore"]',this.uploadMore);this.setup();},setup:function(){var self=this;if(this.scope.attr('data-screenshotsReq')){this._requireScreenshots=true;}
|
||||
if(this.scope.attr('data-bulkUpload')){this._bulkUpload=true;}
|
||||
if(this.scope.attr('data-multipleFiles')){this._allowMultipleFiles=true;}
|
||||
|
||||
@@ -139,14 +139,14 @@ ips.templates.set('tableOfContents.linkOptions',`\
|
||||
<i class="fa-solid fa-plus"></i>
|
||||
</button>
|
||||
<span class="ipsTableOfContents__incrementOptions">
|
||||
<button class="ipsButton ipsButton_link ipsButton--icon" data-ipstooltip title="{{#lang}}table_of_contents_decrement{{/lang}}" data-role="decrement" aria-label="{{#lang}}table_of_contents_decrement{{/lang}}" >
|
||||
<button class="ipsButton ipsButton--text ipsButton--icon" data-ipstooltip title="{{#lang}}table_of_contents_decrement{{/lang}}" data-role="decrement" aria-label="{{#lang}}table_of_contents_decrement{{/lang}}" >
|
||||
<i class="fa-solid fa-outdent"></i>
|
||||
</button>
|
||||
<button class="ipsButton ipsButton_link ipsButton--icon" data-ipstooltip title="{{#lang}}table_of_contents_increment{{/lang}}" data-role="increment" aria-label="{{#lang}}table_of_contents_increment{{/lang}}" >
|
||||
<button class="ipsButton ipsButton--text ipsButton--icon" data-ipstooltip title="{{#lang}}table_of_contents_increment{{/lang}}" data-role="increment" aria-label="{{#lang}}table_of_contents_increment{{/lang}}" >
|
||||
<i class="fa-solid fa-indent"></i>
|
||||
</button>
|
||||
</span>
|
||||
<button class="ipsButton ipsButton_link ipsButton--icon ipsButton--negative" data-ipstooltip title="{{#lang}}table_of_contents_remove{{/lang}}" data-role="remove" aria-label="{{#lang}}table_of_contents_remove{{/lang}}" >
|
||||
<button class="ipsButton ipsButton--text ipsButton--icon ipsButton--negative" data-ipstooltip title="{{#lang}}table_of_contents_remove{{/lang}}" data-role="remove" aria-label="{{#lang}}table_of_contents_remove{{/lang}}" >
|
||||
<i class="fa-solid fa-times"></i>
|
||||
</button>
|
||||
{{/canEdit}}
|
||||
@@ -503,7 +503,7 @@ const editorLocation=document.createElement('div')
|
||||
editorLocation.dataset.role='reactRoot'
|
||||
textArea.parentElement.insertBefore(editorLocation,textArea)
|
||||
config.content=textArea.innerHTML
|
||||
config.onUpdate=(editor)=>{const value=editor.getValue();textArea.innerHTML="";textArea.appendChild(document.createTextNode(value));}
|
||||
config.onUpdate=(editor)=>{const value=editor.getValue();textArea.innerHTML="";textArea.appendChild(document.createTextNode(value));textArea.dispatchEvent(new CustomEvent('ips:codebox#update',{detail:{instance,elem:textArea},bubbles:true}));}
|
||||
textArea.ipsHide()
|
||||
let result=await ips.utils.tiptap.editorInstance(editorLocation,config);instance=result[0]
|
||||
textArea.dispatchEvent(new CustomEvent('ips:codeboxAfterInit',{bubbles:true,cancelable:true,detail:{instance,config}}))
|
||||
@@ -512,16 +512,17 @@ reactRoot=result[1]}
|
||||
function destruct(){instance?.dispose()
|
||||
reactRoot.unmount();}
|
||||
return{instance,destruct,init}}}(jQuery,_));;
|
||||
((($,_)=>{"use strict";ips.createModule('ips.ui._codehighlighting',function(){let timeout;let attempts=0;function inject(){clearTimeout(timeout);window.removeEventListener('load',inject);if(typeof ips.ui?.codehighlighting==='object'){return;}
|
||||
if(!document?.body){if(attempts++<5){timeout=setTimeout(inject,100);Debug.log(`Attempting to load the codehighlighting module. Attempt: ${attempts}`);}else{Debug.warn(`Couldn't load the codehighlighting module after 5 attempts because document.body isn't present!`);}
|
||||
((($,_)=>{"use strict";ips.createModule('ips.ui._codehighlighting',function(){const LOADER_RESOLVERS=new Set();const LOADER_REJECTS=new Set();let STATE='loading';document.addEventListener('ipsCodehighlightingLoaded',()=>{STATE='loaded';LOADER_RESOLVERS.forEach(resolve=>resolve());LOADER_RESOLVERS.clear();LOADER_REJECTS.clear();});let timeout;let attempts=0;function inject(){clearTimeout(timeout);window.removeEventListener('load',inject);if(typeof ips.ui?.codehighlighting==='object'){STATE='loaded';LOADER_REJECTS.clear();LOADER_RESOLVERS.forEach(resolve=>resolve());;LOADER_RESOLVERS.clear();return;}
|
||||
if(!document?.body){if(attempts++<5){timeout=setTimeout(inject,100);Debug.log(`Attempting to load the codehighlighting module. Attempt: ${attempts}`);}else{STATE='error';LOADER_RESOLVERS.clear();LOADER_REJECTS.forEach(reject=>reject(new Error(`The codehighlighting module could not be loaded`)));LOADER_RESOLVERS.clear();Debug.warn(`Couldn't load the codehighlighting module after 5 attempts because document.body isn't present!`);}
|
||||
return;}
|
||||
const script=document.createElement('script')
|
||||
document.body.appendChild(script)
|
||||
script.src=ips.getSetting('baseURL').replace(/\/+$/,"")+"/applications/core/interface/static/codehighlighting/codehighlighting.js?antiCache="+encodeURIComponent(ips.getSetting('jsAntiCache'));}
|
||||
try{if(!document?.body){throw new Error();}
|
||||
inject();}catch(e){window.addEventListener('load',inject,{once:true});timeout=setTimeout(()=>{if(typeof ips.ui?.codehighlighting==="object"){return;}
|
||||
inject();}catch(e){window.addEventListener('load',inject,{once:true});timeout=setTimeout(()=>{if(typeof ips.ui?.codehighlighting==="object"){STATE='loaded';LOADER_REJECTS.clear();LOADER_RESOLVERS.forEach(resolve=>resolve());LOADER_RESOLVERS.clear();return;}
|
||||
Debug.warn(`The codehighlighting module was not appended to document.body because the window's \`load\` event didn't fire within 2 seconds after ips.ui._codehighlighting was initialized.`);inject()},2000);}
|
||||
return{}})})(jQuery,_));
|
||||
return{whenLoaded(){return new Promise((resolve,reject)=>{if(STATE==='loaded'){return resolve();}else if(STATE==='error'){return reject();}
|
||||
LOADER_REJECTS.add(reject);LOADER_RESOLVERS.add(resolve);})}}})})(jQuery,_));
|
||||
;(function($,_,undefined){"use strict";ips.createModule('ips.ui.contentItem',function(){var defaults={multiValues:true,unique:false,fieldTemplate:'core.contentItem.field',resultsTemplate:'core.contentItem.resultWrapper',resultItemTemplate:'core.contentItem.resultItem',itemTemplate:'core.contentItem.item',queryParam:'q',minAjaxLength:1};var respond=function(elem,options){if(!$(elem).data('_contentItem')){$(elem).data('_contentItem',contentItemObj(elem,_.defaults(options,defaults)));}},destruct=function(elem){var obj=getObj(elem);if(!_.isUndefined(obj)){obj.destruct();}},getObj=function(elem){elem=$(elem);if(elem.data('_contentItem')){return elem.data('_contentItem');}else if($('[name="'+elem.attr('name')+'_original'+'"]').length&&$('[name="'+elem.attr('name')+'_original'+'"]').data('_contentItem')){return $('[name="'+elem.attr('name')+'_original'+'"]').data('_contentItem');}
|
||||
return undefined;};ips.ui.registerWidget('contentItem',ips.ui.contentItem,['resultsTemplate','resultItemTemplate','itemTemplate','queryParam','dataSource','maxItems','minAjaxLength']);return{respond:respond,destruct:destruct,getObj:getObj};});var contentItemObj=function(elem,options,e){var timer,blurTimer,lastValue='',originalTextField,valueField,hiddenValueField,itemListWrapper,textField,dataSource,elemID=$(elem).identify().attr('id'),wrapper,inputItem,resultsElem,disabled=false,required=false,tooltip=null,tooltipTimer=null;var init=function(){if($(elem).is('input[type="text"], input[type="search"]')){originalTextField=$(elem);}else{originalTextField=$(elem).find('input[type="text"], input[type="search"]').first();}
|
||||
_buildWrapper();_getDataSource();originalTextField.removeAttr('list');_buildResultsList();if(originalTextField.is(':disabled')){disabled=true;}
|
||||
@@ -772,7 +773,7 @@ if(!toInsert){return;}
|
||||
instance.chain().insertContent(toInsert+"<p></p>",{parseOptions:{preserveWhitespace:false}}).focus().run();};if(minimized){unminimize(function(){try{instance.chain().setContent('').run();elem.find('[data-role="autoSaveRestoreMessage"]').hide();}catch(err){}
|
||||
_doInsert();});}else{_doInsert();}}
|
||||
function insertHtml(html){instance.chain().insertContent(html,{parseOptions:{preserveWhitespace:false}}).focus().run();}
|
||||
function reset(){instance.chain().setContent(originalContent||'<p></p>').clearAutosave().run();$(elem).find('[data-ipsUploader]').trigger('resetUploader');if(options.minimized&&options.minimizeAfterReset){minimize();}
|
||||
function reset(){instance.chain().setContent(originalContent||'<p></p>',{emitUpdate:true}).clearAutosave().run();$(elem).find('[data-ipsUploader]').trigger('resetUploader');if(options.minimized&&options.minimizeAfterReset){minimize();}
|
||||
clearTextarea();}
|
||||
function saveAndClearAutosave(){if(instance){instance?.commands.clearAutoSave?.()}else{ips.utils.db.remove('editorSave',options.autoSaveKey);}}
|
||||
function _belongsToThisEditor(data){return data.editorID!==undefined&&data.editorID===name;}
|
||||
@@ -2061,7 +2062,7 @@ return{type:'inside',range:range};};var getSelection=function(){return(window.ge
|
||||
var current=child;while(current){if(current===parent){return true;}
|
||||
current=current.parentNode;}
|
||||
return false;};return{getSelectedText:getSelectedText,getSelection:getSelection,getRange:getRange,getCommonAncestor:getCommonAncestor};});}(jQuery,_));;
|
||||
(function($,_,undefined){"use strict";ips.createModule("ips.utils.serviceWorker",function(){const SERVICE_WORKER_URL=ips.getSetting("baseURL")+"index.php?app=core&module=system&controller=serviceworker&v="+ips.getSetting("jsAntiCache");const supported="serviceWorker"in navigator;const registerServiceWorker=(type,loggedIn)=>{return navigator.serviceWorker.register(`${SERVICE_WORKER_URL}&type=${type}&loggedIn=${JSON.stringify(loggedIn)}`).then((registration)=>{Debug.log("ServiceWorker registration successful with scope: ",registration.scope);return registration;}).catch((err)=>{Debug.log("ServiceWorker registration failed: ",err);});};const getRegistration=()=>{return navigator.serviceWorker.ready;};return{registerServiceWorker,supported,getRegistration,};});})(jQuery,_);;
|
||||
(function($,_,undefined){"use strict";ips.createModule("ips.utils.serviceWorker",function(){const SERVICE_WORKER_URL=ips.getSetting("baseURL")+"index.php?app=core&module=system&controller=serviceworker&v="+ips.getSetting("jsAntiCache");const supported="serviceWorker"in navigator;const registerServiceWorker=(type)=>{return navigator.serviceWorker.register(`${SERVICE_WORKER_URL}&type=${type}`).then((registration)=>{Debug.log("ServiceWorker registration successful with scope: ",registration.scope);return registration;}).catch((err)=>{Debug.log("ServiceWorker registration failed: ",err);});};const getRegistration=()=>{return navigator.serviceWorker.ready;};return{registerServiceWorker,supported,getRegistration,};});})(jQuery,_);;
|
||||
(function($,_){"use strict";ips.createModule("ips.utils.sockets",function(){let socketIo;let pingInterval;let refreshToken;let refreshInterval;let refreshTokenUsed=false;let connected=false;function init(){if(!enabled()){return;}
|
||||
ips.loader.get([`${ips.getSetting('socketUrl')}/socket.io/socket.io.min.js`]).then(function(){initializeSocketIo();});}
|
||||
function enabled(){let res=!!(ips.getSetting('memberID')&&ips.getSetting('socketEnabled')&&ips.getSetting('page_token'));return res;}
|
||||
|
||||
@@ -29,8 +29,8 @@ try{const pmData=typeof e.originalEvent.data==='string'?JSON.parse(e.originalEve
|
||||
this._stopReadyTimeout();this[method]?.call(this,pmData);}catch(err){Debug.error(err.message);}},_postMessage(method,obj){Debug.log("Posting to iframe "+this._embedId);this._iframe.postMessage(JSON.stringify(_.extend(obj||{},{method:method,embedId:this._embedId})),this._origin);},_getBorderAdjustment(){this._border.vertical=parseInt(this.scope.css('border-top-width'))+parseInt(this.scope.css('border-bottom-width'));this._border.horizontal=parseInt(this.scope.css('border-left-width'))+parseInt(this.scope.css('border-right-width'));},breakpointChange(e,data){this._postMessage('responsiveState',{currentIs:data.curBreakName});},dialog(data){var options=ips.ui.getAcceptedOptions('dialog');var dialogOptions={};_.each(options,function(opt){if(!_.isUndefined(data.options['data-ipsdialog-'+opt.toLowerCase()])){dialogOptions[opt]=data.options['data-ipsdialog-'+opt.toLowerCase()];}});if(_.isUndefined(dialogOptions['url'])){dialogOptions['url']=data.url;}
|
||||
var dialogRef=ips.ui.dialog.create(dialogOptions);dialogRef.show();},height(data){if(this._lastDims.height!==data.height){this.scope.css({height:parseInt(data.height)+this._border.vertical+'px'});this._postMessage('setDimensions',{height:parseInt(data.height)});this._lastDims.height=data.height;}},dims(data){if(parseInt(this._lastDims.height)!==parseInt(data.height)||this._lastDims.width!==data.width){this.scope.css({height:parseInt(data.height)+this._border.vertical+'px',maxWidth:(data.width.toString().indexOf('%')==-1)?parseInt(data.width)+this._border.horizontal+'px':'100%'});this._lastDims.height=data.height;this._lastDims.width=data.width;}},ok(){this._stopReadyTimeout();this.scope.addClass('ipsEmbed_finishedLoading');this._postMessage('responsiveState',{currentIs:ips.utils.responsive.getCurrentKey()});}});}(jQuery,_));;
|
||||
;(function(){"use strict";ips.controller.register('core.front.core.colorScheme',{initialize(){this.menu=this.scope[0];this.on(this.menu,'click',this.changeColorScheme);if(!this.menu.querySelector("[aria-current")){this.schemePref=ips.utils.cookie.get('scheme_preference')||document.documentElement.dataset.ipsSchemeDefault;document.querySelectorAll('[data-ips-prefers-color-scheme='+this.schemePref+']').forEach(el=>el.setAttribute('aria-current','true'));}},changeColorScheme(ev){let el=ev.target.closest('[data-controller="core.front.core.colorScheme"] [data-ips-prefers-color-scheme]');if(!el)return;document.dispatchEvent(new CustomEvent("ips:colorScheme",{bubbles:true,detail:{scheme:el.dataset.ipsPrefersColorScheme}}));if(ips.utils.broadcastChannel.enabled){ips.utils.broadcastChannel.channel.postMessage({command:'colorScheme',value:el.dataset.ipsPrefersColorScheme});}}});}());;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.core.comment',{_quoteData:null,_commentContents:'',_quotingDisabled:false,_quoteTimeout:null,_isEditing:false,_clickHandler:null,_observer:null,initialize:function(){for(const link of this.scope.find('[data-ipsMenu]')){const menuSelector=$(link).attr('href');for(const action of['editComment','cancelEditComment','deleteComment','approveComment']){this.on(document,'click',`${menuSelector} [data-action="${action}"]`,this[action]);}}
|
||||
for(const action of['quoteComment','multiQuoteComment','rateReview']){this.on('click',`[data-action="${action}"]`,this[action]);}
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.core.comment',{_quoteData:null,_commentContents:'',_quotingDisabled:false,_quoteTimeout:null,_isEditing:false,_clickHandler:null,_observer:null,initialize:function(){for(const link of this.scope.find('[data-ipsMenu]')){const menuSelector=$(link).attr('href');for(const action of['editComment','deleteComment','approveComment']){this.on(document,'click',`${menuSelector} [data-action="${action}"]`,this[action]);}}
|
||||
for(const action of['quoteComment','multiQuoteComment','rateReview','cancelEditComment']){this.on('click',`[data-action="${action}"]`,this[action]);}
|
||||
this.on('submit','form',this.submitEdit);this.on('change','input[type="checkbox"][data-role="moderation"]',this.commentCheckbox);this.elem.addEventListener('ipsCalcQuote',()=>this.inlineQuote())
|
||||
this.on('click','[data-action="quoteSelection"]',this.quoteSelection);this.on('submitDialog','[data-action="recommendComment"]',this.recommendComment);this.on('click','[data-action="unrecommendComment"]',this.unrecommendComment);this.on('tabChanged',this.tabChanged);this.on('setMultiQuoteEnabled.comment setMultiQuoteDisabled.comment',this.setMultiQuote);this.on('disableQuoting.comment',this.disableQuoting);this.on(document,'getEditFormLoading.comment saveEditCommentLoading.comment '+
|
||||
'deleteCommentLoading.comment',this.commentLoading);this.on(document,'getEditFormDone.comment saveEditCommentDone.comment '+
|
||||
@@ -243,7 +243,7 @@ self._getIcon((type==='message')?'inbox':'notify').click();}});}
|
||||
return notifyData;},_showNotification(notifyData,type){if(!document[ips.utils.events.getVisibilityProp()]){this._showFlashMessage(notifyData,type);}},_showFlashMessage(notifyData,type){let html='';const self=this;if(notifyData.count===1){notifyData=_.extend(notifyData,{text:ips.getString(type+'FlashSingle')});html=ips.templates.render('core.notification.flashSingle',notifyData);}else{notifyData=_.extend(notifyData,{text:ips.pluralize(ips.getString(type+'FlashMultiple'),[notifyData.count])});html=ips.templates.render('core.notification.flashMultiple',notifyData);}
|
||||
if($('#elFlashMessage').is(':visible')&&$('#elFlashMessage').find('[data-role="newNotification"]').length){$('#elFlashMessage').find('[data-role="newNotification"]').replaceWith(html);}else{ips.ui.flashMsg.show(html,{timeout:8,position:'bottom',extraClasses:'cNotificationFlash',dismissable:function(){self._stopPolling();},escape:false});}},_updateTimestamp(){let storage=ips.utils.db.get('notifications',ips.getSetting('baseURL'));storage=_.extend(storage,{timestamp:ips.utils.time.timestamp()});ips.utils.db.set('notifications',ips.getSetting('baseURL'),storage);},_updateIcons(newData,oldData){const reportBadge=this.scope.find('[data-notificationType="reports"]');const reportCount=reportBadge.length?parseInt(reportBadge.text()):0;const notifyData={notifications:parseInt(newData.notifications),reports:reportCount};if(parseInt(newData.notifications)!==oldData.notifications){this._updateIcon('notify',newData.notifications);this.scope.trigger('clearUserbarCache',{type:'notify'});}
|
||||
if(this._messagesEnabled){if(parseInt(newData.messages)!==oldData.messages){this._updateIcon('inbox',newData.messages);this.scope.trigger('clearUserbarCache',{type:'inbox'});}
|
||||
notifyData.messages=parseInt(newData.messages);}},_updateIcon(type,count){const icon=this._getIcon(type);icon.attr('data-currentCount',count).text(count);if(parseInt(count)){ips.utils.anim.go((!icon.is(':visible'))?'zoomIn':'pulseOnce',icon.removeClass('ipsHide'));}else{icon.fadeOut();}},_getIcon(type){return $('body').find('[data-notificationType="'+type+'"]');},_getCurrentCounts(){const messages=this.scope.find('[data-notificationType="inbox"]');const notifications=this.scope.find('[data-notificationType="notify"]');return{notifications:parseInt(notifications.attr('data-currentCount')),messages:(messages.length)?parseInt(messages.attr('data-currentCount')):null};},_stopPolling(){Debug.info("Stopping instant notification polling");clearInterval(this._interval);this._paused=true;}});}(jQuery,_));;
|
||||
notifyData.messages=parseInt(newData.messages);}},_updateIcon(type,count){const icon=this._getIcon(type);icon.attr('data-currentCount',count).text(count);if(parseInt(count)){ips.utils.anim.go((!icon.is(':visible'))?'zoomIn':'pulseOnce',$(icon).each(function(){this.ipsShow()}));}else{icon.fadeOut();}},_getIcon(type){return $('body').find('[data-notificationType="'+type+'"]');},_getCurrentCounts(){const messages=this.scope.find('[data-notificationType="inbox"]');const notifications=this.scope.find('[data-notificationType="notify"]');return{notifications:parseInt(notifications.attr('data-currentCount')),messages:(messages.length)?parseInt(messages.attr('data-currentCount')):null};},_stopPolling(){Debug.info("Stopping instant notification polling");clearInterval(this._interval);this._paused=true;}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";const IMAGE_EXTENSIONS=new Set(['gif','jpeg','jpe','jpg','png','svg','webp','avif'])
|
||||
ips.controller.register('core.front.core.lightboxedImages',{_random:null,initialize:function(){var self=this;this.on('initializeImages',this.refreshContent);this.on('refreshContent',this.refreshContent);this.on(document,'imageRotated',function(e,data){var attachment=$(self.scope).find('.ipsAttachLink_image img[data-fileId='+data.fileId+']');self._updateAttachmentImage(attachment,data);});this.setup();},setup:function(){this._random='g'+(Math.round(Math.random()*100000));this._initializeAttachments();this._initializeImages();},refreshContent:function(e){Debug.log("Refreshing content in lightboxedImages");this.scope.removeAttr('data-loaded');this._initializeAttachments();this._initializeImages();e.stopPropagation();},_initializeAttachments:function(){var fileIDsToFetch={};var self=this;var attachments=this.scope.find('[data-fileid]').not(function(idx,elem){var elem=$(elem);return elem.is('source, video')||elem.find('source, video').length;});if(!attachments.length){return;}
|
||||
attachments.each(function(){var attachment=$(this);if(!_.isUndefined(attachment.attr('data-loaded'))){return;}
|
||||
|
||||
@@ -9,10 +9,29 @@ return Debug;},setEnabled=function(enabled){options.enabled=(enabled===false)?fa
|
||||
return Debug;},addAdapter=function(adapter){if(_.isObject(adapter)){options.adapters.push(adapter);}
|
||||
return Debug;},clearAdapters=function(){options.adapters=[];return Debug;};return{debug:debug,log:debug,info:info,warn:warn,error:error,setEnabled:setEnabled,setLevel:setLevel,addAdapter:addAdapter,clearAdapters:clearAdapters,isEnabled:isEnabled};}();var Console=function(){};Console.prototype.write=function(level,msg){if(window.console){switch(level){case 1:if(_.isObject(msg)){console.dir(msg);}else{console.log(msg);}
|
||||
break;case 2:console.info(msg);break;case 3:console.warn(msg);break;case 4:console.error(msg);break;}}};Debug.addAdapter(new Console);if(ipsDebug||(!_.isUndefined(window.localStorage)&&'localStorage'in window&&window['localStorage']!==null&&window.localStorage.getItem('DEBUG'))){Debug.setEnabled(true).setLevel('DEBUG').info("Enabled logging");}}(jQuery,_));;
|
||||
var ips=ips||{};jQuery.migrateMute=true;(function($,_,undefined){"use strict";let logTimeIndent=0;ips=(function(){var _settings,_strings={},_graphData={},uid=1,urand=Math.ceil(Math.random()*10000),elemContainer,_location='front';var boot=function(config){_settings=config;_setAjaxConfig();$.fn.animationComplete=function(callback){return $(this).one('webkitAnimationEnd animationend',function(e){if(e.target==this){callback.apply(this);}});};$.fn.identify=function(){return this.each(function(){if(!this.id){this.id='ips_uid_'+urand+'_'+(++uid);}});};var oldProp=$.fn.prop;var newProp=function(){var retFunc=oldProp.apply(this,arguments);this.trigger('propChanged',this);return retFunc;};$.fn.prop=newProp;Function.prototype.method=function(name,func){this.prototype[name]=func;return this;};_.templateSettings={interpolate:/\{\{(.+?)\}\}/g
|
||||
var ips=ips||{};jQuery.migrateMute=true;(function($,_,undefined){class CustomSubmitEvent extends Event{submitter=undefined;originalEvent=undefined;constructor(originalEvent){super('submit',{bubbles:true});this.submitter=originalEvent.submitter;this.originalEvent=originalEvent;}}
|
||||
"use strict";let logTimeIndent=0;ips=(function(){var _settings,_strings={},_graphData={},uid=1,urand=Math.ceil(Math.random()*10000),elemContainer,_location='front';var boot=function(config){_settings=config;_setAjaxConfig();_setAjaxEventListeners();document.addEventListener('submit',e=>{const form=e.target;if(e instanceof SubmitEvent&&form instanceof HTMLFormElement&&form.method.toUpperCase()==='POST'&&!getSetting('memberID')&&getCsrfKeyExpiry()<Date.now()/1000){Debug.log(`Intercepted form submission... fetching fresh CSRF key`);e.preventDefault();e.stopPropagation();e.stopImmediatePropagation();getFreshCsrfKey().then(()=>{Debug.log(`Got a new CSRF key, resuming the form submission`);let submitButton=(e instanceof SubmitEvent||e.submitter instanceof Element)?e.submitter:form.querySelector('button[type="submit"], button:not([type]), input[type="submit"]');if(submitButton){submitButton.click();}else{const ev=new CustomSubmitEvent(e);form.dispatchEvent(ev);if(ev.defaultPrevented){return;}
|
||||
form.submit();}});}},{capture:true});$.fn.animationComplete=function(callback){return $(this).one('webkitAnimationEnd animationend',function(e){if(e.target==this){callback.apply(this);}});};$.fn.identify=function(){return this.each(function(){if(!this.id){this.id='ips_uid_'+urand+'_'+(++uid);}});};var oldProp=$.fn.prop;var newProp=function(){var retFunc=oldProp.apply(this,arguments);this.trigger('propChanged',this);return retFunc;};$.fn.prop=newProp;Function.prototype.method=function(name,func){this.prototype[name]=func;return this;};_.templateSettings={interpolate:/\{\{(.+?)\}\}/g
|
||||
};if(!Debug.isEnabled()&&window.console){window.console.log("%cThis is a browser feature intended for developers. Do not paste any code here given to you by someone else. It may compromise your account or have other negative side effects.","font-weight: bold; font-size: 14px;");}
|
||||
$(document).trigger('doneBooting').ready(function(){_location=$('body').attr('data-pageLocation')||'front';});},getAjax=function(){if(getSetting('mock_ajax')){return getSetting('mock_ajax');}
|
||||
return $.ajax;},fetch=function(url,settings={}){return new Promise((resolve,reject)=>{const options={};if(typeof settings==='object'){Object.assign(options,settings)}else if(settings){return resolve(new TypeError(`Could not generate an ajax request because the settings is supposed to be of type object. Got a(n) ${typeof settings}`));}
|
||||
$(document).trigger('doneBooting').ready(function(){_location=$('body').attr('data-pageLocation')||'front';});},getAjax=function(){const wrap=method=>(...args)=>{let options={},url;if(typeof args[0]==='string'){url=args[0];options=args[1]||{};}else if(typeof args[0]==='object'&&args[0]){options=args[0];}
|
||||
if((options.method||options.type)?.toLowerCase()!=='post'||getSetting('memberID')||getCsrfKeyExpiry()>=Date.now()/1000){return method(...args);}
|
||||
let requestInstance;const decoratorQueues={};const properties={};let thenResolve,thenReject,mimeTypeOverride;const uploadEventListeners=new Map();const uploadDispatchedEvents=[];const proxyXHRObject={_promise:new Promise((resolve,reject)=>{thenResolve=resolve;thenReject=reject}),then(cb){this._promise.then(cb);},catch(...args){this._promise.catch(...args)},finally(...args){this._promise.finally(...args);},_aborted:false,get aborted(){return this._aborted;},_abortedStatusText:undefined,get abortedStatusText(){return this._abortedStatusText;},abort(statusText){this._aborted=true;this._abortedStatusText=statusText;requestInstance?.abort(statusText);},getAllResponseHeaders(){return requestInstance?.getAllResponseHeaders()||null;},getResponseHeader(header){return requestInstance?.getResponseHeader(header)||null;},overrideMimeType(mimeType){if(requestInstance){requestInstance.overrideMimeType(mimeType);return;}
|
||||
mimeTypeOverride=mimeType;},get readyState(){return requestInstance?requestInstance.readyState:0;},get response(){return requestInstance?('response'in requestInstance?requestInstance.response:null):null;},get responseText(){if(typeof requestInstance?.responseText==='string'){return requestInstance.responseText;}
|
||||
return"";},get responseType(){if(typeof requestInstance?.responseType==='string'){return requestInstance.responseType;}
|
||||
return"";},get responseURL(){return requestInstance?requestInstance.responseURL:(url||options.url||window.location.href);},get responseXML(){return requestInstance?requestInstance.responseXML:null;},get status(){return requestInstance?requestInstance.status:0;},get statusText(){return requestInstance?requestInstance.statusText:"";},get timeout(){return properties.timeout||0;},set timeout(val){properties.timeout=val;if(requestInstance){requestInstance.timeout=val;}},get withCredentials(){return!!(requestInstance?requestInstance.withCredentials:properties.withCredentials);},set withCredentials(val){val=!!val;properties.withCredentials=val;if(requestInstance){requestInstance.withCredentials=val;}},_upload:{_getEventCollection(event,options){const path=[event,(options&&options.capture)?"true":"false"];let collection=uploadEventListeners;for(let i=0;i<path.length;i++){const cmp=path[i];collection.set(cmp,collection.get(cmp)||new Map());collection=collection.get(cmp);}
|
||||
return collection;},addEventListener(event,cb,options={}){requestInstance?.upload?.addEventListener?.(event,cb,options);this._getEventCollection(event,options).set(cb,{options,event});},removeEventListener(event,cb,options={}){requestInstance?.upload?.removeEventListener?.(event,cb,options);this._getEventCollection(event,options).delete(cb);},dispatchEvent(...args){if(requestInstance?.upload?.dispatchEvent instanceof Function){requestInstance.upload.dispatchEvent(...args);return;}
|
||||
uploadDispatchedEvents.push(args);},set onabort(cb){this.addEventListener('abort',cb);},set onerror(cb){this.addEventListener('error',cb);},set onload(cb){this.addEventListener('load',cb);},set onloadend(cb){this.addEventListener('loadend',cb);},set onloadstart(cb){this.addEventListener('loadstart',cb);},set onprogress(cb){this.addEventListener('progress',cb);},set ontimeout(cb){this.addEventListener('timeout',cb);}},get upload(){return requestInstance?requestInstance.upload:this._upload;}}
|
||||
for(const chainableMethod of['done','always','fail','success','error','complete']){proxyXHRObject[chainableMethod]=(function(...args){decoratorQueues[chainableMethod]=decoratorQueues[chainableMethod]||[];decoratorQueues[chainableMethod].push(args);requestInstance?.[chainableMethod]?.(...args);return this;}).bind(proxyXHRObject);}
|
||||
for(const simpleMethod of['getAllResponseHeaders','getResponseHeader']){proxyXHRObject[simpleMethod]=(function(...args){return requestInstance?.[simpleMethod]?.(...args);}).bind(proxyXHRObject);}
|
||||
getFreshCsrfKey().then(()=>{Debug.log(`Intercepted Fetch request and get fresh CSRF Key`);requestInstance=method(url,options);if(requestInstance.upload){if(Object.keys(uploadEventListeners).length){function evalCollection(collection){for(const[key,childCollection]of collection.entries()){if(key instanceof Function){requestInstance.upload.addEventListener(childCollection.event,key,childCollection.options);}else{evalCollection(childCollection);}}}
|
||||
evalCollection(uploadEventListeners);}
|
||||
for(const args of uploadDispatchedEvents){requestInstance.upload.dispatchEvent(...args);}}
|
||||
if(mimeTypeOverride){requestInstance.overrideMimeType(mimeTypeOverride);}
|
||||
for(const queue in decoratorQueues){requestInstance[queue](...decoratorQueues[queue]);}
|
||||
for(const property in properties){requestInstance[property]=properties[property];}
|
||||
requestInstance.then((...result)=>{thenResolve(...result);}).catch(err=>{thenReject(err);});if(proxyXHRObject.aborted){proxyXHRObject.abortedStatusText?requestInstance.abort(proxyXHRObject.abortedStatusText):requestInstance.abort();}});return proxyXHRObject;}
|
||||
if(getSetting('mock_ajax')){return wrap(getSetting('mock_ajax'));}
|
||||
return wrap($.ajax);},fetch=function(url,settings={}){return new Promise((resolve,reject)=>{const options={};if(typeof settings==='object'){Object.assign(options,settings)}else if(settings){return resolve(new TypeError(`Could not generate an ajax request because the settings is supposed to be of type object. Got a(n) ${typeof settings}`));}
|
||||
if(typeof url==='string'){options.url=url;}else if(typeof url==='object'){Object.assign(options,url)}else{return reject(new TypeError(`Could not generate an ajax request because url is supposed to be a string or an object. Got a ${typeof url}`));}
|
||||
options.async=true
|
||||
delete options.error
|
||||
@@ -32,7 +51,10 @@ delete options.traditional
|
||||
delete options.xhr
|
||||
delete options.xhrFields
|
||||
if(options.type&&!options.method){options.method=options.type;delete options.type;}
|
||||
getAjax()(options).done(resolve).fail(reject)})},getContainer=function(){var tryThis=$(getSetting('container'));return(tryThis.length)?tryThis:$('body');},_setAjaxConfig=function(){var data={csrfKey:ips.getSetting('csrfKey')};$.ajaxSetup({data:data,cache:true});var count=0;$(document).ajaxSend(function(event,request,settings){if(!_.isUndefined(settings)&&settings.showLoading===true){if(!$('#elAjaxLoading').length){getContainer().append(templates.render('core.general.ajax'));}
|
||||
getAjax()(options).done(resolve).fail(reject)})},getContainer=function(){var tryThis=$(getSetting('container'));return(tryThis.length)?tryThis:$('body');},_refreshCsrfKey=async function(){setSetting('csrfKeyExpiry',Math.floor(Date.now()/1000+20));try{const response=await window.fetch(getSetting('baseURL').toString().replace(/\/+$/,'')+'/?app=core&module=system&controller=ajax&do=getCsrfKey&path='+window.location.pathname);const data=await response.json();Debug.log(`Got new CSRF Key: ${data.key}`);setSetting('csrfKey',data.key);setSetting('csrfKeyExpiry',typeof data.expiry==="number"?data.expiry:Math.floor(Date.now()/1000+500));_setAjaxConfig();document.querySelectorAll(`form input[name="csrfKey"]`).forEach(input=>{input.value=data.key;});document.querySelectorAll(`form:is([action*="?csrfKey="],[action*="&csrfKey="])`).forEach(form=>{const url=new URL(form.action);if((url.toString().startsWith('https:'+ips.getSetting('baseURL'))||url.toString().startsWith('http:'+ips.getSetting('baseURL')))&&(url.searchParams.has('csrfKey')||form.method.toLowerCase()!=='get')){url.searchParams.set('csrfKey',data.key);form.action=url.toString();}});document.querySelectorAll(`[href*="?csrfKey="], [href*="&csrfKey="]`).forEach(linkLikeEl=>{const url=new URL(linkLikeEl.href||linkLikeEl.getAttribute('href'));if((url.toString().startsWith('https:'+ips.getSetting('baseURL'))||url.toString().startsWith('http:'+ips.getSetting('baseURL')))&&url.searchParams.has('csrfKey')){url.searchParams.set('csrfKey',data.key);linkLikeEl.setAttribute('href',url.toString());}});document.dispatchEvent(new CustomEvent('ips:csrfKeyUpdated'));}catch(e){Debug.warn(e);}},getCsrfKeyExpiry=function(){const setting=getSetting('csrfKeyExpiry');if(typeof setting==="number"&&!Number.isNaN(setting)&&getSetting('csrfKey')){return setting;}
|
||||
return 0;},getFreshCsrfKey=async function(){if(getSetting('memberID')&&getSetting('csrfKey')){return getSetting('csrfKey');}
|
||||
if(Date.now()/1000>=getCsrfKeyExpiry()){await _refreshCsrfKey();}
|
||||
return getSetting('csrfKey');},_setAjaxConfig=function(){var data={csrfKey:getSetting('csrfKey')};$.ajaxSetup({data:data,cache:true});},_setAjaxEventListeners=function(){var count=0;$(document).ajaxSend(function(event,request,settings){if(!_.isUndefined(settings)&&settings.showLoading===true){if(!$('#elAjaxLoading').length){getContainer().append(templates.render('core.general.ajax'));}
|
||||
count++;ips.utils.anim.go('fadeIn fast',$('#elAjaxLoading'));}}).ajaxComplete(function(event,request,settings){if(!_.isUndefined(settings)&&settings.showLoading===true){count--;if(count===0){ips.utils.anim.go('fadeOut fast',$('#elAjaxLoading'));}}
|
||||
if(!_.isUndefined(settings)&&!settings.bypassRedirect){var responseJson=null;if(!_.isUndefined(request.responseJSON)&&!_.isUndefined(request.responseJSON.redirect)){responseJson=request.responseJSON;}
|
||||
else if(!_.isUndefined(request.responseText)){try
|
||||
@@ -63,11 +85,14 @@ for(const group of['ui','utils']){for(const module in window.ips[group]){if(wind
|
||||
e.cleanupTarget=elem
|
||||
Debug.error(e)}}}}})
|
||||
$(document).trigger('contentCleanup',[elem])}
|
||||
return{boot,createModule,getSetting,getAllSettings,setSetting,getGraphQlData,setGraphQlData,getAjax,fetch,getContainer,setString,haveString,getString,pluralize,getLocation,templates,testConsole,cleanContentsOf,uid(){return`${Math.round(Math.random() * Math.pow(16, 5)).toString(16)}-${Math.round(Math.random() * Math.pow(16, 5)).toString(16)}-${Math.round(Math.random() * Math.pow(16, 5)).toString(16)}-${Math.round(Math.random() * Math.pow(16, 5)).toString(16)}`},logTime(cb,message="Done timing code",{threshold=0}={}){const stack=(new Error()).stack;const lastLine=stack.split('\n').slice(0,3).pop().trim().replace(/^at\s*/,'');logTimeIndent++;let start=Date.now();const res=cb();const end=Date.now();if(message instanceof Function){try{message=message(end-start);}catch(e){e.message="\t".repeat(Math.max(0,logTimeIndent-1))+e.message;Debug.warn(e);message="Done timing code, but a message generator failed";}}
|
||||
return{boot,createModule,getSetting,getAllSettings,setSetting,getGraphQlData,setGraphQlData,getAjax,fetch,getContainer,setString,haveString,getString,pluralize,getLocation,templates,testConsole,cleanContentsOf,uid(){return`${Math.round(Math.random() * Math.pow(16, 5)).toString(16)}-${Math.round(Math.random() * Math.pow(16, 5)).toString(16)}-${Math.round(Math.random() * Math.pow(16, 5)).toString(16)}-${Math.round(Math.random() * Math.pow(16, 5)).toString(16)}`},logTime(cb,message="Done timing code",{threshold=0}={}){const stack=(new Error()).stack;const lastLine=stack.split('\n').slice(0,3).pop().trim().replace(/^at\s*/,'');logTimeIndent++;const now=window.performance.now instanceof Function?()=>window.performance.now():Date.now;const start=now();const doneExecuting=()=>{const end=now();if(message instanceof Function){try{message=message(end-start);}catch(e){e.message="\t".repeat(Math.max(0,logTimeIndent-1))+e.message;Debug.warn(e);message="Done timing code, but a message generator failed";}}
|
||||
if((end-start>=threshold)&&Debug.isEnabled()){if(typeof message==="string"){console.log(`${"\t".repeat(Math.max(0, logTimeIndent - 1))}${end - start}ms: ${message}\n${"\t".repeat(Math.max(1, logTimeIndent))}${lastLine}`);}else{console.log(`${"\t".repeat(Math.max(0, logTimeIndent - 1))}${end - start}ms: `,message,`\n${"\t".repeat(Math.max(1, logTimeIndent))}${lastLine}`);}}
|
||||
logTimeIndent--;return res;}};}());ips.boot(ipsSettings);}(jQuery,_));!function(){var lastBtn=null
|
||||
logTimeIndent--;}
|
||||
const res=cb();if(res instanceof Promise){return res.then((result)=>{doneExecuting();return result;})}
|
||||
doneExecuting();return res;}};}());ips.boot(ipsSettings);}(jQuery,_));!function(){var lastBtn=null
|
||||
document.addEventListener('click',function(e){if(!e.target.closest)return;lastBtn=e.target.closest('button, input[type=submit]');},true);document.addEventListener('submit',function(e){if('submitter'in e)return;var canditates=[document.activeElement,lastBtn];lastBtn=null;for(var i=0;i<canditates.length;i++){var candidate=canditates[i];if(!candidate)continue;if(!candidate.form)continue;if(!candidate.matches('button, input[type=button], input[type=image]'))continue;e.submitter=candidate;return;}
|
||||
e.submitter=e.target.querySelector('button, input[type=button], input[type=image]');},true);}();;
|
||||
e.submitter=e.target.querySelector('button, input[type=button], input[type=image]');},true);}();if(navigator.standalone){document.addEventListener("scroll",iosPwaScrollFix,{passive:true});function iosPwaScrollFix(){if(window.scrollY===0){document.documentElement.scrollTop=0;}}
|
||||
document.addEventListener("ips:toggleComplete",iosPwaOffcanvasFix);function iosPwaOffcanvasFix(e){if(e.target.matches('[data-ips-hidden-group="offcanvas"]')){document.documentElement.scrollTop+=0;};}};
|
||||
!function(){"use strict";var t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};!function(e){function n(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=Object.create(t.prototype);for(var a in n)o[a]=n[a];return o.constructor=e,e.prototype=o,e}function o(t){t=t||{},this.defaultProtocol=t.defaultProtocol||h.defaultProtocol,this.events=t.events||h.events,this.format=t.format||h.format,this.formatHref=t.formatHref||h.formatHref,this.nl2br=t.nl2br||h.nl2br,this.tagName=t.tagName||h.tagName,this.target=t.target||h.target,this.validate=t.validate||h.validate,this.ignoreTags=[],this.attributes=t.attributes||t.linkAttributes||h.attributes,this.className=t.className||t.linkClass||h.className;for(var e=t.ignoreTags||h.ignoreTags,n=0;n<e.length;n++)this.ignoreTags.push(e[n].toUpperCase())}function a(t,e){for(var n=0;n<t.length;n++)if(t[n]===e)return!0;return!1}function r(t){return t}function i(t,e){return"url"===e?"_blank":null}function s(){return function(t){this.j=[],this.T=t||null}}function c(t,e,n,o){for(var a=0,r=t.length,i=e,s=[],c=void 0;a<r&&(c=i.next(t[a]));)i=c,a++;if(a>=r)return[];for(;a<r-1;)c=new m(o),s.push(c),i.on(t[a],c),i=c,a++;return c=new m(n),s.push(c),i.on(t[r-1],c),s}function l(){return function(t){t&&(this.v=t)}}function u(t){var e=t?{v:t}:{};return n(b,l(),e)}function p(t){return t instanceof v||t instanceof R}var h={defaultProtocol:"http",events:null,format:r,formatHref:r,nl2br:!1,tagName:"a",target:i,validate:!0,ignoreTags:[],attributes:null,className:"linkified"};o.prototype={resolve:function(t){var e=t.toHref(this.defaultProtocol);return{formatted:this.get("format",t.toString(),t),formattedHref:this.get("formatHref",e,t),tagName:this.get("tagName",e,t),className:this.get("className",e,t),target:this.get("target",e,t),events:this.getObject("events",e,t),attributes:this.getObject("attributes",e,t)}},check:function(t){return this.get("validate",t.toString(),t)},get:function(e,n,o){var a=this[e];if(!a)return a;switch("undefined"==typeof a?"undefined":t(a)){case"function":return a(n,o.type);case"object":var r=a[o.type]||h[e];return"function"==typeof r?r(n,o.type):r}return a},getObject:function(t,e,n){var o=this[t];return"function"==typeof o?o(e,n.type):o}};var g=Object.freeze({defaults:h,Options:o,contains:a}),f=s();f.prototype={defaultTransition:!1,on:function(t,e){if(t instanceof Array){for(var n=0;n<t.length;n++)this.j.push([t[n],e]);return this}return this.j.push([t,e]),this},next:function(t){for(var e=0;e<this.j.length;e++){var n=this.j[e],o=n[0],a=n[1];if(this.test(t,o))return a}return this.defaultTransition},accepts:function(){return!!this.T},test:function(t,e){return t===e},emit:function(){return this.T}};var m=n(f,s(),{test:function(t,e){return t===e||e instanceof RegExp&&e.test(t)}}),d=n(f,s(),{jump:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=this.next(new t(""));return n===this.defaultTransition?(n=new this.constructor(e),this.on(t,n)):e&&(n.T=e),n},test:function(t,e){return t instanceof e}}),b=l();b.prototype={toString:function(){return this.v+""}};var v=u(),y=u("@"),k=u(":"),w=u("."),j=u(),x=u(),z=u("\n"),O=u(),S=u("+"),N=u("#"),T=u(),A=u("mailto:"),L=u("?"),E=u("/"),C=u("_"),P=u(),R=u(),q=u(),H=u("{"),B=u("["),U=u("<"),M=u("("),D=u("}"),I=u("]"),K=u(">"),_=u(")"),G=u("&"),Y=Object.freeze({Base:b,DOMAIN:v,AT:y,COLON:k,DOT:w,PUNCTUATION:j,LOCALHOST:x,NL:z,NUM:O,PLUS:S,POUND:N,QUERY:L,PROTOCOL:T,MAILTO:A,SLASH:E,UNDERSCORE:C,SYM:P,TLD:R,WS:q,OPENBRACE:H,OPENBRACKET:B,OPENANGLEBRACKET:U,OPENPAREN:M,CLOSEBRACE:D,CLOSEBRACKET:I,CLOSEANGLEBRACKET:K,CLOSEPAREN:_,AMPERSAND:G}),Q="aaa|aarp|abb|abbott|abogado|ac|academy|accenture|accountant|accountants|aco|active|actor|ad|adac|ads|adult|ae|aeg|aero|af|afl|ag|agency|ai|aig|airforce|airtel|al|alibaba|alipay|allfinanz|alsace|am|amica|amsterdam|an|analytics|android|ao|apartments|app|apple|aq|aquarelle|ar|aramco|archi|army|arpa|arte|as|asia|associates|at|attorney|au|auction|audi|audio|author|auto|autos|avianca|aw|ax|axa|az|azure|ba|baidu|band|bank|bar|barcelona|barclaycard|barclays|bargains|bauhaus|bayern|bb|bbc|bbva|bcg|bcn|bd|be|beats|beer|bentley|berlin|best|bet|bf|bg|bh|bharti|bi|bible|bid|bike|bing|bingo|bio|biz|bj|black|blackfriday|bloomberg|blue|bm|bms|bmw|bn|bnl|bnpparibas|bo|boats|boehringer|bom|bond|boo|book|boots|bosch|bostik|bot|boutique|br|bradesco|bridgestone|broadway|broker|brother|brussels|bs|bt|budapest|bugatti|build|builders|business|buy|buzz|bv|bw|by|bz|bzh|ca|cab|cafe|cal|call|camera|camp|cancerresearch|canon|capetown|capital|car|caravan|cards|care|career|careers|cars|cartier|casa|cash|casino|cat|catering|cba|cbn|cc|cd|ceb|center|ceo|cern|cf|cfa|cfd|cg|ch|chanel|channel|chase|chat|cheap|chloe|christmas|chrome|church|ci|cipriani|circle|cisco|citic|city|cityeats|ck|cl|claims|cleaning|click|clinic|clinique|clothing|cloud|cLine truncated
|
||||
"use strict";!function(e,t,n){var i=function(t,n){function i(e,t,n){var i=n[n.length-1];e.replaceChild(i,t);for(var r=n.length-2;r>=0;r--)e.insertBefore(n[r],i),i=n[r]}function r(e,t,n){for(var i=[],r=e,a=Array.isArray(r),o=0,r=a?r:r[Symbol.iterator]();;){var l;if(a){if(o>=r.length)break;l=r[o++]}else{if(o=r.next(),o.done)break;l=o.value}var f=l;if("nl"===f.type&&t.nl2br)i.push(n.createElement("br"));else if(f.isLink&&t.check(f)){var s=t.resolve(f),c=s.formatted,u=s.formattedHref,d=s.tagName,m=s.className,y=s.target,h=s.events,k=s.attributes,v=n.createElement(d);if(v.setAttribute("href",u),m&&v.setAttribute("class",m),y&&v.setAttribute("target",y),k)for(var g in k)v.setAttribute(g,k[g]);if(h)for(var b in h)v.addEventListener?v.addEventListener(b,h[b]):v.attachEvent&&v.attachEvent("on"+b,h[b]);v.appendChild(n.createTextNode(c)),i.push(v)}else i.push(n.createTextNode(f.toString()))}return i}function a(e,t,n){if(!e||e.nodeType!==d)throw new Error("Cannot linkify "+e+" - Invalid DOM Node type");var o=t.ignoreTags;if("A"===e.tagName||s.contains(o,e.tagName))return e;for(var l=e.firstChild;l;){switch(l.nodeType){case d:a(l,t,n);break;case m:var c=l.nodeValue,y=f(c);if(0===y.length||1===y.length&&y[0]instanceof u)break;var h=r(y,t,n);i(e,l,h),l=h[h.length-1]}l=l.nextSibling}return e}function o(t,n){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];try{i=i||document||e&&e.document||global&&global.document}catch(r){}if(!i)throw new Error("Cannot find document implementation. If you are in a non-browser environment like Node.js, pass the document implementation as the third argument to linkifyElement.");return n=new c(n),a(t,n,i)}function l(t){function n(e){return e=o.normalize(e),this.each(function(){o.helper(this,e,i)})}var i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t.fn=t.fn||{};try{i=i||document||e&&e.document||global&&global.document}catch(r){}if(!i)throw new Error("Cannot find document implementation. If you are in a non-browser environment like Node.js, pass the document implementation as the second argument to linkify/jquery");"function"!=typeof t.fn.linkify&&(t.fn.linkify=n,t(i).ready(function(){t("[data-linkify]").each(function(){var e=t(this),n=e.data(),i=n.linkify,r=n.linkifyNlbr,a={attributes:n.linkifyAttributes,defaultProtocol:n.linkifyDefaultProtocol,events:n.linkifyEvents,format:n.linkifyFormat,formatHref:n.linkifyFormatHref,nl2br:!!r&&0!==r&&"false"!==r,tagName:n.linkifyTagname,target:n.linkifyTarget,className:n.linkifyClassName||n.linkifyLinkclass,validate:n.linkifyValidate,ignoreTags:n.linkifyIgnoreTags},o="this"===i?e:e.find(i);o.linkify(a)})}))}t="default"in t?t["default"]:t;var f=n.tokenize,s=n.options,c=s.Options,u=n.parser.TOKENS.TEXT,d=1,m=3;o.helper=a,o.normalize=function(e){return new c(e)};try{!define&&(e.linkifyElement=o)}catch(y){}return l}(n,t);"function"!=typeof n.fn.linkify&&i(n)}(window,linkify,jQuery);;
|
||||
"use strict";function eventSuppressor(e){e.preventDefault();e.stopPropagation();}
|
||||
|
||||
|
Before Width: | Height: | Size: 641 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 688 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 5.0 KiB |
@@ -1 +0,0 @@
|
||||
<svg width="359" height="87" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" overflow="hidden"><defs><clipPath id="clip0"><rect x="457" y="317" width="359" height="87"/></clipPath></defs><g clip-path="url(#clip0)" transform="translate(-457 -317)"><path d="M0 0 399.915 0 399.915 399.915 0 399.915Z" fill="#FFFFFF" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M29.0938 200.158C28.9939 182.461 43.2908 168.064 60.9871 168.064L83.1824 168.064 83.1824 193.859 71.085 193.859 71.085 171.564 64.9862 171.564C64.8863 171.564 64.7863 171.564 64.6863 171.564 63.9865 171.564 63.2866 171.764 62.6867 171.964L62.7867 171.964C60.5872 172.863 59.0875 175.063 59.0875 177.562L59.0875 222.453C59.0875 225.752 61.7869 228.452 65.0862 228.452L71.1849 228.452 71.1849 206.156 83.2824 206.156 83.2824 231.951 61.387 231.951C43.7907 231.851 29.1938 217.854 29.0938 200.158Z" fill="#2A9C66" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M62.6867 171.964C63.2866 171.664 63.9865 171.564 64.6863 171.564 64.0864 171.564 63.3866 171.764 62.6867 171.964L62.6867 171.964Z" fill="#2A9C66" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M95.3798 231.851 95.3798 167.964 101.479 167.964C104.778 167.964 107.477 170.664 107.477 173.963L107.477 225.852C107.477 229.151 104.778 231.851 101.479 231.851L95.3798 231.851Z" fill="#2A9C66" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M124.374 181.362C124.374 173.763 130.172 168.364 138.071 168.364 142.47 168.364 146.069 169.964 148.469 172.863L144.769 176.363C143.07 174.463 140.97 173.363 138.471 173.363 133.772 173.363 130.372 176.663 130.372 181.462 130.372 186.261 133.672 189.56 138.471 189.56 140.97 189.56 143.07 188.56 144.769 186.561L148.469 190.06C146.069 192.959 142.47 194.559 138.071 194.559 130.172 194.359 124.374 188.96 124.374 181.362Z" fill="#18203D" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M150.768 181.362C150.768 173.863 156.567 168.364 164.565 168.364 172.463 168.364 178.362 173.863 178.362 181.362 178.362 188.86 172.463 194.359 164.565 194.359 156.567 194.359 150.768 188.86 150.768 181.362ZM172.364 181.362C172.364 176.563 168.964 173.263 164.465 173.263 159.966 173.263 156.567 176.563 156.567 181.362 156.567 186.161 159.966 189.46 164.465 189.46 169.064 189.36 172.364 186.161 172.364 181.362Z" fill="#18203D" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M206.356 193.959 206.356 178.862 198.958 191.359 196.358 191.359 188.96 179.262 188.96 193.959 183.461 193.959 183.461 168.764 188.26 168.764 197.658 184.461 206.956 168.764 211.755 168.764 211.855 193.959 206.356 193.959Z" fill="#18203D" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M241.349 193.959 241.349 178.862 233.95 191.359 231.351 191.359 223.953 179.262 223.953 193.959 218.454 193.959 218.454 168.764 223.253 168.764 232.651 184.461 241.949 168.764 246.748 168.764 246.848 193.959 241.349 193.959Z" fill="#18203D" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M253.246 182.861 253.246 168.764 259.045 168.764 259.045 182.661C259.045 187.46 261.145 189.46 264.644 189.46 268.243 189.46 270.243 187.46 270.243 182.661L270.243 168.764 276.042 168.764 276.042 182.861C276.042 190.26 271.842 194.359 264.644 194.359 257.445 194.359 253.246 190.26 253.246 182.861Z" fill="#18203D" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M305.535 168.764 305.535 193.959 300.736 193.959 288.139 178.662 288.139 193.959 282.34 193.959 282.34 168.764 287.139 168.764 299.637 184.061 299.637 168.764 305.535 168.764Z" fill="#18203D" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M312.234 168.764 318.033 168.764 318.033 193.959 312.234 193.959 312.234 168.764Z" fill="#18203D" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M329.63 173.463 321.532 173.463 321.532 168.664 343.527 168.664 343.527 173.463 335.429 173.463 335.429 193.959 329.63 193.959 329.63 173.463Z" fill="#18203D" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M361.024 185.061 361.024 193.959 355.225 193.959 355.225 184.961 345.427 168.764 351.626 168.764 358.324 179.962 365.023 168.764 370.721 168.764 361.024 185.061Z" fill="#18203D" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M147.469 206.456 147.469 231.651 141.67 231.651 141.67 221.353 130.272 221.353 130.272 231.651 124.474 231.651 124.474 206.456 130.272 206.456 130.272 216.354 141.67 216.354 141.67 206.456 147.469 206.456Z" fill="#18203D" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M154.067 206.456 159.866 206.456 159.866 231.651 154.067 231.651 154.067 206.456Z" fill="#18203D" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M190.76 206.456 179.862 231.651 174.063 231.651 163.165 206.456 169.464 206.456 177.162 224.452 184.961 206.456 190.76 206.456Z" fill="#18203D" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M213.655 226.952 213.655 231.651 194.159 231.651 194.159 206.456 213.155 206.456 213.Line truncated
|
||||
|
Before Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 16 KiB |
@@ -1 +0,0 @@
|
||||
<svg width="359" height="87" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" overflow="hidden"><defs><clipPath id="clip0"><rect x="457" y="317" width="359" height="87"/></clipPath></defs><g clip-path="url(#clip0)" transform="translate(-457 -317)"><path d="M0 0 399.915 0 399.915 399.915 0 399.915Z" fill="#FFFFFF" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M29.0938 200.158C28.9939 182.461 43.2908 168.064 60.9871 168.064L83.1824 168.064 83.1824 193.859 71.085 193.859 71.085 171.564 64.9862 171.564C64.8863 171.564 64.7863 171.564 64.6863 171.564 63.9865 171.564 63.2866 171.764 62.6867 171.964L62.7867 171.964C60.5872 172.863 59.0875 175.063 59.0875 177.562L59.0875 222.453C59.0875 225.752 61.7869 228.452 65.0862 228.452L71.1849 228.452 71.1849 206.156 83.2824 206.156 83.2824 231.951 61.387 231.951C43.7907 231.851 29.1938 217.854 29.0938 200.158Z" fill="#2A9C66" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M62.6867 171.964C63.2866 171.664 63.9865 171.564 64.6863 171.564 64.0864 171.564 63.3866 171.764 62.6867 171.964L62.6867 171.964Z" fill="#2A9C66" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M95.3798 231.851 95.3798 167.964 101.479 167.964C104.778 167.964 107.477 170.664 107.477 173.963L107.477 225.852C107.477 229.151 104.778 231.851 101.479 231.851L95.3798 231.851Z" fill="#2A9C66" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M124.374 181.362C124.374 173.763 130.172 168.364 138.071 168.364 142.47 168.364 146.069 169.964 148.469 172.863L144.769 176.363C143.07 174.463 140.97 173.363 138.471 173.363 133.772 173.363 130.372 176.663 130.372 181.462 130.372 186.261 133.672 189.56 138.471 189.56 140.97 189.56 143.07 188.56 144.769 186.561L148.469 190.06C146.069 192.959 142.47 194.559 138.071 194.559 130.172 194.359 124.374 188.96 124.374 181.362Z" fill="#18203D" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M150.768 181.362C150.768 173.863 156.567 168.364 164.565 168.364 172.463 168.364 178.362 173.863 178.362 181.362 178.362 188.86 172.463 194.359 164.565 194.359 156.567 194.359 150.768 188.86 150.768 181.362ZM172.364 181.362C172.364 176.563 168.964 173.263 164.465 173.263 159.966 173.263 156.567 176.563 156.567 181.362 156.567 186.161 159.966 189.46 164.465 189.46 169.064 189.36 172.364 186.161 172.364 181.362Z" fill="#18203D" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M206.356 193.959 206.356 178.862 198.958 191.359 196.358 191.359 188.96 179.262 188.96 193.959 183.461 193.959 183.461 168.764 188.26 168.764 197.658 184.461 206.956 168.764 211.755 168.764 211.855 193.959 206.356 193.959Z" fill="#18203D" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M241.349 193.959 241.349 178.862 233.95 191.359 231.351 191.359 223.953 179.262 223.953 193.959 218.454 193.959 218.454 168.764 223.253 168.764 232.651 184.461 241.949 168.764 246.748 168.764 246.848 193.959 241.349 193.959Z" fill="#18203D" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M253.246 182.861 253.246 168.764 259.045 168.764 259.045 182.661C259.045 187.46 261.145 189.46 264.644 189.46 268.243 189.46 270.243 187.46 270.243 182.661L270.243 168.764 276.042 168.764 276.042 182.861C276.042 190.26 271.842 194.359 264.644 194.359 257.445 194.359 253.246 190.26 253.246 182.861Z" fill="#18203D" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M305.535 168.764 305.535 193.959 300.736 193.959 288.139 178.662 288.139 193.959 282.34 193.959 282.34 168.764 287.139 168.764 299.637 184.061 299.637 168.764 305.535 168.764Z" fill="#18203D" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M312.234 168.764 318.033 168.764 318.033 193.959 312.234 193.959 312.234 168.764Z" fill="#18203D" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M329.63 173.463 321.532 173.463 321.532 168.664 343.527 168.664 343.527 173.463 335.429 173.463 335.429 193.959 329.63 193.959 329.63 173.463Z" fill="#18203D" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M361.024 185.061 361.024 193.959 355.225 193.959 355.225 184.961 345.427 168.764 351.626 168.764 358.324 179.962 365.023 168.764 370.721 168.764 361.024 185.061Z" fill="#18203D" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M147.469 206.456 147.469 231.651 141.67 231.651 141.67 221.353 130.272 221.353 130.272 231.651 124.474 231.651 124.474 206.456 130.272 206.456 130.272 216.354 141.67 216.354 141.67 206.456 147.469 206.456Z" fill="#18203D" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M154.067 206.456 159.866 206.456 159.866 231.651 154.067 231.651 154.067 206.456Z" fill="#18203D" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M190.76 206.456 179.862 231.651 174.063 231.651 163.165 206.456 169.464 206.456 177.162 224.452 184.961 206.456 190.76 206.456Z" fill="#18203D" transform="matrix(1 0 0 1.00095 439.696 159.48)"/><path d="M213.655 226.952 213.655 231.651 194.159 231.651 194.159 206.456 213.155 206.456 213.Line truncated
|
||||
|
Before Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 8.4 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 302 B |
|
Before Width: | Height: | Size: 498 B |
|
Before Width: | Height: | Size: 299 B |
|
Before Width: | Height: | Size: 494 B |
|
Before Width: | Height: | Size: 533 B |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 537 B |
|
Before Width: | Height: | Size: 1.1 KiB |
@@ -1 +0,0 @@
|
||||
<svg viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg"><path d="m37.492188 0c-5.231001 0-9.704407 2.6689687-11.566407 6.5429688l-.001953.0019531c-.591 1.231-.923828 2.574375-.923828 3.9843751 0 2.103.739234 4.059984 1.990234 5.708984.658.86 1.465969 1.647985 2.417969 2.333985-.01.036-.055656 1.41589-.722656 2.33789l-.513672.708985c-.205.283-.229453.652031-.064453.957031.165.306.495516.498047.853516.498047h.896484c1.79 0 2.775203-.566547 3.783203-1.185547l1.359375-1.072266c.643.091 1.763297.183594 2.404297.183594 8.147 0 12.595703-4.790703 12.595703-10.470703 0-5.8470001-5.611813-10.529297-12.507812-10.529297zm0 2c5.793999 0 10.507812 3.8262969 10.507812 8.529297 0 5.146-4.159703 8.470703-10.595703 8.470703-.509 0-1.522-.077109-2.125-.162109-.093-.013-.186297-.021485-.279297-.021485-.446 0-.883281.149688-1.238281.429688l-1.267578.998047c-.568.347-1.014938.594609-1.585938.724609.307-.771.437281-1.561547.488281-2.185547.075-.706-.231312-1.408984-.820312-1.833984-.774-.558-1.447141-1.205922-1.994141-1.919922-1.035-1.366-1.582031-2.922-1.582031-4.5 0-1.0450001.234219-2.073547.699219-3.060547.01-.019.020297-.0405469.029297-.0605469 1.579-3.286 5.411671-5.4082031 9.763672-5.4082031zm-37.492188 6v36h50v-26.849609c-.547.821-1.221 1.582343-2 2.277343v17.53711l-13.121094-10.375c.625-.545 2.516875-2.267344 4.046875-3.652344-.495.034-.996484.0625-1.521484.0625-.43 0-.997156-.032125-1.535156-.078125-3.195 2.825-7.088203 6.333703-7.533203 6.720703-1.409 1.226-2.801938 1.359375-3.335938 1.359375s-1.925937-.132375-3.335938-1.359375c-1.4-1.219-17.541062-15.285719-19.664062-17.136719v-2.505859h21.029297c.033-.674.113531-1.343.269531-2zm32.5 1c-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5-.672-1.5-1.5-1.5zm5 0c-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5-.672-1.5-1.5-1.5zm5 0c-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5-.672-1.5-1.5-1.5zm-40.5 6.152344c3.184895 2.775255 8.720537 7.600592 13.121094 11.435547l-13.121094 10.376953zm14.654297 12.773437c1.016334.885642 3.450549 3.006229 3.699219 3.222657 1.918 1.67 3.888484 1.849609 4.646484 1.849609s2.729484-.179609 4.646484-1.849609c.372-.324001 1.785266-1.553704 3.697266-3.220704l14.65625 11.585938v2.486328h-46v-2.486328z"/></svg>
|
||||
|
Before Width: | Height: | Size: 2.2 KiB |
@@ -1 +0,0 @@
|
||||
<svg viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg"><path d="m25 0c-2.199219 0-4 1.800781-4 4 0 .515625.101563 1.015625.28125 1.46875-5.625 1.460938-9.28125 6.347656-9.28125 12.53125 0 7.832031-1.921875 11.398438-3.75 13.40625-.914062 1.003906-1.816406 1.613281-2.59375 2.1875-.390625.285156-.746094.570313-1.0625.9375-.316406.367188-.59375.890625-.59375 1.46875 0 1.375.84375 2.542969 2.03125 3.3125s2.746094 1.265625 4.625 1.65625c2.4375.503906 5.445313.769531 8.75.90625-.25.664063-.40625 1.378906-.40625 2.125 0 3.300781 2.699219 6 6 6s6-2.699219 6-6c0-.75-.152344-1.464844-.40625-2.125 3.304688-.136719 6.3125-.402344 8.75-.90625 1.878906-.390625 3.4375-.886719 4.625-1.65625s2.03125-1.9375 2.03125-3.3125c0-.578125-.277344-1.101562-.59375-1.46875-.316406-.367187-.671875-.652344-1.0625-.9375-.777344-.574219-1.679687-1.183594-2.59375-2.1875-1.828125-2.007812-3.75-5.574219-3.75-13.40625 0-6.179687-3.664062-11.0625-9.28125-12.53125.179688-.453125.28125-.953125.28125-1.46875 0-2.199219-1.800781-4-4-4zm0 2c1.117188 0 2 .882813 2 2 0 1.117188-.882812 2-2 2-1.117187 0-2-.882812-2-2 0-1.117187.882813-2 2-2zm2.34375 5.1875c5.332031.949219 8.65625 5.070313 8.65625 10.8125 0 8.167969 2.078125 12.363281 4.25 14.75 1.085938 1.191406 2.183594 1.9375 2.90625 2.46875.359375.265625.628906.488281.75.625s.09375.125.09375.15625c0 .625-.289062 1.082031-1.125 1.625-.835937.542969-2.195312 1.046875-3.9375 1.40625-3.484375.722656-8.445312.96875-13.9375.96875-5.492187 0-10.453125-.246094-13.9375-.96875-1.742187-.359375-3.101562-.863281-3.9375-1.40625-.835937-.542969-1.125-1-1.125-1.625 0-.03125-.027344-.019531.09375-.15625s.390625-.359375.75-.625c.722656-.53125 1.820313-1.277344 2.90625-2.46875 2.171875-2.386719 4.25-6.582031 4.25-14.75 0-5.738281 3.328125-9.828125 8.65625-10.78125.664063.488281 1.464844.78125 2.34375.78125.886719 0 1.679688-.316406 2.34375-.8125zm-5.78125 34.75c1.121094.023438 2.261719.0625 3.4375.0625s2.316406-.039062 3.4375-.0625c.355469.601563.5625 1.3125.5625 2.0625 0 2.222656-1.777344 4-4 4s-4-1.777344-4-4c0-.757812.199219-1.460937.5625-2.0625z"/></svg>
|
||||
|
Before Width: | Height: | Size: 2.0 KiB |
@@ -1 +0,0 @@
|
||||
<svg viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg"><path d="m12 3c-1.644531 0-3 1.355469-3 3v2.832031c-.019531.109375-.019531.21875 0 .324219v30.675781c-.019531.109375-.019531.21875 0 .324219v3.84375c0 1.644531 1.355469 3 3 3h20c1.644531 0 3-1.355469 3-3v-3.832031c.019531-.109375.019531-.21875 0-.324219v-7.84375h9c1.640625 0 3-1.355469 3-3v-11.902344c0-1.695312-1.394531-3.097656-3.09375-3.097656h-8.90625v-4.832031c.019531-.109375.019531-.21875 0-.324219v-2.84375c0-1.644531-1.355469-3-3-3zm0 2h20c.554688 0 1 .445313 1 1v2h-22v-2c0-.554687.445313-1 1-1zm-1 5h22v4h-7.90625c-1.699219 0-3.09375 1.402344-3.09375 3.097656v11.902344c0 1.644531 1.359375 3 3 3h1.871094c-.046875.328125-.042969.789063-.136719 1-.179687.425781-.449219.742188-1.113281 1.140625-.386719.234375-.570313.695313-.449219 1.128906.121094.433594.515625.730469.964844.730469 2.230469 0 4.996094-1.042969 6.425781-4h.4375v7h-22zm14.09375 6h8.738281c.109375.019531.21875.019531.324219 0h9.75c.605469 0 1.09375.488281 1.09375 1.097656v11.902344c0 .664063-.339844 1-1 1h-12c-.417969 0-.796875.261719-.9375.65625-.558594 1.523438-1.445312 2.308594-2.433594 2.773438.25-.746094.371094-1.515625.371094-2.429688 0-.550781-.449219-1-1-1h-3c-.660156 0-1-.335937-1-1v-11.902344c0-.609375.488281-1.097656 1.09375-1.097656zm9.90625 2c-.550781 0-1 .449219-1 1 0 .058594.003906.121094.015625.179688-1.171875.410156-2.015625 1.511718-2.015625 2.820312v3c0 .550781-.449219 1-1 1v1h3c0 .550781.449219 1 1 1s1-.449219 1-1h3v-1c-.550781 0-1-.449219-1-1v-3c0-1.3125-.84375-2.414062-2.015625-2.824219.007813-.058593.015625-.117187.015625-.175781 0-.550781-.449219-1-1-1zm-24 23h22v3c0 .554688-.445312 1-1 1h-20c-.554687 0-1-.445312-1-1zm8 1c-.359375-.003906-.695312.183594-.878906.496094-.179688.3125-.179688.695312 0 1.007812.183594.3125.519531.5.878906.496094h6c.359375.003906.695313-.183594.878906-.496094.179688-.3125.179688-.695312 0-1.007812-.183593-.3125-.519531-.5-.878906-.496094z"/></svg>
|
||||
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 6.6 KiB |
@@ -1219,7 +1219,7 @@ endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</div>
|
||||
<div class="i-flex i-flex-wrap_wrap i-gap_3 i-align-items_center i-margin-top_3">
|
||||
<div class="i-flex i-flex-wrap_wrap i-gap_2 i-align-items_center i-margin-top_3">
|
||||
<a href='
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $event->container()->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
@@ -1233,7 +1233,8 @@ IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $event->container()->_title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
</a>
|
||||
|
||||
<div class="i-flex i-flex-wrap_wrap i-gap_3 i-align-items_center">
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $event->container()->allow_comments ):
|
||||
@@ -1253,7 +1254,7 @@ IPSCONTENT;
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $event->container()->allow_reviews ):
|
||||
@@ -1273,6 +1274,7 @@ IPSCONTENT;
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1388,6 +1390,25 @@ endforeach;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</ul>
|
||||
IPSCONTENT;
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
function eventHovercard( $event, $date ) {
|
||||
$return = '';
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<i-data>
|
||||
<ul class="ipsData ipsData--grid ipsData--eventHovercard">
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Theme::i()->getTemplate( "view", "calendar" )->eventBlock( $event, $date, true );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</ul>
|
||||
</i-data>
|
||||
IPSCONTENT;
|
||||
|
||||
return $return;
|
||||
|
||||
@@ -309,22 +309,40 @@ IPSCONTENT;
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \count($items) ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<ul>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
foreach ( $items as $item ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<a href='
|
||||
<li><a href='
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $item->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
'>
|
||||
' data-id="
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $item->_id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
">
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $item->mapped( 'title' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
</a>
|
||||
|
||||
</a></li>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endforeach;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</ul>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -47,7 +47,11 @@ IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
[badge]">
|
||||
<option value="">
|
||||
<option value="" data-control="toggle" data-togglesoff="
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
_badge">
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'achievements_badge_none', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
@@ -515,7 +519,7 @@ $return .= <<<IPSCONTENT
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $action, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
" method="post" data-controller="core.admin.members.achievementRuleForm" class='ipsBox '>
|
||||
" method="post" data-controller="core.admin.members.achievementRuleForm" class='ipsBox' data-ipsform>
|
||||
<input type="hidden" name="
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
@@ -843,6 +847,24 @@ IPSCONTENT;
|
||||
endforeach;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( isset( $parts[$option] ) ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$ruleSelect->options['toggles'][$option] = ["rule_{$option}"];
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -876,7 +898,7 @@ $return .= <<<IPSCONTENT
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $option, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
' data-role="ruleWrap" style='display: none'>
|
||||
' data-role="ruleWrap" hidden>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -1042,7 +1064,7 @@ $return .= <<<IPSCONTENT
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $awardSubjectTranslatable->htmlId, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
" class='i-padding-top_3' style='display: none'>
|
||||
" class='i-padding-top_3' hidden>
|
||||
<p class='cRulesForm__condition__toDesc'>
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -1086,7 +1108,7 @@ $return .= <<<IPSCONTENT
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $awardOtherTranslatable->htmlId, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
" class='i-padding-top_3' style='display: none'>
|
||||
" class='i-padding-top_3' hidden>
|
||||
<p class='cRulesForm__condition__toDesc'>
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -1136,7 +1158,7 @@ IPSCONTENT;
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $element->htmlId, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
" style="visibility: hidden; position: absolute">
|
||||
" hidden style="position: absolute">
|
||||
<input type="checkbox" id="
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $element->htmlId, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
@@ -1218,7 +1240,7 @@ IPSCONTENT;
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $element->htmlId, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
_filter" style='display: none;'>
|
||||
_filter" hidden>
|
||||
<div class="cRulesForm__condition cRulesForm__condition--subCondition ipsBox i-position_relative i-padding_3 i-margin-top_3">
|
||||
<h2 class='cRulesForm__condition__title ipsRadius i-text-align_center i-font-size_1 i-font-weight_600 i-flex_00'>
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -11,34 +11,34 @@ IPSCONTENT;
|
||||
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=staff&controller=admin&do=save&id={$row['row_id']}&type={$row['row_id_type']}", null, "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
|
||||
$return .= <<<IPSCONTENT
|
||||
" method="post">
|
||||
<input type="hidden" name="csrfKey" value="
|
||||
<input type="hidden" name="csrfKey" value="
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( \IPS\Session::i()->csrfKey, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
">
|
||||
<div class='ipsBox i-margin-bottom_1'>
|
||||
<div class='acpFormTabContent'>
|
||||
<ul class='ipsForm ipsForm--horizontal ipsForm--restrictions'>
|
||||
<li class='ipsFieldRow' id="use_restrictions_id">
|
||||
<div class='ipsFieldRow__label '>
|
||||
|
||||
<div class='ipsBox i-margin-bottom_block'>
|
||||
<div class='acpFormTabContent'>
|
||||
<ul class='ipsForm ipsForm--horizontal ipsForm--restrictions'>
|
||||
<li class='ipsFieldRow' id="use_restrictions_id">
|
||||
<div class='ipsFieldRow__label '>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'mod_use_restrictions', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<span class='ipsFieldRow__required'>
|
||||
<span class='ipsFieldRow__required'>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'required', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span>
|
||||
</div>
|
||||
<div class='ipsFieldRow__content'>
|
||||
<ul class="ipsFieldList" role="radiogroup" id="elRadio_mod_use_restrictions_use_restrictions_id">
|
||||
<li>
|
||||
<input type="radio" class="ipsInput ipsInput--toggle" name="admin_use_restrictions" value="no"
|
||||
</div>
|
||||
<div class='ipsFieldRow__content'>
|
||||
<ul class="ipsFieldList" role="radiogroup" id="elRadio_mod_use_restrictions_use_restrictions_id">
|
||||
<li>
|
||||
<input type="radio" class="ipsInput ipsInput--toggle" name="admin_use_restrictions" value="no"
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $current === '*' ):
|
||||
@@ -49,25 +49,25 @@ IPSCONTENT;
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
id="elRadio_admin_use_restrictions_no_use_restrictions_id">
|
||||
<div class='ipsFieldList__content'>
|
||||
<label for='elRadio_admin_use_restrictions_no_use_restrictions_id' id='elField_mod_use_restrictions_label'>
|
||||
<div class='ipsFieldList__content'>
|
||||
<label for='elRadio_admin_use_restrictions_no_use_restrictions_id' id='elField_mod_use_restrictions_label'>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'mod_all_permissions', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</label>
|
||||
<div class='ipsFieldRow__desc'>
|
||||
|
||||
<div class='ipsFieldRow__desc'>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'admin_all_permissions_desc', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<input type="radio" class="ipsInput ipsInput--toggle" name="admin_use_restrictions" value="yes"
|
||||
</li>
|
||||
<li>
|
||||
<input type="radio" class="ipsInput ipsInput--toggle" name="admin_use_restrictions" value="yes"
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $current !== '*' ):
|
||||
@@ -78,31 +78,31 @@ IPSCONTENT;
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
data-control="toggle" data-toggles="permission_form_wrapper" id="elRadio_admin_use_restrictions_yes_use_restrictions_id">
|
||||
<div class='ipsFieldList__content'>
|
||||
<label for='elRadio_admin_use_restrictions_yes_use_restrictions_id' id='elField_mod_use_restrictions_label'>
|
||||
<div class='ipsFieldList__content'>
|
||||
<label for='elRadio_admin_use_restrictions_yes_use_restrictions_id' id='elField_mod_use_restrictions_label'>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'mod_restricted', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</label>
|
||||
<div class='ipsFieldRow__desc'>
|
||||
|
||||
<div class='ipsFieldRow__desc'>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'admin_restricted_desc', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id='permission_form_wrapper'>
|
||||
<div id='permission_form_wrapper' class="ipsBox">
|
||||
<i-tabs class='ipsTabs acpFormTabBar' id='ipsTabs_restrictions' data-ipsTabBar data-ipsTabBar-contentArea="#ipsTabs_restrictions_content">
|
||||
<div role="tablist">
|
||||
|
||||
@@ -196,7 +196,7 @@ IPSCONTENT;
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
>
|
||||
<div class='i-padding_3' data-controller='core.admin.members.restrictions'>
|
||||
<div class='' data-controller='core.admin.members.restrictions'>
|
||||
<div class='i-background_3 i-padding_3 acpAppRestrictions_header'>
|
||||
<input type="checkbox" class="ipsSwitch" id='elRestrict_
|
||||
IPSCONTENT;
|
||||
@@ -216,16 +216,16 @@ IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
> <label for='elRestrict_
|
||||
> <label for='elRestrict_
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $appKey, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
'><span class='ipsTitle ipsTitle--h3'>
|
||||
' class="i-font-size_3 i-font-weight_600 i-color_hard">
|
||||
IPSCONTENT;
|
||||
|
||||
$sprintf = array(\IPS\Member::loggedIn()->language()->addToStack('__app_' . $appKey )); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'acprestrictions_app', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span></label>
|
||||
</label>
|
||||
</div>
|
||||
<ul id='elRestrictions_root_
|
||||
IPSCONTENT;
|
||||
@@ -293,7 +293,7 @@ IPSCONTENT;
|
||||
|
||||
$val = "menu__{$appKey}_{$moduleKey}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</strong></h2> <span data-role='toggle' class='ipsJS_show'><a href='#' data-action='expandAll'><strong>
|
||||
</strong></h2> <span data-role='toggle' class='ipsJS_show'><a href='#' data-action='expandAll'><strong>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'expand', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
@@ -325,7 +325,7 @@ IPSCONTENT;
|
||||
|
||||
$val = "r__{$title}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</h3> <span data-role='massToggle' class='ipsJS_show'><a href='#' data-action='checkAll'>
|
||||
</h3> <span data-role='massToggle' class='ipsJS_show'><a href='#' data-action='checkAll'>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'all', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
|
||||
@@ -235,49 +235,6 @@ $return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=promotion
|
||||
$return .= <<<IPSCONTENT
|
||||
' style="width:100%"></iframe>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
function advertisementMessage( ) {
|
||||
$return = '';
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
<div class='i-background_2 i-padding_3 ipsPhotoPanel ipsPhotoPanel_small'>
|
||||
<i class='fa-solid fa-circle-info i-font-size_6'></i>
|
||||
<div>
|
||||
<h2 class='ipsTitle ipsTitle--h3'>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'ad_promo_title', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'ad_promo_msg', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</p>
|
||||
<br>
|
||||
<a href='
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Http\Url::ips( "docs/product-nexus" );
|
||||
$return .= <<<IPSCONTENT
|
||||
' class='ipsButton ipsButton--primary'>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'more_information', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<br><br>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
return $return;
|
||||
|
||||
@@ -261,86 +261,86 @@ IPSCONTENT;
|
||||
|
||||
<div class='ipsColumns' data-controller='core.admin.support.dashboard'>
|
||||
<div class='ipsColumns__primary'>
|
||||
<div class='ipsBox'>
|
||||
<p class='i-padding_3'>
|
||||
<div class='ipsMessage i-margin-bottom_block'>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'health_intro', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<br>
|
||||
<div class='ipsBox ipsHide' data-role="summary">
|
||||
<h2 class='ipsBox__header' data-role="summaryText"></h2>
|
||||
<div class='i-padding_2'>
|
||||
<button class='ipsButton ipsButton--inherit ipsButton--small' data-role="checkAgain">
|
||||
<div class="ipsBox i-margin-bottom_block">
|
||||
<div class='ipsHide' data-role="summary">
|
||||
<div class="ipsBox__header">
|
||||
<h2 data-role="summaryText" class="i-flex_11"></h2>
|
||||
<button class='ipsButton ipsButton--inherit ipsButton--small' data-role="checkAgain"><i class="fa-solid fa-arrows-rotate"></i>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'health_check_again_button', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div data-role="tableRows">
|
||||
<div class='ipsGrid i-basis_300 ipsGrid--system-health i-margin-top_2'>
|
||||
|
||||
<div data-role="tableRows">
|
||||
<div class='ipsGrid i-basis_340 ipsGrid--lines ipsGrid--system-health'>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
foreach ( $blocks as $key => $block ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<div class='ipsBox' data-role='patchworkItem' data-blockid='
|
||||
<div class="i-padding_3" data-role='patchworkItem' data-blockid='
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $key, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
'>
|
||||
<div class='elBlockTitle i-padding_2 i-flex i-align-items_center i-justify-content_space-between i-border-bottom_3'>
|
||||
<div>
|
||||
<h2 class='i-font-size_2 i-font-weight_600 i-color_hard'>
|
||||
|
||||
<div class='elBlockTitle i-margin-bottom_2 i-flex i-align-items_center i-justify-content_space-between'>
|
||||
<div>
|
||||
<h2 class='i-font-size_2 i-font-weight_600 i-color_hard'>
|
||||
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $block['title'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</h2>
|
||||
|
||||
</h2>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( !empty( $block['details'] ) ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<p class='i-font-weight_500 i-color_soft i-font-size_-1'>
|
||||
|
||||
<p class='i-font-weight_500 i-color_soft i-font-size_-1'>
|
||||
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $block['details'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</p>
|
||||
|
||||
</p>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<span class='i-color_warning ipsHide' data-iconType="critical"><i class="fa-solid fa-triangle-exclamation"></i></span>
|
||||
<span class='i-color_issue ipsHide' data-iconType="recommended"><i class="fa-solid fa-circle-info"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<span class='i-color_warning ipsHide' data-iconType="critical"><i class="fa-solid fa-triangle-exclamation"></i></span>
|
||||
<span class='i-color_issue ipsHide' data-iconType="recommended"><i class="fa-solid fa-circle-info"></i></span>
|
||||
</div>
|
||||
<div class='ipsLoading' data-role="supportBlock"></div>
|
||||
</div>
|
||||
<div class='ipsLoading' data-role="supportBlock"></div>
|
||||
</div>
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endforeach;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ipsBox i-margin-block_3'>
|
||||
<div class='ipsBox i-margin-bottom_block'>
|
||||
<h2 class='ipsBox__header'>
|
||||
|
||||
IPSCONTENT;
|
||||
@@ -403,18 +403,36 @@ $return .= <<<IPSCONTENT
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ipsBox i-margin-block_3'>
|
||||
<h2 class='ipsBox__header'>
|
||||
<div>
|
||||
<div class='ipsBox'>
|
||||
<div class='elHealthChart'>
|
||||
<div class='ipsGrid ipsGrid--lines ipsGrid--max-3 i-border-bottom_3'>
|
||||
<div class="i-flex i-gap_3 i-padding_3 ipsLinkPanelWrap">
|
||||
<a class='ipsLinkPanel' href='
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'health__system_log_chart', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=support&controller=systemLogs", null, "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
|
||||
$return .= <<<IPSCONTENT
|
||||
</div>
|
||||
</h2>
|
||||
<div class='elHealthChart'>
|
||||
<div class='ipsButtons ipsButtons--fill i-padding_3'>
|
||||
<a class='ipsButton ipsButton--inherit' href='
|
||||
' aria-hidden="true" tabindex="-1"><span>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'health_system_log_title', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span></a>
|
||||
<div class="i-font-size_6 i-color_soft i-opacity_7 i-flex_00"><i class="fa-solid fa-server"></i></div>
|
||||
<div class="i-flex_11 i-flex i-flex-direction_column i-align-items_start">
|
||||
<h3 class="ipsTitle ipsTitle--h4">
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'health_system_log_title', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</h3>
|
||||
<p class="i-color_soft i-margin-bottom_3">
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'health_system_log_desc', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</p>
|
||||
<a class='ipsButton ipsButton--secondary ipsButton--small i-margin-top_auto' href='
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=support&controller=systemLogs", null, "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
|
||||
@@ -425,7 +443,35 @@ IPSCONTENT;
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'health_system_log_title', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</a>
|
||||
<a class='ipsButton ipsButton--inherit' href='
|
||||
</div>
|
||||
</div>
|
||||
<div class="i-flex i-gap_3 i-padding_3 ipsLinkPanelWrap">
|
||||
<a class='ipsLinkPanel' href='
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=support&controller=errorLogs", null, "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
|
||||
$return .= <<<IPSCONTENT
|
||||
' aria-hidden="true" tabindex="-1"><span>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'health_error_log_title', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span></a>
|
||||
<div class="i-font-size_6 i-color_soft i-opacity_7 i-flex_00"><i class="fa-solid fa-triangle-exclamation"></i></div>
|
||||
<div class="i-flex_11 i-flex i-flex-direction_column i-align-items_start">
|
||||
<h3 class="ipsTitle ipsTitle--h4">
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'health_error_log_title', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</h3>
|
||||
<p class="i-color_soft i-margin-bottom_3">
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'health_error_log_desc', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</p>
|
||||
<a class='ipsButton ipsButton--secondary ipsButton--small i-margin-top_auto' href='
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=support&controller=errorLogs", null, "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
|
||||
@@ -436,7 +482,35 @@ IPSCONTENT;
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'health_error_log_title', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</a>
|
||||
<a class='ipsButton ipsButton--inherit' href='
|
||||
</div>
|
||||
</div>
|
||||
<div class="i-flex i-gap_3 i-padding_3 ipsLinkPanelWrap">
|
||||
<a class='ipsLinkPanel' href='
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=settings&controller=email&do=errorLog", null, "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
|
||||
$return .= <<<IPSCONTENT
|
||||
' aria-hidden="true" tabindex="-1"><span>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'health_email_error_log_title', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span></a>
|
||||
<div class="i-font-size_6 i-color_soft i-opacity_7 i-flex_00"><i class="fa-solid fa-envelope-open-text"></i></div>
|
||||
<div class="i-flex_11 i-flex i-flex-direction_column i-align-items_start">
|
||||
<h3 class="ipsTitle ipsTitle--h4">
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'health_email_error_log_title', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</h3>
|
||||
<p class="i-color_soft i-margin-bottom_3">
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'health_email_error_log_desc', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</p>
|
||||
<a class='ipsButton ipsButton--secondary ipsButton--small i-margin-top_auto' href='
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=settings&controller=email&do=errorLog", null, "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
|
||||
@@ -447,6 +521,8 @@ IPSCONTENT;
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'health_email_error_log_title', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{$chart}
|
||||
<p class='i-font-size_1 i-color_soft i-padding_2'>
|
||||
@@ -462,9 +538,9 @@ $return .= <<<IPSCONTENT
|
||||
</div>
|
||||
|
||||
<div class='ipsColumns__secondary i-basis_360'>
|
||||
<div class='ipsBox'>
|
||||
<div class='ipsBox i-margin-bottom_block'>
|
||||
<h2 class='ipsBox__header'>
|
||||
|
||||
<i class="fa-solid fa-book i-color_soft"></i>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'health__search_title', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
@@ -483,7 +559,7 @@ $return .= <<<IPSCONTENT
|
||||
</a>
|
||||
</h2>
|
||||
<div class='i-padding_3'>
|
||||
<p class='i-font-size_1'>
|
||||
<p class='i-margin-bottom_2'>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -555,17 +631,17 @@ $return .= <<<IPSCONTENT
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ipsBox i-margin-block_3'>
|
||||
<div class='ipsBox i-margin-bottom_block'>
|
||||
<h2 class='ipsBox__header'>
|
||||
|
||||
<i class="fa-solid fa-screwdriver-wrench i-color_soft"></i>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'health__tools_title', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</h2>
|
||||
<div class='i-padding_3'>
|
||||
<p class='i-font-size_1 i-margin-bottom_3'>
|
||||
<div class=''>
|
||||
<p class='i-font-size_1 i-padding_3 i-padding-bottom_1'>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -574,13 +650,13 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
</p>
|
||||
|
||||
<div class="ipsButtons">
|
||||
<div class="ipsLinkList i-padding_2">
|
||||
<a href="
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=support&controller=support&do=clearCaches" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
|
||||
$return .= <<<IPSCONTENT
|
||||
" class='ipsButton ipsButton--small ipsButton--inherit ipsButton--wide' data-role="clearCaches">
|
||||
" data-role="clearCaches"><i class="fa-regular fa-trash-can"></i>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'health_clear_caches_button', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
@@ -591,7 +667,7 @@ IPSCONTENT;
|
||||
|
||||
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=support&controller=support&do=thirdparty" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
|
||||
$return .= <<<IPSCONTENT
|
||||
" data-ipsDialog class='ipsButton ipsButton--small ipsButton--inherit ipsButton--wide' >
|
||||
" data-ipsDialog><i class="fa-solid fa-paint-roller"></i>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'health_customizations_overview', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
@@ -607,7 +683,7 @@ IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'health_debug_log_settings', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
' class='ipsButton ipsButton--small ipsButton--inherit ipsButton--wide'>
|
||||
'><i class="fa-regular fa-file-code"></i>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'health_debug_log_settings', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
@@ -624,7 +700,7 @@ IPSCONTENT;
|
||||
|
||||
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=support&controller=phpinfo", null, "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
|
||||
$return .= <<<IPSCONTENT
|
||||
' target='_blank' class='ipsButton ipsButton--small ipsButton--inherit ipsButton--wide'>
|
||||
' target='_blank'><i class="fa-solid fa-circle-info"></i>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'health_phpinfo', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
@@ -640,9 +716,9 @@ $return .= <<<IPSCONTENT
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ipsBox i-margin-block_3'>
|
||||
<div class='ipsBox i-margin-bottom_block'>
|
||||
<h2 class='ipsBox__header'>
|
||||
|
||||
<i class="fa-solid fa-life-ring i-color_soft"></i>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'health__support_title', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
@@ -1134,7 +1210,7 @@ IPSCONTENT;
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $action, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
" id='elCoppaForm' class='i-text-align_center' data-ipsForm>
|
||||
" data-ipsForm>
|
||||
<input type="hidden" name="
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
@@ -1202,7 +1278,7 @@ IPSCONTENT;
|
||||
endforeach;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<button type='submit' class='ipsButton ipsButton--large ipsButton--primary ipsHide'>
|
||||
<button type='submit' class='ipsButton ipsButton--large ipsButton--primary ipsHide'>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'continue', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
@@ -1767,7 +1843,7 @@ IPSCONTENT;
|
||||
$return = '';
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<ul>
|
||||
<ul class="i-grid i-gap_2">
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -1803,7 +1879,7 @@ IPSCONTENT;
|
||||
$count++;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<div class='i-padding-block_2 i-padding-inline_2 i-flex i-align-items_center i-gap_1
|
||||
<div class='i-flex i-align-items_center i-gap_1
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $listItem['critical'] ):
|
||||
@@ -1818,7 +1894,7 @@ IPSCONTENT;
|
||||
|
||||
else:
|
||||
$return .= <<<IPSCONTENT
|
||||
i-color_soft
|
||||
i-color_positive
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
@@ -2092,7 +2168,7 @@ else:
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<li>
|
||||
<div class="i-padding-block_2 i-padding-inline_2 i-flex i-align-items_center i-color_soft">
|
||||
<div class="i-flex i-align-items_center i-color_positive">
|
||||
<i class="fa-solid fa-check i-margin-end_icon"></i>
|
||||
<p class='i-flex_11'>
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -200,7 +200,7 @@ IPSCONTENT;
|
||||
foreach ( $buttonMethods as $method ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<li class='ipsFieldRow--fullWidth i-margin-top_1'>
|
||||
<li class='ipsFieldRow ipsFieldRow--fullWidth i-margin-top_1'>
|
||||
{$method->button()}
|
||||
</li>
|
||||
|
||||
@@ -390,7 +390,22 @@ $return .= <<<IPSCONTENT
|
||||
"
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Theme::i()->getTemplate( "global", "core", 'front' )->htmlDataAttributes( );
|
||||
if ( isset(\IPS\Widget\Request::i()->cookie['acptheme']) AND \IPS\Widget\Request::i()->cookie['acptheme'] == 'dark' ):
|
||||
$return .= <<<IPSCONTENT
|
||||
data-ips-scheme="dark"
|
||||
IPSCONTENT;
|
||||
|
||||
elseif ( !isset(\IPS\Widget\Request::i()->cookie['acptheme']) AND isset(\IPS\Widget\Request::i()->cookie['acpthemedefault']) AND \IPS\Widget\Request::i()->cookie['acpthemedefault'] == 'dark' ):
|
||||
$return .= <<<IPSCONTENT
|
||||
data-ips-scheme="dark"
|
||||
IPSCONTENT;
|
||||
|
||||
else:
|
||||
$return .= <<<IPSCONTENT
|
||||
data-ips-scheme="light"
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
>
|
||||
<head>
|
||||
@@ -453,19 +468,17 @@ IPSCONTENT;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<div class="i-margin-bottom_3">
|
||||
<div class='i-flex i-align-items_center ipsGap'>
|
||||
<div class='i-flex_00'>
|
||||
<span class='ipsUserPhoto ipsUserPhoto--medium'>
|
||||
<img src='
|
||||
<div class='ipsPhotoPanel' style="--i-photoPanelAvatar: 4em;">
|
||||
<span class='ipsUserPhoto'>
|
||||
<img src='
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= htmlspecialchars( \IPS\Member::load( $log->member_id )->photo, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
' alt=''>
|
||||
</span>
|
||||
</div>
|
||||
<div class='i-flex_11'>
|
||||
<h1>
|
||||
</span>
|
||||
<div class='ipsPhotoPanel__text'>
|
||||
<div class="ipsPhotoPanel__primary">
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -516,16 +529,14 @@ IPSCONTENT;
|
||||
$return .= \IPS\Member\Group::load( \IPS\Member::load( $log->member_id )->member_group_id )->formattedName;
|
||||
$return .= <<<IPSCONTENT
|
||||
)
|
||||
</h1>
|
||||
<div>
|
||||
</div>
|
||||
<div class="ipsPhotoPanel__secondary">
|
||||
IPSCONTENT;
|
||||
|
||||
$val = ( $log->time instanceof \IPS\DateTime ) ? $log->time : \IPS\DateTime::ts( $log->time );$return .= $val->html();
|
||||
$return .= <<<IPSCONTENT
|
||||
</div>
|
||||
<div>
|
||||
<div class='ipsTruncate'>
|
||||
|
||||
<div class="ipsPhotoPanel__secondary">
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'triggered_at', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
@@ -562,9 +573,7 @@ IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -610,71 +619,6 @@ $return .= \IPS\Theme\Template::htmlspecialchars( $log->backtrace, ENT_QUOTES |
|
||||
$return .= <<<IPSCONTENT
|
||||
</textarea>
|
||||
</div>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $log->loaded_hooks ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<div class="i-margin-bottom_3">
|
||||
<h3 class="ipsMinorTitle">
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'log_loaded_hooks', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</h3>
|
||||
<ul>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
foreach ( $log->loaded_hooks as $hook ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$details = \IPS\Log::hookDetails( $hook );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<li><a href='
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $details['type'] == 'app' ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=applications&controller=applications&do=details&id={$details['id']}", null, "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
' data-ipsDialog data-ipsDialog-title='
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'app_view_details', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
'>
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $hook, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
</a></li>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endforeach;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
return $return;
|
||||
|
||||
@@ -7713,7 +7713,7 @@ IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/global/globalTemplate", "layout:before", [ $title,$html,$location ] );
|
||||
$return .= <<<IPSCONTENT
|
||||
<div class="ipsLayout" data-ips-hook="layout">
|
||||
<div class="ipsLayout" id="ipsLayout" data-ips-hook="layout">
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/global/globalTemplate", "layout:inside-start", [ $title,$html,$location ] );
|
||||
@@ -11461,6 +11461,19 @@ $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/fron
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<ul>
|
||||
<li data-el="refresh" class="ipsMobileFooter__item ipsMobileFooter__item--refresh">
|
||||
<button type="button" class="ipsMobileFooter__link" onclick="location.reload()">
|
||||
<div class="ipsMobileFooter__icon">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512"><path d="M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160 352 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l111.5 0c0 0 0 0 0 0l.4 0c17.7 0 32-14.3 32-32l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 35.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1L16 432c0 17.7 14.3 32 32 32s32-14.3 32-32l0-35.1 17.6 17.5c0 0 0 0 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.8c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352l34.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48.4 288c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z"></path></svg>
|
||||
</div>
|
||||
<span class="ipsMobileFooter__text">
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'refresh_pwa', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span>
|
||||
</button>
|
||||
</li>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -11857,22 +11870,16 @@ $return .= <<<IPSCONTENT
|
||||
</button>
|
||||
</header>
|
||||
<div class="ipsOffCanvas__scroll">
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \IPS\Member::loggedIn()->member_id ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<div class="ipsOffCanvas__box">
|
||||
<ul class="ipsOffCanvas__nav ipsOffCanvas__nav--user">
|
||||
<li>
|
||||
|
||||
<div class="ipsOffCanvas__box">
|
||||
<ul class="ipsOffCanvas__nav ipsOffCanvas__nav--user">
|
||||
<li>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'members', 'front' ) ) ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<a href="
|
||||
<a href="
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= htmlspecialchars( \IPS\Member::loggedIn()->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
@@ -11883,30 +11890,30 @@ IPSCONTENT;
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'view_my_profile', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
">
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
else:
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<div class="ipsOffCanvas__item">
|
||||
|
||||
<div class="ipsOffCanvas__item">
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<span class="ipsPhotoPanel i-flex_11">
|
||||
<span class="ipsUserPhoto">
|
||||
<img src="
|
||||
<span class="ipsPhotoPanel i-flex_11">
|
||||
<span class="ipsUserPhoto">
|
||||
<img src="
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( \IPS\Member::loggedIn()->photo, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
" alt="" loading="lazy">
|
||||
</span>
|
||||
<span class="ipsPhotoPanel__text">
|
||||
<span class="i-font-size_2 i-font-weight_600 i-color_hard">
|
||||
</span>
|
||||
<span class="ipsPhotoPanel__text">
|
||||
<span class="i-font-size_2 i-font-weight_600 i-color_hard">
|
||||
IPSCONTENT;
|
||||
|
||||
if ( isset( $_SESSION['logged_in_as_key'] ) ):
|
||||
@@ -11927,58 +11934,58 @@ IPSCONTENT;
|
||||
$return .= htmlspecialchars( \IPS\Member::loggedIn()->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span>
|
||||
<small class="i-color_soft i-font-size_-1 i-word-break_break-all">
|
||||
<small class="i-color_soft i-font-size_-1 i-word-break_break-all">
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= htmlspecialchars( \IPS\Member::loggedIn()->email, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
</small>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
</span>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'members', 'front' ) ) ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
else:
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<nav class="ipsOffCanvas__box">
|
||||
<ul class="ipsOffCanvas__nav ipsOffCanvas__nav--profile" id="mobile-nav__profile">
|
||||
|
||||
</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<nav class="ipsOffCanvas__box">
|
||||
<ul class="ipsOffCanvas__nav ipsOffCanvas__nav--profile" id="mobile-nav__profile">
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \IPS\Theme::i()->getCssVariableFromKey('set__i-mobile-icons-location') == "header" ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<li><hr class="ipsHr"></li>
|
||||
<li>
|
||||
<button aria-controls="ipsOffCanvas--notifications" aria-expanded="false" data-ipscontrols data-ipsoffcanvascontent>
|
||||
<span class="ipsOffCanvas__icon">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="16" width="14" viewbox="0 0 448 512"><path d="M224 0c-17.7 0-32 14.3-32 32V51.2C119 66 64 130.6 64 208v25.4c0 45.4-15.5 89.5-43.8 124.9L5.3 377c-5.8 7.2-6.9 17.1-2.9 25.4S14.8 416 24 416H424c9.2 0 17.6-5.3 21.6-13.6s2.9-18.2-2.9-25.4l-14.9-18.6C399.5 322.9 384 278.8 384 233.4V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32zm0 96c61.9 0 112 50.1 112 112v25.4c0 47.9 13.9 94.6 39.7 134.6H72.3C98.1 328 112 281.3 112 233.4V208c0-61.9 50.1-112 112-112zm64 352H224 160c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z"></path></svg>
|
||||
</span>
|
||||
<span class="ipsOffCanvas__label">
|
||||
<li><hr class="ipsHr"></li>
|
||||
<li>
|
||||
<button aria-controls="ipsOffCanvas--notifications" aria-expanded="false" data-ipscontrols data-ipsoffcanvascontent>
|
||||
<span class="ipsOffCanvas__icon">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="16" width="14" viewbox="0 0 448 512"><path d="M224 0c-17.7 0-32 14.3-32 32V51.2C119 66 64 130.6 64 208v25.4c0 45.4-15.5 89.5-43.8 124.9L5.3 377c-5.8 7.2-6.9 17.1-2.9 25.4S14.8 416 24 416H424c9.2 0 17.6-5.3 21.6-13.6s2.9-18.2-2.9-25.4l-14.9-18.6C399.5 322.9 384 278.8 384 233.4V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32zm0 96c61.9 0 112 50.1 112 112v25.4c0 47.9 13.9 94.6 39.7 134.6H72.3C98.1 328 112 281.3 112 233.4V208c0-61.9 50.1-112 112-112zm64 352H224 160c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z"></path></svg>
|
||||
</span>
|
||||
<span class="ipsOffCanvas__label">
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'notifications', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span>
|
||||
<span class="ipsNotification"
|
||||
<span class="ipsNotification"
|
||||
IPSCONTENT;
|
||||
|
||||
if ( !\IPS\Member::loggedIn()->notification_cnt ):
|
||||
@@ -11999,45 +12006,45 @@ IPSCONTENT;
|
||||
$return .= htmlspecialchars( \IPS\Member::loggedIn()->notification_cnt, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span>
|
||||
</button>
|
||||
</li>
|
||||
|
||||
</button>
|
||||
</li>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \IPS\Member::loggedIn()->members_disable_pm != 2 and \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'messaging' ) ) ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<li>
|
||||
<button aria-controls="ipsOffCanvas--messenger" aria-expanded="false" data-ipscontrols data-ipsoffcanvascontent>
|
||||
<span class="ipsOffCanvas__icon">
|
||||
|
||||
<li>
|
||||
<button aria-controls="ipsOffCanvas--messenger" aria-expanded="false" data-ipscontrols data-ipsoffcanvascontent>
|
||||
<span class="ipsOffCanvas__icon">
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \IPS\Member::loggedIn()->members_disable_pm ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="16" width="20" viewbox="0 0 640 512" class="i-opacity_3"><path d="M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v24 16c0 21.2-5.1 41.1-14.2 58.7L416 300.8V256H358.9l-34.5-27c2.9-3.1 7-5 11.6-5h80V192H336c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V128H336c-8.8 0-16-7.2-16-16s7.2-16 16-16h80c0-53-43-96-96-96s-96 43-96 96v54.3L38.8 5.1zM358.2 378.2C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128v-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6v40c0 89.1 66.2 162.7 152 174.4V464H248c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4c20.4-2.8 39.7-9.1 57.3-18.2l-43.1-33.9z"></path></svg>
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="16" width="20" viewbox="0 0 640 512" class="i-opacity_3"><path d="M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v24 16c0 21.2-5.1 41.1-14.2 58.7L416 300.8V256H358.9l-34.5-27c2.9-3.1 7-5 11.6-5h80V192H336c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V128H336c-8.8 0-16-7.2-16-16s7.2-16 16-16h80c0-53-43-96-96-96s-96 43-96 96v54.3L38.8 5.1zM358.2 378.2C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128v-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6v40c0 89.1 66.2 162.7 152 174.4V464H248c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4c20.4-2.8 39.7-9.1 57.3-18.2l-43.1-33.9z"></path></svg>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
else:
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" viewbox="0 0 512 512"><path d="M64 112c-8.8 0-16 7.2-16 16v22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1V128c0-8.8-7.2-16-16-16H64zM48 212.2V384c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V212.2L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z"></path></svg>
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" viewbox="0 0 512 512"><path d="M64 112c-8.8 0-16 7.2-16 16v22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1V128c0-8.8-7.2-16-16-16H64zM48 212.2V384c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V212.2L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z"></path></svg>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</span>
|
||||
<span class="ipsOffCanvas__label">
|
||||
</span>
|
||||
<span class="ipsOffCanvas__label">
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'userbar_messages', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span>
|
||||
<span class="ipsNotification"
|
||||
<span class="ipsNotification"
|
||||
IPSCONTENT;
|
||||
|
||||
if ( !\IPS\Member::loggedIn()->msg_count_new ):
|
||||
@@ -12058,42 +12065,36 @@ IPSCONTENT;
|
||||
$return .= htmlspecialchars( \IPS\Member::loggedIn()->msg_count_new, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span>
|
||||
</button>
|
||||
</li>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</button>
|
||||
</li>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<li><hr class="ipsHr"></li>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
foreach ( \IPS\Member::loggedIn()->menu( 'mobile' )->getLinks() as $link ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
{$link}
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endforeach;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<li><hr class="ipsHr"></li>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
foreach ( \IPS\Member::loggedIn()->menu( 'mobile' )->getLinks() as $link ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
{$link}
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endforeach;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
IPSCONTENT;
|
||||
@@ -12988,7 +12989,7 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \IPS\Member::loggedIn()->members_disable_pm != 2 and \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'messaging' ) ) ):
|
||||
if ( \IPS\Member::loggedIn()->member_id and \IPS\Member::loggedIn()->members_disable_pm != 2 and \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'messaging' ) ) ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<section class="ipsOffCanvas" id="ipsOffCanvas--messenger" data-ips-hidden-group="offcanvas" hidden data-ips-hidden-top-layer>
|
||||
@@ -13080,6 +13081,12 @@ endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \IPS\Member::loggedIn()->member_id ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<!-- Notifications -->
|
||||
<section class="ipsOffCanvas" id="ipsOffCanvas--notifications" data-ips-hidden-group="offcanvas" hidden data-ips-hidden-top-layer>
|
||||
<button class="ipsOffCanvas__overlay" aria-controls="ipsOffCanvas--notifications" aria-expanded="false" data-ipscontrols><span class="ipsInvisible">
|
||||
@@ -13130,6 +13137,12 @@ $return .= <<<IPSCONTENT
|
||||
</div>
|
||||
</section>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -13168,7 +13181,7 @@ IPSCONTENT;
|
||||
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=search&controller=search&do=quicksearch", null, "search", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
" method="post">
|
||||
<div class="i-padding_2 i-position_sticky-top i-flex i-gap_1 i-margin-bottom_2">
|
||||
<div class="i-padding_2 i-flex i-gap_1">
|
||||
<input type="search" class="ipsInput ipsInput--text ipsOffCanvas__input" placeholder="
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -13504,7 +13517,7 @@ if ( !\IPS\Member::loggedIn()->member_id ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<li data-el="guest">
|
||||
<button class="ipsMobileNavIcons__button ipsMobileNavIcons__button--primary" aria-controls="ipsOffCanvas--guest" aria-expanded="false" data-ipscontrols>
|
||||
<button type="button" class="ipsMobileNavIcons__button ipsMobileNavIcons__button--primary" aria-controls="ipsOffCanvas--guest" aria-expanded="false" data-ipscontrols>
|
||||
<span>
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -13596,7 +13609,7 @@ if ( \IPS\Theme::i()->getCssVariableFromKey('set__i-mobile-icons-location') == "
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<li data-el="search">
|
||||
<button class="ipsMobileNavIcons__button" aria-controls="ipsOffCanvas--search" aria-expanded="false" data-ipscontrols>
|
||||
<button type="button" class="ipsMobileNavIcons__button" aria-controls="ipsOffCanvas--search" aria-expanded="false" data-ipscontrols>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" viewbox="0 0 512 512"><path d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"></path></svg>
|
||||
<span class="ipsInvisible">
|
||||
IPSCONTENT;
|
||||
@@ -13631,7 +13644,7 @@ if ( \IPS\Member::loggedIn()->member_id ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<li data-el="user">
|
||||
<button class="ipsMobileNavIcons__button" aria-controls="ipsOffCanvas--profile" aria-expanded="false" data-ipscontrols>
|
||||
<button type="button" class="ipsMobileNavIcons__button" aria-controls="ipsOffCanvas--profile" aria-expanded="false" data-ipscontrols>
|
||||
<span class="ipsUserPhoto">
|
||||
<img src="
|
||||
IPSCONTENT;
|
||||
@@ -13714,7 +13727,7 @@ if ( \IPS\Theme::i()->getCssVariableFromKey('set__i-mobile-icons-location') == "
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<li data-el="more">
|
||||
<button class="ipsMobileNavIcons__button" aria-controls="ipsOffCanvas--navigation" aria-expanded="false" data-ipscontrols>
|
||||
<button type="button" class="ipsMobileNavIcons__button" aria-controls="ipsOffCanvas--navigation" aria-expanded="false" data-ipscontrols>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="16" width="14" viewbox="0 0 448 512"><path d="M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"></path></svg>
|
||||
<span class="ipsInvisible">Menu</span>
|
||||
|
||||
@@ -13737,6 +13750,12 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
</button>
|
||||
</li>
|
||||
<li data-el="refresh" class="ipsMobileNavIcons__refresh">
|
||||
<button type="button" class="ipsMobileNavIcons__button" onclick="location.reload()">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512"><path d="M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160 352 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l111.5 0c0 0 0 0 0 0l.4 0c17.7 0 32-14.3 32-32l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 35.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1L16 432c0 17.7 14.3 32 32 32s32-14.3 32-32l0-35.1 17.6 17.5c0 0 0 0 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.8c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352l34.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48.4 288c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z"></path></svg>
|
||||
<span class="ipsInvisible">Refresh</span>
|
||||
</button>
|
||||
</li>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -14050,12 +14069,20 @@ $return .= \IPS\Theme::i()->getTemplate( "global", "core", 'front' )->navBarItem
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<li data-el="nav-more" hidden>
|
||||
<button aria-expanded="false" aria-controls="nav__more" data-ipscontrols type="button"><i class="fa-ips fa-ips--primary-nav"></i><span>
|
||||
<button aria-expanded="false" aria-controls="nav__more" data-ipscontrols type="button">
|
||||
<span class="ipsNavBar__icon" aria-hidden="true">
|
||||
<i class="fa-solid fa-bars"></i>
|
||||
</span>
|
||||
<span class="ipsNavBar__text">
|
||||
<span class="ipsNavBar__label">
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'more', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span><i class="fa-solid fa-angle-down"></i></button>
|
||||
</span>
|
||||
<i class="fa-solid fa-angle-down"></i>
|
||||
</span>
|
||||
</button>
|
||||
<ul class="ipsNav__dropdown" id="nav__more" data-ips-hidden-light-dismiss hidden></ul>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -14361,12 +14388,14 @@ endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</span>
|
||||
<span>
|
||||
<span class="ipsNavBar__text">
|
||||
<span class="ipsNavBar__label">
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $item->title(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span>
|
||||
<i class="fa-solid fa-angle-down"></i>
|
||||
<i class="fa-solid fa-angle-down"></i>
|
||||
</span>
|
||||
</button>
|
||||
<ul class='ipsNav__dropdown' id='elNavSecondary_
|
||||
IPSCONTENT;
|
||||
@@ -14429,12 +14458,14 @@ endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</span>
|
||||
<span>
|
||||
<span class="ipsNavBar__text">
|
||||
<span class="ipsNavBar__label">
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $item->title(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span>
|
||||
<i class="fa-solid fa-angle-down"></i>
|
||||
<i class="fa-solid fa-angle-down"></i>
|
||||
</span>
|
||||
</button>
|
||||
<ul class='ipsNav__dropdown' id='elNavSecondary_
|
||||
IPSCONTENT;
|
||||
@@ -14544,11 +14575,13 @@ endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</span>
|
||||
<span>
|
||||
<span class="ipsNavBar__text">
|
||||
<span class="ipsNavBar__label">
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $item->title(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
IPSCONTENT;
|
||||
@@ -18920,7 +18953,7 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
<div class="ipsReviewResponse i-padding_3 i-margin-bottom_3 i-background_2">
|
||||
<div class="i-flex i-align-items_center i-justify-content_space-between i-margin-bottom_2">
|
||||
<h4 class="ipsTitle ipsTitle--h3">
|
||||
<h4 class="ipsTitle ipsTitle--h5">
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'review_response_title', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
|
||||
@@ -6081,7 +6081,7 @@ $return .= <<<IPSCONTENT
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $r['guest_email'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
" class='ipsButton ipsButton_verySmall ipsButton_light'><i class="fa fa-envelope"></i>
|
||||
" class='ipsButton ipsButton--tiny ipsButton--light'><i class="fa fa-envelope"></i>
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $r['guest_email'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
@@ -894,7 +894,7 @@ $return .= <<<IPSCONTENT
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $startValue, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
}
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
@@ -936,7 +936,7 @@ $return .= <<<IPSCONTENT
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $endValue, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
}
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
@@ -1078,7 +1078,7 @@ $return .= <<<IPSCONTENT
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $startValue, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
}
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
@@ -1121,7 +1121,7 @@ $return .= <<<IPSCONTENT
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $endValue, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
}
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
|
||||
@@ -5564,7 +5564,7 @@ IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'reg_change_email', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
' data-ipsDialog-modal='true' class='ipsButton ipsButton_light ipsButton_verySmall'>
|
||||
' data-ipsDialog-modal='true' class='ipsButton ipsButton--inherit'>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'reg_change_email', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
@@ -9906,33 +9906,34 @@ IPSCONTENT;
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'mfa_settings_title', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</h2>
|
||||
</div>
|
||||
<div class='i-padding_3'>
|
||||
<p class='i-margin-bottom_4'>
|
||||
<p class=''>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'mfa_ucp_blurb', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</p>
|
||||
<div class='ipsBlockSpacer'>
|
||||
|
||||
</div>
|
||||
<div class='ipsGrid ipsGrid--lines ipsGrid--auto-fit ipsGrid--settingsMfa i-basis_400'>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
foreach ( $handlers as $key => $handler ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<div class="i-padding_3 ipsColumns">
|
||||
<div class='ipsColumns__primary i-basis_400'>
|
||||
<h2 class="ipsTitle ipsTitle--h4 i-margin-bottom_1">
|
||||
<div class="i-padding_4 i-flex i-flex-direction_column">
|
||||
<div class='i-flex_11'>
|
||||
<div class="i-margin-bottom_1 i-flex i-align-items_center i-gap_3 i-flex-wrap_wrap i-row-gap_0">
|
||||
<h2 class="ipsTitle ipsTitle--h4">
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $handler->ucpTitle(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</h2>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $handler->memberHasConfiguredHandler( \IPS\Member::loggedIn() ) ):
|
||||
$return .= <<<IPSCONTENT
|
||||
<span class='i-color_positive'><i class='fa-solid fa-check'></i>
|
||||
<span class='i-color_positive i-font-weight_600'><i class='fa-solid fa-check'></i>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'enabled', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
@@ -9942,82 +9943,74 @@ IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
</div>
|
||||
<p>
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $handler->ucpDesc(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
</p>
|
||||
</div>
|
||||
<div class='ipsColumns__secondary'>
|
||||
<ul class="ipsButtons ipsButtons--start">
|
||||
|
||||
</div>
|
||||
<ul class="ipsButtons ipsButtons--start i-margin-top_3">
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $handler->memberHasConfiguredHandler( \IPS\Member::loggedIn() ) ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<li><a href="
|
||||
<li><a href="
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=system&controller=settings&area=mfa&act=enable&type={$key}&_new=1" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "settings_mfa", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
|
||||
$return .= <<<IPSCONTENT
|
||||
" class="ipsButton ipsButton--small ipsButton--primary">
|
||||
" class="ipsButton ipsButton--inherit"><i class="fa-solid fa-gear"></i>
|
||||
IPSCONTENT;
|
||||
|
||||
$val = "mfa_{$key}_reauth"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</a></li>
|
||||
<li>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'or', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</li>
|
||||
<li><a href="
|
||||
<li><a href="
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=system&controller=settings&area=mfa&act=disable&type={$key}" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "settings_mfa", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
|
||||
$return .= <<<IPSCONTENT
|
||||
" class="i-color_negative" data-confirm>
|
||||
" class="ipsButton ipsButton--inherit i-color_negative" data-confirm><i class="fa-regular fa-circle-xmark"></i>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'mfa_disable', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</a></li>
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
else:
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<li><a href="
|
||||
<li><a href="
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=system&controller=settings&area=mfa&act=enable&type={$key}&_new=1" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "settings_mfa", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
|
||||
$return .= <<<IPSCONTENT
|
||||
" class="ipsButton ipsButton--small ipsButton--primary">
|
||||
" class="ipsButton ipsButton--primary"><i class='fa-solid fa-check'></i>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'enable', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</a></li>
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endforeach;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
IPSCONTENT;
|
||||
@@ -10050,41 +10043,47 @@ $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 's
|
||||
$return .= <<<IPSCONTENT
|
||||
</h2>
|
||||
</div>
|
||||
<div class='ipsBlockSpacer i-padding_3'>
|
||||
<div class="i-padding_3 ipsColumns">
|
||||
<div class='ipsColumns__primary i-basis_400'>
|
||||
<h2 class='ipsTitle ipsTitle--h4 i-margin-bottom_1'>
|
||||
<div class='ipsGrid ipsGrid--lines ipsGrid--auto-fit ipsGrid--privacySettings i-basis_400'>
|
||||
<div class="i-padding_4 i-flex i-flex-direction_column">
|
||||
<div class='i-flex_11'>
|
||||
<div class="i-margin-bottom_1 i-flex i-align-items_center i-gap_3 i-flex-wrap_wrap i-row-gap_0">
|
||||
<h2 class='ipsTitle ipsTitle--h4'>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'online_visibility', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</h2>
|
||||
<div class="i-font-size_2 i-font-weight_600 i-margin-bottom_1">
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \IPS\Member::loggedIn()->members_bitoptions['is_anon'] ):
|
||||
$return .= <<<IPSCONTENT
|
||||
<span class='i-color_negative'><i class='fa-solid fa-xmark'></i>
|
||||
|
||||
<span class='i-color_negative i-font-weight_600'><i class='fa-solid fa-xmark'></i>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'online_status_hidden', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
else:
|
||||
$return .= <<<IPSCONTENT
|
||||
<span class='i-color_positive'><i class='fa-solid fa-check'></i>
|
||||
|
||||
<span class='i-color_positive i-font-weight_600'><i class='fa-solid fa-check'></i>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'online_status_visible', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<p>
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -10098,15 +10097,14 @@ IPSCONTENT;
|
||||
if ( !\IPS\Member::loggedIn()->group['g_hide_online_list'] ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<div class='ipsColumns__secondary'>
|
||||
<div class='ipsButtons ipsButtons--start'>
|
||||
|
||||
<ul class="ipsButtons ipsButtons--start i-margin-top_3">
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \IPS\Member::loggedIn()->members_bitoptions['is_anon'] ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<a href='
|
||||
<li><a href='
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=system&controller=settings&do=updateAnon&value=0" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "settings", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
|
||||
@@ -10116,14 +10114,14 @@ IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'show_online_status', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</a>
|
||||
|
||||
</a></li>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
else:
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<a href='
|
||||
<li><a href='
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=system&controller=settings&do=updateAnon&value=1" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "settings", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
|
||||
@@ -10133,15 +10131,14 @@ IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'hide_online_status', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</a>
|
||||
|
||||
</a></li>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</ul>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -10155,39 +10152,46 @@ IPSCONTENT;
|
||||
if ( \IPS\Settings::i()->core_datalayer_enabled AND \IPS\Settings::i()->core_datalayer_include_pii AND \IPS\Settings::i()->core_datalayer_member_pii_choice ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<div class="i-padding_3 ipsColumns">
|
||||
<div class='ipsColumns__primary i-basis_400'>
|
||||
<h2 class='ipsTitle ipsTitle--h4 i-margin-bottom_1'>
|
||||
<div class="i-padding_4 i-flex i-flex-direction_column">
|
||||
<div class='i-flex_11'>
|
||||
<div class="i-margin-bottom_1 i-flex i-align-items_center i-gap_3 i-flex-wrap_wrap i-row-gap_0">
|
||||
<h2 class='ipsTitle ipsTitle--h4'>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'datalayer_pii_opt_out', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</h2>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( !\IPS\Member::loggedIn()->members_bitoptions['datalayer_pii_optout'] ):
|
||||
$return .= <<<IPSCONTENT
|
||||
<span class='i-color_negative'><i class='fa-solid fa-xmark'></i>
|
||||
|
||||
<span class='i-color_negative i-font-weight_600'><i class='fa-solid fa-xmark'></i>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'datalayer_omitted', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
else:
|
||||
$return .= <<<IPSCONTENT
|
||||
<span class='i-color_positive'><i class='fa-solid fa-check'></i>
|
||||
|
||||
<span class='i-color_positive i-font-weight_600'><i class='fa-solid fa-check'></i>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'datalayer_collected', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
</h2>
|
||||
|
||||
</div>
|
||||
<p>
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -10195,15 +10199,14 @@ $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'd
|
||||
$return .= <<<IPSCONTENT
|
||||
</p>
|
||||
</div>
|
||||
<div class='ipsColumns__secondary'>
|
||||
<div class='ipsButtons ipsButtons--start'>
|
||||
|
||||
<ul class="ipsButtons ipsButtons--start i-margin-top_3">
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \IPS\Member::loggedIn()->members_bitoptions['datalayer_pii_optout'] ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<a href='
|
||||
<li><a href='
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=system&controller=settings&do=togglePii" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "settings", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
|
||||
@@ -10213,14 +10216,14 @@ IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'datalayer_omit', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</a>
|
||||
|
||||
</a></li>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
else:
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<a href='
|
||||
<li><a href='
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=system&controller=settings&do=togglePii" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "settings", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
|
||||
@@ -10230,15 +10233,14 @@ IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'datalayer_collect', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</a>
|
||||
|
||||
</a></li>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
IPSCONTENT;
|
||||
@@ -10656,38 +10658,36 @@ IPSCONTENT;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
<div class='i-padding_3 ipsBlockSpacer'>
|
||||
<div class='ipsGrid ipsGrid--lines ipsGrid--auto-fit ipsGrid--privacyDelete i-basis_400 i-border-top_3'>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \IPS\Settings::i()->pii_type=='on' ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<div class="i-padding_3">
|
||||
<div class='ipsColumns'>
|
||||
<div class='ipsColumns__primary i-basis_400'>
|
||||
<h2 class='ipsTitle ipsTitle--h4 i-margin-bottom_1' id="piiDataRequest">
|
||||
<div class="i-padding_4 i-flex i-flex-direction_column">
|
||||
<div class='i-flex_11'>
|
||||
<h2 class='ipsTitle ipsTitle--h4 i-margin-bottom_1' id="piiDataRequest">
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'pii_data_request', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</h2>
|
||||
<p>
|
||||
<p>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'pii_data_request_desc', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</p>
|
||||
</div>
|
||||
<div class='ipsColumns__secondary'>
|
||||
<div class='ipsButtons ipsButtons--start'>
|
||||
|
||||
</div>
|
||||
<div class='ipsButtons ipsButtons--start i-margin-top_3'>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \IPS\Member\PrivacyAction::canRequestPiiData() AND !\IPS\Member\PrivacyAction::hasPiiRequest(NULL, TRUE ) ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<a href='
|
||||
<a href='
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=system&controller=settings&do=requestPiiData" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "settings", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
|
||||
@@ -10698,19 +10698,19 @@ IPSCONTENT;
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'download_pii_data_request', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</a>
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \IPS\Member\PrivacyAction::hasPiiRequest(NULL, TRUE ) ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<a href='
|
||||
<a href='
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=system&controller=settings&do=downloadPiiData" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "settings", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
|
||||
@@ -10721,14 +10721,12 @@ IPSCONTENT;
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'download_pii_data', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</a>
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
IPSCONTENT;
|
||||
@@ -10755,8 +10753,8 @@ IPSCONTENT;
|
||||
elseif ( \IPS\Settings::i()->pii_type=='redirect' ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<div class="i-padding_3 ipsColumns">
|
||||
<div class='ipsColumns__primary i-basis_400'>
|
||||
<div class="i-padding_4 i-flex i-flex-direction_column">
|
||||
<div class='i-flex_11'>
|
||||
<h2 class='ipsTitle ipsTitle--h4 i-margin-bottom_1' id="piiDataRequest">
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -10770,9 +10768,8 @@ $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'p
|
||||
$return .= <<<IPSCONTENT
|
||||
</p>
|
||||
</div>
|
||||
<div class='ipsColumns__secondary'>
|
||||
<div class='ipsButtons ipsButtons--start'>
|
||||
<a href='
|
||||
<div class='ipsButtons ipsButtons--start i-margin-top_3'>
|
||||
<a href='
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Settings::i()->pii_link;
|
||||
@@ -10783,7 +10780,6 @@ IPSCONTENT;
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'download_pii_data_request', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -10798,31 +10794,29 @@ IPSCONTENT;
|
||||
if ( \IPS\Member::loggedIn()->canUseAccountDeletion() ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<div class="i-padding_3">
|
||||
<div class='ipsColumns'>
|
||||
<div class='ipsColumns__primary i-basis_400'>
|
||||
<h2 class='ipsTitle ipsTitle--h4 i-margin-bottom_1' id="requestAccountDeletion">
|
||||
<div class="i-padding_4 i-flex i-flex-direction_column">
|
||||
<div class='i-flex_11'>
|
||||
<h2 class='ipsTitle ipsTitle--h4 i-margin-bottom_1' id="requestAccountDeletion">
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'account_deletion', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</h2>
|
||||
<p>
|
||||
<p>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'account_deletion_desc', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \IPS\Member\PrivacyAction::canDeleteAccount() ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<div class='ipsColumns__secondary'>
|
||||
<div class='ipsButtons ipsButtons--start'>
|
||||
<a href='
|
||||
<div class='ipsButtons ipsButtons--start i-margin-top_3'>
|
||||
<a href='
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=system&controller=settings&do=requestAccountDeletion" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "settings", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
|
||||
@@ -10833,15 +10827,13 @@ IPSCONTENT;
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'request_account_deletion', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</div>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -10892,8 +10884,8 @@ IPSCONTENT;
|
||||
elseif ( \IPS\Settings::i()->right_to_be_forgotten_type=='redirect' ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<div class="i-padding_3 ipsColumns">
|
||||
<div class='ipsColumns__primary i-basis_400'>
|
||||
<div class="i-padding_4 i-flex i-flex-direction_column">
|
||||
<div class='i-flex_11'>
|
||||
<h2 class='ipsTitle ipsTitle--h4 i-margin-bottom_1' id="requestAccountDeletion">
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -10907,9 +10899,8 @@ $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'a
|
||||
$return .= <<<IPSCONTENT
|
||||
</p>
|
||||
</div>
|
||||
<div class='ipsColumns__secondary'>
|
||||
<div class='ipsButtons ipsButtons--start'>
|
||||
<a href='
|
||||
<div class='ipsButtons ipsButtons--start i-margin-top_3'>
|
||||
<a href='
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Settings::i()->right_to_be_forgotten_link;
|
||||
@@ -10920,7 +10911,6 @@ IPSCONTENT;
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'request_account_deletion', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -501,7 +501,8 @@ IPSCONTENT;
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
>
|
||||
<label for='
|
||||
<div class="theme-editor__align-setting">
|
||||
<label for='
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $setting->key, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
@@ -510,7 +511,7 @@ IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $setting->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
</label>
|
||||
<button class='theme-editor__revert' type='button' data-revert='
|
||||
<button class='theme-editor__revert' type='button' data-revert='
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $setting->key, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
@@ -535,6 +536,7 @@ IPSCONTENT;
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'theme_editor_revert', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span></button>
|
||||
</div>
|
||||
<div class='theme-editor__input-file'>
|
||||
<input type='file' accept='image/*' id='
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -1186,7 +1186,7 @@ IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'save_chart_desc', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
' class='ipsButton ipsButton--primary ipsButton--small' data-role='saveReport'
|
||||
' class='ipsButton ipsButton--inherit ipsButton--small' data-role='saveReport'
|
||||
IPSCONTENT;
|
||||
|
||||
if ( !\IPS\Widget\Request::i()->chartId OR \IPS\Widget\Request::i()->chartId == '_default' ):
|
||||
@@ -2992,7 +2992,9 @@ if ( !\IPS\Widget\Request::i()->isAjax() ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -3595,10 +3597,6 @@ IPSCONTENT;
|
||||
if ( \count( $apple ) ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-touch-fullscreen" content="yes">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
|
||||
@@ -1126,9 +1126,9 @@ $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'g
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</div>
|
||||
<ul class="i-padding_3 i-background_3" data-role="codeInput">
|
||||
<li class="ipsFieldRow " id="google_authenticator_form_google_authenticator_setup_code">
|
||||
<div class="ipsFieldRow__content">
|
||||
<ul class="i-padding_2" data-role="codeInput">
|
||||
<li class="" id="google_authenticator_form_google_authenticator_setup_code">
|
||||
<div class="">
|
||||
<input type="text" name="google_authenticator_auth_code" value="" class="ipsInput ipsInput--text
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -1160,9 +1160,9 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<li class="i-margin-top_2">
|
||||
<button type='submit' class='ipsButton ipsButton--primary ipsButton--wide'>
|
||||
<i class='fa-solid fa-lock'></i>
|
||||
<i class='fa-solid fa-lock'></i>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'google_submit_code', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
@@ -1667,8 +1667,7 @@ IPSCONTENT;
|
||||
if ( \IPS\Dispatcher::i()->controllerLocation !== 'admin' ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<div class="i-margin-top_2">
|
||||
<a class="ipsButton--text ipsButton--text--light i-font-size_2" href="
|
||||
<a class="ipsButton ipsButton--text ipsModal__close" href="
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $url->setQueryString( array( '_mfaCancel' => 1 ) )->csrf(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
@@ -1678,9 +1677,14 @@ IPSCONTENT;
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'mfa_back', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
">
|
||||
<i class="fa-solid fa-arrow-left"></i>
|
||||
<i class="fa-solid fa-xmark"></i>
|
||||
<span class="ipsInvisible">
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'mfa_back', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -1706,12 +1710,12 @@ $return .= \IPS\Theme\Template::htmlspecialchars( \IPS\Session::i()->csrfKey, EN
|
||||
$return .= <<<IPSCONTENT
|
||||
">
|
||||
{$screen}
|
||||
<div class="i-background_3 i-text-align_center i-padding_3 i-padding-top_0 cOtherMethod">
|
||||
<div class="i-background_2 i-text-align_center i-padding_2 cOtherMethod">
|
||||
<a href='
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $url->setQueryString( array( '_mfa' => 'alt', '_mfaMethod' => '' ) ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
' class='ipsButton ipsButton--text ipsButton--wide'>
|
||||
' class='ipsButton ipsButton--inherit ipsButton--wide'>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'mfa_try_another_method', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
@@ -2113,7 +2117,7 @@ IPSCONTENT;
|
||||
if ( \IPS\Settings::i()->mfa_required_groups != '*' and !$member->inGroup( explode( ',', \IPS\Settings::i()->mfa_required_groups ) ) ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<div class="i-background_3 i-text-align_center i-padding_3 i-padding-top_0 cOtherMethod">
|
||||
<div class="i-background_2 i-text-align_center i-padding_2 cOtherMethod">
|
||||
<a href='
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $url->setQueryString( '_mfa', 'optout' )->csrf(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
@@ -2170,7 +2174,7 @@ IPSCONTENT;
|
||||
$thisUrl = \IPS\Widget\Request::i()->url();
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<div class="i-background_3 i-text-align_center i-padding_3 i-padding-top_0 cOtherMethod">
|
||||
<div class="i-background_2 i-text-align_center i-padding_2 cOtherMethod">
|
||||
<a href='
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $thisUrl->stripQueryString(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
|
||||
@@ -219,7 +219,7 @@ IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( json_encode( $value ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
'>
|
||||
<ul data-role="fieldsArea"></ul>
|
||||
<ul data-role="fieldsArea" class="i-grid i-gap_2 i-margin-bottom_2"></ul>
|
||||
<a class="ipsButton ipsButton--soft ipsButton--small" data-action="addField"><i class="fa-solid fa-plus-circle"></i>
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -679,17 +679,18 @@ $return .= \IPS\Theme\Template::htmlspecialchars( \count( $form->elements['']['u
|
||||
$return .= <<<IPSCONTENT
|
||||
</span>
|
||||
</button>
|
||||
<div id='elURLScreenshots_menu' class='ipsMenu ipsMenu_wide ipsHide i-padding_3'>
|
||||
<ul class='ipsFieldRow--fullWidth'>
|
||||
<div id='elURLScreenshots_menu' class='ipsMenu ipsMenu_wide ipsHide'>
|
||||
<ul class="ipsForm ipsForm--vertical">
|
||||
{$form->elements['']['url_screenshots']}
|
||||
</ul>
|
||||
<hr class='ipsHr'>
|
||||
<a href='#' class='ipsButton ipsButton--wide ipsButton--primary' data-action='confirmScreenshotUrls'>
|
||||
<li class="ipsSubmitRow">
|
||||
<button type="button" class='ipsButton ipsButton--wide ipsButton--primary' data-action='confirmScreenshotUrls'>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'submit_menu_confirm', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</a>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -370,7 +370,7 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \IPS\Application::appIsEnabled('cloud') AND \IPS\cloud\Application::featureIsEnabled( 'realtime' ) ):
|
||||
if ( \IPS\Platform\Bridge::i()->featureIsEnabled( 'realtime' ) ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<div data-controller="cloud.front.realtime.whosViewing" data-location="
|
||||
@@ -670,7 +670,17 @@ IPSCONTENT;
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<div data-controller="forums.front.forum.forumPage,cloud.front.realtime.viewingProvider">
|
||||
<div data-controller="forums.front.forum.forumPage
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \IPS\Platform\Bridge::i()->featureIsEnabled( 'realtime' ) ):
|
||||
$return .= <<<IPSCONTENT
|
||||
,cloud.front.realtime.viewingProvider
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
">
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -2864,7 +2874,17 @@ IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
" data-controller="cloud.front.realtime.forumsTopicRow"
|
||||
"
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \IPS\Platform\Bridge::i()->featureIsEnabled( 'realtime' ) ):
|
||||
$return .= <<<IPSCONTENT
|
||||
data-controller="cloud.front.realtime.forumsTopicRow"
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $row->unread() ):
|
||||
@@ -3959,7 +3979,17 @@ IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "forums/front/forums/topicRowSnippet", "topicRow:before", [ $table,$headers,$rows ] );
|
||||
$return .= <<<IPSCONTENT
|
||||
<li data-ips-hook="topicRow" data-controller="cloud.front.realtime.forumsTopicRow" class="ipsData__item ipsData__item--snippet
|
||||
<li data-ips-hook="topicRow"
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \IPS\Platform\Bridge::i()->featureIsEnabled( 'realtime' ) ):
|
||||
$return .= <<<IPSCONTENT
|
||||
data-controller="cloud.front.realtime.forumsTopicRow"
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
class="ipsData__item ipsData__item--snippet
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $row->groupsPosted ):
|
||||
@@ -3972,7 +4002,7 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $row->isAssignedToMember() ):
|
||||
if ( \IPS\Member::loggedIn()->modPermissions() and $row->isAssignedToMember() ):
|
||||
$return .= <<<IPSCONTENT
|
||||
ipsData__item--assigned
|
||||
IPSCONTENT;
|
||||
@@ -4169,13 +4199,25 @@ IPSCONTENT;
|
||||
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "forums/front/forums/topicRowSnippet", "badges:inside-start", [ $table,$headers,$rows ] );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \IPS\Member::loggedIn()->modPermissions() ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->assignmentBadge( $row, '' );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $row->prefix() ):
|
||||
|
||||
@@ -4022,7 +4022,17 @@ IPSCONTENT;
|
||||
if ( $movedTo = $row->movedTo() AND $movedTo->container()->can('view') ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<li class="ipsData__item" data-controller="cloud.front.realtime.forumsTopicRow">
|
||||
<li class="ipsData__item"
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \IPS\Platform\Bridge::i()->featureIsEnabled( 'realtime' ) ):
|
||||
$return .= <<<IPSCONTENT
|
||||
data-controller="cloud.front.realtime.forumsTopicRow"
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
>
|
||||
<a href="
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $movedTo->url( "getPrefComment" ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
@@ -4848,7 +4858,15 @@ IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
>
|
||||
data-stattype="
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $k, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
" data-v="
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $v, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
">
|
||||
<span class="ipsData__stats-icon" data-stat-value="
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -5413,7 +5431,17 @@ IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "forums/front/index/simplifiedTopicRowSnippet", "row:before", [ $table,$headers,$rows ] );
|
||||
$return .= <<<IPSCONTENT
|
||||
<li data-ips-hook="row" data-controller="cloud.front.realtime.forumsTopicRow" class="ipsData__item ipsData__item--snippet
|
||||
<li data-ips-hook="row"
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \IPS\Platform\Bridge::i()->featureIsEnabled( 'realtime' ) ):
|
||||
$return .= <<<IPSCONTENT
|
||||
data-controller="cloud.front.realtime.forumsTopicRow"
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
class="ipsData__item ipsData__item--snippet
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $row->groupsPosted ):
|
||||
|
||||
@@ -4576,7 +4576,7 @@ $return .= <<<IPSCONTENT
|
||||
"
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \IPS\Application::appIsEnabled('cloud') AND \IPS\cloud\Application::featureIsEnabled( 'realtime' ) ):
|
||||
if ( \IPS\Platform\Bridge::i()->featureIsEnabled( 'realtime' ) ):
|
||||
$return .= <<<IPSCONTENT
|
||||
data-controller="cloud.front.realtime.forumsReplyArea,cloud.front.realtime.whosTyping"
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -1415,9 +1415,26 @@ IPSCONTENT;
|
||||
$return = '';
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<div data-controller='core.front.core.reviewForm'>
|
||||
<div>
|
||||
<form accept-charset='utf-8' class="ipsFormWrap ipsFormWrap--gallery-review" action="
|
||||
<div class="ipsComposeAreaWrapper">
|
||||
<div class='ipsComposeArea ipsComposeArea--review'
|
||||
IPSCONTENT;
|
||||
|
||||
if ( \IPS\Member::loggedIn()->member_id ):
|
||||
$return .= <<<IPSCONTENT
|
||||
data-controller='core.front.core.reviewForm'
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
>
|
||||
<div class='ipsComposeArea__photo'>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( \IPS\Member::loggedIn(), 'fluid' );
|
||||
$return .= <<<IPSCONTENT
|
||||
</div>
|
||||
<div class='ipsComposeArea_editor'>
|
||||
<form accept-charset='utf-8' class="ipsFormWrap ipsFormWrap--gallery-review" action="
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $action->setQueryString( '_review', 1 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
@@ -1432,18 +1449,18 @@ IPSCONTENT;
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
>
|
||||
<input type="hidden" name="
|
||||
<input type="hidden" name="
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
_submitted" value="1">
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
foreach ( $hiddenValues as $k => $v ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<input type="hidden" name="
|
||||
<input type="hidden" name="
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $k, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
@@ -1452,43 +1469,43 @@ IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $v, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
">
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endforeach;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $uploadField ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<input type="hidden" name="MAX_FILE_SIZE" value="
|
||||
<input type="hidden" name="MAX_FILE_SIZE" value="
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $uploadField, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
">
|
||||
<input type="hidden" name="plupload" value="
|
||||
<input type="hidden" name="plupload" value="
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( md5( mt_rand() ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
">
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( !isset( \IPS\Widget\Request::i()->_review ) and \IPS\Member::loggedIn()->member_id ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<div data-role='reviewIntro' class="i-padding_3">
|
||||
<h3 class="i-margin-bottom_2"><strong class="i-color_hard i-font-weight_600">
|
||||
<div data-role='reviewIntro' class="i-padding_3">
|
||||
<h3 class="i-margin-bottom_2"><strong class="i-color_hard i-font-weight_600">
|
||||
IPSCONTENT;
|
||||
|
||||
$sprintf = array(\IPS\Member::loggedIn()->name); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'review_intro_1', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
|
||||
@@ -1499,67 +1516,68 @@ IPSCONTENT;
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'review_intro_2', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span></h3>
|
||||
<a href='#' class='ipsButton ipsButton--primary ipsButton--small ipsJS_show' data-action='writeReview'><i class="fa-regular fa-pen-to-square"></i><span>
|
||||
<button type="button" class='ipsButton ipsButton--primary ipsButton--small' data-action='writeReview'><i class="fa-regular fa-pen-to-square"></i><span>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'write_a_review', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span></a>
|
||||
</div>
|
||||
|
||||
</span></button>
|
||||
</div>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<ul class='ipsForm ipsForm--vertical ipsForm--gallery-review
|
||||
<ul class='ipsForm ipsForm--vertical ipsForm--gallery-review' data-role='reviewForm'
|
||||
IPSCONTENT;
|
||||
|
||||
if ( !isset( \IPS\Widget\Request::i()->_review ) and \IPS\Member::loggedIn()->member_id ):
|
||||
$return .= <<<IPSCONTENT
|
||||
ipsJS_hide
|
||||
hidden
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
i-padding_3' data-role='reviewForm'>
|
||||
|
||||
>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
foreach ( $elements as $collection ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
foreach ( $collection as $input ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
{$input}
|
||||
|
||||
{$input}
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endforeach;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endforeach;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<li class='ipsFieldRow'>
|
||||
<div class='ipsFieldRow__content'>
|
||||
<button type='submit' class='ipsButton ipsButton--primary'><i class="fa-regular fa-pen-to-square"></i><span>
|
||||
<li class='ipsFieldRow'>
|
||||
<div class='ipsFieldRow__content'>
|
||||
<button type='submit' class='ipsButton ipsButton--primary'><i class="fa-regular fa-pen-to-square"></i><span>
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'add_review', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span></button>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</form>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -4247,7 +4247,7 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
<div class="ipsReviewResponse i-padding_3 i-margin-bottom_3 i-background_2">
|
||||
<div class="i-flex i-align-items_center i-justify-content_space-between i-margin-bottom_2">
|
||||
<h4 class="ipsTitle ipsTitle--h3">
|
||||
<h4 class="ipsTitle ipsTitle--h5">
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'review_response_title', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
|
||||