import { browser, element, by, protractor, ExpectedConditions as EC, WebElement, error, Key, ElementFinder } from 'protractor'; export class DispatchPage { //DISPATCH ELEMENTS spinner = element(by.xpath('//ngx-spinner/div')); topBarUser = element(by.css('.kt-header__topbar-item--user')); pageHeader = element(by.className('kt-subheader__title')); disTitle = "Dispatch"; subHeader = element(by.className('kt-subheader__desc')); date = element(by.tagName('span.datePicker')); location = element(by.tagName('span.location')); rdHeader = element(by.className('kt-subheader__main')); kpiBox = element(by.tagName('kpi-box')); kpiBoxLab = element(by.tagName('kpi-laboratory')); refreshBtn = element(by.id('refreshBtn')); todaysButton = element(by.id('todaysBtn')); filterBtn = element(by.id('controller_header_settings_toggle')); topBarActionsBtn = element(by.id('topActionsBtn')) hideKPI = element(by.id('kpiToggleLink')); printRouteSheetLink = element(by.id('printRouteSheetLink')); rowCount = element(by.id('totalRowCount')); orderRowCount = element(by.id('totalOrdersCount')); //DISPATCH MENUS menu = element.all(by.id('kt_aside_menu')); menulist = this.menu.all(by.tagName('li')); //Dispatch Fly out flyout = element(by.className('pull-left flyout-title')); closeIcon = element(by.id('controller-header-close')); updateRoutesBtn = element(by.id('updateRoutesBtn')); generateRoutes = element(by.tagName('generateroutestracking')); genModal = element(by.id('routesTrackingModal')); genModalTitle = this.genModal.element(by.tagName('h4.modal-title')); gmTitle = "Generate Routes"; endGen = this.genModal.element(by.cssContainingText('modal-body','--End--')); genModalClose = this.genModal.element(by.buttonText('Close')); //Operations Tab operationsTab = element(by.id('operationsTab')) locationPicker = element(by.id("select2-locationSelectInput-container")); ol = element.all(by.className('select2-results__options')); locationLists= this.ol.all(by.tagName('li')); datePicker = element(by.id("kt_datetimepicker_6")); selectDate = element(by.xpath("//tr[4]/td[3]/span")); operApplyBtn = element(by.id('operApplyBtn')); //Filters Tab filtersTab = element(by.id('filtersTab')); filtersApplyBtn = element(by.id('filtersApplyBtn')); //KPI Laboratory totalUnassignedRoutes = element(by.id('totalUnassignedRoute')); totalUnassignedWillCall = element(by.id('totalUnassignedWillCall')); totalRoutesNotStarted = element(by.id('totalRoutesNotStarted')); totalLate20 = element(by.id('totalLate20')); totalLate30 = element(by.id('totalLate30')); totalCompletedStops = element(by.id('totalCompletedStops')); totalStops = element(by.id('totalStops')); totalCompletedRoutes = element(by.id('totalCompletedRoutes')); totalRoutes = element(by.id('totalRoutes')); totalCompletedWillCall = element(by.id('totalCompletedWillCall')); totalWillCall = element(by.id('totalWillCall')); totalIncidents = element(by.id('totalIncidents')); //Tabsets routesTab = element(by.id('routesTab-link')); routeLists = element.all(by.css('a.route-nav.ZoneTest')); routes= element(by.id('tblRoutes')); ordersTab = element(by.id('ordersTab-link')); badge = element(by.xpath('//tbody/tr/td/span[2]')); orders = element(by.id('ordersTab')); totalOrders= element(by.xpath('//div[4]/div/div/span')); packagesTab = element(by.id('packagesTab-link')); packages = element(by.id('packagesTab')); vehiclesTab = element(by.id('vehiclesTab-link')); vehicles = element(by.id('vehiclesTab')); driversTab = element(by.id('driversTab-link')); drivers = element(by.id('driversTab')); incidentsTab = element(by.id('incidentsTab-link')); //Routes Tab inlineActionsBtn = element(by.id('inlineActionsBtn')); showDetails = element(by.id('showDetail')); routedetailModal = element(by.tagName('routedetailmodal')); modalTitle = this.routedetailModal.element(by.tagName('h5.modal-title')); routeModalTitle = "Route Details"; routeDetail= element(by.xpath('//h5/span')); routeModalCloseBtn = this.routedetailModal.element(by.buttonText('Close')); //Assigned Driver and Vehicle vehicle= element(by.id('select2-selectedVehicleId-container')); driver = element(by.id('select2-selectedDriverId-container')); lockRoute = element(by.id('lockedRoute')); lockIcon = element(by.xpath("//a[2]/span/i")); tableDriverName = element(by.className('fullNameText')); //ROUTE DETAILS PAGE backBtn = element(by.className('back-nav')); routeTitle = "Route"; orderTitle = "Order Details"; orderstatusBadge= element(by.xpath('//tbody/tr/td/span')); routeDetailsBadge = element(by.className('kt-badge--status')); lastStop = "Antech"; order = element.all(by.css('a.order-nav')); ///////////////////////////////////////////////////////////// async waitForItemToBeVisible(element) { return await browser.wait(EC.visibilityOf(element)); } async waitForItemNotToBePresent(element) { return await browser.wait(EC.not(EC.visibilityOf(element))); } async today () { var weekday = new Array(7); weekday[0] = "Sunday"; weekday[1] = "Monday"; weekday[2] = "Tuesday"; weekday[3] = "Wednesday"; weekday[4] = "Thursday"; weekday[5] = "Friday"; weekday[6] = "Saturday"; var month = new Array(12); month[0] = "January"; month[1] = "February"; month[2] = "March"; month[3] = "April"; month[4] = "May"; month[5] = "June"; month[6] = "July"; month[7] = "August"; month[8] = "September"; month[9] = "October"; month[10] = "November"; month[11] = "December"; let date = new Date(); let day = weekday[date.getDay()]; let mmm = month[date.getMonth()]; let dd = date.getDate(); let yyyy= date.getFullYear(); let todaysDate = day+', '+mmm+' '+dd+', '+yyyy; return todaysDate; } async filterdate () { await this.filterBtn.click(); await this.waitForItemToBeVisible(this.flyout); await this.datePicker.click(); await element(by.xpath("//tr[3]/td[2]/span")).click(); await this.locationPicker.click(); await this.locationLists.get(4).click(); await this.operApplyBtn.click(); await browser.sleep(2000); await this.waitForItemNotToBePresent(this.spinner); await browser.sleep(2000); } async filterdate2 () { await this.filterBtn.click(); await this.waitForItemToBeVisible(this.flyout); await this.datePicker.click(); await element(by.xpath("//bs-datepicker-navigation-view/button/span")).click(); await element(by.xpath("//bs-datepicker-navigation-view/button/span")).click(); await element(by.xpath("//tr[4]/td[3]/span")).click(); await this.operApplyBtn.click(); } async hideKPILab() { await this.topBarActionsBtn.click(); await this.hideKPI.click(); } async showRouteDetails (){ await this.inlineActionsBtn.click(); await this.showDetails.click(); await browser.sleep(5000); } async assignedVehicleAndDriver(){ var vlist = element.all(by.id('select2-selectedVehicleId-results')); var vresult = vlist.all(by.tagName('li')); // var dlist = element.all(by.id('select2-selectedDriverId-results')); // var dresult = dlist.all(by.tagName('li')); await this.vehicle.click(); await vresult.get(8).click(); await browser.sleep(3000) await this.waitForItemNotToBePresent(this.spinner); //await this.driver.click(); //await dresult.get(1).click(); await browser.sleep(5000) await this.waitForItemNotToBePresent(this.spinner); } // async totalIncompleteRoutes(){ // var numRoutes = await this.totalRoutes.getText(); // var completedRoutes = await this.totalCompletedRoutes.getText(); // var totalIncRoutes= (numRoutes-completedRoutes); // } //===================================== // async printRouteSheet() { // let checkBox= element(by.xpath("//tr[1]/td/label/span")); // await checkBox.click(); // await el.printButton.click(); // const handles_4 = await browser.getAllWindowHandles(); // await browser.switchTo().window(handles_4[handles_4.length - 1]); // await el.waitForItemToBeVisible(el.routeSheet()); // await browser.sleep(1000); // await expect(element(by.xpath("//div[@id='container-print']/div/div/div/div/div/span/h5")) // .getText()).toBe('Route - LA12C'); // //await element(by.id("btn")).click(); // // const handles_6 = await browser.getAllWindowHandles(); // // await browser.switchTo().window(handles_6[handles_6.length - 1]); // } // async dispatchSearchRoute () { // let search = element(by.id("txtFilter")); // let searchButton = element(by.id("txtFilter")); // await search.click(); // await search.sendKeys('LA12C'); // await searchButton.sendKeys(Key.ENTER); // } // async openRouteOrderDetails (){ // let order = element(by.xpath("//tr[1]/td[5]/div/div/span/a[1]")); // await order.click(); // } // async openClinic () { // let createButton = element(by.buttonText('Create New Clinic')); // createButton.click(); // } // async createClinic (){ // let accountNumber = element(by.name('accountNumber')); // let clinicName = element(by.name('companyName')); // let email = element(by.name('email')); // let clinicNotes = element(by.name('ClinicNotes')); // let billingNotes = element(by.name('BillingNotes')); // // let checkBox = element(by.css('.kt-checkbox-inline')).element(by.tagName('span')); // browser.sleep(3000); // await accountNumber.sendKeys('12345'); // await clinicName.sendKeys('Test Clinic'); // await email.sendKeys('testclinic@test.com'); // await clinicNotes.sendKeys('Test Clinic'); // await billingNotes.sendKeys('Test Clinic'); // // await checkBox.click(); // await element(by.buttonText('Next Step')).click(); // } // async createTimezone () { // await el.waitForItemToBeVisible(element(by.className('ui-table-scrollable-view'))); // let createButton = element(by.buttonText('Create new time zone')); // await createButton.click(); // let value= element(by.id('TimeZone_Value')); // await el.waitForItemToBeVisible(value); // await value.sendKeys('Test Timezone'); // await element(by.buttonText('Save')).click(); // } // async searchForTimezoneCreated (){ // await el.waitForItemToBeVisible(element(by.className('ui-table-scrollable-view'))); // let search = element(by.className('form-group m-form__group align-items-center')) // .element(by.tagName('input')); // await search.sendKeys('Test'); // await el.waitForItemToBeVisible(search); // let searchButton = element(by.className('input-group-btn')) // .element(by.tagName('button')); // searchButton.click(); // await el.waitForItemToBeVisible(element(by.className('ui-table-scrollable-body')) // .element(by.cssContainingText('td.ng-tns-c21-2','Test'))); // } // // async editTimezone () { // let action = element(by.className('btn-group dropdown')); // action.click(); // let edit = (element(by.className('dropdown show open') // .element(by.tagName('ul')).element(by.cssContainingText('ng-tns-c44-431 ng-star-inserted','Edit')))); // edit.click(); // } }