npm package: @hexagonal-devops/sncf-starship
Description: A package fixing incompatibilities between SNCF's bootstrap and Faveod designer
Author: Hexagonal Consulting
Latest version: 4.3.1-r5-p5

# SNCF Bootstrap Starship

  > A package fixing incompatibilities between SNCF's bootstrap and Faveod designer _by Hexagonal Consulting_


## **IMPORTANT NOTE**
**THIS PACKAGE FOLLOW VERSIONS OF SNCF BOOTSTRAP METIER FOR WHICH IT IS DEVELOPPED SO IT DON'T FOLLOW VERSION NAMING NOMENCALTURE. REMEMBER TO READ THE RIGHT VERSION OF THE USED PACKAGE VERSION.**


________________________________

## Installation guidelines

- Open `/js_frameworks/index` of your project designer address

- Update the JS framework which calls `bootstra_sncf_metier` sources and insert before all sources :
```
/javascripts/sncf_starship/dist/starship_initializations.js
```
> Notes : 
> - you can override this calendar initialization by creating Starship JS group from `/js_functions/index` from your designer and create the `overrideCalendarInit` function like any function which contain this package (see: "Overridable javascript" section)
> - If your project already use a source like `/javascripts/datepicker_sncf.js`, we recommend to removing it or passing that function into `Starship.overrideCalendarInit` function.

- Create `sncf-startship` dependency with the following instructions
  ```
  Package name: Sncf Starship

  SID: sncf_starship

  Version: _MAJOR.MINOR.PATCH according to the bootstrap SNCF dependency_

  Package ID: @hexagonal-devops/sncf-starship

  Licence: MIT

  Files to load:
    /javascripts/sncf_starship/dist/node_modules/dragula/dist/dragula.min.js
    /javascripts/sncf_starship/dist/node_modules/dragula/dist/dragula.min.css
    /javascripts/sncf_starship/dist/starship.min.css
    /javascripts/sncf_starship/dist/starship.min.js


  Javascripts: Select the javascript sheet used by your project
  ```
- Open `/javascript_dependencies/js_dependencies` of your generated app
- Select the same version as the Bootstrap SNCF Metier version or newer version patch to install it
- Activate dependency from the activate column from dependencies list


## Overridable Javascript
- Sources of this package contain a `/src` folder where each function can be inspected to allow an easy override.
- To override a function, create a Javascript group called `Starship` from your Faveod Designer and under this group, create a function with the same name as the source.

________________________________

## Troubleshooting
- Try to regenerate the layout which use the new SNCF Starship dependency
- Try to regenerate maveoc which use the layout which use SNCF Starship
- Check `/system_settings/public_files` address of your project and under the `/javascript` directory, you should see the `sncf_starship` folder
- Be sure to remove all folder nammed `sncf_starship` under the `/javascripts` directory to allow Faveod creating the symbolic link to sources under `/packages` folder

_____________________________

## Changelog

### v4.3.1-r5-p5
Updates coming from a migration from Rails 5 to 6. Existing projects doesn't need this update to use this package.

**Package concern:**
- Style of Tabbed Container UI

**Faveod reference concern:**
- Tabbed Container UI Starship : `/field_formatters/edit/74`
- Checkbox Starship : `/field_formatters/edit/75`

**Migration**
- To use theses new components (Tabbed Container UI or Checkbox), you must create theses components into your Faveod designer like the Starship reference.


### v4.3.1-r5-p4
This patch includes forgotten sources from previous versions to s6p_template_top_menu

**Package concern:**
- Adding s6p_top_menu_bootstrap_fix.css and s6p_top_menu_mobile.css files

**Faveod reference concern:**
- Fixing Bootstrap sources linking (restore the linking from < URL >/javascript_dependencies/js_dependencies and it symlink instead of copy / paste sources)
- Fixing translations icons paths (from /layouts/edit/81)
- Fixing brand icons paths (from /layouts/edit/78 and /layouts/edit/80)

**Migration:**
- See translation icons fixes and brand icons fixes of "Faveod reference concern" section


### v4.3.1-r5-p3
**Package concern:**
- Readme updates
- Fix `starship_initializations.js` ES6 compilation and minify it
- Serve content of `starship_initializations.js` to src/ folder
- Add `setDateOnYearChange` and `setDateOnMonthChange` functions for Datepicker 2 activable by adding options `set_date_on_year_change` and `set_date_on_month_change` to it component (cf Starship reference at `/field_formatters/edit/64` - from `edit` view)
- Fix time section integration of flatpickr for Internet Explorer 11
- Style `Chosen 2` component (multi and single) and fix its overflowing
- Style form in an error state
- Style modal
- Adapt all external Javascript files to allow triggering from modal 

**Faveod reference concern:**
- Remove `s6p_links_for_list_element` helper from the Starship reference which is exactly the same as `links_for_list_element` with update of the `list` view which were calling it.
- Add SNCF's SCSS variables - see `/style_variables/index?`
- Fix viewport meta from `<head>` and `content_tag` of `<main>` around `yield` key from `s6p template top menu`

**Migration**
- Adapt (should duplicate) your `Layout.ajaxSubView` assigned at `jQuery 1.11` framework (Starship ref url: /js_functions/edit/454)
- Assign (should duplicate) `Layout.loadAjaxSubViewBs` initialy assigned at `Bootstrap 3.3.5` to your JS framework which use this package - (this function has been updated with the Faveod Reference) - (Starship ref url: /js_functions/edit/471)
- No solution found to trigger overflowChosen for `$([data-window]` loaded in Ajax: create `Starship.initListener_chosenReady` which calls `Starship.overflowChosen();` with `on chosen:ready for [data-library=chosen2]` event option from your Designer. (Starship ref url: /js_functions/edit/485)


### v4.3.1-r5-p2
### v4.3.1-r5-p1 [DEPRECATED]
- Fix paths, fix sources calling order, fix installation guidelines
- Separate overrideCalendarInit func to it own file called before SNCF's bootstrap sources
- Add `starship_initialization.js`


### v4.3.1-r5 [DEPRECATED]

- Fix - custom_columns: allows ordering columns by drag and drop from Firefox
- Fix - DatalistHTML5 component: Allow searching without accentuation
- Fixing a Microsft's browsers bug `unreconized regular expression` by removing the `onclick` attribute of `$("nav.mastnav .mastnav-top a span.font-weight-medium")` from `s6p_template_left_menu` template
- It allows setting a manual date from `DatePicker 2` component
> - Adds the source `/javascripts/sncf_starship/dist/starship_initializations.js` just before Bootstrap SNCF Metier sources.
> - Update of `Datepicker 2` component from the Faveod Designer :
>   - Adds `manual_input` option of `Boolean` type and use of this option from the `Edit` view
- Fix - time from a DatePicker by localization


- **Deprecated: this option will be deleted in next major version:**
> - options from DatePicker 2 : `change_year`, `change_month`