Initial commit

This commit is contained in:
root
2026-01-19 17:44:46 +01:00
commit 823af8b11d
8721 changed files with 1130846 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
/*!
FullCalendar Moment Timezone Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/moment-timezone-plugin
(c) 2023 Adam Shaw
*/
FullCalendar.MomentTimezone=((e,t,a,l)=>{function n(e){return e&&e.__esModule?e:{default:e}}var r=n(a);class m extends l.NamedTimeZoneImpl{offsetForArray(e){return r.default.tz(e,this.timeZoneName).utcOffset()}timestampToArray(e){return r.default.tz(e,this.timeZoneName).toArray()}}var u=t.createPlugin({name:"@fullcalendar/moment-timezone",namedTimeZonedImpl:m});t.globalPlugins.push(u);e.default=u;Object.defineProperty(e,"__esModule",{value:!0});return e})({},FullCalendar,moment,FullCalendar.Internal);
//# sourceMappingURL=fullcalendar-moment-timezone.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"fullcalendar-moment-timezone.js","sources":["original/fullcalendar-moment-timezone.js"],"names":["FullCalendar","MomentTimezone","exports","core","moment","internal","_interopDefault","e","__esModule","default","moment__default","MomentNamedTimeZone","NamedTimeZoneImpl","offsetForArray","a","tz","this","timeZoneName","utcOffset","timestampToArray","ms","toArray","plugin","createPlugin","name","namedTimeZonedImpl","globalPlugins","push","Object","defineProperty","value","Internal"],"mappings":";;;;EAKAA;aAAaC,gBAAiB,CAAWC,EAASC,EAAMC,EAAQC,KAG5D,SAASC,EAAiBC,GAAK,OAAOA,GAAKA,EAAEC,WAAaD,EAAI,CAAEE,QAAWF,CAAE,CAAG,CAEhF,IAAIG,EAA+BJ,EAAgBF,CAAM,QAEnDO,UAA4BN,EAASO,kBACvCC,eAAeC,GACX,OAAOJ,EAAyB,QAAEK,GAAGD,EAAGE,KAAKC,YAAY,EAAEC,UAAU,CACzE,CACAC,iBAAiBC,GACb,OAAOV,EAAyB,QAAEK,GAAGK,EAAIJ,KAAKC,YAAY,EAAEI,QAAQ,CACxE,CACJ,CAEA,IAAIC,EAASnB,EAAKoB,aAAa,CAC3BC,KAAM,gCACNC,mBAAoBd,CACxB,CAAC,EAEDR,EAAKuB,cAAcC,KAAKL,CAAM,EAE9BpB,EAAiB,QAAIoB,EAErBM,OAAOC,eAAe3B,EAAS,aAAc,CAAE4B,MAAO,CAAA,CAAK,CAAC,EAE5D,OAAO5B,CAEV,GAAE,GAAIF,aAAcI,OAAQJ,aAAa+B,QAAQ"}

View File

@@ -0,0 +1,7 @@
/*!
FullCalendar Moment Plugin v6.1.8
Docs & License: https://fullcalendar.io/docs/moment-plugin
(c) 2023 Adam Shaw
*/
FullCalendar.Moment=((e,t,l,n)=>{function a(e){return e&&e.__esModule?e:{default:e}}var r=a(l);function u(e,t,l,n){let a;if("local"===t)a=r.default(e);else if("UTC"===t)a=r.default.utc(e);else if(r.default.tz)a=r.default.tz(e,t);else{a=r.default.utc(e);null!=l&&a.utcOffset(l)}a.locale(n);return a}function o(t){return e=>e?t.format(e):""}var d=t.createPlugin({name:"@fullcalendar/moment",cmdFormatter:function(e,t){var l,n,a=function t(e){let l=e.match(/^(.*?)\{(.*)\}(.*)$/);if(l){let e=t(l[2]);return{head:l[1],middle:e,tail:l[3],whole:l[1]+e.whole+l[3]}}return{head:null,middle:null,tail:null,whole:e}}(e);return t.end?(l=u(t.start.array,t.timeZone,t.start.timeZoneOffset,t.localeCodes[0]),n=u(t.end.array,t.timeZone,t.end.timeZoneOffset,t.localeCodes[0]),function u(o,d,i,f){if(o.middle){let e=d(o.head),t=u(o.middle,d,i,f),l=d(o.tail),n=i(o.head),a=u(o.middle,d,i,f),r=i(o.tail);if(e===n&&l===r)return e+(t===a?t:t+f+a)+l}let e=d(o.whole);let t=i(o.whole);if(e===t)return e;return e+f+t}(a,o(l),o(n),t.defaultSeparator)):u(t.date.array,t.timeZone,t.date.timeZoneOffset,t.localeCodes[0]).format(a.whole)}});t.globalPlugins.push(d);e.default=d;e.toMoment=function(e,t){var l;if(t instanceof n.CalendarImpl)return l=t.getCurrentData().dateEnv,u(e,l.timeZone,null,l.locale.codes[0]);throw new Error("must supply a CalendarApi instance")};e.toMomentDuration=function(e){return r.default.duration(e)};Object.defineProperty(e,"__esModule",{value:!0});return e})({},FullCalendar,moment,FullCalendar.Internal);
//# sourceMappingURL=fullcalendar-moment.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"fullcalendar-moment.js","sources":["original/fullcalendar-moment.js"],"names":["FullCalendar","Moment","exports","core","moment","internal","_interopDefault","e","__esModule","default","moment__default","convertToMoment","input","timeZone","timeZoneOffset","locale","let","mom","utc","tz","utcOffset","createMomentFormatFunc","cmdStr","format","plugin","createPlugin","name","cmdFormatter","arg","startMom","endMom","cmd","parseCmdStr","parts","match","middle","head","tail","whole","end","start","array","localeCodes","formatRange","formatStart","formatEnd","separator","startHead","startMiddle","startTail","endHead","endMiddle","endTail","startWhole","endWhole","defaultSeparator","date","globalPlugins","push","toMoment","calendar","dateEnv","CalendarImpl","getCurrentData","codes","Error","toMomentDuration","fcDuration","duration","Object","defineProperty","value","Internal"],"mappings":"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"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,3 @@
<div class="calendar-container no-window-scroll">
{{{calendar}}}
</div>

View File

@@ -0,0 +1,32 @@
{{#if header}}
<div class="row button-container">
<div class="col-sm-4 col-xs-5">
<div class="btn-group range-switch-group">
<button class="btn btn-text btn-icon" data-action="prev"><span class="fas fa-chevron-left"></span></button>
<button class="btn btn-text btn-icon" data-action="next"><span class="fas fa-chevron-right"></span></button>
</div>
<div class="btn-group range-switch-group">
<button class="btn btn-text strong" data-action="today" title="{{todayLabel}}">
<span class="hidden-sm hidden-xs">{{todayLabel}}</span><span class="visible-sm visible-xs">{{todayLabelShort}}</span>
</button>
</div>
<button
class="btn btn-text{{#unless isCustomView}} hidden{{/unless}} btn-icon"
data-action="editCustomView"
title="{{translate 'Edit'}}"
><span class="fas fa-pencil-alt fa-sm"></span></button>
</div>
<div class="date-title col-sm-4 col-xs-7">
<h4><span style="cursor: pointer;" data-action="refresh" title="{{translate 'Refresh'}}"></span></h4></div>
<div class="col-sm-4 col-xs-12">
<div class="btn-group pull-right mode-buttons">
{{{modeButtons}}}
</div>
</div>
</div>
{{/if}}
<div class="calendar"></div>

View File

@@ -0,0 +1,20 @@
{{#if isNew}}
<div class="scope-switcher radio-container">
{{#each scopeList}}
<div>
<label class="radio-label">
<input
type="radio"
name="scope"
class="form-radio"
{{#ifEqual this ../scope}} checked{{/ifEqual}}
value="{{./this}}"
>
{{translate this category='scopeNames'}}
</label>
</div>
{{/each}}
</div>
{{/if}}
<div class="edit-container record no-side-margin">{{{edit}}}</div>

View File

@@ -0,0 +1,53 @@
{{#each visibleModeDataList}}
<button class="btn btn-text strong{{#ifEqual mode ../mode}} active{{/ifEqual}}" data-action="mode" data-mode="{{mode}}" title="{{label}}"><span class="hidden-md hidden-sm hidden-xs">{{label}}</span><span class="visible-md visible-sm visible-xs">{{labelShort}}</span></button>
{{/each}}
<div class="btn-group" role="group">
<button type="button" class="btn btn-text dropdown-toggle" data-toggle="dropdown"><span class="fas fa-ellipsis-h"></span></button>
<ul class="dropdown-menu pull-right">
{{#each hiddenModeDataList}}
<li>
<a
role="button"
tabindex="0"
class="{{#ifEqual mode ../mode}} active{{/ifEqual}}"
data-action="mode"
data-mode="{{mode}}"
>{{label}}</a>
</li>
{{/each}}
{{#if hiddenModeDataList.length}}
<li class="divider"></li>
{{/if}}
{{#each scopeFilterDataList}}
<li>
<a
role="button"
tabindex="0"
data-action="toggleScopeFilter"
data-name="{{scope}}"
>
<span class="fas fa-check filter-check-icon check-icon pull-right{{#if disabled}} hidden{{/if}}"></span>
<div>{{translate scope category='scopeNamesPlural'}}</div>
</a>
</li>
{{/each}}
{{#if hasMoreItems}}
<li class="divider"></li>
{{/if}}
{{#if isCustomViewAvailable}}
<li>
<a
role="button"
tabindex="0"
data-action="createCustomView"
>{{translate 'Create Shared View' scope='Calendar'}}</a>
</li>
{{/if}}
{{#if hasWorkingTimeCalendarLink}}
<li>
<a href="#WorkingTimeCalendar">{{translate 'WorkingTimeCalendar' category='scopeNamesPlural'}}</a>
</li>
{{/if}}
</ul>
</div>

View File

@@ -0,0 +1,55 @@
<link href="{{basePath}}client/modules/crm/css/vis.css" rel="stylesheet">
{{#if header}}
<div class="row button-container">
<div class="col-sm-4 col-xs-12">
<div class="btn-group">
<button
class="btn btn-text btn-icon"
title="{{translate 'Refresh'}}"
data-action="refresh"
><span class="fas fa-sync-alt"></span></button>
<button
class="btn btn-text"
data-action="today"
>{{translate 'Today' scope='Calendar'}}</button>
</div>{{#if calendarTypeSelectEnabled}}<div class="btn-group calendar-type-button-group">
<div class="btn-group " role="group">
<button
type="button"
class="btn btn-text dropdown-toggle"
data-toggle="dropdown"
><span class="calendar-type-label">{{calendarTypeLabel}}</span> <span class="caret"></span></button>
<ul class="dropdown-menu">
{{#each calendarTypeDataList}}
<li>
<a role="button" tabindex="0" data-action="toggleCalendarType" data-name="{{type}}">
<span
class="fas fa-check calendar-type-check-icon pull-right{{#if disabled}} hidden{{/if}}"
></span> {{label}}
</a>
</li>
{{/each}}
</ul>
</div>
<button
class="btn btn-text{{#ifNotEqual calendarType 'shared'}} hidden{{/ifNotEqual}} btn-icon"
data-action="showSharedCalendarOptions"
title="{{translate 'Shared Mode Options' scope='Calendar'}}"
><span class="fas fa-pencil-alt fa-sm"></span></button>
</div>
{{/if}}
</div>
<div class="date-title col-sm-4 hidden-xs">
<h4><span style="cursor: pointer;" data-action="refresh" title="{{translate 'Refresh'}}"></span></h4></div>
<div class="col-sm-4 col-xs-12">
<div class="btn-group pull-right mode-buttons">
{{{modeButtons}}}
</div>
</div>
</div>
{{/if}}
<div class="timeline"></div>

View File

@@ -0,0 +1 @@
{{{value}}}

View File

@@ -0,0 +1,11 @@
<div class="row">
<div class="cell col-md-6">
<div class="field" data-name="link">
<select class="form-control" data-name="link">
{{#each linkList}}
<option value="{{./this}}">{{translate this category='links' scope='TargetList'}}</option>
{{/each}}
</select>
</div>
</div>
</div>

View File

@@ -0,0 +1,21 @@
<div class="container content">
<div class="block-center-md">
<div class="panel panel-default">
<div class="panel-body">
<p>
{{#if isSubscribed}}
<a
class="btn btn-primary{{#if inProcess}} disabled{{/if}}"
data-action="unsubscribe"
>{{translate 'Unsubscribe' scope='Campaign'}}</a>
{{else}}
<a
class="btn btn-default{{#if inProcess}} disabled{{/if}}"
data-action="subscribe"
>{{translate 'Subscribe again' scope='Campaign'}}</a>
{{/if}}
</p>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1 @@
{{#if accountIsInactive}}<del>{{/if}}<span title="{{value}}">{{value}}</span>{{#if accountIsInactive}}</del>{{/if}}

View File

@@ -0,0 +1,9 @@
<div class="page-header">{{{header}}}</div>
<div class="search-container">{{{search}}}</div>
<div class="row">
{{#unless categoriesDisabled}}
<div class="categories-container{{#unless categoriesDisabled}} col-md-3 col-sm-4{{else}} col-md-12{{/unless}}">{{{categories}}}</div>
{{/unless}}
<div class="list-container{{#unless categoriesDisabled}} col-md-9 col-sm-8{{else}} col-md-12{{/unless}}">{{{list}}}</div>
</div>

View File

@@ -0,0 +1,14 @@
<div class="search-container">{{{search}}}</div>
<div class="row">
{{#unless categoriesDisabled}}
<div class="categories-container{{#unless categoriesDisabled}} col-md-3 col-sm-4{{else}} col-md-12{{/unless}}">{{{categories}}}</div>
{{/unless}}
<div class="list-container{{#unless categoriesDisabled}} col-md-9 col-sm-8{{else}} col-md-12{{/unless}}">{{{list}}}</div>
</div>
{{#if createButton}}
<div class="button-container">
<button class="btn btn-default" data-action="create">{{translate 'Create'}}</button>
</div>
{{/if}}

View File

@@ -0,0 +1,36 @@
<div class="container content">
<div class="block-center-md">
<div class="panel panel-default">
<div class="panel-body">
<h4 class="margin-bottom-2x">{{actionData.translatedEntityType}}: {{actionData.eventName}}</h4>
{{#if dateStart}}
<div class="margin-bottom-2x">
{{#if dateStartChanged}}
<div style="text-decoration: line-through;">{{sentDateStart}}</div>
{{/if}}
<div>{{dateStart}}</div>
</div>
{{/if}}
<div>
<span class="label label-{{style}} label-md">{{actionData.translatedStatus}}</span>
&nbsp;<div class="btn-group">
{{#if actionDataList}}
<a role="button" class="dropdown-toggle text-soft" data-toggle="dropdown">
<span class="fas fa-ellipsis-h"></span>
</a>
<ul class="dropdown-menu">
{{#each actionDataList}}
<li>
<a {{#if link}}href="{{link}}"{{/if}}>{{label}}
{{#if active}}<span class="fas fa-check pull-right"></span>{{/if}}
</a>
</li>
{{/each}}
</ul>
{{/if}}
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,10 @@
<div class="page-header">{{{header}}}</div>
<div class="search-container">{{{search}}}</div>
<div class="row">
{{#unless categoriesDisabled}}
<div class="categories-container{{#unless categoriesDisabled}} col-md-3 col-sm-4{{else}} col-md-12{{/unless}}">{{{categories}}}</div>
{{/unless}}
<div class="list-container{{#unless categoriesDisabled}} col-md-9 col-sm-8{{else}} col-md-12{{/unless}}">{{{list}}}</div>
</div>

View File

@@ -0,0 +1,14 @@
<div class="search-container">{{{search}}}</div>
<div class="row">
{{#unless categoriesDisabled}}
<div class="categories-container{{#unless categoriesDisabled}} col-md-3 col-sm-4{{else}} col-md-12{{/unless}}">{{{categories}}}</div>
{{/unless}}
<div class="list-container{{#unless categoriesDisabled}} col-md-9 col-sm-8{{else}} col-md-12{{/unless}}">{{{list}}}</div>
</div>
{{#if createButton}}
<div class="button-container">
<button class="btn btn-default" data-action="create">{{translate 'Create'}}</button>
</div>
{{/if}}

View File

@@ -0,0 +1,24 @@
<div class="header page-header">{{{header}}}</div>
{{#each scopeList}}
<div class="record">
<label style="user-select: none; cursor: pointer;" class="text-large">
<input
type="checkbox"
class="check-scope form-checkbox"
data-scope="{{./this}}"
>
<span>{{translate this category='scopeNames'}}</span>
</label>
<div class="edit-container-{{toDom this}} hide">
{{{var this ../this}}}
</div>
</div>
{{/each}}
<div class="button-container margin-top">
<div class="btn-group">
<button class="btn btn-primary" data-action="convert">{{translate 'Convert' scope='Lead'}}</button>
<button class="btn btn-default" data-action="cancel">{{translate 'Cancel'}}</button>
</div>
</div>

View File

@@ -0,0 +1,5 @@
{{#if value}}
{{{value}}}
{{else}}
<span class="none-value">{{translate 'None'}}</span>
{{/if}}

View File

@@ -0,0 +1,6 @@
<div class="reminders-container"></div>
<button
data-action="addReminder"
class="btn btn-default"
type="button"
><span class="fas fa-plus"></span></button>

View File

@@ -0,0 +1,22 @@
{{#if closeButton}}
<a role="button" tabindex="0" class="pull-right close" data-action="close" aria-hidden="true"><span class="fas fa-times"></span></a>
{{/if}}
<h4>{{header}}</h4>
<div class="cell form-group">
<div class="field">
<a
href="#{{notificationData.entityType}}/view/{{notificationData.id}}"
data-action="close"
>{{notificationData.name}}</a>
</div>
</div>
<div class="cell form-group" data-name="{{dateField}}">
<div class="field" data-name="{{dateField}}">
{{{date}}}
</div>
</div>

View File

@@ -0,0 +1,3 @@
<div class="list-container">
{{{list}}}
</div>