{"version":3,"sources":["app/application.coffee","app/controllers/base/auth_controller.coffee","app/controllers/base/controller.coffee","app/controllers/base/non_auth_controller.coffee","app/initialize.coffee","app/lib/ValidationMachine.coffee","app/lib/ajax-helper.coffee","app/lib/alert.coffee","app/lib/auth-helper.coffee","app/lib/confirm-dialog.coffee","app/lib/confirm.coffee","app/lib/deep-model.js","app/lib/es6-promise.js","app/lib/guid-helper.coffee","app/lib/jquery.number.js","app/lib/mix/LoadMore.jade","app/lib/mix/Pagination.jade","app/lib/mix/radio-group-button.jade","app/lib/rivets.coffee","app/lib/templates/AlertDialog.jade","app/lib/templates/ConfirmDialog.jade","app/lib/underscore.mixin.deepExtend.js","app/mediator.coffee","app/models/base/collection.coffee","app/models/base/converted_deep_model.coffee","app/models/base/deep_model.coffee","app/models/base/model.coffee","app/models/base/paging_collection.coffee","app/modules/auth/change_password_view.coffee","app/modules/auth/changepw.jade","app/modules/auth/loading.jade","app/modules/auth/loading_view.coffee","app/modules/auth/login.jade","app/modules/auth/login_controller.coffee","app/modules/auth/login_view.coffee","app/modules/bookers/booker_controller.coffee","app/modules/bookers/dialog/BookerDialog.jade","app/modules/bookers/dialog/index.coffee","app/modules/clinics/add-service/index.coffee","app/modules/clinics/add-service/select-charge-subview.jade","app/modules/clinics/add-service/template.jade","app/modules/clinics/add-stock/add-stock.jade","app/modules/clinics/add-stock/index.coffee","app/modules/clinics/add-stock/stock.coffee","app/modules/clinics/clinics_controller.coffee","app/modules/myclinic/appointment-dialog/index.coffee","app/modules/myclinic/appointment-dialog/template.jade","app/modules/myclinic/bookings-view/index.coffee","app/modules/myclinic/bookings-view/template.jade","app/modules/myclinic/classes-collection-view/index.coffee","app/modules/myclinic/classes-collection-view/template.jade","app/modules/myclinic/home/ClinicHomeScreen.jade","app/modules/myclinic/home/LocationDialog.coffee","app/modules/myclinic/home/LocationEditDialog.jade","app/modules/myclinic/home/PractitionerDialog.coffee","app/modules/myclinic/home/PractitionerEditDialog.jade","app/modules/myclinic/home/index.coffee","app/modules/myclinic/integration_controller.coffee","app/modules/myclinic/invoice-view/index.coffee","app/modules/myclinic/invoice-view/template.jade","app/modules/myclinic/my-pronto-view/index.coffee","app/modules/myclinic/my-pronto-view/template.jade","app/modules/myclinic/myclinic_controller.coffee","app/modules/myclinic/networks-screen/index.coffee","app/modules/myclinic/networks-screen/template.jade","app/modules/myclinic/nopronto/index.coffee","app/modules/myclinic/nopronto/template.jade","app/modules/myclinic/nopronto_controller.coffee","app/modules/myclinic/online-service-popover/index.coffee","app/modules/myclinic/online-service-popover/template.jade","app/modules/myclinic/online-settings-screen/index.coffee","app/modules/myclinic/online-settings-screen/template.jade","app/modules/myclinic/pronto-settings-screen/index.coffee","app/modules/myclinic/pronto-settings-screen/template.jade","app/modules/myclinic/reception-settings-screen/index.coffee","app/modules/myclinic/reception-settings-screen/template.jade","app/modules/myclinic/referral-screen/index.coffee","app/modules/myclinic/referral-screen/template.jade","app/modules/myclinic/referral-summary/index.coffee","app/modules/myclinic/referral-summary/template.jade","app/modules/myclinic/referrers-screen/index.coffee","app/modules/myclinic/referrers-screen/template.jade","app/modules/myclinic/report-view/index.coffee","app/modules/myclinic/report-view/template.jade","app/modules/myclinic/search-view/index.coffee","app/modules/myclinic/search-view/template.jade","app/modules/myclinic/service-wizard/index.coffee","app/modules/myclinic/service-wizard/service-wizard.jade","app/modules/myclinic/services-collection-view/index.coffee","app/modules/myclinic/services-collection-view/template.jade","app/modules/myclinic/settings-screen/index.coffee","app/modules/myclinic/settings-screen/template.jade","app/modules/myclinic/tm2-bookings-screen/index.coffee","app/modules/myclinic/tm2-bookings-screen/template.jade","app/modules/myclinic/tm2-settings-screen/index.coffee","app/modules/myclinic/tm2-settings-screen/template.jade","app/modules/users/dialog/UserDialog.jade","app/modules/users/dialog/index.coffee","app/modules/users/list/ListView.jade","app/modules/users/list/index.coffee","app/modules/users/users_controller.coffee","app/routes.coffee","app/views/base/collection-view.coffee","app/views/base/dialog_view.coffee","app/views/base/draggable_view.coffee","app/views/base/popover_view.coffee","app/views/base/view.coffee","app/views/home/header-view.coffee","app/views/home/header.jade","app/views/site-view.coffee","app/views/templates/site.jade"],"names":[],"mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA/UA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAv8BA;AAAA;;ACAA;;AAAA,IAAI,QAAQ,QAAR;;AACJ,IAAI,QAAQ,YAAR;;AACJ,WAAW,QAAQ,UAAR;;AAEX,MAAM,CAAC,OAAP,GAAuB;;;uBACrB,QAAO;WACL,CAAC,CAAC,KAAF,CACE;MAAA,aAAa;eAAA,SAAC,KAAD;UACX,IAAmB,aAAnB;AAAA,mBAAO,KAAP;;AACA,iBAAO,KAAK,CAAC,KAAN,CAAY,GAAZ,CAAgB,CAAC,IAAjB,CAAsB,EAAtB,MAA6B;QAFzB;MAAA,QAAb;KADF;EADK;;;;;;;CCLT;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAnsBA;AAAA;ACAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AArBA;AAAA;CCAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA1BA;AAAA;CCAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAvBA;AAAA;;ACAA;EAAA;;AAAA,SAAS,QAAQ,QAAR;;AACT,YAAY,QAAQ,wBAAR;;AACZ,aAAa,QAAQ,wBAAR;;AACb,SAAS,QAAQ,QAAR;;AACT,I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AL;MACvB,IAAG,CAAC,KAAJ;QACE,EAAE,CAAC,QAAH,GAAc;eACd,EAAE,EAAF,CAAK,CAAC,IAAN,CAAW,UAAX,EAAuB,UAAvB,EAFF;OAAA;QAIE,EAAE,CAAC,QAAH,GAAc;eACd,EAAE,EAAF,CAAK,CAAC,UAAN,CAAiB,UAAjB,EALF;;IADuB;WAQzB,MAAM,CAAC,OAAO,CAAC,QAAf,GAA0B,SAAC,EAAD,EAAK,KAAL;MACxB,IAAG,CAAC,CAAC,KAAL;QACE,EAAE,CAAC,QAAH,GAAc;eACd,EAAE,EAAF,CAAK,CAAC,IAAN,CAAW,UAAX,EAAuB,UAAvB,EAFF;OAAA;QAIE,EAAE,CAAC,QAAH,GAAc;eACd,EAAE,EAAF,CAAK,CAAC,UAAN,CAAiB,UAAjB,EALF;;IADwB;EA9rBrB;;;;;;;CCVT;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAfA;AAAA;CCAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAfA;AAAA;CCAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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","file":"public/javascripts/app.js","sourcesContent":["Chaplin = require 'chaplin'\nmediator = require 'mediator'\nDeepModel = require 'models/base/deep_model'\nRivetsHelper = require 'lib/rivets'\nAjaxHelper = require 'lib/ajax-helper'\nGuidHelper = require 'lib/guid-helper'\nDeepExtend = require 'lib/underscore.mixin.deepExtend'\njqueryNumeric = require 'lib/jquery.number'\n$ = require 'jquery'\n_ = require 'underscore'\n\n# The application object.\n\nclass User extends DeepModel\n hasPermission: (p)=>\n permissions = @get(\"permissions\") || []\n _.contains(permissions, p)\n\nmodule.exports = class Application extends Chaplin.Application\n start: ->\n # You can fetch some data here and start app\n # (by calling `super`) after that.\n\n new RivetsHelper().setup()\n new AjaxHelper().setup()\n new GuidHelper().setup()\n super\n $(document).ajaxError (err) ->\n Airbrake?.push(error:err)\n\n initMediator: ->\n DeepExtend()\n mediator.user = new User()\n mediator.redirectUrl = \"\"\n super\n","$ = require 'jquery'\n_ = require 'underscore'\nChaplin = require 'chaplin'\nmediator = require 'mediator'\nAuthHelper = require 'lib/auth-helper'\n\nController = require './controller'\n\nmodule.exports = class AuthController extends Controller\n beforeAction: ()->\n super\n if mediator.user.get('stateUnknown') isnt false\n authHelper = new AuthHelper()\n\n _.get(\n url:'/api/user'\n success: (res)=>\n if res.isAuthenticated is true\n authHelper.done(res)\n else\n @unauthorized()\n error: =>\n @unauthorized()\n )\n else unless mediator.user.get(\"isAuthenticated\")\n @unauthorized()\n\n unauthorized: =>\n mediator.user.set \n isAuthenticated:false\n stateUnknown:false\n permissions: []\n Chaplin.utils.redirectTo url: '/login'\n\n \n\n \n ","Chaplin = require 'chaplin'\n\nSiteView = require 'views/site-view'\nHeaderView = require 'views/home/header-view'\n\nmodule.exports = class Controller extends Chaplin.Controller\n beforeAction: (p, r, o)->\n super\n $.ajaxSetup\n beforeSend: (xhr) ->\n xhr.setRequestHeader \"X-Pronto-Context\", \"my-clinic\"\n return xhr\n\n @reuse 'site', SiteView\n @reuse 'header', HeaderView,\n region: 'header'\n allowBack: r.path.match(/^settings\\//)?\n","_ = require 'underscore'\n\nmediator = require 'mediator'\nController = require './controller'\nAuthHelper = require 'lib/auth-helper'\n\nmodule.exports = class NonAuthController extends Controller\n beforeAction: ->\n super\n if mediator.user.get('stateUnknown') isnt false\n authHelper = new AuthHelper()\n\n _.get(\n url:'/api/user'\n success: (res)=>\n if res.isAuthenticated is true\n authHelper.done(res)\n )\n\n return","$ = require 'jquery'\n# Hookup jQuery to Backbone.\nmoment = require 'moment'\nBackbone = require 'backbone'\nBackbone.$ = $\nrequire('lib/deep-model')\nrequire('lib/es6-promise').polyfill()\nwindow.$ = window.jQuery = $\nfoundation = require 'foundation'\n\nDate.prototype.toJSON = -> moment(this).format(\"YYYY-MM-DD HH:mm\")\n\n# Initialize the application on DOM ready event.\nApplication = require 'application'\nroutes = require 'routes'\n$ ->\n $(document).foundation()\n new Application {\n title: 'Pronto Portal',\n controllerSuffix: '_controller',\n controllerPath:'',\n routes\n }\n","_ = require 'underscore'\n\nModel = require 'models/base/model'\nmodule.exports = class ValidationMachine\n\n rule: (key, fn)->\n @rules.push(key)\n @[key] = fn\n\n isValid: ->\n if @rules?\n for key in @rules\n result = @[key]()\n continue if result?.skip\n return false unless result?.isValid\n return true\n\n applyRules: =>\n @view ?= new Model()\n @rules ?= []\n\n applyGraphics: (selector = \"[rv-validate]\")->\n valid = @$(selector)\n _.each(valid, (e) =>\n $e = @$(e)\n $e.wrap(\"
\")\n $e.before(\"
 
\")\n $e.parent().attr(\"rv-validate\", $e.attr(\"rv-validate\"))\n $e.removeAttr(\"rv-validate\")\n )\n\n required: (field, message, model) =>\n @rule field, =>\n model ?= \"model\"\n val = (@[model]?.get(field) || \"\")?.trim()\n return null if @[model]?.isNew() && !@view.get(\"submitted\") && val is \"\"\n return { isValid:false, message: message || \"Enter a #{field.replace(/([A-Z])/g, ' $1').toLowerCase()}\" } if val is \"\"\n return { isValid:true, message:\"\" }\n\n requiredIf: (field, ifCallback, message) =>\n @rule field, =>\n return { isValid:true, message:\"\" } unless ifCallback()\n model = \"model\"\n val = (@[model]?.get(field) || \"\")?.trim()\n return null if @[model]?.isNew() && !@view.get(\"submitted\") && val is \"\"\n return { isValid:false, message: message || \"Enter a #{field.replace(/([A-Z])/g, ' $1').toLowerCase()}\" } if val is \"\"\n return { isValid:true, message:\"\" }\n\n minIf: (field, minValue, ifCallback, message, model) =>\n @rule field, =>\n return { isValid:true, message:\"\" } unless ifCallback()\n model ?= \"model\"\n val = parseFloat(@[model]?.get(field) || 0)\n return null if @[model]?.isNew() && !@view.get(\"submitted\") && val < minValue\n return { isValid:false, message: message || \"Make sure #{field} is higher than #{minValue}\" } if val < minValue\n return { isValid:true, message:\"\" }\n\n min: (field, minValue, message, model) =>\n @rule field, =>\n model ?= \"model\"\n val = (@[model]?.get(field) || 0)\n return null if @[model]?.isNew() && !@view.get(\"submitted\") && val < minValue\n return { isValid:false, message: message || \"Make sure #{field} is higher than #{minValue}\" } if val < minValue\n return { isValid:true, message:\"\" }\n\n regex: (field, expression, message, model) =>\n @rule field, =>\n model ?= \"model\";\n val = (@[model]?.get(field) || \"\")\n\n return null if @[model]?.isNew() && !@view.get(\"submitted\") && !expression.test val\n return { isValid:false, message: message || \"Makes sure #{field} matches structure\" } unless expression.test( val)\n return { isValid:true, message:\"\"}\n\n requiredDate: (field) =>\n @rule field, =>\n val = @model.get(field)\n return null if @model?.isNew() && !@view.get(\"submitted\") && !val?\n return { isValid:false, message:\"Enter a #{field}\" } if !val?\n return { isValid:true, message:\"\" }\n\n requiredDateOfBirth: (field) =>\n @rule field, =>\n val = @model.get(field)\n return null if @model?.isNew() && !@view.get(\"submitted\") && !val?\n return { isValid:false, message:\"Enter a #{field}\" } if !val?\n return { isValid:false, message:\"Date of Birth cannot be in the future.\" } if val > new Date()\n return { isValid:true, message:\"\" }\n\n zxcvbnValidate: (field)=>\n @rule field, =>\n model = \"model\";\n val = (@[model]?.get(field) || \"\")\n return null if @[model]?.isNew() && !@view.get(\"submitted\") && val?\n\n passwordScore = window.zxcvbn(val)\n return { isValid:false, message: \"Your password is not secure enough. Please consider using mixed case letters, numbers and characters\" } if passwordScore.score <= 2 || val.length < 7\n return { isValid:true, message:\"\"}\n\n clearRules:=>\n @rules = []\n delete @rules\n","$ = require 'jquery'\r\n_ = require 'underscore'\r\nBackbone = require 'backbone'\r\n# mediator = require 'mediator'\r\n\r\nmodule.exports = class AjaxHelper\r\n setup: ->\r\n _.mixin\r\n get: (args) =>\r\n args.type = \"GET\"\r\n @ajaxJSON(args)\r\n\r\n post: (args) =>\r\n args.type = \"POST\"\r\n @ajaxJSON(args)\r\n\r\n put: (args) =>\r\n args.type = \"PUT\"\r\n @ajaxJSON(args)\r\n \r\n del: (args) =>\r\n args.type = \"DELETE\"\r\n @ajaxJSON(args)\r\n\r\n ajaxJSON: (args)=>\r\n $.ajax\r\n type: args.type || \"GET\"\r\n cache: false\r\n async: args.async || true\r\n dataType: \"json\"\r\n url: args.url || \"\"\r\n beforeSend: (request)->\r\n for k, v of args.headers\r\n request.setRequestHeader(k, v);\r\n\r\n data: JSON.stringify(args.data || {})\r\n contentType: \"application/json; charset=utf-8\"\r\n success: args.success || =>\r\n error: args.error || =>","Model = require 'models/base/model'\nDialogView = require 'views/base/dialog_view'\n\nclass AlertDialog extends DialogView\n template:require './templates/AlertDialog'\n\n confirm: =>\n @publishEvent 'alert:confirmed'\n @close()\n\n close: =>\n super\n\nmodule.exports = (view, title, message, callback) ->\n view.subscribeEvent 'alert:confirmed', callback\n view.subview 'alertDialog', new AlertDialog\n model: new Model\n title:title\n message:message\n","mediator = require 'mediator'\r\nChaplin = require 'chaplin'\r\n_ = require 'underscore'\r\n\r\nmodule.exports = class AuthHelper\r\n constructor: (redirectUrl) ->\r\n @redirectUrl = redirectUrl\r\n if window.location.search && /redirectTo/.test(window.location.search)\r\n @redirect = window.location.search.split('=')\r\n if @redirect.length > 0 && @redirect[1]\r\n @redirectUrl = @redirect[1]\r\n\r\n done: (res) =>\r\n if res.isAuthenticated\r\n if res.isProvisional\r\n res.license?.hasOnlineReferralBookings = false\r\n Chaplin.utils.redirectTo url: '/nopronto'\r\n return\r\n\r\n mediator.user.set\r\n clientId: res.clientId\r\n name: res.displayName\r\n email: res.email\r\n businessName: res.businessName\r\n isAuthenticated:true\r\n isReception: res.isReception\r\n isProvisional: res.isProvisional\r\n displayName: res.displayName\r\n userName: res.userName\r\n companyName: res.companyName\r\n stateUnknown:false\r\n permissions: res.permissions\r\n settings: res.settings\r\n keywords: res.keyWords\r\n localities: res.localities\r\n userSettings: res.userSettings\r\n license: res.license\r\n userData: res.userData\r\n mothership_reference: res.mothershipReference\r\n\r\n Chaplin.utils.redirectTo url: @redirectUrl if @redirectUrl?\r\n\r\n else\r\n if mediator.user?\r\n mediator.user.set\r\n isAuthenticated:false\r\n stateUnknown:false\r\n\r\n Chaplin.utils.redirectTo url: '/login'\r\n mediator.user.trigger 'change'\r\n","Model = require 'models/base/model'\r\nDialogView = require 'views/base/dialog_view'\r\n\r\nmodule.exports = class ConfirmDialog extends DialogView\r\n template:require './templates/ConfirmDialog'\r\n\r\n initialize: =>\r\n super\r\n @model ?= new Model()\r\n \r\n confirm: =>\r\n @publishEvent 'confirm:confirmed', @model.get(\"context\")\r\n @close()\r\n\r\n cancel: =>\r\n @publishEvent 'confirm:cancelled', @model.get(\"context\")\r\n @close()","Model = require 'models/base/model'\n\nConfirmDialog = require './confirm-dialog'\n\nmodule.exports = (view, title, message, callback) ->\n view.subscribeEvent 'confirm:confirmed', callback\n view.subview 'confirmDialog', new ConfirmDialog\n model: new Model\n title:title\n message:message\n\n\n","/**\n * Main source\n */\n\n;(function(factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD\n define(['underscore', 'backbone'], factory);\n } else if (typeof exports === 'object') {\n // CommonJS\n module.exports = factory(require('underscore'), require('backbone'));\n } else {\n // globals\n factory(_, Backbone);\n }\n}(function(_, Backbone) {\n /**\n * Takes a nested object and returns a shallow object keyed with the path names\n * e.g. { \"level1.level2\": \"value\" }\n *\n * @param {Object} Nested object e.g. { level1: { level2: 'value' } }\n * @return {Object} Shallow object with path names e.g. { 'level1.level2': 'value' }\n */\n function objToPaths(obj) {\n var ret = {},\n separator = DeepModel.keyPathSeparator;\n\n for (var key in obj) {\n var val = obj[key];\n\n if (val && (val.constructor === Object || val.constructor === Array) && !_.isEmpty(val)) {\n //Recursion for embedded objects\n var obj2 = objToPaths(val);\n\n for (var key2 in obj2) {\n var val2 = obj2[key2];\n\n ret[key + separator + key2] = val2;\n }\n } else {\n ret[key] = val;\n }\n }\n\n return ret;\n }\n\n /**\n * @param {Object} Object to fetch attribute from\n * @param {String} Object path e.g. 'user.name'\n * @return {Mixed}\n */\n function getNested(obj, path, return_exists) {\n var separator = DeepModel.keyPathSeparator;\n\n var fields = path ? path.split(separator) : [];\n var result = obj;\n return_exists || (return_exists === false);\n for (var i = 0, n = fields.length; i < n; i++) {\n if (return_exists && !_.has(result, fields[i])) {\n return false;\n }\n result = result[fields[i]];\n\n if (result == null && i < n - 1) {\n result = {};\n }\n\n if (typeof result === 'undefined') {\n if (return_exists)\n {\n return true;\n }\n return result;\n }\n }\n if (return_exists)\n {\n return true;\n }\n return result;\n }\n\n /**\n * @param {Object} obj Object to fetch attribute from\n * @param {String} path Object path e.g. 'user.name'\n * @param {Object} [options] Options\n * @param {Boolean} [options.unset] Whether to delete the value\n * @param {Mixed} Value to set\n */\n function setNested(obj, path, val, options) {\n options = options || {};\n\n var separator = DeepModel.keyPathSeparator;\n\n var fields = path ? path.split(separator) : [];\n var result = obj;\n for (var i = 0, n = fields.length; i < n && result !== undefined ; i++) {\n var field = fields[i];\n\n //If the last in the path, set the value\n if (i === n - 1) {\n options.unset ? delete result[field] : result[field] = val;\n } else {\n //Create the child object if it doesn't exist, or isn't an object\n if (typeof result[field] === 'undefined' || ! _.isObject(result[field])) {\n var nextField = fields[i+1];\n\n // create array if next field is integer, else create object\n result[field] = /^\\d+$/.test(nextField) ? [] : {};\n }\n\n //Move onto the next part of the path\n result = result[field];\n }\n }\n }\n\n function deleteNested(obj, path) {\n setNested(obj, path, null, { unset: true });\n }\n\n var DeepModel = Backbone.Model.extend({\n\n // Override constructor\n // Support having nested defaults by using _.deepExtend instead of _.extend\n constructor: function(attributes, options) {\n var defaults;\n var attrs = attributes || {};\n this.cid = _.uniqueId('c');\n this.attributes = {};\n if (options && options.collection) this.collection = options.collection;\n if (options && options.parse) attrs = this.parse(attrs, options) || {};\n if (defaults = _.result(this, 'defaults')) {\n //\n // Replaced the call to _.defaults with _.deepExtend.\n attrs = _.deepExtend({}, defaults, attrs);\n //\n }\n this.set(attrs, options);\n this.changed = {};\n this.initialize.apply(this, arguments);\n },\n\n // Return a copy of the model's `attributes` object.\n toJSON: function(options) {\n return _.deepClone(this.attributes);\n },\n\n // Override get\n // Supports nested attributes via the syntax 'obj.attr' e.g. 'author.user.name'\n get: function(attr) {\n return getNested(this.attributes, attr);\n },\n\n // Override set\n // Supports nested attributes via the syntax 'obj.attr' e.g. 'author.user.name'\n set: function(key, val, options) {\n var attr, attrs, unset, changes, silent, changing, prev, current;\n if (key == null) return this;\n\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n if (typeof key === 'object') {\n attrs = key;\n options = val || {};\n } else {\n (attrs = {})[key] = val;\n }\n\n options || (options = {});\n\n // Run validation.\n if (!this._validate(attrs, options)) return false;\n\n // Extract attributes and options.\n unset = options.unset;\n silent = options.silent;\n changes = [];\n changing = this._changing;\n this._changing = true;\n\n if (!changing) {\n this._previousAttributes = _.deepClone(this.attributes); //: Replaced _.clone with _.deepClone\n this.changed = {};\n }\n current = this.attributes, prev = this._previousAttributes;\n\n // Check for changes of `id`.\n if (this.idAttribute in attrs) this.id = attrs[this.idAttribute];\n\n //\n attrs = objToPaths(attrs);\n //\n\n // For each `set` attribute, update or delete the current value.\n for (attr in attrs) {\n val = attrs[attr];\n\n //: Using getNested, setNested and deleteNested\n if (!_.isEqual(getNested(current, attr), val)) changes.push(attr);\n if (!_.isEqual(getNested(prev, attr), val)) {\n setNested(this.changed, attr, val);\n } else {\n deleteNested(this.changed, attr);\n }\n unset ? deleteNested(current, attr) : setNested(current, attr, val);\n //\n }\n\n // Trigger all relevant attribute changes.\n if (!silent) {\n if (changes.length) this._pending = true;\n\n //\n var separator = DeepModel.keyPathSeparator;\n var alreadyTriggered = {}; // * @restorer\n\n for (var i = 0, l = changes.length; i < l; i++) {\n var key = changes[i];\n\n if (!alreadyTriggered.hasOwnProperty(key) || !alreadyTriggered[key]) { // * @restorer\n alreadyTriggered[key] = true; // * @restorer\n this.trigger('change:' + key, this, getNested(current, key), options);\n } // * @restorer\n\n var fields = key.split(separator);\n\n //Trigger change events for parent keys with wildcard (*) notation\n for(var n = fields.length - 1; n > 0; n--) {\n var parentKey = _.first(fields, n).join(separator),\n wildcardKey = parentKey + separator + '*';\n\n if (!alreadyTriggered.hasOwnProperty(wildcardKey) || !alreadyTriggered[wildcardKey]) { // * @restorer\n alreadyTriggered[wildcardKey] = true; // * @restorer\n this.trigger('change:' + wildcardKey, this, getNested(current, parentKey), options);\n } // * @restorer\n\n // + @restorer\n if (!alreadyTriggered.hasOwnProperty(parentKey) || !alreadyTriggered[parentKey]) {\n alreadyTriggered[parentKey] = true;\n this.trigger('change:' + parentKey, this, getNested(current, parentKey), options);\n }\n // - @restorer\n }\n //\n }\n }\n\n if (changing) return this;\n if (!silent) {\n while (this._pending) {\n this._pending = false;\n this.trigger('change', this, options);\n }\n }\n this._pending = false;\n this._changing = false;\n return this;\n },\n\n // Clear all attributes on the model, firing `\"change\"` unless you choose\n // to silence it.\n clear: function(options) {\n var attrs = {};\n var shallowAttributes = objToPaths(this.attributes);\n for (var key in shallowAttributes) attrs[key] = void 0;\n return this.set(attrs, _.extend({}, options, {unset: true}));\n },\n\n // Determine if the model has changed since the last `\"change\"` event.\n // If you specify an attribute name, determine if that attribute has changed.\n hasChanged: function(attr) {\n if (attr == null) return !_.isEmpty(this.changed);\n return getNested(this.changed, attr) !== undefined;\n },\n\n // Return an object containing all the attributes that have changed, or\n // false if there are no changed attributes. Useful for determining what\n // parts of a view need to be updated and/or what attributes need to be\n // persisted to the server. Unset attributes will be set to undefined.\n // You can also pass an attributes object to diff against the model,\n // determining if there *would be* a change.\n changedAttributes: function(diff) {\n //: objToPaths\n if (!diff) return this.hasChanged() ? objToPaths(this.changed) : false;\n //\n\n var old = this._changing ? this._previousAttributes : this.attributes;\n\n //\n diff = objToPaths(diff);\n old = objToPaths(old);\n //\n\n var val, changed = false;\n for (var attr in diff) {\n if (_.isEqual(old[attr], (val = diff[attr]))) continue;\n (changed || (changed = {}))[attr] = val;\n }\n return changed;\n },\n\n // Get the previous value of an attribute, recorded at the time the last\n // `\"change\"` event was fired.\n previous: function(attr) {\n if (attr == null || !this._previousAttributes) return null;\n\n //\n return getNested(this._previousAttributes, attr);\n //\n },\n\n // Get all of the attributes of the model at the time of the previous\n // `\"change\"` event.\n previousAttributes: function() {\n //\n return _.deepClone(this._previousAttributes);\n //\n }\n });\n\n\n //Config; override in your app to customise\n DeepModel.keyPathSeparator = '.';\n\n\n //Exports\n Backbone.DeepModel = DeepModel;\n\n //For use in NodeJS\n if (typeof module != 'undefined') module.exports = DeepModel;\n\n return Backbone;\n\n}));\n","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE\n * @version 3.0.2\n */\n\n(function() {\n \"use strict\";\n function lib$es6$promise$utils$$objectOrFunction(x) {\n return typeof x === 'function' || (typeof x === 'object' && x !== null);\n }\n\n function lib$es6$promise$utils$$isFunction(x) {\n return typeof x === 'function';\n }\n\n function lib$es6$promise$utils$$isMaybeThenable(x) {\n return typeof x === 'object' && x !== null;\n }\n\n var lib$es6$promise$utils$$_isArray;\n if (!Array.isArray) {\n lib$es6$promise$utils$$_isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n } else {\n lib$es6$promise$utils$$_isArray = Array.isArray;\n }\n\n var lib$es6$promise$utils$$isArray = lib$es6$promise$utils$$_isArray;\n var lib$es6$promise$asap$$len = 0;\n var lib$es6$promise$asap$$toString = {}.toString;\n var lib$es6$promise$asap$$vertxNext;\n var lib$es6$promise$asap$$customSchedulerFn;\n\n var lib$es6$promise$asap$$asap = function asap(callback, arg) {\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len] = callback;\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len + 1] = arg;\n lib$es6$promise$asap$$len += 2;\n if (lib$es6$promise$asap$$len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (lib$es6$promise$asap$$customSchedulerFn) {\n lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush);\n } else {\n lib$es6$promise$asap$$scheduleFlush();\n }\n }\n }\n\n function lib$es6$promise$asap$$setScheduler(scheduleFn) {\n lib$es6$promise$asap$$customSchedulerFn = scheduleFn;\n }\n\n function lib$es6$promise$asap$$setAsap(asapFn) {\n lib$es6$promise$asap$$asap = asapFn;\n }\n\n var lib$es6$promise$asap$$browserWindow = (typeof window !== 'undefined') ? window : undefined;\n var lib$es6$promise$asap$$browserGlobal = lib$es6$promise$asap$$browserWindow || {};\n var lib$es6$promise$asap$$BrowserMutationObserver = lib$es6$promise$asap$$browserGlobal.MutationObserver || lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;\n var lib$es6$promise$asap$$isNode = typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n // test for web worker but not in IE10\n var lib$es6$promise$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' &&\n typeof importScripts !== 'undefined' &&\n typeof MessageChannel !== 'undefined';\n\n // node\n function lib$es6$promise$asap$$useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function() {\n process.nextTick(lib$es6$promise$asap$$flush);\n };\n }\n\n // vertx\n function lib$es6$promise$asap$$useVertxTimer() {\n return function() {\n lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush);\n };\n }\n\n function lib$es6$promise$asap$$useMutationObserver() {\n var iterations = 0;\n var observer = new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function() {\n node.data = (iterations = ++iterations % 2);\n };\n }\n\n // web worker\n function lib$es6$promise$asap$$useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = lib$es6$promise$asap$$flush;\n return function () {\n channel.port2.postMessage(0);\n };\n }\n\n function lib$es6$promise$asap$$useSetTimeout() {\n return function() {\n setTimeout(lib$es6$promise$asap$$flush, 1);\n };\n }\n\n var lib$es6$promise$asap$$queue = new Array(1000);\n function lib$es6$promise$asap$$flush() {\n for (var i = 0; i < lib$es6$promise$asap$$len; i+=2) {\n var callback = lib$es6$promise$asap$$queue[i];\n var arg = lib$es6$promise$asap$$queue[i+1];\n\n callback(arg);\n\n lib$es6$promise$asap$$queue[i] = undefined;\n lib$es6$promise$asap$$queue[i+1] = undefined;\n }\n\n lib$es6$promise$asap$$len = 0;\n }\n\n function lib$es6$promise$asap$$attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n lib$es6$promise$asap$$vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return lib$es6$promise$asap$$useVertxTimer();\n } catch(e) {\n return lib$es6$promise$asap$$useSetTimeout();\n }\n }\n\n var lib$es6$promise$asap$$scheduleFlush;\n // Decide what async method to use to triggering processing of queued callbacks:\n if (lib$es6$promise$asap$$isNode) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useNextTick();\n } else if (lib$es6$promise$asap$$BrowserMutationObserver) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMutationObserver();\n } else if (lib$es6$promise$asap$$isWorker) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMessageChannel();\n } else if (lib$es6$promise$asap$$browserWindow === undefined && typeof require === 'function') {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$attemptVertx();\n } else {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useSetTimeout();\n }\n\n function lib$es6$promise$$internal$$noop() {}\n\n var lib$es6$promise$$internal$$PENDING = void 0;\n var lib$es6$promise$$internal$$FULFILLED = 1;\n var lib$es6$promise$$internal$$REJECTED = 2;\n\n var lib$es6$promise$$internal$$GET_THEN_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n }\n\n function lib$es6$promise$$internal$$cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n }\n\n function lib$es6$promise$$internal$$getThen(promise) {\n try {\n return promise.then;\n } catch(error) {\n lib$es6$promise$$internal$$GET_THEN_ERROR.error = error;\n return lib$es6$promise$$internal$$GET_THEN_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch(e) {\n return e;\n }\n }\n\n function lib$es6$promise$$internal$$handleForeignThenable(promise, thenable, then) {\n lib$es6$promise$asap$$asap(function(promise) {\n var sealed = false;\n var error = lib$es6$promise$$internal$$tryThen(then, thenable, function(value) {\n if (sealed) { return; }\n sealed = true;\n if (thenable !== value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }, function(reason) {\n if (sealed) { return; }\n sealed = true;\n\n lib$es6$promise$$internal$$reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n lib$es6$promise$$internal$$reject(promise, error);\n }\n }, promise);\n }\n\n function lib$es6$promise$$internal$$handleOwnThenable(promise, thenable) {\n if (thenable._state === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, thenable._result);\n } else if (thenable._state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, thenable._result);\n } else {\n lib$es6$promise$$internal$$subscribe(thenable, undefined, function(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n }\n }\n\n function lib$es6$promise$$internal$$handleMaybeThenable(promise, maybeThenable) {\n if (maybeThenable.constructor === promise.constructor) {\n lib$es6$promise$$internal$$handleOwnThenable(promise, maybeThenable);\n } else {\n var then = lib$es6$promise$$internal$$getThen(maybeThenable);\n\n if (then === lib$es6$promise$$internal$$GET_THEN_ERROR) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$GET_THEN_ERROR.error);\n } else if (then === undefined) {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n } else if (lib$es6$promise$utils$$isFunction(then)) {\n lib$es6$promise$$internal$$handleForeignThenable(promise, maybeThenable, then);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n }\n }\n }\n\n function lib$es6$promise$$internal$$resolve(promise, value) {\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$selfFulfillment());\n } else if (lib$es6$promise$utils$$objectOrFunction(value)) {\n lib$es6$promise$$internal$$handleMaybeThenable(promise, value);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n lib$es6$promise$$internal$$publish(promise);\n }\n\n function lib$es6$promise$$internal$$fulfill(promise, value) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n\n promise._result = value;\n promise._state = lib$es6$promise$$internal$$FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, promise);\n }\n }\n\n function lib$es6$promise$$internal$$reject(promise, reason) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n promise._state = lib$es6$promise$$internal$$REJECTED;\n promise._result = reason;\n\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection, promise);\n }\n\n function lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection) {\n var subscribers = parent._subscribers;\n var length = subscribers.length;\n\n parent._onerror = null;\n\n subscribers[length] = child;\n subscribers[length + lib$es6$promise$$internal$$FULFILLED] = onFulfillment;\n subscribers[length + lib$es6$promise$$internal$$REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, parent);\n }\n }\n\n function lib$es6$promise$$internal$$publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) { return; }\n\n var child, callback, detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n lib$es6$promise$$internal$$invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n }\n\n function lib$es6$promise$$internal$$ErrorObject() {\n this.error = null;\n }\n\n var lib$es6$promise$$internal$$TRY_CATCH_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch(e) {\n lib$es6$promise$$internal$$TRY_CATCH_ERROR.error = e;\n return lib$es6$promise$$internal$$TRY_CATCH_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$invokeCallback(settled, promise, callback, detail) {\n var hasCallback = lib$es6$promise$utils$$isFunction(callback),\n value, error, succeeded, failed;\n\n if (hasCallback) {\n value = lib$es6$promise$$internal$$tryCatch(callback, detail);\n\n if (value === lib$es6$promise$$internal$$TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$cannotReturnOwn());\n return;\n }\n\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== lib$es6$promise$$internal$$PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else if (failed) {\n lib$es6$promise$$internal$$reject(promise, error);\n } else if (settled === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, value);\n } else if (settled === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value){\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function rejectPromise(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n } catch(e) {\n lib$es6$promise$$internal$$reject(promise, e);\n }\n }\n\n function lib$es6$promise$enumerator$$Enumerator(Constructor, input) {\n var enumerator = this;\n\n enumerator._instanceConstructor = Constructor;\n enumerator.promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (enumerator._validateInput(input)) {\n enumerator._input = input;\n enumerator.length = input.length;\n enumerator._remaining = input.length;\n\n enumerator._init();\n\n if (enumerator.length === 0) {\n lib$es6$promise$$internal$$fulfill(enumerator.promise, enumerator._result);\n } else {\n enumerator.length = enumerator.length || 0;\n enumerator._enumerate();\n if (enumerator._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(enumerator.promise, enumerator._result);\n }\n }\n } else {\n lib$es6$promise$$internal$$reject(enumerator.promise, enumerator._validationError());\n }\n }\n\n lib$es6$promise$enumerator$$Enumerator.prototype._validateInput = function(input) {\n return lib$es6$promise$utils$$isArray(input);\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._validationError = function() {\n return new Error('Array Methods must be provided an Array');\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._init = function() {\n this._result = new Array(this.length);\n };\n\n var lib$es6$promise$enumerator$$default = lib$es6$promise$enumerator$$Enumerator;\n\n lib$es6$promise$enumerator$$Enumerator.prototype._enumerate = function() {\n var enumerator = this;\n\n var length = enumerator.length;\n var promise = enumerator.promise;\n var input = enumerator._input;\n\n for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n enumerator._eachEntry(input[i], i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) {\n var enumerator = this;\n var c = enumerator._instanceConstructor;\n\n if (lib$es6$promise$utils$$isMaybeThenable(entry)) {\n if (entry.constructor === c && entry._state !== lib$es6$promise$$internal$$PENDING) {\n entry._onerror = null;\n enumerator._settledAt(entry._state, i, entry._result);\n } else {\n enumerator._willSettleAt(c.resolve(entry), i);\n }\n } else {\n enumerator._remaining--;\n enumerator._result[i] = entry;\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) {\n var enumerator = this;\n var promise = enumerator.promise;\n\n if (promise._state === lib$es6$promise$$internal$$PENDING) {\n enumerator._remaining--;\n\n if (state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n } else {\n enumerator._result[i] = value;\n }\n }\n\n if (enumerator._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(promise, enumerator._result);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) {\n var enumerator = this;\n\n lib$es6$promise$$internal$$subscribe(promise, undefined, function(value) {\n enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED, i, value);\n }, function(reason) {\n enumerator._settledAt(lib$es6$promise$$internal$$REJECTED, i, reason);\n });\n };\n function lib$es6$promise$promise$all$$all(entries) {\n return new lib$es6$promise$enumerator$$default(this, entries).promise;\n }\n var lib$es6$promise$promise$all$$default = lib$es6$promise$promise$all$$all;\n function lib$es6$promise$promise$race$$race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (!lib$es6$promise$utils$$isArray(entries)) {\n lib$es6$promise$$internal$$reject(promise, new TypeError('You must pass an array to race.'));\n return promise;\n }\n\n var length = entries.length;\n\n function onFulfillment(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }\n\n function onRejection(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n }\n\n for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection);\n }\n\n return promise;\n }\n var lib$es6$promise$promise$race$$default = lib$es6$promise$promise$race$$race;\n function lib$es6$promise$promise$resolve$$resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$resolve(promise, object);\n return promise;\n }\n var lib$es6$promise$promise$resolve$$default = lib$es6$promise$promise$resolve$$resolve;\n function lib$es6$promise$promise$reject$$reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$reject(promise, reason);\n return promise;\n }\n var lib$es6$promise$promise$reject$$default = lib$es6$promise$promise$reject$$reject;\n\n var lib$es6$promise$promise$$counter = 0;\n\n function lib$es6$promise$promise$$needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n }\n\n function lib$es6$promise$promise$$needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n }\n\n var lib$es6$promise$promise$$default = lib$es6$promise$promise$$Promise;\n /**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n var promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n var xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n */\n function lib$es6$promise$promise$$Promise(resolver) {\n this._id = lib$es6$promise$promise$$counter++;\n this._state = undefined;\n this._result = undefined;\n this._subscribers = [];\n\n if (lib$es6$promise$$internal$$noop !== resolver) {\n if (!lib$es6$promise$utils$$isFunction(resolver)) {\n lib$es6$promise$promise$$needsResolver();\n }\n\n if (!(this instanceof lib$es6$promise$promise$$Promise)) {\n lib$es6$promise$promise$$needsNew();\n }\n\n lib$es6$promise$$internal$$initializePromise(this, resolver);\n }\n }\n\n lib$es6$promise$promise$$Promise.all = lib$es6$promise$promise$all$$default;\n lib$es6$promise$promise$$Promise.race = lib$es6$promise$promise$race$$default;\n lib$es6$promise$promise$$Promise.resolve = lib$es6$promise$promise$resolve$$default;\n lib$es6$promise$promise$$Promise.reject = lib$es6$promise$promise$reject$$default;\n lib$es6$promise$promise$$Promise._setScheduler = lib$es6$promise$asap$$setScheduler;\n lib$es6$promise$promise$$Promise._setAsap = lib$es6$promise$asap$$setAsap;\n lib$es6$promise$promise$$Promise._asap = lib$es6$promise$asap$$asap;\n\n lib$es6$promise$promise$$Promise.prototype = {\n constructor: lib$es6$promise$promise$$Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n\n Chaining\n --------\n\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n\n Assimilation\n ------------\n\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n\n If the assimliated promise rejects, then the downstream promise will also reject.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n\n Simple Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var result;\n\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n\n Advanced Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var author, books;\n\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n\n function foundBooks(books) {\n\n }\n\n function failure(reason) {\n\n }\n\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: function(onFulfillment, onRejection) {\n var parent = this;\n var state = parent._state;\n\n if (state === lib$es6$promise$$internal$$FULFILLED && !onFulfillment || state === lib$es6$promise$$internal$$REJECTED && !onRejection) {\n return this;\n }\n\n var child = new this.constructor(lib$es6$promise$$internal$$noop);\n var result = parent._result;\n\n if (state) {\n var callback = arguments[state - 1];\n lib$es6$promise$asap$$asap(function(){\n lib$es6$promise$$internal$$invokeCallback(state, child, callback, result);\n });\n } else {\n lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n },\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function(onRejection) {\n return this.then(null, onRejection);\n }\n };\n function lib$es6$promise$polyfill$$polyfill() {\n var local;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P && Object.prototype.toString.call(P.resolve()) === '[object Promise]' && !P.cast) {\n return;\n }\n\n local.Promise = lib$es6$promise$promise$$default;\n }\n var lib$es6$promise$polyfill$$default = lib$es6$promise$polyfill$$polyfill;\n\n var lib$es6$promise$umd$$ES6Promise = {\n 'Promise': lib$es6$promise$promise$$default,\n 'polyfill': lib$es6$promise$polyfill$$default\n };\n\n /* global define:true module:true window: true */\n if (typeof define === 'function' && define['amd']) {\n define(function() { return lib$es6$promise$umd$$ES6Promise; });\n } else if (typeof module !== 'undefined' && module['exports']) {\n module['exports'] = lib$es6$promise$umd$$ES6Promise;\n } else if (typeof this !== 'undefined') {\n this['ES6Promise'] = lib$es6$promise$umd$$ES6Promise;\n }\n\n lib$es6$promise$polyfill$$default();\n}).call(this);\n\n","$ = require 'jquery'\r\n_ = require 'underscore'\r\nBackbone = require 'backbone'\r\n\r\nmodule.exports = class GuidHelper\r\n setup: ->\r\n _.mixin\r\n isEmptyGuid: (value) =>\r\n return true unless value?\r\n return value.split(\"-\").join(\"\") is \"00000000000000000000000000000000\" ","/**\n * jQuery number plug-in 2.1.3\n * Copyright 2012, Digital Fusion\n * Licensed under the MIT license.\n * http://opensource.teamdf.com/license/\n *\n * A jQuery plugin which implements a permutation of phpjs.org's number_format to provide\n * simple number formatting, insertion, and as-you-type masking of a number.\n * \n * @author Sam Sehnert\n * @docs http://www.teamdf.com/web/jquery-number-format-redux/196/\n */\n var jQuery = require('jquery');\n(function($){\n \"use strict\";\n \n /**\n * Method for selecting a range of characters in an input/textarea.\n *\n * @param int rangeStart : Where we want the selection to start.\n * @param int rangeEnd : Where we want the selection to end.\n *\n * @return void;\n */\n function setSelectionRange( rangeStart, rangeEnd )\n {\n // Check which way we need to define the text range.\n if( this.createTextRange )\n {\n var range = this.createTextRange();\n range.collapse( true );\n range.moveStart( 'character', rangeStart );\n range.moveEnd( 'character', rangeEnd-rangeStart );\n range.select();\n }\n \n // Alternate setSelectionRange method for supporting browsers.\n else if( this.setSelectionRange )\n {\n this.focus();\n this.setSelectionRange( rangeStart, rangeEnd );\n }\n }\n \n /**\n * Get the selection position for the given part.\n * \n * @param string part : Options, 'Start' or 'End'. The selection position to get.\n *\n * @return int : The index position of the selection part.\n */\n function getSelection( part )\n {\n var pos = this.value.length;\n \n // Work out the selection part.\n part = ( part.toLowerCase() == 'start' ? 'Start' : 'End' );\n \n if( document.selection ){\n // The current selection\n var range = document.selection.createRange(), stored_range, selectionStart, selectionEnd;\n // We'll use this as a 'dummy'\n stored_range = range.duplicate();\n // Select all text\n //stored_range.moveToElementText( this );\n stored_range.expand('textedit');\n // Now move 'dummy' end point to end point of original range\n stored_range.setEndPoint( 'EndToEnd', range );\n // Now we can calculate start and end points\n selectionStart = stored_range.text.length - range.text.length;\n selectionEnd = selectionStart + range.text.length;\n return part == 'Start' ? selectionStart : selectionEnd;\n }\n \n else if(typeof(this['selection'+part])!=\"undefined\")\n {\n pos = this['selection'+part];\n }\n return pos;\n }\n \n /**\n * Substitutions for keydown keycodes.\n * Allows conversion from e.which to ascii characters.\n */\n var _keydown = {\n codes : {\n 188 : 44, //comma\n 109 : 45, //numpad minus\n 190 : 46, //dot\n 191 : 47, //slash\n 192 : 96, //`\n 220 : 92, // back slash\n 222 : 39, //apostroph\n 221 : 93, // ]\n 219 : 91, // [\n 173 : 45, //minus\n 187 : 61, //IE Key codes\n 186 : 59, //IE Key codes\n 189 : 45 //minus IE Key codes\n },\n shifts : {\n 96 : \"~\",\n 49 : \"!\",\n 50 : \"@\",\n 51 : \"#\",\n 52 : \"$\",\n 53 : \"%\",\n 54 : \"^\",\n 55 : \"&\",\n 56 : \"*\",\n 57 : \"(\",\n 48 : \")\",\n 45 : \"_\",\n 61 : \"+\",\n 91 : \"{\",\n 93 : \"}\",\n 92 : \"|\",\n 59 : \":\",\n 39 : \"\\\"\",\n 44 : \"<\",\n 46 : \">\",\n 47 : \"?\"\n }\n };\n \n /**\n * jQuery number formatter plugin. This will allow you to format numbers on an element.\n *\n * @params proxied for format_number method.\n *\n * @return : The jQuery collection the method was called with.\n */\n $.fn.number = function( number, decimals, dec_point, thousands_sep ){\n \n // Enter the default thousands separator, and the decimal placeholder.\n thousands_sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep;\n dec_point = (typeof dec_point === 'undefined') ? '.' : dec_point;\n decimals = (typeof decimals === 'undefined' ) ? 0 : decimals;\n \n // Work out the unicode character for the decimal placeholder.\n var u_dec = ('\\\\u'+('0000'+(dec_point.charCodeAt(0).toString(16))).slice(-4)),\n regex_dec_num = new RegExp('[^'+u_dec+'0-9]','g'),\n regex_dec = new RegExp(u_dec,'g');\n \n // If we've specified to take the number from the target element,\n // we loop over the collection, and get the number.\n if( number === true )\n {\n // If this element is a number, then we add a keyup\n if( this.is('input:text') )\n {\n // Return the jquery collection.\n return this.on({\n \n /**\n * Handles keyup events, re-formatting numbers.\n *\n * @param object e : the keyup event object.s\n *\n * @return void;\n */\n 'keydown.format' : function(e){\n \n // Define variables used in the code below.\n var $this = $(this),\n data = $this.data('numFormat'),\n code = (e.keyCode ? e.keyCode : e.which),\n chara = '', //unescape(e.originalEvent.keyIdentifier.replace('U+','%u')),\n start = getSelection.apply(this,['start']),\n end = getSelection.apply(this,['end']),\n val = '',\n setPos = false;\n\n // Webkit (Chrome & Safari) on windows screws up the keyIdentifier detection\n // for numpad characters. I've disabled this for now, because while keyCode munging\n // below is hackish and ugly, it actually works cross browser & platform.\n \n// if( typeof e.originalEvent.keyIdentifier !== 'undefined' )\n// {\n// chara = unescape(e.originalEvent.keyIdentifier.replace('U+','%u'));\n// }\n// else\n// {\n if (_keydown.codes.hasOwnProperty(code)) {\n code = _keydown.codes[code];\n }\n if (!e.shiftKey && (code >= 65 && code <= 90)){\n code += 32;\n } else if (!e.shiftKey && (code >= 69 && code <= 105)){\n code -= 48;\n } else if (e.shiftKey && _keydown.shifts.hasOwnProperty(code)){\n //get shifted keyCode value\n chara = _keydown.shifts[code];\n }\n\n if( e.keyCode === 110 ) chara = dec_point; // Numpad dot key\n if( chara == '' ) chara = String.fromCharCode(code);\n if( e.keyCode === 46 ) chara = ''; // Delete key\n// }\n\n\n \n\n // Stop executing if the user didn't type a number key, a decimal character, or backspace.\n if( code !== 46 && code !== 8 && e.keyCode !== 110 && chara != dec_point && !chara.match(/[0-9]/) )\n {\n // We need the original keycode now...\n var key = (e.keyCode ? e.keyCode : e.which);\n if( // Allow control keys to go through... (delete, etc)\n key == 46 || key == 8 || key == 9 || key == 27 || key == 13 ||\n // Allow: Ctrl+A, Ctrl+R\n ( (key == 65 || key == 82 ) && ( e.ctrlKey || e.metaKey ) === true ) || \n // Allow: Ctrl+V, Ctrl+C\n ( (key == 86 || key == 67 ) && ( e.ctrlKey || e.metaKey ) === true ) || \n // Allow: home, end, left, right\n ( (key >= 35 && key <= 39) )\n ){\n return;\n }\n // But prevent all other keys.\n e.preventDefault();\n return false;\n }\n\n // The whole lot has been selected, or if the field is empty...\n if( start == 0 && end == this.value.length || $this.val() == 0 )\n {\n if( code === 8 )\n {\n // Blank out the field, but only if the data object has already been instanciated.\n start = end = 1;\n this.value = '';\n \n // Reset the cursor position.\n data.init = (decimals>0?-1:0);\n data.c = (decimals>0?-(decimals+1):0);\n setSelectionRange.apply(this, [0,0]);\n }\n else if( chara === dec_point && decimals>0 )\n {\n start = end = 1;\n this.value = '0'+ dec_point + (new Array(decimals+1).join('0'));\n\n // Reset the cursor position.\n data.init = (decimals>0?1:0);\n data.c = (decimals>0?-(decimals+1):0);\n }\n else //CMcV\n {\n // Reset the cursor position.\n data.init = (decimals>0?-1:0);\n data.c = (decimals>0?-(decimals):0);\n }\n }\n\n // Otherwise, we need to reset the caret position\n // based on the users selection.\n else\n {\n data.c = end-this.value.length;\n }\n\n // If the start position is before the decimal point,\n // and the user has typed a decimal point, we need to move the caret\n // past the decimal place.\n if( decimals > 0 && chara == dec_point && start == this.value.length-decimals-1 )\n {\n data.c++;\n data.init = Math.max(0,data.init);\n e.preventDefault();\n \n // Set the selection position.\n setPos = this.value.length+data.c;\n }\n \n // If the user is just typing the decimal place,\n // we simply ignore it.\n else if( chara == dec_point )\n {\n data.init = Math.max(0,data.init);\n e.preventDefault();\n }\n \n // If hitting the delete key, and the cursor is behind a decimal place,\n // we simply move the cursor to the other side of the decimal place.\n else if( decimals > 0 && code == 8 && start == this.value.length-decimals )\n {\n e.preventDefault();\n data.c--;\n \n // Set the selection position.\n setPos = this.value.length+data.c;\n }\n \n // If hitting the delete key, and the cursor is to the right of the decimal\n // (but not directly to the right) we replace the character preceeding the\n // caret with a 0.\n else if( decimals > 0 && code == 8 && start > this.value.length-decimals )\n {\n if( this.value === '' ) return;\n \n // If the character preceeding is not already a 0,\n // replace it with one.\n if( this.value.slice(start-1, start) != '0' )\n {\n val = this.value.slice(0, start-1) + '0' + this.value.slice(start);\n $this.val(val.replace(regex_dec_num,'').replace(regex_dec,dec_point));\n }\n \n e.preventDefault();\n data.c--;\n \n // Set the selection position.\n setPos = this.value.length+data.c;\n }\n \n // If the delete key was pressed, and the character immediately\n // before the caret is a thousands_separator character, simply\n // step over it.\n else if( code == 8 && this.value.slice(start-1, start) == thousands_sep )\n {\n e.preventDefault();\n data.c--;\n \n // Set the selection position.\n setPos = this.value.length+data.c;\n }\n else if( 46 === code ) // pressed Delete key\n {\n if ( end === start )\n {\n if( this.value.slice(start, start+1) == thousands_sep )\n {\n e.preventDefault();\n data.c++;\n setPos = this.value.length + data.c;\n } else\n {\n // Set the selection position.\n setPos = this.value.length + data.c;\n }\n }\n }\n\n // If the caret is to the right of the decimal place, and the user is entering a\n // number, remove the following character before putting in the new one. \n else if(\n decimals > 0 &&\n start == end &&\n this.value.length > decimals+1 &&\n start > this.value.length-decimals-1 && isFinite(+chara) &&\n !e.metaKey && !e.ctrlKey && !e.altKey && chara.length === 1\n )\n {\n // If the character preceeding is not already a 0,\n // replace it with one.\n if( end === this.value.length )\n {\n val = this.value.slice(0, start-1);\n }\n else\n {\n val = this.value.slice(0, start)+this.value.slice(start+1);\n }\n \n // Reset the position.\n this.value = val;\n setPos = start;\n }\n \n // If we need to re-position the characters.\n if( setPos !== false )\n {\n //console.log('Setpos keydown: ', setPos );\n setSelectionRange.apply(this, [setPos, setPos]);\n }\n \n // Store the data on the element.\n $this.data('numFormat', data);\n \n },\n \n /**\n * Handles keyup events, re-formatting numbers.\n *\n * @param object e : the keyup event object.s\n *\n * @return void;\n */\n 'keyup.format' : function(e){\n \n // Store these variables for use below.\n var $this = $(this),\n data = $this.data('numFormat'),\n code = (e.keyCode ? e.keyCode : e.which),\n start = getSelection.apply(this,['start']),\n setPos;\n\n // Stop executing if the user didn't type a number key, a decimal, or a comma.\n if( this.value === '' || (code < 48 || code > 57) && (code < 96 || code > 105 ) && code !== 8 && code !== 46 ) return;\n\n if( typeof data.init === 'boolean' && $this.val() === 0)\n {\n data.init = (decimals>0?-1:0);\n if( decimals > 0 )\n {\n data.c =-decimals -1;\n }\n }\n // Re-format the textarea.\n $this.val($this.val());\n // CMcV added little chec here...\n if (this.value.length == 1)\n data.init = 0;\n\n if( typeof data.init === 'boolean' && this.value.length > 0)\n {\n data.init = (decimals>0?1:0);\n data.c = start - this.value.length;\n if( decimals > 0 && start > 0 )\n {\n data.c--;\n }\n }\n if( decimals > 0 )\n {\n // If we haven't marked this item as 'initialised'\n // then do so now. It means we should place the caret just \n // before the decimal. This will never be un-initialised before\n // the decimal character itself is entered.\n if( typeof data.init === 'number' && data.init < 1 )\n {\n start = this.value.length-decimals-( data.init < 0 ? 1 : 0 );\n data.c = start-this.value.length;\n data.init = 1;\n \n $this.data('numFormat', data);\n }\n // if enter '0'\n else if( typeof data.init === 'boolean' )\n {\n data.init = 1;\n data.c =-decimals -1;\n }\n\n // Increase the cursor position if the caret is to the right\n // of the decimal place, and the character pressed isn't the backspace key.\n else if( start > this.value.length - decimals && code != 8 && code != 46 )\n {\n data.c++;\n \n // Store the data, now that it's changed.\n $this.data('numFormat', data);\n }\n else if( code == 46 && start < this.value.length - decimals && start > 0 )\n {\n if( this.value.slice(start-1, start) != thousands_sep )\n {\n data.c++;\n }\n }\n }\n // integer number\n else if( code == 46 && this.value.slice(start-1, start) !== thousands_sep && start > 0 )\n {\n data.c++;\n }\n \n //console.log( 'Setting pos: ', start, decimals, this.value.length + data.c, this.value.length, data.c );\n\n // Set the selection position.\n setPos = this.value.length+data.c;\n setSelectionRange.apply(this, [setPos, setPos]);\n },\n \n /**\n * Reformat when pasting into the field.\n *\n * @param object e : jQuery event object.\n *\n * @return false : prevent default action.\n */\n 'paste.format' : function(e){\n \n // Defint $this. It's used twice!.\n var $this = $(this),\n original = e.originalEvent,\n val = null;\n \n // Get the text content stream.\n if (window.clipboardData && window.clipboardData.getData) { // IE\n val = window.clipboardData.getData('Text');\n } else if (original.clipboardData && original.clipboardData.getData) {\n val = original.clipboardData.getData('text/plain');\n }\n \n // Do the reformat operation.\n $this.val(val);\n \n // Stop the actual content from being pasted.\n e.preventDefault();\n return false;\n }\n \n })\n \n // Loop each element (which isn't blank) and do the format.\n .each(function(){\n \n var $this = $(this).data('numFormat',{\n c : -(decimals+1),\n decimals : decimals,\n thousands_sep : thousands_sep,\n dec_point : dec_point,\n regex_dec_num : regex_dec_num,\n regex_dec : regex_dec,\n init : false\n });\n \n // Return if the element is empty.\n if( this.value === '' ) return;\n \n // Otherwise... format!!\n $this.val($this.val());\n });\n }\n else\n {\n // return the collection.\n return this.each(function(){\n var $this = $(this), num = +$this.text().replace(regex_dec_num,'').replace(regex_dec,'.');\n $this.number( !isFinite(num) ? 0 : +num, decimals, dec_point, thousands_sep );\n });\n }\n }\n \n // Add this number to the element as text.\n return this.text( $.number.apply(window,arguments) );\n };\n \n //\n // Create .val() hooks to get and set formatted numbers in inputs.\n //\n \n // We check if any hooks already exist, and cache\n // them in case we need to re-use them later on.\n var origHookGet = null, origHookSet = null;\n \n // Check if a text valHook already exists.\n if( $.isPlainObject( $.valHooks.text ) )\n {\n // Preserve the original valhook function\n // we'll call this for values we're not \n // explicitly handling.\n if( $.isFunction( $.valHooks.text.get ) ) origHookGet = $.valHooks.text.get;\n if( $.isFunction( $.valHooks.text.set ) ) origHookSet = $.valHooks.text.set;\n }\n else\n {\n // Define an object for the new valhook.\n $.valHooks.text = {};\n } \n \n /**\n * Define the valHook to return normalised field data against an input\n * which has been tagged by the number formatter.\n *\n * @param object el : The raw DOM element that we're getting the value from.\n *\n * @return mixed : Returns the value that was written to the element as a\n * javascript number, or undefined to let jQuery handle it normally.\n */\n $.valHooks.text.get = function( el ){\n \n // Get the element, and its data.\n var $this = $(el), num,\n data = $this.data('numFormat');\n \n // Does this element have our data field?\n if( !data )\n {\n // Check if the valhook function already existed\n if( $.isFunction( origHookGet ) )\n {\n // There was, so go ahead and call it\n return origHookGet(el);\n }\n else\n {\n // No previous function, return undefined to have jQuery\n // take care of retrieving the value\n return undefined;\n }\n }\n else\n { \n // Remove formatting, and return as number.\n if( el.value === '' ) return '';\n \n // Convert to a number.\n num = +(el.value\n .replace( data.regex_dec_num, '' )\n .replace( data.regex_dec, '.' ));\n \n // If we've got a finite number, return it.\n // Otherwise, simply return 0.\n // Return as a string... thats what we're\n // used to with .val()\n return ''+( isFinite( num ) ? num : 0 );\n }\n };\n \n /**\n * A valhook which formats a number when run against an input\n * which has been tagged by the number formatter.\n *\n * @param object el : The raw DOM element (input element).\n * @param float : The number to set into the value field.\n *\n * @return mixed : Returns the value that was written to the element,\n * or undefined to let jQuery handle it normally. \n */\n $.valHooks.text.set = function( el, val )\n {\n // Get the element, and its data.\n var $this = $(el),\n data = $this.data('numFormat');\n \n // Does this element have our data field?\n if( !data )\n {\n \n // Check if the valhook function already exists\n if( $.isFunction( origHookSet ) )\n {\n // There was, so go ahead and call it\n return origHookSet(el,val);\n }\n else\n {\n // No previous function, return undefined to have jQuery\n // take care of retrieving the value\n return undefined;\n }\n }\n else\n {\n // Otherwise, don't worry about other valhooks, just run ours.\n return el.value = $.number( val, data.decimals, data.dec_point, data.thousands_sep );\n }\n };\n \n /**\n * The (modified) excellent number formatting method from PHPJS.org.\n * http://phpjs.org/functions/number_format/\n *\n * @modified by Sam Sehnert (teamdf.com)\n * - don't redefine dec_point, thousands_sep... just overwrite with defaults.\n * - don't redefine decimals, just overwrite as numeric.\n * - Generate regex for normalizing pre-formatted numbers.\n *\n * @param float number : The number you wish to format, or TRUE to use the text contents\n * of the element as the number. Please note that this won't work for\n * elements which have child nodes with text content.\n * @param int decimals : The number of decimal places that should be displayed. Defaults to 0.\n * @param string dec_point : The character to use as a decimal point. Defaults to '.'.\n * @param string thousands_sep : The character to use as a thousands separator. Defaults to ','.\n *\n * @return string : The formatted number as a string.\n */\n $.number = function( number, decimals, dec_point, thousands_sep ){\n // Set the default values here, instead so we can use them in the replace below.\n thousands_sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep;\n dec_point = (typeof dec_point === 'undefined') ? '.' : dec_point;\n decimals = !isFinite(+decimals) ? 0 : Math.abs(decimals);\n \n // Work out the unicode representation for the decimal place and thousand sep. \n var u_dec = ('\\\\u'+('0000'+(dec_point.charCodeAt(0).toString(16))).slice(-4));\n var u_sep = ('\\\\u'+('0000'+(thousands_sep.charCodeAt(0).toString(16))).slice(-4));\n \n // Fix the number, so that it's an actual number.\n number = (number + '')\n .replace('\\.', dec_point) // because the number if passed in as a float (having . as decimal point per definition) we need to replace this with the passed in decimal point character\n .replace(new RegExp(u_sep,'g'),'')\n .replace(new RegExp(u_dec,'g'),'.')\n .replace(new RegExp('[^0-9+\\-Ee.]','g'),'');\n \n var n = !isFinite(+number) ? 0 : +number,\n s = '',\n toFixedFix = function (n, decimals) {\n var k = Math.pow(10, decimals);\n return '' + Math.round(n * k) / k;\n };\n \n // Fix for IE parseFloat(0.55).toFixed(0) = 0;\n s = (decimals ? toFixedFix(n, decimals) : '' + Math.round(n)).split('.');\n if (s[0].length > 3) {\n s[0] = s[0].replace(/\\B(?=(?:\\d{3})+(?!\\d))/g, thousands_sep);\n }\n if ((s[1] || '').length < decimals) {\n s[1] = s[1] || '';\n s[1] += new Array(decimals - s[1].length + 1).join('0');\n }\n return s.join(dec_point);\n }\n \n})(jQuery);","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\n\n\n\n\n\n\n;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\n\n\n\n\n\n\n\n\n\n\n\n;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\n\n\n\n\n\n\n\n\n;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","rivets = require 'rivets'\nDeepModel = require 'models/base/deep_model'\nCollection = require 'models/base/collection'\nmoment = require 'moment'\n_ = require 'underscore'\nBackbone = require 'backbone'\nModel = require 'models/base/model'\nBaseModel = Backbone.Model\nmodule.exports = class RivetsHelper\n\n setup: ->\n getKeyPathRoot = (model, keypath) ->\n keypath = keypath.split(\":\")\n model = model.get(keypath.shift()) while keypath.length > 1\n return { model: model, key: keypath.shift() }\n\n getterSetter = (model, keypath, value) ->\n root = getKeyPathRoot(model, keypath)\n model = root.model\n unless model instanceof BaseModel\n return model\n if arguments.length is 2\n if keypath is '_syncState' #hack for model.fetch hookup\n return model._syncState\n return model.get(root.key)\n model.set root.key, value\n return\n\n read = (obj, keypath) ->\n return obj[keypath] if obj instanceof Backbone.Collection\n value = getterSetter(obj, keypath)\n\n # rivets cant iterate over Backbone.Collection -> return Array\n return value.models if value instanceof Backbone.Collection\n value\n\n publish = (obj, keypath, value) ->\n if obj instanceof Collection\n obj[keypath] = value\n else\n getterSetter obj, keypath, value\n return\n\n onOffFactory = (action) ->\n (model, keypath, callback) ->\n return unless (model instanceof BaseModel or model instanceof Collection)\n\n root = getKeyPathRoot(model, keypath)\n\n collection = root.model.get(root.key) || root.model || root\n if collection instanceof Collection\n collection[action] \"add remove reset filter sort change syncStateChange\", callback\n else\n root.model[action] \"change:\" + root.key, callback\n return\n\n rivets.adapters[\":\"] =\n subscribe: onOffFactory(\"on\")\n unsubscribe: onOffFactory(\"off\")\n read: read\n publish: publish\n\n rivets.config.rootInterface = '>'\n rivets.adapters['>'] = rivets.adapters['.']\n delete rivets.adapters['.']\n\n rivets.formatters.pre = (value, pre) ->\n pre + value\n\n rivets.formatters.fallback = (value, fb...) ->\n value || fb.join(' ')\n\n rivets.formatters.eq = (value, test) ->\n value?.toString() is test?.toString()\n\n rivets.formatters.any = (value, test...) ->\n _.some(test, (t)->\n value?.toString() is t?.toString()\n )\n\n rivets.formatters.fallback = (value, words...) ->\n if !value? || (typeof value is 'string' && value.trim() is \"\")\n return words.join ' '\n return value\n\n rivets.formatters.bracketify = (value) ->\n return \"(#{value})\" if value?\n return \"\"\n\n rivets.formatters.spaceify = (value) ->\n return \" #{value} \" if value?\n return \"\"\n\n rivets.formatters.toJSON = (value) ->\n return value.toJSON() if value.toJSON?\n return \"\"\n\n rivets.formatters.parseAsJson = (value) ->\n return {} unless value?\n return JSON.parse(value)\n\n rivets.formatters.before = (value, words...) ->\n words = words.join ' '\n return if value? then \"#{words}#{value}\" else \"\"\n\n rivets.formatters.after = (value, words...) ->\n words = words.join ' '\n return if value? then \"#{value}#{words}\" else \"\"\n\n rivets.formatters.timestamp = (value) ->\n return \"\" unless value?\n return \"#{value}×tamp='#{new moment().format('X')}'\"\n\n rivets.formatters.date = (value, words...) ->\n return words.join ' ' unless value?\n return words.join ' ' if $.isEmptyObject(value)\n\n moment(value).format(\"DD/MM/YYYY\")\n\n rivets.formatters.dateTime = (value, words...) ->\n return words.join ' ' unless value?\n return words.join ' ' if $.isEmptyObject(value)\n\n moment(value).format(\"DD/MM/YYYY [at] hh:mm\")\n\n rivets.formatters.fromNow = (value) ->\n if not value?\n return words.join ' '\n if $.isEmptyObject(value)\n return words.join ' '\n moment(value).fromNow()\n\n rivets.formatters.backThen = (value) ->\n if not value? || $.isEmptyObject(value)\n return \"\"\n _then = moment().subtract(value.length, 'days').format('MMMM YYYY')\n _now = moment().format('MMMM YYYY')\n return _then + \" to \" + _now\n\n rivets.formatters.isPast = (value) ->\n return new moment(value) < moment()\n\n rivets.formatters.gender = (value) ->\n return 'Male' if value is 'M'\n return \"Female\" if value is 'F'\n return \"Not Specified\" if value is 'N'\n return value\n\n rivets.formatters.currency = (value, trim) ->\n result = \"£\" + parseFloat(value).toFixed(2)\n if result.indexOf(\".00\") > 0 and trim\n return \"£\" + parseFloat(value).toFixed(0)\n return result\n\n rivets.formatters.percentage = (value) ->\n return parseFloat(value).toFixed(2) + \"%\"\n\n rivets.formatters.toFixed = {\n read: (value, args) ->\n return parseFloat(value).toFixed(args)\n publish: (value, args)->\n return parseFloat(value)\n }\n\n rivets.formatters.capitalize = {\n read: (value) ->\n return value\n publish: (value)->\n return value.capitalize()\n }\n rivets.formatters.prepend = (value, pre) ->\n return pre + value\n\n rivets.formatters.append = (value, pre) ->\n return value + pre\n\n rivets.formatters.invert = (value) ->\n return !value\n\n rivets.formatters.trueif = (value, value2) ->\n if typeof value is \"boolean\"\n return value.toString() is value2\n return value is value2\n\n rivets.formatters.isGreater = (value, value2) =>\n return value > parseInt(value2)\n\n rivets.formatters.isLess = (value, value2) =>\n return value < parseInt(value2)\n\n rivets.formatters.LTE = (value, value2) =>\n return value <= parseInt(value2)\n\n rivets.formatters.isEqual = (value, value2) ->\n return parseInt(value) is parseInt(value2)\n\n rivets.formatters.hasMore = (collection) ->\n return false unless collection and collection.total?\n return collection.total > collection.length\n\n rivets.formatters.hasMoreThan = (array, than) ->\n return false unless array\n return array.length > than\n\n rivets.formatters.remainingCountOr = (collection, step) ->\n return 0 unless collection and collection.total?\n return Math.min(collection.total - collection.length, 25)\n\n rivets.formatters.limit = {\n read: (value, args) ->\n return value\n publish: (value, args...)->\n min = if args[0]? then parseFloat(args[0]) else -Infinity\n max = if args[1]? then parseFloat(args[1]) else Infinity\n\n return min if value < min || _.isNaN(value)\n return max if value > max\n return value\n }\n\n rivets.formatters.math = (value, operator, value2) ->\n switch operator\n when \"+\" then return parseInt(value) + parseInt(value2)\n when \"-\" then return parseInt(value) - parseInt(value2)\n when \"*\" then return parseInt(value) * parseInt(value2)\n when \"/\" then return Math.ceil(parseInt(value) / parseInt(value2))\n else return \"\"\n\n rivets.formatters.empty = (value) ->\n return not value?\n\n rivets.formatters.isBetween = (value, args...) ->\n return value >= parseInt(args[0]) and value <= parseInt(args[1])\n\n rivets.formatters.valueIn = (value, args...) ->\n valueIn = args.join \"\"\n return valueIn.indexOf(value) >= 0\n\n rivets.formatters.contains = (value, arg) ->\n return false unless value? and _.isArray(value)\n return _.contains(value, arg)\n\n rivets.formatters.first = (value, length) ->\n return [] unless value? and _.isArray(value)\n return _.first(value, length || 1)\n\n rivets.formatters.rest = (value, offset) ->\n return [] unless value? and _.isArray(value)\n return _.rest(value, offset || 1)\n\n rivets.formatters.groupBy = (value, key) ->\n return [] unless value? and _.isArray(value) and value.length > 0\n #To insure json list before converting to deep models\n list = new Collection(value).toJSON()\n collection = new Collection(list, {model:DeepModel})\n return collection.groupBy((x)-> x.get(key))\n\n rivets.formatters.groupByAndSort = (value, key, sortBy) ->\n return [] unless value? and _.isArray(value) and value.length > 0\n #To insure json list before converting to deep models\n list = new Collection(value).toJSON()\n collection = new Collection(list, {model:DeepModel})\n collection.sort_key = sortBy\n collection.sort()\n return collection.groupBy((x)-> x.get(key))\n\n # rivets.formatters.hasItems = (value) ->\n # value? and value instanceof Array and value.length > 0\n\n rivets.formatters.hasItems = (value, min, max) ->\n return false unless value? and _.isArray(value)\n min = parseInt(min || 1)\n max = parseInt(max || value.length)\n return !(value.length < min || value.length > max)\n\n rivets.formatters.length = (value) ->\n return 0 unless value? and _.isArray(value)\n return value.length\n\n rivets.formatters.min = (value, other) ->\n Math.min(value || 0, other || 0)\n\n rivets.formatters.toArray = (collection) ->\n return [] if !collection?\n collection.models\n\n rivets.formatters.toList = (value) ->\n return [] unless value?\n return _.values(value)\n\n rivets.formatters.firstValues = (collection) ->\n if collection? and collection.length > 0\n return collection[0].values\n return []\n\n rivets.formatters.modelAt = (collection, idx, prop) ->\n idx = parseInt(idx)\n if collection? && collection.length > 0 && collection.length > idx\n obj = collection[idx].toJSON()\n return if prop? then obj[prop] else obj\n return null\n\n rivets.formatters.stringToBool = (value) ->\n return value is \"true\" || value is true\n\n rivets.formatters.toExternalLink = (value) ->\n return \"\" unless value?\n return value if value.substring(0, 7) is 'http://'\n return \"http://#{value}\"\n\n rivets.formatters.YesNo = (value, yes_word, no_word) ->\n return yes_word if value\n return no_word\n\n rivets.formatters.dateFormat = (value, args...) =>\n return null unless value?\n return moment(value).format(args.join(' '))\n\n rivets.formatters.status = (value) =>\n if value == \"InProgress\"\n return \"In Progress\"\n else\n return value\n\n rivets.formatters.toKeyValuePair = (value) =>\n dictionary = []\n _.each(_.pairs(value), (kvp) =>\n dictionary.push({ key:kvp[0], value:kvp[1] })\n )\n return dictionary\n\n rivets.formatters.toDay = (value) =>\n return \"\" unless value >= 0 && value < 7\n return new moment().day(value).format(\"dddd\")\n\n rivets.formatters.toDate = (value) =>\n return \"\" unless value > 0\n return new moment().date(value).format(\"Do\")\n\n rivets.formatters.toNumeric = (value) =>\n return if $.isNumeric(value) then parseFloat(value) else NaN\n\n rivets.formatters.toString = (value) =>\n return value.toString()\n\n rivets.formatters.substring = (value, args...) =>\n return value.substring(parseInt(args[0]), parseInt(args[1]))\n\n rivets.formatters.flatText = (value) =>\n return value.replace(/\\n/g, \" \")\n\n rivets.formatters.nullOrWhiteSpace = (value)=>\n return !value? or value.trim().length < 1\n\n rivets.formatters.nullOrUndefined = (value) =>\n return !value?\n\n rivets.formatters.nullOrEmptyGuid = (value)=>\n return !value? || _.isEmptyGuid(value)\n\n rivets.formatters.hasProperty = (value, args) =>\n return value? and args? and value[args]?\n\n rivets.formatters.toLower = (value) ->\n return \"\" unless value?\n return value.toLowerCase()\n\n rivets.formatters.uncamel = (s) ->\n return \"\" if !s\n return s\n .replace(/([A-Z])/g, ' $1')\n .replace(/^./, (str) -> str.toUpperCase())\n\n rivets.formatters.toColour = (c) =>\n return unless (c? && c.trim() isnt \"\")\n keys = [\"r\", \"g\", \"b\", \"a\"]\n vals = []\n\n if(c.substring(0, 3).toLowerCase() is \"rgb\")\n vals = c.substring(c.indexOf(\"(\") + 1, c.lastIndexOf(\")\")).split(\",\")\n vals.push(\"255\") if vals.length < 4\n\n for i in [0..3]\n vals[i] = parseInt(vals[i])\n return _.object(keys, vals)\n\n c = c.substring(1, c.length) if (c.charAt(0) is '#')\n\n for i in [0..(c.length/2)-1]\n vals.push(parseInt(c.substring(i*2, (i*2)+2), 16))\n vals.push(255) if vals.length < 4\n return _.object(keys, vals)\n\n rivets.formatters.toHSL = (c) =>\n return unless c?\n c.r /= 255\n c.g /= 255\n c.b /= 255\n max = Math.max(c.r, c.g, c.b)\n min = Math.min(c.r, c.g, c.b)\n l = (max + min) / 2\n if max == min\n h = s = 0\n else\n d = max - min\n s = if l > 0.5 then d / (2 - max - min) else d / (max + min)\n switch max\n when c.r\n h = (c.g - c.b) / d + (if c.g < c.b then 6 else 0)\n when c.g\n h = (c.b - c.r) / d + 2\n when c.b\n h = (c.r - c.g) / d + 4\n h /= 6\n\n return {h:h, s:s, l:l}\n\n rivets.formatters.fromHSL = (c) =>\n return unless c?\n hue2rgb = (p, q, t) ->\n t += 1 if t < 0\n t -= 1 if t > 1\n\n if t < 1 / 6\n return p + (q - p) * 6 * t\n if t < 1 / 2\n return q\n if t < 2 / 3\n return p + (q - p) * (2 / 3 - t) * 6\n return p\n\n if c.s == 0\n r = g = b = c.l\n else\n q = if c.l < 0.5 then c.l * (1 + c.s) else c.l + c.s - c.l * c.s\n p = 2 * c.l - q\n r = hue2rgb(p, q, c.h + 1 / 3)\n g = hue2rgb(p, q, c.h)\n b = hue2rgb(p, q, c.h - (1 / 3))\n\n return {\n r: Math.round(r * 255)\n g: Math.round(g * 255)\n b: Math.round(b * 255)\n }\n\n rivets.formatters.toRGBA= (c) =>\n return unless c?\n c.a = 255 unless c.a?\n return \"rgba(#{c.r}, #{c.g}, #{c.b}, #{c.a})\"\n\n rivets.formatters.lighten = (c, percentage) =>\n return unless c?\n percentage = percentage || 0\n c.r = Math.min(c.r + Math.round(percentage * 2.55), 255)\n c.g = Math.min(c.g + Math.round(percentage * 2.55), 255)\n c.b = Math.min(c.b + Math.round(percentage * 2.55), 255)\n return c\n\n rivets.formatters.darken = (c, percentage) =>\n return unless c?\n percentage = percentage || 0\n c.r = Math.max(c.r - Math.round(percentage * 2.55), 0)\n c.g = Math.max(c.g - Math.round(percentage * 2.55), 0)\n c.b = Math.max(c.b - Math.round(percentage * 2.55), 0)\n return c\n\n rivets.formatters.lightenHSL = (c, percentage) =>\n return unless c?\n percentage = percentage || 0\n c.l = Math.min(c.l + (percentage/100), 1)\n return c\n\n rivets.formatters.darkenHSL = (c, percentage) =>\n return unless c?\n percentage = percentage || 0\n c.l = Math.max(c.l - (percentage/100), 0)\n return c\n\n rivets.formatters.commaSeparate = (array) ->\n return \"\" unless ((array instanceof Array || array instanceof Collection) && array.length > 0)\n if array instanceof Collection\n array = array.toJSON()\n\n rivets.formatters.join = (value, prop, seperator) ->\n seperator ?= \", \"\n return _.pluck(value, prop).join(seperator)\n\n rivets.formatters.convert = (value, property) ->\n c = new Collection(value.get(property))\n value.set(property, c)\n return c.models\n\n rivets.formatters.toObjects = (value) ->\n return _.pluck(value, \"attributes\")\n\n rivets.formatters.modelize = (value) ->\n if value instanceof Array\n new Collection(value).models\n else\n new Model(value)\n\n rivets.formatters.dekey = (svc) ->\n c = new Collection\n for key in _.keys(svc)\n c.add({id:key, name:svc[key]})\n c.models\n\n rivets.formatters.filepath = (value) =>\n return value.replace(/\\//g,\"%2f\")\n .replace(/\\\\/g,\"%2f\")\n\n rivets.formatters.stock = (service) =>\n s = service.toJSON()\n price = s.exVat * 1+(s.vatRate/100)\n return \"#{s.name} (£#{price.toFixed(2)})\"\n\n rivets.formatters.disciplines = (services) ->\n return _.uniq(_.pluck(_.pluck(services, 'clinicalService'), 'discipline'))\n\n rivets.formatters.services = (services) ->\n return _.pluck(_.pluck(services, 'clinicalService'), 'name')\n\n rivets.formatters.allNetworkServices = (disciplines) ->\n return 0 unless (disciplines? && disciplines.length > 0)\n\n services = 0\n for d in disciplines\n services += (d.get?(\"services\")?.toJSON() || []).length\n\n return services\n\n rivets.formatters.networkServices = (disciplines) ->\n return 0 unless (disciplines? && disciplines.length > 0)\n\n services = []\n for d in disciplines\n services.push(d.get?(\"services\")?.toJSON() || [])\n\n return _.reduce(_.flatten(services), ((memo, num)->\n return memo + if num.clinicalService? then 1 else 0) , 0)\n\n rivets.formatters.networkInUse = (disciplines) ->\n return false unless (disciplines? && disciplines.length > 0)\n\n for d in disciplines\n services = d.get?(\"services\")?.toJSON() || []\n for s in services\n return true if s.clinicalService?\n\n return false\n\n rivets.formatters.disciplineInUse = (services) ->\n return false unless (services? && services.length > 0)\n\n for s of services\n return true if services[s].get(\"clinicalService.checked\")\n\n return false\n\n rivets.formatters.debugger = (value) ->\n console.log arguments\n debugger\n return value\n\n rivets.formatters.log = (value) ->\n console.log value\n return value\n\n rivets.formatters.ternary = (value, args...) ->\n words = args.join(' ');\n isTrue = args[0]\n isFalse = args[1]\n if args.length > 2 && words.indexOf(',') > 0\n words = words.split(',')\n isTrue = words[0]\n isFalse = words[1]\n return if value is true then isTrue else isFalse\n\n #Binders\n rivets.binders[\"style-*\"] = (el, value) ->\n $(el).css(@args[0], if value? then value else \"\")\n\n rivets.binders.skin = (el, value) ->\n $el = $(el)\n $el.removeClass((index, css) ->\n return (css.match(/(^|\\s)skin-\\S+/g) || []).join(' ')\n ).addClass(\"skin-#{value}\")\n\n rivets.formatters.filter = (arr, property, value) ->\n _.filter(arr, (x) -> x.get(property) is value)\n\n rivets.formatters.bind = (callback, args) ->\n callback.bind(this, args)\n\n rivets.binders.module = (el, value) ->\n elClass = \" #{el.className} \"\n\n if elClass.indexOf(\" #{value} \") is -1\n el.className += \" #{value}\"\n\n rivets.binders.icon = (el, value) ->\n el.className = value\n\n rivets.binders.selected = (el, value) =>\n return false unless value?\n val = el.value || el.getAttribute(\"value\")\n if value.toString() is val\n el.setAttribute(\"selected\", \"selected\")\n else\n el.removeAttribute(\"selected\")\n\n rivets.binders.background = (el, value) ->\n el.style.background = value || \"white\" # \"#B3DBE8\"\n\n rivets.binders.emphasize = (el, value) ->\n return false unless value?\n if value.toString() is el.getAttribute(\"index\")\n el.classList.add(\"emphasize\")\n else\n el.classList.remove(\"emphasize\")\n\n rivets.binders.min = (el, value) =>\n return unless value?\n value = parseFloat(value)\n el.min = value\n if value > el.value\n el.value = value\n $(el).trigger(\"change\")\n\n rivets.binders.active = (el, value)=>\n index = el.getAttribute(\"index\")\n\n if value? && value.toString() is index\n el.classList.add(\"active\")\n $(el).find(\".item-body\").slideDown()\n else\n el.classList.remove(\"active\")\n $(el).find(\".item-body\").slideUp()\n\n rivets.binders.validate = (el, value) ->\n $el = $(el)\n $el.removeClass(\"valid invalid unvalidated\")\n\n tooltips = Foundation.libs.tooltip\n\n $input = $el.find('input, select')\n\n if (!value? || value.isValid is true)\n $el.addClass(if !value? then \"unvalidated\" else \"valid\")\n $tip = tooltips.getTip($input)\n\n $input.removeClass(\"has-tip tip-top open\")\n .removeAttr(\"data-tooltip\")\n .removeAttr(\"data-selector\")\n .removeData()\n\n $tip?.remove();\n\n return\n\n if value.isValid is false\n $el.addClass(\"invalid\")\n $input.addClass(\"has-tip tip-top\")\n\n $input.attr(\"data-tooltip\": \"\")\n $input.attr(title: value.message)\n\n tooltips.init()\n\n return\n\n rivets.binders.sort = (el, value) ->\n $el = $(el)\n key = $el.data(\"sort-key\")\n\n if (key is value)\n $(\"[data-sort]\").find(\".sort-indicator\").remove()\n $el.append('
')\n if (key + \" DESC\" is value)\n $(\"[data-sort]\").find(\".sort-indicator\").remove()\n $el.append('
')\n\n rivets.binders.priority = (el, value) ->\n el.innerText = value.indexOf($(el).attr(\"priority-key\")) + 1\n\n rivets.binders.currentpage = (el, page)=>\n page = page.toString()\n el.classList.remove(\"current\")\n val = el.getAttribute(\"value\")\n if val is page\n el.classList.add(\"current\")\n\n # rivets.binders.currentpage = (el, page)=>\n # debugger\n # page = page.toString()\n # el.classList.remove(\"current\")\n # elVal = el.getElementsByTagName(\"input\")[0].getAttribute(\"value\")\n # if elVal? && elVal is page\n # el.classList.add(\"current\")\n\n # These two binders are overrides to the default rivets ones\n # They are overidden so that other elements such as anchor tags\n # can be disabled if the el does not have the disabled property\n rivets.binders.enabled = (el, value) ->\n if !value\n el.disabled = true\n $(el).attr(\"disabled\", \"disabled\")\n else\n el.disabled = false\n $(el).removeAttr(\"disabled\")\n\n rivets.binders.disabled = (el, value) ->\n if !!value\n el.disabled = true\n $(el).attr(\"disabled\", \"disabled\")\n else\n el.disabled = false\n $(el).removeAttr(\"disabled\")\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"
×



\");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"
×



\");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","/**\n * Underscore mixins for deep objects\n *\n * Based on https://gist.github.com/echong/3861963\n */\nvar _ = require('underscore')\nvar Backbone = require('backbone')\n\nmodule.exports = function() {\n\n var arrays, basicObjects, deepClone, deepExtend, deepExtendCouple, isBasicObject,\n __slice = [].slice;\n\n deepClone = function(obj) {\n var func, isArr;\n if (!_.isObject(obj) || _.isFunction(obj)) {\n return obj;\n }\n if (obj instanceof Backbone.Collection || obj instanceof Backbone.Model) {\n return obj;\n }\n if (_.isDate(obj)) {\n return new Date(obj.getTime());\n }\n if (_.isRegExp(obj)) {\n return new RegExp(obj.source, obj.toString().replace(/.*\\//, \"\"));\n }\n isArr = _.isArray(obj || _.isArguments(obj));\n func = function(memo, value, key) {\n if (isArr) {\n memo.push(deepClone(value));\n } else {\n memo[key] = deepClone(value);\n }\n return memo;\n };\n return _.reduce(obj, func, isArr ? [] : {});\n };\n\n isBasicObject = function(object) {\n if (object == null) return false;\n return (object.prototype === {}.prototype || object.prototype === Object.prototype) && _.isObject(object) && !_.isArray(object) && !_.isFunction(object) && !_.isDate(object) && !_.isRegExp(object) && !_.isArguments(object);\n };\n\n basicObjects = function(object) {\n return _.filter(_.keys(object), function(key) {\n return isBasicObject(object[key]);\n });\n };\n\n arrays = function(object) {\n return _.filter(_.keys(object), function(key) {\n return _.isArray(object[key]);\n });\n };\n\n deepExtendCouple = function(destination, source, maxDepth) {\n var combine, recurse, sharedArrayKey, sharedArrayKeys, sharedObjectKey, sharedObjectKeys, _i, _j, _len, _len1;\n if (maxDepth == null) {\n maxDepth = 20;\n }\n if (maxDepth <= 0) {\n console.warn('_.deepExtend(): Maximum depth of recursion hit.');\n return _.extend(destination, source);\n }\n sharedObjectKeys = _.intersection(basicObjects(destination), basicObjects(source));\n recurse = function(key) {\n return source[key] = deepExtendCouple(destination[key], source[key], maxDepth - 1);\n };\n for (_i = 0, _len = sharedObjectKeys.length; _i < _len; _i++) {\n sharedObjectKey = sharedObjectKeys[_i];\n recurse(sharedObjectKey);\n }\n sharedArrayKeys = _.intersection(arrays(destination), arrays(source));\n combine = function(key) {\n return source[key] = _.union(destination[key], source[key]);\n };\n for (_j = 0, _len1 = sharedArrayKeys.length; _j < _len1; _j++) {\n sharedArrayKey = sharedArrayKeys[_j];\n combine(sharedArrayKey);\n }\n return _.extend(destination, source);\n };\n\n deepExtend = function() {\n var finalObj, maxDepth, objects, _i;\n objects = 2 <= arguments.length ? __slice.call(arguments, 0, _i = arguments.length - 1) : (_i = 0, []), maxDepth = arguments[_i++];\n if (!_.isNumber(maxDepth)) {\n objects.push(maxDepth);\n maxDepth = 20;\n }\n if (objects.length <= 1) {\n return objects[0];\n }\n if (maxDepth <= 0) {\n return _.extend.apply(this, objects);\n }\n finalObj = objects.shift();\n while (objects.length > 0) {\n finalObj = deepExtendCouple(finalObj, deepClone(objects.shift()), maxDepth);\n }\n return finalObj;\n };\n _.mixin({\n deepClone: deepClone,\n isBasicObject: isBasicObject,\n basicObjects: basicObjects,\n arrays: arrays,\n deepExtend: deepExtend\n });\n\n};\n","Chaplin = require 'chaplin'\n\nmediator = module.exports = Chaplin.mediator\n","Chaplin = require 'chaplin'\nModel = require './model'\n_ = require 'underscore'\nmoment = require 'moment'\n\nmodule.exports = class Collection extends Chaplin.Collection\n # Mixin a synchronization state machine.\n _(@prototype).extend Chaplin.SyncMachine\n sort_key: undefined\n # Use the project base model per default, not Chaplin.Model\n model: Model\n\n initialize: =>\n super\n @_previousSync = null\n @_syncState = \"unsynced\"\n @filtered = @models\n @on 'add remove reset sort', =>\n @finishSync()\n\n applyFilter: (args...)=>\n @filterArgs = args\n @filtered = _.filter(@models, @filterFn, this)\n @trigger(\"filter\")\n\n filterFn: ()=>\n return true\n\n fetch: (options) =>\n @beginSync()\n options ?= {}\n options.silent = true\n options.success = _.wrap (options.success ? ->), (func, args...) =>\n func args...\n @sort()\n return super(options)\n\n reset:=>\n #safety method incase not called in post\n @beginSync() unless @isSyncing()\n super\n\n parse: (resp, xhr) ->\n resp.result or resp.results or resp\n\n comparator: (a, b) =>\n return 0 unless @sort_key?\n keys = @sort_key.split(\" \");\n sortKey = keys[0];\n fallback_a = '0'\n fallback_b = '0'\n if sortKey is 'reference'\n fallback_a = a.id\n fallback_b = b.id\n\n\n ## If sort key is property of an array, then just sort by that first element in the array for each model.\n isArray = if sortKey.indexOf('[') >= 0 then true else false\n if isArray\n arrayName = sortKey.substring(0, sortKey.indexOf('['))\n arrayProperty = sortKey.substring(sortKey.indexOf(']') + 2)\n if a.get(arrayName)? and a.get(arrayName).length > 0 and b.get(arrayName)? and b.get(arrayName).length > 0\n a = a.get(arrayName)[0][arrayProperty] || fallback_a\n b = b.get(arrayName)[0][arrayProperty] || fallback_b\n else\n a = a.get(sortKey) || fallback_a\n b = b.get(sortKey) || fallback_b\n unless isNaN(a) or isNaN(b)\n a = parseFloat(a) || 0\n b = parseFloat(b) || 0\n validDateFormats = [\n \"YYYY-MM-DD hh:mm:ss\"\n \"YYYY-MM-DD\",\n \"DD-MM-YYYY\",\n \"DD-MM-YY\",\n \"YYYY/MM/DD\",\n \"DD/MM/YYYY\",\n \"DD/MM/YY\"\n ]\n aIsDate = a isnt '0' and moment(a, validDateFormats, true).isValid()\n bIsDate = b isnt '0' and moment(b, validDateFormats, true).isValid()\n\n if aIsDate or bIsDate \n a = if aIsDate then new Date(a) else new Date()\n b = if bIsDate then new Date(b) else new Date()\n\n\n if keys.length > 1 and keys[1] = 'DESC'\n return 1 if a < b\n return -1 if a > b\n return 0\n else\n return 1 if a > b\n return -1 if a < b\n return 0\n\n all: =>\n @each((m)=>m.set(selected:true))\n\n none: =>\n @each((m)=>m.set(selected:false))\n","Chaplin = require 'chaplin'\r\n_ = require 'underscore'\r\nDeepModel = require './deep_model'\r\nCollection = require './collection'\r\n\r\nmodule.exports = class ConvertedDeepModel extends DeepModel\r\n\r\n constructor: (attributes, options) ->\r\n attributes = @convert(attributes)\r\n super(attributes, options)\r\n \r\n initialize: =>\r\n super\r\n\r\n for a of @attributes\r\n attr = @attributes[a]\r\n continue unless attr instanceof Collection\r\n @listenTo attr, \"change\", (m, v)=>\r\n @collection?.trigger(\"change\")\r\n\r\n convert: (attr)=>\r\n for p of attr\r\n prop = attr[p]\r\n if prop instanceof Array\r\n attr[p] = new Collection(prop, {model:ConvertedDeepModel})\r\n\r\n return attr\r\n\r\n toJSON: =>\r\n attr = super\r\n for p of attr\r\n prop = attr[p]\r\n if prop instanceof Collection\r\n attr[p] = prop.toJSON()\r\n return attr","Chaplin = require 'chaplin'\n_ = require 'underscore'\nBackbone = require 'backbone'\nCollection = require './collection'\n\nmodule.exports = class DeepModel extends Backbone.DeepModel\n\n # Mixin an Event Broker\n _(@prototype).extend Chaplin.SyncMachine\n _(@prototype).extend Chaplin.EventBroker\n\n attributes = ['getAttributes', 'serialize', 'disposed']\n for attr in attributes\n @::[attr] = Chaplin.Model::[attr]\n \n initialize: =>\n super\n @_previousSync = null\n @_syncState = \"unsynced\"\n @on 'syncStateChange', (args...) =>\n @trigger 'change:_syncState', args\n\n dispose: ->\n return if @disposed\n Chaplin.Model::dispose.call(this)\n\n fetch: (options) =>\n @beginSync() \n super(options).done =>\n @finishSync()\n\n parse: (resp, xhr) ->\n return resp.result or resp.results or resp\n","Chaplin = require 'chaplin'\n_ = require 'underscore'\nBackbone = require 'backbone'\n\nmodule.exports = class Model extends Chaplin.Model\n _(@prototype).extend Chaplin.SyncMachine\n \n initialize: =>\n super\n @_previousSync = null\n @_syncState = \"unsynced\"\n @on 'syncStateChange', (args...) =>\n @trigger 'change:_syncState', args\n \n fetch: (options) =>\n @beginSync() \n super(options).done =>\n @finishSync()\n\n parse: (resp, xhr) ->\n resp.result or resp.results or resp\n ","Collection = require './collection'\n\nmodule.exports = class PagingCollection extends Collection\n model: require './model'\n\n parse: (res) =>\n @total = res?.total\n @hasMore = (@total || -1) > (@length + (res.results || res).length)\n @remaining = @total - (@length + (res.results || res).length)\n return res.results or res\n","View = require 'views/base/view'\nModel = require 'models/base/model'\nValidationMachine = require 'lib/ValidationMachine'\nChaplin = require 'chaplin'\n\nclass ResetPassordModel extends Model\n url: '/api/system/users/resetPassword'\n\nclass ChangePasswordModel extends Model\n url: '/api/system/users/changePassword'\n\nclass PasswordValidator extends ValidationMachine\n applyRules: =>\n super\n @required 'confirmPassword'\n @required 'newPassword'\n @requiredIf 'oldPassword', => @model.get 'resetMode' is true\n @zxcvbnValidate 'confirmPassword'\n @zxcvbnValidate 'newPassword'\n\nmodule.exports = class ChangePasswordView extends View\n template: require('./changepw')\n validator: PasswordValidator\n initialize:(args)=>\n super\n if !!args.code\n @model = new ResetPassordModel()\n @model.set 'resetMode', true\n @model.set 'resetCode', args.code\n else\n @model = new ChangePasswordModel()\n\n changepw: =>\n @view.set 'submitted', true\n return false unless @isValid()\n @model.save().done =>\n Chaplin.utils.redirectTo url: '/login'\n return false\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"

Change your Pronto Network Password



\");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"

Loading Pronto

\");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","View = require 'views/base/view'\n\nmodule.exports = class LoadingView extends View\n template: require './loading'\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"

Login to the Pronto Portal


\");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","NonAuthController = require 'controllers/base/non_auth_controller'\nLoginView = require './login_view'\nLoadingView = require './loading_view'\nHeaderView = require 'views/home/header-view'\nChangePasswordView = require './change_password_view'\n\nmodule.exports = class LoginController extends NonAuthController\n\n index: ->\n @view = new LoginView region: 'main'\n \n loading: ->\n @view = new LoadingView region: 'main'\n\n logout: =>\n $.getJSON('/api/auth/logout').done =>\n window.location = '/login'\n \n changePassword: (args) =>\n @view = new ChangePasswordView \n code: args.code\n region: 'main'","View = require 'views/base/view'\nModel = require 'models/base/model'\nChaplin = require 'chaplin'\nValidationMachine = require 'lib/ValidationMachine'\nAuthHelper = require 'lib/auth-helper'\n\nclass Login extends Model\n url: '/api/auth/credentials'\n\nclass LoginValidator extends ValidationMachine\n applyRules: =>\n super\n @required 'username'\n @required 'password'\n\nmodule.exports = class LoginView extends View\n template: require './login'\n title: 'You need to login'\n validator: LoginValidator\n\n initialize: =>\n super\n @model = new Login()\n @view = new Model(submitted: !@model.isNew())\n\n login: =>\n @view.set(\"submitted\", true)\n return false unless @isValid()\n authHelper = new AuthHelper(\"/\")\n @view.set saving:true\n @model.save()\n .done(authHelper.done)\n .error (xhr, res) =>\n errors = xhr.responseJSON.responseStatus.errors || []\n errors.push message: xhr.responseJSON.responseStatus.message if errors.length is 0 \n @model.set 'errors', errors\n @view.set saving:false\n return false\n\n\n","Controller = require 'controllers/base/controller'\nListView = require './list'\nHomeView = require './home'\nHeaderView = require 'views/home/header-view'\n\n\nmodule.exports = class BookerController extends Controller\n beforeAction: ->\n super\n @reuse 'header', HeaderView, region: 'header'\n\n index: ->\n @view = new ListView region: 'main'\n\n home: (args) ->\n @view = new HomeView region: 'main', id: args.id\n\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"
×

Add BookerEdit Booker



\");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","DialogView = require 'views/base/dialog_view'\nValidationMachine = require 'lib/ValidationMachine'\nclass BookerValidator extends ValidationMachine\n applyRules: =>\n super\n @required 'name'\n @required 'email'\n\nmodule.exports = class BookerDialog extends DialogView\n template: require './BookerDialog'\n id: 'BookerDialog'\n validator: BookerValidator\n initialize: (args) =>\n super\n @mode = args.mode ||'Edit'\n\n save: =>\n @view.set 'submitted', true\n return false unless @isValid()\n @view.set 'saving', true\n @model.save().done =>\n @publishEvent 'booker:saved', @model.toJSON()\n @close()\n return false\n","_ = require 'underscore'\r\n$ = require 'jquery'\r\n\r\nDialogView = require 'views/base/dialog_view'\r\nView = require 'views/base/view'\r\nModel = require 'models/base/model'\r\nCollection = require 'models/base/collection'\r\nAddStock = require '../add-stock'\r\n\r\nValidationMachine = require 'lib/ValidationMachine'\r\nStock = require '../add-stock/stock'\r\nColourPicker = require 'colour-picker'\r\nrivets = require 'rivets'\r\n\r\nclass ClientWhoReceives extends Model\r\n url: '/api/myclinic'\r\n\r\nclass Locations extends Collection\r\n url: '/api/locations'\r\n\r\nclass Practitioners extends Collection\r\n url: '/api/practitioners'\r\n\r\nclass Groups extends Collection\r\n url: '/api/groups/list'\r\n\r\nclass Referrers extends Collection\r\n url: '/api/system/targets/referrers'\r\n\r\nclass StockCollection extends Collection\r\n url: '/api/stock/pronto'\r\n\r\nclass StockValidator extends ValidationMachine\r\n applyRules: =>\r\n super\r\n @requiredIf 'newStockName', => @view.get 'newCharge'\r\n @minIf 'newStockTotal', 0.01, => @view.get 'newCharge'\r\n @requiredIf 'newStockReference', => @view.get 'newCharge'\r\n\r\nclass AdvancedStockLink extends View\r\n template: require './select-charge-subview'\r\n tagName:'td'\r\n optionNames: DialogView::optionNames.concat ['stock', 'view']\r\n\r\n attributes:\r\n colspan:4\r\n\r\n extraBindings: =>\r\n stock:@stock\r\n\r\n dispose:=>\r\n if @$el?\r\n @$el.parents(\"tr\").remove()\r\n super\r\n\r\n advancedStock: =>\r\n @publishEvent 'addStock', @model\r\n\r\nmodule.exports = class ServiceWizard extends DialogView\r\n template: require './template'\r\n id: 'ServiceWizard'\r\n validator:StockValidator\r\n optionNames: DialogView::optionNames.concat ['client', 'targetId', 'network', 'service', 'stock']\r\n\r\n initialize:=>\r\n super\r\n @view = new Model\r\n newCharge: 1 #rivets doesn't like true false radios\r\n pps: @client.get('type') is 'PPS'\r\n showOnlyProntoGroups: true\r\n loading:true\r\n\r\n @groups = new Groups()\r\n @locations = new Locations()\r\n @referrers = new Referrers()\r\n @practitioners = new Practitioners()\r\n\r\n @picker = new ColourPicker()\r\n @picker.on(\"picked\", @pickColour)\r\n\r\n @listenTo @groups, 'change:stockId', @setStockName\r\n @listenTo @referrers, 'change:stockId', @setStockName\r\n @listenTo @practitioners, 'change:stockId', @setStockName\r\n\r\n $.when(\r\n @groups.fetch(beforeSend:@hookId),\r\n @locations.fetch(beforeSend:@hookId),\r\n @referrers.fetch(beforeSend:@hookId),\r\n @practitioners.fetch(beforeSend:@hookId)\r\n ).done =>\r\n overrides = @model.get 'overrides'\r\n @locations.each (l) =>\r\n l.set\r\n selected: _.filter(@model.get('excludeLocations'), (g) -> g is l.get('onlineGuid')).length is 0\r\n showPronto = @view.get 'showOnlyProntoGroups'\r\n\r\n @practitioners.each (p) =>\r\n p.set\r\n selected: _.filter(@model.get('excludePractitioners'), (g) -> g is p.get('onlineGuid')).length is 0\r\n\r\n if overrides?[p.id]\r\n p.set\r\n stockId: overrides[p.id]\r\n customCharges: true\r\n\r\n # @referrers.each (x) =>\r\n # x.set\r\n # selected: !_.contains(@model.get('excludeGroups'), x.get('id'))\r\n #\r\n # if overrides?[x.get('id')]\r\n # x.set\r\n # stockId: overrides[x.get('id')]\r\n # customCharges: true\r\n\r\n @groups.each (x) =>\r\n x.set\r\n visible: !showPronto or (x.get('onlineGuid') and x.get('onlineGuid') isnt \"00000000000000000000000000000000\")\r\n selected: x.get('globalId') isnt \"00000000000000000000000000000000\" and _.filter(@model.get('excludeGroups'), (g) -> g is x.get('globalId')).length is 0\r\n\r\n if overrides?[x.get('globalId')]\r\n x.set\r\n stockId: overrides[x.get('globalId') ]\r\n customCharges: true\r\n\r\n @groups.filterFn = (x) -> x.get(\"visible\")\r\n @groups.applyFilter()\r\n @$el.foundation()\r\n @view.set loading:false\r\n\r\n @listenTo @model, 'change:networkServiceId', @setName\r\n @listenTo @model, 'change:stockId', (m, v)=>\r\n stockId = @model.get 'stockId'\r\n @stock.filterFn = (s) ->\r\n s.get('onlineGuid') isnt stockId\r\n @stock.applyFilter()\r\n @setStockName(@model, \"view\")\r\n\r\n @subscribeEvent 'addStock', @addStock\r\n\r\n if @model.get('stockId')\r\n @view.set 'newCharge', 0\r\n @model.trigger 'change:stockId'\r\n @setStockName(@model, \"view\")\r\n\r\n setStockName: (model, toUpdate) =>\r\n stocklist = @stock.filter (s) -> s.get('onlineGuid') is model.get('stockId')\r\n name = \"None Selected\"\r\n if stocklist.length > 0\r\n name= stocklist[0].get('description')\r\n if toUpdate is \"view\"\r\n @view.set('customChargeName', name)\r\n else\r\n model.set\r\n customChargeName: name\r\n customCharges: true\r\n\r\n hookId: (xhr) => #sticks the targetId in the header so pronto knows which clinic's settings to update\r\n xhr.setRequestHeader('X-PRONTO-TARGET-ID', @targetId) if @targetId?\r\n\r\n extraBindings: =>\r\n network:@network\r\n service:@service\r\n locations:@locations\r\n practitioners:@practitioners\r\n groups: @groups\r\n stock:@stock\r\n\r\n attach: =>\r\n @$(\".palette\").append(@picker.render())\r\n super\r\n @$(\"#colourPicker\").on 'closed', -> false\r\n @$el.foundation()\r\n @money(\".money\")\r\n\r\n pickColour: (c) =>\r\n @$el.find('.colour-box').css(\"background\", c)\r\n @model.set(\"colour\", c)\r\n @$el.trigger('click') #ugly hackery to close drop down....\r\n\r\n setName: =>\r\n @model.set 'name', @$('select.service option:selected').text()\r\n\r\n togglePopup:(e,v) =>\r\n if @$(e.target).closest(\"tr\").next().is(\".popupRow\")\r\n @removeSubview \"add-charge#{v.item.id}\"\r\n\r\n else\r\n $row = $('')\r\n @$(e.target).closest(\"tr\").after($row)\r\n @subview \"add-charge#{v.item.id}\", new AdvancedStockLink\r\n container:$row\r\n model:v.item\r\n stock:@stock\r\n view:@view\r\n\r\n addStockToService: =>\r\n @addStock(@model)\r\n\r\n addStock: (m) =>\r\n @subscribeEvent 'stock:added', (newStock) =>\r\n @stock.add(newStock)\r\n @stock.trigger 'reset'\r\n @stock.applyFilter()\r\n m.set 'stockId', newStock.onlineGuid\r\n\r\n @view.set 'changeStock', false\r\n @advancedStock()\r\n\r\n advancedStock: =>\r\n @subview 'AddStock', new AddStock\r\n targetId: @targetId\r\n locations: @locations\r\n model: new Stock\r\n description: @model.get 'newStockName'\r\n price: @model.get 'newStockTotal'\r\n reference: @model.get 'newStockReference'\r\n category:'C'\r\n\r\n save: =>\r\n @model.set\r\n excludeGroups: _.map(@groups.filter((g) -> g.get('globalId') isnt \"00000000000000000000000000000000\" and not g.get('selected')), (g) -> g.get('globalId'))\r\n excludeLocations: _.map(@locations.filter((g) -> !g.get('selected')), (g) -> g.get('onlineGuid'))\r\n excludePractitioners: _.map(@practitioners.filter((g) -> !g.get('selected')), (g) -> g.get('onlineGuid'))\r\n checked:true\r\n stockId = @model.get 'stockId'\r\n overrides = {}\r\n\r\n for p in @practitioners.filter((x) -> x.get('customCharges') && !_.isEmptyGuid(x.get('stockId')) && x.get('stockId') != stockId)\r\n overrides[p.get('onlineGuid')] = p.get('stockId')\r\n\r\n for r in @referrers.filter((x) -> x.get('customCharges') && !_.isEmptyGuid(x.get('stockId')) && x.get('stockId') != stockId)\r\n overrides[r.get('id')] = r.get('stockId')\r\n\r\n @model.set\r\n overrides: overrides\r\n networkId: @network.get(\"id\")\r\n\r\n @model.targetId = @targetId\r\n\r\n @model.save({},\r\n type:'PUT'\r\n beforeSend:@hookId\r\n success: (model)=>\r\n @service.unset(\"clinicalService\")\r\n @service.set(clinicalService:model.toJSON())\r\n @publishEvent 'service:added', model.toJSON(), @service, @network\r\n ).done =>\r\n @close()\r\n\r\n changeStock: =>\r\n @view.set 'changeStock', true\r\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"

Add new charge
\");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"
×

\\nSetup for  

Charge Setup
Advanced

Charge Setup

\\nFor each service you want to offer, you need to have it linked to a charge, which will set the appointment length, and the billing for you.

Please select an option below

Linked Charge

This service is currently linked to the following default charge: 


Change

Select a charge

\\nSelect a charge from the list below, or click \\\"Add New\\\" to add a new one


Add New

Setup a Charge

A charge (or stock item) is a definition of what you bill for a service, and also how long that service should be.

It can have a different price per location, but is just one item. (Unlike traditional TM2 Stock Items)

\\nYou can use the Advanced Tab to configure individual charges for groups and practitioners as necessary.

Availability Setup

Locations
Practitioners
Referrers
Name/Address

\\nThe table below lists all practitioners who are able to receive bookings for the  

NameUses Custom Charge

\\nThe table below lists all referrers who are able to create bookings for the  

NameUses Custom Charge

\");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"
×

\\nSetup Charge





\");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","DialogView = require 'views/base/dialog_view'\nModel = require 'models/base/model'\nCollection = require 'models/base/collection'\nDeepModel = require 'models/base/deep_model'\n_ = require 'underscore'\nValidationMachine = require 'lib/ValidationMachine'\nColourPicker = require 'colour-picker'\n\nclass LocationOverride extends DeepModel\n initialize:=>\n super\n @on \"change:priceExVat change:vatRate\", (m, v, o) =>\n return if o.isRecursive is true\n @set(\n price: ((m.get(\"priceExVat\")/100)*(m.get(\"vatRate\"))) + m.get(\"priceExVat\"),\n {isRecursive: true}\n )\n\n @on \"change:price\", (m, v, o) =>\n return if o.isRecursive is true\n @set(\n priceExVat: (v/(100+m.get(\"vatRate\"))) * 100\n {isRecursive: true}\n )\n\nclass StockValidator extends ValidationMachine\n applyRules:=>\n super\n @required 'description'\n @min 'totalPrice', 0.01\n @minIf 'appointmentLength', 0.01, => @model.get('category') is 'C'\n @required 'reference'\n\nmodule.exports = class AddStock extends DialogView\n template: require './add-stock'\n id: 'AddStock'\n optionNames: DialogView::optionNames.concat ['locations', 'targetId']\n validator: StockValidator\n extraBindings: =>\n locations: @locations\n overrides:@overrides\n\n initialize: =>\n super\n @view = new Model\n isAdvanced:false\n @overrides = new Collection([], model: LocationOverride)\n @overrides.comparator = \"locationId\"\n\n @locations.each(=>\n overrides = @model.get(\"overrides\") || []\n locs = _.pluck(overrides, \"locationId\")\n\n _.each(@locations.toJSON(), (location)=>\n return if _.contains(locs, location.id)\n overrides.push(\n stockId: @model.id\n locationId: location.onlineGuid\n description: location.name\n priceExVat: @model.get(\"priceExVat\")\n vatRate: @model.get(\"vatRate\")\n price: @model.get(\"totalPrice\")\n )\n )\n @overrides.reset(overrides)\n @money('.override .money')\n @percentage('.override .percentage')\n )\n @picker = new ColourPicker()\n @picker.on(\"picked\", @PickColour)\n @listenTo @model, 'change:totalPrice', () => @overrides.each (o) =>\n if o.get('price') is @model.previous('totalPrice')\n o.set('price', @model.get('totalPrice'))\n\n hookId: (xhr) => #sticks the targetId in the header so pronto knows which clinic's settings to update\n xhr.setRequestHeader('X-PRONTO-TARGET-ID', @targetId) if @targetId?\n\n attach:=>\n @money('.money')\n #@number('.number')\n @$(\".palette1\").append(@picker.render())\n super\n @$(\"#colourPicker1\").on 'closed', -> false\n\n save:=>\n @view.set 'submitted', true\n return false unless @isValid()\n @model.set 'overrides', @overrides.toJSON()\n @model.save({}, beforeSend:@hookId).done =>\n @publishEvent 'stock:added', @model.toJSON()\n @close()\n return false\n\n PickColour: (c) =>\n @$el.find('.colour-box').css(\"background\", c)\n\n vals = c.substring(c.indexOf(\"(\") + 1, c.lastIndexOf(\")\")).split(\",\")\n @model.set\n colour: (255 << 24) +\n (parseInt(vals[0]) << 16) +\n (parseInt(vals[1]) << 8) +\n (parseInt(vals[2]))\n\n @$el.trigger('click') #ugly hackery to close drop down....\n","DeepModel = require 'models/base/deep_model'\n\nmodule.exports = class Stock extends DeepModel\n urlRoot: '/api/stock/pronto'\n defaults:\n category: 'C'\n colour: '#B3DBE8'\n inUse: true\n totalPrice: 0\n priceExVat: 0\n vatRate: 0\n\n initialize: =>\n @on \"change:priceExVat change:vatRate\", (m, v, o) =>\n return if o.isRecursive is true\n @set(\n totalPrice: ((m.get(\"priceExVat\")/100)*(m.get(\"vatRate\"))) + m.get(\"priceExVat\"),\n {isRecursive: true}\n )\n\n @on \"change:totalPrice\", (m, v, o) =>\n return if o.isRecursive is true\n @set(\n priceExVat: (v/(100+m.get(\"vatRate\"))) * 100\n {isRecursive: true}\n )\n \n formattedName: =>\n \"#{@get 'reference'}: #{@get 'description'} [#{rivets.formatters.currency(@get 'totalPrice')}] - #{@get 'consultancyTime'} mins\"\n \n formattedNameNoLength: =>\n \"#{@get 'reference'}: #{@get 'description'} [#{rivets.formatters.currency(@get 'totalPrice')}]\"","Controller = require 'controllers/base/controller'\nListView = require './list'\nHomeView = require './home'\nHeaderView = require 'views/home/header-view'\n\nmodule.exports = class ClinicController extends Controller\n beforeAction: ->\n super\n @reuse 'header', HeaderView, region: 'header'\n\n index: ->\n @view = new ListView region: 'main'\n\n home: (args) ->\n @view = new HomeView region: 'main', id: args.id","_ = require 'underscore'\nModel = require 'models/base/model'\nDeepModel = require 'models/base/deep_model'\nCollection = require 'models/base/collection'\nDialogView = require 'views/base/dialog_view'\nmoment = require 'moment'\n\nValidationMachine = require 'lib/ValidationMachine'\n\n#{core} = require 'lib/bundle'\n\nclass AppointmentValidator extends ValidationMachine\n applyRules: =>\n super\n @required 'serviceId', \"Please select a service\"\n @rule 'date', () =>\n val = @model.get(\"date\") || \"\"\n if val\n val = moment(val).toDate()\n outdated = val > (new Date(0)).toUTCString()\n else\n return { isValid:false } \n return { isValid:false } if outdated\n return { isValid:true, message:\"\" }\n\nmodule.exports = class AppointmentDialog extends DialogView\n template: require './template'\n validator: AppointmentValidator\n optionNames: DialogView::optionNames.concat ['auditId', 'defaults', 'booking']\n\n initialize: (args)=>\n super\n @view = new Model(submitted:false)\n @model ?= new DeepModel(\n date: null\n auditId: @auditId\n invoiced:false\n locationId: @defaults.location\n practitionerId: @defaults.practitioner\n )\n if args.model != undefined\n @model.set(id: args.model.get('id'))\n\n @inventory = new Collection(args.inventory)\n @locations = new Collection(args.locations)\n @practitioners = new Collection(args.practitioners)\n @appointments = args.appointments\n\n @model.set(isAddMode: _.isEmptyGuid(@model.get(\"serviceId\")))\n @model.set(isAppointmentLocationSelectionDisabled: args.isAppointmentLocationSelectionDisabled)\n \n @view.set(onlyPastAppointmentsComplete: args.onlyPastAppointmentsComplete) \n @view.set(onePatientAppointmentPerDay: args.onePatientAppointmentPerDay)\n\n @model.set(apptInFutureError: false)\n @model.set(multipleAppointmentsPerDayError: false)\n\n\n @delegate 'click', '.react-panel', =>\n $(\".bz-datetimepicker\").parent().css(\"z-index\", 1006)\n\n @listenTo @model, 'change:serviceId', (m, v)=>\n stock = this.inventory.get(v)?.toJSON()\n @model.set(\n description: stock?.name\n exVat: stock?.exVat\n vatRate: stock?.vatRate\n )\n\n @listenTo @model, 'change:status', (m, v)=>\n @extraValidation(); \n\n @listenTo @model, 'change:date', (m, v)=>\n @renderDatePicker(v)\n\n renderDatePicker: (value) =>\n @reactEl = core.Utils.createThemedElement(core.FieldDateTimePicker, {\n value:value,\n submitted: @view.get('submitted'),\n rawTheme:\n zIndex:\n layer:1006\n onChange: (v)=>\n @formatted = null \n if v is null\n else\n @formatted = moment(v).format('YYYY-MM-DDTHH:mm:ss');\n @model.set\n date:@formatted\n status: if v < new Date() then 2 else 0\n @extraValidation();\n datePickerFieldStyle: {float: 'left', display: 'inline-block', maxWidth: '200px' }\n timePickerStyle: { width: 200, top: 42}\n timePickerClassName: \"pp-timepicker\" \n }) \n @reactDomEl = core.ReactDOM.render(@reactEl, @$(\".react-panel\")[0])\n\n extraBindings: =>\n model: @model\n booking: @booking\n inventory: @inventory\n locations: @locations\n practitioners: @practitioners\n\n attach: =>\n super\n @renderDatePicker(@model.get(\"date\"))\n\n save: =>\n @view.set(submitted:true)\n return false unless @isValid()\n\n extraValidationErrored = @extraValidation()\n if (extraValidationErrored) \n return false \n\n @publishEvent 'loading', true\n if(@model.get('isAddMode'))\n @model.urlRoot = \"/api/system/bookings/#{@auditId}/appointment\"\n @model.save({},\n success: (res)=>\n @publishEvent 'appointment:added', @model\n @close()\n @publishEvent 'loading', false\n error: (err)=>\n @publishEvent 'loading', false\n )\n if(!@model.get('isAddMode'))\n _.put(\n url: \"/api/system/bookings/#{@auditId}/appointment/#{@model.id}\"\n data: @model\n success: (res)=>\n @publishEvent 'appointment:added', @model\n @publishEvent 'loading', false \n @close()\n error: (err)=>\n @publishEvent 'loading', false\n )\n \n extraValidation:() =>\n moreOneAppt = @hasMoreThanOneAppointmentToday();\n apptInFutureComplete = @appointmentInFutureComplete();\n return moreOneAppt || apptInFutureComplete;\n \n hasMoreThanOneAppointmentToday: () => \n if @view.get('onePatientAppointmentPerDay') == true\n if @view.get('submitted') != true\n return false;\n if @model.get('date') == undefined || @model.get('date') == null || @model.get('date') == 'Invalid date'\n return false;\n apptDate = moment(@model.get('date')).format('YYYY-MM-DD')\n apptId = @model.get('id') \n if @appointments.some((a) -> moment(a.date).format('YYYY-MM-DD') == apptDate && apptId != a.id)\n @model.set(multipleAppointmentsPerDayError: true);\n return true;\n else\n @model.set(multipleAppointmentsPerDayError: false);\n return false;\n else\n return false;\n\n appointmentInFutureComplete: () => \n if @view.get('onlyPastAppointmentsComplete') == true \n if @model.get('date') == undefined\n return false; \n if @view.get('submitted') != true\n return false; \n if (new Date(@model.get(\"date\")) > new Date()) && (@model.get('status') == \"2\" || @model.get('status') == 2)\n @model.set(apptInFutureError: true);\n return true;\n else\n @model.set(apptInFutureError: false);\n return false;\n else\n return false;\n\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"
×

Add Appointment



Patient can only have one appointment per day.
Cannot mark an appointment in the future as complete.

 
\");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","_ = require 'underscore'\nView = require 'views/base/view'\nModel = require 'models/base/model'\nCollection = require 'models/base/collection'\nPagingCollection = require 'models/base/paging_collection'\nmediator = require 'mediator'\n\nSearchView = require '../search-view'\nAppointmentDialog = require '../appointment-dialog'\n\nclass Booking extends Model\n canReport: ->\n return @get(\"canReport\") && (@get(\"triage\")? || @get(\"initial\")? || @get(\"discharge\")? || @get(\"rfat\")?)\n\n canInvoice: ->\n appts = @get(\"appointments\") || []\n return @get(\"canInvoice\") && _.any(appts, (a)-> a.invoiced is false && a.status > 1)\n\nclass BookingsCollection extends PagingCollection\n url: '/api/system/bookings'\n model: Booking\n\nmodule.exports = class BookingsView extends View\n template: require './template'\n optionNames: View::optionNames.concat ['practitioners', 'referrers']\n regions:\n search: \".search-region\"\n\n initialize: (args)=>\n super\n @subscribeEvent 'appointment:added', (v)=>\n @bookings.get(v.get(\"auditId\")).set(referralStatus: 0)\n @subscribeEvent 'search', =>\n @search\n\n @view = new Model\n hasTM2: window.TM2EventBus?\n\n @summary = new Model()\n\n @params = args.params\n\n isAdmin = mediator.user.hasPermission(\"Pronto/SelfService/Admin\");\n\n @filter = new Model\n type: 'D'\n status: ''\n referrer: ''\n practitioner: ''\n skip: 0\n take: if isAdmin then 6 else 10\n\n @pagination = new Model\n page: 1\n pages: [1]\n total: 1\n ellipsisLeft: false\n ellipsisRight: false\n\n debounce = _.debounce((=> @changePage(null, 1)), 100)\n\n @bookings = new BookingsCollection()\n @bookings.comparator = (a, b) ->\n _a = new Date(a.get(\"referralDate\"))\n _b = new Date(b.get(\"referralDate\"))\n return -1 if _a > _b\n return 1 if _a < _b\n return 0\n\n @search()\n\n @listenTo @pagination, 'change:page', @changePage\n @listenTo @filter, 'change', debounce\n @listenTo @bookings, 'sync', => @$el.foundation()\n\n extraBindings: =>\n bookings: @bookings\n pagination: @pagination\n\n renderSubviews: =>\n @subview 'search', new SearchView(\n filter:@filter\n summary: @summary\n referrers: @referrers\n practitioners: @practitioners\n region: \"search\"\n search: @search()\n )\n\n attach: =>\n super\n @$el.foundation()\n\n moveTo: (key)=>\n prev = parseInt(@pagination.previousAttributes().page)\n total = @pagination.get(\"total\")\n p = switch key\n when \"first\" then 1\n when \"prev\" then prev - 1\n when \"next\" then prev + 1\n when \"last\" then total\n\n @pagination.set(page:p)\n\n changePage:(m,v)=>\n return unless @bookings.isSynced()\n v = parseInt(v)\n @filter.set(skip: ((v - 1) * @filter.get(\"take\")).toString())\n @search()\n\n getPages: (page, total) ->\n return _.range(1, total + 1) if total <= 5\n return _.range(1, 5) if page - 3 <= 0\n return _.range(total - 3, total + 1) if page + 3 > total\n return _.range(page - 1, page + 2)\n\n search:(params)=>\n @publishEvent 'loading', true\n\n if @params != undefined && @params.page != undefined && @pagination.previousAttributes().page == undefined\n v = parseInt(@params.page)\n @filter.set(skip: ((v - 1) * @filter.get(\"take\")).toString())\n\n data = @filter.toJSON()\n data.type = null if data.type is \"-\"\n\n @bookings.reset([], {silent:true})\n\n @bookings.fetch(\n type: \"POST\"\n data: data\n success: (r, args)=>\n @summary.set\n all: args.all\n online: args.online\n referrals: args.referrals\n reception: args.reception\n \n received: args.received\n needsAction: args.needsAction\n awaiting: args.awaiting\n rejected: args.rejected\n booking: args.booking\n inTreatment: args.inTreatment\n discharged: args.discharged\n complete: args.complete\n none: args.none\n\n @goToPage = if @params != undefined && @params.page != undefined && @pagination.previousAttributes().page == undefined then @params.page else args.page\n\n @pagination.set\n page: @goToPage\n pages: @getPages(@goToPage, args.totalPages)\n total: args.totalPages\n ellipsisLeft: args.totalPages > 5 && @goToPage > 3\n ellipsisRight: args.totalPages > 5 && @goToPage < args.totalPages - 2\n hasMore: @goToPage < args.totalPages\n\n if @practitioners.isSynced()\n @publishEvent 'loading', false\n else\n @practitioners.once 'change:_syncState', =>\n @publishEvent 'loading', false\n error: (arg) =>\n debugger\n )\n\n report: (args, e, v)=>\n @referral(\"report\", e, v, v.booking.get(args))\n\n referral: (key, e, v, templateId)=>\n model = v.booking.toJSON()\n model.templateId = templateId\n\n @redirectTo\n controller: \"modules/myclinic/myclinic\"\n action: \"referral\"\n params:\n id: v.booking.id\n mode: key\n model: new Model(model)\n page: @pagination.get(\"page\")\n\n accept: (e, v)=>\n _.put(\n url:\"/api/system/bookings/#{v.booking.id}/action/accept\"\n data: {}\n success: =>\n @bookings.get(v.booking.get(\"id\")).set(referralStatus: 1) \n error: =>\n debugger \n )\n\n reject: (e, v)=>\n _.put(\n url: \"/api/system/bookings/#{v.booking.id}/action/reject\"\n data: {}\n success: =>\n v.booking.set({referralStatus:4})\n error: =>\n debugger\n )\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n;var locals_for_with = (locals || {});(function (ellipsisLeft, ellipsisRight, hasMore) {\n\n\n\n\n\n\n\njade_mixins[\"Pagination\"] = jade_interp = function(currentpage, lastpage, collection, showEndDivider, noNext){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nif (!currentpage) currentpage = \"pagination:page\"\nif (!lastpage) lastpage = \"pagination:totalPages\"\nif (!collection) collection = \"pagination:pages\"\nif (!showEndDivider) showEndDivider = \"vm>showEndDivider\"\nif (!noNext) noNext = \"vm>noNext\"\nellipsisLeft = ellipsisLeft || \"pagination:ellipsisLeft\"\nellipsisRight = ellipsisRight || \"pagination:ellipsisRight\"\nhasMore = hasMore || \"pagination:hasMore\"\nbuf.push(\"
\");\n};\nbuf.push(\"

My Referrals

We could not find any bookings or referrals.
New BookingAwaiting First AppointmentReferral ReceivedIn TreatmentCancelled Or DeclinedDischargedClosedReception BookingOnline Booking    Needs Action
Referral:
Appt:
Referrer Reference:
Type:
ReferralReceptionOnline
ReferralReceptionOnline
\");\njade_mixins[\"Pagination\"]();\nbuf.push(\"
\");}.call(this,\"ellipsisLeft\" in locals_for_with?locals_for_with.ellipsisLeft:typeof ellipsisLeft!==\"undefined\"?ellipsisLeft:undefined,\"ellipsisRight\" in locals_for_with?locals_for_with.ellipsisRight:typeof ellipsisRight!==\"undefined\"?ellipsisRight:undefined,\"hasMore\" in locals_for_with?locals_for_with.hasMore:typeof hasMore!==\"undefined\"?hasMore:undefined));;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","_ = require 'underscore'\n\nCollection = require 'models/base/collection'\nDraggableView = require 'views/base/draggable_view'\n\nmodule.exports = class ClassesCollectionView extends DraggableView\n template: require './template'\n optionNames: DraggableView::optionNames.concat ['settings']\n\n initialize: =>\n super\n @classes = new Collection()\n @classes.url = \"/api/classes/search\"\n @classes.comparator = (a, b)=>\n _a = @classOrder.indexOf(a.get(\"sessionClassId\"))\n _b = @classOrder.indexOf(b.get(\"sessionClassId\"))\n return 1 if _a > _b\n return -1 if _a < _b\n return 0\n\n @listenTo @settings, 'change:_syncState', =>\n return unless @settings.isSynced()\n @classOrder = @settings.get(\"classOrder\") || []\n @classes.fetch({type: \"POST\"})\n\n extraBindings: =>\n classes: @classes\n\n dragStart:(e, v) =>\n v.class.set(selected:true)\n @dragId = v.class.get(\"sessionClassId\")\n\n dragEnter:(e, v) =>\n return if v.class.get(\"selected\")\n over = @classOrder.indexOf(v.class.get(\"sessionClassId\"))\n order =_.without(@classOrder, @dragId)\n order.splice(over, 0, @dragId)\n @classOrder = order\n @classes.sort()\n\n dragEnd:(e, v) =>\n @classes.none()\n\n drop:(e, v) =>\n super\n @settings.set(classOrder:@classOrder)\n return false;\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"
Loading

\");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"

\");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","DialogView = require 'views/base/dialog_view'\n_ = require 'underscore'\n\nmodule.exports = class LocationEditDialog extends DialogView\n template: require './LocationEditDialog'\n optionNames: DialogView::optionNames.concat ['settings', 'locations']\n\n initialize: =>\n super\n excludes = @settings.get('excludeLocations')[@model.id] || []\n\n @locations.each (l) ->\n res = _.filter(excludes, (id) -> l.get('onlineGuid') is id)\n l.set selected: !res.length > 0\n\n extraBindings: =>\n locations: @locations\n\n ok: =>\n excludes = @settings.get('excludeLocations') || {}\n excludes[@model.id] = _.map @locations.filter((x) -> !x.get('selected')), (x) -> x.get('onlineGuid')\n\n @settings.set 'excludeLocations', excludes\n @settings.trigger 'change'\n\n excludes = excludes[@model.id]\n\n if !excludes? || excludes?.length is 0\n @model.set\n locationName: \"All Locations\"\n locations: []\n else\n @model.set\n locationName: undefined\n locations: @locations.filter((l) -> excludes.indexOf(l.get('onlineGuid')) is -1)\n\n @close()\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"
×

Edit Locations


Select the locations you would like  to be able to access.

Select All |  Select None
 
\");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","DialogView = require 'views/base/dialog_view'\n_ = require 'underscore'\n\nmodule.exports = class PractitionerEditDialog extends DialogView\n template: require './PractitionerEditDialog'\n optionNames: DialogView::optionNames.concat ['settings', 'practitioners']\n\n initialize: =>\n super\n excludes = @settings.get('excludePractitioners')[@model.id] || []\n @practitioners.each (l) ->\n res = _.filter(excludes, (id) -> l.get('onlineGuid') is id)\n l.set selected: !res.length > 0\n\n extraBindings: =>\n practitioners: @practitioners\n\n ok: =>\n excludes = @settings.get('excludePractitioners') || {}\n excludes[@model.id] = _.map @practitioners.filter((x) -> !x.get('selected')), (x) -> x.get('onlineGuid')\n\n @settings.set 'excludePractitioners', excludes\n @settings.trigger 'change'\n\n excludes = excludes[@model.id]\n\n if !excludes? || excludes?.length is 0\n @model.set\n practitionerName: \"All Practitioners\"\n practitioners: []\n else\n @model.set\n practitionerName: undefined\n practitioners: @practitioners.filter((p) -> excludes.indexOf(p.get('onlineGuid')) is -1)\n @close()\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"
×

Edit Practitioners


Select the practitioners you would like  to be able to access.

Select All |  Select None
 
\");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","View = require 'views/base/view'\nModel = require 'models/base/model'\nDeepModel = require 'models/base/deep_model'\nCollection = require 'models/base/collection'\n\nMoment = require 'moment'\nmediator = require 'mediator'\n\nBookingsView = require '../bookings-view'\nMyProntoView = require '../my-pronto-view'\n\nmodule.exports = class ClinicHomeScreen extends View\n template: require './ClinicHomeScreen'\n autoRender: true\n regions:\n admin: \".my-pronto-region\"\n bookings: \".bookings-region\"\n\n initialize:(args) =>\n super\n @networks = new Collection()\n @networks.comparator = \"name\"\n @referrers = new Collection()\n @practitioners = new Collection()\n @model = new DeepModel()\n @model.url = \"/api/myclinic/summary\"\n @model.params = if args.params != undefined && args.params.page != undefined then args.params.page\n\n @view = new DeepModel(\n date: new Moment().startOf('day').toDate()\n now: new Moment()\n filterAppts: true\n mode: \"Monthly\"\n sortBooking: \"\"\n syncing: false\n allowedOnline: mediator.user.get('license')?.description == \"Premium\"\n screen: \"\"\n provisional: 0\n hasTM2: window.TM2EventBus?\n isTM2: /chrome\\/25/i.test(window.navigator.userAgent)\n )\n\n renderSubviews: =>\n @subview 'admin', new MyProntoView(\n region:\"admin\"\n view: @view\n model: @model\n networks: @networks\n referrers: @referrers\n practitioners: @practitioners\n )\n\n @subview 'bookings', new BookingsView\n region:\"bookings\"\n referrers: @referrers\n practitioners: @practitioners\n params: page: @model.params\n\n attach: =>\n super\n @view.set('syncing', true)\n @model.fetch\n success: (model, results) =>\n @view.set('syncing', false)\n @networks.reset(model.get(\"networks\"))\n @referrers.reset(model.get(\"referrers\"))\n @practitioners.reset(model.get(\"practitioners\"))\n @practitioners.trigger(\"change:_syncState\")\n #@publishEvent \"loading\", false\n\n mediator.user.set\n 'license.hasOnlineReferralBookings': @model.get('hasReferrals')\n 'license.hasOnlineReception': @model.get('hasReception')\n 'license.hasPatientPortal': @model.get('hasOnline')\n","AuthController = require 'controllers/base/auth_controller'\n\nBookingsScreen = require './tm2-bookings-screen'\nSettingsScreen = require './tm2-settings-screen'\n\nmodule.exports = class IntegrationController extends AuthController\n bookings: =>\n @view = new BookingsScreen region:'main'\n\n settings: =>\n @view = new SettingsScreen region:'main'\n","#{core} = require 'lib/bundle'\n\n_ = require 'underscore'\n__ = core.Lodash\n\nView = require 'views/base/view'\nModel = require 'models/base/model'\nDeepModel = require 'models/base/deep_model'\n\nclass Invoice extends DeepModel\n urlRoot: '/api/finances/invoice'\n\nmodule.exports = class InvoiceDialog extends View\n template: require './template'\n optionNames: View::optionNames.concat [\n 'id', 'mode', 'type', 'auditId', 'bookerId', 'defaults', 'inventory', 'locations', 'practitioners', 'appointments'\n ]\n\n initialize: =>\n super\n @view = new Model\n mode:@mode\n\n @model ?= new Invoice\n id: @id\n auditId: @auditId\n bookerId: @bookerId\n targetId: @targetId\n\n @reactEl = core.Utils.createThemedElement(core.Invoice, {template: \"\", onStateChange: @onStateChange})\n\n attach: =>\n super\n _.post(\n url: '/api/finances/invoice/search'\n data:\n id: @id\n auditId: @auditId\n\n success: (res)=>\n res.invoice.id = null if _.isEmptyGuid(res.invoice.id)\n\n if typeof res?.invoice?.metadata is 'string'\n res.invoice.metadata = JSON.parse(res.invoice.metadata)\n for item in res.invoice.items\n item.metadata = JSON.parse(item.metadata)\n\n @model.set(_.extend({}, res.invoice, {templateId: res.schema?.id, title: res.schema?.title}))\n\n props =\n readOnly: res.invoice.id? && @mode is \"review\"\n data: res.invoice\n defaults: @defaults\n inventory: res.inventory\n locations: @locations\n practitioners: @practitioners\n template: res.schema.template,\n itemTemplate: res.schema.itemTemplate\n onStateChange: @onStateChange\n liveOnChange: true\n \n @reactEl = core.Utils.createThemedElement(core.Invoice, props)\n @reactDomEl = core.ReactDOM.render(@reactEl, @$(\".invoice-container\")[0])\n \n error: =>\n debugger\n )\n\n onStateChange: (state)=>\n data = __.cloneDeep(state.data)\n data.metadata = JSON.stringify(data.metadata)\n for item in data.items\n item.metadata = JSON.stringify(item.metadata)\n @model.unset(\"items\")\n @model.set(data)\n\n save: =>\n @view.set(errors:\"\")\n @publishEvent 'loading', true\n @model.save({},\n success: (invoice, res) =>\n @publishEvent 'invoice:added', res, \"saved\"\n error: (model, res)=>\n @publishEvent 'loading', false\n @view.set\n errors:res?.responseJSON?.responseStatus?.message || \"An unknown error occurred\"\n )\n\n submit: =>\n @view.set(errors:\"\")\n @publishEvent 'loading', true\n\n @reactDomEl.refs.child.applyValidation().then((isValid)=>\n unless isValid\n @publishEvent 'loading', false\n return\n\n _.post(\n url: '/api/finances/invoice/submit'\n data: @model.toJSON()\n success: (res) =>\n @publishEvent 'invoice:added', res, \"submitted\"\n error: (model, res)=>\n @publishEvent 'loading', false\n @view.set\n errors:res?.responseJSON?.responseStatus?.message || \"An unknown error occurred\"\n )\n )\n\n destroy: =>\n @publishEvent 'loading', true\n _.del(\n url: \"/api/finances/invoice/#{@model.get('id')}\"\n success: (res)=>\n @publishEvent 'invoice:removed', res\n )\n\n close: =>\n @publishEvent 'summary:view'\n\n print: =>\n window.print()","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"
DraftSubmittedAcceptedRejectedQueried
Sorry we could not save the invoice due the following reasons:
 
  
\");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","View = require 'views/base/view'\nModel = require 'models/base/model'\nPopover = require 'views/base/popover_view'\nDeepModel = require 'models/base/deep_model'\nCollection = require 'models/base/collection'\n\n_ = require 'underscore'\nMoment = require 'moment'\nChaplin = require 'chaplin'\nmediator = require 'mediator'\n\n#{core} = require 'lib/bundle'\n\nmodule.exports = class MyProntoView extends View\n template: require './template'\n autoRender: true\n optionNames: View::optionNames.concat ['view', 'networks', 'referrers', 'practitioners']\n\n initialize: =>\n super\n\n @listenTo @view, 'change:mode', (m, v) =>\n @plot(@model.get(\"dataPoints\")?[v])\n\n @listenTo @view, 'change:sortBooking', (m, v) =>\n @getBookings(@view.get(\"sortBooking\"))\n\n @graph = core.Utils.createThemedElement(core.LineGraph, {data: [], lines:true})\n\n extraBindings: =>\n networks: @networks\n referrers: @referrers\n user: mediator.user\n\n attach: =>\n super\n return unless mediator.user.hasPermission(\"Pronto/SelfService/Admin\")\n if @model._syncState is \"synced\"\n attachGraph()\n else\n @listenTo @model, 'change:_syncState', @attachGraph\n\n attachGraph: =>\n return unless @model._syncState is \"synced\"\n @reactDomEl = core.ReactDOM.render(@graph, @$(\".graph-container\")[0])\n @plot(@model.get(\"dataPoints\")?[@view.get(\"mode\")])\n\n plot: (data)->\n points = _.values(data)\n referrals = _.pluck(points, \"referral\")\n reception = _.pluck(points, \"reception\")\n online = _.pluck(points, \"online\")\n\n keys = _.keys(data)\n\n @model?.set\n online: @count(online)\n referrals: @count(referrals)\n reception: @count(reception)\n\n props = {\n lines: true,\n mode:{ x:\"key\", y:\"integer\"}\n keys:{ x:keys, y:[] }\n data:[\n {label:\"Referral Bookings\", values:@map(referrals), colour:\"#19ACE2\"}\n {label:\"Reception Bookings\", values:@map(reception), colour:\"#CC0000\"}\n {label:\"Patient Bookings\", values:@map(online), colour:\"#19AC04\"}\n ]\n }\n\n @graph = core.Utils.createThemedElement(core.LineGraph, props)\n @reactDomEl = core.ReactDOM.render(@graph, @$(\".graph-container\")[0])\n\n\n map: (points) =>\n return points.map (y, x)-> return {x:x, y:y}\n\n count: (points) =>\n return _.reduce(points, (m, n) -> return m + n) || 0\n\n setup: (e) =>\n @redirectTo\n controller: \"modules/myclinic/myclinic\"\n action: \"settings\"\n @publishEvent 'settings:navtoNetworks', navtoNetworks: true\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"\");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","AuthController = require 'controllers/base/auth_controller'\n\nHomeView = require './home/'\nNetworksScreen = require './networks-screen'\nReferralScreen = require './referral-screen'\nReferrersScreen = require './referrers-screen'\n\nProntoSettingsScreen = require './pronto-settings-screen'\nOnlineSettingsScreen = require './online-settings-screen'\nReceptionSettingsScreen = require './reception-settings-screen'\n\nSettingsScreen = require './settings-screen'\n\nmodule.exports = class ClinicController extends AuthController\n index: (args) =>\n @view = new HomeView \n region:'main'\n params: page: args.page\n\n referrers: =>\n @view = new SettingsScreen region:'main'\n\n networks: =>\n @view = new NetworksScreen region:'main'\n\n referral: (args)->\n @view = new ReferralScreen\n region:'main'\n id: args.id\n mode: args.mode\n model: args.model\n page: args.page\n\n pronto: =>\n @view = new SettingsScreen\n region:'main'\n mode: 'pronto'\n\n online: =>\n @view = new OnlineSettingsScreen region:'main'\n\n reception: =>\n @view = new ReceptionSettingsScreen region:'main'\n","View = require 'views/base/view'\r\nModel = require 'models/base/model'\r\nDeepModel = require 'models/base/deep_model'\r\nConvertedDeepModel = require 'models/base/converted_deep_model'\r\nCollection = require 'models/base/collection'\r\ndebounce = require 'debounce'\r\nrivets = require 'rivets'\r\n_ = require 'underscore'\r\nChart = require 'chart'\r\nChaplin = require 'chaplin'\r\nmoment = require 'moment'\r\nconfirm = require 'lib/confirm'\r\n$ = require 'jquery'\r\n\r\nAddSimpleServiceDialog = require 'modules/clinics/add-service'\r\n\r\nclass StockCollection extends Collection\r\n url: '/api/stock/pronto'\r\n\r\nclass NetworkCollection extends Collection\r\n url: => \"/api/system/targets/networks\"\r\n model: ConvertedDeepModel\r\n\r\nclass ClinicalService extends Model\r\n idAttribute: \"networkServiceId\"\r\n urlRoot: => \"/api/system/targets/services\"\r\n isNew: -> false\r\n\r\nclass ClientWhoReceives extends Model\r\n url: '/api/myclinic'\r\n\r\nclass ClientWhoReceivesSettings extends DeepModel\r\n url: '/api/myclinic/settings'\r\n defaults:\r\n serviceOrder: []\r\n isNew: -> false\r\n\r\nmodule.exports = class NetworksScreen extends View\r\n template: require './template'\r\n className: \"network-tab\"\r\n autoRender: true\r\n\r\n initialize: (args)=>\r\n super\r\n @client = new ClientWhoReceives()\r\n @settings = new ClientWhoReceivesSettings()\r\n @view = new Model()\r\n @stock = new StockCollection()\r\n @stock.fetch()\r\n @networks = new NetworkCollection()\r\n @networks.comparator = \"name\"\r\n $.when(@networks.fetch(),_.get(url: '/api/myclinic')).done (n, c) =>\r\n res = c[0]\r\n @networks.each (n) =>\r\n n.get('disciplines').each (d) =>\r\n d.get('services').each (s) =>\r\n if s.get('clinicalService')?\r\n s.set 'clinicalService.checked', true\r\n @client.set(res.clientWhoReceives)\r\n @settings.set(res.clientWhoReceives.settings)\r\n defaults = @settings.get 'defaultServices'\r\n for id, val of defaults\r\n @networks.get(id)?.set('defaultService', val)\r\n updateSettings = debounce(@updateSettings, 1500)\r\n @settings.on 'change', updateSettings\r\n\r\n\r\n @subscribeEvent 'service:added', (clinicalService, service, network) =>\r\n unless network.get('defaultService')\r\n @selectFirstEnabledCharge(network)\r\n clinicalService.checked = true\r\n order = @settings.get(\"serviceOrder\")\r\n if order?.indexOf(clinicalService.networkServiceId) < 0\r\n order.push(clinicalService.networkServiceId)\r\n @settings.save(serviceOrder: order)\r\n\r\n @listenTo @networks, 'change:defaultService', =>\r\n defaults = {}\r\n @networks.each (n) -> defaults[n.id] = n.get 'defaultService'\r\n @settings.set \"defaultServices\", defaults\r\n\r\n updateSettings: =>\r\n @view.set(saving: true)\r\n @settings.save({}, silent:true).done debounce (=> @view.set(saving: false)), 2000\r\n\r\n extraBindings: =>\r\n networks: @networks\r\n\r\n removeService: (e, v)=>\r\n v.service.set(\"clinicalService.checked\", true)\r\n confirm @, 'Confirm Service Removal',\r\n \"\"\"You are about to stop offering this service on the Pronto Network.

\r\n Please note that you will need to set it up again if you wish to offer it in the future.
\r\n
\r\n Are you sure you wish to continue?\"\"\",\r\n =>\r\n if v.network.get('defaultService') is v.service.id\r\n v.network.unset('defaultService')\r\n @selectFirstEnabledCharge(v.network)\r\n v.service.set(\"clinicalService.checked\", false)\r\n new ClinicalService(v.service.get(\"clinicalService\")).destroy()\r\n v.service.set(clinicalService: null)\r\n\r\n selectFirstEnabledCharge: (network) =>\r\n for d in network.get('disciplines').models\r\n for s in d.get('services').models\r\n if s.get(\"clinicalService.checked\")\r\n network.set 'defaultService', s.id\r\n return true\r\n\r\n toggleSvc: (e,v) =>\r\n if v.service.get(\"clinicalService.name\")\r\n @removeService(e,v)\r\n else\r\n v.service.set(\"clinicalService.checked\", false) #set to false until service saved\r\n @edit(e,v)\r\n\r\n edit: (e,v) =>\r\n cs = v.service.get(\"clinicalService\")\r\n if !cs.checked\r\n cs = {\r\n name: v.service.get(\"name\")\r\n discipline: v.discipline.get(\"name\")\r\n description: \"\"\r\n networkDisciplineId: v.network.get(\"id\")\r\n networkServiceId: v.service.get(\"id\")\r\n isOnline: true\r\n checked:false\r\n }\r\n\r\n view = @subview 'addService', new AddSimpleServiceDialog\r\n client: @client\r\n model: new ClinicalService(cs)\r\n service: v.service\r\n network: v.network\r\n stock: @stock\r\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"
Saving

Network Setup


\");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","View = require 'views/base/view'\nmodule.exports = class NoProntoView extends View\n template: require './template'\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"

You don't seem to be signed up for Pronto yet.

If you think you should be, please contact our support team.

\");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","NonAuthController = require 'controllers/base/non_auth_controller'\r\nNoProntoView = require './nopronto'\r\n\r\nmodule.exports = class NoProntoController extends NonAuthController\r\n nopronto: =>\r\n @view = new NoProntoView region: 'main'","PopoverView = require 'views/base/popover_view'\r\nValidationMachine = require 'lib/ValidationMachine'\r\nColourPicker = require 'colour-picker'\r\n\r\nclass ServiceValidator extends ValidationMachine\r\n applyRules: =>\r\n super\r\n @required 'name'\r\n @required 'discipline'\r\n\r\nmodule.exports = class OnlineServicePopover extends PopoverView\r\n template: require './template'\r\n validator: ServiceValidator\r\n className: 'online-service-popover'\r\n optionNames: PopoverView::optionNames.concat ['settings']\r\n\r\n initialize: =>\r\n super\r\n @view ?= new Model(submitted:false)\r\n\r\n @picker = new ColourPicker()\r\n @picker.useDefault = true\r\n @picker.on(\"picked\", @pickColour)\r\n\r\n extraBindings: =>\r\n settings: @settings\r\n\r\n attach: =>\r\n @$(\".palette\").append(@picker.render())\r\n super\r\n @$(\"#colourPicker\").on 'closed', -> false\r\n @$el.foundation()\r\n @money(\".money\")\r\n\r\n pickColour: (c) =>\r\n @$el.find('.colour-box').css(\"background\", c)\r\n @model.set(\"colour\", c)\r\n @$el.trigger('click') #ugly hackery to close drop down....\r\n\r\n save: =>\r\n @view.set(submitted:true)\r\n return unless @isValid()\r\n @model.save({},\r\n success: =>\r\n @publishEvent 'online:service:update', @model.clone()\r\n @close()\r\n error: =>\r\n debugger\r\n )\r\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"
Cancel
Save
\");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","_ = require 'underscore'\r\ndebounce = require 'debounce'\r\n\r\nView = require 'views/base/view'\r\nModel = require 'models/base/model'\r\nDeepModel = require 'models/base/deep_model'\r\nCollection = require 'models/base/collection'\r\n\r\nClassesCollectionView = require 'modules/myclinic/classes-collection-view'\r\nServicesCollectionView = require 'modules/myclinic/services-collection-view'\r\n\r\nAddSimpleServiceDialog = require 'modules/clinics/add-service'\r\n\r\nValidationMachine = require 'lib/ValidationMachine'\r\n\r\nclass Service extends DeepModel\r\n idAttribute: 'networkServiceId'\r\n urlRoot: '/api/system/targets/services'\r\n defaults:\r\n payment: \"none\"\r\n deposit: 0\r\n\r\nclass StockCollection extends Collection\r\n url: '/api/stock/pronto'\r\n\r\nclass ClientWhoReceives extends DeepModel\r\n url: '/api/myclinic'\r\n\r\nclass ClientWhoReceivesSettings extends DeepModel\r\n url: '/api/myclinic/settings'\r\n defaults:\r\n serviceOrder: []\r\n onlineSettings:\r\n skin: \"default\"\r\n maxBookings: 1\r\n isNew: -> false\r\n\r\nclass Validator extends ValidationMachine\r\n applyRules:=>\r\n super\r\n @regex 'onlineSettings.googleTrackingId', /^$|^ua-\\d{4,9}-\\d{1,4}$/i, \"Invalid Google Tracking ID\", \"settings\"\r\n\r\nmodule.exports = class OnlineSettingsScreen extends View\r\n template: require './template'\r\n className: 'online-settings'\r\n validator: Validator\r\n # regions:\r\n # classes: '.classes-view'\r\n # services: '.services-view'\r\n\r\n\r\n initialize: =>\r\n super\r\n @view = new Model\r\n saving: false\r\n mode: \"general\"\r\n\r\n updateTerms = debounce(@updateTerms, 1500)\r\n updatePolicy = debounce(@updatePolicy, 1500)\r\n updateSettings = debounce(@updateSettings, 1500)\r\n\r\n @stock = new StockCollection()\r\n @client = new ClientWhoReceives()\r\n @settings = new ClientWhoReceivesSettings()\r\n\r\n @stock.fetch()\r\n @settings.beginSync()\r\n @client.fetch(\r\n success: (model, res)=>\r\n @settings.set(res.clientWhoReceives.settings)\r\n @settings.set 'clientId', res.clientWhoReceives.clientId\r\n @settings.finishSync()\r\n @listenTo @settings, 'change', updateSettings\r\n\r\n _.get\r\n url:'/api/url/bykey/online',\r\n success: (res)=>\r\n @view.set(onlineUrl: res.url + @settings.get(\"url\"))\r\n )\r\n\r\n _.get\r\n url: '/api/content/bykey/terms'\r\n success: (res)=>\r\n c = res.content.replace(/£/gm, \"£\")\r\n .replace(//gm, \"\\n\")\r\n @view.set(terms:c)\r\n @listenTo @view, 'change:terms', updateTerms\r\n\r\n _.get\r\n url: '/api/content/bykey/cancellation-policy'\r\n success: (res)=>\r\n c = res.content.replace(/£/gm, \"£\")\r\n .replace(//gm, \"\\n\")\r\n @view.set(policy:c)\r\n @listenTo @view, 'change:policy', updatePolicy\r\n\r\n @listenTo @view, 'change:mode', => @publishEvent 'online:popover:close'\r\n\r\n updateTerms: (m, v)=>\r\n v = v.replace(/£/gm, \"£\")\r\n .replace(/(\\r\\n|\\n|\\r)/gm, \"
\")\r\n\r\n _.post\r\n url: '/api/content/bykey/terms'\r\n data:{ content: v }\r\n\r\n updatePolicy: (m, v)=>\r\n v = v.replace(/£/gm, \"£\")\r\n .replace(/(\\r\\n|\\n|\\r)/gm, \"
\")\r\n\r\n _.post\r\n url: '/api/content/bykey/cancellation-policy'\r\n data:{ content: v }\r\n\r\n extraBindings: =>\r\n settings: @settings\r\n client: @client\r\n\r\n # create: =>\r\n # cs = {\r\n # name: \"\"\r\n # discipline: \"Online Only\"\r\n # description: \"\"\r\n # # networkDisciplineId: v.network.get(\"id\")\r\n # # networkServiceId: v.service.get(\"id\")\r\n # }\r\n #\r\n # view = @subview 'create', new AddSimpleServiceDialog\r\n # client: @client\r\n # model: new Service(cs)\r\n # # service: v.service\r\n # # network: v.network\r\n # stock: @stock\r\n\r\n # @publishEvent 'online:service:create', service\r\n\r\n renderSubviews: =>\r\n super\r\n @subview 'services', new ServicesCollectionView\r\n settings: @settings\r\n container: @$el.find('.services-view')[0]\r\n # region: 'services'\r\n\r\n @subview 'classes', new ClassesCollectionView\r\n settings: @settings\r\n container: @$el.find('.classes-view')[0]\r\n # region: 'classes'\r\n\r\n updateSettings: =>\r\n return unless @isValid()\r\n\r\n @view.set(saving: true)\r\n @settings.save({}, silent:true).done debounce (=> @view.set(saving: false)), 2000\r\n\r\n uploadByKey: (e, v)=>\r\n key = e.currentTarget.attributes[\"data-key\"].value\r\n files = e.currentTarget.files\r\n data = new FormData()\r\n $.each(files, (key, value)=> data.append(key, value))\r\n\r\n $.ajax\r\n type: \"POST\"\r\n cache: false\r\n async: true\r\n processData: false,\r\n contentType: false,\r\n data: data\r\n beforeSend: @hookId\r\n\r\n url: \"/api/files/bykey/#{key}\"\r\n\r\n success: (res) =>\r\n @settings.trigger(\"change:url\") if key is \"logo\"\r\n error: =>\r\n alert \"file upload failure\"\r\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"
Saving

Online Settings



Drag and drop the services offered to change the order they are shown




\");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","_ = require 'underscore'\r\ndebounce = require 'debounce'\r\ndefer = require 'jquery'\r\n\r\nView = require 'views/base/view'\r\nModel = require 'models/base/model'\r\nDeepModel = require 'models/base/deep_model'\r\nCollection = require 'models/base/collection'\r\n\r\nclass Locations extends Collection\r\n url: '/api/locations'\r\n\r\nclass ClientWhoReceives extends Model\r\n url: '/api/myclinic'\r\n\r\nclass ClientWhoReceivesSettings extends DeepModel\r\n url: '/api/myclinic/settings'\r\n defaults:\r\n serviceOrder: []\r\n isNew: -> false\r\n\r\nmodule.exports = class ProntoSettingsScreen extends View\r\n template: require './template'\r\n\r\n initialize: =>\r\n super\r\n @view = new Model(saving: false)\r\n @settings = new ClientWhoReceivesSettings()\r\n @client = new ClientWhoReceives()\r\n @locations = new Locations()\r\n\r\n @settings.beginSync()\r\n defer.when(\r\n @client.fetch(),\r\n @locations.fetch()\r\n ).then((xhr1, xhr2)=>\r\n\r\n res = xhr1[0]\r\n @settings.set(res.clientWhoReceives.settings)\r\n @settings.set 'clientId', res.clientWhoReceives.clientId\r\n\r\n @locations.set(xhr2[0].result)\r\n _.each(@locations.models, (location) =>\r\n location.set(\r\n generalInfo: _.where(@settings.get(\"locationInfo\"), {id:location.get(\"onlineGuid\")})[0]?.generalInfo\r\n cancellationPolicy: _.where(@settings.get(\"locationInfo\"), {id:location.get(\"onlineGuid\")})[0]?.cancellationPolicy\r\n )\r\n )\r\n\r\n #Probably redundant, but added to force sort in alphabetical order\r\n @locations.comparator = 'name'\r\n @locations.sort()\r\n\r\n updateSettings = debounce(@updateSettings, 1500)\r\n updateLocations = debounce(@updateLocations, 1500)\r\n @settings.on 'change', updateSettings\r\n @locations.on 'change', updateLocations\r\n\r\n @settings.finishSync()\r\n )\r\n\r\n extraBindings: =>\r\n settings: @settings\r\n locations: @locations\r\n\r\n updateLocations: =>\r\n locArray = []\r\n _.each(@locations.models, (location) =>\r\n guid = location.get(\"onlineGuid\")\r\n info = location.get(\"generalInfo\")\r\n cancel = location.get(\"cancellationPolicy\")\r\n name = location.get(\"name\")\r\n locArray.push({id:guid,generalInfo:info,cancellationPolicy:cancel})\r\n )\r\n @settings.set(\r\n locationInfo: locArray\r\n )\r\n\r\n updateSettings: =>\r\n @view.set(saving: true)\r\n @settings.save({}, silent:true).done debounce (=> @view.set(saving: false)), 2000\r\n\r\n uploadByKey: (e, v)=>\r\n key = e.currentTarget.attributes[\"data-key\"].value\r\n files = e.currentTarget.files\r\n data = new FormData()\r\n $.each(files, (key, value)=> data.append(key, value))\r\n\r\n $.ajax\r\n type: \"POST\"\r\n cache: false\r\n async: true\r\n processData: false,\r\n contentType: false,\r\n data: data\r\n beforeSend: @hookId\r\n\r\n url: \"/api/files/bykey/#{key}\"\r\n\r\n success: (res) =>\r\n alert \"file upload succeeded\"\r\n error: =>\r\n alert \"file upload failure\"\r\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"
Saving

My Pronto Settings

Appointment Search
General Information


Cancellation Policy

\");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","_ = require 'underscore'\r\ndebounce = require 'debounce'\r\n\r\nView = require 'views/base/view'\r\nModel = require 'models/base/model'\r\nDeepModel = require 'models/base/deep_model'\r\n\r\nclass ClientWhoReceives extends Model\r\n url: '/api/myclinic'\r\n\r\nclass ClientWhoReceivesSettings extends DeepModel\r\n url: '/api/myclinic/settings'\r\n defaults:\r\n serviceOrder: []\r\n isNew: -> false\r\n\r\nmodule.exports = class ReceptionSettingsScreen extends View\r\n template: require './template'\r\n\r\n initialize: =>\r\n super\r\n @view = new Model(saving: false)\r\n @settings = new ClientWhoReceivesSettings()\r\n @client = new ClientWhoReceives()\r\n\r\n @settings.beginSync()\r\n @client.fetch(\r\n success: (model, res)=>\r\n @settings.set(res.clientWhoReceives.settings)\r\n @settings.set 'clientId', res.clientWhoReceives.clientId\r\n\r\n updateSettings = debounce(@updateSettings, 1500)\r\n @settings.on 'change', updateSettings\r\n @settings.finishSync()\r\n )\r\n\r\n extraBindings: =>\r\n settings: @settings\r\n \r\n updateSettings: =>\r\n @view.set(saving: true)\r\n @settings.save({}, silent:true).done debounce (=> @view.set(saving: false)), 2000","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"
Saving
\");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","_ = require 'underscore'\nView = require 'views/base/view'\nModel = require 'models/base/model'\nDeepModel = require 'models/base/deep_model'\nCollection = require 'models/base/collection'\nmediator = require 'mediator'\n\nReportView = require '../report-view'\nInvoiceView = require '../invoice-view'\nReferralSummary = require '../referral-summary'\nAppointmentDialog = require '../appointment-dialog'\n\nalert = require 'lib/alert'\n\nmodule.exports = class ReferralScreen extends View\n template: require './template'\n optionNames: View::optionNames.concat ['type', 'mode']\n\n regions:\n dynamic: \".swap-panel\"\n\n initialize: (args) ->\n super\n @subscribeEvent 'report:added', (v, mode, origin) =>\n @summary()\n alert @, \"Report Action\", \"Report #{mode} sucessfully\", =>\n @reports.set(v, {remove:false})\n if origin? && v.get(\"id\") isnt origin\n @reports.get(origin).set(status:6)\n @publishEvent 'loading', false\n\n @subscribeEvent 'invoice:added', (res, mode) =>\n @summary()\n alert @, \"Invoice Action\", \"Invoice #{mode} sucessfully\", =>\n @invoices.set(new DeepModel(res.invoice), {remove:false})\n @appointments.set(res.appointments)\n @publishEvent 'loading', false\n\n @subscribeEvent 'invoice:removed', (res) =>\n @summary()\n @invoices.remove(new DeepModel(res.invoice))\n @appointments.set(res.appointments)\n @publishEvent 'loading', false\n\n @subscribeEvent 'appointment:added', (v) =>\n @summary()\n @appointments.set(v, {remove:false})\n @appointmentsUsingAuths = @appointments.filter((x) -> x.get('status') < 3)\n @view.set(\n appointmentsUsingAuths: @appointmentsUsingAuths\n canAddAppointment: @appointmentsUsingAuths.length < @view.get('authorisations')\n )\n @publishEvent 'loading', false\n\n @subscribeEvent 'report:view', @report\n @subscribeEvent 'invoice:view', @invoice\n @subscribeEvent 'summary:view', @summary\n @subscribeEvent 'appointment:create', @appointment\n @subscribeEvent 'appointment:edit', @appointment\n @subscribeEvent 'appointment:delete', (v)=>\n @publishEvent 'loading', true\n _.del(\n url: \"/api/system/bookings/#{@id}/appointment/#{v.id}\"\n success: =>\n @appointments.remove(v)\n @appointmentsUsingAuths = @appointments.filter((x) -> x.get('status') < 3)\n @view.set(\n appointmentsUsingAuths: @appointmentsUsingAuths\n canAddAppointment: @appointmentsUsingAuths.length < @view.get('authorisations')\n )\n @publishEvent 'loading', false\n error: => @publishEvent 'loading', false\n )\n\n @subscribeEvent 'report:acknowleged', (id)=>\n @reports.get(id).set(status:4)\n\n @subscribeEvent 'invoice:acknowleged', (id)=>\n @invoices.get(id).set(status:4)\n\n @view = new Model(\n canInvoice:false\n page: args.page\n )\n @model ?= new Model()\n @patient = new Model()\n @reports = new Collection()\n @attachments = new Collection()\n @invoices = new Collection([], model:DeepModel)\n @appointments = new Collection(@model.get(\"appointments\") || [], model:DeepModel)\n\n @reports.comparator = (m)-> -new Date(m.get(\"timeStamp\")).getTime()\n @invoices.comparator = (m)-> -new Date(m.get(\"timeStamp\")).getTime()\n @appointments.comparator = (m)-> -new Date(m.get(\"date\")).getTime()\n _.get(\n url:\"/api/system/bookings/#{@id}\"\n success: (res)=>\n @model.set(res.audit)\n @patient.set(res.patient)\n @reports.reset(res.reports)\n @invoices.reset(res.invoices)\n @defaults = res.defaults\n @inventory = res.inventory\n @locations = res.locations\n @practitioners = res.practitioners\n @appointments.reset(res.audit.appointments)\n @attachments.reset(res.attachments)\n @appointmentsUsingAuths = res.audit.appointments.filter((x) -> x.status < 3)\n @view.set(\n referrer: res.referrer\n canReport: res.canReport\n canInvoice: res.canInvoice\n authorisations: res.authorisations\n appointmentsUsingAuths: @appointmentsUsingAuths\n canAddAppointment: @appointmentsUsingAuths.length < res.authorisations\n isAppointmentLocationSelectionDisabled: res.isAppointmentLocationSelectionDisabled\n onlyPastAppointmentsComplete: res.onlyPastAppointmentsComplete\n onePatientAppointmentPerDay: res.onePatientAppointmentPerDay\n workflowIdWithReferrerPrefix: res.workflowIdWithReferrerPrefix\n )\n \n )\n\n extraBindings: =>\n patient: @patient\n appointments: @appointments\n\n renderSubviews: =>\n params = @model.toJSON()\n delete params.id\n\n switch @mode\n when \"invoice\"\n @invoice(params)\n when \"report\"\n @report(params)\n else\n @summary()\n\n summary: =>\n @subview 'panel', new ReferralSummary(\n view: @view\n model: @model\n patient: @patient\n reports: @reports\n attachments: @attachments\n invoices: @invoices\n appointments: @appointments\n appointmentsUsingAuths: @appointmentsUsingAuths\n region: \"dynamic\"\n )\n\n report: (v)=>\n params = {\n auditId: @id\n region: \"dynamic\"\n }\n\n @subview 'panel', new ReportView(_.extend({}, v, params))\n\n invoice: (v)=>\n params = {\n auditId: @id\n region: \"dynamic\"\n defaults: @defaults\n locations: @locations\n practitioners: @practitioners\n appointments: @appointments.toJSON()\n }\n\n @subview 'panel', new InvoiceView(_.extend({}, v, params))\n\n appointment: (v) =>\n v = new DeepModel(v.toJSON()) if v?\n @subview 'appointments', new AppointmentDialog(\n model: v\n auditId: @id\n defaults: @defaults\n inventory: @inventory\n locations: @locations\n practitioners: @practitioners\n appointments: @appointments.toJSON() \n isAppointmentLocationSelectionDisabled: @view.get('isAppointmentLocationSelectionDisabled')\n onlyPastAppointmentsComplete: @view.get('onlyPastAppointmentsComplete')\n onePatientAppointmentPerDay: @view.get('onePatientAppointmentPerDay')\n )\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"

Status:
New BookingAwaiting First AppointmentReferral ReceivedIn TreatmentCancelled Or DeclinedDischargedClosed
Referrer:
Referrer Reference:
Booked On:
Authorisations:
 ofUsed
\");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","_ = require 'underscore'\nView = require 'views/base/view'\nModel = require 'models/base/model'\nCollection = require 'models/base/collection'\nPagingCollection = require 'models/base/paging_collection'\nmediator = require 'mediator'\n# Dropload = require 'dropload'\n\nmodule.exports = class ReferralScreen extends View\n template: require './template'\n optionNames: View::optionNames.concat ['type', 'bookerId', 'view', 'patient', 'reports', 'invoices', 'appointments', 'inventory', 'attachments']\n\n extraBindings: =>\n patient: @patient\n reports: @reports\n invoices: @invoices\n appointments: @appointments\n attachments: @attachments\n\n attach: =>\n super\n @$el.foundation()\n\n report: (mode, e, v) =>\n @publishEvent \"report:view\",\n mode: mode\n id: v.report?.id\n type: v.report?.type || 1\n templateId: v.report?.templateId || e.currentTarget.value\n bookerId: @model.get(\"bookerId\")\n\n invoice: (mode, e, v) =>\n @publishEvent \"invoice:view\",\n mode: mode\n id: v.invoice?.id\n type: v.invoice?.type || 1\n templateId: v.invoice?.templateId || e.currentTarget.value\n bookerId: @model.get(\"bookerId\")\n\n appointment: =>\n @publishEvent \"appointment:create\"\n\n editAppointment: (e, v)=>\n @publishEvent \"appointment:edit\", v.appointment\n\n deleteAppointment: (e, v)=>\n @publishEvent \"appointment:delete\", v.appointment\n\n acknowledgeReport: (e, v)=>\n @publishEvent 'loading', true\n _.post(\n url: '/api/caseflow/report/acknowledge'\n data:\n id: v.report.id\n success: (res)=>\n @publishEvent 'report:acknowleged', v.report.id\n @publishEvent 'loading', false\n error: (model, res)=>\n @publishEvent 'loading', false\n )\n\n acknowledgeInvoice: (e, v)=>\n @publishEvent 'loading', true\n _.post(\n url: '/api/finances/invoice/acknowledge'\n data:\n id: v.invoice.id\n success: (res)=>\n @publishEvent 'invoice:acknowleged', v.invoice.id\n @publishEvent 'loading', false\n error: (model, res)=>\n @publishEvent 'loading', false\n )\n\n downloadAttachment: (e, v) =>\n window.open '/api/referral/file' + v.attachment.attributes.path\n\n navigateBack: () =>\n @redirectTo\n controller: \"modules/myclinic/myclinic\"\n action: \"index\"\n params: page: @view.get(\"page\")\n\n # testing upload endpoint in pronto-api\n # render: =>\n # super\n # selectedPath = \"Documents\"\n # drop = Dropload(@$(\"#drop\")[0])\n # drop.on \"error\", (err) ->\n # console.error err.message\n #\n # $(\".dropInfo p\").text \"Drag and drop a file to upload to '\" + selectedPath + \"'\"\n #\n # drop.on \"upload\", (upload) =>\n #\n # upload.on \"progress\", (e) =>\n # console.log(e.percent)\n # upload.to \"/api/file/foldertest\"\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"

Address

No Address Details Provided

First Appointment

Contact Details

Email:
Home:
Mobile:
Work:

Appointments

DateServiceStatusPriceInvoiced
No Appointments
BookedArrivedCompletedDid Not AttendCancelled

Reports

ReportTime StampStatus

There are no reports for this referral
DraftSubmittedAcceptedRejectedRejectedQueriedQueried

Invoices

Time StampStatusAmount
There are no invoices for this referral
DraftSubmittedAcceptedRejectedRejectedQueriedQueried

Attachments

NameDate CreatedTypeSize
KBDownload
\");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","View = require 'views/base/view'\r\nModel = require 'models/base/model'\r\nDeepModel = require 'models/base/deep_model'\r\nCollection = require 'models/base/collection'\r\nPagingCollection = require 'models/base/paging_collection'\r\nrivets = require 'rivets'\r\nAddSimpleServiceDialog = require 'modules/clinics/add-service'\r\ndebounce = require 'debounce'\r\nrequest = require 'superagent'\r\ndefer = require 'jquery'\r\n\r\n_ = require 'underscore'\r\nDialogView = require 'views/base/dialog_view'\r\n\r\nPractitionerEditDialog = require '../home/PractitionerDialog'\r\nLocationEditDialog = require '../home/LocationDialog'\r\nConfirmDialog = require 'lib/confirm-dialog'\r\n\r\nclass Groups extends Collection\r\n url: '/api/groups/list'\r\n\r\nclass Locations extends Collection\r\n url: '/api/locations'\r\n\r\nclass Practitioners extends Collection\r\n url: '/api/practitioners'\r\n\r\nclass ClientWhoReceivesSettings extends DeepModel\r\n url: '/api/myclinic/settings'\r\n defaults:\r\n serviceOrder: []\r\n isNew: -> false\r\n\r\nmodule.exports = class ReferrersScreen extends View\r\n template: require './template'\r\n\r\n initialize: =>\r\n super\r\n @subscribeEvent 'confirm:cancelled', (args) ->\r\n args.referrer.set(TM2GroupId: args.referrer.previous(\"TM2GroupId\"), {isRecursive:true})\r\n\r\n @subscribeEvent 'confirm:confirmed', (args) ->\r\n prev = @bookers.findWhere(id:args.group.get(\"onlineGuid\"))\r\n prev?.set(TM2GroupId: null, {isRecursive:true})\r\n debounce(@updateGroup, 1000)()\r\n\r\n @view = new Model(saving:false)\r\n @model = new Model()\r\n @groups = new Groups()\r\n @bookers = new Collection()\r\n @settings = new ClientWhoReceivesSettings()\r\n @locations = new Locations()\r\n @practitioners = new Practitioners()\r\n\r\n @bookers.beginSync()\r\n @settings.beginSync()\r\n defer.when(\r\n _.get(url:'/api/myclinic'),\r\n @groups.fetch()\r\n @locations.fetch(),\r\n @practitioners.fetch(),\r\n ).then((xhr1, xhr2) =>\r\n res = xhr1[0]\r\n @model.set(res.clientWhoReceives)\r\n @settings.set(res.clientWhoReceives.settings)\r\n @settings.set(clientId: res.clientWhoReceives.clientId)\r\n\r\n bookers = _.filter((res.clientsWhoBook), (x) -> x.type is 'Referrer')\r\n _.each(bookers, (booker) =>\r\n auth = _.findWhere(res.clientWhoReceives.authorizations, bookerId:booker.id)\r\n booker.provisionals = auth.provisionals\r\n booker.prontoActivated = auth.prontoActivated != false\r\n booker.clinicEnabled = auth.clinicEnabled != false\r\n booker.TM2GroupId = _this.groups.findWhere({onlineGuid:booker.id})?.get(\"globalId\")\r\n )\r\n\r\n @bookers.reset(bookers)\r\n\r\n for location in @settings.get('locationInfo') || []\r\n locs = @locations.filter((x) -> location.id is x.get 'onlineGuid')\r\n if locs.length > 0\r\n loc = locs[0]\r\n loc.set\r\n cancellationPolicy: location.cancellationPolicy\r\n generalInfo: location.generalInfo\r\n isSelected: !location.exclude\r\n\r\n @listDetailsVeryNicely()\r\n\r\n @settings.set(@model.get('settings'))\r\n @settings.finishSync()\r\n\r\n @listenTo @locations, 'change', @updateLocations\r\n @listenTo @settings, 'change', => debounce(@updateSettings, 1500)()\r\n\r\n @listenTo @bookers, 'change:clinicEnabled change:provisionals', @modifyBookerOptions\r\n @listenTo @bookers, 'change:TM2GroupId', (m, v, o)=>\r\n return if o.isRecursive is true\r\n group = @groups.findWhere(globalId:v)\r\n\r\n if not group? or _.isEmptyGuid(group.get(\"onlineGUID\"))\r\n return debounce(@updateGroup, 1000)()\r\n\r\n @subview 'confirm', new ConfirmDialog\r\n model: new Model\r\n title: \"Confirm Group Link Change\"\r\n message:\"

\r\n This group is already linked to another referrer.
\r\n Selecting this group you will unlink it from the previous referrer.\r\n

\r\n Are you sure you wish to continue?\"\r\n context:\r\n referrer: m\r\n group: group\r\n )\r\n\r\n extraBindings: =>\r\n xhr: @xhr\r\n groups: @groups\r\n bookers: @bookers\r\n settings: @settings\r\n locations: @locations\r\n practitioners: @practitioners\r\n\r\n attach: =>\r\n super\r\n @$el.foundation()\r\n\r\n listDetailsVeryNicely: =>\r\n @bookers.each (booker) =>\r\n excludes = @model.get('settings')?.excludeLocations?[booker.id]\r\n if !excludes? || excludes?.length is 0\r\n booker.set\r\n locationName: \"All Locations\"\r\n locations: []\r\n else\r\n booker.set\r\n locationName: undefined\r\n locations: @locations.filter((l) -> excludes.indexOf(l.get('onlineGuid')) is -1)\r\n\r\n excludes = null\r\n excludes = @model.get('settings')?.excludePractitioners?[booker.id]\r\n\r\n if !excludes? || excludes?.length is 0\r\n booker.set\r\n practitionerName: \"All Practitioners\"\r\n practitioners: []\r\n else\r\n booker.set\r\n practitionerName: undefined\r\n practitioners: @practitioners.filter((p) -> excludes.indexOf(p.get('onlineGuid')) is -1)\r\n\r\n @hookShowMore()\r\n\r\n hookShowMore: =>\r\n @$('ul.smaller .showMore').remove()\r\n @$('ul.smaller').find('li:gt(4)')\r\n .hide()\r\n .end()\r\n .each(->\r\n if($(this).children('li').length > 5)\r\n $(this).append(\r\n $('
  • Show More
  • ')\r\n .addClass('showMore')\r\n .click(->\r\n if($(this).siblings(':hidden').length > 0)\r\n $(this).html('Show Less').siblings(':hidden').show()\r\n else\r\n $(this).html('Show More').show().siblings('li:gt(4)').hide()\r\n )\r\n )\r\n )\r\n\r\n modifyBookerOptions: (m, v) =>\r\n a = _.where(@model.get(\"authorizations\"), {bookerId: m.get(\"id\")})\r\n if a.length > 0\r\n a[0].clinicEnabled = m.get(\"clinicEnabled\")\r\n a[0].provisionals = m.get(\"provisionals\")\r\n else\r\n @model.get(\"authorizations\").push({\r\n bookerId: m.get(\"id\")\r\n clinicEnabled: m.get(\"clinicEnabled\")\r\n provisionals: m.get(\"provisionals\")\r\n })\r\n\r\n _.post\r\n url: '/api/myclinic/authorizations'\r\n data:\r\n bookerId: m.get(\"id\")\r\n clinicEnabled: m.get(\"clinicEnabled\")\r\n provisionals: m.get(\"provisionals\")\r\n @sendEmail(m.get(\"clinicEnabled\"), m.get(\"id\"))\r\n\r\n sendEmail: (auth, bookerId) =>\r\n _.post\r\n url: '/api/email/clinic/activatedordeactivated'\r\n data: \r\n enabled: auth\r\n bookerId: bookerId\r\n clinicId: @model.get('id') \r\n\r\n editLocations: (e,b) =>\r\n @subview 'editDialog', new LocationEditDialog\r\n model: b.booker\r\n settings: @settings\r\n locations: new Collection(@locations.toJSON())\r\n\r\n updateLocations: =>\r\n @settings.set 'locationInfo', @locations.map (x) ->\r\n id:x.get('onlineGuid'),\r\n cancellationPolicy: x.get('cancellationPolicy')\r\n generalInfo: x.get('generalInfo')\r\n\r\n editPractitioners: (e,b) =>\r\n @subview 'editDialog', new PractitionerEditDialog\r\n model: b.booker\r\n settings: @settings\r\n practitioners: new Collection(@practitioners.toJSON())\r\n\r\n updateGroup: =>\r\n @view.set 'saving', true\r\n data = []\r\n @bookers.each (booker) =>\r\n data.push({globalId:booker.get('TM2GroupId'), onlineGuid:booker.id})\r\n\r\n @groups.each (group) =>\r\n group.set\r\n onlineGuid: _.findWhere(data, {globalId: group.get(\"globalId\")})?.onlineGuid\r\n\r\n request.post '/api/groups/link', groups:data, (err, res) =>\r\n debounce((=> @view.set('saving', false)), 500)()\r\n\r\n updateSettings: =>\r\n @view.set 'saving', true\r\n @settings.save({}, silent:true).done debounce (=> @view.set('saving', false)), 2000\r\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"
    Saving

    My Pronto Referrers

    This sections lists all the referrers on the Pronto Network who you can receive bookings from.

    Name
    In Progress
    Locations  (Edit)

    Practitioners  (Edit)
    We will contact you once everything is set up
    Set up not complete
    This referrer isn't activated yet. Please use the switch on the left to activate them.
    \");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","_ = require 'underscore'\nView = require 'views/base/view'\nModel = require 'models/base/model'\nDeepModel = require 'models/base/deep_model'\n\n#{core} = require 'lib/bundle'\n\nclass Report extends DeepModel\n urlRoot: '/api/caseflow/report'\n\nmodule.exports = class ReportView extends View\n template: require './template'\n optionNames: View::optionNames.concat ['id', 'mode', 'type', 'templateId', 'auditId', 'bookerId']\n\n initialize: =>\n super\n @view = new Model\n type:@type\n mode:@mode\n\n @model ?= new Report\n auditId: @auditId\n bookerId: @bookerId\n\n # @store = new core.ReportStore()\n\n # req = {\n # template: \"\"\n # onStateChange: @onStateChange\n # store : @store\n # }\n\n # @reactEl = core.Utils.createThemedElement(core.Report, req)\n\n attach: =>\n super\n _.post(\n url: \"/api/caseflow/report/search\"\n data:\n id: @id\n bookerId: @bookerId\n templateId: @templateId\n\n success: (res)=>\n res.report ?= {}\n res.report.id = null if @mode is \"resubmit\"\n\n @model.set(_.extend({}, res.report, {templateId: res.schema?.id, title: res.schema?.title, reportTemplateType: res.schema?.reportTemplateType, data: JSON.stringify(res.report.data)}))\n\n @store = new core.ReportStore()\n @store.mode = if res.report.status > 0 then 'review' else 'form'\n @view.set(mode: @store.mode)\n\n if res.schema?.reportTemplateType is 'D'\n @store.template = res.schema\n else\n @store.template = res.schema.template # markdown legacy\n \n @store.reportTemplateType= res.schema?.reportTemplateType\n\n if typeof res.report?.data == 'string'\n @store.data = JSON.parse(res.report.data)\n else if typeof res.report?.data == 'object'\n @store.data = res.report.data\n else\n @store.data = null\n\n readOnly = if @store.mode == 'review' then true else false\n\n req = {\n onStateChange: @onStateChange,\n data: Object.assign({}, @store.data), \n readOnly: if @store.mode == 'review' then true else false,\n store: @store\n }\n @reactEl = core.Utils.createThemedElement(core.Report, req)\n @reactDomEl = core.ReactDOM.render(@reactEl, @$(\".report-container\")[0]) \n\n error: =>\n debugger\n )\n\n onStateChange: (data)=>\n @model.set(data:JSON.stringify(data))\n\n save: =>\n @view.set(errors: \"\")\n @publishEvent 'loading', true\n\n @model.save({},\n success: (model, res)=>\n @publishEvent 'report:added', new Model(res), \"saved\", @id\n @publishEvent 'loading', false\n error: (model, res)=>\n @publishEvent 'loading', false\n @view.set\n errors:res?.responseJSON?.responseStatus?.message || \"An unknown error occurred\"\n )\n\n edit: =>\n @view.set(errors: \"\")\n @publishEvent 'loading', true\n \n _.post(\n url: \"/api/caseflow/editreport\"\n data:\n id: @id\n\n success: (model, res)=>\n @publishEvent \"report:view\",\n mode: 'draft'\n id: model.id\n type: model.type || 1\n templateId: model.templateId\n bookerId: @model.get(\"bookerId\")\n @publishEvent 'loading', false\n error: (model, res)=>\n @publishEvent 'loading', false\n @view.set\n errors:res?.responseJSON?.responseStatus?.message || \"An unknown error occurred\"\n ) \n\n submit: =>\n @view.set(errors: \"\")\n @publishEvent 'loading', true\n\n @store.applyValidation().then((isValid)=>\n unless isValid\n @publishEvent 'loading', false\n panel = $(\"#report-panel\")[0]\n panel.scrollIntoView()\n return\n\n _.post(\n url: '/api/caseflow/report/submit'\n data: @model.toJSON()\n success: (res)=>\n @publishEvent 'report:added', new Model(res), \"submitted\", @id\n @publishEvent 'loading', false\n error: (model, res)=>\n @publishEvent 'loading', false\n @view.set\n errors:res?.responseJSON?.responseStatus?.message || \"An unknown error occurred\"\n )\n )\n\n close: =>\n @publishEvent 'summary:view'\n\n print: =>\n window.print()","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"

    DraftSubmittedAcceptedRejectedQueried
    Sorry we could not save the report due the following reasons:

      
      
    \");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","_ = require 'underscore'\nView = require 'views/base/view'\nModel = require 'models/base/model'\nmediator = require 'mediator'\n\n#{core} = require 'lib/bundle'\n\nmodule.exports = class SearchView extends View\n template: require './template'\n optionNames: View::optionNames.concat ['filter','summary', 'practitioners', 'referrers']\n\n initialize: ->\n super\n value = {\n to: @filter.get(\"toDate\")\n from: @filter.get(\"fromDate\")\n }\n @reactEl = core.Utils.createThemedElement(core.FieldDateRangePicker, {value: value, onChange: @onChange})\n\n extraBindings: =>\n filter: @filter\n summary: @summary\n referrers: @referrers\n practitioners: @practitioners\n user: mediator.user\n\n attach: =>\n super\n @reactDomEl = core.ReactDOM.render(@reactEl, @$(\".date-range\")[0])\n\n onChange: (r) => \n value = {\n toDate: if r?.to? then r.to.toJSON() else null\n fromDate: if r?.from? then r.from.toJSON() else null \n }\n \n if(value.toDate == null && value.fromDate == null)\n @reactEl = core.Utils.createThemedElement(core.FieldDateRangePicker, {value: value, onChange: @onChange})\n @filter.set(value)\n \n if(value.toDate != null && value.fromDate != null)\n @filter.set(value)\n @reactDomEl = core.ReactDOM.render(@reactEl, @$(\".date-range\")[0])\n\n onKeyPress: (e)=>\n return unless (e.keyCode == 13 || e.which == 13)\n e.preventDefault()\n e.target.blur()\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\njade_mixins[\"RadioGroupButton\"] = jade_interp = function(name, binding, text, value, index){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nbuf.push(\"
  • \");\n};\nbuf.push(\"
    Search
    Type
      \");\njade_mixins[\"RadioGroupButton\"]('type', 'filter:type', 'All', '-', 'summary:all');\njade_mixins[\"RadioGroupButton\"]('type', 'filter:type', 'Referral', 'D', 'summary:referrals');\njade_mixins[\"RadioGroupButton\"]('type', 'filter:type', 'Reception', 'T', 'summary:reception');\njade_mixins[\"RadioGroupButton\"]('type', 'filter:type', 'Online', 'O', 'summary:online');\nbuf.push(\"
    Status
      \");\njade_mixins[\"RadioGroupButton\"]('status', 'filter:status', 'All', '', 'summary:all');\njade_mixins[\"RadioGroupButton\"]('status', 'filter:status', 'Needs Action', '1000', 'summary:needsAction');\njade_mixins[\"RadioGroupButton\"]('status', 'filter:status', 'Referral Received', '2', 'summary:received');\njade_mixins[\"RadioGroupButton\"]('status', 'filter:status', 'Awaiting First Appointment', '1', 'summary:awaiting');\njade_mixins[\"RadioGroupButton\"]('status', 'filter:status', 'Rejected', '4', 'summary:rejected');\njade_mixins[\"RadioGroupButton\"]('status', 'filter:status', 'New Booking', '0', 'summary:booking');\njade_mixins[\"RadioGroupButton\"]('status', 'filter:status', 'In Treatment', '3', 'summary:inTreatment');\njade_mixins[\"RadioGroupButton\"]('status', 'filter:status', 'Discharged', '5', 'summary:discharged');\njade_mixins[\"RadioGroupButton\"]('status', 'filter:status', 'Complete', '6', 'summary:complete');\njade_mixins[\"RadioGroupButton\"]('status', 'filter:status', 'No Status', '-1', 'summary:none');\nbuf.push(\"
    Practitioner
    Referrer
    Within Date Range
    Patient
    Referrer Reference
    \");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","DialogView = require 'views/base/dialog_view'\nModel = require 'models/base/model'\nCollection = require 'models/base/collection'\n\nclass ClientWhoReceives extends Model\n url: '/api/myclinic'\n\nclass Locations extends Collection\n url: '/api/locations'\n\nclass Practitioners extends Collection\n url: '/api/practitioners'\nrivets = require 'rivets'\n\nclass Groups extends Collection\n url: '/api/groups'\n\nclass ClinicalService extends Model\n url: '/api/system/targets/clinicalservices'\n\nclass ClinicNetworkCollection extends Collection \n url: => \"/api/system/targets/#{@targetId}/networks\"\n\nmodule.exports = class ServiceWizard extends DialogView\n template: require './service-wizard'\n id: 'ServiceWizard'\n \n initialize: (args) =>\n super\n @targetId = args.targetId\n @targets = new Collection()\n @users = new Collection()\n @networks = args.networks\n @client = args.client\n @model = new ClinicalService\n\n unless @client?\n @client = new ClientWhoReceives()\n @client.fetch(beforeSend:@hookId)\n\n unless @networks?\n @networks = new ClinicNetworkCollection()\n @networks.targetId = @model.id \n \n @locations = new Locations()\n @locations.fetch(beforeSend:@hookId).done => @locations.each (l) => l.set 'selected': true\n\n @practitioners = new Practitioners()\n @practitioners.fetch(beforeSend:@hookId).done => @practitioners.each (p) => p.set 'selected': true\n\n @groups = new Groups()\n @groups.fetch(beforeSend:@hookId).done => \n @$(\"#groups\").foundation()\n showPronto = @view.get 'showOnlyProntoGroups'\n @groups.each (x) -> \n x.set visible: !showPronto or x.get('onlineGUID') isnt \"00000000000000000000000000000000\"\n x.set selected: x.get('onlineGUID') isnt \"00000000000000000000000000000000\"\n\n @view = new Model\n showOnlyProntoGroups:true\n simpleMode:1 #rivets doesn't like true false radios\n \n @listenTo @model, 'change:networkServiceId', @setName\n @listenTo @view, 'change:showOnlyProntoGroups', @toggleGroups\n \n hookId: (xhr) => #sticks the targetId in the header so pronto knows which clinic's settings to update\n xhr.setRequestHeader('X-PRONTO-TARGET-ID', @targetId) if @targetId?\n\n applyBindings: =>\n @bindings = rivets.bind @el, \n vm:@\n model:@model\n client:@client\n view: @view\n locations:@locations\n practitioners:@practitioners \n groups: @groups\n networks: @networks\n\n attach: =>\n super\n @$el.foundation()\n\n setName: =>\n @model.set 'name', @$('select.service option:selected').text()\n \n toggleGroups: =>\n showPronto = @view.get 'showOnlyProntoGroups'\n @groups.each (x) -> x.set visible: !showPronto or x.get('onlineGUID') isnt \"00000000000000000000000000000000\"","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"
    ×

    Add New Service

    Service Details
    Charge Setup
    Advanced

    Service Setup

    Charge Setup

    (this will save you lots of time!)

    Availability Setup

    Locations
    Practitioners
    Customer Groups
    Name/Address





    Name/AddressProvides this serviceOptions


    Charges

    Edit
    Availability

    Edit
    Name/AddressAccesses this ServiceOptions



    Edit
    \");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","_ = require 'underscore'\r\n\r\nDeepModel = require 'models/base/deep_model'\r\nCollection = require 'models/base/collection'\r\nDraggableView = require 'views/base/draggable_view'\r\n\r\nOnlineServicePopover = require 'modules/myclinic/online-service-popover'\r\n\r\nclass Service extends DeepModel\r\n idAttribute: 'networkServiceId'\r\n urlRoot: '/api/system/targets/services'\r\n defaults:\r\n payment: \"none\"\r\n deposit: 0\r\n\r\nclass ServiceCollection extends Collection\r\n url: '/api/system/targets/services/overview'\r\n model: Service\r\n\r\nmodule.exports = class ServicesCollectionView extends DraggableView\r\n template: require './template'\r\n optionNames: DraggableView::optionNames.concat ['settings']\r\n\r\n initialize: =>\r\n super\r\n @subscribeEvent 'online:service:create', (service)=>\r\n @services.add(service)\r\n\r\n @subscribeEvent 'online:service:update', (service)=>\r\n @services.set(service, {remove:false})\r\n\r\n # @subscribeEvent 'online:service:refresh', =>\r\n # @services.reset()\r\n # @services.fetch()\r\n\r\n @subscribeEvent 'online:popover:close', =>\r\n @removeSubview 'edit'\r\n\r\n @services = new ServiceCollection()\r\n @services.comparator = (a, b)=>\r\n _a = @serviceOrder.indexOf(a.get(\"networkServiceId\"))\r\n _b = @serviceOrder.indexOf(b.get(\"networkServiceId\"))\r\n return 1 if _a > _b\r\n return -1 if _a < _b\r\n return 0\r\n\r\n @listenTo @settings, 'change:_syncState', =>\r\n return unless @settings.isSynced()\r\n @serviceOrder = @settings.get(\"serviceOrder\") || []\r\n @services.fetch()\r\n\r\n extraBindings: =>\r\n services: @services\r\n\r\n edit: (e, v) =>\r\n @removeSubview 'edit'\r\n @subview 'edit', new OnlineServicePopover\r\n anchor: @$(e.currentTarget)\r\n placement: 'auto'\r\n model: v.service.clone()\r\n settings: @settings\r\n\r\n dragStart:(e, v) =>\r\n super\r\n @removeSubview 'edit'\r\n v.service.set(selected:true)\r\n @dragId = v.service.get(\"networkServiceId\")\r\n\r\n dragEnter:(e, v) =>\r\n return if v.service.get(\"selected\")\r\n over = @serviceOrder.indexOf(v.service.get(\"networkServiceId\"))\r\n order =_.without(@serviceOrder, @dragId)\r\n order.splice(over, 0, @dragId)\r\n @serviceOrder = order\r\n @services.sort()\r\n\r\n dragEnd:(e, v) =>\r\n @services.none()\r\n\r\n drop:(e, v) =>\r\n super\r\n @settings.set(serviceOrder:@serviceOrder)\r\n return false;\r\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"
    Loading

     
    Edit
    \");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","View = require 'views/base/view'\r\nModel = require 'models/base/model'\r\n\r\nReferrersScreen = require '../referrers-screen'\r\nProntoSettingsScreen = require '../pronto-settings-screen'\r\n\r\n# This screen is only a place holder until a new method\r\n# for accessing settings has been decided\r\n\r\nmodule.exports = class SettingsScreen extends View\r\n template: require './template'\r\n optionNames: View::optionNames.concat ['mode']\r\n regions:\r\n referrers: '.referrers'\r\n settings: '.settings'\r\n\r\n initialize: =>\r\n super\r\n @view = new Model\r\n mode: @mode || \"referrers\"\r\n\r\n renderSubviews: =>\r\n super\r\n @subview 'referrers', new ReferrersScreen region:'referrers'\r\n @subview 'settings', new ProntoSettingsScreen region:'settings'\r\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"

    Referrers Setup

    \");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","View = require 'views/base/view'\nDeepModel = require 'models/base/deep_model'\nCollection = require 'models/base/collection'\n\nBookingsView = require '../bookings-view'\n\nmodule.exports = class TM2BookingsScreen extends View\n template: require './template'\n autoRender: true\n regions:\n bookings: \".bookings-region\"\n\n initialize: =>\n super\n @practitioners = new Collection()\n @model = new DeepModel()\n @model.url = \"/api/myclinic/summary\"\n\n @view = new DeepModel\n syncing: false\n\n renderSubviews: =>\n @subview 'bookings', new BookingsView\n region:\"bookings\"\n practitioners: @practitioners\n\n attach: =>\n super\n @publishEvent \"loading\", true\n @view.set('syncing', true)\n @model.fetch\n success: (model, results) =>\n @view.set('syncing', false)\n @practitioners.reset(model.get(\"practitioners\"))\n @practitioners.trigger(\"change:_syncState\")\n #@publishEvent \"loading\", false\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"
    \");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","View = require 'views/base/view'\nModel = require 'models/base/model'\nDeepModel = require 'models/base/deep_model'\nCollection = require 'models/base/collection'\n\nMoment = require 'moment'\nmediator = require 'mediator'\n\nMyProntoView = require '../my-pronto-view'\n\nmodule.exports = class TM2SettingsScreen extends View\n template: require './template'\n autoRender: true\n regions:\n admin: \".my-pronto-region\"\n\n initialize: =>\n super\n @networks = new Collection()\n @networks.comparator = \"name\"\n @referrers = new Collection()\n @practitioners = new Collection()\n @model = new DeepModel()\n @model.url = \"/api/myclinic/summary\"\n\n @view = new DeepModel(\n date: new Moment().startOf('day').toDate()\n now: new Moment()\n filterAppts: true\n mode: \"Monthly\"\n sortBooking: \"\"\n syncing: false\n allowedOnline: mediator.user.get('license')?.description == \"Premium\"\n screen: \"\"\n provisional: 0\n hasTM2: window.TM2EventBus?\n isTM2: /chrome\\/25/i.test(window.navigator.userAgent)\n )\n\n renderSubviews: =>\n @subview 'admin', new MyProntoView(\n region:\"admin\"\n view: @view\n model: @model\n networks: @networks\n referrers: @referrers\n practitioners: @practitioners\n )\n\n attach: =>\n super\n @publishEvent \"loading\", true\n @view.set('syncing', true)\n @model.fetch\n success: (model, results) =>\n @view.set('syncing', false)\n @networks.reset(model.get(\"networks\"))\n @referrers.reset(model.get(\"referrers\"))\n @practitioners.reset(model.get(\"practitioners\"))\n @publishEvent \"loading\", false\n\n mediator.user.set\n 'license.hasOnlineReferralBookings': @model.get('hasReferrals')\n 'license.hasOnlineReception': @model.get('hasReception')\n 'license.hasPatientPortal': @model.get('hasOnline')\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"
    \");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"
    ×

    Add User


    \");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","DialogView = require 'views/base/dialog_view'\nModel = require 'models/base/model'\nValidationMachine = require 'lib/ValidationMachine'\nclass User extends Model\n url: '/api/usermanagement'\n\nclass UserValidator extends ValidationMachine\n applyRules: =>\n super\n @required 'displayName'\n @required 'email'\n @required 'password'\n @required 'confirmPassword'\n\nmodule.exports = class UserDialog extends DialogView\n template: require './UserDialog'\n id: 'BookerDialog'\n validator: UserValidator\n\n initialize: (args)=>\n super\n @view = new Model\n submitted:false\n\n @model = new User\n role: args?.defaultRole\n canEditRole: args?.canEditRole || !!!args?.defaultRole\n adminUser: not args?.bookerUser and not args?.clinicUser\n bookerUser:args?.bookerUser and not args?.clinicUser\n clinicUser:args?.clinicUser\n\n save: =>\n @view.set submitted: true\n return false unless @isValid()\n @model.unset 'errors'\n @view.set saving: true\n @model.save()\n .done =>\n @publishEvent 'user:saved', @model.toJSON()\n @close()\n .error (xhr, res) =>\n @model.set 'errors', xhr.responseJSON.responseStatus.errors\n return false\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"

    Users

    NameRole
    \");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","View = require 'views/base/view'\nCollection = require 'models/base/collection'\nAddDialog = require '../dialog'\n$ = require('jquery')\nconfirm = require 'lib/confirm'\nclass UsersCollection extends Collection\n url: '/api/system/users'\n\nmodule.exports = class ListView extends View\n template: require './ListView'\n autoRender: true\n initialize: =>\n super\n @model = new UsersCollection()\n @model.fetch()\n\n addUser: =>\n @subview 'Users', new AddDialog\n\n resetPassword: (e,b) =>\n confirm(@, \"Confirm Reset Password\", \n \"Your are going to reset the password for #{b.user.get('name')}. \n They will receive an email with a link to change their password.\n
    \n
    \n Are you sure you wish to continue?\", => $.ajax(url: \"/api/system/users/#{b.user.id}/resetPassword\", type: \"POST\"))\n\n disableUser: (e, b) =>\n b.user.set 'enabled', false\n b.user.save()\n \n enableUser: (e, b) =>\n b.user.set 'enabled', true\n b.user.save()","Controller = require 'controllers/base/controller'\nListView = require './list'\nHeaderView = require 'views/home/header-view'\n\nmodule.exports = class USersController extends Controller\n beforeAction: ->\n super\n @reuse 'header', HeaderView, region: 'header'\n\n index: ->\n @view = new ListView region: 'main'\n","auth = 'modules/auth/login'\nclinic = 'modules/myclinic/myclinic'\nintegration = 'modules/myclinic/integration'\n# Application routes.\nmodule.exports = (match) ->\n match 'login', controller: auth, action: 'index', name: 'auth_login'\n match 'logout', controller: auth, action: 'logout', name: 'auth_login'\n match 'loading', controller: auth, action: 'loading', name: 'auth_login'\n match 'changePassword/:code', controller: auth, action: 'changePassword', name: 'auth_login'\n\n match '', controller: clinic, action: 'index'\n match '/', controller: clinic, action: 'index'\n match 'myclinic', controller: clinic, action: 'index'\n match 'settings', controller: clinic, action: 'settings'\n\n match 'bookings', controller: clinic, action: 'bookings'\n match 'bookings/:id', controller: clinic, action: 'referral'\n\n match 'settings/pronto/referrers', controller: clinic, action: 'referrers'\n match 'settings/pronto/networks', controller: clinic, action: 'networks'\n\n match 'settings/pronto/settings', controller: clinic, action: 'pronto'\n match 'settings/online/settings', controller: clinic, action: 'online'\n match 'settings/reception/settings', controller: clinic, action: 'reception'\n\n match 'nopronto', controller: 'modules/myclinic/nopronto', action: 'nopronto'\n # match 'users', controller: 'modules/users/users', action: 'index'\n\n match 'integration/bookings', controller: integration, action:'bookings'\n match 'integration/settings', controller: integration, action:'settings'\n","Chaplin = require 'chaplin'\nView = require './view'\n\nmodule.exports = class CollectionView extends Chaplin.CollectionView\n # This class doesn’t inherit from the application-specific View class,\n # so we need to borrow the method from the View prototype:\n getTemplateFunction: View::getTemplateFunction\n","$ = require 'jquery'\nView = require './view'\n\nmodule.exports = class DialogView extends View\n autoRender:true\n autoAttach:true\n className: 'reveal-modal'\n attributes:\n 'data-reveal':1\n 'data-offset':10\n 'data-css-top':20\n\n attach: =>\n super\n @$el.foundation()\n @$el.on('close.fndtn.reveal', '[data-reveal]', @dispose)\n $(document).on('opened.fndtn.reveal', '[data-reveal]', @opened)\n @$el.foundation('reveal', 'open')\n\n opened: =>\n $(document).off('opened.fndtn.reveal', '[data-reveal]')\n return\n\n close: =>\n otherModals = $(\".reveal-modal\").not(@$el)\n if otherModals.length > 0\n otherModals.foundation('reveal', 'open')\n else\n @$el.foundation(\"reveal\", \"close\")\n @publishEvent 'dialog:close'\n @dispose()\n","_ = require 'underscore'\nView = require 'views/base/view'\n\nmodule.exports = class DraggableView extends View\n dragStart:(e, v) =>\n e.originalEvent.dataTransfer.effectAllowed = 'move';\n e.originalEvent.dataTransfer.setData(\"application/#{@cid}\", \"#{@cid}\");\n\n dragOver:(e, v) =>\n if (_.contains(e.originalEvent.dataTransfer.types, \"application/#{@cid}\");)\n e.preventDefault?.call()\n e.originalEvent.dataTransfer.dropEffect = 'move';\n else\n e.originalEvent.dataTransfer.dropEffect = 'none';\n return false\n\n dragEnter:(e, v) =>\n\n dragEnd:(e, v) =>\n\n drop:(e, v) =>\n e.stopPropagation?.call()\n return false\n","_ = require 'underscore'\nView = require 'views/base/view'\n\nmodule.exports = class PopoverView extends View\n autoRender: yes\n container: $(\"body\")\n optionNames: View::optionNames.concat ['anchor', 'placement', 'orientation', 'className', 'title']\n\n getTemplateFunction: ->\n return =>\n intClassName = if @intClassName? then @intClassName else if @className? then @className else \"\"\n @data = @model.toJSON() if @model?\n template = \"
    \"\n template += '

    ' + @title + '

    ' if @title?\n template += '

    '\n template += if _.isFunction(@template) then @template(@data) else @template\n template += '

    '\n return template\n\n initialize: =>\n super\n # @delegate 'click', '.close, .alt-close, .close-rectangle', @close\n\n @placement = @placement || \"auto\"\n @orientation = @orientation || \"auto\"\n\n @pos = @getPosition()\n\n getPosition: =>\n offset = @anchor.offset()\n\n o = {\n top: Math.max(offset?.top, 0)\n left: Math.max(offset?.left, 0)\n right: Math.min(offset?.left + @anchor.width(), window.innerWidth)\n bottom: Math.min(offset?.top + @anchor.height(), window.innerHeight)\n }\n\n o.width = o.right - o.left\n o.height = o.bottom - o.top\n o.middle = o.left + o.width/2\n o.center = o.top + o.height/2\n return o\n\n attach: =>\n super\n @$popover = @$(\".popover\")\n @setPlacement()\n\n onClosing: =>\n return\n\n close: =>\n @onClosing()\n @publishEvent 'dialog:close', @\n @dispose()\n\n cancel: =>\n @dispose()\n @close()\n\n setPlacement: =>\n @size = {\n width: @$popover.width()\n height: @$popover.height()\n }\n\n placement = @positioning()\n\n switch (placement)\n when 'bottom'\n tp = {\n top: @pos.bottom\n left: @pos.middle - @size.width / 2\n }\n when 'top'\n tp = {\n top: @pos.top - @size.height,\n left: @pos.middle - @size.width / 2\n }\n when 'left'\n tp = {\n top: @pos.center - @size.height / 2,\n left: @pos.left - @size.width\n }\n when 'right'\n tp = {\n top: @pos.center - @size.height / 2,\n left: @pos.right\n }\n\n # nudging includes 10px as borders dont\n # appear to get factored in the height calc\n\n tp.top = 10 if (tp.top < 0)\n tp.left = 10 if (tp.left < 0)\n\n if (tp.left + @size.width > window.innerWidth)\n tp.left = window.innerWidth - @size.width - 10\n\n if (tp.top + @size.height > window.innerHeight)\n tp.top = window.innerHeight - @size.height - 10\n\n @$popover.offset(tp)\n .removeClass(\"top left right bottom\")\n .addClass(\"#{placement} in\")\n\n if (placement == 'bottom' || placement == 'top')\n @replaceArrow(@pos.middle - tp.left, 'left')\n else\n @replaceArrow(@pos.center - tp.top, 'top')\n\n positioning: =>\n return @placement unless @placement is \"auto\"\n return @optimize(@orientation) unless @orientation is \"auto\"\n return @optimize(\"auto\")\n\n optimize: (orientation)=>\n area = @size.width * @size.height\n\n x = @size.width + Math.min(@pos.middle - @size.width / 2, 0) - Math.max(@pos.middle + @size.width/2 - window.innerWidth, 0)\n y = @size.height + Math.min(@pos.center - @size.height / 2, 0) - Math.max(@pos.center + @size.height/2 - window.innerHeight, 0)\n\n x = Math.max(x, 0)\n y = Math.max(y, 0)\n\n o = {\n top: area - ((@size.height + Math.min(@pos.top - @size.height, 0)) * x)\n left: area - ((@size.width + Math.min(@pos.left - @size.width, 0)) * y)\n right: area - ((@size.width - Math.max(@pos.right + @size.width - window.innerWidth, 0)) * y)\n bottom: area - ((@size.height - Math.max(@pos.bottom + @size.height - window.innerHeight, 0)) * x)\n }\n\n if orientation is \"auto\"\n if @anchor.height() > window.innerHeight\n orientation = \"horizontal\" # hack to deal with diary window\n else\n orientation = if Math.min(o.left, o.right) <= Math.min(o.top, o.bottom) then \"horizontal\" else \"vertical\"\n\n switch orientation\n when \"horizontal\"\n return if window.innerWidth/2 > @pos.middle then \"right\" else \"left\"\n when \"vertical\"\n return if window.innerHeight/2 > @pos.center then \"bottom\" else \"top\"\n\n replaceArrow: (delta, position) =>\n @$(\".arrow\").css(\"top\", \"\")\n .css(\"left\", \"\")\n .css(position, \"#{delta}px\")\n","Chaplin = require 'chaplin'\nrivets = require 'rivets'\n_ = require 'underscore'\nmediator = require 'mediator'\n\nmodule.exports = class View extends Chaplin.View\n # Auto-save `template` option passed to any view as `@template`.\n optionNames: Chaplin.View::optionNames.concat ['template', 'model']\n autoRender:true\n autoAttach:true\n extraBindings: -> {}\n formatters:=>{}\n binders:=>{}\n\n constructor: ->\n _(@).extend @validator.prototype if @validator?\n super\n @subviews ?= []\n\n initialize: (options) ->\n # This is standard in new chaplin\n super\n\n if _.isFunction(@applyRules)\n @applyRules()\n\n @on 'addedToDOM', @applyFocus\n\n # Precompiled templates function initializer.\n getTemplateFunction: ->\n @template\n\n renderSubviews: ->\n return\n \n render: ->\n super\n @bindings.unbind() if @bindings?\n if _.isFunction(@applyGraphics)\n @applyGraphics()\n\n @applyBindings()\n\n unless @renderedSubviews\n @renderSubviews()\n @renderedSubviews = yes\n\n applyBindings: =>\n hash = _.defaults @extraBindings(), \n model:@model\n vm:@\n view:@view\n @bindings = rivets.bind @$el, hash,\n formatters:@formatters()\n binders:@binders()\n\n dispose: =>\n @bindings.unbind()\n @validator.clearRules() if @validator?.clearRules?\n @clearRules() if @clearRules\n super\n\n redirectTo:(args)=>\n args.params = args.params || {}\n Chaplin.utils.redirectTo(args)\n\n stopPropagation: (e)=>\n e.preventDefault()\n e.stopPropagation()\n \n immediateSync: (e) => \n $target = @$(e.target)\n \n if $target.hasClass(\"money\") || $target.hasClass(\"percentage\")\n $target.val(0) if _.isNaN(parseFloat(e.target.value.replace(\",\", \"\")))\n\n $target.trigger(\"change\")\n sync: (e) => \n $target = @$(e.target)\n \n if $target.hasClass(\"money\") || $target.hasClass(\"percentage\")\n $target.val(0) if _.isNaN(parseFloat(e.target.value))\n\n $target.trigger(\"change\")\n\n applyFocus: =>\n @$el.find(\".initial-focus:visible\").first().focus() \n\n money: (selector)=>\n return unless @$el?\n symbol = mediator.user.get(\"systemSettings\")?[\"currencySymbol\"] || \"£\"\n selector ?= '.money'\n \n @$(selector)\n # .on 'mousedown', (e) => \n # if @$(e.currentTarget).val() is '0'\n # @$(e.currentTarget)[0].setSelectionRange(1,1)\n # return false\n .number( true, 2 )\n .wrap(\"\").parent().append(\"#{symbol}\")\n percentage: (selector)=>\n return unless @$el?\n selector ?= '.percentage'\n @$(selector)\n .number( true, 2 )\n .wrap(\"\").parent().append(\"%\")","View = require 'views/base/view'\n$ = require 'jquery'\nmediator = require 'mediator'\nCollection = require 'models/base/collection'\nModel = require 'models/base/model'\n\nmodule.exports = class HeaderView extends View\n autoRender: true\n className: 'header'\n tagName: 'header'\n template: require './header'\n optionNames: View::optionNames.concat ['allowBack']\n\n initialize: =>\n super\n @model = new Collection()\n @view = new Model\n loading: true\n allowBack: @allowBack\n\n @listenTo mediator.user, 'change', =>\n @view.set loading:false\n\n extraBindings: =>\n user: mediator.user\n\n back: =>\n window.history.back()\n\n logout: =>\n $.getJSON('/api/auth/logout').done =>\n window.location = '/login'\n","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"
    \");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}","View = require 'views/base/view'\nModel = require 'models/base/model'\n# Site view is a top-level view which is bound to body.\nmodule.exports = class SiteView extends View\n container: 'body'\n id: 'site-container'\n regions:\n header: '#header-container'\n main: '#page-container'\n template: require './templates/site'\n \n initialize: =>\n super\n @subscribeEvent 'loading', (res)=> @view.set(loading:res)\n \n @view = new Model(loading:false)\n\n attach: =>\n super\n $body = $('body')\n\n $body.click((e)=>\n @publishEvent 'body:event:click', e\n )","var __templateData = function template(locals) {\nvar buf = [];\nvar jade_mixins = {};\nvar jade_interp;\n\nbuf.push(\"
    \");;return buf.join(\"\");\n};\nif (typeof define === 'function' && define.amd) {\n define([], function() {\n return __templateData;\n });\n} else if (typeof module === 'object' && module && module.exports) {\n module.exports = __templateData;\n} else {\n __templateData;\n}"]}