update-to-v16.1

This commit is contained in:
Roman Reshetnikov 2016-06-23 14:48:29 +03:00
parent 98f3e64cfc
commit 66e2ea8988
2 changed files with 27382 additions and 609 deletions

View File

@ -1,75 +1,430 @@
/// <reference path="../jquery/jquery.d.ts" />
/// <reference path="devexpress-web.d.ts" />
namespace Tests.Globals {
function ASPxTest(): void {
ASPx.RunStartupScripts();
}
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;
function ASPxClientControlTest(): void {
ASPxClientControl.AdjustControls();
let controls: DevExpress.Web.Scripts.ASPxClientControlCollection = ASPxClientControl.GetControlCollection();
controls.GetByName("myControl");
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);
};
let elements: DevExpress.Web.Scripts.ASPxClientControl[] = controls.elements;
for (let element of elements) {
let name: string = element.name;
element.AdjustControl();
let mainElement = element.GetMainElement();
if (mainElement) {
mainElement.focus();
}
let isVisible: boolean = element.GetVisible();
let inCallback: boolean = element.InCallback();
element.SetWidth(600);
element.SetHeight(400);
let initEventHandler: (s: DevExpress.Web.Scripts.ASPxClientControl, e: DevExpress.Web.Scripts.ASPxClientEventArgs) => void = (s: DevExpress.Web.Scripts.ASPxClientControl, e: DevExpress.Web.Scripts.ASPxClientEventArgs) => { };
element.Init.AddHandler(initEventHandler);
element.Init.RemoveHandler(initEventHandler);
element.Init.ClearHandlers();
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;
}
}
};
function ASPxClientUtilsTest(): void {
ASPxClientUtils.AttachEventToElement(document.getElementById("btnSubmit"), "click", () => { });
export function onLoginButtonClick(s: ASPxClientButton, e: ASPxClientButtonClickEventArgs): void {
loginPopup.Hide();
showAboutWindow();
};
let htmlEvent: Event;
let x: number = ASPxClientUtils.GetEventX(htmlEvent);
let y: number = ASPxClientUtils.GetEventY(htmlEvent);
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
});
}
};
let control: DevExpress.Web.Scripts.ASPxClientControl;
let controlExists: boolean = ASPxClientUtils.IsExists(control);
}
export function onSearchComboBoxIndexChanged(s: ASPxClientComboBox, e: ASPxClientProcessingModeEventArgs): void {
hideMenu();
$("#IndexContent").addClass("search-extend");
searchButton.AdjustControl();
};
function MVCxClientGlobalEventsTest(): void {
ASPxClientGlobalEvents.AddControlsInitializedEventHandler((s: any, e: DevExpress.Web.Scripts.ASPxClientControlsInitializedEventArgs) => {});
}
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);
};
function ASPxClientEditTest(): void {
let editorsValid: boolean = ASPxClientEdit.AreEditorsValid();
export function onLogoClick(): void {
showPage("", null, false);
};
let container: HTMLElement = document.getElementById("form1");
let editorsInContainerGroupValid: boolean = ASPxClientEdit.AreEditorsValid(container, "group1", false);
export function onMenuNavButtonCheckedChanged(s: ASPxClientCheckBox, e: ASPxClientProcessingModeEventArgs): void {
var mainContainer = mainCallbackPanel.GetMainElement();
if (s.GetChecked()) {
backSlider.Pause();
showMenu();
}
else {
hideMenu();
backSlider.Play();
}
};
ASPxClientEdit.ClearEditorsInContainer(container, "group1", false);
ASPxClientEdit.ClearGroup("group1", false);
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;
}
};
let editorsInContainerValid: boolean = ASPxClientEdit.ValidateEditorsInContainer(container, "group1", false);
let editorsInGroupValid: boolean =ASPxClientEdit.ValidateGroup("group1", false);
}
}
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);
};
namespace Tests.Controls {
declare var comboBox: DevExpress.Web.Scripts.ASPxClientComboBox;
export function onBookHotelButtonClick(hotelID: string): void {
var queryParams = getCurrentQueryParams();
queryParams["hotelID"] = hotelID;
showPage("ShowRooms", queryParams);
};
function ASPxClientComboBoxTest() {
let selectedIndex: number = comboBox.GetSelectedIndex();
comboBox.SetSelectedIndex(1);
export function onDetailsHotelButtonClick(hotelID: string): void {
var queryParams = getCurrentQueryParams();
queryParams["hotelID"] = hotelID;
showPage("ShowDetails", queryParams);
};
let selectedIndexChangedEventHandler: (s: DevExpress.Web.Scripts.ASPxClientControl, e: DevExpress.Web.Scripts.ASPxClientEventArgs) => void = (s: DevExpress.Web.Scripts.ASPxClientControl, e: DevExpress.Web.Scripts.ASPxClientEventArgs) => { };
comboBox.SelectedIndexChanged.AddHandler(selectedIndexChangedEventHandler);
comboBox.SelectedIndexChanged.RemoveHandler(selectedIndexChangedEventHandler);
comboBox.SelectedIndexChanged.ClearHandlers();
}
}
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);
}
};
}

File diff suppressed because it is too large Load Diff