PageSourceSearch

https://altego.portal.polyfazer.eu/chunks/membership-edit-C3c2x2dX.js

js polyfazer.eu collected 2026-09-24 14:02:57 UTC 10,181 bytes, 142 lines download raw bytes

1import{C as a,P as s}from"./polyfazer-app-DumDTOPg.js";import{h as o}from"./polymer-utils-B8xivS0d.js";import"./select-partner-input-CNOjp5np.js";import"./currency-dropdown-Dp2jq3YD.js";import"./select-order-series-input-DSIQwVOC.js";import"./multi-language-BU3FLD2d.js";import{m as i}from"./membership-services-BIplDPJ9.js";import{a9 as r,aa as m}from"./main-BEpca-0G.js";import"./select-connector-standard-Do4iIj-0.js";import{P as n}from"./page-toolbar-C-8EZufE.js";import"./number-input-1Ysiylry.js";import"./dropdown-input-B-nqSpts.js";import"./BetterHTML-BN6nzApa.js";import"./BetterTemplateHandling-CTXk4mRb.js";import"./dialog-input-behavior-DcN20D9O.js";import"./input-mixin-CrUPo4TG.js";import"./language-service-Y7DWP4JL.js";import"./location-services-B-Yo7g_g.js";import"./image-frame-DZbP5vtK.js";import"./paper-shrink-menu-C7LnALvz.js";import"./question-tag-C9ym_uv9.js";import"./diamond-icon-button-AIbsxFeD.js";import"./BetterPolymerElement-Dg3wVY7D.js";import"./tippy-tooltip-BFt4tVnx.js";import"./event-listeners-mixin-CmUvl9h8.js";import"./input-mixin-B41Xo3VN.js";import"./translation-mixin-DzuKWY5M.js";class l extends a(s){static get template(){return o`
2			${super.template}
3			<style>
4				:host {
5					position: relative;
6					width: 100%;
7					height: 100%;
8					margin: 0 auto;
9					display: block;
10				}
11
12				.membership-form {
13					padding: 15px;
14					min-height: 200px;
15				}
16
17				h2 {
18					margin-top: 25px;
19				}
20				
21				label.fancy {
22					margin-top: 1rem;
23				}
24
25				.content-wrap {
26					padding-bottom: 55px;
27				}
28
29				select-connector-standard {
30					width: 100%;
31					border: 1px solid #ccc;
32					position: relative;
33					display: block;
34					border-radius: var(--block-border-radius);
35					overflow: hidden;
36				}
37
38				.membership-form > * {
39					padding: 0 10px;
40				}
41
42				.price {
43					margin-right: 5px;
44				}
45
46				.monthly-payment-configuration[disabled] .configuration,
47				.group-payment-configuration[disabled] .configuration {
48					display: none;
49				}
50
51				@media screen and (max-width: 1100px) {
52					.membership-form {
53						flex-direction: column;
54					}
55				}
56			</style>
57
58			<page-toolbar
59				pending="[[or(loading, sending)]]"
60				error="[[error]]"
61				return-href="[[getBackRoute(membershipID, '/memberships', '/memberships/%{membershipID}%')]]"
62			>
63				<paper-shrink-menu slot="action-buttons" show-labels>
64					<template is="dom-if" if="[[membershipID]]">
65						${n.ACTION_BUTTON.delete({action:"deleteMembership"})}
66					</template>
67					${n.ACTION_BUTTON.save({action:"saveChanges"})}
68				</paper-shrink-menu>
69			</page-toolbar>
70
71			<div class="content-wrap">
72				<paper-material class="form">
73					<diamond-section-overlay loading="[[loading]]" error="[[error]]" on-retry="refresh"></diamond-section-overlay>
74
75					<div class="membership-form flex-row" hidden$="[[loading]]">
76						<div class="column">
77							<select-partner-input value="{{membership.partner}}"></select-partner-input>
78							<div>
79								<multi-language label="[[_lang('title')]]*" textarea translations="{{membership.titles}}" required></multi-language>
80							</div>
81							<div>
82								<multi-language label="[[_lang('description')]]" translations="{{membership.descriptions}}"></multi-language>
83							</div>
84						</div>
85						<div class="column">
86							<h2>[[_lang('allowedConnectors')]]</h2>
87							<select-connector-standard values="{{membership.enabledConnectors}}" multi></select-connector-standard>
88
89							<div class="monthly-payment-configuration" disabled$="[[!membership.monthlyPaymentConfiguration]]">
90								<div class="flex-row space-between">
91									<h2>[[_lang('monthlyFee')]]</h2>
92									<div class="flex-row vertical-center">
93										<paper-toggle-button checked="[[isset(membership.monthlyPaymentConfiguration)]]" on-checked-changed="_onMonthlyPaymentChanged"></paper-toggle-button>
94									</div>
95								</div>
96								<div class="configuration">
97									<div class="flex-row">
98										<paper-input class="column price" label="[[_lang('price')]]" value="{{membership.monthlyPaymentConfiguration.cost}}"></paper-input>
99										<currency-dropdown selected="{{membership.monthlyPaymentConfiguration.currency}}" auto-init></currency-dropdown>
100									</div>
101									<number-input min="0" max="100" label="[[_lang('taxPercent')]]" value="{{membership.monthlyPaymentConfiguration.taxPercent}}"></number-input>
102
103									<multi-language label="[[_lang('additionalInvoiceText')]]" translations="{{membership.monthlyPaymentConfiguration.additionalInvoiceText}}"></multi-language>
104
105									<select-order-series-input value="{{membership.monthlyPaymentConfiguration.orderSeries}}"></select-order-series-input>
106								</div>
107							</div>
108
109							<div class="group-payment-configuration" disabled$="[[!membership.groupPaymentConfiguration]]">
110								<div class="flex-row space-between">
111									<h2>[[_lang('groupPaymentConfiguration')]]</h2>
112									<div class="flex-row vertical-center">
113										<paper-toggle-button checked="[[isset(membership.groupPaymentConfiguration)]]" on-checked-changed="_onGroupPaymentConfigurationChanged"></paper-toggle-button>
114									</div>
115								</div>
116
117								<div class="configuration">
118									<multi-language label="[[_lang('additionalInvoiceText')]]" translations="{{membership.groupPaymentConfiguration.additionalInvoiceText}}"></multi-language>
119									<currency-dropdown selected="{{membership.groupPaymentConfiguration.currency}}" auto-init></currency-dropdown>
120									<number-input min="0" max="100" label="[[_lang('taxPercent')]]" value="{{membership.groupPaymentConfiguration.taxPercent}}"></number-input>
121									<number-input label="[[_lang('dueDateDays')]]" type="int" min="0" value="{{membership.groupPaymentConfiguration.dueDateDays}}"></number-input>
122									<select-order-series-input label="[[_lang('summaryInvoiceOrderSeries')]]" value="{{membership.groupPaymentConfiguration.orderSeries}}"></select-order-series-input>
123									<select-order-series-input label="[[_lang('endUserDocumentsOrderSeries')]]" value="{{membership.groupPaymentConfiguration.endUserOrderSeries}}"></select-order-series-input>
124									<select-partner-input label="[[_lang('payee')]]" value="{{membership.groupPaymentConfiguration.payee}}"></select-partner-input>
125									<select-partner-input label="[[_lang('payer')]]" value="{{membership.groupPaymentConfiguration.payer}}"></select-partner-input>
126
127									<h2>[[_lang('chargingLimit')]]</h2>
128									<label class="fancy">[[_lang('chargingLimitHint')]]</label>
129									<number-input min="0" label="[[_lang('chargingLimitKwh')]]" value="{{membership.groupPaymentConfiguration.chargingLimitKwh}}"></number-input>
130									<dropdown-input label="[[_lang('chargingLimitPeriod')]]" options="${r}" option-lang-prefix="chargingLimitPeriod_" value="{{membership.groupPaymentConfiguration.chargingLimitPeriod}}" no-deselect></dropdown-input>
131									<div class="flex-row vertical-center space-between">
132										<label>[[_lang('stopRunningSessionsOnLimit')]]</label>
133										<paper-toggle-button checked="{{membership.groupPaymentConfiguration.stopRunningSessionsOnLimit}}"></paper-toggle-button>
134									</div>
135								</div>
136							</div>
137						</div>
138					</div>
139				</paper-material>
140			</div>
141		`}static get properties(){return{membership:Object,editState:Boolean,selectedStandards:{type:Array,value:()=>[]}}}onPageEnter(){window.membershipEdit=this,this.setRoleAndPermissionData()}init(e){this.set("membershipID",e.membershipID),e.membershipID==0?(this.updateRoute("membership-creation"),this.set("membership",this.clone(m)),this.set("editState",!1),this.set("disabled",!1),this.resetFields()):(this.set("editState",!0),this.refresh())}refresh(){this.set("loading",!0),this.clearErrorFromResponse(),i.getItemForEdit(this.membershipID).then(e=>this._handleData(e),e=>this.setErrorFromResponse(e)).finally(()=>{this.set("loading",!1)})}_handleData(e){this.set("membership",e),this.set("disabled",!1),e.groupPaymentConfiguration&&!e.groupPaymentConfiguration.chargingLimitPeriod&&this.set("membership.groupPaymentConfiguration.chargingLimitPeriod",r.MONTH),this.updatePageTitleWithValue(this.findLocalTitle(e.titles))}saveChanges(){this.checkMandatoryFields()||(this.editState?this.wrapWith("update",i.updateItem(this.membership)).then(this._membershipActionsSuccess.bind(this),this._membershipActionsError.bind(this)):this.wrapWith("create",i.createItem(this.membership)).then(this._membershipActionsSuccess.bind(this),this._membershipActionsError.bind(this)))}_membershipActionsSuccess(e){e.update?(window.toaster.show(this._lang("entityUpdatedSuccess")),page.back("/memberships/"+e.update.id)):e.create?(window.toaster.show(this._lang("entityCreatedSuccess")),page("/memberships/"+e.create.id)):e.delete&&(window.toaster.show(this._lang("entityDeletedSuccess")),page.redirect("/memberships")),this.dispatchEvent(new CustomEvent("invalidate-listing-data",{bubbles:!0,detail:{listing:"membership-listing"}}))}_membershipActionsError(e){e.update?(window.toaster.show(this._lang("entityUpdatedError")),e.update.error=="VALIDATION_ERROR"&&this._handleValidationErrors(e.update.validationErrors)):e.create?(window.toaster.show(this._lang("entityCreatedError")),e.create.error=="VALIDATION_ERROR"&&this._handleValidationErrors(e.create.validationErrors)):e.delete&&window.toaster.show(this._lang("entityDeletedError"))}deleteMembership(e){window.confirmDialog({title:this._lang("deleteMembership"),message:this._lang("deleteMembershipMessage"),entity:this.findLocalTitle(this.membership.title)}).then(()=>{this.wrapWith("delete",i.deleteItem(this.membershipID)).then(this._membershipActionsSuccess.bind(this),this._membershipActionsError.bind(this))})}_getConnectors(e){return e}_onMonthlyPaymentChanged(e,t){t.value===!1?this.set("membership.monthlyPaymentConfiguration",null):this.set("membership.monthlyPaymentConfiguration",{})}_onGroupPaymentConfigurationChanged(e,t){t.value===!1?this.set("membership.groupPaymentConfiguration",null):this.set("membership.groupPaymentConfiguration",{chargingLimitPeriod:r.MONTH})}}window.customElements.define("membership-edit",l);
142//# sourceMappingURL=membership-edit-C3c2x2dX.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.