Version 5.0.0 beta 11.1

This commit is contained in:
Neo committed 2025-12-19 18:00:22 -08:00
1 parent 264eeb97e0
commit 90e8c7e903
466 files changed
+7796 -2394

No files matched your search

+1 -1
View File
@@ -1 +1 @@
.cCalendar{width:100%;table-layout:fixed;}@media (min-width:767px){.cCalendar{width:calc(100% + 2px);margin:-1px;margin-top:0;}}.cCalendar th{background:var(--i-background_4);border:1px solid var(--i-background_5);padding:.8em;font-weight:500;}.cCalendarIcon{display:inline-block;width:18px;height:18px;border-radius:5px;margin-inline-end:5px;vertical-align:middle;}.cCalendar td{width:14.285%;min-height:100px;border:1px solid var(--i-background_4);vertical-align:top;padding:.5em;}.cCalendar td > div{height:100%;min-height:100px;position:relative;}.cCalendar td.cCalendar_nonDate{background:var(--i-background_2);}.cCalendar td.cCalendar_today{background:var(--i-background_dark);color:var(--i-color_background-dark-contrast);}.cCalendar_dayNumber{color:inherit;font-size:1.1em;font-weight:600;display:inline-block;}.cCalendar_miniAddEvent{padding:.2em .4em;background:var(--i-background_4);color:inherit;display:inline-block;border-radius:5px;opacity:0;transition:0.2s all ease-in-out;margin-inline-start:.5em;}.cCalendar td:hover .cCalendar_miniAddEvent{opacity:.5;}.cCalendar td .cCalendar_miniAddEvent:hover{opacity:1;}.cCalendar_today .cCalendar_miniAddEvent{background:none;}a.cEvents_event, .cEvents_event a, .cEvents_event.cEvents_empty span{display:block;line-height:28px;height:28px;font-size:var(--i-font-size_-1);padding:0 1em;color:#fff;border-radius:20px;white-space:nowrap;overflow:hidden;background:var(--i-background_dark);}a.cEvents_style_blank, .cEvents_style_blank a, .cCalendarIcon.cEvents_style_blank{background-color:transparent;border:1px solid var(--i-background_5);}a.cEvents_event.cEvents_eventSmall, .cEvents_event.cEvents_eventSmall a, .cEvents_event.cEvents_eventSmall.cEvents_empty span{font-size:var(--i-font-size_-2);display:inline-block;}.cEvents_time{font-size:max(10px, .7em);text-transform:uppercase;opacity:0.7;}.cEvents_event.cEvents_empty span{background:transparent;}.cEvents_single .cEvents_event a{border-radius:20px;}.cEvents_ranged .cEvents_event a{border-radius:0;}.cEvents_ranged .cEvents_event:not(.cEvents_first) a{margin-inline-start:-7px;padding-inline-start:8px;}.cEvents_ranged .cEvents_event:not(.cEvents_last) a{margin-inline-end:-8px;}.cEvents_ranged .cEvents_event.cEvents_first a{border-start-start-radius:20px;border-end-start-radius:20px;}.cEvents_ranged .cEvents_event.cEvents_last a{border-start-end-radius:20px;border-end-end-radius:20px;}tr td:not(:first-child):not(.cCalendar_firstDay) .cEvents_ranged .cEvents_event:not(.cEvents_first) a, tr td:not(:first-child):not(.cCalendar_firstDay) .cEvents_ranged .cEvents_event:not(.cEvents_first) a span{font-size:0;}tr td:not(:first-child):not(.cCalendar_firstDay) .cEvents_ranged .cEvents_event:not(.cEvents_first) a img{display:none;}.cEvents__sidebarOnlineLogo{display:flex;align-items:center;justify-content:center;color:var(--i-color_soft);}.cEvents__sidebarOnlineLogo svg{height:.8em;width:auto;margin:0 .4em;}.cCalendarBlock_map{text-align:center;margin:1em auto;}.cCalendar_shortInput{width:auto;}.cCalendarSubmit_field{display:inline-block;position:relative;}.cCalendarSubmit_field input{padding-inline-start:35px !important;}.cCalendarSubmit_field i[class*=" fa-"]{position:absolute;color:var(--i-color_soft);top:50%;inset-inline-start:1em;transform:translateY(-50%);font-size:1em;opacity:.5;pointer-events:none;}#event_remind_me [type="number"]{max-width:60px;}.eventStreamDate .cCalendarEmbed_calendar{background:var(--i-background_2);}.eventStreamDate .ipsCalendarDate{width:80px;}.cEvents__overview-header{display:grid;gap:var(--i-sp_block);}@media (min-width:767px){.cEvents__overview-header:has(.cEvents__overview-featured){grid-template-columns:1fr max(340px, 30%);}}.ipsData--events-featured{--i-data--max:1;--i-data--gap:0px;--i-data--radius:0 0 var(--i-box--bo-ra) var(--i-box--bo-ra);--i-data--desc-truncate:2;--i-data--display-desc:initial;}.ipsData--events-featured .ipsData__content{padding-inline-start:6em;}.ipsData--events-featured .ipsCalendarDate{width:3.3em;position:absolute;inset-inline-start:1.5em;}[data-ips-scheme="light"] .ipsData--events-featured .ipsCalendarDate__date{color:hsl(0 0% 30%);}.cEvents__search{display:flex;flex-wrap:wrap;gap:1.8em 1em;}.cEvents__search > *{flex:1 1 100%;}.ipsEventSearch__searchLocation{flex:0 0 auto;font-weight:600;font-size:.9em;align-self:start;}.ipsEventSearch__searchLocation:hover{text-decoration:underline;}.cEvents__search__field--date{flex-basis:150px;}.cEvents__search__field--date input{width:100%;}.cEvents__search__label{color:var(--i-color_hard);display:block;font-weight:600;margin-bottom:.5em;}.cEvents__search__searchWrap :is([type="text"], [type="search"]){flex:1 1 auto;}@media (max-width:767px){.ipsEventSearch__searchLocation span{display:none;}}.ipsEventSearch .ipsField_loading{background-image:url('"../resources/core_cf5a1e7fc191338071d07df134b620d0_tiny_loading@2x.gif"') !important;background-size:14px 14px;background-repeat:no-repeat;background-position:right 5px center;}.cEvents__searcLine truncated
.cCalendar{width:100%;table-layout:fixed;}@media (min-width:767px){.cCalendar{width:calc(100% + 2px);margin:-1px;margin-top:0;}}.cCalendar th{background:var(--i-background_4);border:1px solid var(--i-background_5);padding:.8em;font-weight:500;}.cCalendarIcon{display:inline-block;width:18px;height:18px;border-radius:5px;margin-inline-end:5px;vertical-align:middle;}.cCalendar td{width:14.285%;min-height:100px;border:1px solid var(--i-background_4);vertical-align:top;padding:.5em;}.cCalendar td > div{height:100%;min-height:100px;position:relative;}.cCalendar td.cCalendar_nonDate{background:var(--i-background_2);}.cCalendar td.cCalendar_today{background:var(--i-background_dark);color:var(--i-color_background-dark-contrast);}.cCalendar_dayNumber{color:inherit;font-size:1.1em;font-weight:600;display:inline-block;}.cCalendar_miniAddEvent{padding:.2em .4em;background:var(--i-background_4);color:inherit;display:inline-block;border-radius:5px;opacity:0;transition:0.2s all ease-in-out;margin-inline-start:.5em;}.cCalendar td:hover .cCalendar_miniAddEvent{opacity:.5;}.cCalendar td .cCalendar_miniAddEvent:hover{opacity:1;}.cCalendar_today .cCalendar_miniAddEvent{background:none;}a.cEvents_event, .cEvents_event a, .cEvents_event.cEvents_empty span{display:block;line-height:28px;height:28px;font-size:var(--i-font-size_-1);padding:0 1em;color:#fff;border-radius:20px;white-space:nowrap;overflow:hidden;background:var(--i-background_dark);}a.cEvents_style_blank, .cEvents_style_blank a, .cCalendarIcon.cEvents_style_blank{background-color:transparent;border:1px solid var(--i-background_5);}a.cEvents_event.cEvents_eventSmall, .cEvents_event.cEvents_eventSmall a, .cEvents_event.cEvents_eventSmall.cEvents_empty span{font-size:var(--i-font-size_-2);display:inline-block;}.cEvents_time{font-size:max(10px, .7em);text-transform:uppercase;opacity:0.7;}.cEvents_event.cEvents_empty span{background:transparent;}.cEvents_single .cEvents_event a{border-radius:20px;}.cEvents_ranged .cEvents_event a{border-radius:0;}.cEvents_ranged .cEvents_event:not(.cEvents_first) a{margin-inline-start:-7px;padding-inline-start:8px;}.cEvents_ranged .cEvents_event:not(.cEvents_last) a{margin-inline-end:-8px;}.cEvents_ranged .cEvents_event.cEvents_first a{border-start-start-radius:20px;border-end-start-radius:20px;}.cEvents_ranged .cEvents_event.cEvents_last a{border-start-end-radius:20px;border-end-end-radius:20px;}tr td:not(:first-child):not(.cCalendar_firstDay) .cEvents_ranged .cEvents_event:not(.cEvents_first) a, tr td:not(:first-child):not(.cCalendar_firstDay) .cEvents_ranged .cEvents_event:not(.cEvents_first) a span{font-size:0;}tr td:not(:first-child):not(.cCalendar_firstDay) .cEvents_ranged .cEvents_event:not(.cEvents_first) a img{display:none;}.cEvents__sidebarOnlineLogo{display:flex;align-items:center;justify-content:center;color:var(--i-color_soft);}.cEvents__sidebarOnlineLogo svg{height:.8em;width:auto;margin:0 .4em;}.cCalendarBlock_map{text-align:center;}.cCalendar_shortInput{width:auto;}.cCalendarSubmit_field{display:inline-block;position:relative;}.cCalendarSubmit_field input{padding-inline-start:35px !important;}.cCalendarSubmit_field i[class*=" fa-"]{position:absolute;color:var(--i-color_soft);top:50%;inset-inline-start:1em;transform:translateY(-50%);font-size:1em;opacity:.5;pointer-events:none;}#event_remind_me [type="number"]{max-width:60px;}.eventStreamDate .cCalendarEmbed_calendar{background:var(--i-background_2);}.eventStreamDate .ipsCalendarDate{width:80px;}.cEvents__overview-header{display:grid;gap:var(--i-sp_block);}@media (min-width:767px){.cEvents__overview-header:has(.cEvents__overview-featured){grid-template-columns:1fr max(340px, 30%);}}.ipsData--events-featured{--i-data--max:1;--i-data--gap:0px;--i-data--radius:0 0 var(--i-box--bo-ra) var(--i-box--bo-ra);--i-data--desc-truncate:2;--i-data--display-desc:initial;}.ipsData--events-featured .ipsData__content{padding-inline-start:6em;}.ipsData--events-featured .ipsCalendarDate{width:3.3em;position:absolute;inset-inline-start:1.5em;}[data-ips-scheme="light"] .ipsData--events-featured .ipsCalendarDate__date{color:hsl(0 0% 30%);}.cEvents__search{display:flex;flex-wrap:wrap;gap:1.8em 1em;}.cEvents__search > *{flex:1 1 100%;}.ipsEventSearch__searchLocation{flex:0 0 auto;font-weight:600;font-size:.9em;align-self:start;}.ipsEventSearch__searchLocation:hover{text-decoration:underline;}.cEvents__search__field--date{flex-basis:150px;}.cEvents__search__field--date input{width:100%;}.cEvents__search__label{color:var(--i-color_hard);display:block;font-weight:600;margin-bottom:.5em;}.cEvents__search__searchWrap :is([type="text"], [type="search"]){flex:1 1 auto;}@media (max-width:767px){.ipsEventSearch__searchLocation span{display:none;}}.ipsEventSearch .ipsField_loading{background-image:url('"../resources/core_cf5a1e7fc191338071d07df134b620d0_tiny_loading@2x.gif"') !important;background-size:14px 14px;background-repeat:no-repeat;background-position:right 5px center;}.cEvents__searchMap{height:350pLine truncated
+1 -1
View File
@@ -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;}: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
+1 -1
View File
@@ -1 +1 @@
.ipsAcpProfile{display:flex;flex-wrap:wrap;gap:1em;align-items:start;}.ipsAcpProfile__aside{flex:1 1 360px;display:grid;gap:inherit;}.ipsAcpProfile__main{flex:999 1 50%;display:flex;flex-wrap:wrap;gap:inherit;}.ipsAcpProfile__main > *{flex:1 1 100%;}.ipsAcpProfile__half{flex-basis:max(300px, 26%);}.acpMemberView_info{padding:5px;}.acpMemberView_stats .ipsTable{display:none;}.acpMemberView_tabBar{background:var(--i-background_1);}.acpMemberView_tabBarPanel{background:transparent;}.acpMemberView_layoutWrap{display:grid;gap:1em;padding:1em;}@media screen and (min-width:768px){.acpMemberView_layoutWrap{grid-template-columns:[main] auto [history] 350px [end];padding:2em;}.acpMemberView_layoutMain{grid-column-start:main;grid-column-end:history;}.acpMemberView_layoutHistory{grid-column-start:history;grid-column-end:end;}}.acpMemberView_coverPhoto{position:relative;min-height:90px;}.acpMemberView_coverPhoto .ipsCoverPhoto__container{min-height:90px;}.acpMemberView_coverPhoto .acpMemberView_editButton{position:absolute;top:10px;inset-inline-end:10px;}.acpMemberView_photo{position:relative;text-align:center;margin:-45px auto 0;max-width:120px;}.acpMemberView_photo .acpMemberView_editButton{position:absolute;bottom:0;inset-inline-end:0;white-space:nowrap;}.acpMemberView_map{background:#EEE5C9;opacity:.3;height:200px;}.acpMemberView_countStat{padding:10px 45px 10px 10px;border-radius:4px;display:block;position:relative;background:var(--i-background_5);color:var(--i-color_hard) !important;}.acpMemberView_countStat .ipsMinorTitle{color:inherit;opacity:0.8;}a.acpMemberView_countStat:before{content:'';position:absolute;inset-inline-end:40px;top:10px;bottom:10px;border-inline-start:1px solid currentColor;opacity:.2;}a.acpMemberView_countStat:after{content:'\f0d7';font-family:var(--i-font-awesome);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:auto;font-weight:900;position:absolute;inset-inline-end:18px;top:22px;}.acpMemberView_quotaNumber{font-size:18px;font-weight:600;}.acpMemberView_percentage{font-size:22px;margin-top:14px;}.acpMemberView_editButton{background:var(--i-background_4);color:var(--i-color_hard);border-radius:5px;padding:2px 5px;font-size:14px;}.acpMemberView_requestUnblockButton{background:var(--i-background_negative-soft);color:var(--i-color_negative);}.acpMemberView_editButton .fa-caret-down{margin-inline-start:4px;}.acpMemberView_message{border-radius:5px;}.acpMemberView_message a.ipsButton{margin-top:0;}.acpMemberView_message{padding:20px;padding-inline-start:85px;}.acpMemberView_message:before{font-size:47px;inset-inline-start:25px;}#elMemberHistory{height:100%;}.cMemberHistory > li{padding:1.2em;border-top:1px solid var(--i-background_4);}.cMemberHistory_date{color:var(--i-color_hard);font-size:1.2em;font-weight:600;background-color:var(--i-background_2);}[data-role="historyDisplay"]{min-height:400px;}
.ipsAcpProfile{display:flex;flex-wrap:wrap;gap:1em;align-items:start;}.ipsAcpProfile__aside{flex:1 1 360px;display:grid;gap:inherit;}.ipsAcpProfile__main{flex:999 1 50%;display:flex;flex-wrap:wrap;gap:inherit;}.ipsAcpProfile__main > *{flex:1 1 100%;}.ipsAcpProfile__half{flex-basis:max(300px, 26%);}.acpMemberView_info{padding:5px;}.acpMemberView_stats .ipsTable{display:none;}.acpMemberView_tabBar{background:var(--i-background_1);}.acpMemberView_tabBarPanel{background:transparent;}.acpMemberView_layoutWrap{display:grid;gap:1em;padding:1em;}@media screen and (min-width:768px){.acpMemberView_layoutWrap{grid-template-columns:[main] auto [history] 350px [end];padding:2em;}.acpMemberView_layoutMain{grid-column-start:main;grid-column-end:history;}.acpMemberView_layoutHistory{grid-column-start:history;grid-column-end:end;}}.acpMemberView_coverPhoto{position:relative;min-height:90px;}.acpMemberView_coverPhoto .ipsCoverPhoto__container{min-height:90px;}.acpMemberView_coverPhoto .acpMemberView_editButton{position:absolute;top:10px;inset-inline-end:10px;}.acpMemberView_photo{position:relative;text-align:center;margin:-45px auto 0;max-width:120px;}.acpMemberView_photo .acpMemberView_editButton{position:absolute;bottom:0;inset-inline-end:0;white-space:nowrap;}.acpMemberView_map{background:#EEE5C9;opacity:.3;height:200px;}.acpMemberView_countStat{padding:10px 45px 10px 10px;border-radius:4px;display:block;position:relative;background:var(--i-background_5);color:var(--i-color_hard) !important;}.acpMemberView_countStat .ipsMinorTitle{color:inherit;opacity:0.8;}a.acpMemberView_countStat:before{content:'';position:absolute;inset-inline-end:40px;top:10px;bottom:10px;border-inline-start:1px solid currentColor;opacity:.2;}a.acpMemberView_countStat:after{content:'\f0d7';font-family:var(--i-font-awesome);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:auto;font-weight:900;position:absolute;inset-inline-end:18px;top:22px;}.acpMemberView_quotaNumber{font-size:18px;font-weight:600;}.acpMemberView_percentage{font-size:22px;margin-top:14px;}.acpMemberView_editButton{background:var(--i-background_4);color:var(--i-color_hard);border-radius:5px;padding:2px 5px;font-size:14px;}.acpMemberView_requestUnblockButton{background:var(--i-background_negative-soft);color:var(--i-color_negative);}.acpMemberView_editButton .fa-caret-down{margin-inline-start:4px;}.acpMemberView_message{border-radius:5px;}.acpMemberView_message a.ipsButton{margin-top:0;}.acpMemberView_message{padding:20px;padding-inline-start:85px;}.acpMemberView_message:before{font-size:47px;inset-inline-start:25px;}.cMemberHistory > li{padding:1.2em;border-top:1px solid var(--i-background_4);}.cMemberHistory_date{color:var(--i-color_hard);font-size:1.2em;font-weight:600;background-color:var(--i-background_2);}
@@ -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
View File
@@ -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{margin:15px 0 5px 0;width:100%;height:32px;}#elDownloadsSubmit_progress{background:var(--i-background_1);padding:0px 15px 15px 15px;}#elDownloadsSubmit .ipsAttachment_dropZone{margin-top:7px;background:var(--i-background_2);border:2px dashed var(--i-background_5);background-clip:padding-box;}#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;}.cDownloadsSubmit_step{display:block;width:40px;height:40px;text-align:center;line-height:40px;font-size:24px;border-radius:40px;background:var(--i-background_primary);color:var(--i-color_primary-contrast);}#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;}.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;}
+1 -1
View File
@@ -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;font-weight:300;font-family:"HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, sans-serif;}.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;}}#elCustomerData{padding-inline-start:23px;}.cNexusCustomerInvoice{display:block;margin-bottom:5px;font-size:20px;font-weight:300;font-family:"HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, sans-serif;}.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;texLine 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 .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
+1 -1
View File
@@ -1 +1 @@
.cNexusCheckout_returning, .cNexusCheckout_review>.ipsColumn:first-child{border-inline-end:1px solid var(--i-background_2);}.cNexusCheckout_subtotal{border-top:1px solid var(--i-background_4);}.cNexusCheckout_addresses{}.cNexusCheckout_addresses .ipsSpanGrid__6{margin-bottom:15px;}.cNexusCheckout_addresses .ipsSpanGrid__6 input[type="radio"]{margin-top:4px;}.cNexusCheckout_addresses .ipsFieldList{padding-top:0;}.cVenmoButton{background-color:#3D95CE !important;border:none !important;}.cVenmoButton img{height:15px;}input[type="text"][name="cm_checkout_vat_number"]{width:auto;}
.cNexusCheckout_addresses .ipsSpanGrid__6{margin-bottom:15px;}.cNexusCheckout_addresses .ipsSpanGrid__6 input[type="radio"]{margin-top:4px;}.cNexusCheckout_addresses .ipsFieldList{padding-top:0;}.cVenmoButton{background-color:#3D95CE !important;border:none !important;}.cVenmoButton img{height:15px;}input[type="text"][name="cm_checkout_vat_number"]{width:auto;}
+1 -1
View File
@@ -1 +1 @@
.cNexusPrice{color:var(--i-color_secondary);}.cNexusPrice s{color:var(--i-color_soft);font-weight:normal;}.cPayment{display:inline-block;width:66px;height:42px;border:1px solid;border-color:color-mix(in srgb, currentColor 10%, transparent);background-color:var(--i-background_3);background-size:cover;background-position:50%;}.cPayment_visa{background-image:url('../resources/nexus_25c7da8f03d0d6ae55d3be3353eb0ca9_visa@2x.png');}.cPayment_mastercard{background-image:url('../resources/nexus_25c7da8f03d0d6ae55d3be3353eb0ca9_mastercard@2x.png');}.cPayment_american_express{background-image:url('../resources/nexus_25c7da8f03d0d6ae55d3be3353eb0ca9_amex@2x.png');}.cPayment_discover{background-image:url('../resources/nexus_25c7da8f03d0d6ae55d3be3353eb0ca9_discover@2x.png');}.cPayment_diners_club{background-image:url('../resources/nexus_25c7da8f03d0d6ae55d3be3353eb0ca9_dinersclub@2x.png');}.cPayment_jcb{background-image:url('../resources/nexus_25c7da8f03d0d6ae55d3be3353eb0ca9_jcb@2x.png');}.cPayment_paypal{background-image:url('../resources/nexus_25c7da8f03d0d6ae55d3be3353eb0ca9_paypal@2x.png');}.cPayment_venmo{background-image:url('../resources/nexus_25c7da8f03d0d6ae55d3be3353eb0ca9_venmo.svg');background-size:80% auto;}.cNexusCard_expiry select{width:45%;}.cNexusPaymentLog .ipsData__icon{font-size:30px;}.cNexusOrderList .cNexusOrderBadge{margin-inline-end:15px;}.cNexusOrderBadge{display:inline-block;padding:0 10px;border-radius:4px;vertical-align:middle;font-size:12px;line-height:20px;font-weight:500;color:#fff;background:#000;}.cNexusOrderBadge.cNexusOrderBadge_paid{background:#7e9e64;}.cNexusOrderBadge.cNexusOrderBadge_expd{background:#c8c9c1;}.cNexusOrderBadge.cNexusOrderBadge_pend{background:#7C6146;}.ipsCommercePrices:not(:last-child){margin-bottom:1em;}.ipsCommercePrice{font-weight:600;font-size:1.1em;color:var(--i-color_primary);}.ipsCommercePrices small{color:var(--i-color_soft);font-size:inherit;}.ipsCommercePrices s{filter:grayscale(1) opacity(.4);}.ipsCommerceStock--in{font-weight:600;}.ipsCommerceStock--out{font-weight:500;color:var(--i-color_negative);}.ipsData--cart-contents .ipsData__item{isolation:auto;}.ipsStreamItem .cNexusPrice{color:var(--i-color_primary);font-weight:bold;font-size:1.1em;}.ipsStreamItem .cNexusPrice s{color:color-mix(in srgb, var(--i-color_soft) 70%, transparent);font-weight:normal;}.ipsStreamItem .cNexusPrice :is(small, s){font-size:max(.8em, 11px);}[data-role="paymentMethodForm"] .ipsInput--dummy:not(#x){display:block;}
.cNexusPrice{font-weight:500;}.cNexusPrice s{color:var(--i-color_soft);font-weight:normal;}.cPayment{display:inline-block;width:66px;height:42px;border:1px solid;border-color:color-mix(in srgb, currentColor 10%, transparent);background-color:var(--i-background_3);background-size:cover;background-position:50%;}.cPayment_visa{background-image:url('../resources/nexus_25c7da8f03d0d6ae55d3be3353eb0ca9_visa@2x.png');}.cPayment_mastercard{background-image:url('../resources/nexus_25c7da8f03d0d6ae55d3be3353eb0ca9_mastercard@2x.png');}.cPayment_american_express{background-image:url('../resources/nexus_25c7da8f03d0d6ae55d3be3353eb0ca9_amex@2x.png');}.cPayment_discover{background-image:url('../resources/nexus_25c7da8f03d0d6ae55d3be3353eb0ca9_discover@2x.png');}.cPayment_diners_club{background-image:url('../resources/nexus_25c7da8f03d0d6ae55d3be3353eb0ca9_dinersclub@2x.png');}.cPayment_jcb{background-image:url('../resources/nexus_25c7da8f03d0d6ae55d3be3353eb0ca9_jcb@2x.png');}.cPayment_paypal{background-image:url('../resources/nexus_25c7da8f03d0d6ae55d3be3353eb0ca9_paypal@2x.png');}.cPayment_venmo{background-image:url('../resources/nexus_25c7da8f03d0d6ae55d3be3353eb0ca9_venmo.svg');background-size:80% auto;}.cNexusCard_expiry select{width:45%;}.cNexusPaymentLog .ipsData__icon{font-size:30px;}.cNexusOrderList .cNexusOrderBadge{margin-inline-end:15px;}.cNexusOrderBadge{display:inline-block;padding:0 10px;border-radius:4px;vertical-align:middle;font-size:12px;line-height:20px;font-weight:500;color:#fff;background:#000;}.cNexusOrderBadge.cNexusOrderBadge_paid{background:#7e9e64;}.cNexusOrderBadge.cNexusOrderBadge_expd{background:#c8c9c1;}.cNexusOrderBadge.cNexusOrderBadge_pend{background:#7C6146;}.ipsCommercePrices:not(:last-child){margin-bottom:1em;}.ipsCommercePrice{font-weight:600;font-size:1.1em;color:var(--i-color_primary);}.ipsCommercePrices small{color:var(--i-color_soft);font-size:inherit;}.ipsCommercePrices s{filter:grayscale(1) opacity(.4);}.ipsCommerceStock--in{font-weight:600;}.ipsCommerceStock--out{font-weight:500;color:var(--i-color_negative);}.ipsData--cart-contents .ipsData__item{isolation:auto;}.ipsStreamItem .cNexusPrice{color:var(--i-color_primary);font-weight:bold;font-size:1.1em;}.ipsStreamItem .cNexusPrice s{color:color-mix(in srgb, var(--i-color_soft) 70%, transparent);font-weight:normal;}.ipsStreamItem .cNexusPrice :is(small, s){font-size:max(.8em, 11px);}[data-role="paymentMethodForm"] .ipsInput--dummy:not(#x){display:block;}
+1 -1
View File
@@ -10,7 +10,7 @@ if(this._editorPreferences['lines']){$('#elTemplateEditor_preferences_menu').fin
this._tabContent.find('[data-group]').each(function(i,item){var original=self._tabContent.find('[data-fileid="'+$(item).attr('data-fileid')+
'"] input[data-role="variables"]');if(original.length){original.after($('<input/>').attr('type','hidden').attr('name',original.attr('name')).attr('value',original.attr('value')).attr('data-role','variables'))
original.remove();}
ips.loader.get(['core/interface/codemirror/diff_match_patch.js','core/interface/codemirror/codemirror.js']).then(function(){self._initCodeMirror($(item).attr('data-fileid'),$(item).attr('data-type'));});});},menuSelected:function(e,data){if(data.originalEvent){data.originalEvent.preventDefault();}
ips.loader.getStatic(['applications/core/interface/static/codemirror/diff_match_patch.js','applications/core/interface/static/codemirror/codemirror.js']).then(function(){self._initCodeMirror($(item).attr('data-fileid'),$(item).attr('data-type'));});});},menuSelected:function(e,data){if(data.originalEvent){data.originalEvent.preventDefault();}
if(data.triggerID=='elTemplateEditor_preferences'){if(data.selectedItemID=='diff'){this.toggleDiff();}
else if(data.selectedItemID=='wrap'){this._changeEditorPreference(!ips.utils.db.get('templateEditor','wrap'),'wrap','lineWrapping');}else{this._changeEditorPreference(!ips.utils.db.get('templateEditor','lines'),'lines','lineNumbers');}}},_changeEditorPreference:function(toValue,type,cmName){if(toValue){$('#elTemplateEditor_preferences_menu').find('[data-ipsMenuValue="'+type+'"]').addClass('ipsMenu_itemChecked');}else{$('#elTemplateEditor_preferences_menu').find('[data-ipsMenuValue="'+type+'"]').removeClass('ipsMenu_itemChecked');}
this._editorPreferences[type]=toValue;ips.utils.db.set('templateEditor',type,toValue);for(var i in this._cmInstances){if(this._cmInstances[i]instanceof CodeMirror.MergeView){this._cmInstances[i].edit.setOption(cmName,toValue);this._cmInstances[i].left.orig.setOption(cmName,toValue);}else{this._cmInstances[i].setOption(cmName,toValue);}}},openedDialog:function(e,data){if(data.elemID=='elTemplateEditor_variables'||data.elemID=='elTemplateEditor_attributes'){this._insertVariablesIntoDialog(data);}},_insertVariablesIntoDialog:function(data){var active=this._getActiveTab();if(!active.tabPanel){return;}
+1 -1
View File
@@ -1,3 +1,3 @@
;(function($,_,undefined){"use strict";ips.controller.register('cms.front.records.form',{lastChecked:'',initialize:function(){$('#elInput_'+this.scope.attr('data-ipsTitleField')).on('blur',$.proxy(this.updateSlug,this));this.scope.find('button[data-ipsChange]').on('click',$.proxy(this.manualToggle,this));this.scope.find('button[data-ipsCancel]').on('click',$.proxy(this.manualCancel,this));if(this.scope.find('input[name=record_static_furl_set_checkbox]').prop('checked')){this.scope.removeClass('ipsHide');this._show();}},_hide:function(){this.scope.find('span[data-ipsSlugManual]').addClass('ipsHide');this.scope.find('span[data-ipsSlugSlug]').removeClass('ipsHide');this.scope.find('span[data-ipsSlugExt]').removeClass('ipsHide');this.scope.find('button[data-ipsCancel]').addClass('ipsHide');this.scope.find('button[data-ipsChange]').removeClass('ipsHide');this.scope.find('input[name=record_static_furl_set_checkbox]').prop('checked',false);this.scope.find('input[name=record_static_furl_set]').val(0);},_show:function(){this.scope.find('button[data-ipsCancel]').removeClass('ipsHide');this.scope.find('button[data-ipsChange]').addClass('ipsHide');this.scope.find('span[data-ipsSlugManual]').removeClass('ipsHide');this.scope.find('span[data-ipsSlugSlug]').addClass('ipsHide');this.scope.find('span[data-ipsSlugExt]').addClass('ipsHide');this.scope.find('input[name=record_static_furl_set_checkbox]').prop('checked',true);this.scope.find('input[name=record_static_furl_set]').val(1);},manualCancel:function(e){e.preventDefault();this._hide();},manualToggle:function(e){e.preventDefault();this._show();},updateSlug:function(e){var value=$('#elInput_'+this.scope.attr('data-ipsTitleField')).val();var self=this;if(value!=this.lastChecked){ips.getAjax()(ips.getSetting('baseURL')+'index.php?app=cms&module=database&controller=ajax&do=makeFurl',{data:{slug:value}}).done(function(response){self.scope.removeClass('ipsHide');self.scope.find('span[data-ipsSlugSlug]').html('/'+response.slug);});this.lastChecked=value;}}});}(jQuery,_));;
;(function($,_,undefined){"use strict";ips.controller.register('cms.front.records.revisions',{initialize:function(){var self=this;ips.loader.get(['core/interface/codemirror/diff_match_patch.js','core/interface/codemirror/codemirror.js']).then(function(){self._initCodeMirror();});},_initCodeMirror:function(){var self=this;var count=0;_.each(self.scope.find("[data-key]"),function(elem){if($(elem).attr('data-method')=='merge'){CodeMirror.MergeView(document.getElementById($(elem).identify().attr('id')),{value:self.scope.find('[data-current="'+$(elem).attr('data-key')+'"]').val(),origLeft:self.scope.find('[data-original="'+$(elem).attr('data-key')+'"]').val(),lineWrapping:true,lineNumbers:false,mode:'htmlmixed',revertButtons:false});}
;(function($,_,undefined){"use strict";ips.controller.register('cms.front.records.revisions',{initialize:function(){var self=this;ips.loader.getStatic(['applications/core/interface/static/codemirror/diff_match_patch.js','applications/core/interface/static/codemirror/codemirror.js']).then(function(){self._initCodeMirror();});},_initCodeMirror:function(){var self=this;var count=0;_.each(self.scope.find("[data-key]"),function(elem){if($(elem).attr('data-method')=='merge'){CodeMirror.MergeView(document.getElementById($(elem).identify().attr('id')),{value:self.scope.find('[data-current="'+$(elem).attr('data-key')+'"]').val(),origLeft:self.scope.find('[data-original="'+$(elem).attr('data-key')+'"]').val(),lineWrapping:true,lineNumbers:false,mode:'htmlmixed',revertButtons:false});}
else if(_.isUndefined($(elem).attr('data-complete'))){var diff=new diff_match_patch();var differences=diff.diff_main(self.scope.find('[data-original="'+$(elem).attr('data-key')+'"]').html(),self.scope.find('[data-current="'+$(elem).attr('data-key')+'"]').html());var currentDiff=diff.diff_prettyHtml(differences);self.scope.find('[data-current="'+$(elem).attr('data-key')+'"]').html(currentDiff);$(elem).attr('data-complete',1);}});}});}(jQuery,_));;
+1 -1
View File
@@ -1,4 +1,4 @@
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.templates.simple',{_cmInstances:{},initialize:function(){this.on('click','button[type="submit"]',this.save);this.on('tabChanged',this.changedTab);var debounce=_.debounce(_.bind(this._recalculatePanelWrapper,this),100);this.on(window,'resize',debounce);this.setup();},setup:function(){var self=this;ips.loader.get(['core/interface/codemirror/diff_match_patch.js','core/interface/codemirror/codemirror.js']).then(function(){self._initCodeMirror('theme_simple_header','htmlmixed');self._initCodeMirror('theme_simple_footer','htmlmixed');self._initCodeMirror('theme_simple_css','css');});},_initCodeMirror:function(key,type){var self=this;this._cmInstances[key]=CodeMirror.fromTextArea(document.getElementById('elTextarea_'+key),{mode:type,lineNumbers:false});this._cmInstances[key].setSize(null,this._getContentHeight());this.scope.find('#elTextarea_'+key).parent().addClass('i-background_3 i-padding_2');},changedTab:function(e,data){this._recalculatePanelWrapper();},save:function(e){e.preventDefault();var self=this;var form=this.scope.find('form[data-formid="form"]');var save={};_.each(this._cmInstances,function(key,cm){key.save();});form.find('input').each(function(){save[$(this).attr('name')]=$(this).val();});form.find('textarea').each(function(){save[$(this).attr('name')]=$(this).val();});Debug.log(save);self.scope.find('button[type="submit"]').addClass('ipsButton--disabled').removeClass('ipsButton--primary');ips.getAjax()(form.attr('action'),{dataType:'json',data:save,type:'post'}).done(function(response){ips.ui.flashMsg.show(ips.getString('saved'));}).fail(function(jqXHR){var message=ips.getString('saveThemeError');try
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.templates.simple',{_cmInstances:{},initialize:function(){this.on('click','button[type="submit"]',this.save);this.on('tabChanged',this.changedTab);var debounce=_.debounce(_.bind(this._recalculatePanelWrapper,this),100);this.on(window,'resize',debounce);this.setup();},setup:function(){var self=this;ips.loader.getStatic(['applications/core/interface/static/codemirror/diff_match_patch.js','applications/core/interface/static/codemirror/codemirror.js']).then(function(){self._initCodeMirror('theme_simple_header','htmlmixed');self._initCodeMirror('theme_simple_footer','htmlmixed');self._initCodeMirror('theme_simple_css','css');});},_initCodeMirror:function(key,type){var self=this;this._cmInstances[key]=CodeMirror.fromTextArea(document.getElementById('elTextarea_'+key),{mode:type,lineNumbers:false});this._cmInstances[key].setSize(null,this._getContentHeight());this.scope.find('#elTextarea_'+key).parent().addClass('i-background_3 i-padding_2');},changedTab:function(e,data){this._recalculatePanelWrapper();},save:function(e){e.preventDefault();var self=this;var form=this.scope.find('form[data-formid="form"]');var save={};_.each(this._cmInstances,function(key,cm){key.save();});form.find('input').each(function(){save[$(this).attr('name')]=$(this).val();});form.find('textarea').each(function(){save[$(this).attr('name')]=$(this).val();});Debug.log(save);self.scope.find('button[type="submit"]').addClass('ipsButton--disabled').removeClass('ipsButton--primary');ips.getAjax()(form.attr('action'),{dataType:'json',data:save,type:'post'}).done(function(response){ips.ui.flashMsg.show(ips.getString('saved'));}).fail(function(jqXHR){var message=ips.getString('saveThemeError');try
{message=$.parseJSON(jqXHR.responseText);}
catch(e){}
ips.ui.alert.show({type:'alert',message:message,icon:'warn'});}).always(function(){self.scope.find('button[type="submit"]').removeClass('ipsButton--disabled').addClass('ipsButton--primary');});},_getContentHeight:function(){return $(window).height()-this.scope.find('#tabs_form').offset().top-250;},_recalculatePanelWrapper:function(){var self=this;_.each(this._cmInstances,function(key,cm){key.setSize(null,self._getContentHeight());});}});}(jQuery,_));;
+5 -4
View File
@@ -1,7 +1,8 @@
ips.templates.set('follow.frequency'," {{#hasNotifications}} <i class='fa-solid fa-bell'></i> {{/hasNotifications}} {{^hasNotifications}} <i class='fa-regular fa-bell-slash'></i> {{/hasNotifications}} {{text}}");;
ips.templates.set('follow.frequency'," {{#hasNotifications}} <i class='fa-regular fa-bell'></i> {{/hasNotifications}} {{^hasNotifications}} <i class='fa-regular fa-bell-slash'></i> {{/hasNotifications}} {{text}}");;
;(function($,_,undefined){"use strict";ips.controller.register('core.front.system.manageFollowed',{initialize:function(){$(document).on('followingItem',_.bind(this.followingItemChange,this));this.setup();},setup:function(){this._followID=this.scope.attr('data-followID');},followingItemChange:function(e,data){if(data.feedID!=this._followID){return;}
if(!_.isUndefined(data.unfollow)){this.scope.find('[data-role="followDate"], [data-role="followFrequency"]').html('');this.scope.find('[data-role="followAnonymous"]').addClass('ipsHide');this.scope.find('[data-role="followButton"]').addClass('ipsButton--disabled');this.scope.addClass('i-opacity_4');return;}
this.scope.find('[data-role="followAnonymous"]').toggleClass('ipsHide',!data.anonymous);if(data.notificationType){this.scope.find('[data-role="followFrequency"]').html(ips.templates.render('follow.frequency',{hasNotifications:(data.notificationType!=='none'),text:ips.getString('followFrequency_'+data.notificationType)}));}}});}(jQuery,_));;
if(!_.isUndefined(data.unfollow)){this.scope.find('[data-role="followDate"], [data-role="followFrequency"]').html('');this.scope.find('[data-role="followAnonymous"]').attr('hidden','');this.scope.find('[data-role="followButton"]').addClass('ipsButton--disabled');this.scope.addClass('i-opacity_4');return;}
if(data.anonymous){this.scope.find('[data-role="followAnonymous"]').removeAttr('hidden');}else{this.scope.find('[data-role="followAnonymous"]').attr('hidden','');}
if(data.notificationType){this.scope.find('[data-role="followFrequency"]').html(ips.templates.render('follow.frequency',{hasNotifications:(data.notificationType!=='none'),text:ips.getString('followFrequency_'+data.notificationType)}));}}});}(jQuery,_));;
;(function($,_,undefined){"use strict";ips.controller.register('core.front.system.metaTagEditor',{_changed:false,initialize:function(){this.on('click','[data-action="addMeta"]',this.addMetaBlock);this.on('click','[data-action="deleteMeta"]',this.removeMetaBlock);this.on('click','[data-action="deleteDefaultMeta"]',this.removeDefaultMeta);this.on('click','[data-action="restoreMeta"]',this.restoreDefaultMeta);this.on('change','input, select',this.changed);this.on('submit','form',this.formSubmit);this.on(window,'beforeunload',this.beforeUnload);this.on('change','[data-role="metaTagChooser"]',this.toggleNameField);this.setup();},setup:function(){this.scope.css({zIndex:"10000"});},toggleNameField:function(e){if($(e.currentTarget).val()=='other'){$(e.currentTarget).closest('ul').find('[data-role="metaTagName"]').show();}
else
{$(e.currentTarget).closest('ul').find('[data-role="metaTagName"]').hide();}},restoreDefaultMeta:function(e){var tag=$(e.currentTarget).attr('data-tag');var copy=this.scope.find('[data-role="metaTemplate"]').clone().attr('data-role','metaTagRow').hide();if(tag=='robots'||tag=='keywords'||tag=='description'){copy.find('select[name="meta_tag_name[]"]').val(tag);}
@@ -27,7 +28,7 @@ else
const enableLink=pushElement.contents();pushElement.html(ips.templates.render('core.notifications.checking'));const jsonSubscription=JSON.parse(JSON.stringify(subscription));const key=jsonSubscription.keys.p256dh;ips.getAjax()(ips.getSetting('baseURL')+'index.php?app=core&module=system&controller=notifications&do=verifySubscription',{type:'post',data:{key}}).done((response,status,jqXHR)=>{if(jqXHR.status===200){pushElement.html(ips.templates.render('core.notifications.success'));return;}
pushElement.html(enableLink);}).fail(()=>{pushElement.html(enableLink);});}).catch(err=>{Debug.error(err);pushElement.html(ips.templates.render('core.notifications.notSupported'));});}else if(Notification.permission==='denied'){pushElement.html(ips.templates.render('core.notifications.fail'));}}else{Debug.log("Notifications not supported");pushElement.html(ips.templates.render('core.notifications.notSupported'));}
pushElement.slideDown();},enablePush:function(e){e.preventDefault();ips.utils.notification.requestPermission();},subscribePending:function(e,data){this.scope.find('[data-action="enablePush"]').html(ips.templates.render('core.notifications.pending')).show();},subscribeSuccess:function(e,data){this.scope.find('[data-action="enablePush"]').html(ips.templates.render('core.notifications.success')).show();},subscribeFail:function(e,data){this.scope.find('[data-action="enablePush"]').html(ips.templates.render('core.notifications.fail')).show();},permissionDenied:function(){this.scope.find('[data-action="enablePush"]').html(ips.templates.render('core.notifications.fail')).show();},promptMe:function(e){if($(e.target).is(':checked')){ips.utils.cookie.unset('noBrowserNotifications');if(!ips.utils.notification.hasPermission()){ips.utils.notification.requestPermission();}else{ips.ui.flashMsg.show(ips.getString('saved'));}}else{ips.utils.cookie.set('noBrowserNotifications',true,true);ips.ui.flashMsg.show(ips.getString('saved'));}},_showNotificationChoice:function(){this.scope.find('[data-role="browserNotifyInfo"]').show();var type=ips.utils.notification.permissionLevel();switch(type){case'denied':$('#elBrowserNotifications').prop('checked',false).prop('disabled',true);this.scope.find('[data-role="browserNotifyDisabled"]').show();break;case'granted':$('#elBrowserNotifications').prop('checked',!ips.utils.cookie.get('noBrowserNotifications'));break;default:break;}},showNotificationSettings:function(e){e.preventDefault();var target=$(e.currentTarget);var expandedContainer=target.parent().find('[data-role="notificationSettingsWindow"]');this.scope.find('.cNotificationTypes__row--selected').removeClass('cNotificationTypes__row--selected');this.scope.find('[data-action="showNotificationSettings"]').show();this.scope.find('[data-role="notificationSettingsWindow"]').hide();target.parent().addClass('cNotificationTypes__row--selected');target.find('.cNotificationSettings_expand').addClass('ipsLoading ipsLoading--tiny').find('i').addClass('ipsHide');ips.getAjax()(target.attr('href')).done(function(response){expandedContainer.html(response).show();target.hide();target.find('.cNotificationSettings_expand').removeClass('ipsLoading').find('i').removeClass('ipsHide');}).fail(function(){window.location=target.attr('href');})},closeNotificationSettings:function(e){e.preventDefault();this.scope.find('.cNotificationTypes__row--selected').removeClass('cNotificationTypes__row--selected');this.scope.find('[data-action="showNotificationSettings"]').show();this.scope.find('[data-role="notificationSettingsWindow"]').hide();},saveNotificationSettings:function(e){e.preventDefault();var target=$(e.target);var form=target.closest('form');var container=form.closest('[data-role="notificationSettingsWindow"]');var containerParent=container.closest('.cNotificationTypes__row');var closeIcon=container.find('[data-action="closeNotificationSettings"]');closeIcon.addClass('ipsLoading ipsLoading--tiny').text('');ips.getAjax()(form.attr('action'),{data:form.serialize(),type:'post'}).done(function(response){closeIcon.removeClass('ipsLoading').html('&times;');containerParent.find('[data-action="showNotificationSettings"]').html(response);ips.ui.flashMsg.show(ips.getString('saved'));});}});}(jQuery,_));;
;(function($,_,undefined){"use strict";ips.controller.register('core.front.system.referrals',{initialize:function(){$('.cReferrer_copy').each(function(){$(this).hide();});ips.loader.get(['core/interface/clipboard/clipboard.min.js']).then(function(){if(ClipboardJS.isSupported()){$('.cReferrer_copy').each(function(){$(this).show();});var clipboard=new ClipboardJS('.cReferrer_copy');clipboard.on('success',function(e){ips.ui.flashMsg.show(ips.getString('copied'));e.clearSelection();});}else{$('.cReferrals_directLink_input').removeClass('ipsHide');$('.cReferrals_directLink_link').addClass('ipsHide');}});}});}(jQuery,_));;
;(function($,_,undefined){"use strict";ips.controller.register('core.front.system.referrals',{initialize:function(){$('.cReferrer_copy').each(function(){$(this).hide();});ips.loader.getStatic("/applications/core/interface/static/clipboard/clipboard.min.js").then(function(){if(ClipboardJS.isSupported()){$('.cReferrer_copy').each(function(){$(this).show();});var clipboard=new ClipboardJS('.cReferrer_copy');clipboard.on('success',function(e){ips.ui.flashMsg.show(ips.getString('copied'));e.clearSelection();});}else{$('.cReferrals_directLink_input').removeClass('ipsHide');$('.cReferrals_directLink_link').addClass('ipsHide');}});}});}(jQuery,_));;
;(function($,_,undefined){"use strict";ips.controller.register('core.front.system.register',{usernameField:null,timers:{'username':null,'email':null},ajax:ips.getAjax(),popup:null,passwordBlurred:true,dirty:false,initialize:function(){this.on('keyup','#elInput_username',this.changeUsername);this.on('blur','#elInput_username',this.changeUsername);this.on('keyup','#elInput_password_confirm',this.confirmPassword);this.on('blur','#elInput_password_confirm',this.confirmPassword);this.on('click','a[data-ipsPbrCancel]',this.cancelPbr);this.setup();},setup:function(){this.usernameField=this.scope.find('#elInput_username');this.passwordField=this.scope.find('#elInput_password');this.confirmPasswordField=this.scope.find('#elInput_password_confirm');this.usernameField.after($('<span/>').attr('data-role','validationCheck'));this.confirmPasswordField.after($('<span/>').attr('data-role','validationCheck'));this.convertExistingErrors();},convertExistingErrors:function(){var fields=this.scope.find('#elInput_username, #elInput_password, #elInput_password_confirm');var self=this;fields.each(function(){var elem=$(this);var wrapper=elem.closest('.ipsFieldRow');if(!wrapper.hasClass('ipsFieldRow_error')){return;}
var message=wrapper.find('.i-color_warning').html();self._clearResult(elem);wrapper.find('[data-role="validationCheck"]').show().html(ips.templates.render('core.forms.validateFailText',{message:message}));elem.removeClass('ipsField_success').addClass('ipsField_error');});},cancelPbr:function(e){var url=$(e.target).closest('[data-ipsPbrCancel]').attr('href');e.preventDefault();e.stopPropagation();ips.ui.alert.show({type:'confirm',message:ips.getString('pbr_confirm_title'),subText:ips.getString('pbr_confirm_text'),icon:'warn',buttons:{ok:ips.getString('pbr_confirm_ok'),cancel:ips.getString('pbr_confirm_cancel')},callbacks:{ok:function(){window.location=url;},cancel:function(){return false;}}});},changeUsername:function(e){if(this.timers['username']){clearTimeout(this.timers['username']);}
if(this.usernameField.val().length>4||e.type!="keyup"){this.timers['username']=setTimeout(_.bind(this._doCheck,this,this.usernameField),700);}else{this._clearResult(this.usernameField);}},changePassword:function(e){if(this.timers['password']){clearTimeout(this.timers['password']);}
+5 -5
View File
@@ -46,14 +46,14 @@ let basePages=Math.ceil(Math.abs(children[children.length-1].getBoundingClientRe
return basePages;},setupObserver(){if(this._observer){this._observer.disconnect();}
if(this.getCarousel()instanceof HTMLElement){this._observer=new ResizeObserver(_.debounce(()=>this.updateCarouselIndicator()));this._observer.observe(this.getCarousel());}}});}(jQuery,_));;
;(function($,_){"use strict";let pageLoadTime;setTimeout(()=>pageLoadTime=Date.now());let state='unloaded';const whenLoadedCallbacks=[];function whenLoaded(){return new Promise(resolve=>{if(state==='loaded'){resolve();return;}
whenLoadedCallbacks.push(resolve);if(state==='unloaded'){ips.loader.get(['core/front/controllers/widgets/ips.widgets.block.js']).then(async()=>{if(!window.ips.utils.pagebuilder){const url=ips.getSetting('baseURL')+`/applications/core/interface/pagebuilder/manifest.json?v=${ips.getSetting('pagebuilderKey')}`
whenLoadedCallbacks.push(resolve);if(state==='unloaded'){ips.loader.get(['core/front/controllers/widgets/ips.widgets.block.js']).then(async()=>{if(!window.ips.utils.pagebuilder){const url=ips.getSetting('baseURL')+`/applications/core/interface/static/pagebuilder/manifest.json?v=${ips.getSetting('pagebuilderKey')}&antiCache=${encodeURIComponent(ips.getSetting('jsAntiCache'))}`
const data=await ips.fetch(url)
const toLoad=[];for(const key in data){if(data[key].file?.match(/\.css$/i)){const href=ips.getSetting('baseURL')+'/applications/core/interface/pagebuilder/'+data[key].file
const toLoad=[];for(const key in data){if(data[key].file?.match(/\.css$/i)){const href=ips.getSetting('baseURL')+'/applications/core/interface/static/pagebuilder/'+data[key].file+`?antiCache=${encodeURIComponent(ips.getSetting('jsAntiCache'))}`
if(!document.querySelector(`[href="${encodeURI(href)}"]`)){const style=document.createElement('link')
style.rel='stylesheet'
style.href=href
document.head.appendChild(style)}}else if(data[key].isEntry){toLoad.push(ips.getSetting('baseURL')+'/applications/core/interface/pagebuilder/'+data[key].file)}}
if(toLoad.length){await ips.loader.get(toLoad)}}
document.head.appendChild(style)}}else if(data[key].isEntry){toLoad.push('/applications/core/interface/static/pagebuilder/'+data[key].file)}}
if(toLoad.length){await ips.loader.getStatic(toLoad)}}
state='loaded';while(whenLoadedCallbacks.length){whenLoadedCallbacks.shift()();}})
state='loading';}})}
ips.controller.register('core.front.widgets.manager',{_loadedManager:false,_loadingManager:false,_inManagingState:false,_wasUnused:false,initialize(){this.on('click','[data-action="openSidebar"]',this.openSidebarManager);this.on('click','[data-action="closeSidebar"]',this.closeSidebarManager);this._wasUnused=!!document.querySelector('.ipsLayout__secondary-column.ipsLayout__secondary-column--hide')||this._wasUnused;whenLoaded().then(()=>{if(ips.utils.url.getParam('_blockManager')){this.openSidebarManager();}});window.addEventListener('historychange',_.debounce((e)=>{if(ips.utils.history.getLastChangeType()!=='pagebuilder'&&e.detail?.type!=='pop'){return;}
@@ -73,7 +73,7 @@ this.scope.addClass('cWidgetsManaging');},closeSidebarManager(e){e?.preventDefau
if(ips.utils.url.getParam('_blockManager')){if(ips.utils.history.getState('pagebuilder').artificial){window.history.back()}
setTimeout(()=>ips.utils.history.replaceState({},'pagebuilder',window.location.href.replace(/\?(.*?)&?_blockManager=[^&]*/,'?$1').replace(/[?&]+$/,'')))}}},_setUpDragging(){this.elem.querySelectorAll('[data-role="availableBlocks"] ul').forEach(list=>{list.style.zIndex=ips.ui.zIndex();list.querySelectorAll(':scope > .cSidebarManager_block').forEach(item=>this._setupDraggingOnItem(item));})},_setupDraggingOnItem(item){item.setAttribute('draggable','true');const wrapBehavior=item.dataset.widgetLayouts?.split(',')?.[0]?.trim()||'table'
item.addEventListener('dragstart',function(e){e.stopPropagation();e.dataTransfer.clearData();const data={blockID:e.target.dataset.blockid,blockTitle:e.target.dataset.blocktitle,allowReuse:e.target.dataset.allowreuse,config:!!e.target.dataset.blockconfig,blank:e.target.dataset.blockerrormessage,menustyle:e.target.dataset.menustyle,ipsWrapBehavior:wrapBehavior,};e.dataTransfer.setData('application/x.ipsblock',JSON.stringify(data));ipsSettings.__pageeditor_last_dragged_widget_data__=data;item.addEventListener('dragend',e=>{delete ipsSettings.__pageeditor_last_dragged_widget_data__;},{once:true});})},async _showManager(){this.scope.find('#elSidebarManager').removeAttr('hidden');this._fadeUnmanagedRoots();if(!this._loadedManager&&!this._loadingManager){try{const response=await ips.fetch(ips.getSetting('baseURL')+'index.php?app=core&module=system&controller=widgets&do=getBlockList',{data:{pageApp:$('body').attr('data-pageApp')}})
this._loadedManager=true;this.scope.find('[data-role="availableBlocks"]').html(response);this._setUpDragging();this.setupSearch();this.setupFavorites();try{$(document).trigger('contentChange',[$('#elSidebarManager')]);}catch(e){Debug.error(e);}
this._loadedManager=true;this.scope.find('[data-role="availableBlocks"]').html(response);this.scope.find('[data-role="availableBlocks"]').attr("data-unloaded",null);this._setUpDragging();this.setupSearch();this.setupFavorites();try{$(document).trigger('contentChange',[$('#elSidebarManager')]);}catch(e){Debug.error(e);}
document.dispatchEvent(new CustomEvent('ipsWidgetManagerLoaded',{bubbles:true,cancelable:true}))}catch(e){Debug.error(e)
ips.ui.alert.show({type:'alert',icon:'warn',message:ips.getString('sidebar_fetch_blocks_error'),callbacks:{}});}
this.scope.find('[data-role="availableBlocks"]').removeClass('ipsLoading ipsLoading_dark');this._loadingManager=false;}else{this._setUpDragging();this.setupSearch();this.setupFavorites();}
+1 -1
View File
@@ -3,7 +3,7 @@
;(function($,undefined){"use strict";ips.controller.register('core.global.core.coverPhoto',{_image:null,_existingPosition:0,_tooltip:null,_expandedCover:false,_newPosition:0,_container:null,_editingPosScroll:0,_editingPosMouse:0,initialize:function(){var self=this;this.on('menuItemSelected',function(e,data){var button=$(data.originalEvent.target).closest('a[data-action]');switch($(button).attr('data-action')){case'removeCoverPhoto':self.removePhoto(data);break;case'positionCoverPhoto':self.positionPhoto(data.originalEvent);break;}});this.on('click','[data-action="savePosition"]',this.savePosition);this.on('click','[data-action="cancelPosition"]',this.cancelPosition);this.on('click','[data-action="toggleCoverPhoto"]',this.toggleCoverPhoto);this.setup();},setup:function(){this._image=this.scope.find('.ipsCoverPhoto__image');var doPosition=ips.utils.url.getParam('_position');if(doPosition!=undefined)this.positionPhoto();this.scope.find('a[data-action="positionCoverPhoto"]').parent().removeClass('ipsHide');},removePhoto:function(data){data.originalEvent.preventDefault();var self=this;var target=$(data.originalEvent.target).closest('[data-action="removeCoverPhoto"]');ips.ui.alert.show({type:'confirm',icon:'warn',message:ips.getString('confirmRemoveCover'),callbacks:{ok:function(){ips.getAjax()($(target).attr('href')+'&wasConfirmed=1').done(function(){ips.utils.anim.go('fadeOut',self._image).done(function(){ips.ui.flashMsg.show(ips.getString('removeCoverDone'));});data.menuElem.find('[data-role="photoEditOption"]').hide();}).fail(function(err){window.location=$(target).attr('href');});}}});},savePosition:function(e){e.preventDefault();let newPos=((this._container.scrollTop/(this._container.scrollHeight-this._container.clientHeight))*100);newPos=newPos||0;this._newPosition=newPos;this.scope.attr('data-coverOffset',this._newPosition);this.scope.css({'--offset':this._newPosition});ips.getAjax()(this.scope.attr('data-url')+'&do=coverPhotoPosition'+'&offset='+this._newPosition).fail(function(err){this.scope.attr('data-url')+'&do=coverPhotoPosition'+'&offset='+this._newPosition;});this._resetImage();},cancelPosition:function(e){e.preventDefault();this._resetImage();},positionPhoto:function(e){if(e!=undefined)e.preventDefault();this.scope.addClass('ipsCoverPhoto--editing');this._existingPosition=parseInt(this.scope.attr('data-coveroffset'))||0;this._container=this.scope.find('.ipsCoverPhoto__container')[0];this._mouseDownHandler=this._mouseDownHandler.bind(this);this._container.addEventListener('mousedown',this._mouseDownHandler);this._mouseUpHandler=this._mouseUpHandler.bind(this);this._container.addEventListener('mouseup',this._mouseUpHandler);this._mouseOutHandler=this._mouseOutHandler.bind(this);this._container.addEventListener('mouseout',this._mouseOutHandler);this._container.scrollTop=(this._container.scrollHeight-this._container.clientHeight)*(this._existingPosition/100);this.scope.find('.ipsCoverPhoto__container').after(ips.templates.render('core.coverPhoto.controls'));this._showTooltip();},_mouseDownHandler:function(e){e.preventDefault();this._editingPosMouse=e.clientY;this._editingPosScroll=this._container.scrollTop;this._mouseMoveHandler=this._mouseMoveHandler.bind(this);this._container.addEventListener('mousemove',this._mouseMoveHandler);},_mouseMoveHandler:function(e){let dy=(e.clientY-this._editingPosMouse)*2.3;this._container.scrollTop=this._editingPosScroll-dy;},_mouseUpHandler:function(e){this._container.removeEventListener('mousemove',this._mouseMoveHandler);},_mouseOutHandler:function(e){this._container.removeEventListener('mousemove',this._mouseMoveHandler);},_resetImage:function(){this._container.removeEventListener('mousedown',this._mouseDownHandler);this.scope.removeClass('ipsCoverPhoto--editing');this.scope.find('[data-role="reposition"]').remove();this.scope.find('[data-role="coverPhotoControls"]').remove();this._hideTooltip();ips.utils.history.pushState({},'core.global.core.coverPhoto',ips.utils.url.removeParam('csrfKey',this.scope.attr('data-url')));},_showTooltip:function(msg){if(!this._tooltip){this._buildTooltip();}
this._tooltip.hide().text(ips.getString('dragCoverPhoto'));this._positionTooltip();},_hideTooltip:function(){if(this._tooltip&&this._tooltip.is(':visible')){ips.utils.anim.go('fadeOut',this._tooltip);}},_positionTooltip:function(){var positionInfo={trigger:this.scope.find('.ipsCoverPhoto__container'),target:this._tooltip,center:true,above:true};var tooltipPosition=ips.utils.position.positionElem(positionInfo);this._tooltip.css({left:tooltipPosition.left+'px',top:tooltipPosition.top+'px',position:(tooltipPosition.fixed)?'fixed':'absolute',zIndex:ips.ui.zIndex()});if(tooltipPosition.location.vertical=='top'){this._tooltip.addClass('ipsTooltip_top');}else{this._tooltip.addClass('ipsTooltip_bottom');}
this._tooltip.show();},_buildTooltip:function(){var tooltipHTML=ips.templates.render('core.tooltip',{id:'elCoverPhotoTooltip'});ips.getContainer().append(tooltipHTML);this._tooltip=$('#elCoverPhotoTooltip');},toggleCoverPhoto:function(){if(this._expandedCover==false){let naturalImage=this.scope.find('.ipsCoverPhoto__image')[0],ratio=naturalImage.naturalWidth/naturalImage.naturalHeight;this.scope.find('.ipsCoverPhoto__container').css("--coverPhoto--ratio",ratio);this._expandedCover=true;this.scope.addClass('ipsCoverPhoto--expanded');}else{this._expandedCover=false;this.scope.removeClass('ipsCoverPhoto--expanded');}},});}(jQuery));;
;(function($,_,undefined){"use strict";ips.controller.register('core.global.core.cropper',{_image:null,_coords:{},initialize:function(){this.setup();},setup:function(){var self=this;this._image=this.scope.find('[data-role="profilePhoto"]');this._coords={topLeftX:this.scope.find('[data-role="topLeftX"]'),topLeftY:this.scope.find('[data-role="topLeftY"]'),bottomRightX:this.scope.find('[data-role="bottomRightX"]'),bottomRightY:this.scope.find('[data-role="bottomRightY"]'),};this._image.css({maxWidth:'100%'});ips.loader.get(['core/interface/cropper/cropper.min.js']).then(function(){self._image.imagesLoaded(_.bind(self._startCropper,self));});},_startCropper:function(){var self=this;var width=this._image.width();var height=this._image.height();this._image.closest('[data-role="cropper"]').css({width:width+'px',height:height+'px'});var cropper=new Cropper(this._image.get(0),{aspectRatio:1/1,autoCropArea:0.9,responsive:true,zoomOnWheel:false,crop:function(e){self._coords.topLeftX.val(e.detail.x);self._coords.topLeftY.val(e.detail.y);self._coords.bottomRightX.val(e.detail.width+e.detail.x);self._coords.bottomRightY.val(e.detail.height+e.detail.y);}});}});}(jQuery,_));;
;(function($,_,undefined){"use strict";ips.controller.register('core.global.core.cropper',{_image:null,_coords:{},initialize:function(){this.setup();},setup:function(){var self=this;this._image=this.scope.find('[data-role="profilePhoto"]');this._coords={topLeftX:this.scope.find('[data-role="topLeftX"]'),topLeftY:this.scope.find('[data-role="topLeftY"]'),bottomRightX:this.scope.find('[data-role="bottomRightX"]'),bottomRightY:this.scope.find('[data-role="bottomRightY"]'),};this._image.css({maxWidth:'100%'});ips.loader.getStatic(['applications/core/interface/static/cropper/cropper.min.js']).then(function(){self._image.imagesLoaded(_.bind(self._startCropper,self));});},_startCropper:function(){var self=this;var width=this._image.width();var height=this._image.height();this._image.closest('[data-role="cropper"]').css({width:width+'px',height:height+'px'});var cropper=new Cropper(this._image.get(0),{aspectRatio:1/1,autoCropArea:0.9,responsive:true,zoomOnWheel:false,crop:function(e){self._coords.topLeftX.val(e.detail.x);self._coords.topLeftY.val(e.detail.y);self._coords.bottomRightX.val(e.detail.width+e.detail.x);self._coords.bottomRightY.val(e.detail.height+e.detail.y);}});}});}(jQuery,_));;
;(function($,_,undefined){"use strict";ips.controller.register('core.global.core.datetime',{initialize:function(){this.setup();},setup:function(){var formatObject={format:$(this.scope).attr('data-format')};var localeTimeFormat=ips.utils.time.localeTimeFormat($('html').attr('lang'));if(localeTimeFormat.meridiem){formatObject.meridiem=localeTimeFormat.meridiem;}
$(this.scope).text(ips.utils.time.formatTime(new Date($(this.scope).attr('data-time')),formatObject));}});}(jQuery,_));;
;(function($,_,undefined){"use strict";ips.controller.register('core.global.core.embeddedvideo',{initialize:function(){var video=this.scope.get(0);var canPlay=false;this.scope.find('source').each(function(){if(video.canPlayType($(this).attr('type'))){canPlay=true;}});if(!canPlay){if(this.scope.find('embed').length){this.scope.replaceWith(this.scope.find('embed'));}else{this.scope.replaceWith($(this.scope).find('a'));}}}});}(jQuery,_));;
+1 -1
View File
@@ -6,7 +6,7 @@ if(this.scope.attr('data-bulkUpload')){this._bulkUpload=true;}
if(this.scope.attr('data-multipleFiles')){this._allowMultipleFiles=true;}
if(this.scope.attr('data-newVersion')){this._newVersion=true;}
this._ui={progressBar:this.scope.find('#elDownloadsSubmit_progress'),screenshots:this.scope.find('#elDownloadsSubmit_screenshots'),fileInfo:this.scope.find('#elDownloadsSubmit_otherinfo')};var hideProgressBar=function(force=false){self._ui.progressBar.hide();};if(!this._hasExistingFiles()&&!this._newVersion){hideProgressBar(true);this._ui.screenshots.hide();this._ui.fileInfo.hide();this.scope.find('[data-role="submitForm"]').prop('disabled',true);this._toggleFileImportOptions();}else if(this._newVersion){hideProgressBar(true);this._toggleFileImportOptions(true);}else{if(!this.scope.find('input[name^="files_existing"]').length){hideProgressBar();}else{this._hiddenUploader=true;}
if(!this._hasExistingScreenshots()&&this._requireScreenshots){this._ui.fileInfo.hide();this.scope.find('[data-role="submitForm"]').prop('disabled',true);}}},confirmURLs:function(e){e.preventDefault();var gotURLs=this._confirmMenu('url_files','elURLFiles');if(gotURLs){this._doneUploadStep();}},confirmImports:function(e){e.preventDefault();var gotImports=this._confirmMenu('import_files','elImportFiles');if(gotImports){this._doneUploadStep();}},confirmScreenshots:function(e){e.preventDefault();var gotURLs=this._confirmMenu('url_screenshots','elURLScreenshots');if(gotURLs){this._doneScreenshotStep();}},uploadMore:function(e){e.preventDefault();this._hiddenUploader=false;this._overriddenUploader=true;},fileAdded:function(e,data){if(!this._bulkUpload){if(data.uploader=='files'){this._doneUploadStep();}else if(data.uploader=='screenshots'){this._doneScreenshotStep();}}else{this.scope.find('[data-role="submitForm"]').prop('disabled',false);}},fileDeleted:function(e,data){if(data.uploader!='files'){return;}
if(!this._hasExistingScreenshots()&&this._requireScreenshots){this._ui.fileInfo.hide();this.scope.find('[data-role="submitForm"]').prop('disabled',true);}}},confirmURLs:function(e){var gotURLs=this._confirmMenu('url_files','elURLFiles');if(gotURLs){this._doneUploadStep();}},confirmImports:function(e){var gotImports=this._confirmMenu('import_files','elImportFiles');if(gotImports){this._doneUploadStep();}},confirmScreenshots:function(e){var gotURLs=this._confirmMenu('url_screenshots','elURLScreenshots');if(gotURLs){this._doneScreenshotStep();}},uploadMore:function(e){this._hiddenUploader=false;this._overriddenUploader=true;},fileAdded:function(e,data){if(!this._bulkUpload){if(data.uploader=='files'){this._doneUploadStep();}else if(data.uploader=='screenshots'){this._doneScreenshotStep();}}else{this.scope.find('[data-role="submitForm"]').prop('disabled',false);}},fileDeleted:function(e,data){if(data.uploader!='files'){return;}
if(data.count===0){this.scope.find('#elDownloadsSubmit_progress .ipsProgress__progress').attr('data-progress','0%').css({width:'0%'});this._ui.progressBar.hide();this._hiddenUploader=false;this._overriddenUploader=true;}},uploadCounter:function(e,data){if(data.uploader!='files'){return;}
this._uploadedCount=data.count;this._toggleFileImportOptions();},uploadProgress:function(e,data){if(data.uploader!='files'){return;}
var self=this;this._showProgress();this.scope.find('#elDownloadsSubmit_progress .ipsProgress__progress').attr('data-progress',data.percent+'%').css({width:data.percent+'%'});if(data.percent===100&&!this._progressbarTimeout){this._progressbarTimeout=setTimeout(function(){self._ui.progressBar.find('.ipsProgress').removeClass('ipsProgress--animated');self._progressbarTimeout=null;},300);}},_confirmMenu:function(inputName,elemID){var length=0;var invalid=0;this.scope.find('input[name^="'+inputName+'"]').each(function(){if($(this).val().trim()){length++;}
+41 -40
View File
@@ -20,7 +20,7 @@ ips.templates.set('core.rating.star'," <li class='{{className}}' data-ratingValu
</div>
<input type="text" data-role="widgetSearch" placeholder="{{#lang}}sidebarManagerSearchPlaceholder{{/lang}}" class="ipsInput ipsInput--widget-search" />
</div>
<div data-role='availableBlocks' class='ipsLoading ipsScrollbar'></div>
<div data-role='availableBlocks' data-unloaded="true" class='ipsLoading ipsScrollbar'></div>
<div data-role="emptyMessage" class="i-padding_2" hidden>{{#lang}}sidebarManagerSearchEmpty{{/lang}}</div>
</div>
<div id='elSidebarManager_submit' class='i-flex_00 i-padding_3 ipsButtons i-gap_2'>
@@ -155,7 +155,7 @@ ips.templates.set('tableOfContents.linkOptions',`\
`);ips.templates.set('ips.ui.controls.cannot_load',`
<div class="{{{classList}}} ipsControls__fail-message">{{message}}</div>
`,{classList:'ipsMessage ipsMessage--info',get message(){return ips.getString('ips.ui.controls.cannot_load')}});
;(function($,_,undefined){"use strict";ips.createModule('ips.loader',function(){var _loadedScripts=[],_loadingScripts=[];var init=function(){var scripts=$('script[src][data-ips]');scripts.each(function(){var scriptInfo=ips.utils.url.getURIObject($(this).attr('src'));if(scriptInfo.queryKey.src){var paths=_getPathScripts(scriptInfo.queryKey.src);_.each(paths,function(value){_loadedScripts.push(value);});}else if(scriptInfo.path.indexOf('interface/')!==-1){var interfaces=_getInterfaceScript(scriptInfo.path);if(interfaces){_loadedScripts.push(interfaces);}}else{var other=_getOtherScript(scriptInfo.source);if(other){_loadedScripts.push(other);}}});},_getOtherScript=function(path){path=path.replace(ips.getSetting('baseURL'),'');if(path.startsWith('/')){path=path.substring(1);}
;(function($,_,undefined){"use strict";ips.createModule('ips.loader',function(){var _loadedScripts=[],_loadingScripts=[];const LOADER_STATES={};var init=function(){var scripts=$('script[src][data-ips]');scripts.each(function(){var scriptInfo=ips.utils.url.getURIObject($(this).attr('src'));if(scriptInfo.queryKey.src){var paths=_getPathScripts(scriptInfo.queryKey.src);_.each(paths,function(value){_loadedScripts.push(value);});}else if(scriptInfo.path.indexOf('interface/')!==-1){var interfaces=_getInterfaceScript(scriptInfo.path);if(interfaces){_loadedScripts.push(interfaces);}}else{var other=_getOtherScript(scriptInfo.source);if(other){_loadedScripts.push(other);}}});},_getOtherScript=function(path){path=path.replace(ips.getSetting('baseURL'),'');if(path.startsWith('/')){path=path.substring(1);}
if(path.startsWith('applications/')){path=path.replace(/^applications\//i,'')}
return path;},_getInterfaceScript=function(path){var pieces=_.compact(path.split('/').reverse());var path=[];for(var i=0;i<pieces.length;i++){if(pieces[i]=='interface'){path.push('interface');path.push(pieces[i+1]);break;}
path.push(pieces[i]);}
@@ -175,7 +175,12 @@ if(remoteFiles.length){for(var i=0;i<remoteFiles.length;i++){_insertScript([remo
return deferred.promise();},_insertScript=function(toLoad,cached){for(var i=0;i<toLoad.length;i++){_loadingScripts.push(toLoad[i]);}
Debug.log("Loading: "+toLoad.join(', '));var url='';if(toLoad[0].match(/^(http|\/\/)/i)){url=toLoad[0].match(/^http/)?toLoad[0].replace(/^.+?\/\/(.*)$/,'//$1'):toLoad[0];}else{url=ips.getSetting('jsURL')+'?src='+encodeURIComponent(toLoad.join(','));}
setTimeout(function(){$.ajax({dataType:'script',cache:(_.isUndefined(cached))?true:cached,url:url,data:{antiCache:ips.getSetting('jsAntiCache'),csrfKey:null,}}).fail(function(jqXHR,textStatus,errorThrown){Debug.error("Failed to load: "+toLoad.join(', '));Debug.log(textStatus);}).always(function(){for(var i=0;i<toLoad.length;i++){var index=_.indexOf(_loadingScripts,toLoad[i]);if(index!==-1){_loadingScripts.splice(index,1);}}}).done(function(){for(var i=0;i<toLoad.length;i++){_loadedScripts.push(toLoad[i]);}
$(document).trigger('scriptLoaded',[toLoad]);Debug.log("Loaded: "+toLoad.join(', '));})},500);};return{init:init,get:get}});}(jQuery,_));;
$(document).trigger('scriptLoaded',[toLoad]);Debug.log("Loaded: "+toLoad.join(', '));})},500);};return{init:init,get:get,getStatic(paths){if(!Array.isArray(paths)){paths=[paths];}
const uniquePaths=new Set();for(let path of paths){if(path.startsWith('http://')||path.startsWith("https://")){uniquePaths.add(path);}else{path=window.location.protocol+ips.getSetting('baseURL').replace(/\/+$/,'')+"/"+path.replace(/^\/+/,'');uniquePaths.add(path);}}
return Promise.all([...uniquePaths].map(path=>new Promise((resolve,reject)=>{LOADER_STATES[path]=LOADER_STATES[path]||{state:'unloaded',resolvers:new Set(),rejectors:new Set(),err:undefined,}
const{state,resolvers,rejectors,err}=LOADER_STATES[path];if(state==='loaded'){return resolve();}
if(state==='error'){return reject(err);}
resolvers.add(resolve);rejectors.add(reject);if(state==='unloaded'){LOADER_STATES[path].state='loading';const script=document.createElement('script');const url=new URL(path);url.searchParams.set('antiCache',ips.getSetting('jsAntiCache'));script.src=url;script.addEventListener('load',()=>{Debug.log(`Loaded static script ${path}`);LOADER_STATES[path].state='loaded';resolvers.forEach(resolver=>resolver());resolvers.clear();rejectors.clear();},{once:true});script.addEventListener('error',()=>{LOADER_STATES[path].state='error';LOADER_STATES[path].err=new Error(`Failed to load ${path}`);Debug.error(LOADER_STATES[path].err);rejectors.forEach(rejector=>rejector(LOADER_STATES[path].err));rejectors.clear();resolvers.clear();},{once:true});document.body.appendChild(script);}})));}}});}(jQuery,_));;
;(function($,_,undefined){"use strict";ips.createModule('ips.model',function(){var _models={};var register=function(id,definition){var Base=getBaseModel();$.extend(Base.prototype,definition);var obj=new Base(id);if(_.isFunction(obj.initialize)){obj.initialize.call(obj);}},getBaseModel=function(){var baseModel=function(id){this.modelID=id;};baseModel.method('trigger',function(elem,ev,data){var args=ips.utils.argsToArray(arguments);elem=(!_.isElement(elem))?$(document):$(args.shift());ev=args[0];data=args[1]||{};if(!data.stack){data.stack=[];}
data.stack.push('models.'+this.modelID);elem.trigger(ev,data);});baseModel.method('on',function(elem,ev,delegate,fn){var args=ips.utils.argsToArray(arguments);elem=(!_.isElement(elem)&&elem!=document)?$(document):$(args.shift());ev=args[0];fn=(args.length==3)?args[2]:args[1];delegate=(args.length==3)?args[1]:undefined;if(!_.isFunction(fn)){Debug.warn("Callback function for "+ev+" doesn't exist in "+this.modelID);return;}
fn=_.bind(fn,this);if(delegate){elem.on(ev,delegate,fn);}else{elem.on(ev,fn);}});baseModel.method('getData',function(data,eventData){var self=this;var ajaxObj=ips.getAjax();if(!data.url.startsWith('http')){data.url=ips.getSetting('baseURL')+'index.php?'+data.url;}
@@ -498,18 +503,13 @@ const editorLocation=document.createElement('div')
editorLocation.dataset.role='reactRoot'
textArea.parentElement.insertBefore(editorLocation,textArea)
config.content=textArea.innerHTML
let result=await ips.utils.tiptap.editorInstance(editorLocation,config);textArea.ipsHide()
instance=result[0]
config.onUpdate=(editor)=>{const value=editor.getValue();textArea.innerHTML="";textArea.appendChild(document.createTextNode(value));}
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}}))
const parser=new DOMParser()
instance.on('update',({editor})=>{textArea.innerHTML=""
const doc=parser.parseFromString(editor.getHTML(),'text/html')
let actualCode='';for(let code of doc.querySelectorAll('code')){actualCode+=code.innerText;}
textArea.appendChild(document.createTextNode(actualCode))})
textArea.addEventListener('insertCode',e=>{if(e?.detail?.content){let content=e.detail.content;if(typeof content==='string'){content={type:'text',text:content}}
instance.chain().insertContent(content).focus().run();}})
textArea.addEventListener('insertCode',e=>{if(e?.detail?.content){let content=e.detail.content;if(typeof content==='string'){instance.executeEdits("insertCode",[{text:content,range:instance.getSelection()}]);instance.focus();}else{throw new TypeError(`The content property of the event insertCode is expected to be a string`);}}})
reactRoot=result[1]}
function destruct(){instance.destroy()
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;}
@@ -517,7 +517,7 @@ if(!document?.body){if(attempts++<5){timeout=setTimeout(inject,100);Debug.log(`A
return;}
const script=document.createElement('script')
document.body.appendChild(script)
script.src=ips.getSetting('baseURL').replace(/\/+$/,"")+"/applications/core/interface/codehighlighting/codehighlighting.js"}
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;}
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);}
@@ -589,8 +589,8 @@ if(!Number.isInteger(response.expiresAt)){response.expiresAt=Math.round(response
if(response.expiresAt*1000>Date.now()){CACHED_REMOTE_RESPONSES.set(src,response);}}
return response.html;}catch(e){return ips.templates.render("ips.ui.controls.cannot_load",{message:typeof e.responseJSON?.errorMessage==='string'?e.responseJSON.errorMessage:undefined});}}
ips.ui.registerWidget('controls',ips.ui.controls,['src']);return{respond}});}(jQuery,_));;
;(function($,_,undefined){"use strict";ips.createModule('ips.ui.copy',function(){var respond=function(elem,options,e){ips.loader.get(['core/interface/clipboard/clipboard.min.js']).then(function(){if(ClipboardJS.isSupported()){elem.find('[data-role="copyButton"]').show();if(elem.find('[data-role="copyButton"]').attr('href')){elem.find('[data-role="copyButton"]').on('click',function(e){e.preventDefault();e.stopPropagation();});}
var clipboard=new ClipboardJS(elem.find('[data-role="copyButton"]').get(0));clipboard.on('success',function(e){if(elem.attr('data-ipsCopy-flashmessage')!==undefined){ips.ui.flashMsg.show(ips.getString('copied'))}else{elem.find('[data-role="copyButton"]').text(ips.getString('copied'));}});}});};ips.ui.registerWidget('copy',ips.ui.copy,[]);return{respond:respond,};});}(jQuery,_));;
;(function($,_,undefined){"use strict";ips.createModule('ips.ui.copy',function(){var respond=function(elem,options,e){ips.loader.getStatic("/applications/core/interface/static/clipboard/clipboard.min.js").then(function(){if(ClipboardJS.isSupported()){elem.find('[data-role="copyButton"]').show();if(elem.find('[data-role="copyButton"]').attr('href')){elem.find('[data-role="copyButton"]').on('click',function(e){e.preventDefault();e.stopPropagation();});}
var clipboard=new ClipboardJS(elem.find('[data-role="copyButton"]').get(0));clipboard.on('success',function(e){if(elem.attr('data-ipsCopy-flashmessage')!==undefined){ips.ui.flashMsg.show(ips.getString('copied'))}else{elem.find('[data-role="copyButton"]').text(ips.getString('copied'));}});}});};ips.ui.registerWidget('copy',ips.ui.copy,[]);return{respond};});}(jQuery,_));;
;(function(){"use strict";ips.createModule('ips.ui.details',function(){var respond=function(elem){document.addEventListener('click',toggleDetails);},toggleDetails=function(e){const summary=e.target.closest('[data-ipsdetails] summary');if(!summary)return;const details=summary.closest('details'),content=details.querySelector('i-details-content'),isOpen=details.open;if(!details||!content)return;e.preventDefault();if(!isOpen)details.open=true;content.style.setProperty('--i-animating-height',content.scrollHeight+'px');content.setAttribute('data-ips-animating',(isOpen)?'closing':'opening');Promise.all(content.getAnimations().map((a)=>a.finished)).then(()=>{if(isOpen)details.open=false;content.removeAttribute('data-ips-animating');});};ips.ui.registerWidget('details',ips.ui.details);return{respond:respond}});}());;
;(function($,_,undefined){"use strict";ips.createModule('ips.ui.dialog',function(){var defaults={modal:true,draggable:false,className:'ipsDialog',extraClass:'',close:true,fixed:false,narrow:false,callback:null,forceReload:false,flashMessage:'',flashMessageTimeout:2,flashMessageEscape:true,remoteVerify:true,remoteSubmit:false,destructOnClose:false,ajax:{type:'get',data:{}}};var showStack=[];var respond=function(elem,options,e){e.preventDefault();if(!options.url&&!options.content&&$(elem).attr('href')){options.url=$(elem).attr('href');}
if(!$(elem).data('_dialog')){$(elem).data('_dialog',dialogObj(elem,_.defaults(options,defaults)));}
@@ -659,13 +659,13 @@ const script=document.createElement('script');script.setAttribute("src",pluginUR
document.body.appendChild(script)
script.dataset.ipsEditorPlugins=''
pluginTimeouts.add(setTimeout(()=>document.dispatchEvent(new CustomEvent('ips:editorPluginsError')),5000))}
function loadTiptap(){state="loading";Debug.log("Loading the editor from the interface");const manifestURL=ips.getSetting('baseURL').replace(/\/+$/,'')+'/applications/core/interface/tiptap/manifest.json'
ips.fetch(manifestURL).then(response=>{if(typeof response==='object'){for(const details of Object.values(response)){if(details.isEntry){const src=ips.getSetting('baseURL').replace(/\/+$/,'')+'/applications/core/interface/tiptap/'+details.file
function loadTiptap(){state="loading";Debug.log("Loading the editor from the interface");const manifestURL=ips.getSetting('baseURL').replace(/\/+$/,'')+'/applications/core/interface/static/tiptap/manifest.json?antiCache='+encodeURIComponent(ips.getSetting('jsAntiCache'))
ips.fetch(manifestURL).then(response=>{if(typeof response==='object'){for(const details of Object.values(response)){if(details.isEntry){const src=ips.getSetting('baseURL').replace(/\/+$/,'')+'/applications/core/interface/static/tiptap/'+details.file+`?antiCache=${encodeURIComponent(ips.getSetting('jsAntiCache'))}`
const scriptElem=document.createElement('script')
scriptElem.type='module'
document.head.appendChild(scriptElem)
scriptElem.src=src
if(Array.isArray(details.css)){for(const css of details.css){const src=ips.getSetting('baseURL').replace(/\/+$/,'')+'/applications/core/interface/tiptap/'+css
if(Array.isArray(details.css)){for(const css of details.css){const src=ips.getSetting('baseURL').replace(/\/+$/,'')+'/applications/core/interface/static/tiptap/'+css
const styleElem=document.createElement('link')
styleElem.rel='stylesheet'
styleElem.setAttribute('href',src)
@@ -731,9 +731,10 @@ $(document).on('fileDeleted',_deleteFile);_cleanUpStaleAutoSaves();}
function _cleanUpStaleAutoSaves(){for(let[k,v]of Object.entries(ips.utils.db.getByType('editorSave'))){try{let time=v?.time||v?.[1]
if(!time){continue;}
if(time<Math.round(new Date().getTime()/1000)-(86400*3)){ips.utils.db.remove('editorSave',k);}}catch(err){Debug.error("Trying to remove editorSave keys:");Debug.error(err);}}}
let destroyed=false;function destruct(){if(destroyed){return;}
let destroyed=false;function destruct(clearAutoSave=true){if(destroyed){return;}
destroyed=true;try{_reactRoot?.unmount()}catch(e){const r=_reactRoot;setTimeout(()=>r.unmount(),100);}
instance?.commands?.clearAutosave?.();instance?.destroy()
if(clearAutoSave){instance?.commands?.clearAutosave?.();}
instance?.destroy()
clearTextarea()
_reactRoot=undefined;_offEvents();instance=undefined;editorLocation?.remove();editorLocation=null;}
function getInstance(){if(instance){return instance;}
@@ -795,7 +796,7 @@ if(update&&_isShowing){_content.html(message);ips.utils.anim.go('pulseOnce',_box
return;}
_currentDismissHandler=null;_isShowing=true;_content.html(message);_box.attr('class','').addClass(options.extraClasses).addClass(options.dismissable?'ipsFlashMsg_dismissable':'').addClass(options.position=='bottom'?'ipsFlashMsg--bottom':'ipsFlashMsg--top').on('click','a:not( [data-action="dismissFlashMessage"] )',function(){hide();}).animationComplete(function(){if(!options.sticky){setTimeout(hide,options.timeout*1000);}});if(_.isFunction(options.dismissable)){_currentDismissHandler=options.dismissable;}
ips.utils.anim.go('fadeInDown',_box);},hide=function(){if(_queue.length){var next=_queue.shift();show(next[0],next[1],true);}else{_box.animationComplete(function(){_isShowing=false;_box.hide();if(_queue.length){var next=_queue.shift();show(next[0],next[1]);}});ips.utils.anim.go('fadeOutDown',_box);}},dismiss=function(e){e.preventDefault();hide();if(_.isFunction(_currentDismissHandler)){_currentDismissHandler();_currentDismissHandler=null;}},_initElement=function(){$('body').append(ips.templates.render("core.general.flashMsg"));_box=$('#elFlashMessage').hide();_content=(_box.is('[data-role="flashMessage"]'))?_box:_box.find('[data-role="flashMessage"]');_box.on('click','a[data-action="dismissFlashMessage"]',dismiss);_doneInit=true;};ips.ui.registerWidget('flashMsg',ips.ui.flashMsg,['text','extraClasses','timeout','position','sticky','dismissable']);init();return{respond,show};});}(jQuery,_));;
;(function($,_){"use strict";ips.createModule('ips.ui.form',function(){const _cmInstances={};const _support={};const formTypes={'unlimited':'[data-control~="unlimited"]','date':'input[type="date"], [data-control~="date"]','range':'input[type="range"], [data-control~="range"]','color':'input[type="color"], [data-control~="color"]','dimensions':'[data-control~="dimensions"]','dimensionsUnlimited':'[data-control~="dimensionsUnlimited"]','jsDisable':'input[data-control~="jsdisable"]','codemirror':'[data-control~="codemirror"]','granularCheckboxset':'[data-control~="granularCheckboxset"]',};const _controlMethods={codemirror(elem){ips.loader.get(['core/interface/codemirror/diff_match_patch.js','core/interface/codemirror/codemirror.js']).then(function(){const elemId=$(elem).attr('id');if(!_.isUndefined(_cmInstances[elemId])){_cmInstances[elemId].save();$(_cmInstances[elemId].getWrapperElement()).remove();delete _cmInstances[elemId];}
;(function($,_){"use strict";ips.createModule('ips.ui.form',function(){const _cmInstances={};const _support={};const formTypes={'unlimited':'[data-control~="unlimited"]','date':'input[type="date"], [data-control~="date"]','range':'input[type="range"], [data-control~="range"]','color':'input[type="color"], [data-control~="color"]','dimensions':'[data-control~="dimensions"]','dimensionsUnlimited':'[data-control~="dimensionsUnlimited"]','jsDisable':'input[data-control~="jsdisable"]','codemirror':'[data-control~="codemirror"]','granularCheckboxset':'[data-control~="granularCheckboxset"]',};const _controlMethods={codemirror(elem){ips.loader.getStatic(['applications/core/interface/static/codemirror/diff_match_patch.js','applications/core/interface/static/codemirror/codemirror.js']).then(function(){const elemId=$(elem).attr('id');if(!_.isUndefined(_cmInstances[elemId])){_cmInstances[elemId].save();$(_cmInstances[elemId].getWrapperElement()).remove();delete _cmInstances[elemId];}
_cmInstances[elemId]=CodeMirror.fromTextArea(document.getElementById(elemId),{mode:$(elem).attr('data-mode'),lineWrapping:true,lineNumbers:false,leaveSubmitMethodAlone:true});if($(elem).attr('data-height')){_cmInstances[elemId].setSize(null,$(elem).attr('data-height'));$('div[data-codemirrorid='+elemId+'] ul[data-role=tagsList]').css('max-height',$(elem).attr('data-height'));}
$('#'+elemId).data('CodeMirrorInstance',_cmInstances[elemId]);$('[data-codemirrorcustomtag]').on('click',function(e){_cmInstances[elemId].replaceRange($(e.currentTarget).attr('data-codemirrorcustomtag'),_cmInstances[elemId].getCursor("end"));});});},range(elem){if(_.isUndefined(_support['range'])){const i=document.createElement("input");i.setAttribute("type","range");_support['range']=!(i.type==='text');}
if(!_support['range']){elem.siblings('[data-role="rangeBoundary"]').hide();}else{const valueElem=$('#'+elem.attr('name')+'_rangeValue');valueElem.text(elem.val());elem.on('change',function(){valueElem.text(elem.val());});}},unlimited(elem){elem=$(elem).get(0);elem.addEventListener('change',()=>_unlimitedCheck());if(!elem.dataset.initialized){elem.dataset.initializd='1';_unlimitedCheck();}
@@ -1212,19 +1213,20 @@ siblings=siblings.reverse();element=this.elem.nextElementSibling
while(element?.dataset?.ipsaccordion!==undefined){if(ips.ui.accordion.getInstance(element)){siblings.push(ips.ui.accordion.getInstance(element))}
element=element.nextElementSibling}
return siblings}}})(jQuery,_));;
;(function($,_,undefined){"use strict";const endCachingDebounced=_.throttle((elem)=>{ips.utils.position.endCaching(elem);},100,{leading:false});ips.createModule('ips.ui.tooltip',function(){let _tooltip=null,_timer=[],_currentElem=null,_showTimeout;function respond(elem,options,e){clearTimeout(_showTimeout);if(ips.utils.events.isTouchDevice()){return;}
;(function($,_,undefined){"use strict";const endCachingDebounced=_.throttle((elem)=>{ips.utils.position.endCaching(elem);},100,{leading:false});ips.createModule('ips.ui.tooltip',function(){let _tooltip=null,_timer=[],_currentElem=null,_showTimeout,_visible=false,_lastOptions={},_mo=new MutationObserver(_.throttle(()=>{if(_currentElem&&_tooltip&&_visible&&!_lastOptions.ajax){if(_currentElem.attr('title')){_currentElem.attr("_title",null)}
const content=_getContent(_currentElem,_lastOptions);if(_lastOptions.safe){_tooltip.html(content)}else{_tooltip.text(content)}}},30));function respond(elem,options,e){clearTimeout(_showTimeout);if(ips.utils.events.isTouchDevice()){return;}
if(!_tooltip){_createTooltipElement();}
if(e.type==='mouseleave'||e.type==='blur'||e.type==='focusout'){_hide();}else{const content=_getContent(elem,options);if(content){ips.utils.position.startCaching();_showTimeout=setTimeout(()=>{_show(elem,options,content);endCachingDebounced();});}}}
function _calculatePosition(elem,_tooltip){const positionInfo={trigger:elem,target:_tooltip,center:true,above:true,stemOffset:{left:10,top:0}};const tooltipEl=$(_tooltip).get(0);const tooltipPosition=ips.utils.position.positionElem(positionInfo);Object.assign(tooltipEl.style,{left:((tooltipPosition.left>0)?tooltipPosition.left:20)+'px',top:tooltipPosition.top+'px',position:(tooltipPosition.fixed)?'fixed':'absolute',zIndex:ips.ui.zIndex()});if(tooltipPosition.location.vertical==='top'){tooltipEl.classList.add('ipsTooltip_top')
tooltipEl.classList.remove('ipsTooltip_bottom');}else{tooltipEl.classList.add('ipsTooltip_bottom')
tooltipEl.classList.remove('ipsTooltip_top');}
tooltipEl.classList.remove('ipsTooltip_left','ipsTooltip_right');if(tooltipPosition.left>0){if(tooltipPosition.location.horizontal==='left'){tooltipEl.classList.add('ipsTooltip_left');}else if(tooltipPosition.location.horizontal==='right'){tooltipEl.classList.add('ipsTooltip_right');}}}
function _show(elem,options,content){elem=$(elem);ips.utils.anim.cancel(_tooltip);if(options.safe){_tooltip.hide().html(content);}else{_tooltip.hide().text(content);}
function _show(elem,options,content){elem=$(elem);_lastOptions=options;ips.utils.anim.cancel(_tooltip);if(options.safe){_tooltip.hide().html(content);}else{_tooltip.hide().text(content);}
if(options.ajax&&!elem.data('_tooltip')){ips.getAjax()(options.ajax).done(response=>{$(elem).data('_tooltip',response);if(options.safe){_tooltip.html(response);}else{_tooltip.text(response);}
_calculatePosition(elem,_tooltip);});}
_calculatePosition(elem,_tooltip);});}else{_mo.observe(elem.get(0),{attributes:true,subtree:true,characterData:true});}
const element=$(elem).get(0);if(element.hasAttribute('title')){element.setAttribute('_title',element.getAttribute('title'));element.removeAttribute('title');}
_tooltip.show();_calculatePosition(elem,_tooltip);_currentElem=elem;_timer.push(setInterval(_checkForElemPresence,100));setTimeout(()=>$(elem).trigger('tooltipShown'),1);}
function _hide(){ips.utils.anim.go('fadeOut',_tooltip);_currentElem=null;if(_timer.length){for(var i=0;i<_timer.length;i++){clearInterval(_timer[i]);}
_tooltip.show();_visible=true;_calculatePosition(elem,_tooltip);_currentElem=elem;_timer.push(setInterval(_checkForElemPresence,100));setTimeout(()=>$(elem).trigger('tooltipShown'),1);}
function _hide(){_mo.disconnect();ips.utils.anim.go('fadeOut',_tooltip);_visible=false;_currentElem=null;if(_timer.length){for(var i=0;i<_timer.length;i++){clearInterval(_timer[i]);}
_timer=[];}}
function _checkForElemPresence(element){if(!_currentElem||!_currentElem.length||!_currentElem.is(':visible')){_hide();}}
function _getContent(elem,options){elem=$(elem);if(elem.data('_tooltip')){return elem.data('_tooltip');}
@@ -1580,8 +1582,8 @@ return[hexToRGB(hex.slice(0,2))/255,hexToRGB(hex.slice(2,4))/255,hexToRGB(hex.sl
iroCallbacks.add([resolve,reject]);if(iroState==='loading'){return;}
iroState='loading';function failed(e){if(iroState==='loading'){iroState='error';}
iroCallbacks.forEach(cb=>cb[1](e||new Error('Could not load iro js dependency after 10s')));iroCallbacks.clear();}
window.addEventListener('ips:iroLoaded',()=>{iroState='loaded';iroCallbacks.forEach(cb=>cb[0]());iroCallbacks.clear();},{once:true});if(document.querySelector('script[data-iro-loader]')){iroState='loading';}else{const manifestURL=ips.getSetting('baseURL').replace(/\/+$/,'')+'/applications/core/interface/iro/manifest.json';ips.fetch(manifestURL).then(response=>{for(const detail of Object.values(response)){if(detail.isEntry){const script=document.createElement('script');script.setAttribute('data-iro-loader','');script.setAttribute('type','module')
document.body.appendChild(script);script.src=ips.getSetting('baseURL').replace(/\/+$/,'')+'/applications/core/interface/iro/'+detail.file;}}}).catch(failed);}
window.addEventListener('ips:iroLoaded',()=>{iroState='loaded';Debug.log("Loaded color picker");iroCallbacks.forEach(cb=>cb[0]());iroCallbacks.clear();},{once:true});if(document.querySelector('script[data-iro-loader]')){iroState='loading';}else{const manifestURL=ips.getSetting('baseURL').replace(/\/+$/,'')+`/applications/core/interface/static/iro/manifest.json?antiCache=${encodeURIComponent(ips.getSetting('jsAntiCache'))}`;ips.fetch(manifestURL).then(response=>{for(const detail of Object.values(response)){if(detail.isEntry){const script=document.createElement('script');script.setAttribute('data-iro-loader','');script.setAttribute('type','module')
document.body.appendChild(script);script.src=ips.getSetting('baseURL').replace(/\/+$/,'')+'/applications/core/interface/static/iro/'+detail.file+"?antiCache="+encodeURIComponent(ips.getSetting('jsAntiCache'));}}}).catch(failed);}
setTimeout(()=>failed(),10000);});}};});}(jQuery,_));;
(function($,_,undefined){"use strict";ips.createModule("ips.utils.contentViews",()=>({_viewsCache:{},_onRemoveCache:{},init(){},enabled(){let res=!!(ips.getSetting('memberID')&&ips.getSetting('socketEnabled')&&ips.getSetting('page_token'));return res;},registerEntity(key,isViewed=false,otherData={},force=false,onRemove=null){if(key in this._viewsCache){if(!force){throw new RangeError(`The key, '${key}' is already registered!`);}
if(this._onRemoveCache[key]){this._onRemoveCache[key]();delete this._onRemoveCache[key];}}
@@ -1697,9 +1699,10 @@ window.history.replaceState({..._state},'',url)
ipsHistoryChange(e,'replace')}};});}(jQuery,_));;
;(function($,_){"use strict";let backdrop;ips.createModule("ips.utils.iconpicker",function(){function setupBackdrop(){if(!backdrop){backdrop=document.createElement('div');backdrop.setAttribute('id','ipsIconPicker__backdrop');backdrop.ipsHide();}
if(!document.body){document.addEventListener('load',setupBackdrop,{once:true});}else if(backdrop.documentElement!==document.documentElement){document.body.appendChild(backdrop);}}
const fileToLoad='core/interface/fontawesome/js/fontawesome.js';let faLoaded=false;let faAvailable=false;let faLoadAttempts=0;function resolveWhenLoaded(){return new Promise(resolve=>{if(ips.utils.fontawesome?.searchIcons instanceof Function){resolve(true);}
const fileToLoad='/applications/core/interface/static/fontawesome/js/fontawesome.js';let faLoaded='unloaded';let faAvailable=false;let faLoadAttempts=0;function resolveWhenLoaded(){return new Promise(resolve=>{if(ips.utils.fontawesome?.searchIcons instanceof Function){resolve(true);}
else if(++faLoadAttempts>200){resolve(false)}else{setTimeout(()=>{resolveWhenLoaded().then(resolve);},100)}})}
function loadFa6(){return new Promise(resolve=>{if(faLoaded||ips.utils.fontawesome?.searchIcons instanceof Function){faLoaded=true;resolve(true)}else{ips.loader.get([fileToLoad])?.then(()=>{faLoaded=true;resolveWhenLoaded().then(_loaded=>{if(_loaded){faLoaded=true;faAvailable=true;resolve(true)}else{faLoaded=true;faAvailable=false;resolve(true)}})})}})}
function loadFa6(){return new Promise(resolve=>{if(faLoaded==='loaded'||ips.utils.fontawesome?.searchIcons instanceof Function){faLoaded='loaded';resolve(true)}else{if(faLoaded!=='loading'){faLoaded='loading';const script=document.createElement('script');script.type="module";script.src=ips.getSetting('baseURL').replace(/\/+$/,'')+fileToLoad;document.body.appendChild(script);}
resolveWhenLoaded().then(_loaded=>{if(_loaded){faLoaded=true;faAvailable=true;resolve(true)}else{faLoaded=true;faAvailable=false;resolve(true)}})}})}
async function faIconsEnabled(){return!!((await loadFa6())||faAvailable)}
function getValuesFromOptions(options){const{defaultValue=null,defaultTab='fa',anchor,allowedTypes=['emoji','fa'],maxIcons=null,rootElement=null,svgIcons=false,panelMode,submitOnClick=false,afterOpen,afterHide,shortCodeFixer,container,}=options
return{defaultValue,defaultTab,allowedTypes,maxIcons,rootElement,svgIcons,anchor,panelMode,submitOnClick,afterOpen,afterHide,shortCodeFixer,container};}
@@ -1881,11 +1884,11 @@ return this[key];}
static async search(key,custom=false){const instance=await this.instance(custom);const results=instance._search(key);const ret={"Search Results":{name:'Search Results',emojis:{}}}
for(const result of results){ret['Search Results'].emojis[result]=this.emojiCodepointMap[result]||this.customEmojiCodepointMap[result];}
return ret;}
static emojiStore=undefined;static customEmojiStore=undefined;static customEmojiStoreMerged=undefined;static emojiCodepointMap={};static customEmojiCodepointMap={};static hairStyles={};static skinTones={};static async loadEmojiStore(loadCustom=false){if(this.emojiStore===undefined){try{this.emojiStore=await ips.fetch(ips.getSetting('baseURL')+'/applications/core/interface/emoji/emojiIndex.json');for(const[key,{emojis}]of Object.entries(this.emojiStore)){for(const unicode in emojis){const codebase=Number('0x'+unicode.split(/\s+/)[0])
static emojiStore=undefined;static customEmojiStore=undefined;static customEmojiStoreMerged=undefined;static emojiCodepointMap={};static customEmojiCodepointMap={};static hairStyles={};static skinTones={};static async loadEmojiStore(loadCustom=false){if(this.emojiStore===undefined){try{this.emojiStore=await ips.fetch(ips.getSetting('baseURL')+'/applications/core/interface/static/emoji/emojiIndex.json');for(const[key,{emojis}]of Object.entries(this.emojiStore)){for(const unicode in emojis){const codebase=Number('0x'+unicode.split(/\s+/)[0])
if(0x1f46b<=codebase&&0x1f46d>=codebase){delete this.emojiStore[key].emojis[unicode];continue;}
this.emojiCodepointMap[unicode]=emojis[unicode];}}}catch(e){Debug.error(e)}
try{const skinTones=await ips.fetch(ips.getSetting('baseURL')+'/applications/core/interface/emoji/skinTones.json');for(let code in skinTones){const numeric=this.hex2dec(code);this.skinTones[numeric]=skinTones[code];}}catch(e){Debug.error(e)}
try{const hairStyles=await ips.fetch(ips.getSetting('baseURL')+'/applications/core/interface/emoji/hairStyles.json')
try{const skinTones=await ips.fetch(ips.getSetting('baseURL')+'/applications/core/interface/static/emoji/skinTones.json');for(let code in skinTones){const numeric=this.hex2dec(code);this.skinTones[numeric]=skinTones[code];}}catch(e){Debug.error(e)}
try{const hairStyles=await ips.fetch(ips.getSetting('baseURL')+'/applications/core/interface/static/emoji/hairStyles.json')
for(let code in hairStyles){const numeric=this.hex2dec(code);this.hairStyles[numeric]=hairStyles[code];}}catch(e){Debug.error(e)}}
if(loadCustom){await this.loadCustomEmojiStore()
if(this.customEmojiStoreMerged===undefined){this.customEmojiStoreMerged={...this.emojiStore}
@@ -1944,14 +1947,12 @@ this._options.body=_.unescape(this._options.body.replace(/&#039;/g,"'").replace(
show(){this._notification=new Notification(this._options.title,this._options);this._notification.addEventListener('show',this._options.onShow,false);this._notification.addEventListener('hide',this._options.onHide,false);this._notification.addEventListener('click',this._options.onClick,false);this._notification.addEventListener('error',this._options.onError,false);if(!Number.isNaN(this._options.timeout)){setTimeout(()=>this.hide(),Number(this._options.timeout)*1000);}}
hide(){if(this._notification){this._notification.close();this._notification.removeEventListener('show',this._options.onShow,false);this._notification.removeEventListener('hide',this._options.onHide,false);this._notification.removeEventListener('click',this._options.onClick,false);this._notification.removeEventListener('error',this._options.onError,false);}}}
$(document).on('requestPermission.notifications',requestPermission);$(document).on('permissionGranted.notifications',subscribeToPush);return{supported,subscribeToPush,hasPermission,getSubscription,needsPermission,permissionLevel,requestPermission,create};});}(jQuery,_));;
;((($,_)=>{"use strict";ips.createModule('ips.utils.pagebuildericons',function(){const loadPagebuilder=async()=>{if(!ips.utils.pagebuilder){const url=ips.getSetting('baseURL')+`/applications/core/interface/pagebuilder/manifest.json?v=${ips.getSetting('pagebuilderKey')}`
const data=await ips.fetch(url)
const toLoad=[];for(const key in data){if(data[key].file?.match(/\.css$/i)){const href=ips.getSetting('baseURL')+'/applications/core/interface/pagebuilder/'+data[key].file
if(!document.querySelector(`[href="${encodeURI(href)}"]`)){const style=document.createElement('link')
;((($,_)=>{"use strict";ips.createModule('ips.utils.pagebuildericons',function(){const loadPagebuilder=async()=>{if(!ips.utils.pagebuilder){const url=ips.getSetting('baseURL')+`/applications/core/interface/static/pagebuilder/manifest.json?v=${ips.getSetting('pagebuilderKey')}&antiCache=${encodeURIComponent(ips.getSetting('jsAntiCache'))}`;const data=await ips.fetch(url)
const toLoad=[];for(const key in data){if(data[key].file?.match(/\.css$/i)){const href=ips.getSetting('baseURL')+'/applications/core/interface/static/pagebuilder/'+data[key].file+`?antiCache=${encodeURIComponent(ips.getSetting('jsAntiCache'))}`;if(!document.querySelector(`[href="${encodeURI(href)}"]`)){const style=document.createElement('link')
style.rel='stylesheet'
style.href=href
document.head.appendChild(style)}}else if(data[key].isEntry){toLoad.push(ips.getSetting('baseURL')+'/applications/core/interface/pagebuilder/'+data[key].file)}}
if(toLoad.length){await ips.loader.get(toLoad)}}}
document.head.appendChild(style)}}else if(data[key].isEntry){toLoad.push(ips.getSetting('baseURL')+'/applications/core/interface/static/pagebuilder/'+data[key].file)}}
if(toLoad.length){await ips.loader.getStatic(toLoad)}}}
const fillIcons=()=>{document.querySelectorAll('[for*="elCheckbox_dev_widget_layouts_"]').forEach(async label=>{if(!label.querySelector('svg.pagebuildericon')){await loadPagebuilder()
const icon=label.getAttribute('for').match(/^elCheckbox_dev_widget_layouts_([a-z\-_]+)$/i)[1]
ips.utils.pagebuilder.fillSemanticIcon(label,icon).then(()=>{label.querySelector('svg.pagebuildericon').dataset.ipstooltip=''
+1 -1
View File
@@ -176,7 +176,7 @@ this._clearNotifications();}catch(e){Debug.warn(`Could not import new replies fo
if($('#elFlashMessage').find('[data-role="newPostNotification"]').length){$('#elFlashMessage').find('[data-role="newPostNotification"]').trigger('closeFlashMsg.flashMsg');}},quickReply:function(e){const form=this.scope.find('[data-role="replyArea"] form');if(form.attr('data-noAjax')){return;}
e.preventDefault();e.stopPropagation();const self=this;const replyArea=this.scope.find('[data-role="replyArea"]');const submit=form.find('[type="submit"]');const autoFollow=this.scope.find('input[name$="auto_follow_checkbox"]');const commentsOnThisPage=this.scope.find('[data-commentid]');const _lastSeenID=this._getLastSeenID(commentsOnThisPage);const submitButtons=[...submit];const submitRestorations=[];submitButtons.forEach(button=>{if(button.closest('.ipsIconPicker')){return;}
const initialText=button.innerText;button.setAttribute('disabled','');button.innerText=ips.getString('saving');submitRestorations.push(()=>{button.removeAttribute('disabled');button.innerText=initialText;});});let page=ips.utils.url.getPageNumber(this._pageParam);if(!page){page=1;}
this._clearNotifications();ips.getAjax()(form.attr('action'),{data:form.serialize()+'&currentPage='+page+'&_lastSeenID='+_lastSeenID,type:'post'}).done(function(response){if(response.type=='error'){if(response.form){if(replyArea.find('[data-ipseditorv5]')){ips.ui.editorv5.getObj(replyArea.find('[data-ipseditorv5]')).destruct();}
this._clearNotifications();ips.getAjax()(form.attr('action'),{data:form.serialize()+'&currentPage='+page+'&_lastSeenID='+_lastSeenID,type:'post'}).done(function(response){if(response.type=='error'){Debug.error(response);Debug.error('Failed to submit content via quick reply');if(response.form){if(replyArea.find('[data-ipseditorv5]')){ips.ui.editorv5.getObj(replyArea.find('[data-ipseditorv5]')).destruct(false);}
form.replaceWith($(response.form));$(document).trigger('contentChange',[self.scope]);}else{ips.ui.alert.show({type:'alert',icon:'warn',message:response.message,callbacks:{}});}}
else if(response.type=='redirect'){self.paginationClick(e,{href:response.url,originalEvent:e});}else if(response.type=='merge'){var comment=$(self.findCommentInFeed(response.id));comment.find('[data-role="commentContent"]').html(response.content);if(comment.find('pre.prettyprint').length){comment.find('pre.prettyprint').each(function(){$(this).html(window.PR.prettyPrintOne(_.escape($(this).text())));});}
self.scope.find('[data-role="replyArea"] [data-ipsEditorv5]').data('_editor').reset();if(self.scope.find('[data-role="replyArea"] input[name="guest_name"]').length){self.scope.find('[data-role="replyArea"] input[name="guest_name"]').val('');}
+64 -92
View File
@@ -6,10 +6,9 @@ class class_calendar_front_browse extends \IPS\Theme\Template
$return .= <<<IPSCONTENT
<div class=''>
<div class='ipsPager cCalendarNav i-padding-block_2 i-padding-inline_3 i-background_2 i-border-start-start-radius_box i-border-start-end-radius_box'>
<div class='ipsPager_prev'>
<a href="
<div class='ipsPager cCalendarNav i-padding-block_2 i-padding-inline_3 i-background_2 i-border-start-start-radius_box i-border-start-end-radius_box'>
<div class='ipsPager_prev'>
<a href="
IPSCONTENT;
if ( $thisCalendar ):
@@ -40,29 +39,29 @@ IPSCONTENT;
$sprintf = array($yesterday->monthName, $yesterday->mday, $yesterday->year); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'cal_month_day', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
$return .= <<<IPSCONTENT
' rel='prev nofollow' data-action='changeView'>
<span class='ipsPager_type'>
<span class='ipsPager_type'>
IPSCONTENT;
$sprintf = array($yesterday->monthName, $yesterday->mday); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'cal_month_day_noyear', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
$return .= <<<IPSCONTENT
</span>
<span class='ipsPager_title'>
<span class='ipsPager_title'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $yesterday->year, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span>
</a>
</div>
<div class='ipsPager_center cCalendarNav' data-role='calendarNav'>
<h1 class='ipsTitle ipsTitle--h3'>
</a>
</div>
<div class='ipsPager_center cCalendarNav' data-role='calendarNav'>
<h1 class='ipsTitle ipsTitle--h3'>
IPSCONTENT;
$sprintf = array($date->monthName, $date->mday, $date->year); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'cal_month_day', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
$return .= <<<IPSCONTENT
</h1>
</div>
<div class='ipsPager_next'>
<a href="
</div>
<div class='ipsPager_next'>
<a href="
IPSCONTENT;
if ( $thisCalendar ):
@@ -93,106 +92,87 @@ IPSCONTENT;
$sprintf = array($tomorrow->monthName, $tomorrow->mday, $tomorrow->year); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'cal_month_day', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
$return .= <<<IPSCONTENT
' rel='next nofollow' data-action='changeView'>
<span class='ipsPager_type'>
<span class='ipsPager_type'>
IPSCONTENT;
$sprintf = array($tomorrow->monthName, $tomorrow->mday); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'cal_month_day_noyear', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
$return .= <<<IPSCONTENT
</span>
<span class='ipsPager_title'>
<span class='ipsPager_title'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $tomorrow->year, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span>
</a>
</div>
</a>
</div>
</div>
<div class=''>
<div class=''>
<h2 class='ipsTitle ipsTitle--h4 ipsTitle--padding'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'events_happening_today', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h2>
IPSCONTENT;
if ( $events['count'] > 0 ):
$return .= <<<IPSCONTENT
<ol class='cCalendarDay ipsData'>
IPSCONTENT;
if ( isset( $events['allDay'] ) && \count( $events['allDay'] ) ):
$return .= <<<IPSCONTENT
<li class='ipsData__item cCalendarDay_allDay'>
<div class='i-basis_140 cCalendarDay_hour'>
<h2 class='i-font-weight_600 i-color_hard i-font-size_4'>
<h2 class='ipsTitle ipsTitle--h4 ipsTitle--padding i-background_2'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'day_view_all_day', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h2>
</div>
<div class='ipsData__main'>
<ul class='ipsGrid ipsGrid--event-daily i-basis_300'>
<i-data>
<ol class='ipsData ipsData--featured ipsData--calendarAllDay'>
IPSCONTENT;
foreach ( $events['allDay'] as $event ):
$return .= <<<IPSCONTENT
<li>
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "view", "calendar" )->eventBlock( $event, $date, true );
$return .= <<<IPSCONTENT
</li>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</ul>
</div>
</li>
</ol>
</i-data>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
foreach ( $events as $hour => $hourEvents ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( !empty( $hourEvents ) && $hour !== 'allDay' && $hour !== 'count' ):
$return .= <<<IPSCONTENT
<li class='ipsData__item'>
<div class='i-basis_140 cCalendarDay_hour'>
<h2 class='i-font-weight_600 i-color_hard i-font-size_4'>
<h2 class='ipsTitle ipsTitle--h4 ipsTitle--padding i-background_2'>
IPSCONTENT;
if ( \IPS\calendar\Date::usesAmPm() ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( \IPS\calendar\Date::getTwelveHour( $hour ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
@@ -203,54 +183,36 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( \IPS\calendar\Date::getAmPm( $hour ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span>
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $hour, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
<span>:00</span>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</h2>
</div>
<div class='ipsData__main'>
<ul class='ipsGrid ipsGrid--event-daily i-basis_300'>
</h2>
<i-data>
<ol class='ipsData ipsData--featured ipsData--calendarHourly'>
IPSCONTENT;
foreach ( $hourEvents as $idx => $event ):
$return .= <<<IPSCONTENT
<li>
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "view", "calendar" )->eventBlock( $event, $date, true );
$return .= <<<IPSCONTENT
</li>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</ul>
</div>
</li>
IPSCONTENT;
endif;
$return .= \IPS\Theme::i()->getTemplate( "view", "calendar" )->eventBlock( $event, $date, true );
$return .= <<<IPSCONTENT
@@ -260,27 +222,37 @@ endforeach;
$return .= <<<IPSCONTENT
</ol>
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<div class='ipsEmptyMessage'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'no_events_today', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</div>
</i-data>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</div>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<div class='ipsEmptyMessage'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'no_events_today', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
return $return;
+26 -43
View File
@@ -1271,62 +1271,28 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
if ( $row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
<div class='cFollowedContent_anon'>
<span class='ipsBadge ipsBadge--icon' data-role='followAnonymous' data-ipsTooltip title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'><i class='fa-solid fa-eye-slash'></i></span>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<ul class='ipsData__followedInfo'>
<li class='i-color_hard i-font-weight_500' title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_when', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
' data-role='followDate'><i class='fa-regular fa-clock'></i>
IPSCONTENT;
$val = ( $row->_followData['follow_added'] instanceof \IPS\DateTime ) ? $row->_followData['follow_added'] : \IPS\DateTime::ts( $row->_followData['follow_added'] );$return .= $val->html();
$return .= <<<IPSCONTENT
</li>
<li class='i-color_soft' title='
<ul class="ipsList ipsList--inline i-row-gap_0 i-margin-top_1 i-font-weight_500">
<li title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_how', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
' data-role='followFrequency'>
IPSCONTENT;
if ( $row->_followData['follow_notify_freq'] == 'none' ):
$return .= <<<IPSCONTENT
<i class='fa-regular fa-bell-slash'></i>
<i class='fa-regular fa-bell-slash'></i>
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<i class='fa-solid fa-bell'></i>
<i class='fa-regular fa-bell'></i>
IPSCONTENT;
endif;
@@ -1337,8 +1303,25 @@ IPSCONTENT;
$val = "follow_freq_{$row->_followData['follow_notify_freq']}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</ul>
</li>
<li data-role='followAnonymous'
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
hidden
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
><i class="fa-regular fa-eye-slash"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</ul>
</div>
<div class='cFollowedContent_manage'>
IPSCONTENT;
+180 -163
View File
@@ -790,16 +790,34 @@ IPSCONTENT;
$coverPhoto = $event->coverPhoto();
$return .= <<<IPSCONTENT
<div class='cCalendarBlock i-background_1 ipsInnerBox
<li class="ipsData__item
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->ui( 'css' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= \IPS\Theme\Template::htmlspecialchars( $event->ui('css'), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" data-eventID='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->ui( 'dataAttributes' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
>
<div class='ipsCoverPhoto' data-controller='core.global.core.coverPhoto' data-coverOffset='
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->url( 'getPrefComment' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" class="ipsLinkPanel" aria-hidden="true" tabindex="-1"><span>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span></a>
<div class="ipsData__image">
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->url( 'getPrefComment' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" class='ipsCoverPhoto' data-controller='core.global.core.coverPhoto' data-coverOffset='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $coverPhoto->offset, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -807,15 +825,15 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $coverPhoto->offset, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'>
' aria-hidden="true" tabindex="-1">
IPSCONTENT;
if ( $coverPhoto->file ):
$return .= <<<IPSCONTENT
<div class='ipsCoverPhoto__container'>
<img src='
<div class='ipsCoverPhoto__container'>
<img src='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $coverPhoto->file->url, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -824,15 +842,18 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' loading='lazy'>
</div>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<div class='ipsColumns'>
<div class='ipsColumns__secondary i-basis_50'>
</a>
</div>
<div class="ipsData__content">
<div class="ipsData__main">
<div class="ipsPhotoPanel i-margin-bottom_2">
<div class='ipsUserPhoto ipsUserPhoto--mini'>
<img src='
IPSCONTENT;
@@ -840,86 +861,51 @@ $return .= \IPS\Theme\Template::htmlspecialchars( $event->author()->photo, ENT_Q
$return .= <<<IPSCONTENT
' alt='' loading='lazy'>
</div>
</div>
<div class='ipsColumns__primary'>
<h2 class='ipsTitle ipsTitle--h3 ipsPageHead_barText ipsPageHead_barText_small'><a href='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->url( "getPrefComment" ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' title='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'>
IPSCONTENT;
$return .= htmlspecialchars( mb_substr( html_entity_decode( $event->title ), '0', "18" ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ) . ( ( mb_strlen( html_entity_decode( $event->title ) ) > "18" ) ? '&hellip;' : '' );
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $event->hidden() === 1 ):
$return .= <<<IPSCONTENT
<span class="ipsBadge ipsBadge--icon ipsBadge--warning" data-ipsTooltip title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'pending_approval', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'><i class='fa-solid fa-triangle-exclamation'></i></span>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</a></h2>
</div>
</div>
</div>
<br>
<div class='i-padding_3'>
<h3>
<div class="ipsPhotoPanel__text">
<p class="i-color_primary i-font-weight_500 i-font-size_-2 i-text-transform_uppercase i-margin-bottom_1">
IPSCONTENT;
$startDate = $event->nextOccurrence( $date, 'startDate' );
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $revertToFirst AND $startDate AND $startDate->mon > $date->mon ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$startDate = $event->nextOccurrence( \IPS\calendar\Date::getDate( $date->year, $date->mon, 1 ), 'startDate' );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $startDate ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$nextEndDate = $event->nextOccurrence( $startDate ?: $date, 'endDate' );
$return .= <<<IPSCONTENT
IPSCONTENT;
$sameDay = ( $nextEndDate AND $startDate->calendarDate() == $nextEndDate->calendarDate() );
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $startDate->calendarDate(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -938,37 +924,37 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $event->_end_date AND $event->nextOccurrence( $startDate ?: $date, 'endDate' ) ):
$return .= <<<IPSCONTENT
&nbsp;&nbsp;<i class='fa-solid fa-circle-arrow-right i-font-size_2 i-color_soft'></i>&nbsp;&nbsp;
<span class="i-opacity_4"><i class="fa-solid fa-arrow-right-long" style="margin-inline:.5em;"></i></span>
IPSCONTENT;
if ( !$sameDay ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->nextOccurrence( $startDate ?: $date, 'endDate' )->calendarDate(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( !$event->all_day ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( !$sameDay ):
@@ -979,30 +965,30 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->nextOccurrence( $startDate ?: $date, 'endDate' )->localeTime( FALSE ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->lastOccurrence( 'startDate' )->calendarDate(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -1021,13 +1007,13 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $event->_end_date AND $event->lastOccurrence( 'endDate' ) ):
$return .= <<<IPSCONTENT
&nbsp;&nbsp;<i class='fa-solid fa-circle-arrow-right i-font-size_2 i-color_soft'></i>&nbsp;&nbsp;
<span class="i-opacity_4"><i class="fa-solid fa-arrow-right-long" style="margin-inline:.5em;"></i></span>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->lastOccurrence( 'endDate' )->calendarDate(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -1046,78 +1032,116 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</h3>
</p>
<h2 class='ipsData__title'>
<div class="ipsBadges">
IPSCONTENT;
if ( $event->hidden() === 1 ):
$return .= <<<IPSCONTENT
<span class="ipsBadge ipsBadge--icon ipsBadge--warning" data-ipsTooltip title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'pending_approval', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'><i class='fa-solid fa-triangle-exclamation'></i></span>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
<a href='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->url( "getPrefComment" ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' title='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</a>
</h2>
</div>
</div>
<div>
<div class="ipsColumns">
<div class="ipsColumns__primary">
IPSCONTENT;
if ( $event->recurring ):
$return .= <<<IPSCONTENT
<p class='i-color_soft'>
<p class='i-color_soft i-margin-bottom_2'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->_recurring_text, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</p><br>
</p>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<div class='ipsRichText
<div class='ipsRichText
IPSCONTENT;
if ( ( \IPS\Widget\Request::i()->isAjax() or $truncate ) && $event->content ):
$return .= <<<IPSCONTENT
ipsTruncate_5
ipsTruncate_3
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
'>
IPSCONTENT;
if ( $event->content ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( \IPS\Widget\Request::i()->isAjax() or $truncate ):
$return .= <<<IPSCONTENT
{$event->truncated()}
{$event->truncated()}
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
{$event->content}
{$event->content}
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<p class='ipsRichText i-margin-block_2'><a href='
<p class='ipsRichText i-margin-block_2'><a href='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->url( "getPrefComment" ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -1127,24 +1151,76 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'event_details', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a></p>
</div>
</div>
IPSCONTENT;
if ( $map !== FALSE AND $event->map( $map[0], $map[1] ) ):
if ( $event->rsvp ):
$return .= <<<IPSCONTENT
<div class='cCalendarBlock_map'>
{$event->map( $map[0], $map[1] )}
</div>
<h4 class="i-font-weight_500 i-margin-top_3">
IPSCONTENT;
$pluralize = array( $event->attendeeCount( \IPS\calendar\Event::RSVP_YES ) ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'event_rsvp_attendees_list', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) );
$return .= <<<IPSCONTENT
</h4>
IPSCONTENT;
if ( \count( $event->attendees( \IPS\calendar\Event::RSVP_YES, 5 ) ) ):
$return .= <<<IPSCONTENT
<ul class='ipsCaterpillar i-margin-top_2'>
IPSCONTENT;
foreach ( $event->attendees( \IPS\calendar\Event::RSVP_YES, 5 ) as $attendee ):
$return .= <<<IPSCONTENT
<li>
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( $attendee, 'tiny' );
$return .= <<<IPSCONTENT
</li>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</ul>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<br>
<a href='
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
if ( $map !== FALSE AND $event->map( $map[0], $map[1] ) ):
$return .= <<<IPSCONTENT
<div class='ipsColumns__secondary i-basis_300 cCalendarBlock_map'>
{$event->map( $map[0], $map[1] )}
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
<div class="i-flex i-flex-wrap_wrap i-gap_3 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 );
$return .= <<<IPSCONTENT
@@ -1152,12 +1228,12 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->container()->id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'>
i-margin-end_auto'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->container()->_title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</a>
IPSCONTENT;
if ( $event->container()->allow_comments ):
@@ -1166,7 +1242,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->url()->setQueryString( 'tab', 'comments' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'>
' class="i-color_soft">
IPSCONTENT;
$pluralize = array( $event->comments ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'event_comment_count', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) );
@@ -1177,18 +1253,7 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $event->container()->allow_comments AND $event->container()->allow_reviews ):
$return .= <<<IPSCONTENT
&middot;
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $event->container()->allow_reviews ):
@@ -1197,7 +1262,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->url()->setQueryString( 'tab', 'reviews' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'>
' class="i-color_soft">
IPSCONTENT;
$pluralize = array( $event->reviews ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'event_review_count', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) );
@@ -1208,57 +1273,9 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $event->rsvp ):
$return .= <<<IPSCONTENT
<hr class='ipsHr'>
<h4><strong>
IPSCONTENT;
$pluralize = array( $event->attendeeCount( \IPS\calendar\Event::RSVP_YES ) ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'event_rsvp_attendees_list', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) );
$return .= <<<IPSCONTENT
</strong></h4>
IPSCONTENT;
if ( \count( $event->attendees( \IPS\calendar\Event::RSVP_YES, 5 ) ) ):
$return .= <<<IPSCONTENT
<ul class='ipsList ipsList--inline i-gap_0 i-margin-top_2'>
IPSCONTENT;
foreach ( $event->attendees( \IPS\calendar\Event::RSVP_YES, 5 ) as $attendee ):
$return .= <<<IPSCONTENT
<li>
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( $attendee, 'tiny' );
$return .= <<<IPSCONTENT
</li>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</ul>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</div>
</div>
</div>
IPSCONTENT;
@@ -1298,7 +1315,7 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</li>
IPSCONTENT;
return $return;
+17 -15
View File
@@ -433,16 +433,17 @@ IPSCONTENT;
$return = '';
$return .= <<<IPSCONTENT
<div class='ipsComposeArea ipsComposeArea--unavailable'>
<div class='ipsComposeArea__photo'>
<div class="ipsComposeAreaWrapper">
<div class='ipsComposeArea ipsComposeArea--unavailable'>
<div class='ipsComposeArea__photo'>
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( \IPS\Member::loggedIn(), 'fluid' );
$return .= <<<IPSCONTENT
</div>
<div class='ipsComposeArea_editor'>
<div class="ipsComposeArea_dummy">
<span class='i-color_warning'><i class="fa-solid fa-triangle-exclamation"></i>
<div class='ipsComposeArea_editor'>
<div class="ipsComposeArea_dummy">
<span class='i-color_warning'><i class="fa-solid fa-triangle-exclamation"></i>
IPSCONTENT;
$val = "{$lang}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -463,27 +464,27 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</span>
IPSCONTENT;
if ( \count( $warnings) ):
$return .= <<<IPSCONTENT
IPSCONTENT;
foreach ( $warnings as $idx => $warning ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $idx === 0 ):
$return .= <<<IPSCONTENT
<br><br>
<a href="
<br><br>
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $warning->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -493,24 +494,25 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'view_warning_details', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</div>
</div>
</div>
@@ -1704,7 +1706,7 @@ IPSCONTENT;
if ( !$standalone ):
$return .= <<<IPSCONTENT
<div class='cGuestTeaser i-margin-bottom_3'>
<div class='cGuestTeaser'>
<h2 class='ipsTitle ipsTitle--h3'>
IPSCONTENT;
+3 -7
View File
@@ -7503,7 +7503,7 @@ $return .= <<<IPSCONTENT
<link rel="preload" as="font" type="font/woff2" href="
IPSCONTENT;
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/fontawesome/webfonts/fa-solid-900.woff2", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/static/fontawesome/webfonts/fa-solid-900.woff2", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= <<<IPSCONTENT
" crossorigin="anonymous">
@@ -23432,11 +23432,7 @@ IPSCONTENT;
if ( \get_class( $widget ) !== 'IPS\cms\widgets\Database' ):
$return .= <<<IPSCONTENT
ipsWidget ipsWidget--
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $area->orientation(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
ipsWidget
IPSCONTENT;
endif;
@@ -23444,7 +23440,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
foreach ( $widget->getWrapperClasses() as $class ):
foreach ( $area->widgetClasses( $widget ) as $class ):
$return .= <<<IPSCONTENT
IPSCONTENT;
+15
View File
@@ -4749,6 +4749,21 @@ $return .= <<<IPSCONTENT
ipsSideMenu_itemActive
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
" aria-selected="
IPSCONTENT;
if ( $currentType == $key ):
$return .= <<<IPSCONTENT
true
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
false
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
">
+39 -52
View File
@@ -1618,34 +1618,13 @@ endif;
$return .= <<<IPSCONTENT
</p>
</div>
<div>
<span class='ipsBadge ipsBadge--icon ipsBadge--new
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
ipsHide
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
' data-role='followAnonymous' data-ipsTooltip title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'><i class='fa-solid fa-eye-slash'></i></span>
</div>
<div class='i-basis_180'>
<ul>
<ul class="ipsList ipsList--inline i-row-gap_0 i-margin-top_1 i-font-weight_500">
<li title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_when', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
' data-role='followDate'><i class='fa-regular fa-clock'></i>
' data-role='followDate' hidden><i class='fa-regular fa-clock'></i>
IPSCONTENT;
$val = ( $row->_followData['follow_added'] instanceof \IPS\DateTime ) ? $row->_followData['follow_added'] : \IPS\DateTime::ts( $row->_followData['follow_added'] );$return .= $val->html();
@@ -1670,7 +1649,7 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<i class='fa-solid fa-bell'></i>
<i class='fa-regular fa-bell'></i>
IPSCONTENT;
@@ -1683,10 +1662,25 @@ $val = "follow_freq_{$row->_followData['follow_notify_freq']}"; $return .= \IPS\
$return .= <<<IPSCONTENT
</li>
<li data-role='followAnonymous'
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
hidden
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
><i class="fa-regular fa-eye-slash"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</ul>
</div>
<div class='i-basis_180 i-text-align_center'>
<div class='cFollowedContent_manage'>
IPSCONTENT;
@@ -1842,29 +1836,7 @@ $pluralize = array( $count ); $return .= \IPS\Member::loggedIn()->language()->ad
$return .= <<<IPSCONTENT
</li>
</ul>
</div>
<div>
<span class='ipsBadge ipsBadge--icon ipsBadge--new
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
ipsHide
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
' data-role='followAnonymous' data-ipsTooltip title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'><i class='fa-solid fa-eye-slash'></i></span>
</div>
<div class='i-basis_180'>
<ul>
<ul class="ipsList ipsList--inline i-row-gap_0 i-margin-top_1 i-font-weight_500">
<li title='
IPSCONTENT;
@@ -1895,7 +1867,7 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<i class='fa-solid fa-bell'></i>
<i class='fa-regular fa-bell'></i>
IPSCONTENT;
@@ -1908,10 +1880,25 @@ $val = "follow_freq_{$row->_followData['follow_notify_freq']}"; $return .= \IPS\
$return .= <<<IPSCONTENT
</li>
<li data-role='followAnonymous'
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
hidden
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
><i class="fa-regular fa-eye-slash"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</ul>
</div>
<div class='i-basis_180 i-text-align_center'>
<div class='cFollowedContent_manage'>
IPSCONTENT;
+47 -60
View File
@@ -561,35 +561,13 @@ endif;
$return .= <<<IPSCONTENT
</ul>
</div>
<div class='i-basis_70'>
<span class='ipsBadge ipsBadge--icon ipsBadge--new
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
ipsHide
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
' data-role='followAnonymous' data-ipsTooltip title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'><i class='fa-solid fa-eye-slash'></i></span>
</div>
<div class='i-basis_180'>
<ul>
<ul class="ipsList ipsList--inline i-row-gap_0 i-margin-top_1 i-font-weight_500">
<li title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_when', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
' data-role='followDate'><i class='fa-regular fa-clock'></i>
' data-role='followDate' hidden><i class='fa-regular fa-clock'></i>
IPSCONTENT;
$val = ( $row->_followData['follow_added'] instanceof \IPS\DateTime ) ? $row->_followData['follow_added'] : \IPS\DateTime::ts( $row->_followData['follow_added'] );$return .= $val->html();
@@ -614,7 +592,7 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<i class='fa-solid fa-bell'></i>
<i class='fa-regular fa-bell'></i>
IPSCONTENT;
@@ -627,10 +605,25 @@ $val = "follow_freq_{$row->_followData['follow_notify_freq']}"; $return .= \IPS\
$return .= <<<IPSCONTENT
</li>
<li data-role='followAnonymous'
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
hidden
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
><i class="fa-regular fa-eye-slash"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</ul>
</div>
<div class='i-basis_180 i-text-align_center'>
<div class='cFollowedContent_manage'>
IPSCONTENT;
@@ -795,7 +788,6 @@ endif;
$return .= <<<IPSCONTENT
</div>
<h4>
<a href='
IPSCONTENT;
@@ -873,60 +865,39 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
<div>
<span class='ipsBadge ipsBadge--icon' data-role='followAnonymous' data-ipsTooltip title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
hidden
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
><i class='fa-solid fa-eye-slash'></i></span>
</div>
<ul class='ipsData__stats'>
<li title='
<ul class="ipsList ipsList--inline i-row-gap_0 i-margin-top_1 i-font-weight_500">
<li title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_when', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
' data-role='followDate'><i class='fa-regular fa-clock'></i>
' data-role='followDate' hidden><i class='fa-regular fa-clock'></i>
IPSCONTENT;
$val = ( $row->_followData['follow_added'] instanceof \IPS\DateTime ) ? $row->_followData['follow_added'] : \IPS\DateTime::ts( $row->_followData['follow_added'] );$return .= $val->html();
$return .= <<<IPSCONTENT
</li>
<li title='
<li title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_how', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
' data-role='followFrequency'>
IPSCONTENT;
if ( $row->_followData['follow_notify_freq'] == 'none' ):
$return .= <<<IPSCONTENT
<i class='fa-regular fa-bell-slash'></i>
<i class='fa-regular fa-bell-slash'></i>
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<i class='fa-solid fa-bell'></i>
<i class='fa-regular fa-bell'></i>
IPSCONTENT;
endif;
@@ -937,9 +908,25 @@ IPSCONTENT;
$val = "follow_freq_{$row->_followData['follow_notify_freq']}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</ul>
</li>
<li data-role='followAnonymous'
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
hidden
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
><i class="fa-regular fa-eye-slash"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</ul>
</div>
<div class='cFollowedContent_manage'>
IPSCONTENT;
+24 -4
View File
@@ -1860,7 +1860,7 @@ IPSCONTENT;
if ( !empty( $tags ) OR $tagSource !== NULL ):
$return .= <<<IPSCONTENT
<div class='ipsColumns' data-controller='core.global.editor.customtags' data-tagFieldType='codemirror' data-tagFieldID='elCodemirror_
<div class='ipsColumns ipsCodebox__outer-wrap' data-controller='core.global.editor.customtags' data-tagFieldType='codemirror' data-tagFieldID='elCodemirror_
IPSCONTENT;
if ( $id ):
@@ -1905,7 +1905,7 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<div class='i-background_3 i-padding_2' data-role="editor"
<div class='i-background_3 i-padding_2 ipsCodebox__inner-wrap' data-role="editor"
IPSCONTENT;
if ( $preview ):
@@ -9000,7 +9000,17 @@ if ( !empty( $tags ) or !empty( $allOptions['tagSource'] ) ):
$return .= <<<IPSCONTENT
<div
class='ipsColumns'
class='ipsColumns
IPSCONTENT;
if ( @$allOptions["codeMode"] ):
$return .= <<<IPSCONTENT
ipsCodebox__outer-wrap
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
'
data-controller='core.global.editor.customtags'
data-tagFieldType='
IPSCONTENT;
@@ -9041,7 +9051,17 @@ $return .= <<<IPSCONTENT
>
<div class='ipsColumns__primary'>
<div data-role="editor">
<div data-role="editor"
IPSCONTENT;
if ( @$allOptions["codeMode"] ):
$return .= <<<IPSCONTENT
class='ipsCodebox__inner-wrap'
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
>
IPSCONTENT;
+4 -4
View File
@@ -2064,7 +2064,7 @@ $return .= <<<IPSCONTENT
<link rel='stylesheet' href='
IPSCONTENT;
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/fontawesome/css/all.min.css?v=6.7.1", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/static/fontawesome/css/all.min.css?v=6.7.2", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= <<<IPSCONTENT
'>
@@ -2757,7 +2757,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
if ( str_contains( $js, "interface/iro" ) or str_contains( $js, 'interface/tiptap' ) or str_contains( $js, "interface/pagebuilder" ) or str_contains( $js, 'interface/codehighlighting' ) ):
if ( str_contains( $js, "interface/static/iro" ) or str_contains( $js, 'interface/static/tiptap' ) or str_contains( $js, "interface/static/pagebuilder" ) or str_contains( $js, 'interface/static/codehighlighting' ) ):
$return .= <<<IPSCONTENT
type="module"
IPSCONTENT;
@@ -2768,7 +2768,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
if ( str_contains( $js, "interface/iro" ) ):
if ( str_contains( $js, "interface/static/iro" ) ):
$return .= <<<IPSCONTENT
data-iro-loader
IPSCONTENT;
@@ -2799,7 +2799,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
if ( str_contains( $js, 'interface/tiptap' ) or str_contains( $js, "interface/pagebuilder" ) or str_contains( $js, 'interface/codehighlighting' ) ):
if ( str_contains( $js, 'interface/static/tiptap' ) or str_contains( $js, "interface/static/pagebuilder" ) or str_contains( $js, 'interface/static/codehighlighting' ) ):
$return .= <<<IPSCONTENT
type="module"
IPSCONTENT;
+2 -2
View File
@@ -1697,7 +1697,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $url, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" method="post" accept-charset='utf-8' data-ipsForm class="ipsForm ipsForm_fullWidth">
" method="post" accept-charset='utf-8' data-ipsForm class="ipsForm ipsForm--fullWidth">
<input type="hidden" name="mfa_auth" value="1">
<input type="hidden" name="csrfKey" value="
IPSCONTENT;
@@ -1950,7 +1950,7 @@ IPSCONTENT;
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $url, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" method="post" accept-charset='utf-8' data-ipsForm class="ipsForm ipsForm_fullWidth">
" method="post" accept-charset='utf-8' data-ipsForm class="ipsForm ipsForm--fullWidth">
<input type="hidden" name="mfa_setup" value="1">
<input type="hidden" name="csrfKey" value="
IPSCONTENT;
+20 -27
View File
@@ -1084,35 +1084,13 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
<div class='cFollowedContent_anon'>
<span class='ipsBadge ipsBadge--icon ipsBadge--new
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
ipsHide
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
' data-role='followAnonymous' data-ipsTooltip title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'><i class='fa-solid fa-eye-slash'></i></span>
</div>
<div class='i-basis_180 cFollowedContent_info'>
<ul>
<ul class="ipsList ipsList--inline i-row-gap_0 i-margin-top_1 i-font-weight_500">
<li title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_when', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
' data-role='followDate'><i class='fa-regular fa-clock'></i>
' data-role='followDate' hidden><i class='fa-regular fa-clock'></i>
IPSCONTENT;
$val = ( $row->_followData['follow_added'] instanceof \IPS\DateTime ) ? $row->_followData['follow_added'] : \IPS\DateTime::ts( $row->_followData['follow_added'] );$return .= $val->html();
@@ -1137,7 +1115,7 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<i class='fa-solid fa-bell'></i>
<i class='fa-regular fa-bell'></i>
IPSCONTENT;
@@ -1150,10 +1128,25 @@ $val = "follow_freq_{$row->_followData['follow_notify_freq']}"; $return .= \IPS\
$return .= <<<IPSCONTENT
</li>
<li data-role='followAnonymous'
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
hidden
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
><i class="fa-regular fa-eye-slash"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</ul>
</div>
<div class='i-basis_200 i-text-align_end cFollowedContent_manage'>
<div class='cFollowedContent_manage'>
IPSCONTENT;
+145 -188
View File
@@ -356,7 +356,6 @@ $return .= \IPS\Theme\Template::htmlspecialchars( $form->error, ENT_QUOTES | ENT
$return .= <<<IPSCONTENT
</div>
<br>
IPSCONTENT;
@@ -436,9 +435,8 @@ endforeach;
$return .= <<<IPSCONTENT
<div class='ipsColumns'>
<div class='ipsColumns__secondary i-basis_50 i-text-align_center'>
<span class='cDownloadsSubmit_step'>
<div class='ipsBox ipsPull i-margin-bottom_block'>
<h3 class='ipsBox__header'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $step, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -447,11 +445,7 @@ IPSCONTENT;
$step++;
$return .= <<<IPSCONTENT
</span>
</div>
<div class='ipsColumns__primary'>
<div class='ipsBox'>
<h3 class='ipsBox__header'>
.
IPSCONTENT;
if ( $category->multiple_files ):
@@ -477,29 +471,29 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</h3>
<div class='i-padding_3'>
<div class='i-padding_3'>
IPSCONTENT;
if ( isset( $form->elements['']['import_files'] ) || isset( $form->elements['']['url_files'] ) ):
$return .= <<<IPSCONTENT
<ul class='ipsList ipsList--inline i-text-align_end'>
<ul class='ipsButtons ipsButtons--end i-margin-bottom_2'>
IPSCONTENT;
if ( isset( $form->elements['']['url_files'] ) ):
$return .= <<<IPSCONTENT
<li>
<a href='#' class='ipsButton ipsButton--soft ipsButton--small' id='elURLFiles' data-ipsMenu data-ipsMenu-closeOnClick='false' data-ipsMenu-appendTo='#elDownloadsSubmit'>
<i class='fa-solid fa-earth-americas'></i>
<li>
<button type="button" class='ipsButton ipsButton--soft ipsButton--small' id='elURLFiles' data-ipsMenu data-ipsMenu-closeOnClick='false' data-ipsMenu-appendTo='#elDownloadsSubmit'>
<i class='fa-solid fa-earth-americas'></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'add_files_by_url', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
<i class='fa-solid fa-caret-down'></i>
<span class='ipsNotification
<span class='ipsNotification
IPSCONTENT;
if ( !\count( $form->elements['']['url_files']->value ) ):
@@ -515,41 +509,42 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( \count( $form->elements['']['url_files']->value ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span>
</a>
<div id='elURLFiles_menu' class='ipsMenu ipsMenu_normal ipsHide i-padding_3'>
<ul class='ipsFieldRow--fullWidth'>
{$form->elements['']['url_files']}
</ul>
<hr class='ipsHr'>
<a href='#' class='ipsButton ipsButton--wide ipsButton--primary' data-action='confirmUrls'>
</button>
<div id='elURLFiles_menu' class='ipsMenu ipsMenu_normal i-padding_0 ipsHide'>
<ul class='ipsForm ipsForm--fullWidth'>
{$form->elements['']['url_files']}
<li class="ipsSubmitRow">
<button type="button" class='ipsButton ipsButton--wide ipsButton--primary' data-action='confirmUrls'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'submit_menu_confirm', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</div>
</li>
</button>
</li>
</ul>
</div>
</li>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( isset( $form->elements['']['import_files'] ) ):
$return .= <<<IPSCONTENT
<li>
<a href='#' class='ipsButton ipsButton--soft ipsButton--small' id='elImportFiles' data-ipsMenu data-ipsMenu-closeOnClick='false' data-ipsMenu-appendTo='#elDownloadsSubmit'>
<i class='fa-solid fa-folder'></i>
<li>
<button type="button" class='ipsButton ipsButton--soft ipsButton--small' id='elImportFiles' data-ipsMenu data-ipsMenu-closeOnClick='false' data-ipsMenu-appendTo='#elDownloadsSubmit'>
<i class='fa-solid fa-folder'></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'add_files_by_path', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
<i class='fa-solid fa-caret-down'></i>
<span class='ipsNotification
<span class='ipsNotification
IPSCONTENT;
if ( !\count( $form->elements['']['import_files']->value ) ):
@@ -565,60 +560,59 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( \count( $form->elements['']['import_files']->value ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span>
</a>
<div id='elImportFiles_menu' class='ipsMenu ipsMenu_normal ipsHide i-padding_3'>
<ul class='ipsFieldRow--fullWidth'>
{$form->elements['']['import_files']}
</ul>
<hr class='ipsHr'>
<a href='#' class='ipsButton ipsButton--wide ipsButton--primary' data-action='confirmImports'>
</button>
<div id='elImportFiles_menu' class='ipsMenu ipsMenu_normal i-padding_0 ipsHide'>
<ul class='ipsForm ipsForm--fullWidth'>
{$form->elements['']['import_files']}
<li class="ipsSubmitRow">
<button type="button" class='ipsButton ipsButton--wide ipsButton--primary' data-action='confirmImports'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'submit_menu_confirm', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</div>
</li>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</ul>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<div id='elDownloadsSubmit_progress' class='i-position_sticky-top'>
<div class='ipsProgress ipsProgress--animated' >
<div class='ipsProgress__progress' data-progress='0%'></div>
</div>
</button>
</li>
</ul>
</div>
<div id='elDownloadsSubmit_uploader' class=''>
{$form->elements['']['files']->html( $form )}
</li>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</ul>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<div id='elDownloadsSubmit_progress' class="i-margin-bottom_2">
<div class='ipsProgress ipsProgress--animated' >
<div class='ipsProgress__progress' data-progress='0%'></div>
</div>
</div>
<div id='elDownloadsSubmit_uploader'>
{$form->elements['']['files']->html( $form )}
IPSCONTENT;
if ( $category->multiple_files ):
$return .= <<<IPSCONTENT
<button type='button' class='ipsButton ipsButton--soft ipsButton--small ipsHide i-margin-top_3' data-action='uploadMore'>
<button type='button' class='ipsButton ipsButton--soft ipsButton--small ipsHide i-margin-top_3' data-action='uploadMore'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'upload_more_files', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</button>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</div>
</div>
</div>
</div>
@@ -635,11 +629,9 @@ IPSCONTENT;
if ( $category->bitoptions['allowss'] ):
$return .= <<<IPSCONTENT
<div id='elDownloadsSubmit_screenshots'>
<br><br>
<div class='ipsColumns'>
<div class='ipsColumns__secondary i-basis_50 i-text-align_center'>
<span class='cDownloadsSubmit_step'>
<div id='elDownloadsSubmit_screenshots'>
<div class='ipsBox ipsPull i-margin-bottom_block'>
<h3 class='ipsBox__header'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $step, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -648,33 +640,29 @@ IPSCONTENT;
$step++;
$return .= <<<IPSCONTENT
</span>
</div>
<div class='ipsColumns__primary'>
<div class='ipsBox'>
<h3 class='ipsBox__header'>
.
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'add_screenshots', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h3>
<div class='i-padding-inline_3 i-padding-block_2'>
<div class='i-padding_3'>
IPSCONTENT;
if ( isset( $form->elements['']['url_screenshots'] ) ):
$return .= <<<IPSCONTENT
<ul class='ipsList ipsList--inline i-text-align_end'>
<li>
<a href='#' class='ipsButton ipsButton--soft ipsButton--small' id='elURLScreenshots' data-ipsMenu data-ipsMenu-closeOnClick='false' data-ipsMenu-appendTo='#elDownloadsSubmit_screenshots'>
<i class='fa-solid fa-earth-americas'></i>
<ul class='ipsButtons ipsButtons--end i-margin-bottom_2'>
<li>
<button type="button" class='ipsButton ipsButton--soft ipsButton--small' id='elURLScreenshots' data-ipsMenu data-ipsMenu-closeOnClick='false' data-ipsMenu-appendTo='#elDownloadsSubmit_screenshots'>
<i class='fa-solid fa-earth-americas'></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'add_screenshots_by_url', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
<i class='fa-solid fa-caret-down'></i>
<span class='ipsNotification
<span class='ipsNotification
IPSCONTENT;
if ( !isset( $form->elements['']['url_screenshots']->value['values'] ) OR !\count( $form->elements['']['url_screenshots']->value['values'] ) ):
@@ -690,47 +678,45 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( \count( $form->elements['']['url_screenshots']->value['values'] ?? array() ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span>
</a>
<div id='elURLScreenshots_menu' class='ipsMenu ipsMenu_wide ipsHide i-padding_3'>
<ul class='ipsFieldRow--fullWidth'>
{$form->elements['']['url_screenshots']}
</ul>
<hr class='ipsHr'>
<a href='#' class='ipsButton ipsButton--wide ipsButton--primary' data-action='confirmScreenshotUrls'>
</button>
<div id='elURLScreenshots_menu' class='ipsMenu ipsMenu_wide ipsHide i-padding_3'>
<ul class='ipsFieldRow--fullWidth'>
{$form->elements['']['url_screenshots']}
</ul>
<hr class='ipsHr'>
<a href='#' 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>
</div>
</li>
</ul>
</div>
</li>
</ul>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( isset( $form->elements['']['screenshots'] ) ):
$return .= <<<IPSCONTENT
<div id='elDownloadsSubmit_screenshots'>
{$form->elements['']['screenshots']->html( $form )}
</div>
<div id='elDownloadsSubmit_screenshots'>
{$form->elements['']['screenshots']->html( $form )}
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</div>
</div>
</div>
</div>
IPSCONTENT;
@@ -739,10 +725,8 @@ $return .= <<<IPSCONTENT
<div id='elDownloadsSubmit_otherinfo'>
<br><br>
<div class='ipsColumns'>
<div class='ipsColumns__secondary i-basis_50 i-text-align_center'>
<span class='cDownloadsSubmit_step'>
<div class='ipsBox ipsPull i-margin-bottom_block'>
<h3 class='ipsBox__header'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $step, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -751,11 +735,7 @@ IPSCONTENT;
$step++;
$return .= <<<IPSCONTENT
</span>
</div>
<div class='ipsColumns__primary'>
<div class='ipsBox'>
<h3 class='ipsBox__header'>
.
IPSCONTENT;
if ( $newSubmission ):
@@ -781,47 +761,45 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</h3>
<ul class='ipsForm ipsForm--vertical ipsForm--submit-file'>
<ul class='ipsForm ipsForm--vertical ipsForm--submit-file'>
IPSCONTENT;
foreach ( $form->elements as $collection ):
$return .= <<<IPSCONTENT
IPSCONTENT;
foreach ( $collection as $fieldName => $input ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( !\in_array( $fieldName, $nonInfoFields ) ):
$return .= <<<IPSCONTENT
{$input}
{$input}
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</ul>
</div>
</div>
</ul>
</div>
@@ -830,10 +808,8 @@ IPSCONTENT;
if ( $terms ):
$return .= <<<IPSCONTENT
<br><br>
<div class='ipsColumns'>
<div class='ipsColumns__secondary i-basis_50 i-text-align_center'>
<span class='cDownloadsSubmit_step'>
<div class='ipsBox ipsPull i-margin-bottom_block'>
<h3 class='ipsBox__header'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $step, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -842,22 +818,16 @@ IPSCONTENT;
$step++;
$return .= <<<IPSCONTENT
</span>
</div>
<div class='ipsColumns__primary'>
<div class='ipsBox'>
<h3 class='ipsBox__header'>
.
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'csubmissionterms_placeholder', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h3>
<div class='i-padding_3 ipsRichText'>
{$terms}
</div>
<div class='i-padding_3 ipsRichText'>
{$terms}
</div>
</div>
</div>
IPSCONTENT;
@@ -871,10 +841,8 @@ IPSCONTENT;
elseif ( $terms ):
$return .= <<<IPSCONTENT
<br>
<div class='ipsColumns'>
<div class='ipsColumns__secondary i-basis_50 i-text-align_center'>
<span class='cDownloadsSubmit_step'>
<div class='ipsBox ipsPull i-margin-bottom_block'>
<h3 class='ipsBox__header'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $step, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -883,22 +851,16 @@ IPSCONTENT;
$step++;
$return .= <<<IPSCONTENT
</span>
</div>
<div class='ipsColumns__primary'>
<div class='ipsBox'>
<h3 class='ipsBox__header'>
.
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'csubmissionterms_placeholder', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h3>
<div class='i-padding_3 ipsRichText'>
{$terms}
</div>
<div class='i-padding_3 ipsRichText'>
{$terms}
</div>
</div>
</div>
IPSCONTENT;
@@ -906,92 +868,87 @@ endif;
$return .= <<<IPSCONTENT
<div class='ipsColumns'>
<div class='ipsColumns__secondary i-basis_50'></div>
<div class='ipsColumns__primary'>
<div class='ipsBox i-padding_3 i-text-align_center i-margin-top_3'>
<button type='submit' class='ipsButton ipsButton--primary' data-role='submitForm'>
<div class='ipsBox ipsPull i-padding_2 i-text-align_center'>
<button type='submit' class='ipsButton ipsButton--primary' data-role='submitForm'>
IPSCONTENT;
if ( $bulk ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'continue', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $newSubmission ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $category->multiple_files ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'save_and_submit_files', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'save_and_submit_file', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'save_and_submit_new_version', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</button>
</div>
</div>
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'save_and_submit_new_version', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</button>
</div>
</form>
IPSCONTENT;
+1 -1
View File
@@ -2314,7 +2314,7 @@ IPSCONTENT;
elseif ( $file->mustDownloadBeforeReview() ):
$return .= <<<IPSCONTENT
<p class='i-color_soft i-font-weight_600 i-text-align_center i-background_2 i-padding_2'>
<p class='i-color_soft i-font-weight_600 i-text-align_center i-background_2 i-padding_2 i-border-start-start-radius_box i-border-start-end-radius_box'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'no_download_review', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
+20 -27
View File
@@ -346,35 +346,13 @@ endif;
$return .= <<<IPSCONTENT
</ul>
</div>
<div>
<span class='ipsBadge ipsBadge--icon ipsBadge--new
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
ipsHide
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
' data-role='followAnonymous' data-ipsTooltip title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'><i class='fa-solid fa-eye-slash'></i></span>
</div>
<div class='i-basis_180'>
<ul>
<ul class="ipsList ipsList--inline i-row-gap_0 i-margin-top_1 i-font-weight_500">
<li title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_when', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
' data-role='followDate'><i class='fa-regular fa-clock'></i>
' data-role='followDate' hidden><i class='fa-regular fa-clock'></i>
IPSCONTENT;
$val = ( $row->_followData['follow_added'] instanceof \IPS\DateTime ) ? $row->_followData['follow_added'] : \IPS\DateTime::ts( $row->_followData['follow_added'] );$return .= $val->html();
@@ -399,7 +377,7 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<i class='fa-solid fa-bell'></i>
<i class='fa-regular fa-bell'></i>
IPSCONTENT;
@@ -412,10 +390,25 @@ $val = "follow_freq_{$row->_followData['follow_notify_freq']}"; $return .= \IPS\
$return .= <<<IPSCONTENT
</li>
<li data-role='followAnonymous'
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
hidden
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
><i class="fa-regular fa-eye-slash"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</ul>
</div>
<div class='i-basis_180 i-text-align_center'>
<div class='cFollowedContent_manage'>
IPSCONTENT;
+15 -13
View File
@@ -319,10 +319,11 @@ IPSCONTENT;
$return = '';
$return .= <<<IPSCONTENT
<div class='ipsComposeArea ipsComposeArea--unavailable'>
<div class='ipsComposeArea_editor'>
<div class="ipsComposeArea_dummy">
<span class='i-color_warning'><i class="fa-solid fa-triangle-exclamation"></i>
<div class="ipsComposeAreaWrapper">
<div class='ipsComposeArea ipsComposeArea--unavailable'>
<div class='ipsComposeArea_editor'>
<div class="ipsComposeArea_dummy">
<span class='i-color_warning'><i class="fa-solid fa-triangle-exclamation"></i>
IPSCONTENT;
$val = "{$lang}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -343,27 +344,27 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</span>
IPSCONTENT;
if ( \count( $warnings) ):
$return .= <<<IPSCONTENT
IPSCONTENT;
foreach ( $warnings as $idx => $warning ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $idx === 0 ):
$return .= <<<IPSCONTENT
<br><br>
<a href="
<br><br>
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $warning->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -373,24 +374,25 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'view_warning_details', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</div>
</div>
</div>
+40 -53
View File
@@ -3244,35 +3244,14 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
<div>
<span class='ipsBadge ipsBadge--icon ipsBadge--new
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
ipsHide
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
' data-role='followAnonymous' data-ipsTooltip title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'><i class='fa-solid fa-eye-slash'></i></span>
</div>
<div class='i-basis_180'>
<ul>
<ul class="ipsList ipsList--inline i-row-gap_0 i-margin-top_1 i-font-weight_500">
<li title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_when', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
' data-role='followDate'><i class='fa-regular fa-clock'></i>
' data-role='followDate' hidden><i class='fa-regular fa-clock'></i>
IPSCONTENT;
$val = ( $row->_followData['follow_added'] instanceof \IPS\DateTime ) ? $row->_followData['follow_added'] : \IPS\DateTime::ts( $row->_followData['follow_added'] );$return .= $val->html();
@@ -3297,7 +3276,7 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<i class='fa-solid fa-bell'></i>
<i class='fa-regular fa-bell'></i>
IPSCONTENT;
@@ -3310,10 +3289,25 @@ $val = "follow_freq_{$row->_followData['follow_notify_freq']}"; $return .= \IPS\
$return .= <<<IPSCONTENT
</li>
<li data-role='followAnonymous'
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
hidden
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
><i class="fa-regular fa-eye-slash"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</ul>
</div>
<div class='i-basis_180 i-text-align_center'>
<div class='cFollowedContent_manage'>
IPSCONTENT;
@@ -3579,35 +3573,13 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
<div class='cFollowedContent_anon'>
<span class='ipsBadge ipsBadge--icon ipsBadge--new
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
ipsHide
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
' data-role='followAnonymous' data-ipsTooltip title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'><i class='fa-solid fa-eye-slash'></i></span>
</div>
<div class='i-basis_180 cFollowedContent_info'>
<ul>
<ul class="ipsList ipsList--inline i-row-gap_0 i-margin-top_1 i-font-weight_500">
<li title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_when', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
' data-role='followDate'><i class='fa-regular fa-clock'></i>
' data-role='followDate' hidden><i class='fa-regular fa-clock'></i>
IPSCONTENT;
$val = ( $row->_followData['follow_added'] instanceof \IPS\DateTime ) ? $row->_followData['follow_added'] : \IPS\DateTime::ts( $row->_followData['follow_added'] );$return .= $val->html();
@@ -3632,7 +3604,7 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<i class='fa-solid fa-bell'></i>
<i class='fa-regular fa-bell'></i>
IPSCONTENT;
@@ -3645,10 +3617,25 @@ $val = "follow_freq_{$row->_followData['follow_notify_freq']}"; $return .= \IPS\
$return .= <<<IPSCONTENT
</li>
<li data-role='followAnonymous'
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
hidden
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
><i class="fa-regular fa-eye-slash"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</ul>
</div>
<div class='i-basis_180 i-text-align_center cFollowedContent_manage'>
<div class='cFollowedContent_manage'>
IPSCONTENT;
+30 -24
View File
@@ -1406,7 +1406,7 @@ IPSCONTENT;
$return = '';
$return .= <<<IPSCONTENT
<div class='ipsBox' data-ips-template="invoices">
<div class='ipsBox ipsPull ipsBox--invoicesACP'>
<h2 class='ipsBox__header'>
IPSCONTENT;
@@ -1442,7 +1442,7 @@ endif;
$return .= <<<IPSCONTENT
</h2>
<div class='i-padding_2'>
<div>
{$invoices}
</div>
</div>
@@ -1507,54 +1507,57 @@ foreach ( $rows as $row ):
$return .= <<<IPSCONTENT
<li class='ipsData__item'>
<div class='i-basis_120 i-text-align_center'>
<span class='cNexusCustomerInvoice'>
<div class="i-flex i-flex-wrap_wrap i-align-items_center i-gap_3">
<div class="i-flex_91 i-basis_300 i-flex i-gap_2 i-align-items_center">
<div class='i-flex_00 i-basis_100 i-text-align_center'>
<span class='cNexusCustomerInvoice'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $row['i_total'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span>
{$row['i_status']}
</div>
<div class='ipsData__main'>
<p class='i-link-color_inherit'>
{$row['i_status']}
</div>
<div class='ipsData__main'>
<div class="i-flex i-align-items_center i-gap_3 i-flex-wrap_wrap">
<div class="i-flex_91">
<p class='ipsData__title'>
IPSCONTENT;
if ( $row['_buttons']['view'] ):
$return .= <<<IPSCONTENT
<a href='
<a href='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $row['_buttons']['view']['link'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
{$row['i_title']} <span class='i-color_soft i-font-size_1'>#
<span class='i-color_soft'>#
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $row['i_id'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span>
</span>: {$row['i_title']}
IPSCONTENT;
if ( $row['_buttons']['view'] ):
$return .= <<<IPSCONTENT
</a>
</a>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</p>
<p class='i-font-size_1'>
<span class='i-color_soft'>
</p>
<p class='ipsData__meta'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'invoice_created', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -1564,16 +1567,19 @@ IPSCONTENT;
$val = ( $row['i_date'] instanceof \IPS\DateTime ) ? $row['i_date'] : \IPS\DateTime::ts( $row['i_date'] );$return .= $val->html();
$return .= <<<IPSCONTENT
</span>
</p>
</div>
<div class='i-basis_120 i-text-align_end'>
</p>
</div>
</div>
</div>
</div>
<div class='i-flex_11 i-basis_120 i-text-align_end'>
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->controlStrip( $row['_buttons'] );
$return .= <<<IPSCONTENT
</div>
</div>
</li>
+5 -5
View File
@@ -737,27 +737,27 @@ IPSCONTENT;
$return = '';
$return .= <<<IPSCONTENT
<span class="ipsBadge ipsBadge--style
<span class="ipsBadge
IPSCONTENT;
if ( $status == \IPS\nexus\Invoice::STATUS_PAID ):
$return .= <<<IPSCONTENT
4
ipsBadge--positive
IPSCONTENT;
elseif ( $status == \IPS\nexus\Invoice::STATUS_PENDING ):
$return .= <<<IPSCONTENT
1
IPSCONTENT;
elseif ( $status == \IPS\nexus\Invoice::STATUS_CANCELED ):
$return .= <<<IPSCONTENT
5
ipsBadge--locked
IPSCONTENT;
elseif ( $status == \IPS\nexus\Invoice::STATUS_EXPIRED ):
$return .= <<<IPSCONTENT
6
ipsBadge--warning
IPSCONTENT;
endif;
+111 -120
View File
@@ -54,8 +54,8 @@ IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
<div class='i-background_2 i-padding_3'>
<h2 class='ipsTitle ipsTitle--h3'>
<div>
<h2 class='ipsTitle ipsTitle--h3 ipsTitle--padding'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_review', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -186,8 +186,8 @@ IPSCONTENT;
$return .= <<<IPSCONTENT
<div class=''>
<div class='i-text-align_center i-padding_3'>
<div class='ipsBox ipsPull ipsBox--checkoutWrapper'>
<div class='i-text-align_center i-padding_3 i-border-bottom_3'>
IPSCONTENT;
@@ -200,8 +200,8 @@ IPSCONTENT;
if ( $checkoutStatus === 'complete' ):
$return .= <<<IPSCONTENT
<i class='i-font-size_6 fa-solid fa-check-circle'></i>
<h1 class='i-font-size_6 i-text-align_center'>
<i class='i-font-size_6 fa-solid fa-check-circle i-margin-bottom_2 i-color_soft'></i>
<h1 class='i-font-size_5 i-font-weight_600 i-color_hard i-text-align_center'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'transaction_title_success', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -213,8 +213,8 @@ IPSCONTENT;
elseif ( $checkoutStatus === 'waiting' ):
$return .= <<<IPSCONTENT
<i class='i-font-size_6 fa-regular fa-clock'></i>
<h1 class='i-font-size_6 i-text-align_center'>
<i class='i-font-size_6 fa-regular fa-clock i-margin-bottom_2 i-color_soft'></i>
<h1 class='i-font-size_5 i-font-weight_600 i-color_hard i-text-align_center'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'transaction_title_waiting', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -226,8 +226,8 @@ IPSCONTENT;
elseif ( $checkoutStatus === 'hold' ):
$return .= <<<IPSCONTENT
<i class='i-font-size_6 fa-regular fa-clock'></i>
<h1 class='i-font-size_6 i-text-align_center'>
<i class='i-font-size_6 fa-regular fa-clock i-margin-bottom_2 i-color_soft'></i>
<h1 class='i-font-size_5 i-font-weight_600 i-color_hard i-text-align_center'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'transaction_title_hold', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -239,8 +239,8 @@ IPSCONTENT;
elseif ( $checkoutStatus === 'pending' ):
$return .= <<<IPSCONTENT
<i class='i-font-size_6 fa-regular fa-clock'></i>
<h1 class='i-font-size_6 i-text-align_center'>
<i class='i-font-size_6 fa-regular fa-clock i-margin-bottom_2 i-color_soft'></i>
<h1 class='i-font-size_5 i-font-weight_600 i-color_hard i-text-align_center'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'transaction_title_pending', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -252,8 +252,8 @@ IPSCONTENT;
elseif ( $checkoutStatus === 'refused' ):
$return .= <<<IPSCONTENT
<i class='i-font-size_6 fa-solid fa-triangle-exclamation'></i>
<h1 class='i-font-size_6 i-text-align_center'>
<i class='i-font-size_6 fa-solid fa-triangle-exclamation i-margin-bottom_2 i-color_soft'></i>
<h1 class='i-font-size_5 i-font-weight_600 i-color_hard i-text-align_center'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'transaction_title_refused', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -271,8 +271,8 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<i class='i-font-size_6 fa-solid fa-cart-shopping'></i>
<h1 class='i-font-size_6 i-text-align_center'>
<i class='i-font-size_6 fa-solid fa-cart-shopping i-margin-bottom_2 i-color_soft'></i>
<h1 class='i-font-size_5 i-font-weight_600 i-color_hard i-text-align_center'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'checkout', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -290,12 +290,12 @@ IPSCONTENT;
if ( \IPS\Widget\Request::i()->isSecure() === TRUE ):
$return .= <<<IPSCONTENT
<i class='fa-solid fa-lock'></i>
<div class="i-margin-top_1 i-font-weight_500 i-color_soft"><i class='fa-solid fa-lock'></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'secure_page', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
@@ -304,10 +304,8 @@ $return .= <<<IPSCONTENT
</div>
<section>
<div class='ipsBox i-padding_3' id='elCheckoutContent'>
{$content}
</div>
<section id='elCheckoutContent'>
{$content}
</section>
</div>
IPSCONTENT;
@@ -319,23 +317,24 @@ IPSCONTENT;
$return = '';
$return .= <<<IPSCONTENT
<div class='ipsColumns i-margin-top_3 cNexusCheckout_review' data-controller='nexus.front.checkout.review'>
<div class='ipsColumns ipsColumns--reverse ipsColumns--lines cNexusCheckout_review' data-controller='nexus.front.checkout.review'>
<div class='ipsColumns__primary'>
<div class="i-padding_3">
IPSCONTENT;
if ( $invoice->billaddress ):
$return .= <<<IPSCONTENT
<div class='ipsSpanGrid i-margin-bottom_3'>
<div class='ipsSpanGrid i-margin-bottom_3'>
IPSCONTENT;
if ( $invoice->billaddress ):
$return .= <<<IPSCONTENT
<div class='ipsSpanGrid__6'>
<h2 class='ipsTitle ipsTitle--h3'>
<div class='ipsSpanGrid__6'>
<h2 class='ipsTitle ipsTitle--h3'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'billing_address', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -350,16 +349,16 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'edit', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
)</a></h2>
<div class='i-margin-top_3'>
{$invoice->billaddress->toString('<br>')}
<div class='i-margin-top_3'>
{$invoice->billaddress->toString('<br>')}
IPSCONTENT;
if ( isset( $invoice->billaddress->vat ) and $invoice->billaddress->vat ):
$return .= <<<IPSCONTENT
<br>
<br>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'cm_checkout_vat_number', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -369,52 +368,53 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $invoice->billaddress->vat, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</div>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $invoice->member->email ):
$return .= <<<IPSCONTENT
<div class='i-color_soft i-margin-bottom_3'>
<i class='fa-solid fa-circle-info'></i>
<div class='i-color_soft'>
<i class='fa-solid fa-circle-info'></i>
IPSCONTENT;
$sprintf = array($invoice->member->email); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'confirmation_sent_to', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
$return .= <<<IPSCONTENT
</div>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
{$couponForm}
<section class='i-background_3 i-margin-top_3'>
<h2 class='ipsBox__header ipsHide'>
<section>
<h2 class='ipsHide'>
IPSCONTENT;
@@ -446,20 +446,22 @@ endif;
$return .= <<<IPSCONTENT
</h2>
<div class='i-padding_3'>
<div>
{$form}
</div>
</section>
</div>
<div class='ipsColumns__secondary i-basis_360 '>
<h2 class='ipsTitle ipsTitle--h3'>
<div class='ipsColumns__secondary i-basis_360'>
<div class="i-padding_3">
<h2 class='ipsTitle ipsTitle--h3'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_review', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h2>
</div>
<i-data>
<ul class="ipsData ipsData--table ipsData--order-review i-margin-top_3">
<ul class="ipsData ipsData--table ipsData--order-review">
IPSCONTENT;
@@ -1194,7 +1196,7 @@ endif;
$return .= <<<IPSCONTENT
<div class='i-padding_3 i-background_2'>
<div class='i-padding_2 i-border-top_3'>
IPSCONTENT;
@@ -1220,7 +1222,7 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'do_you_have_coupon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h2>
<div class='ipsSpanGrid i-margin-top_2'>
<div class='i-flex i-gap_1 i-margin-top_2'>
IPSCONTENT;
@@ -1233,7 +1235,7 @@ IPSCONTENT;
foreach ( $collection as $inputName => $input ):
$return .= <<<IPSCONTENT
<div class='ipsSpanGrid__8'>
<div class='i-flex_11'>
{$input->html()}
IPSCONTENT;
@@ -1266,14 +1268,12 @@ IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
<div class='ipsSpanGrid__4'>
<button type='submit' class='ipsButton ipsButton--soft ipsButton--small ipsButton--wide'>
<button type='submit' class='i-flex_00 ipsButton ipsButton--inherit'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'apply_coupon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</button>
</div>
</div>
</div>
</form>
@@ -1321,15 +1321,15 @@ IPSCONTENT;
if ( \IPS\Login::registrationType() != 'disabled' or ( $usernamePasswordMethods and $buttonMethods ) ):
$return .= <<<IPSCONTENT
<div class='ipsSpanGrid i-margin-top_3' data-role="memberChoice">
<div class='ipsSpanGrid__6 i-padding_3 cNexusCheckout_returning'>
<h2 class="ipsTitle ipsTitle--h3 i-margin-bottom_3">
<div class='ipsFluid i-basis_280 i-gap_lines' data-role="memberChoice">
<div class='cNexusCheckout_returning'>
<h2 class="i-padding_3 ipsTitle ipsTitle--h3">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'returning_member', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h2>
<div class='ipsForm_fullWidth'>
<div class=''>
IPSCONTENT;
@@ -1342,7 +1342,6 @@ IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core", 'global' )->message( $loginError, 'error' );
$return .= <<<IPSCONTENT
<br>
IPSCONTENT;
@@ -1353,7 +1352,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $login->url, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' class="ipsForm" data-controller="core.global.core.login">
' class="ipsForm ipsForm--fullWidth" data-controller="core.global.core.login">
<input type="hidden" name="csrfKey" value="
IPSCONTENT;
@@ -1404,28 +1403,26 @@ $return .= <<<IPSCONTENT
</form>
</div>
</div>
<div class='ipsSpanGrid__6 i-padding_3'>
<div class="i-background_2 i-padding_3">
IPSCONTENT;
if ( \IPS\Login::registrationType() != 'disabled' ):
$return .= <<<IPSCONTENT
<div class="i-margin-bottom_4">
<div class="i-margin-bottom_3">
<h2 class="ipsTitle ipsTitle--h3">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'new_customers', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h2>
<p>
<p class="i-color_soft i-margin-bottom_3">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'new_customer_blurb', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</p>
</p>
IPSCONTENT;
@@ -1449,7 +1446,7 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<button data-action='newMember' class='ipsButton ipsButton--primary'>
<button data-action='newMember' class='ipsButton ipsButton--primary ipsButton--wide'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'continue_as_new_member', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -1474,43 +1471,41 @@ IPSCONTENT;
if ( $usernamePasswordMethods and $buttonMethods ):
$return .= <<<IPSCONTENT
<div class='i-background_2 i-padding_2'>
<form accept-charset='utf-8' method='post' action='
<form accept-charset='utf-8' method='post' action='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $login->url, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' class="ipsForm" data-controller="core.global.core.login">
<input type="hidden" name="csrfKey" value="
' data-controller="core.global.core.login">
<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
">
<p class='i-font-size_-2 i-text-align_center'><strong>
<p class='i-color_soft i-font-weight_500'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'sign_in_with_these', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</strong></p>
<div class='i-gap_2 i-margin-top_2'>
:</p>
<div class='i-grid i-gap_2 i-text-align_center i-margin-top_2'>
IPSCONTENT;
foreach ( $buttonMethods as $method ):
$return .= <<<IPSCONTENT
<div class='i-text-align_center'>
{$method->button()}
</div>
<div>
{$method->button()}
</div>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</div>
</form>
</div>
</div>
</form>
IPSCONTENT;
@@ -1519,8 +1514,8 @@ $return .= <<<IPSCONTENT
</div>
</div>
<div class="i-padding_3 ipsJS_hide" data-role='newCustomerForm'>
<h2 class='ipsTitle ipsTitle--h3 i-margin-top_3'>
<div class="ipsJS_hide" data-role='newCustomerForm'>
<h2 class='ipsTitle ipsTitle--h3 ipsTitle--padding'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'create_new_account', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -1623,9 +1618,9 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<div class='ipsColumns i-margin-top_3'>
<div class='ipsColumns ipsColumns--reverse ipsColumns--lines ipsColumns--customerInformation'>
<div class='ipsColumns__primary'>
<h2 class='ipsTitle ipsTitle--h3 i-margin-bottom_3'>
<h2 class='ipsTitle ipsTitle--h3 ipsTitle--padding'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'billing_information', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -1633,7 +1628,7 @@ $return .= <<<IPSCONTENT
</h2>
{$informationForm}
</div>
<div class='ipsColumns__secondary i-basis_280'>
<div class='ipsColumns__secondary i-basis_340'>
IPSCONTENT;
@@ -1834,14 +1829,13 @@ endforeach;
$return .= <<<IPSCONTENT
</ul>
<hr class='ipsHr'>
<div class='i-text-align_end i-margin-top_3'>
<div class='ipsSubmitRow'>
<button type='submit' class='ipsButton ipsButton--primary'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'continue_to_review', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
&nbsp;<i class='fa-solid fa-chevron-right'></i></button>
<i class='fa-solid fa-chevron-right'></i></button>
</div>
</form>
IPSCONTENT;
@@ -1854,16 +1848,14 @@ IPSCONTENT;
$return .= <<<IPSCONTENT
<section class='ipsBox i-margin-top_3'>
<h2 class='ipsBox__header'>
<section class=''>
<div class="i-padding_3 i-border-top_3 i-border-bottom_3 i-flex i-align-items_center i-gap_2">
<h2 class='ipsTitle ipsTitle--h3'><span class="i-color_soft">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_review', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h2>
<div class='i-padding_3'>
<div class='i-flex i-align-items_center i-gap_2'>
<h2 class='ipsTitle ipsTitle--h3'>
:</span>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -1873,13 +1865,13 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $invoice->id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</h2>
IPSCONTENT;
if ( \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'nexus', 'clients' ) ) ):
$return .= <<<IPSCONTENT
<a href='
<a href='
IPSCONTENT;
if ( $invoice->guest_data and isset( $invoice->guest_data['guestTransactionKey'] ) ):
@@ -1902,22 +1894,22 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
' target="_blank" rel='noopener' class='ipsJS_show ipsButton ipsButton--soft ipsButton--small'>
' target="_blank" rel='noopener' class='ipsJS_show ipsButton ipsButton--inherit ipsButton--small i-margin-start_auto'><i class="fa-solid fa-print"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_invoice_print', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
<hr class='ipsHr'>
<div class='ipsSpanGrid i-margin-top_3'>
<div class='ipsSpanGrid__6'>
</div>
<div class='i-padding_3'>
<div class='ipsFluid i-basis_300 i-margin-top_3'>
<div>
IPSCONTENT;
@@ -1969,7 +1961,7 @@ $return .= \IPS\Theme::i()->getTemplate( "clients", "nexus" )->paymentLog( $invo
$return .= <<<IPSCONTENT
</div>
<div class='ipsSpanGrid__6'>
<div>
<h2 class='ipsTitle ipsTitle--h3'>
IPSCONTENT;
@@ -2491,7 +2483,7 @@ IPSCONTENT;
if ( $showSubmitButton ):
$return .= <<<IPSCONTENT
<div class='i-margin-top_3' id="paymentMethodSubmit">
<div class="ipsSubmitRow" id="paymentMethodSubmit">
<button type='submit' class='ipsButton ipsButton--primary ipsButton--wide'>
<i class='fa-solid fa-check-circle'></i>
@@ -2857,30 +2849,31 @@ IPSCONTENT;
$return .= <<<IPSCONTENT
<p class='i-font-size_2 i-text-align_center'>
<div class="i-padding_3 i-background_2 i-border-bottom_3">
<p class="i-color_hard i-font-size_3 i-font-weight_500 i-margin-bottom_1">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_thanks_blurb_no_email', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</p>
<p class='i-font-size_2 i-text-align_center'>
<strong>
</p>
<p>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_wait_blurb', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</strong><br>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_wait_blurb2', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</p>
</p>
</div>
<div class='ipsRichText i-background_3 i-padding_3 i-margin-block_2'>
<div class='ipsRichText i-padding_3'>
{$transaction->method->manualPaymentInstructions( $transaction )}
</div>
@@ -2889,14 +2882,12 @@ IPSCONTENT;
if ( \IPS\Member::loggedIn()->member_id ):
$return .= <<<IPSCONTENT
<p class='i-text-align_center'>
<i class='fa-solid fa-circle-info'></i>
<p class='ipsMessage ipsMessage--info i-margin_1'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'track_orders_in_billing', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</p>
</p>
IPSCONTENT;
+4 -4
View File
@@ -465,25 +465,25 @@ $return .= <<<IPSCONTENT
<link rel='stylesheet' href='
IPSCONTENT;
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/fontawesome/css/regular.min.css?v=6.3.0", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/static/fontawesome/css/regular.min.css?v=6.3.0", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= <<<IPSCONTENT
'>
<link rel='stylesheet' href='
IPSCONTENT;
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/fontawesome/css/solid.min.css?v=6.3.0", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/static/fontawesome/css/solid.min.css?v=6.3.0", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= <<<IPSCONTENT
'>
<link rel='stylesheet' href='
IPSCONTENT;
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/fontawesome/css/fontawesome.min.css?v=6.3.0", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/static/fontawesome/css/fontawesome.min.css?v=6.3.0", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= <<<IPSCONTENT
'>
<link rel='stylesheet' href='
IPSCONTENT;
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/fontawesome/css/brands.min.css?v=6.3.0", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/static/fontawesome/css/brands.min.css?v=6.3.0", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= <<<IPSCONTENT
'>
</head>
+58 -64
View File
@@ -6,17 +6,16 @@ class class_nexus_front_store extends \IPS\Theme\Template
$return .= <<<IPSCONTENT
<div class=''>
<div class='i-text-align_center i-padding_3'>
<i class='i-font-size_6 fa-solid fa-cart-shopping'></i>
<h1 class='i-font-size_6 i-text-align_center'>
<div class='ipsBox ipsBox--cart'>
<div class='i-text-align_center i-padding_3 i-border-bottom_3'>
<i class='i-font-size_6 fa-solid fa-cart-shopping i-margin-bottom_2 i-color_soft'></i>
<h1 class='i-font-size_5 i-font-weight_600 i-color_hard i-text-align_center'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'your_cart', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h1>
</div>
<div data-controller='nexus.front.store.cartReview'>
<div data-role="cart">
@@ -49,16 +48,16 @@ IPSCONTENT;
if ( \count( $_SESSION['cart'] ) ):
$return .= <<<IPSCONTENT
<div id='elNexusCart' class='ipsBox'>
<div id='elNexusCart'>
<i-data>
<div class="ipsData ipsData--table ipsData--cart-contents">
<ul class="ipsData ipsData--table ipsData--cart-contents">
IPSCONTENT;
foreach ( $_SESSION['cart'] as $id => $item ):
$return .= <<<IPSCONTENT
<div id='elCartItem_
<li id='elCartItem_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -205,7 +204,7 @@ $return .= <<<IPSCONTENT
</div>
</div>
<div class='i-basis_180'>
<span class='cNexusPrice i-font-size_2'>
<span class='cNexusPrice i-font-size_3'>
IPSCONTENT;
@@ -332,16 +331,17 @@ $return .= <<<IPSCONTENT
</div>
</div>
</div>
</li>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
<hr class='ipsHr'>
<div class='cNexusCart_totals i-text-align_end'>
</ul>
</i-data>
<div class='cNexusCart_totals i-text-align_end'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'cart_subtotal', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -352,51 +352,49 @@ IPSCONTENT;
$return .= new \IPS\nexus\Money( $subtotal, $currency );
$return .= <<<IPSCONTENT
</span>
</div>
</div>
</i-data>
</div>
<ul class="ipsButtons ipsButtons--main i-margin-block_block">
<li>
<a class="ipsButton ipsButton--text" href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=nexus&module=store&controller=cart&do=clear" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "store_cart", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
" title="" data-confirm><i class='fa-solid fa-xmark'></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'empty_cart', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</li>
<li>
<a class="ipsButton ipsButton--primary" href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=nexus&module=store&controller=cart&do=checkout" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "store_cart", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
" title="" data-action="checkout">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'checkout', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
<i class='fa-solid fa-chevron-right'></i></a>
</li>
<li>
<a class="ipsButton ipsButton--inherit" href="
</div>
<ul class="ipsSubmitRow ipsButtons">
<li>
<a class="ipsButton ipsButton--inherit" href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=nexus&module=store", null, "store", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
" title=""><i class='fa-solid fa-chevron-left'></i>
"><i class="fa-solid fa-store"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'continue_shopping', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</li>
</ul>
</li>
<li>
<a class="ipsButton ipsButton--text i-margin-end_auto" href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=nexus&module=store&controller=cart&do=clear" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "store_cart", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
" data-confirm><i class="fa-regular fa-trash-can"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'empty_cart', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</li>
<li>
<a class="ipsButton ipsButton--primary" href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=nexus&module=store&controller=cart&do=checkout" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "store_cart", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
" data-action="checkout"><i class="fa-solid fa-circle-check"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'checkout', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</li>
</ul>
</div>
IPSCONTENT;
@@ -762,20 +760,20 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<div class='i-padding_3'>
<div class='i-background_2 i-padding_3 i-text-align_center i-margin-bottom_3'>
<h3 class='ipsTitle ipsTitle--h3 i-text-align_center i-margin-bottom_2 i-color_positive'><i class='fa-regular fa-check-circle'></i>
<div>
<div class='i-padding_3 i-text-align_center'>
<h3 class='i-font-weight_700 i-font-size_3 i-margin-bottom_2 i-color_positive'><i class='fa-regular fa-check-circle'></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'product_added_to_cart', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h3>
<h4 class='i-font-size_2'>
<h4 class='i-font-size_3 i-font-weight_700 i-color_hard'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $package->_title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</h4>
<p>
<p class="i-color_soft i-font-weight_600">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'quantity', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -786,17 +784,14 @@ $return .= \IPS\Theme\Template::htmlspecialchars( $quantity, ENT_QUOTES | ENT_DI
$return .= <<<IPSCONTENT
</p>
</div>
<ul class='ipsSpanGrid'>
<li class='ipsSpanGrid__6'>
<a href='#' data-action='dialogClose' class='ipsButton ipsButton--wide ipsButton--soft'>
<div class='ipsSubmitRow ipsButtons'>
<button type="button" data-action='dialogClose' class='ipsButton ipsButton--soft'><i class="fa-solid fa-store"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'continue_shopping', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</li>
<li class='ipsSpanGrid__6'>
<a href='
</button>
<a href='
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=nexus&module=store&controller=cart", null, "store_cart", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
@@ -806,14 +801,13 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'review_cart_title', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
" class='ipsButton ipsButton--wide ipsButton--primary'>
" class='ipsButton ipsButton--primary'><i class="fa-solid fa-basket-shopping"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'review_and_checkout', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</li>
</ul>
</div>
IPSCONTENT;