* feat(api): add a new Recurring property on Schedule
* feat(schedules): date to cron convert + recurring flag
* feat(schedules): update angularjs-datetime-picker from v1 to v2
* chore(app): use minified dependency for angularjs-datetime-picker
* chore(vendor): rollback version of angularjs-datetime-picker
* * feat(ux): replace datepicker for schedule creation/details
* feat(container-stats): add refresh rate of 1 and 3 seconds (#2493)
* fix(templates): set var to default value if no value selected (#2323)
* fix(templates): set preset to true iff var type is preset
* fix(templates): add env var value when changing type
* feat(security): shutdown instance after 5minutes if no admin account created (#2500)
* feat(security): skip admin check if --no-auth
* fix(security): change error message
* fix(vendor): use datepicker minified version
* feat(schedule-creation): replace angular-datetime-picker
* feat(schedule): parse cron to datetime
* fix(schedule): fix zero based months
* feat(settings): add the capability to enable/disable the host management features
* feat(settings): remove the validation of EnableHostManagementFeatures in frontend
* feat(api): disable schedules API when HostManagementFeatures is false + DB migration
* style(settings): update host management settings tooltip
* refacot(schedules): update DBVersion to 15
* chore(log-viewer): add the ability to use`since` parameter #1942https://github.com/portainer/portainer/issues/1942#issuecomment-430246378
* chore(log-viewer): change lineCount to 100 #1942https://github.com/portainer/portainer/issues/1942#issuecomment-430246378
* fix(log-viewer): js syntax typo for `;` and `'`
forget to lint the code, reported by codeclimate
* fix(log-viewer): use mementjs to format timestamp
1. use moment lib instead of define a function in filter.js(not the right place for this function, removed)
2. set sinceTimestamp init value to `24 hours ago`, as we just need to focus on the relative latest logs after the log-viewer loading, not all the logs(to speedup the process)
3. use moment().unix() to convert the `sinceTimestamp` to local unix timestamp(not utc)
* chore(log-viewer): add the ability to select the datetime for `since`
* chore(log-viewer): add the ability to fetch logs from specific time
* feat(back): saved data in snapshot
* feat(endpoints): adding interceptors to retrieve saved data on offline endpoints
* feat(endpoints): offline dashboard working - need tests on offline views
* refactor(endpoints): interceptors cleaning and saving/loading offline endpoints data in/from localstorage
* feat(endpoints): browsing offline endpoints
* feat(endpoints): removing all the link in offline mode - sidebar not working when switching between off and on modes w/ stateManager logic
* feat(endpoints): endpoint status detection in real time
* fix(endpoints): offline swarm endpoint are not accessible anymore
* fix(endpoints): refactor message + disable offline browsing for an endpoint when no snapshot is available for it
* fix(endpoints): adding timeout and enabling loading bar for offline requests
* fix(endpoints): trying to access a down endpoint wont remove sidebar items if it fails
* feat(endpoints): disable checkboxes on offline views for offline mode
* feat(endpoints): updating endpoint status when detecting a change
* refactor(host): moved offline status panel from engine view to new host view
* fix(endpoints): missing endpoint update on ping from home view
* fix(api): rework EndpointUpdate operation
* refactor(offline): moved endpoint status to EndpointProvider and refactor the status-changed detection
* fix(offline): moved status detection to callback on views -> prevent displaying the offline message when endpoint is back online on view change
* fix(offline): offline message is now displayed online when browsing an offline endpoint
* fix(offline): sidebar updates correctly on endpoint status change
* fix(offline): offline panel not displayed and hidden on online mode
* refactor(offline): rework of OfflineMode management
* refactor(offline): extract information-panel for offlineMode into a component
* refactor(offline): remove redundant binding of informationPanel + endpointStatusInterceptor patter as service
* refactor(interceptors): moved interceptors pattern to service pattern
* feat(stacks): prevent inspection of a stack in offline mode
* feat(host): hide devices/disk panels in offline mode
* feat(host): disable browse action in offline mode
* refactor(home): remove comments
* feat(jobs): adding the ability to run scripts on endpoints
fix(job): click on containerId in JobsDatatable redirects to container's logs
refactor(job): remove the jobs datatable settings + texts changes on JobCreation view
fix(jobs): jobs payloads are now following API rules and case
feat(jobs): adding the capability to run scripts on hosts
* feat(jobs): adding the ability to purge jobs containers
* refactor(job): apply review changes
* feat(job-creation): store image name in local storage
* feat(host): disable job exec link in non-agent Swarm setup
* feat(host): only display execute job in agent setups or standalone
* feat(job): job execution overhaul
* docs(swagger): update EndpointJob documentation
* Linting updates to api/swagger.yaml
* Security updates to api/swagger.yml
* Add api/swagger_config.json for swagger-codegen
* Add swagger_config.json packageVersion to match swagger.yml
* feat(agent): get agent's version from ping
* feat(agent): add version to api url
* feat(agent): query agent with api version
* feat(agent): rename agent api version name on state
* feat(agent): disable feature based on agent's api version
* style(agent): rename ping rest service + remove whitespaces
* style(state): remove whitespace
* style(agent): add whitespace
* fix(agent): remove check for error status 403
* refactor(agent): rename ping file name
* refactor(agent): move old services to v1 folder
* refactor(agent): turn ping service to usual pattern
* refactor(agent): change version to a global variable
* refactor(agent): move ping to version2
* refactor(agent): restore ping to use root ping
* fix(volumes): add volumeID to browse api path
* feat(volume): add upload button to volume browser