Fix IE11 support

While we don't really officially support IE, it would be nice if
_most_ non-complicated things actually worked.  Given where
transpilation is, and the fact that we already have webpack, this isn't
actually that riddiculous of an idea.

using babel was the intent with the original webpack stuff, but it turns out
babel-loader wasn't pulling in the babelrc properly when it was in the
root dir, so babel wasn't actually transpiling anything properly.

Functionally, this commit does 3 things:
1. Fixes the published Accepts header, as the ajax call confuses IE if
it doesn't have an encoding.
2. Includes core-js, to allow us to not really have to worry about
javascript features that aren't present in a given browser.
4. Includes the config to support all browsers with > 0.25% market
share, which should keep us compatible with most stuff.

Requires a patch to bmcweb for the updated charset header, as we didn't
handle that properly previously.
https://gerrit.openbmc-project.xyz/c/openbmc/bmcweb/+/24063

Tested:
Loaded the bmcweb patch.
Started the webui in IE11 with the console open.  Observed that webui
launches and logs in properly with no errors on the console.
Opened the webui in chrome to verify that nothing was broken.  Appears
working as it was before.

Measured the pre-rootfs size before and after this patchset.  It
adds 36KB to the final package size.  (404KB to 440KB).  For supporting
IE11 (and probably other browsers) I think this is well worth the cost.

Signed-off-by: Ed Tanous <ed.tanous@intel.com>
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
Change-Id: Ie402e3296deede466a7a05726ebd7a18bead0b80
5 files changed
tree: 265013c005542be82c1d1a1c39c495810a245b72
  1. app/
  2. .clang-format
  3. .gitignore
  4. config.json
  5. format-code.sh
  6. karma.conf.js
  7. LICENSE
  8. MAINTAINERS
  9. package-lock.json
  10. package.json
  11. postcss.config.js
  12. README.md
  13. sonar-project.properties
  14. webpack.config.js
README.md

OpenBMC Web User Interface

The OpenBMC WebUI is a Web-based user interface for the OpenBMC firmware stack. The WebUI uses AngularJS. Features include:

  • View system overview data such as model information and serial number
  • View and manage event logs
  • View inventory data
  • View sensor data
  • Power On/Off server operations
  • Reboot BMC
  • Manage and update BMC and Host firmware
  • IPv4 network settings
  • SoL console

Requirements

nodejs (>= 4.2.6) npm (>= 6.0.1)

Note The default installation of your Linux distro may not come with the required versions above. See the following for more information on updating:

https://docs.npmjs.com/troubleshooting/try-the-latest-stable-version-of-node https://docs.npmjs.com/troubleshooting/try-the-latest-stable-version-of-npm

Installation

npm install

Note This must be run from within the phosphor-webui git repository.

Running locally

npm run-script server

This will start a server instance and begin listening for connections at http://localhost:8080. This development server provides live reloading on code changes. NOTE: Browsing to https://<BMC> and accepting the self-signed certificate might be required to prevent your browser from blocking traffic to the BMC.

Logging in

Enter the BMC Host or BMC IP address, username, and password. The default username and password are root/0penBmc.

Note that some OpenBMC implementations use bmcweb for its backend. For security reasons, bmcweb will need to be recompiled and loaded onto the target BMC Host before the above redirect command will work. The option to turn on within bmcweb is BMCWEB_INSECURE_DISABLE_XSS_PREVENTION.