This web application uses the AngularJS framework, Google's support for which, officially ended as of January 2022. Consequently, this project is now archived and is no longer supported. It has been replaced with a C++ rewrite as Trip Server v2, which supports all the use cases of this version (Trip Server v1) and should suffer far less from the impact of dependency changes. See the README for further details. It can be run alongside v1.
$ export TMPDIR=/tmp
$ npm install
Defining TMPDIR
is a workaround to an issue that surfaces when npm
(seemingly unnecessarily) attempts to build PhantomJS. See
Phantom installation failed TypeError: Path must be a string. Received undefined #200
Create a symbolic link within the TRIP server application to the web client application.
During developent, this should be to the trip-web-client\app
folder
containing the source files:
$ cd ./trip-server/
$ ln -s ../trip-web-client/app/
To run with the minified application bundle, the link must be to the
trip-web-client\dist\app
folder:
$ cd ./trip-server/
$ ln -s ../trip-web-client/dist/app/
See the user documentation for information on using the application.
Use webdriver-manager --help
for options. E.g. install version 2.19 of the
chromedriver.
$ ./node_modules/protractor/bin/webdriver-manager --versions.chrome 2.19 update
See Protractor Browser Support page for the latest information.
-
Safari tests are unreliable - WaitForAngular doesn't work, so the workaround is to keep adding delays at various points where the tests fail.
Enable 'Allow Remote Automation' option in Safari's 'Develop' menu.
-
Safari on iOS (iPad) fails when using websockets with self-signed certificates over HTTPS, with:
WebSocket network error: The operation couldn’t be completed. (OSStatus error -9807.)
See http://blog.httpwatch.com/2013/12/12/five-tips-for-using-self-signed-ssl-certificates-with-ios/.
Use https://letsencrypt.org to create a free certificate. Alternatively, uncomment and enable the code in
./app/js/socket-factory.js
to use polling with Safari Mobile browsers. -
angular-pagedown 0.4.4 distribution of
angular-pagedown.js
expects the angular-pagedown directives to use an attribute ofng-model
instead ofcontent
, which is inconsistent with current documentation.In both versions, the default help button of the editor does not work. It looks like a change in AngularJS has broken angular-pagedown. The workaround is set the
help
attribute to call a local function in the controller which performs the default action of opening up a link to DaringFireball's Markdown syntax page. -
When fetching a Geo Location, Safari desktop provides a time stamp based on an epoch of 01-Jan-2001 instead of 01-Jan-1970. Workaround implemented to alter the timestamp by that difference if it appears to be more than 10 years old. See Safari (Mac OS X Lion) returns wrong epochtime value to position.timestamp call
-
Safari Karma unit tests require the user to accept opening a redirect file before launching the tests. As Safari cannot be run headless anyway, this is less of an issue.