diff --git a/composer.json b/composer.json index a299701..fcc3210 100644 --- a/composer.json +++ b/composer.json @@ -37,9 +37,6 @@ "drupal/queue_mail": "1.3.0", "drupal/queue_ui": "^2.1", "drupal/r4032login": "^2.1", - "drupal/rules": "3.0.0-alpha6", - "drupal/rules_token": "1.2.0", - "drupal/rules_webform": "1.5.0", "drupal/simple_ldap": "1.0.0-alpha3", "drupal/simplesamlphp_auth": "3.2.0", "drupal/switch_page_theme": "1.0", @@ -47,12 +44,12 @@ "drupal/ultimate_cron": "2.0.0-alpha5", "drupal/user_default_page": "2.0.0-rc1", "drupal/webform_composite": "1.0-rc2", + "drupal/webform_node_element": "1.2", "drupal/webform_remote_handlers": "^1.6.0", "drupal/webform_rest": "^4.0.0-beta2", "drupal/webform_scheduled_tasks": "^2.0", "drupal/webform_views": "^5.0@alpha", "drupal/workflow_participants": "^2.4", - "os2forms/os2forms_forloeb_profile": "^1.0", "webmozart/path-util": "2.3.0", "zaporylie/composer-drupal-optimizations": "1.2.0" }, diff --git a/config/optional/pathauto.pattern.anonymous_submissions.yml b/config/optional/pathauto.pattern.anonymous_submissions.yml new file mode 100644 index 0000000..274848c --- /dev/null +++ b/config/optional/pathauto.pattern.anonymous_submissions.yml @@ -0,0 +1,13 @@ +status: true +dependencies: + module: + - ctools + - webform +id: anonymous_submissions +label: 'Anonymisering af indsendelser' +type: 'canonical_entities:webform_submission' +pattern: 'indsendelse/[random:hash:sha1]' +selection_criteria: { } +selection_logic: and +weight: 0 +relationships: { } diff --git a/config/optional/views.view.forlob_og_webformularer_til_sagsbehandling.yml b/config/optional/views.view.forlob_og_webformularer_til_sagsbehandling.yml index fbb077e..83a3d0d 100644 --- a/config/optional/views.view.forlob_og_webformularer_til_sagsbehandling.yml +++ b/config/optional/views.view.forlob_og_webformularer_til_sagsbehandling.yml @@ -16,7 +16,7 @@ dependencies: module: - os2forms_forloeb id: forlob_og_webformularer_til_sagsbehandling -label: 'Forløb og webformularer til sagsbehandling' +label: 'Selvbetjeningsløsninger' module: views description: '' tag: '' @@ -651,7 +651,7 @@ display: expose: label: '' granularity: second - title: 'Forløb og webformularer til sagsbehandling' + title: 'Selvbetjeningsløsninger' header: { } footer: { } empty: { } @@ -692,8 +692,8 @@ display: display_extenders: { } path: sagsbehandler-overblik menu: - type: normal - title: 'Forløb og webformularer til sagsbehandling' + type: none + title: 'Selvbetjeningsløsninger' description: '' expanded: false parent: system.admin diff --git a/config/optional/webform.webform.grundskabelon.yml b/config/optional/webform.webform.grundskabelon.yml index e40953d..08cc6c5 100644 --- a/config/optional/webform.webform.grundskabelon.yml +++ b/config/optional/webform.webform.grundskabelon.yml @@ -35,9 +35,9 @@ template: false archive: false id: grundskabelon title: 'Grundskabelon' -description: 'Denne webform er oprettet ud fra Holstebro Kommunes grundskabelon' +description: 'Denne webform er en grundskabelon.' category: '' -elements: "forlob_type:\n '#type': hidden\n '#title': 'Forløb type'\nsbsip_rules_flow:\n '#type': value\n '#title': 'A SBSIP Afleveringsregel'\n '#value': |\n //Her skal slette de regler som ikke gælder for denne formular.\n //Hvis der skal afleveres til SBSYS skal du også redigere sbsip_xml elementet\n sbsys_standard //Hvis sag eksisterer bliver dokument tilføjet eller ny sag\n sbsys_ny //Opret altid en ny SBSYS sag\n sbsys_direkte_sag_2 //aflever direkte til en sag, husk at udfylde sbsys_sags_nr\n digital_post //Aflever kvittering til digital post\n \n '#default_value': digital_post\nsbsys_sags_nr:\n '#type': value\n '#title': 'B sbsys_sags_nr // bruges ved sbsys_direkte_sag_2 ellers tom'\nsbsip_xml:\n '#type': webform_attachment_os2forms_sbsys_xml\n '#os2formsId': _custom_\n '#os2formsId_custom': angiv_uuid_her\n '#sagSkabelonId': _custom_\n '#sagSkabelonId_custom': 'angiv SBSYS sagsskabelon id'\n '#nemid_cpr': default_nemid_value\n '#nemid_name': default_nemid_value\n '#nemid_address': default_nemid_value\n '#nemid_zipcode': default_nemid_value\n '#nemid_city': default_nemid_value\n '#bodyText': _custom_\n '#bodyText_custom': |\n Tak - vi har nu modtaget de indtastede oplysninger. Du kan se dem i den vedhæftede kvittering.\n \n Venlig hilsen\n Holstebro Kommune\n \n '#MaaSendesTilDFF': ja\n '#title': 'C SBSIP XML // 1 ) Angiv altid UUID, 2) Angiv SBSYS skabelon id ved sbsip_rules_flow(sbsys_standard eller sbsys_ny)'\n '#filename': os2forms.xml\nlogind_oplysninger:\n '#type': webform_wizard_page\n '#title': Start\n cpr:\n '#type': os2forms_nemid_cpr\n '#title': Cpr\n '#multiple': false\n '#title_display': none\n '#readonly': true\n '#wrapper_attributes':\n style: 'display:none'\n navn:\n '#type': os2forms_nemid_name\n '#title': Navn\n '#multiple': false\n '#title_display': none\n '#readonly': true\n '#wrapper_attributes':\n style: 'display:none'\n privat_adresse:\n '#type': os2forms_nemid_address\n '#title': Adresse\n '#multiple': false\n '#title_display': none\n '#readonly': true\n '#wrapper_attributes':\n style: 'display:none'\n cvr:\n '#type': os2forms_nemid_company_cvr\n '#title': CVR\n '#multiple': false\n '#title_display': none\n '#readonly': true\n '#wrapper_attributes':\n style: 'display:none'\n firmanavn:\n '#type': os2forms_nemid_company_name\n '#title': Firmanavn\n '#multiple': false\n '#title_display': none\n '#readonly': true\n '#wrapper_attributes':\n style: 'display:none'\n adresse:\n '#type': os2forms_nemid_company_address\n '#title': Adresse\n '#multiple': false\n '#title_display': none\n '#readonly': true\n '#wrapper_attributes':\n style: 'display:none'\n firma_by:\n '#type': os2forms_nemid_company_city\n '#title': 'Postnummer og By'\n '#multiple': false\n '#title_display': none\n '#readonly': true\n '#wrapper_attributes':\n style: 'display:none'\n flexboxlogind:\n '#type': webform_flexbox\n introtekstfeltgruppe:\n '#type': fieldset\n '#title': Kontaktoplysninger\n '#title_display': invisible\n '#flex': 3\n introtekst:\n '#type': processed_text\n '#text': |\n

(Evt. beskriv hvad brugeren skal have klar på forhånd, eller anden vigtig information) 

\n \n

Du er allerede logget ind. Du kan logge ud igen med linket i højre kolonne under dine personoplysninger.

\n \n

 

\n \n '#format': full_html\n flexbox_01:\n '#type': webform_flexbox\n oplysninger:\n '#type': container\n '#flex': 3\n e_mail_:\n '#type': email\n '#title': E-mail\n '#states_clear': false\n telefon:\n '#type': tel\n '#title': Telefon\n '#states_clear': false\n '#telephone_validation_format': '2'\n '#telephone_validation_country': DK\n tom:\n '#type': container\n '#flex': 3\n du_er_logget_ind_som:\n '#type': fieldset\n '#title': 'Du er logget ind som'\n brugerinformation_1:\n '#type': webform_computed_token\n '#title': 'Du er logget ind som:'\n '#title_display': invisible\n '#display_on': form\n '#template': |\n [webform_submission:values:navn][current-user:display-name][webform_submission:values:firmanavn]
\n [webform_submission:values:e_mail_]
\n [webform_submission:values:telefon]\n \n '#hide_empty': true\n '#ajax': true\n nemidlogin:\n '#type': os2forms_nemid_nemlogin_link\n '#nemlogin_link_login_text': 'Log på'\n '#nemlogin_link_logout_text': 'Log af'\n samtykkeerklaering:\n '#type': fieldset\n '#title': 'Samtykke eller oplysningspligt'\n '#flex': 3\n databeskyttelse:\n '#type': checkboxes\n '#title': Databeskyttelse\n '#title_display': none\n '#options':\n 'Ja, jeg accepterer kommunens registrering og eventuelle videregivelse af oplysninger.': 'Jeg accepterer kommunens registrering og eventuelle videregivelse af oplysninger.'\n '#options_all_value': ''\n '#options_all_text': ''\n '#options_none_value': ''\n '#options_none_text': ''\n databeskyttelsestekst:\n '#type': webform_more\n '#more_title': 'Læs mere om samtykke'\n '#more': |\n


\n Holstebro Kommune registrerer dine oplysninger og kan videregive disse til andre offentlige myndigheder, private virksomheder m.fl., der har lovmæssigt krav på oplysningerne eller samarbejder med kommunen. Du har ret til at kende de oplysninger, kommunen har registreret om dig lige som du kan kræve forkerte oplysninger rettet eller slettet.

\n \n

Du kan kontakte Holstebro Kommunes databeskyttelsesrådgiveren om de rettigheder, du har i henhold til databeskyttelseslovgivningen. Du har ret til at klage til Datatilsynet over kommunens behandling af dine personlige oplysninger. På www.holstebro.dk/databeskyttelse kan du læse mere og finde kontaktoplysninger.
\n  

\n \n oplysningspligt:\n '#type': webform_more\n '#more_title': 'Læs mere om oplysningspligt'\n '#more': |\n


\n Holstebro Kommune er dataansvarlig for behandlingen af de personoplysninger, som vi har modtaget om dig.

\n \n

Kontaktoplysninger:
\n Mail: 
\n Evt. Tlf:

\n \n

Vi behandler dine personoplysninger til følgende formål

\n \n

(skriv kort og forståeligt, hvad formålene er med at behandle personoplysningerne)

\n \n

Retsgrundlaget for vores behandling af dine personoplysninger følger af

\n \n

(Beskriv retsgrundlaget/retsgrundlagene for behandlingen, herunder f.eks. kapitlet i den lov eller bekendtgørelse, der pålægger jer at indsamle personoplysningerne. Hvis behandlingen er baseret på databeskyttelsesforordningens eller databeskyttelseslovens behandlingsbestemmelser, skal du henvise til den relevante bestemmelse.)

\n \n

Vi behandler følgende kategorier af personoplysninger om dig

\n \n

 (Skriv hvilken slags oplysninger der behandles fx kontaktoplysninger og cpr, økonomiske forhold, uddannelse. Hvis nogle af følgende kategorier behandles, skal det fremgå: Oplysninger om straffedomme eller lovovertrædelser, helbred, religion, fagforening, politisk eller filosofisk overbevisning, race eller etnicitet, seksuel orientering, biometrisk data til identifikation.)

\n \n

Vi videregiver eller overlader dine personoplysninger til

\n \n

(Skriv hvem der modtager oplysningerne fx SKAT, UDK, politiet, samarbejdspartnere eller virksomheder)

\n \n

Vi henter personoplysninger om dig fra (HVIS RELEVANT)

\n \n

(skriv hvor oplysninger hentes, fx fra SKAT, Folkeregistret, BBR , andre offentlige myndigheder.)

\n \n

Vi gemmer dine personoplysninger i (HVIS RELEVANT)

\n \n

(angiv tidsrum fx 5 år efter sagen er afsluttet, 6 måneder efter vi har afsluttet ansættelsen etc. Hvis ikke det er muligt at angive præcis tidsrum, skriv i stedet hvilke kriterier der lægger til grund for opbevaringstiden) Vi foretager en automatisk afgørelse ud fra (beskriv hvilken afgørelse der træffes og ud fra hvilke kriterier det sker. Skriv hvilken konsekvens det kan få for den registrerede)

\n \n

Du har mulighed for at trække dit samtykke tilbage

\n \n

Det gør du ved at kontakte os på ovenstående kontaktoplysninger. Hvis du trækker dit samtykke tilbage, påvirker det kun den fremadrettede behandling af dine personoplysninger.

\n \n

Du har følgende rettigheder jf. databeskyttelsesforordningen

\n \n \n \n

Du har ret til at klage til Datatilsynet, hvis du er utilfreds med vores behandling af dine personoplysninger. Se mere på datatilsynet.dk

\n \nudfyld:\n '#type': webform_wizard_page\n '#title': Udfyld\n flexbox_kontaktopl:\n '#type': webform_flexbox\n tekst_side2:\n '#type': fieldset\n '#title': 'Skriv forklarende overskrift'\n '#flex': 3\n tekst:\n '#type': textarea\n '#title': tekst\n '#title_display': none\n '#flex': 3\n du_er_logget_ind_som_3:\n '#type': fieldset\n '#title': 'Du er logget ind som:'\n brugerinformation_2:\n '#type': webform_computed_token\n '#title': 'Du er logget ind som:'\n '#title_display': invisible\n '#display_on': form\n '#template': |\n [webform_submission:values:navn][current-user:display-name][webform_submission:values:firmanavn]
\n [webform_submission:values:e_mail_]
\n [webform_submission:values:telefon]\n \n '#hide_empty': true\n '#ajax': true\nudfyld_2:\n '#type': webform_wizard_page\n '#title': 'Udfyld 2'\n flexbox_02:\n '#type': webform_flexbox\n skriv_forklarende_overskrift:\n '#type': fieldset\n '#title': 'Skriv forklarende overskrift'\n '#flex': 3\n tekst2:\n '#type': textarea\n '#title': tekst\n '#title_display': none\n '#flex': 3\n du_er_logget_ind_som_4:\n '#type': fieldset\n '#title': 'Du er logget ind som'\n brugerinformation_3:\n '#type': webform_computed_token\n '#title': 'Du er logget ind som:'\n '#title_display': invisible\n '#display_on': form\n '#template': |\n [webform_submission:values:navn][current-user:display-name][webform_submission:values:firmanavn]
\n [webform_submission:values:e_mail_]
\n [webform_submission:values:telefon]\n \n '#hide_empty': true\n '#ajax': true\nudfyld_3:\n '#type': webform_wizard_page\n '#title': 'Udfyld 3'\n flexbox_03:\n '#type': webform_flexbox\n skriv_forklarende_overskrift_6:\n '#type': fieldset\n '#title': 'Skriv forklarende overskrift'\n '#flex': 3\n tekst10:\n '#type': textarea\n '#title': tekst\n '#title_display': none\n '#flex': 3\n du_er_logget_ind_som_7:\n '#type': fieldset\n '#title': 'Du er logget ind som'\n brugerinformation_4:\n '#type': webform_computed_token\n '#title': 'Du er logget ind som:'\n '#title_display': invisible\n '#display_on': form\n '#template': |\n [webform_submission:values:navn][current-user:display-name][webform_submission:values:firmanavn]
\n [webform_submission:values:e_mail_]
\n [webform_submission:values:telefon]\n \n '#hide_empty': true\n '#ajax': true\nafslut_det_videre_forloeb:\n '#type': webform_wizard_page\n '#title': Afslut\n afslutning:\n '#type': processed_text\n '#text': |\n

(Beskriv efterfølgende forløb - Hvad kan borgeren forvente nu?

\n \n

Eksempelvis: Din ansøgning vil blive behandlet snarest og du vil modtage en afgørelse inden for 14 dage.)

\n \n '#format': full_html\nactions:\n '#type': webform_actions\n '#title': 'Submit button(s)'\n '#submit__label': 'Send XXX'\nvedhaeftet_pdf:\n '#type': 'webform_entity_print_attachment:pdf'\n '#title': 'D Vedhæftet PDF'\n '#filename': HK-Kvittering.pdf\n '#link_title': Kvittering\n '#view_mode': twig\n '#template': |\n

Kvittering

\n

[webform:title]

\n

Indsendt den [webform_submission:created:custom:d-m-Y - H:i]

\n \n [webform_submission:values:logind_oplysninger:html]\n \n [webform_submission:values:udfyld:format:html]\n \n [webform_submission:values:udfyld_2:format:html]\n \n [webform_submission:values:udfyld_3:format:html]" +elements: "forlob_type:\n '#type': hidden\n '#title': 'Forløb type'\nsbsip_rules_flow:\n '#type': value\n '#title': 'A SBSIP Afleveringsregel'\n '#value': |\n //Her skal slette de regler som ikke gælder for denne formular.\n //Hvis der skal afleveres til SBSYS skal du også redigere sbsip_xml elementet\n sbsys_standard //Hvis sag eksisterer bliver dokument tilføjet eller ny sag\n sbsys_ny //Opret altid en ny SBSYS sag\n sbsys_direkte_sag_2 //aflever direkte til en sag, husk at udfylde sbsys_sags_nr\n digital_post //Aflever kvittering til digital post\n \n '#default_value': digital_post\nsbsys_sags_nr:\n '#type': value\n '#title': 'B sbsys_sags_nr // bruges ved sbsys_direkte_sag_2 ellers tom'\nsbsip_xml:\n '#type': webform_attachment_os2forms_sbsys_xml\n '#os2formsId': _custom_\n '#os2formsId_custom': angiv_uuid_her\n '#sagSkabelonId': _custom_\n '#sagSkabelonId_custom': 'angiv SBSYS sagsskabelon id'\n '#nemid_cpr': default_nemid_value\n '#nemid_name': default_nemid_value\n '#nemid_address': default_nemid_value\n '#nemid_zipcode': default_nemid_value\n '#nemid_city': default_nemid_value\n '#bodyText': _custom_\n '#bodyText_custom': |\n Tak - vi har nu modtaget de indtastede oplysninger. Du kan se dem i den vedhæftede kvittering.\n \n Venlig hilsen\n ****Indsæt firmanavn\n \n '#MaaSendesTilDFF': ja\n '#title': 'C SBSIP XML // 1 ) Angiv altid UUID, 2) Angiv SBSYS skabelon id ved sbsip_rules_flow(sbsys_standard eller sbsys_ny)'\n '#filename': os2forms.xml\nlogind_oplysninger:\n '#type': webform_wizard_page\n '#title': Start\n cpr:\n '#type': os2forms_nemid_cpr\n '#title': Cpr\n '#multiple': false\n '#title_display': none\n '#readonly': true\n '#wrapper_attributes':\n style: 'display:none'\n navn:\n '#type': os2forms_nemid_name\n '#title': Navn\n '#multiple': false\n '#title_display': none\n '#readonly': true\n '#wrapper_attributes':\n style: 'display:none'\n privat_adresse:\n '#type': os2forms_nemid_address\n '#title': Adresse\n '#multiple': false\n '#title_display': none\n '#readonly': true\n '#wrapper_attributes':\n style: 'display:none'\n cvr:\n '#type': os2forms_nemid_company_cvr\n '#title': CVR\n '#multiple': false\n '#title_display': none\n '#readonly': true\n '#wrapper_attributes':\n style: 'display:none'\n firmanavn:\n '#type': os2forms_nemid_company_name\n '#title': Firmanavn\n '#multiple': false\n '#title_display': none\n '#readonly': true\n '#wrapper_attributes':\n style: 'display:none'\n adresse:\n '#type': os2forms_nemid_company_address\n '#title': Adresse\n '#multiple': false\n '#title_display': none\n '#readonly': true\n '#wrapper_attributes':\n style: 'display:none'\n firma_by:\n '#type': os2forms_nemid_company_city\n '#title': 'Postnummer og By'\n '#multiple': false\n '#title_display': none\n '#readonly': true\n '#wrapper_attributes':\n style: 'display:none'\n flexboxlogind:\n '#type': webform_flexbox\n introtekstfeltgruppe:\n '#type': fieldset\n '#title': Kontaktoplysninger\n '#title_display': invisible\n '#flex': 3\n introtekst:\n '#type': processed_text\n '#text': |\n

(Evt. beskriv hvad brugeren skal have klar på forhånd, eller anden vigtig information) 

\n \n

Du er allerede logget ind. Du kan logge ud igen med linket i højre kolonne under dine personoplysninger.

\n \n

 

\n \n '#format': full_html\n flexbox_01:\n '#type': webform_flexbox\n oplysninger:\n '#type': container\n '#flex': 3\n e_mail_:\n '#type': email\n '#title': E-mail\n '#states_clear': false\n telefon:\n '#type': tel\n '#title': Telefon\n '#states_clear': false\n '#telephone_validation_format': '2'\n '#telephone_validation_country': DK\n tom:\n '#type': container\n '#flex': 3\n du_er_logget_ind_som:\n '#type': fieldset\n '#title': 'Du er logget ind som'\n brugerinformation_1:\n '#type': webform_computed_token\n '#title': 'Du er logget ind som:'\n '#title_display': invisible\n '#display_on': form\n '#template': |\n [webform_submission:values:navn][current-user:display-name][webform_submission:values:firmanavn]
\n [webform_submission:values:e_mail_]
\n [webform_submission:values:telefon]\n \n '#hide_empty': true\n '#ajax': true\n nemidlogin:\n '#type': os2forms_nemid_nemlogin_link\n '#nemlogin_link_login_text': 'Log på'\n '#nemlogin_link_logout_text': 'Log af'\n samtykkeerklaering:\n '#type': fieldset\n '#title': 'Samtykke eller oplysningspligt'\n '#flex': 3\n databeskyttelse:\n '#type': checkboxes\n '#title': Databeskyttelse\n '#title_display': none\n '#options':\n 'Ja, jeg accepterer kommunens registrering og eventuelle videregivelse af oplysninger.': 'Jeg accepterer kommunens registrering og eventuelle videregivelse af oplysninger.'\n '#options_all_value': ''\n '#options_all_text': ''\n '#options_none_value': ''\n '#options_none_text': ''\n databeskyttelsestekst:\n '#type': webform_more\n '#more_title': 'Læs mere om samtykke'\n '#more': '

***Indsæt tekst om samtykke

'\n oplysningspligt:\n '#type': webform_more\n '#more_title': 'Læs mere om oplysningspligt'\n '#more': '

***Indsæt tekst om oplysningspligt

'\nudfyld:\n '#type': webform_wizard_page\n '#title': Udfyld\n flexbox_kontaktopl:\n '#type': webform_flexbox\n tekst_side2:\n '#type': fieldset\n '#title': 'Skriv forklarende overskrift'\n '#flex': 3\n tekst:\n '#type': textarea\n '#title': tekst\n '#title_display': none\n '#flex': 3\n du_er_logget_ind_som_3:\n '#type': fieldset\n '#title': 'Du er logget ind som:'\n brugerinformation_2:\n '#type': webform_computed_token\n '#title': 'Du er logget ind som:'\n '#title_display': invisible\n '#display_on': form\n '#template': |\n [webform_submission:values:navn][current-user:display-name][webform_submission:values:firmanavn]
\n [webform_submission:values:e_mail_]
\n [webform_submission:values:telefon]\n \n '#hide_empty': true\n '#ajax': true\nudfyld_2:\n '#type': webform_wizard_page\n '#title': 'Udfyld 2'\n flexbox_02:\n '#type': webform_flexbox\n skriv_forklarende_overskrift:\n '#type': fieldset\n '#title': 'Skriv forklarende overskrift'\n '#flex': 3\n tekst2:\n '#type': textarea\n '#title': tekst\n '#title_display': none\n '#flex': 3\n du_er_logget_ind_som_4:\n '#type': fieldset\n '#title': 'Du er logget ind som'\n brugerinformation_3:\n '#type': webform_computed_token\n '#title': 'Du er logget ind som:'\n '#title_display': invisible\n '#display_on': form\n '#template': |\n [webform_submission:values:navn][current-user:display-name][webform_submission:values:firmanavn]
\n [webform_submission:values:e_mail_]
\n [webform_submission:values:telefon]\n \n '#hide_empty': true\n '#ajax': true\nudfyld_3:\n '#type': webform_wizard_page\n '#title': 'Udfyld 3'\n flexbox_03:\n '#type': webform_flexbox\n skriv_forklarende_overskrift_6:\n '#type': fieldset\n '#title': 'Skriv forklarende overskrift'\n '#flex': 3\n tekst10:\n '#type': textarea\n '#title': tekst\n '#title_display': none\n '#flex': 3\n du_er_logget_ind_som_7:\n '#type': fieldset\n '#title': 'Du er logget ind som'\n brugerinformation_4:\n '#type': webform_computed_token\n '#title': 'Du er logget ind som:'\n '#title_display': invisible\n '#display_on': form\n '#template': |\n [webform_submission:values:navn][current-user:display-name][webform_submission:values:firmanavn]
\n [webform_submission:values:e_mail_]
\n [webform_submission:values:telefon]\n \n '#hide_empty': true\n '#ajax': true\nafslut_det_videre_forloeb:\n '#type': webform_wizard_page\n '#title': Afslut\n afslutning:\n '#type': processed_text\n '#text': |\n

(Beskriv efterfølgende forløb - Hvad kan borgeren forvente nu?

\n \n

Eksempelvis: Din ansøgning vil blive behandlet snarest og du vil modtage en afgørelse inden for 14 dage.)

\n \n '#format': full_html\nactions:\n '#type': webform_actions\n '#title': 'Submit button(s)'\n '#submit__label': 'Send XXX'\nvedhaeftet_pdf:\n '#type': 'webform_entity_print_attachment:pdf'\n '#title': 'Vedhæftet PDF'\n '#filename': Example-Kvittering.pdf\n '#link_title': Kvittering\n '#view_mode': twig\n '#template': |\n

Kvittering

\n

[webform:title]

\n

Indsendt den [webform_submission:created:custom:d-m-Y - H:i]

\n \n [webform_submission:values:logind_oplysninger:html]\n \n [webform_submission:values:udfyld:format:html]\n \n [webform_submission:values:udfyld_2:format:html]\n \n [webform_submission:values:udfyld_3:format:html]" css: '' javascript: '' settings: @@ -232,7 +232,7 @@ handlers: settings: states: - completed - to_mail: formularinput@holstebro.dk + to_mail: example@example.dk to_options: { } cc_mail: '' cc_options: { } diff --git a/os2forms_forloeb.info.yml b/os2forms_forloeb.info.yml index 1c59b7e..a11d23f 100644 --- a/os2forms_forloeb.info.yml +++ b/os2forms_forloeb.info.yml @@ -26,9 +26,6 @@ dependencies: - pathauto - r4032login - redirect - - rules - - rules_token - - rules_webform - smtp - system - switch_page_theme @@ -44,6 +41,7 @@ dependencies: - webform_entity_print - webform_entity_print_attachment - webform_migrate + - webform_node_element - webform_permissions_by_term - webform_remote_handlers - webform_rest diff --git a/os2forms_forloeb.module b/os2forms_forloeb.module index 45345e1..60b689f 100644 --- a/os2forms_forloeb.module +++ b/os2forms_forloeb.module @@ -128,13 +128,26 @@ function end_notification_batch_function($processID, $queueID) { /** * Implements hook_ENTITY_TYPE_create() - * Sets a global purge setting for all webform submissions to 30 days + * Sets a global purge setting for all webform submissions to 30 days. */ function os2forms_forloeb_webform_create(\Drupal\webform\WebformInterface $webform) { - // Set purge of all users submissions. - $webform->setSetting('purge', 'all'); - // Set purge of submissions more than 30 days old. - $webform->setSetting('purge_days', '30'); + // Set purge of all users submissions. + $webform->setSetting('purge', 'all'); + // Set purge of submissions more than 30 days old. + if (empty($webform->getSetting('purge_days'))) { + $webform->setSetting('purge_days', '30'); + } +} + +/** + * Implements hook_ENTITY_TYPE_presave() + * Update webform specific submissions purge settings. + */ +function os2forms_forloeb_webform_presave(\Drupal\webform\WebformInterface $webform) { + // Add a purge time frame if not set. + if (empty($webform->getSetting('purge_days'))) { + $webform->setSetting('purge_days', 30); + } } /** @@ -185,12 +198,21 @@ function os2forms_forloeb_spv_fetch_entity_username($uniqueWebformIdentifier, $w return $username; } +/** + * Returns array of custom task-types for OS2forms + * + */ +function os2forms_forloeb_get_custom_task_types() { + return ['MaestroWebformMultiple', 'MaestroWebformInherit']; +} + /** * Implements hook_form_alter() for MaestroWebformMultiple task type. * * This has been copied from * maestro/maestro_webform/maestro_webform.module with a minimal but * necessary change. See https://www.drupal.org/project/maestro/issues/3243510 + * When that issue has been fixed, this hook implementation can be safely deleted. * */ function os2forms_forloeb_form_alter(&$form, FormStateInterface $form_state, $form_id) { @@ -199,8 +221,10 @@ function os2forms_forloeb_form_alter(&$form, FormStateInterface $form_state, $fo // Both these keys need to exist. if ($isMaestro && $queueID) { $templateTask = MaestroEngine::getTemplateTaskByQueueID($queueID); - // We only care about Maestro Webform Multiple tasks. - if ($templateTask && $templateTask['tasktype'] == 'MaestroWebformMultiple') { + // Get array of custom task-types + $os2forms_forloeb_custom_task_types = os2forms_forloeb_get_custom_task_types(); + // We only care about custom Task-types defined in os2forms_forloeb_get_custom_task_types() + if ($templateTask && in_array($templateTask['tasktype'], $os2forms_forloeb_custom_task_types)) { $storage = $form_state->getStorage(); if ($storage && array_key_exists('form_display', $storage)) { $webformTypes = \Drupal::entityTypeManager()->getStorage('node_type')->loadMultiple(); diff --git a/src/Plugin/EngineTasks/MaestroWebformInheritTask.php b/src/Plugin/EngineTasks/MaestroWebformInheritTask.php new file mode 100644 index 0000000..cde3022 --- /dev/null +++ b/src/Plugin/EngineTasks/MaestroWebformInheritTask.php @@ -0,0 +1,154 @@ +processID = $configuration[0]; + $this->queueID = $configuration[1]; + } + } + + /** + * {@inheritDoc} + */ + public function shortDescription() { + return t('Webform with Inherited submission'); + } + + /** + * {@inheritDoc} + */ + public function description() { + return $this->t('Webform with Inherited submission'); + } + + /** + * {@inheritDoc} + * + * @see \Drupal\Component\Plugin\PluginBase::getPluginId() + */ + public function getPluginId() { + return 'MaestroWebformInherit'; + } + + /** + * {@inheritDoc} + */ + public function getTaskEditForm(array $task, $templateMachineName) { + + // We call the parent, as we need to add a field to the inherited form + $form = parent::getTaskEditForm($task, $templateMachineName); + $form['inherit_webform_unique_id'] = [ + '#type' => 'textfield', + '#title' => $this->t('Inherit Webform from:'), + '#description' => $this->t('Put the unique identifier of the webform you want to inherit from (start-task=submission'), + '#default_value' => $task['data']['inherit_webform_unique_id'] ?? '', + '#required' => TRUE, + ]; + return $form; + } + + /** + * {@inheritDoc} + */ + public function prepareTaskForSave(array &$form, FormStateInterface $form_state, array &$task) { + + // Inherit from parent + parent::prepareTaskForSave($form, $form_state, $task); + // Add custom field(s) to the inherited prepareTaskForSave method. + $task['data']['inherit_webform_unique_id'] = $form_state->getValue('inherit_webform_unique_id'); + } + + /** + * {@inheritDoc} + */ + public function getExecutableForm($modal, MaestroExecuteInteractive $parent) { + + // First, get hold of the interesting previous tasks. + $templateMachineName = MaestroEngine::getTemplateIdFromProcessId($this->processID); + $taskMachineName = MaestroEngine::getTaskIdFromQueueId($this->queueID); + $task = MaestroEngine::getTemplateTaskByID($templateMachineName, $taskMachineName); + + // Get user input from 'inherit_webform_unique_id' + $webformInheritID = $task['data']['inherit_webform_unique_id']; + + // Load its corresponding webform submission. + $sid = MaestroEngine::getEntityIdentiferByUniqueID($this->processID, $webformInheritID); + if ($sid) { + $webform_submission = WebformSubmission::load($sid); + } + if (!isset($webform_submission)) { + \Drupal::logger('os2forms_forloeb')->error( + "Predecessors must have submissions with webforms attached." + ); + return FALSE; + } + // Copy the fields of the webform submission to the values array. + foreach ($webform_submission->getData() as $key => $value) { + if ($value) { + $field_values[$webformInheritID . '_' . $key] = $value; + } + } + // Now create webform submission, submit and attach to current process. + $templateTask = MaestroEngine::getTemplateTaskByQueueID($this->queueID); + $taskUniqueSubmissionId = $templateTask['data']['unique_id']; + $webformMachineName = $templateTask['data']['webform_machine_name']; + + $values = []; + $values['webform_id'] = $webformMachineName; + $values['data'] = $field_values; + + // Create submission. + $new_submission = WebformSubmission::create($values); + + $errors = WebformSubmissionForm::validateWebformSubmission($webform_submission); + + if (!empty($errors)) { + \Drupal::logger('os2forms_forloeb')->error( + "Can't create new submission: " . json_encode($errors) + ); + return FALSE; + } + // Submit it. + $new_submission = WebformSubmissionForm::submitWebformSubmission($new_submission); + + // Attach it to the Maestro process. + $sid = $new_submission->id(); + MaestroEngine::createEntityIdentifier( + $this->processID, $new_submission->getEntityTypeId(), + $new_submission->bundle(), $taskUniqueSubmissionId, $sid + ); + + return parent::getExecutableForm($modal, $parent); + } +} diff --git a/translations/os2forms_forloeb.da.po b/translations/os2forms_forloeb.da.po index 7dc6244..98d551b 100644 --- a/translations/os2forms_forloeb.da.po +++ b/translations/os2forms_forloeb.da.po @@ -1,4 +1,4 @@ -# Dansk translation of Selvbetjening Aarhus +# Dansk translation of OS2forms med Forløb # msgid "" msgstr "" @@ -272,8 +272,7 @@ msgstr "" msgid "Webform submission from: [webform_submission:source-title]" msgstr "" -"Formular udfyldt fra selvbetjening.aarhuskommune.dk: " -"[webform_submission:source-title]" +"Formular udfyldt fra [site:name]: [webform_submission:source-title]" msgid "" "Submitted on [webform_submission:created]\n"