timekit-booking
Advanced tools
Comparing version 1.8.2 to 1.9.0
{ | ||
"name": "timekit-booking", | ||
"version": "1.8.2", | ||
"version": "1.9.0", | ||
"description": "Make a beautiful embeddable booking widget in minutes", | ||
@@ -5,0 +5,0 @@ "main": "dist/booking.min.js", |
@@ -6,3 +6,3 @@ # Booking.js by Timekit | ||
**Latest release:** [v1.8.2](https://github.com/timekit-io/booking-js/releases) | ||
**Latest release:** [v1.9.0](https://github.com/timekit-io/booking-js/releases) | ||
@@ -19,9 +19,11 @@ > Make a beautiful embeddable booking widget in minutes. | ||
You can use the widget in two different ways: | ||
Visit [Timekit.io](https://www.timekit.io) to get started! | ||
1. For non-developers: **[Hour](http://hourhq.com)** is a simple and easy to use availability and booking system made for sales & support scenarios. | ||
2. For developers: **[Timekit](http://timekit.io)** provides you with a modular and flexible API platform that allows you to integrate availability and bookings deep into your own product. | ||
You can use the widget in two different ways: | ||
*This repo is mainly for community contributions and the curious soul that would like to customize the widget.* | ||
1. For non-developers where the widget is configured in our UI admin panel. For this, you'll never need to touch any code - just follow the admin panel to get your embed code or hosted url. | ||
2. For developers where you can configure the widget on-the-fly for multi-user usage and more control. In this way, you don't need to generate a widget for each user through the Timekit admin. Timekit provides you with a modular and flexible API platform that allows you to integrate availability and bookings deep into your own product. | ||
*This repo is mainly for community contributions, docs and the curious soul that would like to customize the widget.* | ||
## Dependencies | ||
@@ -60,2 +62,3 @@ | ||
window.timekitBookingConfig = { | ||
app: 'your-app-slug-here', | ||
email: 'marty.mcfly@timekit.io', | ||
@@ -81,2 +84,3 @@ apiToken: 'bNpbFHRmrfZbtS5nEtCVl8sY5vUkOFCL', | ||
widget.init({ | ||
app: 'your-app-slug-here', | ||
email: 'marty.mcfly@timekit.io', | ||
@@ -95,5 +99,5 @@ apiToken: 'bNpbFHRmrfZbtS5nEtCVl8sY5vUkOFCL', | ||
You can either connect with a Google account (recommended) or create a plain account (you'd have to enter availability and pull out events through the API). | ||
Visit the [setup wizard here](http://booking.timekit.io/setup). | ||
Visit the [setup wizard on Timekit](http://timekit.io). | ||
The `email` and `apiToken` setting is the key part here. When you specify domain and generate credentials in the [setup wizard](http://booking.timekit.io/setup), you get a special client-token with limited access. It's only capable of hitting certain endpoints so your account stays secure when using the widget in a public browser environment. | ||
The `app`, `email` and `apiToken` settings are the key part here. When you've registered an app, created a user and generated a widget credentials, you get a special client-token with limited access. It's only capable of hitting certain endpoints so your account stays secure when using the widget in a public browser environment. | ||
@@ -110,2 +114,3 @@ ## Configuration | ||
// Required | ||
app: '', // Your Timekit registered app slug | ||
email: '', // Your Timekit user's email (used for auth) | ||
@@ -153,5 +158,7 @@ apiToken: '', // Your Timekit user's apiToken (as generated through the wizard) | ||
As a shorthand, the app slug can be set using a root-level `app` config key too. | ||
```javascript | ||
timekitConfig: { | ||
app: 'bookingjs' // Default | ||
app: 'your-app-slug-here' // Specify your app slug | ||
} | ||
@@ -158,0 +165,0 @@ ``` |
@@ -5,3 +5,3 @@ 'use strict'; | ||
* Booking.js | ||
* Version: 1.8.2 | ||
* Version: 1.9.0 | ||
* http://timekit.io | ||
@@ -59,2 +59,3 @@ * | ||
if (config.app) config.timekitConfig.app = config.app | ||
timekit.configure(config.timekitConfig); | ||
@@ -650,8 +651,9 @@ | ||
return { | ||
setConfig: setConfig, | ||
getConfig: getConfig, | ||
render: render, | ||
init: init, | ||
destroy: destroy, | ||
fullCalendar: fullCalendar | ||
setConfig: setConfig, | ||
getConfig: getConfig, | ||
render: render, | ||
init: init, | ||
destroy: destroy, | ||
fullCalendar: fullCalendar, | ||
timekitSdk: timekit | ||
}; | ||
@@ -658,0 +660,0 @@ |
@@ -7,2 +7,3 @@ 'use strict'; | ||
var mockAjax = require('./utils/mockAjax'); | ||
var interact = require('./utils/commonInteractions'); | ||
@@ -55,2 +56,34 @@ /** | ||
it('should be able to set app slug in the root-level config key', function(done) { | ||
var appName = 'my-test-app'; | ||
var config = { | ||
app: appName | ||
} | ||
var widget = createWidget(config); | ||
expect(widget.getConfig().app).toBe(appName) | ||
expect(widget.timekitSdk.getConfig().app).toBe(appName) | ||
setTimeout(function() { | ||
interact.clickEvent(); | ||
setTimeout(function() { | ||
interact.fillSubmit(); | ||
setTimeout(function() { | ||
var request = jasmine.Ajax.requests.mostRecent(); | ||
expect(request.requestHeaders['Timekit-App']).toBe(appName); | ||
done(); | ||
}, 200); | ||
}, 500); | ||
}, 500); | ||
}); | ||
}); |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
2925241
21852
384