# Intro
Guide to apply patches for version 3.0.0

# 16.02.2022 (SISPBOIM-1250: DEVIMPBO-1315: Configuration improvements)

### Changelog
Implemented changes from commits **b5002a95** and **537b018a** on branch **develop/3.0.0.**
Also made some other changes:
- Changed **SystemConfigurationServiceTest.java** because of the compile error: 
```
convertXML2Object(java.lang.String, java.lang.Class<eu.ohim.fsp.core.configuration.domain.xsd.FileUploadConfiguration>)' has private access in 'eu.ohim.fsp.core.configuration.SystemConfigurationService
```
This test class is in the future deleted, so for now we just commented two lines that were causing the compile error.
- Modified the class **SystemConfigurationService.java** to read properties using UTF-8 encoding. Renamed method **getConfigParamByComponentName** to **getLetterTemplatesSettings** (method used for reading letter static texts).
- Modified reading letter properties in class **XdocReportService.java**

### Deploy instructions

- extract settings from database and save them to config file. To extract settings you can execute query:
```
select CONCAT(a.NMCOMPONENT , '.', b.NMPARAM, '=',
STUFF(
(
select ',' + d.TXTVALUE
FROM DSETTINGVALUE d, DCONFIGSETTING c
where c.IDPARAM = b.IDPARAM  
and c.idconfigsetting = d.IDCONFIGSETTING
FOR XML PATH('')),
1, 1, ''))
FROM PCONFIGPARAM b, CCOMPONENT a
where a.IDCOMPONENT  = b.IDCOMPONENT
GROUP BY b.NMPARAM, b.IDPARAM, a.NMCOMPONENT  
ORDER BY 1;
```
You should get the same number of records as the records in the table **DCONFIGSETTING**:
```
select count(*) from DCONFIGSETTING;
```

- Copy results and save them to **config.properties** file anywhere on your disk.
When building project, **config.properties** file is created on location **share/conf** but don't use this location for your config.properties file because this one is overwritten everytime the project is build.

- Add line for message properties to your **config.properties** (this should point to messages file, when building this file is created on location **/share/message-resources/fsp-common-messages.properties**):
```
eu.ohim.fsp.tmbo.messages.file.path=$YOUR_PATH/share/message-resources/fsp-common-messages.properties
```

- Add new configuration to Wildfly startup script:
```
-Dconfig.file.path=$YOUR_PATH/config.properties
```

- When you are sure that you have extracted all settings from databse you can deleted tables:
```
drop table CCOMPONENT;
drop table CFORMSTATUS;
drop table CFORMTYPE;
drop table PCONFIGPARAM;
drop table DCONFIGSETTING;
drop table DFORM;
drop table DSETTINGVALUE;
drop table HSTATUSUPDATE;
```

### How to Test 
- Succesfully logged in, inbox page showed list of dossiers
- Created new trademark, edited some fields and saved changes
- Created new design, edited some fields and saved changes
- Edited existing trademar and saved changes
- Generated letter 407 and checked that all static texts are inserted correctly including characters ščž


# 17.02.2022 (SISPBOIM-1253: DEVIMPBO-1339: Cotypes refactoring)

### Changelog
Implemented changes from commit **47268168** on branch **develop/3.0.0.**
Also made some other changes:
- Added two new settings for allowed recordal type from FO (before it was read from cotype file):
```
eu.ohim.fsp.tmbo.fo.tm.recordal.allowed.types=renewal,transfer_of_rights,request_rights_in_rem,change_of_rights_in_rem,rights_in_rem_removal,correction_of_entry,request_licence,change_of_licence,removal_of_licence,request_for_change_details,request_for_limitation,generic
eu.ohim.fsp.tmbo.fo.ds.recordal.allowed.types=renewal,correction_of_entry,generic,transfer_of_rights,request_rights_in_rem,change_of_rights_in_rem,rights_in_rem_removal,request_licence,change_of_licence,removal_of_licence,request_for_change_details,request_for_limitation,manage_designer
```

- Changed values of two settings so they no longer point to cotype file but they use defined values: 
```
eu.ohim.fsp.tmbo.import.persons.tmrecordal=renewal,\
transfer_of_rights,\
change_of_correspondent,\
request_for_limitation,\
licence,\
request_for_change_details,\
change_of_representative,\
withdrawal,\
correction_of_entry,\
rights_in_rem_civil,\
rights_in_rem_distraint,\
rights_in_rem_register,\
generic

eu.ohim.fsp.tmbo.import.persons.dsrecordal=renewal,\
transfer_of_rights,\
change_of_correspondent,\
licence,\
request_for_change_details,\
change_of_representative,\
withdrawal,\
correction_of_entry,\
rights_in_rem_civil,\
rights_in_rem_distraint,\
rights_in_rem_register,\
generic
```

- Reafactored **StorageDesignRecordalService.java** and **StorageRecordalService.java** to read allowed recordal types from configuration file instead of cotype file.
 

### Deploy instructions

- Extract current cotype values and convert them in yaml format. Quoted insutrctions from https://code.tmdn.org/sp/sp-backoffice/wikis/release-3.0.0/devimpbo-1339:

```
The easiest way to extract all cotypes and put them in yaml format is:
    - On a running version of BO, save the response of this call: sp-bo-ui-backend/cotypes.json
    - Use any online tool to transform it into yaml (https://www.json2yaml.com/).
```

- Save result to **cotypes.yml** file anywhere on your disk.
  When building project, **cotypes.yml** file is created on location **share/conf**. In project this file is located at **/conf/releases/Default/src/main/resources/conf/cotypes.yml**

- Add new entries to your **config.properties** for cotypes.yml file location, app.version and  allowed recordal types:
```
eu.ohim.fsp.tmbo.cotypes.config.file=$YOUR_PATH/cotypes.yml
eu.ohim.fsp.tmbo.app.version=0.0.1
eu.ohim.fsp.tmbo.fo.tm.recordal.allowed.types=renewal,transfer_of_rights,request_rights_in_rem,change_of_rights_in_rem,rights_in_rem_removal,correction_of_entry,request_licence,change_of_licence,removal_of_licence,request_for_change_details,request_for_limitation,generic
eu.ohim.fsp.tmbo.fo.ds.recordal.allowed.types=renewal,correction_of_entry,generic,transfer_of_rights,request_rights_in_rem,change_of_rights_in_rem,rights_in_rem_removal,request_licence,change_of_licence,removal_of_licence,request_for_change_details,request_for_limitation,manage_designer
```
- Remove all values related to cotypes from your **config.properties** file. All that starts with *eu.ohim.fsp.tmbo.cotypes...*, except previously added *eu.ohim.fsp.tmbo.app.version*
- Delete all cotype xml files (ct-...xm) in your **share** folder. Cotype xml files were removed from the project so if you are replacing the whole share folder for new deployment, this step is not necessary.
- Remove all values related to cotypes from **fsp-common-messages.properties** (cotypes.xxx). Values were removed from fsp-common-messages.properties file in project, so again, if you are replacing the whole share folder for new deployments, this step is not necessary. 

### How to Test
- Build and deploy application, login and check that you see all combo values correctly

# 17.02.2022 (SISPBOIM-1287: DEVIMPBO-1340: Remove Spring configuration file)

### Changelog
Implemented changes from commit **d0829ee0** on branch **develop/3.0.0.**

### Deploy instructions

- Copy all entries from **share/tm-bo.properties** file to your **config.properties** file.

### How to Test
- Build and deploy application, login and check that there are no errors.

# 18.02.2022 (SISPBOIM-1286: DEVIMPBO-744: Refractoring)

### Changelog
Implemented changes on branch **develop/3.0.0.** from commit:
- **559a9570**
- **a7c30c10**: changing **conf/releases/Default/src/main/resources/conf/cotypes.yml**: Application and Rejection attribute added at publications.design.kind. Changes, made at all.dossier.status.kind (Withdraw and Rejection) and trademark.status (Withdraw and Rejection) has been already implemented.
- **289f5221**: delete **SystemConfigurationServiceTest.java**, **ElasticSearchEngineTest.java**, ignoring one test in **QueryResolverTest.java**

### Deploy instructions

### How to Test
- Build and deploy application, login and check that there are no errors.


# 18.02.2022 (SISPBOIM-1288: DEVIMPBO-1341: Add manual pipeline job for doing sonar analysis)

### Changelog
Implemented changes from commit **9e574fce** and **a9495d0d** on branch **develop/3.0.0.**. Maven plugin changes were already implemented.
No changes in code, only changes were in file .gitlab-ci.yml (SISPBO is not using GitLab CI/CD)


# 22.02.2022 (SISPBOIM-1254: DEVIMPBO-1313: Build improvements)

### Changelog
- Updated ci and local scripts
- Updated maven plugin versions
- Maven profile "local" has been modified, so it no longer do extra jobs just for local installations (deploying mule projects, copying configuration files, ...). For local installations you should use local scripts 
- Folder *conf/standardText* moved to *standardText*. You should update all settings with key `eu.ohim.fsp.tmbo.xxx_standard_text` (or value `${fsp.services.config.dir}/standardText/xxx`) from `/conf/standardText/xxx` to `/standardText/xxx`  
- Renamed folder *app* to *artifacts* in release packaging
- Renamed folder *conf/jboss-as* to *conf/wildfly* in release packaging
- Removed folder *app/jboss-as/sqlserver* in release packaging (modules in that folder has been moved to *artifcats/wildfly*)
- Moved mock-openam.war from *app/jboss-as* to *other/mock-security* 
- Updated deploy scripts


### Deploy instructions

- Changed values of all settings with key `eu.ohim.fsp.tmbo.xxx_standard_text` (or value `${fsp.services.config.dir}/standardText/xxx`) from `/conf/standardText/xxx` to `/standardText/xxx` in your **config.properties** file.
Example:
```
eu.ohim.fsp.tmbo.tm_standard_text_0=${fsp.services.config.dir}/conf/standardText/tm-standardTexts0.xml
``` 
Changed to:
``` 
eu.ohim.fsp.tmbo.tm_standard_text_0=${fsp.services.config.dir}/standardText/tm-standardTexts0.xml
``` 

### How to Test
-Build and deploy applications as usual. Pay attention if scripts are executed successfully, especially when deploying application

---
---
---

# 28.02.2022 (SISPBOIM-1289: DEVIMPBO-1360: Remove not used admintool module)

### Changelog
Implemented changes from commit **da12219a** on branch **develop/3.0.0.**
The admin module has already been deleted, so only some dependencies and tests have been deleted


# 28.02.2022 (SISPBOIM-1290: DEVIMPBO-1358: Move backend configuration to conf folder)

### Changelog
Implemented changes from commit **2533983b** on branch **develop/3.0.0.** Due to the reorganization of the folders the deploy script was also updated. 

### Deploy instructions

- Add new entry to your  **config.properties** for sidebar config folder location: (this should point to sidebar-configuration folder, when building the project, this folder is created on location **/share/sidebar-configuration**):
```
eu.ohim.fsp.tmbo.sidebar.config.folder=${sidebar.config.folder}
```

### How to Test
- Build and deploy application as usual. Pay attention if script *install-wildfly-modules.bat* is executed successfully.
- Check that the folders **security**, **message-resources** and **sidebar-configuration** are created on your *share* location. Also check that file **jboss-ejb-client.properties** is created on your *share* location.
Note that the folder **sidebar-configuration** didn't exist before this version.
- Open random dossier and check that there is no error and sidebar is visible.



# 10.03.2022 (SISPBOIM-1255: DEVIMPBO-1316: User Interface configuration simplification and cleanup)

### Changelog
Implemented changes as described in *https://code.tmdn.org/sp/sp-backoffice/wikis/release-3.0.0/devimpbo-1316*.

### Deploy instructions

- Add new entry to your  **config.properties** for ui config folder location which should contain yml files for ui (named xxx-configuration.yml).
This files replaces xml files for ui configuration (tmbo files) and they are generated on location **/share/conf/ui** (Old xml files were located on location /share/conf/):

```
eu.ohim.fsp.tmbo.ui.config.path=${fsp.services.config.dir}/conf/ui
```

- Delete entries from your **config.properties** file (old tmbo xml files and settings) :

```
eu.ohim.fsp.tmbo.pages-config-tmbo=tmbo-home-conf,tmbo-trademark-conf,tmbo-columns-conf,tmbo-tasks-conf,common-columns-conf,tmbo-publications-conf
eu.ohim.fsp.tmbo.recordals-config-tmbo=tmbo-recordal-conf,tmbo-recordalcolumns-conf,common-columns-conf
eu.ohim.fsp.tmbo.appeal-config-tmbo=tmbo-appeal-conf,tmbo-appealcolumns-conf,common-columns-conf
eu.ohim.fsp.tmbo.opposition-config-tmbo=tmbo-opposition-conf,tmbo-oppositioncolumns-conf,common-columns-conf
eu.ohim.fsp.tmbo.ia-config-tmbo=tmbo-ia-conf,tmbo-iacolumns-conf,common-columns-conf
eu.ohim.fsp.tmbo.design-config-tmbo=tmbo-design-conf,tmbo-designcolumns-conf,tmbo-home-design-conf,common-columns-conf
eu.ohim.fsp.tmbo.opposition-design-config-tmbo=tmbo-opposition-design-conf,tmbo-opposition-design-columns-conf,common-columns-conf
eu.ohim.fsp.tmbo.recordals-design-config-tmbo=tmbo-recordal-design-conf,tmbo-recordal-design-columns-conf,common-columns-conf

eu.ohim.fsp.tmbo.tmbo-home-conf=${fsp.services.config.dir}/conf/tmbo-home-conf.xml
eu.ohim.fsp.tmbo.tmbo-trademark-conf=${fsp.services.config.dir}/conf/tmbo-trademark-conf.xml
eu.ohim.fsp.tmbo.tmbo-tasks-conf=${fsp.services.config.dir}/conf/tmbo-tasks-conf.xml
eu.ohim.fsp.tmbo.tmbo-columns-conf=${fsp.services.config.dir}/conf/tmbo-columns-conf.xml
eu.ohim.fsp.tmbo.tmbo-recordal-conf=${fsp.services.config.dir}/conf/tmbo-recordal-conf.xml
eu.ohim.fsp.tmbo.tmbo-recordalcolumns-conf=${fsp.services.config.dir}/conf/tmbo-recordalcolumns-conf.xml
eu.ohim.fsp.tmbo.tmbo-appeal-conf=${fsp.services.config.dir}/conf/tmbo-appeal-conf.xml
eu.ohim.fsp.tmbo.tmbo-appealcolumns-conf=${fsp.services.config.dir}/conf/tmbo-appealcolumns-conf.xml
eu.ohim.fsp.tmbo.tmbo-opposition-conf=${fsp.services.config.dir}/conf/tmbo-opposition-conf.xml
eu.ohim.fsp.tmbo.tmbo-oppositioncolumns-conf=${fsp.services.config.dir}/conf/tmbo-oppositioncolumns-conf.xml
eu.ohim.fsp.tmbo.tmbo-design-conf=${fsp.services.config.dir}/conf/tmbo-design-conf.xml
eu.ohim.fsp.tmbo.tmbo-designcolumns-conf=${fsp.services.config.dir}/conf/tmbo-designcolumns-conf.xml
eu.ohim.fsp.tmbo.tmbo-home-design-conf=${fsp.services.config.dir}/conf/tmbo-home-design-conf.xml
eu.ohim.fsp.tmbo.tmbo-opposition-design-conf=${fsp.services.config.dir}/conf/tmbo-opposition-design-conf.xml
eu.ohim.fsp.tmbo.tmbo-opposition-design-columns-conf=${fsp.services.config.dir}/conf/tmbo-opposition-design-columns-conf.xml
eu.ohim.fsp.tmbo.tmbo-recordal-design-conf=${fsp.services.config.dir}/conf/tmbo-recordal-design-conf.xml
eu.ohim.fsp.tmbo.tmbo-recordal-design-columns-conf=${fsp.services.config.dir}/conf/tmbo-recordal-design-columns-conf.xml
eu.ohim.fsp.tmbo.tmbo-ia-conf=${fsp.services.config.dir}/conf/tmbo-ia-conf.xml
eu.ohim.fsp.tmbo.tmbo-iacolumns-conf=${fsp.services.config.dir}/conf/tmbo-iacolumns-conf.xml
eu.ohim.fsp.tmbo.common-columns-conf=${fsp.services.config.dir}/conf/common-columns-conf.xml
eu.ohim.fsp.tmbo.tmbo-publications-conf=${fsp.services.config.dir}/conf/tmbo-publications-conf.xml
```

- Change values of two keys in your **config.properties** file, so the values match the values in old cotype file (with the current values you can't add trademark and design to some recordal dossiers because applicants are not mapped correctly).
Change values of keys `eu.ohim.fsp.tmbo.import.persons.tmrecordal` and `eu.ohim.fsp.tmbo.import.persons.dsrecordal` to:

```
eu.ohim.fsp.tmbo.import.persons.tmrecordal=renewal,\
transfer_of_rights,\
request_rights_in_rem,\
change_of_rights_in_rem,\
rights_in_rem_removal,\
correction_of_entry,\
request_waiver,\
request_licence,\
change_of_licence,\
removal_of_licence,\
request_for_change_details,\
request_for_limitation,\
generic

eu.ohim.fsp.tmbo.import.persons.dsrecordal=renewal,\
transfer_of_rights,\
change_of_correspondent,\
request_licence,\
request_for_change_details,\
change_of_representative,\
withdrawal,\
correction_of_entry,\
rights_in_rem_civil,\
rights_in_rem_distraint,\
rights_in_rem_register,\
generic
```

### How to Test
- Build and deploy application as usual.
- Log in and see if GUI is displayed correctly, especially buttons, texts and sections.
Note that if you want to do complete test, you should open every possible view and check that all sections are displayed correctly.


# 11.03.2022 (SISPBOIM-1291: DEVIMPBO-1278: Documentation && SISPBOIM-1293: DEVIMPBO-1364: Update contributing and quality documentation)

### Changelog
- Updated README.md for local development environment.

---
---
---

# 14.03.2022 (SISPBOIM-1292: DEVIMPBO-1366: Fix, simplify and centralize BO logs)

### Changelog
Implemented changes from commit **1b9fdae2** on branch **develop/3.0.0.**.
Main change is that batch jobs now write logs to *batchprocesses.log* file instead of *fsp-tm-bo.log* file.
To use this feature you will need to make some changes in your Wildfly configuration file.
Note that if you want to keep logging as it is, no changes to Wildfly configuration file is needed and you can skip **Deploy instructions** section.

### Deploy instructions
1. Locate your WIldfly configuration file (**standalone.xml**). This file is located in folder *WILDFLY_HOME/standalone/configuration*. The full path (and file name) is in your Wildfly startup script: **-c** parameter (usually named *standalone.xml* or *standalone-full.xml*).
Stop Wildfly and make following changes to your **standalone.xml** file:

- Add new tag to tag `<server xmlns="urn:jboss:domain:4.2">`, after tag `<system-properties>` :
```
<paths>
  <path name="fsp.bo.logdir" path="${fsp.tmbo.log.path}"/>
</paths>
```

- Add new `periodic-rotating-file-handler` tag to tag `<subsystem xmlns="urn:jboss:domain:logging:3.0">`: 

```
<periodic-rotating-file-handler name="BOBatchProcesses" autoflush="true">
  <formatter>
    <named-formatter name="PATTERN"/>
  </formatter>
  <file relative-to="fsp.bo.logdir" path="batchprocesses.log"/>
  <suffix value=".yyyy-MM-dd"/>
  <append value="true"/>
</periodic-rotating-file-handler>    
 ```

- Remove `periodic-rotating-file-handler` tag with attribute `name=PeriodWipoNotification` at tag `<subsystem xmlns="urn:jboss:domain:logging:3.0">`:
```
<periodic-rotating-file-handler name="PeriodWipoNotification" autoflush="true">
  ...
</periodic-rotating-file-handler>
```

- Remove `<logger category="eu.ohim.fsp.bo.TimeLimitTrackingIRBatchService">` tag at tag `<subsystem xmlns="urn:jboss:domain:logging:3.0">`:
```
<logger category="eu.ohim.fsp.bo.TimeLimitTrackingIRBatchService">
  <level name="INFO"/>
  <handlers>
    <handler name="PeriodWipoNotification"/>
   </handlers>
</logger>
```

- Add new *logger* tag for every batch job to tag `<subsystem xmlns="urn:jboss:domain:logging:3.0">`:
```
<logger category="eu.ohim.fsp.bo.AboutExpireBatchService">
    <level name="INFO"/>
    <handlers>
        <handler name="BOBatchProcesses"/>
    </handlers>
</logger>
<logger category="eu.ohim.fsp.bo.AutomaticChangeStatusDesignRecordalPublications">
    <level name="INFO"/>
    <handlers>
        <handler name="BOBatchProcesses"/>
    </handlers>
</logger>
<logger category="eu.ohim.fsp.bo.AutomaticChangeStatusRecordalPublications">
    <level name="INFO"/>
    <handlers>
        <handler name="BOBatchProcesses"/>
    </handlers>
</logger>
<logger category="eu.ohim.fsp.bo.AutomaticChangeStatusToExpire">
    <level name="INFO"/>
    <handlers>
        <handler name="BOBatchProcesses"/>
    </handlers>
</logger>
<logger category="eu.ohim.fsp.bo.CreateHistoryEntryLicenceRighInRemExpiredBatchService">
    <level name="INFO"/>
    <handlers>
        <handler name="BOBatchProcesses"/>
    </handlers>
</logger>
<logger category="eu.ohim.fsp.bo.NationalTMApplicationForRegistration">
    <level name="INFO"/>
    <handlers>
        <handler name="BOBatchProcesses"/>
    </handlers>
</logger>
<logger category="eu.ohim.fsp.bo.NationalTMBatchService">
    <level name="INFO"/>
    <handlers>
        <handler name="BOBatchProcesses"/>
    </handlers>
</logger>
<logger category="eu.ohim.fsp.bo.NationalTMForDependency">
    <level name="INFO"/>
    <handlers>
        <handler name="BOBatchProcesses"/>
    </handlers>
</logger>
<logger category="eu.ohim.fsp.bo.NotificationAtExpirationBatchService">
    <level name="INFO"/>
    <handlers>
        <handler name="BOBatchProcesses"/>
    </handlers>
</logger>
<logger category="eu.ohim.fsp.bo.NotificationDsAtExpirationBatchService">
    <level name="INFO"/>
    <handlers>
        <handler name="BOBatchProcesses"/>
    </handlers>
</logger>
<logger category="eu.ohim.fsp.bo.TimeLimitTrackingIRBatchService">
    <level name="INFO"/>
    <handlers>
        <handler name="BOBatchProcesses"/>
    </handlers>
</logger>
<logger category="eu.ohim.fsp.bo.TrangpBatchService">
    <level name="INFO"/>
    <handlers>
        <handler name="BOBatchProcesses"/>
    </handlers>
</logger>
<logger category="eu.ohim.fsp.bo.TranopBatchService">
    <level name="INFO"/>
    <handlers>
        <handler name="BOBatchProcesses"/>
    </handlers>
</logger>
<logger category="eu.ohim.fsp.bo.WIPOFileBatchService">
    <level name="INFO"/>
    <handlers>
        <handler name="BOBatchProcesses"/>
    </handlers>
</logger>
<logger category="eu.ohim.fsp.bo.util.BatchServiceHelper">
  <level name="INFO"/>
  <handlers>
    <handler name="BOBatchProcesses"/>
  </handlers>
</logger>            
```

- Add new *logger* tag for *org.dozer* to tag `<subsystem xmlns="urn:jboss:domain:logging:3.0">` (if it does not exists yet):
```
<logger category="org.dozer">
  <level name="ERROR"/>
</logger>
```

You can see changes made to *standalone.xml* with git diff in file **/conf/releases/Default/src/main/resources/standalone/standalone-full.xml**

2. Add new configuration to Wildfly startup script:
```
-Dfsp.tmbo.log.path=$YOUR_LOG_FOLDER_PATH
```
This value should point to your logs folder (other BO logs are written to folder define with setting `<logging.tmbo.path>` in main *pom.xml*)


### How to Test
- Build and deploy application as usual.
- Check that *eu.ohim.fsp* logs are, as before, written in file *fsp-tm-bo.log* (located in folder defined with setting `<logging.tmbo.path>` in main *pom.xml*).
- If you enabled batch logs as described in **Deploy instructions** section, check that there is file with name *batchprocesses.log* in folder defined with *-Dfsp.tmbo.log.path* configuration in Wildfly startup script.
This file will probably be empty and populated when first batch job is executed. All batch job logs should be written to this file.


# 15.03.2022 (SISPBOIM-1294: DEVIMPBO-1362: Remove pilot offices technical configuration)

### Changelog
Removed Finland and Poland resources and tests (the ones that were not removed already).  


# 16.03.2022 (SISPBOIM-1251: DEVIMPBO-1372: Drools refactoring)

### Changelog
Implemented changes as described in *https://code.tmdn.org/sp/sp-backoffice/wikis/release-3.0.0/devimpbo-1372*.

### Deploy instructions

- Delete the following entries from your **config.properties** file (references to old drl files and drl settings) :
```
eu.ohim.fsp.core.rules.appeal.drl=${fsp.services.config.dir}/drl/common/appeal/appeal.drl
eu.ohim.fsp.core.rules.appeal-representative.drl=${fsp.services.config.dir}/drl/common/appeal/appeal-representative.drl
eu.ohim.fsp.core.rules.bo-functions.drl=${fsp.services.config.dir}/drl/bo-functions.drl
eu.ohim.fsp.core.rules.ds.drl=${fsp.services.config.dir}/drl/design/ds.drl

eu.ohim.fsp.core.rules.ds_external_renewal_fee_list=bo-functions.drl,ds-recordal-external-renewal-fee.drl
eu.ohim.fsp.core.rules.ds-appeal-fee.drl=${fsp.services.config.dir}/drl/designfees/ds-appeal-fee.drl
eu.ohim.fsp.core.rules.ds-applicant.drl=${fsp.services.config.dir}/drl/design/ds-applicant.drl
eu.ohim.fsp.core.rules.ds-designer.drl=${fsp.services.config.dir}/drl/design/ds-designer.drl
eu.ohim.fsp.core.rules.ds-fee.drl=${fsp.services.config.dir}/drl/designfees/ds-fee.drl
eu.ohim.fsp.core.rules.ds-ir-fee.drl=${fsp.services.config.dir}/drl/designfees/ds-ir-fee.drl
eu.ohim.fsp.core.rules.ds-legacy-rule.drl=${fsp.services.config.dir}/drl/legacy/ds-legacy-rule.drl
eu.ohim.fsp.core.rules.ds-opposition.drl=${fsp.services.config.dir}/drl/design/opposition/ds-opposition.drl
eu.ohim.fsp.core.rules.ds-opposition-fee.drl=${fsp.services.config.dir}/drl/designfees/ds-opposition-fee.drl
eu.ohim.fsp.core.rules.ds-opposition-ground.drl=${fsp.services.config.dir}/drl/design/opposition/ds-opposition-ground.drl
eu.ohim.fsp.core.rules.ds-opposition-person.drl=${fsp.services.config.dir}/drl/design/opposition/ds-opposition-person.drl
eu.ohim.fsp.core.rules.ds-recordal.drl=${fsp.services.config.dir}/drl/design/recordal/ds-recordal.drl
eu.ohim.fsp.core.rules.ds-recordal-coe-fee.drl=${fsp.services.config.dir}/drl/designfees/ds-recordal-coe-fee.drl
eu.ohim.fsp.core.rules.ds-recordal-external-renewal-fee.drl=${fsp.services.config.dir}/drl/designfees/ds-recordal-external-renewal-fee.drl
eu.ohim.fsp.core.rules.ds-recordal-fee.drl=${fsp.services.config.dir}/drl/designfees/ds-recordal-fee.drl
eu.ohim.fsp.core.rules.ds-recordal-person.drl=${fsp.services.config.dir}/drl/design/recordal/ds-recordal-person.drl
eu.ohim.fsp.core.rules.ds-recordal-renewal-fee.drl=${fsp.services.config.dir}/drl/designfees/ds-recordal-renewal-fee.drl
eu.ohim.fsp.core.rules.ds-recordal-reqforchange-fee.drl=${fsp.services.config.dir}/drl/designfees/ds-recordal-reqforchange-fee.drl
eu.ohim.fsp.core.rules.ds-representative.drl=${fsp.services.config.dir}/drl/design/ds-representative.drl
eu.ohim.fsp.core.rules.ia.drl=${fsp.services.config.dir}/drl/trademark/ia/ia.drl
eu.ohim.fsp.core.rules.ia-applicant.drl=${fsp.services.config.dir}/drl/trademark/ia/ia-applicant.drl
eu.ohim.fsp.core.rules.letter-sent-idtemplate.drl=${fsp.services.config.dir}/drl/task/letter-sent-idtemplate.drl
eu.ohim.fsp.core.rules.senders-letter-task.drl=${fsp.services.config.dir}/drl/workflow/senders-letter-task.drl
eu.ohim.fsp.core.rules.status-about-expire.drl=${fsp.services.config.dir}/drl/task/status-about-expire.drl
eu.ohim.fsp.core.rules.tm.drl=${fsp.services.config.dir}/drl/trademark/tm.drl
eu.ohim.fsp.core.rules.tm-appeal-fee.drl=${fsp.services.config.dir}/drl/fees/tm-appeal-fee.drl
eu.ohim.fsp.core.rules.tm-applicant.drl=${fsp.services.config.dir}/drl/trademark/tm-applicant.drl

eu.ohim.fsp.core.rules.tmbo_appeal_design_fee_list=bo-functions.drl,ds-appeal-fee.drl
eu.ohim.fsp.core.rules.tmbo_appeal_fee_list=bo-functions.drl,tm-appeal-fee.drl
eu.ohim.fsp.core.rules.tmbo_design_fee_list=bo-functions.drl,ds-fee.drl
eu.ohim.fsp.core.rules.tmbo_ds_ir_fee_list=bo-functions.drl,ds-ir-fee.drl
eu.ohim.fsp.core.rules.tmbo_ds_opposition_fee_list=bo-functions.drl,ds-opposition-fee.drl
eu.ohim.fsp.core.rules.tmbo_ds_rec_request_fee_list=bo-functions.drl,ds-recordal-reqforchange-fee.drl
eu.ohim.fsp.core.rules.tmbo_ds_recordal_coe_fee_list=bo-functions.drl,ds-recordal-coe-fee.drl
eu.ohim.fsp.core.rules.tmbo_ds_recordal_fee_list=bo-functions.drl,ds-recordal-fee.drl
eu.ohim.fsp.core.rules.tmbo_ds_renewal_fee_list=bo-functions.drl,ds-recordal-renewal-fee.drl
eu.ohim.fsp.core.rules.tmbo_ia_fee_list=bo-functions.drl,tm-ia-fee.drl
eu.ohim.fsp.core.rules.tmbo_ir_fee_list=bo-functions.drl,tm-ir-fee.drl
eu.ohim.fsp.core.rules.tmbo_opposition_fee_list=bo-functions.drl,tm-opposition-fee.drl
eu.ohim.fsp.core.rules.tmbo_rec_request_fee_list=bo-functions.drl,tm-recordal-reqforchange-fee.drl
eu.ohim.fsp.core.rules.tmbo_recordal_detail_fee_list=bo-functions.drl,tm-recordal-detail-fee.drl
eu.ohim.fsp.core.rules.tmbo_recordal_fee_list=bo-functions.drl,tm-recordal-fee.drl
eu.ohim.fsp.core.rules.tmbo_renewal_fee_list=bo-functions.drl,tm-recordal-renewal-fee.drl
eu.ohim.fsp.core.rules.tmbo_trademark_fee_list=bo-functions.drl,tm-fee.drl

eu.ohim.fsp.core.rules.tmbo_appeal_list=bo-functions.drl,appeal.drl,appeal-representative.drl
eu.ohim.fsp.core.rules.tmbo_ia_list=bo-functions.drl,ia-applicant.drl,ia.drl
eu.ohim.fsp.core.rules.tmbo_opposition_list=bo-functions.drl,tm-opposition-goodsservice.drl,tm-opposition-opponent-representative.drl,tm-opposition-opponent.drl,tm-opposition.drl
eu.ohim.fsp.core.rules.tmbo_publication_list=bo-functions.drl,tm-publication.drl
eu.ohim.fsp.core.rules.tmbo_recordal_list=bo-functions.drl,tm-recordal-applicant.drl,tm-recordal-goodsservice.drl,tm-recordal-representative.drl,tm-recordal.drl
eu.ohim.fsp.core.rules.ds_design_list=bo-functions.drl,ds.drl,ds-applicant.drl,ds-representative.drl,ds-designer.drl
eu.ohim.fsp.core.rules.tmbo_trademark_list=bo-functions.drl,tm.drl,tm-claim.drl,tm-applicant.drl,tm-representative.drl,tm-goodsservice.drl
eu.ohim.fsp.core.rules.ds_opposition_list=bo-functions.drl,ds-opposition.drl,ds-opposition-person.drl,ds-opposition-ground.drl
eu.ohim.fsp.core.rules.ds_recordal_list=bo-functions.drl,ds-recordal.drl,ds-recordal-person.drl
eu.ohim.fsp.core.rules.ds_legacy_list=bo-functions.drl,ds-legacy-rule.drl
eu.ohim.fsp.core.rules.validate_about_expire=bo-functions.drl,status-about-expire.drl
eu.ohim.fsp.core.rules.validate_task=bo-functions.drl,letter-sent-idtemplate.drl
eu.ohim.fsp.core.rules.senders_letter_task=bo-functions.drl,senders-letter-task.drl

eu.ohim.fsp.core.rules.tm-claim.drl=${fsp.services.config.dir}/drl/trademark/tm-claim.drl
eu.ohim.fsp.core.rules.tm-fee.drl=${fsp.services.config.dir}/drl/fees/tm-fee.drl
eu.ohim.fsp.core.rules.tm-goodsservice.drl=${fsp.services.config.dir}/drl/trademark/tm-goodsservice.drl
eu.ohim.fsp.core.rules.tm-ia-fee.drl=${fsp.services.config.dir}/drl/fees/tm-ia-fee.drl
eu.ohim.fsp.core.rules.tm-ir-fee.drl=${fsp.services.config.dir}/drl/fees/tm-ir-fee.drl
eu.ohim.fsp.core.rules.tm-opposition.drl=${fsp.services.config.dir}/drl/trademark/opposition/tm-opposition.drl
eu.ohim.fsp.core.rules.tm-opposition-fee.drl=${fsp.services.config.dir}/drl/fees/tm-opposition-fee.drl
eu.ohim.fsp.core.rules.tm-opposition-goodsservice.drl=${fsp.services.config.dir}/drl/trademark/opposition/tm-opposition-goodsservice.drl
eu.ohim.fsp.core.rules.tm-opposition-opponent.drl=${fsp.services.config.dir}/drl/trademark/opposition/tm-opposition-opponent.drl
eu.ohim.fsp.core.rules.tm-opposition-opponent-representative.drl=${fsp.services.config.dir}/drl/trademark/opposition/tm-opposition-opponent-representative.drl
eu.ohim.fsp.core.rules.tm-publication.drl=${fsp.services.config.dir}/drl/common/publication/tm-publication.drl
eu.ohim.fsp.core.rules.tm-recordal.drl=${fsp.services.config.dir}/drl/trademark/recordal/tm-recordal.drl
eu.ohim.fsp.core.rules.tm-recordal-applicant.drl=${fsp.services.config.dir}/drl/trademark/recordal/tm-recordal-applicant.drl
eu.ohim.fsp.core.rules.tm-recordal-detail-fee.drl=${fsp.services.config.dir}/drl/fees/tm-recordal-detail-fee.drl
eu.ohim.fsp.core.rules.tm-recordal-fee.drl=${fsp.services.config.dir}/drl/fees/tm-recordal-fee.drl
eu.ohim.fsp.core.rules.tm-recordal-goodsservice.drl=${fsp.services.config.dir}/drl/trademark/recordal/tm-recordal-goodsservice.drl
eu.ohim.fsp.core.rules.tm-recordal-renewal-fee.drl=${fsp.services.config.dir}/drl/fees/tm-recordal-renewal-fee.drl
eu.ohim.fsp.core.rules.tm-recordal-representative.drl=${fsp.services.config.dir}/drl/trademark/recordal/tm-recordal-representative.drl
eu.ohim.fsp.core.rules.tm-recordal-reqforchange-fee.drl=${fsp.services.config.dir}/drl/fees/tm-recordal-reqforchange-fee.drl
eu.ohim.fsp.core.rules.tm-representative.drl=${fsp.services.config.dir}/drl/trademark/tm-representative.drl

```

- Add new entry to your  **config.properties** file for drl folder location which should contain drl files.
These files are the same drl files as before this update, but they are all in one folder, and they are generated on location **/share/drl** (old drl files were located on the same location but with folder structure):

```
eu.ohim.fsp.core.rules.folder.path=${fsp.services.config.dir}/drl
```

- Add new entries to your  **config.properties** for new rules and fees settings:

```
eu.ohim.fsp.core.rules.list.trademark=bo-functions,tm,tm-claim,tm-applicant,tm-representative,tm-goodsservice
eu.ohim.fsp.core.rules.list.opposition=bo-functions,tm-opposition-goodsservice,tm-opposition-opponent-representative,tm-opposition-opponent,tm-opposition,tm-opposition-ground
eu.ohim.fsp.core.rules.list.recordal=bo-functions,tm-recordal-applicant,tm-recordal-goodsservice,tm-recordal-representative,tm-recordal
eu.ohim.fsp.core.rules.list.ia=bo-functions,ia-applicant,ia
eu.ohim.fsp.core.rules.list.publication=bo-functions,tm-publication
eu.ohim.fsp.core.rules.list.appeal=bo-functions,appeal,appeal-representative
eu.ohim.fsp.core.rules.list.ds.design=bo-functions,ds,ds-applicant,ds-representative,ds-designer
eu.ohim.fsp.core.rules.list.ds.opposition=bo-functions,ds-opposition,ds-opposition-person,ds-opposition-ground
eu.ohim.fsp.core.rules.list.ds.recordal=bo-functions,ds-recordal,ds-recordal-person
eu.ohim.fsp.core.rules.list.ds.legacy=bo-functions,ds-legacy-rule

eu.ohim.fsp.core.rules.list.validate.about.expire=bo-functions,status-about-expire
eu.ohim.fsp.core.rules.list.validate.task=bo-functions,letter-sent-idtemplate

eu.ohim.fsp.core.rules.list.senders.letter.task=bo-functions,senders-letter-task

eu.ohim.fsp.core.rules.list.task.deferment.publication=bo-functions,deferment-publication
eu.ohim.fsp.core.rules.list.task.fee.status.type.basic.publication=bo-functions,fee-status-type-basic
eu.ohim.fsp.core.rules.list.task.gs.accepted=bo-functions,gs-accepted
eu.ohim.fsp.core.rules.list.task.letter.sent.id.template=bo-functions,letter-sent-idtemplate
eu.ohim.fsp.core.rules.list.task.locarno.filled=bo-functions,locarno-filled
eu.ohim.fsp.core.rules.list.task.publication.type.registration=bo-functions,publication-type-registration
eu.ohim.fsp.core.rules.list.task.status.about.expire=bo-functions,status-about-expire

eu.ohim.fsp.core.rules.list.fee.trademark=bo-functions,tm-fee
eu.ohim.fsp.core.rules.list.fee.opposition=bo-functions,tm-opposition-fee
eu.ohim.fsp.core.rules.list.fee.ia=bo-functions,tm-ia-fee
eu.ohim.fsp.core.rules.list.fee.ir=bo-functions,tm-ir-fee
eu.ohim.fsp.core.rules.list.fee.appeal=bo-functions,tm-appeal-fee
eu.ohim.fsp.core.rules.list.fee.recordal=bo-functions,tm-recordal-fee
eu.ohim.fsp.core.rules.list.fee.renewal=bo-functions,tm-recordal-renewal-fee
eu.ohim.fsp.core.rules.list.fee.rec.request=bo-functions,tm-recordal-reqforchange-fee
eu.ohim.fsp.core.rules.list.fee.recordal.detail=bo-functions,tm-recordal-detail-fee
eu.ohim.fsp.core.rules.list.fee.design=bo-functions,ds-fee
eu.ohim.fsp.core.rules.list.fee.ds.opposition=bo-functions,ds-opposition-fee
eu.ohim.fsp.core.rules.list.fee.ds.ir=bo-functions,ds-ir-fee
eu.ohim.fsp.core.rules.list.fee.appeal.design=bo-functions,ds-appeal-fee
eu.ohim.fsp.core.rules.list.fee.ds.renewal=bo-functions,ds-recordal-renewal-fee
eu.ohim.fsp.core.rules.list.fee.ds.recordal=bo-functions,ds-recordal-fee
eu.ohim.fsp.core.rules.list.fee.ds.recordal.coe=bo-functions,ds-recordal-coe-fee
eu.ohim.fsp.core.rules.list.fee.ds.rec.request=bo-functions,ds-recordal-reqforchange-fee
eu.ohim.fsp.core.rules.list.fee.ds.external.renewal=bo-functions,ds-recordal-external-renewal-fee

```

### How to Test
- Build and deploy application as usual.
- Create a new dossier, save it, and check that business rules are triggered (for example if you don't add applicant to TM dossier, you should get business rule error).
- Check that fees are calculated correctly and recalculate fee button works.

# 21.03.2022 (SISPBOIM-1256: DEVIMPBO-1379: Revamped INBOX user interface)

### Changelog
Implemented changes as described in *https://code.tmdn.org/sp/sp-backoffice/wikis/release-3.0.0/devimpbo-1379*.
Note that "Jump to page" section is not added because it doesn't work with this patch, it is the same for "Create recordal" button. Button "Expire dossiers" and select column is also not added because they were not visible before.  

### Deploy instructions

Some texts for English language were changed in file **i18n.es6.js**. Please check changed texts and if necessary modify them for Slovenian language:

| Changed text                 | Old value                                             | New value                                            |
|:-----------------------------|:------------------------------------------------------|:-----------------------------------------------------|
| messages/unsavedSearch       | Are you sure you would like to delete unsaved search? | Are you sure you want to delete unsaved search tabs? |
| messages/deleteAllUnsaved    | Unsaved searched                                      | Delete not saved tabs                                |
| inbox/dossierColumns/expired | Select All                                            | Select/Unselect All                                  |
| inbox/expireSelected         | Expire selected dossiers                              | Expire dossiers                                      |


### How to Test
- Build and deploy application as usual.
- Open application and check that GUI shows correctly and changes described in *https://code.tmdn.org/sp/sp-backoffice/wikis/release-3.0.0/devimpbo-1379* are applied.

---
---
---

# 30.03.2022 (SISPBOIM-1257: DEVIMPBO-1380: Revamped VEFI user interface)

### Changelog
Implemented changes as described in *https://code.tmdn.org/sp/sp-backoffice/wikis/release-3.0.0/devimpbo-1380*.
Also added implementation to create related dossiers directly from the TM/DS dossier. 

### Deploy instructions
Add new texts and provide translations to your **i18n.es6.js** file under app/btons/:

```
createRecordal: 'Create Recordal',
createOpposition: 'Create Opposition',
createAppeal: 'Create Appeal',
moreActions: 'More actions',
previousDossier: 'Previous Dossier',
nextDossier: 'Next Dossier'
```

### How to Test
- Build and deploy application as usual.
- Open application and check that GUI shows correctly and changes described in *https://code.tmdn.org/sp/sp-backoffice/wikis/release-3.0.0/devimpbo-1380* are applied.
- Check that you can create new related dossier from TM/DS dossier.


# 08.04.2022 (SISPBOIM-1252: DEVIMPBO-1374: Fees refactoring)

### Changelog
- Implemented changes as described in *https://code.tmdn.org/sp/sp-backoffice/wikis/release-3.0.0/devimpbo-1374*.
- Added role **admin** to **SISPBO_ADMINISTRATOR** group in file */conf/releases/Default/src/main/resources/security/permissions.properties*. 
With this role you can access newly added admin endpoints for fee listing.
The following table shows all currently implemented admin endpoints:

| Endpoint                                                         | Description                                                | Role        |
|:-----------------------------------------------------------------|:-----------------------------------------------------------|:------------|
| `http://localhost:8080/sp-bo-ui-backend/admin/index`             | Reindex elasticsearch index (both dossiers and tasks).     | admin_index |
| `http://localhost:8080/sp-bo-ui-backend/admin/indexDossiers`     | Reindex dossiers in elasticsearch index                    | admin_index |
| `http://localhost:8080/sp-bo-ui-backend/admin/indexTasks`        | Reindex tasks in elasticsearch index                       | admin_index |
| `http://localhost:8080/sp-bo-ui-backend/admin/rules/reload`      | Reload all business rules                                  | admin       |
| `http://localhost:8080/sp-bo-ui-backend/admin/rules/catalog`     | List all rules (except the ones used for fee calculations) | admin       |
| `http://localhost:8080/sp-bo-ui-backend/admin/fees/calculations` | List all rules used for fee calculations                   | admin       |
| `http://localhost:8080/sp-bo-ui-backend/admin/fees/trademark`    | List all fees for trademark related dossiers               | admin       |  
| `http://localhost:8080/sp-bo-ui-backend/admin/fees/design`       | List all fees for design related dossier                   | admin       |



### Deploy instructions

- Add new entry to your  **config.properties** file for fee config folder location which should contain yml config files.
These files contain the same fee information as xml files before this update, and they are generated on location **/share/conf/fee** :

```
general.fees.folder.path=${fsp.services.config.dir}/conf/fee
```

- Delete fee configuration entries from your **config.properties** file (entries that starts with *general.fees-configuration-* and they point to xml files with fee information) :

```
general.fees-configuration-trademark=${fsp.services.config.dir}/conf/fee/fees-configuration-trademark.xml
general.fees-configuration-opposition=${fsp.services.config.dir}/conf/fee/fees-configuration-opposition.xml
general.fees-configuration-rec-coe=${fsp.services.config.dir}/conf/fee/fees-configuration-rec-correctionofentry.xml
general.fees-configuration-rec-license=${fsp.services.config.dir}/conf/fee/fees-configuration-rec-license.xml
general.fees-configuration-rec-renewal=${fsp.services.config.dir}/conf/fee/fees-configuration-rec-renewal.xml
general.fees-configuration-rec-rfcd=${fsp.services.config.dir}/conf/fee/fees-configuration-rec-requestforchangedetails.xml
general.fees-configuration-rec-rfl=${fsp.services.config.dir}/conf/fee/fees-configuration-rec-requestforlimitation.xml
general.fees-configuration-rec-remcvl=${fsp.services.config.dir}/conf/fee/fees-configuration-rec-rightsinremcivil.xml
general.fees-configuration-rec-remreg=${fsp.services.config.dir}/conf/fee/fees-configuration-rec-rightsinremregister.xml
general.fees-configuration-rec-remdis=${fsp.services.config.dir}/conf/fee/fees-configuration-rec-rigthsinremdistraint.xml
general.fees-configuration-rec-tor=${fsp.services.config.dir}/conf/fee/fees-configuration-rec-transferofrights.xml
general.fees-configuration-rec-withdrawal=${fsp.services.config.dir}/conf/fee/fees-configuration-rec-withdrawal.xml
general.fees-configuration-rec-chrepr=${fsp.services.config.dir}/conf/fee/fees-configuration-rec-changeofrepresentative.xml
general.fees-configuration-ia=${fsp.services.config.dir}/conf/fee/fees-configuration-ia.xml
general.fees-configuration-appeal=${fsp.services.config.dir}/conf/fee/fees-configuration-appeal.xml
general.fees-configuration-ir=${fsp.services.config.dir}/conf/fee/fees-configuration-ir.xml
general.fees-configuration-design=${fsp.services.config.dir}/conf/designfee/fees-configuration-design.xml
general.fees-configuration-ds-opposition=${fsp.services.config.dir}/conf/designfee/fees-configuration-ds-opposition.xml
general.fees-configuration-ds-rec-coe=${fsp.services.config.dir}/conf/designfee/fees-configuration-ds-correction-entry.xml
general.fees-configuration-ds-rec-license=${fsp.services.config.dir}/conf/designfee/fees-configuration-ds-license.xml
general.fees-configuration-ds-rec-renewal=${fsp.services.config.dir}/conf/designfee/fees-configuration-ds-renewal.xml
general.fees-configuration-ds-rec-rfcd=${fsp.services.config.dir}/conf/designfee/fees-configuration-ds-requestforchange.xml
general.fees-configuration-ds-rec-rfl=${fsp.services.config.dir}/conf/designfee/fees-configuration-ds-requestforlimitation.xml
general.fees-configuration-ds-rec-remcvl=${fsp.services.config.dir}/conf/designfee/fees-configuration-ds-rightsinremcivil.xml
general.fees-configuration-ds-rec-remreg=${fsp.services.config.dir}/conf/designfee/fees-configuration-ds-rightsinremregister.xml
general.fees-configuration-ds-rec-remdis=${fsp.services.config.dir}/conf/designfee/fees-configuration-ds-rigthsinremdistraint.xml
general.fees-configuration-ds-rec-tor=${fsp.services.config.dir}/conf/designfee/fees-configuration-ds-transferofrights.xml
general.fees-configuration-ds-rec-withdrawal=${fsp.services.config.dir}/conf/designfee/fees-configuration-ds-withdrawal.xml
general.fees-configuration-ds-rec-chrepr=${fsp.services.config.dir}/conf/designfee/fees-configuration-ds-changeofrepresentative.xml
general.fees-configuration-ds-appeal=${fsp.services.config.dir}/conf/designfee/fees-configuration-ds-appeal.xml
general.fees-configuration-ds-ir=${fsp.services.config.dir}/conf/designfee/fees-configuration-ds-ir.xml
general.fees-configuration-ds-rec-generic=${fsp.services.config.dir}/conf/designfee/fees-configuration-ds-genericrec.xml
general.fees-configuration-ds-rec-manage-designer=${fsp.services.config.dir}/conf/designfee/fees-configuration-ds-manage-designer.xml
general.fees-configuration-ds-rec-waiver=${fsp.services.config.dir}/conf/designfee/fees-configuration-ds-waiver.xml
general.fees-configuration-rec-generic=${fsp.services.config.dir}/conf/fee/fees-configuration-rec-generic.xml
general.fees-configuration-rec-waiver=${fsp.services.config.dir}/conf/fee/fees-configuration-rec-waiver.xml
```

- Delete *fee.identifier.kind* section in your **cotypes.yml** file:

```
fee.identifier.kind:
- '': ''
- TM_INDIVIDUAL_FILING_FEE: Prijavna pristojbina - Individualna znamka
- TM_COLLECTIVE_FILING_FEE: Prijavna pristojbina - Kolektivna znamka
- TM_REGISTRATION_FEE: Pristojbina za registracijo znamke
- TM_EXTRA_CLASS_REGISTRATION_FEE: Pristojbina za registracijo znamke (dodaten razred)
- TM_EXTRA_CLASS_INDIVIDUAL_FEE: Individualna znamka - prijavna pristojbina (dodaten
    razred)
- TM_EXTRA_CLASS_COLLECTIVE_FEE: Kolektivna znamka - prijavna pristojbina (dodaten
    razred)
- TM_REQUEST_FURTHER_PROCESSING_FEE: Pristojbina za nadaljevanje postopka po zamudi
- TM_REQUEST_RESTABLISHMENT_RIGHTS_FEE: Pristojbina za vrnitev v prejšnje stanje
- TM_CLASSIFICATION_CORRECTION_FEE: Pristojbina za popravek klasifikacije
- REQUEST_FOR_IA_FEE: Pristojbina za registracijo mednarodne znamke
- TM_OPPOSITION_TO_REGISTRATION_FEE: Pristojbina za ugovor na registracijo
- TM_RENEWAL_FEE: Pristojbina za obnovo znamke
- TM_RENEWAL_EXTRA_CLASS_FEE: Pristojbina za obnovo (dodaten razred)
- TM_RENEWAL_LATE_PAYMENT_AUTO_FEE: Pristojbina za avtomatsko zapoznelo obnovo
- TM_RENEWAL_LATE_PAYMENT_MANUAL_FEE: Pristojbina za zapoznelo obnovo znamke
- TM_REGISTERS_CHANGE_FULL_TRANSFER_FEE: Registri znamk - pristojbina za vnos spremembe
- TM_PARTIAL_TRANSFER_FEE: Pristojbina za delni prenos znamke
- TM_REGISTERS_CHANGE_LICENCE_FEE: Registri znamk - pristojbina za vnos spremembe
- TM_REGISTERS_CHANGE_REM_FEE: Registri znamk - pristojbina za vnos spremembe
- TM_REGISTERS_CHANGE_LIMITATION_FEE: Registri znamk - pristojbina za vnos spremembe
- TM_REGISTERS_CHANGE_WAIVER_FEE: Registri znamk - pristojbina za vnos spremembe
- TM_REGISTERS_CHANGE_ADDREMOVE_DESIGNER_FEE: cotypes.fees.tm_registers_change_addremove_designer_fee
- TM_REGISTERS_CHANGE_DETAILS_OWNER_FEE: Registri znamk - pristojbina za vnos spremembe
- TM_GENERIC_RECORDAL_FEE: cotypes.fees.tm_generic_recordal_fee
- TM_CERTIFICATE_FEE: pristojbina za certifikat znamke
- TM_CERTIFICATE_PRIORITY_FEE: Pristojbina za potrdilo o prednostni pravici
- TM_GENERIC_CHANGE_FEE: Pristojbina za splošno spremembo znamke
- DS_FILING_FEE: Pristojbina za vlogo modela
- DS_FILING_EXTRA_DESIGN_FEE: cotypes.fees.ds_filing_extra_design_fee
- DS_REQUEST_FURTHER_PROCESSING_FEE: Pristojbina za nadaljevanje postopka obdelave
    modela (po zamudi)
- DS_REQUEST_RESTABLISHMENT_RIGHTS_FEE: Pristojbina za ponovno vzpostavitev pravic
    modela
- DS_REGISTRATION_FEE: "Pristojbina za registracijo modela\t\t\t\t\t\t\t\t\t\t\t\t\t
    \ "
- DS_RENEWAL_FEE: Pristojbina za obnovo modela
- DS_RENEWAL_LATE_PAYMENT_AUTO_FEE: cotypes.fees.ds_renewal_late_payment_auto_fee
- DS_RENEWAL_LATE_PAYMENT_MANUAL_FEE: DS Late renewal charge_en
- DS_REGISTERS_CHANGE_FULL_TRANSFER_FEE: Registri modelov - pristojbina za vnos spremembe
- DS_PARTIAL_TRANSFER_FEE: pristojbina za delni prenos modela
- DS_REGISTERS_CHANGE_LICENCE_FEE: Registri modelov - pristojbina za vnos spremembe
- DS_REGISTERS_CHANGE_REM_FEE: Registri modelov - pristojbina za vnos spremembe
- DS_REGISTERS_CHANGE_LIMITATION_FEE: Registri modelov - pristojbina za vnos spremembe
- DS_REGISTERS_CHANGE_WAIVER_FEE: Registri modelov - pristojbina za vnos spremembe
- DS_REGISTERS_CHANGE_ADDREMOVE_DESIGNER_FEE: Registri modelov - pristojbina za vnos
    spremembe
- DS_REGISTERS_CHANGE_DETAILS_OWNER_FEE: Registri modelov - pristojbina za vnos spremembe
- DS_GENERIC_RECORDAL_FEE: Pristojbina za certifikat modela
- DS_REGISTERS_MANAGE_DESIGNER_FEE: Registri modelov - pristojbina za vnos spremembe
- DS_CERTIFICATE_FEE: Pristojbina za certifikat modela
- DS_CERTIFICATE_PRIORITY_FEE: Pristojbina za certifikat modela za prednostno zahtevo
- DS_GENERIC_CHANGE_FEE: Pristojbina za splošno spremembo modela
```


### How to Test
- Build and deploy application as usual.
- Open any dossier and check that fees are calculated correctly and recalculate fee button works.
- Create new dossier and check that workflow calculates fees correctly


# 08.04.2022 (SISPBOIM-1295: DEVIMPBO-1386: LettersTemplate folder is not deployed correctly)

### Changelog
No changes, the letterTemplate folder deploy was already fixed in SISPBOIM-1254.


# 08.04.2022 (SISPBOIM-1296: DEVIMPBO-1385: MockOpenAM users in properties file)

### Changelog
- Mock users used for testing are no longer hard coded but are read from properties file ( Implemented changes from commit **2741e13e** on branch **develop/3.0.0.**)

Note that this update does not affect production version where mock-openam.war is not used.  

### Deploy instructions

/

### How to Test
This test is possible only on test environments where mock-openam.war is used:
- Build and deploy application as usual.
- In folder **share/conf** should be file **users.properties** where are defined test users.
- Login with test users should work as before this update.

---
---
---

# 14.04.2022 (SISPBOIM-1259: DEVIMPBO-1292: ElasticSearch upgrade)

### Changelog

- Implemented changes as described in *https://code.tmdn.org/sp/sp-backoffice/-/wikis/release-3.0.0/devimpbo-1292*.

### Deploy instructions

- Download and extract the new Elasticsearch version 6.8.0 (https://www.elastic.co/downloads/past-releases/elasticsearch-6-8-0)
- Configure elasticsearch configuration file located at **$ELASTICSEARCH_HOME/config/elasticsearch.yml** by adding lines:
```
script.allowed_types: inline
script.allowed_contexts: score, update
xpack.monitoring.enabled: false
```

If you are not using default host (localhost) and port (9200, 9300), you should also modify (or add) lines:

```
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
```

Note that connection settings for Elasticsearch in BO are defined in file **share/conf/searchEngineConf.xml**

- Set memory usage to 2gb (or more) by changing lines in **$ELASTICSEARCH_HOME/config/jvm.properties** file from:
```  
-Xms1g
-Xmx1g
```
to
```
-Xms2g
-Xmx2g
```

- Run Elasticsearch with $ELASTICSEARCH_HOME/bin/elasticsearch
- Generate dossier index mapping and task index mapping by running the following script from console. Files *template_fsp_dossier.json* and *template_fsp_task.json* are located in project folder *conf/releases/Default/src/main/resources/elasticsearch/rest_template/*.
Also change IP and port if your Elasticsearch server is not running on `localhost:9200`:

```
curl -X PUT http://localhost:9200/fsp-bo-dossier -H 'Content-Type: application/json'  -d @template_fsp_dossier.json
curl -X PUT http://localhost:9200/fsp-bo-task -H 'Content-Type: application/json'  -d @template_fsp_task.json
```

By calling above URLs for making indexes, you should get response:

```
{"acknowledged":true,"shards_acknowledged":true,"index":"fsp-bo-dossier"}
{"acknowledged":true,"shards_acknowledged":true,"index":"fsp-bo-task"}
```

- Login to BO as admin and open url `http://localhost:8080/sp-bo-ui-backend/admin/index` to reindex (change localhost and port if BO is running on another server)

### How to Test

- Build and deploy application as usual.
- Login and open inbox page. You should see list of dossiers and tasks for the logged-in user.
- Try searching for dossier and check that there is no errors and results are correct. 


# 21.04.2022 (SISPBOIM-1297: DEVIMPBO-1378: Update LaunchPlan for R3)

### Changelog

- Added document */conf/releases/Default/src/main/resources/LaunchPlan/SIPO-BO-3.0.0-RC1.3-LPN-v0.2-EN.doc* for R3.
- Removed unused project */core/ConfigurationMgmt/ConfigurationServiceDao*.
- Changed some placeholders in *config.properties* file. Those placeholders are replaced by values from file */conf/build/pom.xml* when building the project.
For production deployment generated config.properties is not used, so this change should not affect the deployment. 

### Deploy instructions

/

### How to Test
- Build and deploy application as usual.
- Log in and check that reading properties work correctly (for example, create new dossier and check that WF was started).


# 21.04.2022 (SISPBOIM-1298: DEVIMPBO-1432: Harmonize administration endpoints)

### Changelog

- Added new admin endpoint for clearing config and message caches: *http://localhost:8080/sp-bo-ui-backend/admin/cache/clear*
- Admin endpoints now return message on success.
- Renamed admin endpoint */fees/calculations* to */fees/drl*. List of all implemented admin endpoints is in file **README_admin_endpoints.md** on root of project.

### Deploy instructions

/

### How to Test
- Build and deploy application as usual.
- Log in as any user and open url *http://localhost:8080/sp-bo-ui-backend/admin/cache/clear*. Cache should be cleared, and you should get message: *cache cleared correctly*.


# 22.04.2022 (SISPBOIM-1258: DEVIMPBO-1434: Frontend performance improvements)

### Changelog

- Changes described at *https://code.tmdn.org/sp/sp-backoffice/-/wikis/release-3.0.0/devimpbo-1434* were already implemented. Only change made is version change from 2.0.0 to 3.0.0.


### Deploy instructions

/

### How to Test
- Build and deploy application as usual and check that GUI shows correctly.


# 22.04.2022 (SISPBOIM-1299: DEVIMPBO-1435: Update pom files to v 3.0.0)

### Changelog

- Increased version of all projects from **2.2.0-SNAPSHOT** to **3.0.0.RELEASE**


### Deploy instructions

/

### How to Test
- Check that application builds and deploys without any error.

---
---
---

# 13.05.2022 (SISPBOIM-1280: Bug fixes v3.1)

### Changelog

See document *20200331 2 tasklist_v3v3-1_clean_RETTRO.xlsx*.  


### Deploy instructions

- CFFSPBOT-1791: Add next line for empty file error message (and change message if it is not appropriate) to your **fsp-tmbo-errors.properties**.
  Location to this file is told by key *message.resources.path* in your **config.properties**.
  When building the project this file is created on location **/share/message-resources/fsp-tmbo-errors.properties**:
```
ERROR.FILE.EMPTY=Datoteka, ki jo \u017eelite nalo\u017eiti je prazna.
```


- DEVIMPBO-1689: Add new entry to your **config.properties** for Elasticsearch maximum result (10000 is maximum for Elasticsearch):
```
max.result.window=10000
```


- DEVIMPBO-1588: New texts were added to **i18n.es6.js** file under *appeals/proceedingKind* and *oppositions/type*. Translations were copied from *cotypes.yml* file, please check if they are appropriate (texts are used in related dossiers section of dossier).


- DEVIMPBO-840: New texts were added to **i18n.es6.js** file under *searchs/messages/incompatibleSearchCriteria*, *searchs/userNames* and *searchs/groupNames*. Please check if translations are appropriate (texts are used in task advance search):

```
incompatibleSearchCriteria: 'Nezdružljivi iskalni kriteriji',
```

```
userNames: 'Uporabniško ime',
groupNames: 'Skupina uporabnikov',
```

Note that if you change translations, alphabetical order of fields may not be correct, see CFFSPBOT-1692 for more information.


- DEVIMPBO-1526: Added new entries to **cotypes.yml** file for no status text (cotypes.yml file location is defined with setting *eu.ohim.fsp.tmbo.cotypes.config.file* in your **config.properties** file). Please search for text `- No status: Brez statusa` (should be 5 occurrences) and check if translations are appropriate.
  This text is used to show dossier status in case the status is null.


- CFFSPBOT-1780:
  Modify your WIldfly configuration file (**standalone.xml**). This file is located in folder *WILDFLY_HOME/standalone/configuration*. The full path (and file name) is in your Wildfly startup script: **-c** parameter (usually named *standalone.xml* or *standalone-full.xml*).
  Locate tag `<subsystem xmlns="urn:jboss:domain:undertow:3.1">` and change attribute `header-value` of tags `<filters>/<response-header>` from *WildFly/10* to *EUIPO* and from *Undertow/1* to *ECP-program*:

from:
```
<filters>
  <response-header name="server-header" header-name="Server" header-value="WildFly/10"/>
  <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
</filters>
```

to:

```
<filters>
  <response-header name="server-header" header-name="Server" header-value="EUIPO"/>
  <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="ECP-program"/>
</filters>
```


- CFFSPBOT-1761: New texts were added to **i18n.es6.js** file *common/correspondence/readlLetter* and *common/correspondence/sendLetter*. Please provide translations (texts are used in letter pop up window and until now they were static texts in english):


- DEVIMPBO-1487: New texts were added to **i18n.es6.js** file *sections/searchs/categories/UnallocatedTasks* and *sections/searchs/taskType*. Please provide translations (texts are used in letter advance search). Note that alphabetical order may not be correct anymore after you provide translation.


### How to Test
- Build and deploy application as usual.
- Check that bugs described in document *20200331 2 tasklist_v3v3-1_clean_RETTRO.xlsx* are fixed.


# 19.05.2022 (SISPBOIM-1313: DEVIMPBO-1407: Sonar Fixes)

### Changelog

Implemented changes from commit **a88dc52a** and fixed some Sonar issues.


### Deploy instructions

/

### How to Test
- Build and deploy application as usual and check that everything works as before. 


# 19.05.2022 (SISPBOIM-1283: Performance patch v3.1)

### Changelog

No changes, improvements were already implemented with other version 3 tasks.

### Deploy instructions

/

### How to Test
/
