CINXE.COM

SSO Login

<!DOCTYPE HTML> <html class="" onclick="StdClickProc(event)"> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=IE8"> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>SSO Login</title> <meta name="ROBOTS" content="NOINDEX, NOFOLLOW"> <meta http-equiv="Content-Type" content="text/html"> <script> var perfTime = {}; perfTime.InlineJsPageTop = new Date().getTime(); var isAdmin = "" == "1"; var isIE8 = "0" == "1"; </script> <script> // A global function to show the regular UI when cloaking is on. // Call this function when a registered Huey page (see server/routesWithHybridUi.js) // needs to show the regular UI such as when Hybrid UI fails to render or when there // is no need to render Hybrid UI. function showUi() { try { uiShowBody(); // See below } catch (e) { // Cloaking turned off or otherwise unavailable } } </script> <style id="uiCloakUiStyle">body { visibility: hidden !important; }</style> <script> var hybridCloakTimeout; // Call this method to show the UI var uiShowBody = function() { var hideBodyStyle = document.querySelector('#uiCloakUiStyle'); if (hideBodyStyle) hideBodyStyle.parentNode.removeChild(hideBodyStyle); // Can't use remove() because IE 9/10 clearTimeout(hybridCloakTimeout); }; // IIFE to encapsulate private vars to this script (function () { try { // Ensures that the body will be shown if anything fails hybridCloakTimeout = setTimeout(uiShowBody, 500); // Ask Huey if this page should wait var isUiPageRequest = new XMLHttpRequest(); var urlEncode = encodeURIComponent(window.location.href); isUiPageRequest.open('GET', 'https://www.ui.quickbase.com/ui/api/huey/is-ui-page?currentUrl=' + urlEncode); isUiPageRequest.onload = function() { if(isUiPageRequest.status === 200 || (isUiPageRequest.status >= 300 && isUiPageRequest.status < 400)) { var uiCloakWaitTime = parseInt(isUiPageRequest.responseText); if (uiCloakWaitTime > 0) { // If we need to wait for Huey, increase the fallback timeout. // Ensures page will load if anything goes wrong. clearTimeout(hybridCloakTimeout); hybridCloakTimeout = setTimeout(uiShowBody, uiCloakWaitTime); } else { uiShowBody(); } } }; isUiPageRequest.send(); } catch (uiErr) { // Show the ui if anything fails uiShowBody(); } })(); </script> <script> // var isInTrial = false; var gReqUID = "1"; var gReqUserEmail = ""; var gReqUserFname = ""; var gReqUserLname = ""; var gReqAppDBID = ""; var gJQueryUpdated = 1; var gReqUserHasAppAdmin = false; var gReqUserIsDBAdmin = false; // var gRootDomain = "quickbase.com"; var gRealmName = "login"; var gRealmId = "1"; var gReqAccountID = ""; var gHueySpaSupportedFormActions = "dr,er,nwr,edr,DisplayRecord,GenEditRecord,GenNewRecord,API_GenAddRecordForm"; var gHueySpaSupportedTableReportActions = "td,q,s"; var gHueyFeaturesInfoForPendo = {}; var gIsUserAnonymous = true; var gHasSolutionHubAccess = false; var gHasSolutionHubHueyLink = false; var gHasExchangeAccess = true; var gHasAIAccess = false; </script> <script> // Function to hardcode the value of the isReactNativeWebView in the pendo designer to true/false // Designed to be called in the developer console. window.switchIsReactNativeWebViewPendoValue = function(value) { if (value !== true && value !== false) { console.error("The provided value can only be true or false!"); return; } localStorage.setItem("isReactNativeWebView", value); location.reload(); } // Function to flatten out an object containing nested objects // Result will contain all properties at the root level with key name being a combination of key names at all levels // Example: { a: { b: 1, c: 2} } => {a_b: 1, a_c: 2} function flattenObject(inputObj) { var resultObj = {}; if (!inputObj || !(typeof inputObj === 'object')) { return resultObj; } for (var prop in inputObj) { if (typeof inputObj[prop] === 'object' && inputObj[prop] !== null && inputObj[prop] !== undefined) { var temp = flattenObject(inputObj[prop]) for (var prop2 in temp) { resultObj[prop + "_" + prop2] = temp[prop2]; } } else { resultObj[prop] = inputObj[prop]; } } return resultObj; } // Add a source object to a target object after flattening all props inside the source object, including nested props // Example: // var sourceObj = { a: { b: 1, c: 2 } } // var targetObj = { x: "propX", y: "propY" } // addFlattenedPropsToTargetObject(sourceObj, targetObj) => { x: "propX", y: "propY", a_b: 1, a_c: 2 } function addFlattenedPropsToTargetObject(sourceObj, targetObj) { if (!sourceObj || !targetObj) { return targetObj; } var flattenedObj = flattenObject(sourceObj); return Object.assign(targetObj, flattenedObj); } // Function to add any additional properties to Pendo annotation data before sending it to Pendo URL annotation function function addAdditionalPropertiesToPendoAnnotationData() { if (!window.gPendoAnnotationData) { return; } // This annotation is true when the app is open through the React Native WebView, false otherwise // The initial value of the localStorage value is set in the IIFE below window.gPendoAnnotationData.isReactNativeWebView = localStorage.getItem("isReactNativeWebView") === 'true'; // Add any additional info provided by Huey features in the gHueyFeaturesInfoForPendo object to Pendo annotation data object // Example: For the report builder panel, need to indicate for which report type the panel is opened window.gPendoAnnotationData = addFlattenedPropsToTargetObject(window.gHueyFeaturesInfoForPendo, window.gPendoAnnotationData); } // IIFE to encapsulate private vars to this script (function () { // Initilize the value of the localStorage flag, // window.isReactNativeWebView value is injected with true if the page is loaded through the React Native WebView if (localStorage.getItem("isReactNativeWebView") === null) { localStorage.setItem("isReactNativeWebView", !!window.isReactNativeWebView); } var pendoData = { cookieDomain: "." + gRootDomain, }; // If Switch_EnablePendoJWT is, send jwt, signingKeyName and disableGuides pendoData.jwt = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2NvdW50Ijp7ImlkIjoidW5rbm93biJ9LCJub25jZSI6IjllODk5MzNjYTMyNzI5ODQ2OGVlMTcyNWJkZDVhY2VkIiwidmlzaXRvciI6eyJlbWFpbCI6InVua25vd24iLCJmdWxsX25hbWUiOiIgIiwicWJBbmNlc3RvckFwcElkIjoibm9uZSIsInFiQ3VycmVudEFwcElkIjoibm9uZSIsInFiSGFzRXZlckhhZEFwcEFkbWluIjpmYWxzZSwicWJIYXNQaXBlbGluZXNBY2Nlc3MiOmZhbHNlLCJxYklzQ3VycmVudEFwcEFkbWluIjpmYWxzZSwicWJJc0luVHJpYWwiOmZhbHNlLCJxYlJlYWxtTmFtZSI6ImxvZ2luIiwicWJSb290RG9tYWluIjoicXVpY2tiYXNlLmNvbSIsInFiVXNlcklkIjoxfX0.w87sSECv0_GINjHPGEPMEp20nqX9SujUDbFw3lxahG0"; pendoData.signingKeyName = "quic-quic-Va3sV"; // If Switch_EnablePendoJWT is off, send account, visitor information // Set the pendo data to be available globally so other code (such as in reuse) can access it. window.gPendoData = pendoData; // annotation data window.gPendoAnnotationData = {"isAppInQuarantine":"false","is_p":"0","pndFromAI":"0","pndFromSample":"0","pndTemplate":"mercuryshell","pndTemporaryQID":"false"}; if (window.gPendoAnnotationData) { window.gPendoAnnotationData.pndPageFeature = "idp-sso-login"; window.gPendoAnnotationData.pndReportType = "none"; // This will indicate if we are inside our single page application(SPA) window.gPendoAnnotationData.isHueySPA = "false"; window.gPendoAnnotationData.isRemixUI = "false"; pendoData.annotateUrl = function () { addAdditionalPropertiesToPendoAnnotationData(); return window.gPendoAnnotationData; } } function sanitizeUrlForPendo(urlString) { var url; var remixAction; try { url = new URL(urlString); if (!(url && url.searchParams && url.searchParams.size > 0)) { return urlString; } // This is to get action from remix url as a fallback if (window.isRemixUI) { // We will only enter this if/else block if our url is still a remix url // in which case we will need action param. We have two url patterns with action // one being nav/app/appId/action/{action}, other being /nav/main/{action} if (url.pathname.includes('/action/')) { // The extra split is in case the url has /action/dashboardid?{otherSearchParams} remixAction = url.pathname.split('/action/')[1].split('/')[0]; } else if (url.pathname.includes('/main/')) { remixAction = url.pathname.split('/main/')[1].split('/')[0]; } } } catch (ex) { return urlString; } var allowList = ['a','accountid','act','addfromglobalbar','aftersaveconfirm','aftersavenew','aftersaveurl','aftersaveview','app_name','appid','builtfromai',' category','cmpid','configid','confmsg','dbid','ddr','deactonly','dfid','dlta','dr','edit','embedmode','fid','formmode','from','frompage','fullver','id','ifv','integrations.groupby','is_p','isappinquarantine','ishueyspa','isremixui','isreactnativewebview','isrlk','keepdata','key','mergefieldid','metrictype','name','navback','newhybridform','newinstall','newreporttype','nexturl','nexturldashboard','originalqid','page','pageid','pageidv2','pendo-designer','pid','pndfromsample','pndfromai','pndreportfromai','pndpagefeature','pndreporttype','pndtemplate','pndtemporaryqid','q','qid','qskip','qtbtx','r','rdr','realmhostname','realmid','redmsg','redmsgdigest','returnurl','rid','ridlist','rl','roleid','srvr','tab','title','uid','userid','z']; var attributeValuesToSanitize = ['aftersaveurl', 'finalurl', 'nexturl', 'nexturldashboard', 'rdr', 'returnurl']; var attributeValuesToLowerCase = ['a']; var cleanSearchParams = new URLSearchParams(); url.searchParams.forEach(function (value, key) { var newKey = key.toLowerCase(); if (allowList.includes(newKey)) { var sanitizedValue = attributeValuesToSanitize.includes(newKey) ? sanitizeUrlForPendo(value) : value; var newValue = attributeValuesToLowerCase.includes(newKey) ? sanitizedValue.toLowerCase() : sanitizedValue; cleanSearchParams.append(newKey, newValue); } else { cleanSearchParams.append(newKey, '---'); } }); cleanSearchParams.set('a', cleanSearchParams.get('a') || (cleanSearchParams.get('act') && cleanSearchParams.get('act').toLowerCase()) || (remixAction && remixAction.toLowerCase()) || 'none' ); // This href setter helps us utilize sbserver url pattern (for e.g. ?a=td) for Pendo in new nav // Placing it just before setting the search string so we do not lose pendo annotation data in search string if (window.navChildURL) { url.href = window.navChildURL; } url.search = cleanSearchParams.toString(); return url.toString(); }; pendoData.sanitizeUrl = sanitizeUrlForPendo; (function (apiKey) { (function (p, e, n, d, o) { var v, w, x, y, z; o = p[d] = p[d] || {}; o._q = []; v = ['initialize', 'identify', 'updateOptions', 'pageLoad']; for (w = 0, x = v.length; w < x; ++w)(function (m) { o[m] = o[m] || function () { o._q[m === v[0] ? 'unshift' : 'push']([m].concat([].slice.call(arguments, 0))); }; })(v[w]); y = e.createElement(n); y.async = !0; y.src = 'https://content.analytics.ux.quickbase.com/agent/static/' + apiKey + '/pendo.js'; z = e.getElementsByTagName(n)[0]; z.parentNode.insertBefore(y, z); })(window, document, 'script', 'pendo'); window.gIsPendoInitDelayed = false; if (!window.gIsPendoInitDelayed) { pendo.initialize(pendoData); } })('09267810-0233-4b58-65b5-6f5f6145f867'); })(); </script> <script> var gLaunchDarklyData = { user: { key: gRealmId, qbUserId: gReqUID, qbRootDomain: gRootDomain, qbRealmName: gRealmName, qbIsInTrial: isInTrial, qbCurrentAppId: gReqAppDBID, qbIsCurrentAppAdmin: gReqUserHasAppAdmin } }; if (window.gReqAccountID) { gLaunchDarklyData.account = { id: window.gReqAccountID }; } else if (window.gAccountID) { gLaunchDarklyData.account = { id: window.gAccountID }; } if (gReqUserHasAppAdmin) { gLaunchDarklyData.user.qbHasEverHadAppAdmin = true; } </script> <!-- License key global for CKEditor 5 --> <script> var gCKEditorKey = "OUNFMDNZQ2NlQTFDUXo0cWMyVGxFcjhIUnpnamp1U00wempBbjAxYW5OY0YydkVSN1NBeUxrU21mZz09LU1qQXlOVEExTURJPQ==" </script> <script> var gFastFieldDomain = "https://portal.fastfieldforms.com"; </script> <link rel="stylesheet" type="text/css" href="https://assets-cflare.quickbasecdn.net/res/3a841b8-4/css/_packed/common.packed.css" /> <link rel="icon" href="/favicon.ico" /> <link rel="shortcut icon" href="/favicon.ico" /> <script> var gStartLoadTime = (new Date()).getTime(); var gJSdir = "js"; var gResDir = "https://assets-cflare.quickbasecdn.net/res/3a841b8-4"; var gReqHostName = "https://login.quickbase.com"; // Error message constants var kAPIerrCode_no_error = 0; var kAPIerrCode_insuff_perms = 3; var kAPIerrCode_bad_ticket = 4; var kAPIerrCode_signin_required = 22; var gMultiValuedFieldMaxEntries = (20 == "") ? 0 : 20; var gReqDBID = "main"; var targetParentDiv = "#mainBodyDiv"; function ldi() {} function ldiv() {} function ldtimeHisto() {} var debugOnly = false; var gRunningProduct = "Quickbase"; </script> <script> if (document.readyState !== 'loading') { initPerfTiming(); } else { document.addEventListener('DOMContentLoaded', function () { initPerfTiming(); }); } </script> <!--[if IE]> <script> $(document).ready(function () { checkIEVersionSupported(); // prompts for upgrade if necessary }); </script> <![endif]--> <script id="HybridUIHosts"> // A global configuration that points to Hybrid UI // This variable is also used by the setup scripts that are downloaded from Hybrid UI // so that assets (css and images) are loaded from the correct host. var HYBRID_UI_HOST = "https://www.ui.quickbase.com"; var QB_SERVERLESS_HOST = "https://services.quickbase.com/api"; </script> <script id="RequirejsConfig"> var gMappingScript = "geolocationMapBox"; var gMappingModernStyles = true; var HYBRID_PAGE_TOKEN = ""; // global accessToken for Mapbox window.gMapboxDevKey = "pk.eyJ1IjoicXVpY2tiYXNlb3BzIiwiYSI6ImNqNnpueGpzaDAzMmEyeG15bjQ4NXBldWYifQ.WyIwRcqCXdj-zo62Ro_UnQ"; // global accessToken for Syncfusion - use an object to add initialization state later window.gSyncfusionKey = { key: "ORg4AjUWIQA/Gnt2VVhkQlFacltJXGFWfVJpTGpQdk5xdV9DaVZUTWY/P1ZhSXxQdkRgWH5YdHxURGJeUkA=", key1: "ORg4AjUWIQA/Gnt2VVhkQlFacltJXGFWfVJpTGpQdk5xdV9DaVZUTWY/P1ZhSXxQdkRgWH5YdHxURGJeUkA=", key2: "ORg4AjUWIQA/Gnt2VFhhQlJBfV5AQmBIYVp/TGpJfl96cVxMZVVBJAtUQF1hSn5XdkZiXH5fcXdRR2hZ" }; // RequireJS expects the config to be named 'require' but replaces it with a function and prevents // access to the config outside plugins once loaded. So we chain an assignment to a global for later use. var gRequireConfig = require = { baseUrl: "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js", paths: { "canvg": "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/canvg", "marionette": "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/backbone.marionette-1.0.4.min", "one-color": "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/one-color", "mustache": "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/mustache-3.0.1.min", "jqueryFormat": "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/jquery.format-1.2/jquery.format.min", "async": "../js/require/async", "text": "../js/require/text", "geolocationLib": gMappingScript, "gmaps": "//maps.googleapis.com/maps/api/js?v=3&libraries=places", "mapbox-gl": "//api.mapbox.com/mapbox-gl-js/v0.38.0/mapbox-gl", "mapbox": "//api.mapbox.com/mapbox.js/v3.1.1/mapbox", "jqGrid": "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/jqGrid/jquery.jqGrid.min", "jgGridLocale": "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/jqGrid/i18n/grid.locale-en", "raphael": "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/raphael-min", "angular": "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/angular/1.8.2/angular.min", "angular-cookies": "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/angular/1.8.2/angular-cookies.min", "angular-sanitize": "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/angular/1.8.2/angular-sanitize.min", "angular-animate": "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/angular/1.8.2/angular-animate.min", "angular-route": "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/angular/1.8.2/angular-route.min", "ng-grid": "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/ng-grid-2.0.7.min", "ui-bootstrap": "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/ui-bootstrap-tpls-2.5.0.min", "moment": "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/moment.min", "ace-editor" : "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/aceEditor/ace", "ace-language-tools" : "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/aceEditor/ext-language_tools", "dhtmlxScheduler": "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/dhtmlxScheduler_v5.0.0/codebase/dhtmlxscheduler", "extActiveLinks": "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/dhtmlxScheduler_v5.0.0/codebase/ext/dhtmlxscheduler_active_links", "extAutoResize": "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/dhtmlxScheduler_v5.0.0/codebase/ext/dhtmlxscheduler_container_autoresize", "dhtmlx_tooltip": "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/dhtmlxScheduler_v5.0.0/codebase/ext/dhtmlxscheduler_tooltip", "blueBird" : "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/bluebird.min", "intlTelInput": "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/intl-tel-input/js/intlTelInput.min", "intlTelInputUtils": "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/intl-tel-input/js/utils", "underscore": "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/underscore-umd-1.13.1.min", // --- Start Hybrid UI scripts --- "styled-components": HYBRID_UI_HOST + "/ui/externals/styled-components", "react": HYBRID_UI_HOST + "/ui/externals/react", "react-dom": HYBRID_UI_HOST+ "/ui/externals/react-dom", "babel-polyfill": HYBRID_UI_HOST+ "/ui/externals/babel-polyfill", "ui-reuse": HYBRID_UI_HOST + "/ui/ui-reuse/main", "ui-app-picker": HYBRID_UI_HOST + "/ui/app-picker/main", "ui-automation-modal": HYBRID_UI_HOST + "/ui/automation-modal/main", "ui-trial-experience": HYBRID_UI_HOST + "/ui/trial-experience/main", "ui-ip-filtering": HYBRID_UI_HOST + "/ui/ip-filtering/main", "ui-global-help-utils": HYBRID_UI_HOST + "/ui/global-help-utils/main", "ui-footer-message": HYBRID_UI_HOST + "/ui/footer-message/main", "ui-item-picker": HYBRID_UI_HOST + "/ui/item-picker/main", "ui-kanban-board": HYBRID_UI_HOST + "/ui/kanban-board/main", "ui-platform-admin-nav": HYBRID_UI_HOST + "/ui/platform-admin-nav/main", "ui-relationship-builder": HYBRID_UI_HOST + "/ui/relationship-builder/main", "ui-row-color-picker" : HYBRID_UI_HOST + "/ui/row-color-picker/main", "ui-pending-user-migrate-governance": HYBRID_UI_HOST + "/ui/pending-user-migrate-governance/main", "ui-app-creation-dialog": HYBRID_UI_HOST + "/ui/app-creation-dialog/main", "ui-app-home-settings": HYBRID_UI_HOST + "/ui/app-home-settings/main", "ui-empty-app-page": HYBRID_UI_HOST + "/ui/empty-app-page/main", "ui-post-guided-app-overlay": HYBRID_UI_HOST + "/ui/post-guided-app-overlay/main", "ui-app-management": HYBRID_UI_HOST + "/ui/app-management/main", "ui-subfields-visualizer": HYBRID_UI_HOST + "/ui/subfields-visualizer/main", "ui-table-report": HYBRID_UI_HOST + "/ui/table-report/main", "ui-dialog-box": HYBRID_UI_HOST + "/ui/dialog-box/main", "ui-mobile-preview": HYBRID_UI_HOST + "/ui/mobile-preview/main", "ui-sample-data-tooltip": HYBRID_UI_HOST + "/ui/sample-data-tooltip/main", "ui-report-builder-panel": HYBRID_UI_HOST + "/ui/report-builder-panel/main", "ui-app-pages-list": HYBRID_UI_HOST + "/ui/app-pages-list/main", "ui-feature-toggle": HYBRID_UI_HOST + "/ui/feature-toggle/main", "ui-data-classification-table": HYBRID_UI_HOST + "/ui/data-classification-table/main", "ui-data-classification-badge": HYBRID_UI_HOST + "/ui/data-classification-badge/main", "ui-csr-login-ui": HYBRID_UI_HOST + "/ui/csr-login-ui/main", "ui-field-usage": HYBRID_UI_HOST + "/ui/field-usage/main", "ui-smart-builder": HYBRID_UI_HOST + "/ui/smart-builder/main", "ui-forms-list": HYBRID_UI_HOST + "/ui/forms-list/main", "ui-outcome-suggestions": HYBRID_UI_HOST + "/ui/outcome-suggestions/main", "ui-navigation-panel": HYBRID_UI_HOST + "/ui/navigation-panel/main", "ui-ai-smart-builder": HYBRID_UI_HOST + "/ui/ai-smart-builder/main", "ui-reports-panel": HYBRID_UI_HOST + "/ui/reports-panel/main", "ui-ai-console": HYBRID_UI_HOST + "/ui/ai-console/main", "ui-ai-quick-insights": HYBRID_UI_HOST + "/ui/ai-quick-insights/main", "ui-entitlement-trial": HYBRID_UI_HOST + "/ui/entitlement-trial/main", // --- End Hybrid UI scripts --- }, shim: { "angular": { "exports": "angular" }, "angular-cookies": ["angular"], "angular-sanitize": ["angular"], "angular-animate": ["angular"], "angular-route": ["angular"], "ng-grid": ["angular"], "ui-bootstrap": ["angular"], "jqGrid": ["jgGridLocale"], "jqgrid.qb": ["jqGrid"], "jqgrid.colselect.qb": ["jqGrid"], "GridView": ["jqGrid", "jqgrid.qb", "jqgrid.colselect.qb"], "progressStep": ["raphael"], "progressSpin": ["raphael"], "intlTelInput": ["intlTelInputUtils"] }, config: { geolocationUtilsMapBox: { gMapBoxKey: "pk.eyJ1IjoicXVpY2tiYXNlb3BzIiwiYSI6ImNqNnpueGpzaDAzMmEyeG15bjQ4NXBldWYifQ.WyIwRcqCXdj-zo62Ro_UnQ" } }, packages: [] }; require.packages.push({ name: "highcharts", main: "highcharts" }); require.paths["highcharts"] = "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/highcharts-9.1.2"; require.paths["qbHighcharts"] = "https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/highcharts.qb.v9"; </script> <script id="hybridCdnManifest" src="https://ui-features.quickbase.com/manifests/prod.manifest.js"></script> <script id="loadHybridCdnIntoRequireJs"> try { if(window.hybridManifest) { var HYBRID_CDN_HOST = "https://ui-features.quickbase.com"; Object.keys(window.hybridManifest).forEach(function(configKey) { require.paths[configKey] = HYBRID_CDN_HOST + window.hybridManifest[configKey]; // Output: {ui-relationship-builder: 'https://ui-features.quickbase.com/relationship-builder/1.2.3/main.12345.js'} }); } else { // Sometimes the manifest fails to load without displaying an error in the console. // This happens when security proxies return an empty body for our manifest if it is not allowed. console.error("Failed to load manifest: https://ui-features.quickbase.com/manifests/prod.manifest.js"); } } catch(cdnError) { console.error(cdnError); } </script> <script src="https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/_packed/common.packed.js" type="text/javascript"></script> <style> /* HTML5-compliant browsers should understand this. This is for the edification of the less-up-to-date browsers (like IE<=9, or FF3) */ article, aside, figure, footer, header, hgroup, nav, section { display: block; } </style> <!--[if gte IE 9]> <style type="text/css"> /*IE9+ buttons use SVG instead of filter for gradient BGs to allow border-radius*/ .Vibrant { filter: none !important; } </style> <![endif]--> <script type="text/javascript"> var inviteDefaultSubject = ""; var inviteDefaultMessage = ""; var gUserCanShare = "true"=="true"; var gEveryoneMsg = ""; //custom message to display on add/change role of EOI var gIsAddressBookAvailable = false; //default message for EOI var kEveryoneDefault = "Are you certain you want to grant access to this application to the entire Internet?"; var kACUser = 1; var kACGroup = 2; var kACDomgroup = 4; var kACAccount = 5; var kACPlaceholder = 6; var kGIDEveryone = 3; var gCurIndex; var gReqAccountName = ""; var kDelimA = '\\d'; var kDelimData = '~!~'; var kDelimRow = '~!!~'; var kDelimMVUserFieldData = ";"; var kNullID = '0'; var gParseGroups; //TESTING var gParseContacts; //TESTING var gSearchGroups; //TESTING var gSearchContacts; //TESTING var kMaxTokenCount = 400; //max # of allowed tokens //load mapping of roldID to role name var roleinfo = new Array(); var kRoleIDNoAccess = 9; //none role var tgRoleInfo = new Array(); //searchable trustee lists this.groups = ''; this.contacts = ''; //user-hidden announcements function isAnnouncementHidden(announcementNum) { if(typeof(hiddenAnnouncements)=='undefined') return true; return (hiddenAnnouncements & (1<<announcementNum)) != 0; } </script> <script type="text/javascript"> var gParentDBID = ""; var gReqAppName = ""; var gReqMgrName = ""; var gSingleTableDBID = ""; var gReqCompanyName = ""; var gReqCompanyID = ""; var gReqUserRoleID = "0"; var gReqUserRoleIDs = ""; // all roles var gReqUserEmail = ""; var gReqUserDateCreated = ""; var gReqUserFname = ""; var gReqUserLname = ""; var gReqUserDelayVerify = "0" == "1" ? true : false; var autoFAQ = ""; var gReqTemplName = "mercuryshell"; var gReqPrintFriendly = false; var gEOIAllowed = ("" == "true") ? true : false; var gReqRealmInactivityTimeout = 0; var gSessionExpirationInterval = 900; var kRecordNameSingular = ""; var kRecordNamePlural = ""; // TO BE REMOVED - DO NOT USE var kRecordNameSingularLower = kRecordNameSingular.toLowerCase(); var kRecordNamePluralLower = kRecordNamePlural.toLowerCase(); // TO BE REMOVED - DO NOT USE var kRuntimeMode = ""; // var kMaxPasswordLength = isNaN(parseInt("64")) ? 64 : parseInt("64"); var kIsPreRelease = false; var kFMdefaultToAll = false; var gPrimaryTableDBID = ""; var gAppTimeZoneOffset = ""; var gReqTime = ''; var gReqDateFormat = 0; // var gReqNumberSeparator = ""; var gReqDecimalMark = ""; var defaultAppRoleId = ""; var gRofo = []; var gReqAct = "IDP_SSO_Login"; var gJumpTableAct = false; var gClassification = gClassification || {}; var gTableInfo = new Object(); var rinfo = new Array(); var rdinfo = new Array(); var gFI = new Array(); var gCDD = new Array(); var gFMI = new Array(); var gQI = new Array(); var gGeData = new Object(); // gIsWorkspace = gShowAlmDropdown = gIsClusterMainApp = // gIsClusterDuplicateApp = gFavoritesMenuData = {}; QB.FeatureSwitchMgr.init({"Switch_EchoSign":false,"Switch_FormulaBuilder_ANTLR_Integration":true,"Switch_HybridUIEnhancedCharts":true,"Switch_HybridUIEnhancedTimeline":true,"Switch_HybridUIGuidedAppFlowAndFromScratchWithVB":true,"Switch_HybridUIReportBuilder":true,"Switch_HybridUIReportBuilderAsync":true,"Switch_HybridUIReportBuilder_Chart":false,"Switch_HybridUIReportBuilder_Kanban":true,"Switch_HybridUIReportBuilder_Summary":false,"Switch_QuickBaseSync":true,"Switch_RemixLegacyUserMenuRestyled":true,"Switch_RemixUI":true,"Switch_RestyledTestAsBanners":false,"Switch_SalesforceSandbox":false,"Switch_SyncErrorNotifications":true,"Switch_Sync_Intacct_ShowSenderFields":false,"Switch_TableReportShouldUseVirtualization":true,"Switch_ZendeskHelpMigration":true}); </script> <link rel="stylesheet" type="text/css" href="https://assets-cflare.quickbasecdn.net/res/3a841b8-4/css/themes/classic/createTable.css" /> </head> <body class="stdBody IE IE7 UXV2 Regular" link=blue vlink=blue alink=blue onload="StdLoadProc();" onbeforeunload="return StdBeforeUnloadProc(event);" onunload="StdUnloadProc()" onresize="StdResizeProc(event);" onscroll="StdScrollProc(event);" onkeydown="StdKeyDownProc(event);" onmousedown="StdMouseDownProc(event);" onmouseup="StdMouseUpProc(event);" onmousemove="StdMouseMoveProc(event);" onmouseover="StdMouseOverProc(event);" > <div id="tableSelector" class="PopBox" style="visibility: hidden; display: none; "> <table cellspacing="0"> <tr> <td class="a90" style="padding-bottom: 1em" id="tselHeading"> &nbsp; </td> </tr> <tr> <td class="a80" style="padding-bottom: 1em" id="tselForWhich"> For which table? </td> </tr> <tr> <td> <table cellspacing="6" width="100%"> <tr> <td> <a href="javascript:void(0)" onclick="location='/db/?a=' + gAction; return false;"></a> </td> </tr> <tr> <td id="cancelButCell" class="closeBut"> <a href="javascript:void(0)" onclick="HidePopupDiv(); return false;">Cancel</a> </td> </tr> </table> </td> </tr> </table> </div> <!-- the menus START --> <div id="EmptyMenuV2" class=PopMenu style="visibility:hidden; display:none;"> <table class="V2menu" onclick="QBmenu2Click(event,this)" onmousemove="QBmenu2Mmove(event,this)"></table> </div> <div id="MenuCtxtMenu" class=PopMenu style="visibility:hidden; display:none;"> <table class="V2menu" onclick="QBmenu2Click(event,this)" onmousemove="QBmenu2Mmove(event,this)" id="Table1"> <tr class=tspc><td><br></td></tr> <tr onclick="QBmenuOldWin()"><td>Open</td></tr> <tr onclick="QBmenuNewWin()"><td>Open in New Window</td></tr> <tr class=bspc><td><br></td></tr> </table> </div> <!-- the menus END --> <div id="TOS2017Dialog" style="display:none;"> We are updating our <a class="noUnderline" href="https://www.quickbase.com/terms-of-service" target="_blank">Terms of Service</a>. See our <a class="noUnderline" href="" target="_blank">blog post</a> highlighting the changes. By continuing to use the Quickbase Service, the new Terms of Service will become effective on the renewal date for each account that you manage. If you do not accept the changes, please notify us thirty days in advance of your renewal date. </div> <div id="addressBook" style="display:none"> </div> <!-- jquery dialog for emailing a report--> <div id="emailQueryDialog" style="display:none"> <label id='emailQueryError' class='validationErrorNoMargin'></label> <div> <form id='emailQueryForm'> <table style="width:100%"> <tr id="emailQueryCalendarMessage" style="display:none;"> <td colspan="2" style="padding: 10px 7px;border-radius:3px;background:#e9e9e9;color:#666;text-align:center;"> Quickbase will send a report of the events currently displayed on your calendar. </td> </tr> <tr> <td colspan="2" style="padding-left:43px;padding-top:15px;"> <label id="emailQueryInputLabel" class="textInputLabel contactsInputLabel">Email addresses</label> </td> </tr> <tr> <td> <button class="addressBookButton ui-corner-all ui-state-default" type="button" id="emailQueryAddressBookButton"> <img src="https://assets-cflare.quickbasecdn.net/res/3a841b8-4/i/icons/16/book_open.png" title="Quickbase Address Book" /> </button> </td> <td> <input type="text" class="emailAddressInput" id="emailQueryUsers" style="max-height:200px; width:524px;" /> </td> </tr> </table> </form> </div> <div id="emailQueryDetails" class="addUserSection"> <label class="textInputLabel">Subject<input id='emailQuerySubj' type="text" /></label> <label class="textInputLabel">Message<textarea id='emailQueryMsg'></textarea></label> </div> </div> <!-- end jquery dialog for emailing a report--> <div class="InfoMsgBox"> </div> <div id="navBars" class=""> <!-- ******************* Brand Bar *******************************--> <!--Start: Header--> <div id="brandBarHeader"> <script> // global variable for use in hybrid ui var gCustomBrandColor = ""; </script> <div id="qbDefaultBrandBar" class="BrandBar Default BasicBrand Group"> <div class="FirstItem"> <a href="/db/main?a=myqb" class="LogoQuickBase FS-H1"> <span class="Alt">Quickbase</span> <!-- this logo only apears when new nav is simulated, otherise display:none is set --> <img class="NewNavLogo" src="https://assets-cflare.quickbasecdn.net/res/3a841b8-4/i/logos/quickbase-logo-color-black.png"> </a> </div> <div class="LastItem"> <script language="javascript"> </script> <ul id="navRightMenus" class="MenuBar"> </ul> </div> </div> </div><!--id="brandBarHeader" --> <div class="BrandBarSpacer DisplayNone" id="brandBarSpacer"> <div id="backToTop" class="Tipsy" data-original-title="Scroll back to the top of this page"><span class="Icon WhiteArrow"></span></div> </div> <!--End: Header--> <!-- ******************* App Menu Bar *******************************--> <div id="navTop"> <div id="navTopAppBar" class="ui-tabs ui-tabs-shoulder"> <ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header "> </ul> </div> </div> <div id="topCoverUp" class=""></div> <div id="newAppLightBoxDiv" class="DisplayNone"> <div class="LightBoxDiv"> <div id="withCreateOptionsContent"> <div class="DialogTitle FS-H2"> <div id="accountPicker" class="DisplayNone"> New apps will be added to your account <select id="accountSelectBox"></select> <a class="ui-dialog-titlebar-close ui-corner-all CloseIcon" role="button"><span class="ui-icon ui-icon-closethick">close</span></a> </div> <div id="noAccountPicker" class="NoTitle"> <a class="ui-dialog-titlebar-close ui-corner-all CloseIcon" role="button"><span class="ui-icon ui-icon-closethick">close</span></a> </div> </div> <div class="DialogContent"> <div class="LeftSect NewAppGlamor Img"></div> <div class="RightSect"> <div class="FS-H1">Create your own free Quickbase app</div> <div class="FS-H3 VerticalSpacerSmall">Quickbase Exchange has hundreds of free apps for any business process.<br />It's simple to get started and you don't need to be technical to do it.</div> <table class="VerticalSpacer"> <tr> <td> <ul> <li>Project Management</li> <li>Customer Support</li> <li>Sales & CRM</li> <li>Marketing</li> </ul> </td> <td> <ul> <li>Team Management</li> <li>Human Resources</li> <li>Information Technology</li> <li>Industry-specific solutions</li> </ul> </td> </tr> </table> <div class="VerticalSpacer"><a id="templateCreate" class="Tall Success Vibrant CreateButton" href="https://login.ui.quickbase.com/ui/">Find an app in Quickbase Exchange</a></div> </div> </div> </div> <div id="noCreatePermContent"> <div class="NoTitle"> <a class="ui-dialog-titlebar-close ui-corner-all CloseIcon" role="button"><span class="ui-icon ui-icon-closethick">close</span></a> </div> <div class="DialogContent"> <div class="LeftSect Pending Img"></div> <div class="RightSect"> <div class="FS-H1">We need to check with your admin first...</div> <div class="FS-H2 VerticalSpacer">We know you're eager to create your first app-but your account settings don't let you create apps yet. We've asked your account admin to allow it, and you'll get an email from us when you can.</div> </div> </div> </div> <div class="DialogFooter"> <div class="LeftSect FS-H2"> <span class="withCreateOptions">Prefer a more hands-on solution?</span> <span class="noCreatePerms DisplayNone">Can't wait? Try a 30-day free trial, and get started creating apps immediately.</span> </div> <div class="ArrowSect"></div> <div class="RightSect"> <div class="withCreateOptions"> <span class="AppCreateTypeImg Scratch"></span> <a id="scratchCreate" class="CreateButton Button" data-href="/db/main?a=appcreate&tab=scratch">Build a new app from scratch</a> <span class="AppCreateTypeImg Import"></span> <a id="importCreate" class="CreateButton Button" data-href="/db/main?a=appcreate&tab=import">Import a spreadsheet to create a new app</a> </div> <div class="noCreatePerms DisplayNone"><a id="startTrial" class="Button noCreatePerms">Start a trial</a></div> </div> </div> </div> </div> <div id="about-QuickBase" title="About Quickbase" class="DisplayNone"> Quickbase is a web-site that lets you select, customize, and share online workgroup applications. The application you are using right now is powered by Quickbase.<br /> <br /> Chances are that your organization has purchased the Quickbase service, in which case you might be able to build and deploy your own web application for little or no additional cost.<br /> <br /> You have permission to create your own web applications.<br /> <br /> To find out more about Quickbase, <a href="https://quickbase.com/" target="_blank" rel="noopener noreferrer">visit our web site.</a><br /> <br /> <a href="/db/main?a=GenTermsOfService" target="_blank" rel="noopener noreferrer">Terms of Service</a> </div> <!-- Template for create table dialog contents--> <script id="createTableTempl" type="text/html"> <form class="newTableForm"> {{#isCopyTable}} <div class="CreateTableDescription" style="text-align: justify;"> Carry over the structure, home page, record title, forms, reports, charts, record picker settings, and advanced settings, along with deactivated automated email, webhooks, and actions. No relationships or reference fields are copied. Permissions and table home page settings will need to be re-set. </div> <label class="TableLabel">Copy {{tableName}} to:</label> <div class="copy-table"> <select id="appPicker" class="appPicker" name="dstapp"></select> </div> <!-- this error message is shown when the app picker fails to load apps in case of too may apps. --> <label class="appPickerNoData error DisplayNone">Unable to retrieve apps</label> {{/isCopyTable}} {{^isCopyTable}} <div class="CreateTableDescription">A table tracks a collection of items. Name the table for the things you want to track, such as projects or time cards. You'll then add fields to define the table's data.</div> {{/isCopyTable}} <div class="CreateNewTableNameWrapper"> <div class="CreateNewTableInput"> <label class="TableLabel">{{#isCopyTable}}New t{{/isCopyTable}}{{^isCopyTable}}T{{/isCopyTable}}able name:</label> <input type="text" size="42" name="createNewTableName" value="{{#isCopyTable}}Copy of {{/isCopyTable}}{{tableName}}" class="createNewTableName required needsplural valid UserInput WithPadding" placeholder="e.g. 'Customers' or 'Issues'" /><div class="RequiredAsterisk">*</div> {{^isCopyTable}}<label for="createNewTableNoun" class="inputDescription"></label>{{/isCopyTable}} <div class="tableNameExistsWarn error DisplayNone">There is already a table with this name</div> <div class="tableNameLengthWarn error DisplayNone">Table name must not be blank and less than 256 characters</div> </div> <div class="CreateNewTableInput"> <label class="TableLabel">A single record is called a:</label> <input type="text" size="42" name="createNewTableNoun" value="{{singularNoun}}" class="createNewTableNoun required needsplural valid UserInput WithPadding" placeholder="e.g. 'Customer' or 'Issue'" /><div class="RequiredAsterisk">*</div> {{^isCopyTable}}<label class="inputDescription"></label>{{/isCopyTable}} <div class="tableNounLengthWarn error DisplayNone">Single record name must not be blank and less than 256 characters</div> </div> </div> <div class="SelectedIconWrapper"> <span class="SelectedIconLabel">Icon:</span> <div class="IconChooser IconBorder Tipsy UserInput selectedIconSearch" data-original-title="Click to view all icons"> <div class="submissionIcon TblIcon20 icon-table SubmissionIcon {{iconName}}" icon="{{iconName}}"></div> </div> </div> <div class="SuggestedIconWrapper"> <span class="SuggestedIconsLabel">Suggested icons:</span> <div class="IconBorder suggestedIconContainer"> </div> </div> <span class="createNewTableDescSpan"> <label class="TableLabel">Description:</label> <textarea cols="95" rows="5" name="createNewTableDesc" class="createNewTableDesc UserInput WithPadding">{{description}}</textarea> {{^isCopyTable}} <label class="inputDescription">The description will appear on the tooltip for this table</label> {{/isCopyTable}} <div class="inputDescLengthWarn error DisplayNone">Table description must be less than 1024 characters</div> </span> {{#isCopyTable}} <div class="accessarea"> <label class="TableLabel">Options:</label> <input type="checkbox" name="keepdata" class="keepdataChk" /><span> Keep data</span> </div> <div class="accessarea" id="accessarea"> <label class="TableLabel">Permissions:</label> <label>You will have full administrative access to this table (via the Administrator role).</label> <span class="accessAreaLabel">Set access for other roles to </span> <select name="access"> <option value="none" selected>No Access</option> <option value="view">View</option> </select> </div> {{/isCopyTable}} <input type=hidden name=PageToken value=YiNiIzdlOGtnZXZhI2FidXA4N3hqcHUjshHh0Z8SiJzjKazQ17Z5YVNhFU68Xu4HYGjII1htLhA%3D> </form> </script> <!-- Template for create table dialog contents--> <script id="selectIconsTempl" type="text/html"> <input type="text" class="clearableInput Empty DoSearch" id="tableIconSearch" placeholder="Search icons" size=30 /> <div class="IconBorder SelectIconContainer" id="selectIconContainer"> {{#icons}} <div class="TableIconPadding"><div class="TblIcon20 icon-table Tipsy {{icon}}" icon="{{icon}}" data-original-title="{{tags}}"></div></div>{{/icons}} </div> </script> <script id="iconListTempl" type="text/html"> {{#icons}} <div class="TableIconPadding"><div class="TblIcon20 icon-table Tipsy {{icon}}" icon="{{icon}}" data-original-title="{{tags}}"></div></div> {{/icons}} </script> <script id="noSuggestedIconTempl" type="text/html"> <div class="NoSuggestedIcon">No suggested icons for the table name entered.</div> </script> <link rel="stylesheet" type="text/css" href="https://assets-cflare.quickbasecdn.net/res/3a841b8-4/css/themes/classic/createTable.css" /> <link rel="stylesheet" type="text/css" href="https://assets-cflare.quickbasecdn.net/res/3a841b8-4/css/ng-grid.css" /> <script type="text/javascript"> //Init the create table dialog. $(function () { /* Load the createTable.js file once on click event. The reason for data attributes is detailed in createTable.js.*/ $("#btnNewTable, #btnNewTableLite,#btnNewTable_Nav").one('click', function () { var btnElem = $(this); if (!btnElem.data('init')) { $('#btnNewTable,#btnNewTableLite,#btnNewTable_Nav').data('init', 'interim'); require(["createTable"], $.noop); } }); $("#copytable").one('click', function () { var btnElem = $(this); if (!btnElem.data('init')) { $('.PopMenu').hide(); $('#copytable').data('init', 'interimcopy'); require(["createTable"], $.noop); } }); }); </script> <script src="https://assets-cflare.quickbasecdn.net/res/3a841b8-4/js/std_accountPicker.js" type="text/javascript"></script> <!-- ******************* Tables Bar *******************************--> <div id="TableNPageBarSeparator" class="DisplayNone"></div> <!-- ******************* Page Nav Bar *******************************--> </div> <!-- end navBars--> <div id="gcfOverlay" style="display: none"> </div> <div id="gcfPrompt" style="display: none"> <div class="Reset"> <section class="gcfBrowserOptions"> <div class="gcfHeader Group "> <div class="gcfHeaderMessage FS-H1 Left"> Sorry, we're no longer supporting this browser. </div> <div class="FS-Tool-A Right"> <a class="Link" href="https://quickbase.intuit.com/blog/?p=11701 " title="Learn more: A blog post on browsers we support and why we are sunsetting IE7"> learn more . . . </a> </div> </div> <div class="gcfBody gcfBrowsers"> <p> Please upgrade to . . . </p> <div class="gcfChoices Group"> <div class="gcfBrowser Left"> <div class="Group"> <div class="Left"> <a class="FS-H2" id="chromeBrowserLink" href="https://www.google.com/chrome" title="Get the latest Google Chrome browser"> <span class="Icon44 GoogleIcon44 Left"></span> <span class="BrowserName">Google Chrome</span> </a> <div class="ReducedFont">(preferred)</div> </div> </div> </div> <div class="gcfBrowser Left"> <div class="Group"> <a class="FS-H2" id="firefoxBrowserLink" href="https://www.mozilla.com/en-US/firefox/new/" title="Get the latest Firefox browser"> <span class="Icon44 FirefoxIcon44 Left"> </span> <span class="BrowserName">Firefox</span> </a> </div> </div> <div class="gcfBrowser Left"> <div class="Group"> <a class="FS-H2" id="ieBrowserLink" href="https://ie.microsoft.com/" title="Get Internet Explorer 9 or later"> <span class="Icon44 IEIcon44 Left"> </span> <span class="BrowserName">Internet </span><div>Explorer 9+</div> </a> </div> </div> </div> </div> </section> </div> </div> <div id="gcfDialog" style="padding: 20px; height: auto; display:none"> </div> <div id="confMsgBox" style="visibility:hidden; display:none; position:absolute; text-align:center"></div> <div id="dialogAddNewReportContents" class="DisplayNone DialogChoices" tabindex="0"> <section tabindex="0" aria-label="Table report"> <input type="radio" name="reportType" id="tableReport" value="table" tabindex="-1" /> <label for="tableReport"> <span class="Icon Report Table"></span> </label> <label for="tableReport"> <span class="FS-H1">Table</span> <div>Spreadsheet-style report with rows and columns</div> </label> </section> <section tabindex="0" aria-label="Chart report"> <input type="radio" name="reportType" id="chartReport" value="chart" tabindex="-1" /> <label for="chartReport"> <span class="Icon Report Chart"></span> </label> <label for="chartReport"> <span class="FS-H1">Chart</span> <div>Pie, bar, line and others</div> </label> </section> <section tabindex="0" aria-label="Kanban report"> <input type="radio" name="reportType" id="kanbanReport" value="kanban" tabindex="-1" /> <label for="kanbanReport"> <span class="Icon Kanban Report"></span> </label> <label for="kanbanReport"> <span id="kanbanTitle" class="FS-H1">Kanban</span> <div> <span id="kanbanDesc">Cards in columns</span> <span id="kanbanErrorMsg" class="DisplayNone"><i>Unavailable for this table because it has no valid multiple-choice or user fields.</i></span> </div> </label> </section> <section tabindex="0" aria-label="Map report"> <input type="radio" name="reportType" id="mapReport" value="map" tabindex="-1" /> <label for="mapReport"> <span class="Icon Report Map"></span> </label> <label for="mapReport"> <span class="FS-H1">Map</span> <div>Addresses translate to pins on a map</div> </label> </section> <section tabindex="0" aria-label="Grid report"> <input type="radio" name="reportType" id="gridEditReport" value="gedit" tabindex="-1" /> <label for="gridEditReport"> <span class="Icon Report Grid-edit"></span> </label> <label for="gridEditReport"> <span class="FS-H1">Grid edit</span> <div>Edit many records at once</div> </label> </section> <section tabindex="0" aria-label="Calendar report"> <input type="radio" name="reportType" id="calendarReport" value="calendar" tabindex="-1" /> <label for="calendarReport"> <span class="Icon Report Calendar"></span> </label> <label for="calendarReport"> <span class="FS-H1">Calendar</span> <div>Dates show on a calendar</div> </label> </section> <section tabindex="0" aria-label="Summary report"> <input type="radio" name="reportType" id="summaryReport" value="newsummary" tabindex="-1" /> <label for="summaryReport"> <span class="Icon Report Summary"></span> </label> <label for="summaryReport"> <span class="FS-H1">Summary</span> <div>Group and total your data</div> </label> </section> <section tabindex="0" aria-label="Timeline report"> <input type="radio" name="reportType" id="timelineReport" value="timeline" tabindex="-1" /> <label for="timelineReport"> <span class="Icon Report Timeline"></span> </label> <label for="timelineReport"> <span class="FS-H1">Timeline</span> <div>Start and end dates in a timeline with a schedule</div> </label> </section> <section tabindex="0" aria-label="Pivot report"> <input type="radio" name="reportType" id="pivotReport" value="pivot" tabindex="-1" /> <label for="pivotReport"> <span class="Icon Report Table"></span> </label> <label for="pivotReport"> <span class="FS-H1">Pivot</span> <div>A pivot report</div> </label> </section> </div> <div id="mainBodyDiv" > <div id="s4extra" class="DisplayNone"></div> <table id=stripe4x cellspacing=0 cellpadding=0 style="margin-top:12px; width:98%; display:none;"> <tr> <td></td> <td align=right style="padding-right:12px"> <table cellspacing=0 cellpadding=0 id=s4ButtonArea style=""> <tr> </tr> </table> </td> </tr> </table> <table cellspacing=0 cellpadding=0 id="bodyTable"> <tr> <td></td> <td class="SideSpacer"><img src="https://assets-cflare.quickbasecdn.net/res/3a841b8-4/i/clear2x2.gif" height=2 width="18"></td> <td valign=top id=mainCell style="border-width:0px; width:100%;"> <div class="TopSpacer" style="height:15px"></div> <script> var mcFields = false; var kbReport = document.getElementById("kanbanReport"); if(kbReport) { kbReport.disabled = !mcFields; if(!mcFields) { document.getElementById("kanbanTitle").style.color = "#ccc"; document.getElementById("kanbanDesc").style.color = "#ccc"; document.getElementById("kanbanErrorMsg").style.color = "#ccc"; document.getElementById("kanbanErrorMsg").style.display = "inline"; } } var shouldHideAutomations = false; </script> <script type="text/javascript" id="hybridResourceInformation"> $(function () { try { window.HYBRID_FEATURE_NAME = "idp-sso-login"; window.resourceId = 'sso-need-realm'; var featureNameForError = window.HYBRID_FEATURE_NAME || "No feature specified"; if (window.hybridManifest) { var HYBRID_CDN_HOST = "https://ui-features.quickbase.com"; var featureScript = document.createElement('script'); featureScript.setAttribute('charset', 'UTF-8'); featureScript.setAttribute('src', HYBRID_CDN_HOST + window.hybridManifest['ui-' + window.HYBRID_FEATURE_NAME] + '.js'); document.body.appendChild(featureScript); } else { console.log("UI Feature loaded from server. HYBRID_FEATURE_NAME: " + featureNameForError); var featureScript = document.createElement('script'); featureScript.setAttribute('charset', 'UTF-8'); featureScript.setAttribute('src', HYBRID_UI_HOST + '/ui/' + window.HYBRID_FEATURE_NAME + '/main.js'); document.body.appendChild(featureScript); } } catch (error) { console.log("There was an error loading a feature. HYBRID_FEATURE_NAME: " + featureNameForError + " Error: " + error); } }); </script> </td> <!-- This table cell is used to dynamically add margins for pages without chrome, like popups etc users can embed qburl as a frame and specify an ifv=nnn paramter to set the left right margin of the main content. Might be albe to change to containing section and set width in js with more testing --> <td class="SideSpacer"> <img src="https://assets-cflare.quickbasecdn.net/res/3a841b8-4/i/clear2x2.gif" height="2" width="18"> </td> </tr> </table> <script type="text/javascript"> $(function () { var footerHeight = $("#bottomFooter").height(); var horizScrollbar = false; realmFooterEl = $("#realmAppFooter"); $(realmFooterEl).css("bottom", footerHeight + "px"); }); </script> </div> <footer id="bottomFooter"> <script type="text/javascript"> $(function () { $('#showMobileSiteLink, #showMobileAppLink').click(function () { var domain = cleanupHostnameAndGetDomain(location.host); var c = "fullVer=0;path=/;domain=" + domain; document.cookie = c; }); }); // New nav has port and ".host" in the host name e.g qbdeveloper.host.quickbase-dev.com:9447 vs old nav qbdeveloper.quickbase-dev.com // This is causing issues on mobile not finding the fullVer cookie and resetting its value back to 0 function cleanupHostnameAndGetDomain(host) { var HUEY_SUBDOMAINS = ['host', 'ui']; var hostNameParts = host.split('.'); // Check if the second part of the hostname is a subdomain that needs to be removed if (HUEY_SUBDOMAINS.includes(hostNameParts[1])) { hostNameParts.splice(1, 1); } var [realm, ...qbDomainParts] = hostNameParts; var qbDomain = qbDomainParts.join('.'); // Remove port number if present var qbDomainWithoutPort = qbDomain.split(':')[0]; return qbDomainWithoutPort; }; </script> </footer> <script> var gMsgBoxMsg = ""; var gMsgBoxSubMsg = ""; </script> <div id="msgBox" class="PopBox" style="visibility:hidden; display:none;"> <table cellspacing="0"> <tr> <td style="padding-bottom:1em; color:#c00; font-size:110%"><span id=msgBoxMsg></span></td> </tr> <tr> <td style="padding-left:20px"> <table cellspacing="0"> <tr> <td><span id=msgBoxSubMsg style="line-height:130%"></span></td> </tr> <tr> <td id="msgBoxClose" class=closeBut><input type=button value="Close" onclick="HidePopupDiv('msgBox');"></td> </tr> </table> </td> </tr> </table> </div> <div id="qbMsgDiv" class="PopBox" style="visibility:hidden; display:none; padding:20px; width:400px"> <span id="qbMsgBody"></span> <input type=button class=stdButton style="float:right" value="Close" onclick="HidePopupDiv('qbMsgDiv');">&nbsp; </div> <div id="qbAlertDiv" class="PopBox" style="visibility:hidden; display:none; padding:30px;"> <table cellspacing="0"> <tr> <td style="padding-right:20px" valign=top><img src="https://assets-cflare.quickbasecdn.net/res/3a841b8-4/i/icons/24/warning_24.gif" border=0></td> <td style="font-size:110%; line-height:140%" id="qbAlertSpan">&nbsp;</td> </tr> <tr> <td class=centerButs colspan=2> <input type=button value=" OK " onclick="HidePopupDiv('qbAlertDiv');"> </td> </tr> </table> </div> <div id="qbConfDiv" class="PopBox" style="visibility:hidden; display:none; padding:30px"> <table cellspacing="0"> <tr> <td style="padding-right:20px; line-height:140%" valign=top><img src="https://assets-cflare.quickbasecdn.net/res/3a841b8-4/i/qmarkBalloon.gif" border=0></td> <td style="font-size:110%; line-height:160%" id="qbConfSpan">&nbsp;</td> </tr> <tr> <td class=centerButs colspan=2> <input type=button id=confYesBut value=" OK " onclick="QBconfirmYesProc()"> <input type=button id=confNoBut value="Cancel" onclick="QBconfirmNoProc();"> </td> </tr> </table> </div> <div id="qbConfSmallDiv" class="PopBox" style="visibility:hidden; display:none; padding:15px 20px"> <table cellspacing="0"> <tr> <td style="font-size:100%;" id="qbConfSmallSpan">&nbsp;</td> </tr> <tr> <td class=centerButs style="padding-top:15px"> <input type=button id=confSmallYesBut value=" OK " onclick="QBconfirmYesProc()" style="font-size:85%;"> <input type=button id=confSmallNoBut value="Cancel" onclick="QBconfirmNoProc();" style="font-size:85%;"> </td> </tr> </table> </div> <div id="qbBusyDiv" style="display:none;"> <span class="BusyIcon"></span> <span id="qbBusySpan" class="FS-H1">&nbsp;</span> </div> <div id="qbPromptDiv" class="PopBox" style="visibility:hidden; display:none; padding:30px"> <table cellspacing="0"> <tr> <td style="padding-right:20px; line-height:140%" valign=top rowspan=2><img src="https://assets-cflare.quickbasecdn.net/res/3a841b8-4/i/qmarkBalloon.gif" border=0></td> <td style="font-size:110%;" id="qbPromptMsg">&nbsp;</td> </tr> <tr> <td><input type=text size=50 id="qbPromptInput" style="font-size:110%; position:static;"></td> </tr> <tr> <td class=centerButs colspan=2> <input type=button value=" OK " onclick="QBpromptYesProc()"> <input type=button value="Cancel" onclick="HidePopupDiv('qbPromptDiv');"> </td> </tr> </table> </div> <div id=qbGreetDiv class="PopBox" style="visibility:hidden; display:none; top:0px; left:0px; width:500px;"> <table cellpadding="0" cellspacing="0" border=0> <tr> <td rowspan=3 style="padding-right:20px" valign=top align=left><img src="https://assets-cflare.quickbasecdn.net/res/3a841b8-4/i/guide.png" width=92 height=89></td> <td id=ladyTitle colspan=2 width="507" valign=top style="font-size:140%; font-family:Trebuchet MS; padding-bottom:10px;"></td> </tr> <tr> <td id=ladyBody colspan=2></td> </tr> <tr> <td style="padding-top:15px"><a href="#" onclick="HidePopupDiv(); return false;"><img src="https://assets-cflare.quickbasecdn.net/res/3a841b8-4/i/close.png"></a></td> <td style="padding-top:25px; color:#555;" colspan=3 align=right nowrap><input type=checkbox> Don't show me this message again</td> </tr> </table> </div> <div style='display:none; width:500px' id='MINI_HELP_EMPTY' class=PopBox> <h4></h4> <div></div> <input type=button value='Close' onclick='HidePopupDiv("MINI_HELP_EMPTY")' class=stdButton style="margin-top:5px; float:right;">&nbsp; </div> <div id=fauxToolTipDiv style="visibility:hidden; display:none; z-index:8; left:0px; top:0px; border:1px solid #888; padding:1px 4px; position:absolute; background-color:#FFFFDC; cursor:default;"> <span id=fauxToolTipText style="line-height:150%;">foo</span><br> </div> <div id="verificationRequiredDialog" class="nodisplay"> <div id="verificationRequiredHead"> <div id="verificationRequiredImage"><img src="https://assets-cflare.quickbasecdn.net/res/3a841b8-4/css/themes/classic/images/icons/verificationrequired.png" /></div> <div id="verificationRequiredText"> <p id="verificationRequiredFirstPara">We're glad you're interested in doing more with Quickbase!</p> <p class="verificationRequiredPara">Now we need to make you official before you share apps or manage your account.</p> </div> </div> <div style="clear: both;"> <p class="verificationRequiredBoldPara">Verifying your email lets you share Quickbase with others in your company.</p> </div> <table> <tr> <td><div class="verificationRequiredFieldLabel">Your work email</div><input id="newEmailAddress" type="text" class="verificationRequiredInput" value="" /></td> </tr> <tr> <td><div class="verificationRequiredFieldLabel">Your company</div><input id="newYourCompanyName" type="text" class="verificationRequiredInput" value="" /></td> </tr> </table> </div> <div id="timingdata" style="display:none"> <input type="hidden" name="isLongRequest" value="false" /> <div id="timerStats"> <div id="timerStatsList"> <h5>Client Performance Report</h5> <pre>Network latency: (<span id="timeForNetworkLatency"></span>)</pre> <pre>The time taken for page load once the page is received from the server:(<span id="timeForPageLoad"></span>)</pre> <pre>The total process of navigation and page load: (<span id="timeForNavStart"></span>)</pre> <pre><span id="howGotHere"></span></pre> </div> <div id="timerNoPerfObj"> <br /> <pre>From inline js at page top.. .. to the time until docready:(<span id="docreadyspan"></span> s) .. to the time until window load begins: (<span id="windowloadspan"></span> s) .. to the time until window load ends: (<span id="windowloadendspan"></span> s)</pre> </div> </div> </div> <script type="text/javascript"> IsGoogleAnalyticsEnabled = "1" == "1"; AreWalkMeTutorialsEnabled = "" == "1"; IsAutotestEnabled = "0" == "1"; trackToLog = true; gGAAccountID = "UA-230037-1"; // Setup walkme js snippet if its enabled if (AreWalkMeTutorialsEnabled) { SetupWalkMeTutorialScript(false, IsAutotestEnabled); } /* all pages will have the google analytics tracking functions from analytics.js, but will only load the ga.js file and actually do tracking if it is enabled if tracking is not enabled, will not load the ga script file */ //asynch install google analytics js code if (IsGoogleAnalyticsEnabled) { loadGoogleAnalytics(); } </script> <script> /* the following code tracks the page when it loads separated into a separate section it is specialized code (customer/prospect) for marketing not used on all pages */ $(window).load(function () { GoogleAnalytics_Run(); }); </script> <input type="hidden" value="first" name="firstTimeLoaded"> <script type="text/javascript"> $(window).bind("load", function () { if ($("#bottomFooter").css("bottom") == "0px" && $("#bottomFooter").css("position") == "fixed") { $("#bottomSpacer").height($("#bottomFooter").height()); } else if ($("#draftBanner").css("bottom") == "0px" && $("#draftBanner").css("position") == "fixed") { $("#bottomSpacer").height($("#draftBanner").height()); } }); </script> <div id="dQuickTourOverlay" class="DisplayNone"></div> <div id="dQuickTourContainer"></div> <script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'8eac223c8ad29cff',t:'MTczMjk4MzMwMS4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10