DefinitelyTyped/types/devexpress-web/devexpress-web-tests.ts
Mikhail Preyskurantov 1a26c7bdb4 added new devexpress-web major version 191.5 (#37412)
* added new major version 191.5

* recovered old tslint config
2019-08-06 16:10:42 -07:00

427 lines
17 KiB
TypeScript

declare var hiddenField: ASPxClientHiddenField;
declare var mainCallbackPanel: ASPxClientCallbackPanel;
declare var loginPopup: ASPxClientPopupControl;
declare var searchButton: ASPxClientButton;
declare var searchComboBox: ASPxClientComboBox;
declare var roomsNumberSpinEdit: ASPxClientSpinEdit;
declare var adultsNumberSpinEdit: ASPxClientSpinEdit;
declare var childrenNumberSpinEdit: ASPxClientSpinEdit;
declare var checkInDateEdit: ASPxClientDateEdit;
declare var checkOutDateEdit: ASPxClientDateEdit;
declare var backSlider: ASPxClientImageSlider;
declare var locationComboBox: ASPxClientComboBox;
declare var nightyRateTrackBar: ASPxClientTrackBar;
declare var customerRatingTrackBar: ASPxClientTrackBar;
declare var ourRatingCheckBoxList: ASPxClientCheckBoxList;
declare var startFilterPopupControl: ASPxClientPopupControl;
declare var imagePopupControl: ASPxClientPopupControl;
declare var emailTextBox: ASPxClientTextBox;
declare var creditCardEmailTextBox: ASPxClientTextBox;
declare var accountEmailTextBox: ASPxClientTextBox;
declare var bookingPageControl: ASPxClientPageControl;
declare var paymentTypePageControl: ASPxClientPageControl;
declare var offerFormPopup: ASPxClientPopupControl;
declare var roomsSpinEdit: ASPxClientSpinEdit;
declare var adultsSpinEdit: ASPxClientSpinEdit;
declare var childrenSpinEdit: ASPxClientSpinEdit;
declare var hotelDetailsCallbackPanel: ASPxClientCallbackPanel;
declare var leftPanel: ASPxClientPanel;
declare var menuButton: ASPxClientButton;
declare var aboutWindow: ASPxClientPopupControl;
declare var offersZone: ASPxClientDockZone;
module DXDemo {
function showPage(page: string, params: { [key: string]: any }, skipHistory?: boolean): void {
var queryString = getQueryString(params || {});
hiddenField.Set("page", page);
hiddenField.Set("parameters", queryString);
hideMenu();
var uri = queryString.length ? (page + "?" + queryString) : page;
try {
if (!skipHistory && window.history && window.history.pushState)
window.history.pushState(uri, "", uri || "Default.aspx");
} catch (e) { }
mainCallbackPanel.PerformCallback(uri);
};
export function onMainMenuItemClick(s: ASPxClientMenu, e: ASPxClientMenuItemClickEventArgs): void {
switch (e.item.name) {
case "login":
hideMenu();
setTimeout(function () { loginPopup.ShowAtElementByID("MainCallbackPanel_ContentPane"); }, 300);
break;
case "offers":
showPage("SpecialOffers", {});
break;
default:
hideMenu();
setTimeout(function () { showAboutWindow(); }, 300);
break;
}
};
export function onLoginButtonClick(s: ASPxClientButton, e: ASPxClientButtonClickEventArgs): void {
loginPopup.Hide();
showAboutWindow();
};
export function onSearchButtonClick(): void {
if (ASPxClientEdit.ValidateGroup("DateEditors")) {
showPage("ShowHotels", {
location: searchComboBox.GetValue(),
checkin: getFormattedDate(<Date>checkInDateEdit.GetValue()),
checkout: getFormattedDate(<Date>checkOutDateEdit.GetValue()),
rooms: roomsNumberSpinEdit.GetValue() || 1,
adults: adultsNumberSpinEdit.GetValue() || 1,
children: childrenNumberSpinEdit.GetValue() || 0
});
}
};
export function onSearchComboBoxIndexChanged(s: ASPxClientComboBox, e: ASPxClientProcessingModeEventArgs): void {
hideMenu();
$("#IndexContent").addClass("search-extend");
searchButton.AdjustControl();
};
export function onIndexOfferCloseClick(index: number): void {
var panel = <ASPxClientDockPanel>ASPxClientControl.GetControlCollection().GetByName("OfferDockPanel" + index);
var sibPanel = <ASPxClientDockPanel>ASPxClientControl.GetControlCollection().GetByName("OfferDockPanel" + (index == 1 ? 2 : 1));
panel.Hide();
sibPanel.MakeFloat();
sibPanel.SetWidth(offersZone.GetWidth());
sibPanel.Dock(offersZone);
};
export function onLogoClick(): void {
showPage("", null, false);
};
export function onMenuNavButtonCheckedChanged(s: ASPxClientCheckBox, e: ASPxClientProcessingModeEventArgs): void {
var mainContainer = mainCallbackPanel.GetMainElement();
if (s.GetChecked()) {
backSlider.Pause();
showMenu();
}
else {
hideMenu();
backSlider.Play();
}
};
export function onBackNavButtonClick(s: ASPxClientButton, e: ASPxClientButtonClickEventArgs): void {
var params = getCurrentQueryParams();
switch (getCurrentPage()) {
case "PrintInvoice":
showPage("Booking", params, false);
break;
case "Booking":
if (bookingPageControl.GetActiveTabIndex() > 0)
bookingPageControl.SetActiveTabIndex(bookingPageControl.GetActiveTabIndex() - 1);
else
showPage("ShowRooms", params, false);
break;
case "ShowRooms":
showPage("ShowHotels", params, false);
break;
case "ShowDetails":
showPage("ShowHotels", params, false);
break;
case "ShowHotels":
case "SpecialOffers":
showPage("", null, false);
break;
}
};
export function updateSearchResults(): void {
var params = getCurrentQueryParams();
params["location"] = locationComboBox.GetValue();
params["minprice"] = nightyRateTrackBar.GetPositionStart();
params["maxprice"] = nightyRateTrackBar.GetPositionEnd();
params["custrating"] = customerRatingTrackBar.GetPosition();
params["ourrating"] = ourRatingCheckBoxList.GetSelectedValues().join(",");
showPage("ShowHotels", params);
};
export function onBookHotelButtonClick(hotelID: string): void {
var queryParams = getCurrentQueryParams();
queryParams["hotelID"] = hotelID;
showPage("ShowRooms", queryParams);
};
export function onDetailsHotelButtonClick(hotelID: string): void {
var queryParams = getCurrentQueryParams();
queryParams["hotelID"] = hotelID;
showPage("ShowDetails", queryParams);
};
export function onShowStartFilterButtonClick(s: ASPxClientButton, e: ASPxClientButtonClickEventArgs): void {
startFilterPopupControl.ShowAtElementByID("MainCallbackPanel_ContentPane");
};
export function onChangeStartFilterButtonClick(s: ASPxClientButton, e: ASPxClientButtonClickEventArgs): void {
if (ASPxClientEdit.ValidateGroup("DateEditors")) {
var params = getCurrentQueryParams();
params["checkin"] = getFormattedDate(<Date>checkInDateEdit.GetValue());
params["checkout"] = getFormattedDate(<Date>checkOutDateEdit.GetValue());
params["rooms"] = roomsNumberSpinEdit.GetValue() || 1;
params["adults"] = adultsNumberSpinEdit.GetValue() || 1;
params["children"] = childrenNumberSpinEdit.GetValue() || 0;
startFilterPopupControl.Hide();
showPage(hiddenField.Get("page").toString(), params);
}
};
export function onBookRoomButtonClick(roomID: string): void {
var params = getCurrentQueryParams();
params["roomID"] = roomID;
showPage("Booking", params);
};
export function onShowRoomsButtonClick(): void {
var queryParams = getCurrentQueryParams();
showPage("ShowRooms", queryParams);
};
export function onShowDetailsButtonClick(): void {
var queryParams = getCurrentQueryParams();
showPage("ShowDetails", queryParams);
};
export function onRoomImageNavItemClick(roomID: string, pictureName: string): void {
setTimeout(function () {
imagePopupControl.PerformCallback(roomID + "|" + pictureName);
imagePopupControl.ShowAtElementByID("MainCallbackPanel_ContentPane");
}, 500);
};
export function onRoomsNavBarExpandedChanged(s: ASPxClientNavBar, e: ASPxClientNavBarGroupEventArgs): void {
ASPxClientControl.AdjustControls(s.GetMainElement());
};
export function onNextBookingStepButtonClick(step: number): void {
var valid = true;
var validationGroup = "";
if (step == 1)
validationGroup = "Account";
if (step == 2)
validationGroup = "RoomDetails";
if (step == 3)
validationGroup = "PaymentDetails";
switch (step) {
case 1:
valid = ASPxClientEdit.ValidateEditorsInContainer(bookingPageControl.GetMainElement(), "Account");
if (valid) {
emailTextBox.SetValue(accountEmailTextBox.GetValue());
creditCardEmailTextBox.SetValue(accountEmailTextBox.GetValue());
showPage("Booking", getCurrentQueryParams());
return;
}
break;
case 2:
valid = ASPxClientEdit.ValidateEditorsInContainer(bookingPageControl.GetMainElement(), "RoomDetails");
emailTextBox.SetValue(accountEmailTextBox.GetValue());
break;
case 3:
var paymentType = paymentTypePageControl.GetActiveTabIndex();
if (paymentType == 0)
valid = ASPxClientEdit.ValidateEditorsInContainer(bookingPageControl.GetMainElement(), "CreditCard");
else if (paymentType == 1)
valid = ASPxClientEdit.ValidateEditorsInContainer(bookingPageControl.GetMainElement(), "Cash");
else if (paymentType == 2)
valid = ASPxClientEdit.ValidateEditorsInContainer(bookingPageControl.GetMainElement(), "PayPal");
break;
}
if (valid) {
bookingPageControl.GetTab(step).SetEnabled(true);
bookingPageControl.SetActiveTabIndex(step);
}
};
export function onAccountCaptchaHiddenFieldInit(s: ASPxClientHiddenField, e: ASPxClientEventArgs): void {
if (s.Get("IsCaptchaValid")) {
bookingPageControl.GetTab(1).SetEnabled(true);
bookingPageControl.SetActiveTabIndex(1);
}
};
export function onFinishBookingStepButtonClick(): void {
showAboutWindow();
};
export function OnPrintInvoiceButtonClick(): void {
showPage("PrintInvoice", getCurrentQueryParams());
};
export function onOfferClick(offerID: string): void {
offerFormPopup.SetContentHtml("");
offerFormPopup.PerformCallback(offerID);
var panel = <ASPxClientDockPanel>ASPxClientControl.GetControlCollection().GetByName("DockPanel" + offerID);
var panelElement = <HTMLElement>panel.GetMainElement();
if (panelElement.offsetWidth < 330 || panelElement.offsetHeight < 250) {
offerFormPopup.SetWidth(400);
offerFormPopup.SetHeight(280);
offerFormPopup.ShowAtElementByID("SpecialOffersContainer");
}
else {
offerFormPopup.SetWidth(panelElement.offsetWidth);
offerFormPopup.SetHeight(panelElement.offsetHeight);
offerFormPopup.ShowAtElement(panelElement);
}
};
export function onSpecialOfferCheckButtonClick(hotelID: string, locationID: string): void {
if (ASPxClientEdit.ValidateGroup("DateEditors")) {
var queryParams: { [key: string]: any } = {
location: locationID,
hotelID: hotelID,
checkin: getFormattedDate(<Date>checkInDateEdit.GetValue()),
checkout: getFormattedDate(<Date>checkOutDateEdit.GetValue()),
rooms: roomsSpinEdit.GetValue() || 1,
adults: adultsSpinEdit.GetValue() || 1,
children: childrenSpinEdit.GetValue() || 0
};
showPage("ShowRooms", queryParams);
}
};
export function onIndexOfferClick(): void {
showPage("SpecialOffers", {});
};
export function onControlsInit(): void {
ASPxClientUtils.AttachEventToElement(window, 'popstate', onHistoryPopState);
var pathParts = document.location.href.split("/");
var url = pathParts[pathParts.length - 1];
try {
if (window.history)
window.history.replaceState(url, "");
} catch (e) { }
ASPxClientUtils.AttachEventToElement(window, "resize", onWindowResize);
if (ASPxClientUtils.iOSPlatform) {
$("form :input").blur(function () {
$('html, body').animate({ scrollTop: 0 }, 0);
});
}
};
export function updateRatingLabels(ratingControl: ASPxClientTrackBar) {
$("#cpLeftLabelID").html(ratingControl.GetPositionStart().toString());
$("#cpRightLabelID").html(ratingControl.GetPositionEnd().toString());
};
export function onAboutWindowCloseUp(): void {
$(mainCallbackPanel.GetMainElement()).removeClass("show-about");
};
export function onRatingControlItemClick(s: ASPxClientRatingControl, e: ASPxClientRatingControlItemClickEventArgs): void {
hotelDetailsCallbackPanel.PerformCallback(s.GetValue().toString());
};
export function onInputKeyDown(s: ASPxClientTextBox, e: ASPxClientEditKeyEventArgs): void {
var keyCode = ASPxClientUtils.GetKeyCode(e.htmlEvent);
if (keyCode == 13) {
(<any>jQuery).event.fix(e.htmlEvent).preventDefault();
(<HTMLElement>s.GetInputElement()).blur();
}
};
function getCurrentPage(): string {
var hfPage = <string>hiddenField.Get("page");
if (hfPage)
return hfPage;
var pathParts = document.location.pathname.split("/");
return pathParts[pathParts.length - 1];
};
function showAboutWindow(): void {
$(mainCallbackPanel.GetMainElement()).addClass("show-about");
aboutWindow.ShowAtElementByID("MainCallbackPanel_ContentPane");
};
function hideMenu(): void {
leftPanel.Collapse();
if (menuButton.GetMainElement() && menuButton.GetChecked())
menuButton.SetChecked(false);
};
function showMenu(): void {
leftPanel.Expand();
};
var _resizeSpecialOffersTimeoutID = -1;
function onWindowResize(): void {
switch (<string>hiddenField.Get("page")) {
case "SpecialOffers":
if (_resizeSpecialOffersTimeoutID == -1)
_resizeSpecialOffersTimeoutID = setTimeout(resizeSpecialOffers, 200);
break;
}
hidePopups("AboutWindow", "StartFilterPopupControl", "LoginPopup", "OfferFormPopup", "ImagePopupControl");
};
function hidePopups(...names: string[]): void {
for (var i = 0; i < names.length; i++) {
var popupControl = <ASPxClientPopupControl>ASPxClientControl.GetControlCollection().GetByName(names[i]);
popupControl.Hide();
}
};
function resizeSpecialOffers(): void {
for (var i = 1; i <= 4; i++) {
var panel = <ASPxClientDockPanel>ASPxClientControl.GetControlCollection().GetByName("DockPanel" + i);
if (panel && panel.IsVisible()) {
var zone = panel.GetOwnerZone();
zone.SetWidth((<HTMLElement>(<HTMLElement>zone.GetMainElement()).parentNode).offsetWidth)
}
}
_resizeSpecialOffersTimeoutID = -1;
};
function getFormattedDate(date: Date): string {
return (date.getMonth() + 1) + "-" + date.getDate() + "-" + date.getFullYear();
};
function getCurrentQueryParams(): { [key:string]: any } {
var hfParams = <string>hiddenField.Get("parameters");
if (hfParams)
return getParamsByQueryString(hfParams);
var query = document.location.search;
if (query[0] === "?")
query = query.substr(1);
return getParamsByQueryString(query);
};
function getQueryString(params: { [key:string]: any }): string {
var queryItems: any[] = [];
for (var key in params) {
if (!params.hasOwnProperty(key)) continue;
queryItems.push(key + "=" + params[key]);
}
if (queryItems.length > 0)
return queryItems.join("&");
return "";
};
function getParamsByQueryString(queryString: string): { [key: string]: string } {
var result: { [key: string]: any } = {};
if (queryString) {
var queryStringArray = queryString.split("&");
for (var i = 0; i < queryStringArray.length; i++) {
var part = queryStringArray[i].split('=');
if (part.length != 2) continue;
result[part[0]] = decodeURIComponent(part[1].replace(/\+/g, " "));
}
}
return result;
};
function onHistoryPopState(evt: any): void {
if (evt.state !== null && evt.state !== undefined) {
var uriParts = evt.state.split("?");
showPage(uriParts[0], getParamsByQueryString(uriParts[1]), true);
}
};
}