Beispiel #1
0
 public AppAreaDescriptor(string title, string link, string description, tabID id)
 {
     Title       = title;
     Link        = link;
     Description = description;
     TabID       = id;
 }
Beispiel #2
0
    private bool IsAuthorizedForTab(tabID sidebarTab, Profile pf)
    {
        switch (sidebarTab)
        {
        case tabID.admUsers:
            return(pf.CanSupport);

        case tabID.admModels:
        case tabID.admManufacturers:
        case tabID.admAircraft:
        case tabID.admImages:
        case tabID.admAirports:
        case tabID.admProperties:
        case tabID.admEndorsements:
        case tabID.admAchievements:
        case tabID.admMisc:
            return(pf.CanManageData);

        case tabID.admFAQ:
            return(pf.CanSupport || pf.CanManageData);

        case tabID.admDonations:
            return(pf.CanManageMoney);

        case tabID.admStats:
            return(pf.CanReport);

        default:
            return(false);
        }
    }
        private void SetSidebarTab(tabID sidebarTab, string szPref)
        {
            switch (sidebarTab)
            {
            case tabID.pftAccount:
            case tabID.pftName:
            case tabID.pftPass:
            case tabID.pftQA:
                mvProfile.SetActiveView(vwAccount);
                Master.SelectedTab = tabID.pftAccount;
                break;

            case tabID.pftPrefs:
                mvProfile.SetActiveView(vwPrefs);
                break;

            case tabID.pftPilotInfo:
                mvProfile.SetActiveView(vwPilotInfo);
                break;

            // Backwards compatibility: we moved instructors/students/endorsements/signing to InstStudent, but may still be requested here.
            // Redirect for any of those
            case tabID.instEndorsements:
            case tabID.instSignFlights:
            case tabID.instStudents:
            case tabID.instInstructors:
                Response.Redirect(Request.Url.PathAndQuery.Replace("EditProfile.aspx", String.Format(CultureInfo.InvariantCulture, "Training.aspx/{0}", szPref)).Replace(String.Format(CultureInfo.InvariantCulture, "pref={0}", szPref), string.Empty).Replace("?&", "?"));
                break;

            case tabID.pftDonate:
                mvProfile.SetActiveView(vwDonate);
                break;
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            Profile pf = Profile.GetUser(Page.User.Identity.Name);

            CheckAdmin(pf.CanDoSomeAdmin);

            tabID sidebarTab = tabID.admUsers;

            if (!IsPostBack)
            {
                string szPage = util.GetStringParam(Request, "t");

                if (!String.IsNullOrEmpty(szPage))
                {
                    if (!Enum.TryParse <tabID>(szPage, out sidebarTab))
                    {
                        sidebarTab = tabID.admUsers;
                    }
                }

                CheckAdmin(IsAuthorizedForTab(sidebarTab, pf));

                switch (sidebarTab)
                {
                default:
                case tabID.admUsers:
                    mvAdmin.SetActiveView(vwUsers);
                    mvMain.SetActiveView(vwMainUsers);
                    break;

                case tabID.admManufacturers:
                    mvAdmin.SetActiveView(vwManufacturers);
                    mvMain.SetActiveView(vwMainManufacturers);
                    break;

                case tabID.admMisc:
                    mvAdmin.SetActiveView(vwMisc);
                    mvMain.SetActiveView(vwMainMisc);
                    DisplayMemStats();
                    break;

                case tabID.admModels:
                    mvAdmin.SetActiveView(vwModels);
                    mvMain.SetActiveView(vwMainModels);
                    RefreshDupeModels();
                    break;
                }

                hdnActiveTab.Value = sidebarTab.ToString();
            }
            else
            {
                sidebarTab = (tabID)Enum.Parse(typeof(tabID), hdnActiveTab.Value);
            }

            Master.SelectedTab = sidebarTab;
        }
 private void InitAccount(tabID sidebarTab)
 {
     txtFirst.Text    = m_pf.FirstName;
     txtLast.Text     = m_pf.LastName;
     txtEmail2.Text   = txtEmail.Text = m_pf.Email;
     lblQuestion.Text = m_pf.SecurityQuestion;
     txtAddress.Text  = m_pf.Address;
     accordianAccount.SelectedIndex = (sidebarTab == tabID.pftQA) ? 2 : (sidebarTab == tabID.pftPass ? 1 : 0);
 }
Beispiel #6
0
 /// <summary>
 /// Creates a new TabItem with specific parameters
 /// </summary>
 /// <param name="szLink">The link</param>
 /// <param name="tabID">The ID</param>
 /// <param name="szRoles">The roles, if any</param>
 public TabItem(string szLink, tabID id, string szRoles) : this()
 {
     Link = szLink;
     ID   = id;
     if (!String.IsNullOrEmpty(szRoles))
     {
         string[] rgRoles = szRoles.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
         foreach (string sz in rgRoles)
         {
             Roles.Add((ProfileRoles.UserRoles)Enum.Parse(typeof(ProfileRoles.UserRoles), sz));
         }
     }
 }
Beispiel #7
0
 private void InitAccount(tabID sidebarTab)
 {
     lblMemberSince.Text            = String.Format(CultureInfo.CurrentCulture, Resources.LocalizedText.MemberSince, m_pf.CreationDate);
     lblLastLogin.Text              = String.Format(CultureInfo.CurrentCulture, Resources.LocalizedText.MemberLastLogon, m_pf.LastLogon);
     lblLastActivity.Text           = String.Format(CultureInfo.CurrentCulture, Resources.LocalizedText.MemberLastActivity, m_pf.LastActivity);
     itemLastActivity.Visible       = m_pf.LastActivity.Date.CompareTo(m_pf.LastLogon.Date) != 0;
     lblPasswordStatus.Text         = m_pf.LastPasswordChange.CompareTo(m_pf.CreationDate) == 0 ? Resources.LocalizedText.MemberOriginalPassword : String.Format(CultureInfo.CurrentCulture, Resources.LocalizedText.MemberLastPassword, m_pf.LastPasswordChange);
     txtFirst.Text                  = m_pf.FirstName;
     txtLast.Text                   = m_pf.LastName;
     txtEmail2.Text                 = txtEmail.Text = m_pf.Email;
     lblQuestion.Text               = m_pf.SecurityQuestion;
     txtAddress.Text                = m_pf.Address;
     accordianAccount.SelectedIndex = (sidebarTab == tabID.pftQA) ? 2 : (sidebarTab == tabID.pftPass ? 1 : 0);
 }
Beispiel #8
0
        public TabList ChildTabList(tabID id)
        {
            TabList tl = new TabList();

            foreach (TabItem ti in Tabs)
            {
                if (ti.ID == id)
                {
                    tl.Tabs = ti.Children;
                    break;
                }
            }
            return(tl);
        }
Beispiel #9
0
        /// <summary>
        /// Returns the top-level tab associated with this tabID
        /// </summary>
        /// <param name="id">The ID to find</param>
        /// <returns>The top-level tab, or tabUnknown if not found.</returns>
        public tabID TopLevelTab(tabID id)
        {
            tabID tiResult = tabID.tabUnknown;

            foreach (TabItem ti in Tabs)
            {
                if (ti.ID == id || ContainsTab(ti.Children, id))
                {
                    return(ti.ID);
                }
            }

            return(tiResult);
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        m_pf = MyFlightbook.Profile.GetUser(User.Identity.Name);

        if (!Request.IsSecureConnection && !Request.IsLocal)
        {
            Response.Redirect(Request.Url.AbsoluteUri.Replace("http://", "https://"));
        }

        lblName.Text = String.Format(CultureInfo.CurrentCulture, Resources.Profile.EditProfileHeader, m_pf.UserFullName);

        this.Master.Title = String.Format(CultureInfo.CurrentCulture, Resources.LocalizedText.TitleProfile, Branding.CurrentBrand.AppName);

        // sidebar doesn't store it's state, so just set the currenttab each time.
        tabID sidebarTab = SetUpSidebar();

        Page.ClientScript.RegisterClientScriptInclude("ListDrag", ResolveClientUrl("~/Public/Scripts/listdrag.js?v=5"));

        if (!IsPostBack)
        {
            // Set pilot info validation group
            util.SetValidationGroup(mfbTypeInDateCFIExpiration, btnUpdatePilotInfo.ValidationGroup);
            util.SetValidationGroup(dateMedical, btnUpdatePilotInfo.ValidationGroup);

            // Set up per-section information
            switch (sidebarTab)
            {
            case tabID.pftAccount:
            case tabID.pftName:
            case tabID.pftPass:
            case tabID.pftQA:
                InitAccount(sidebarTab);
                break;

            case tabID.pftPilotInfo:
                InitPilotInfo();
                break;

            case tabID.pftPrefs:
                InitPrefs();
                break;

            case tabID.pftDonate:
                InitDonations();
                break;
            }
        }
    }
Beispiel #11
0
        private static bool IsAuthorizedForTab(tabID sidebarTab, Profile pf)
        {
            switch (sidebarTab)
            {
            case tabID.admUsers:
                return(pf.CanSupport);

            case tabID.admModels:
            case tabID.admManufacturers:
            case tabID.admAirports:
            case tabID.admMisc:
                return(pf.CanManageData);

            default:
                return(false);
            }
        }
        private void InitAccount(tabID sidebarTab)
        {
            lblMemberSince.Text            = String.Format(CultureInfo.CurrentCulture, Resources.LocalizedText.MemberSince, m_pf.CreationDate);
            lblLastLogin.Text              = String.Format(CultureInfo.CurrentCulture, Resources.LocalizedText.MemberLastLogon, m_pf.LastLogon);
            lblLastActivity.Text           = String.Format(CultureInfo.CurrentCulture, Resources.LocalizedText.MemberLastActivity, m_pf.LastActivity);
            itemLastActivity.Visible       = m_pf.LastActivity.Date.CompareTo(m_pf.LastLogon.Date) != 0;
            lblPasswordStatus.Text         = m_pf.LastPasswordChange.CompareTo(m_pf.CreationDate) == 0 ? Resources.LocalizedText.MemberOriginalPassword : String.Format(CultureInfo.CurrentCulture, Resources.LocalizedText.MemberLastPassword, m_pf.LastPasswordChange);
            txtFirst.Text                  = m_pf.FirstName;
            txtFirst.Attributes["oninput"] = "javascript:updateGreeting(this);";
            txtLast.Text              = m_pf.LastName;
            lblStaticEmail.Text       = HttpUtility.HtmlEncode(txtEmail2.Text = txtEmail.Text = m_pf.Email);
            wmeGreeting.WatermarkText = String.IsNullOrEmpty(m_pf.FirstName) ? Resources.Profile.accountPreferredGreetingWatermark : m_pf.FirstName;
            string szPreferredGreeting = m_pf.PreferredGreeting.Trim();

            if (szPreferredGreeting.CompareCurrentCultureIgnoreCase(m_pf.UserFirstName.Trim()) == 0)
            {
                txtPreferredGreeting.Text = string.Empty;
                lblFullName.Text          = HttpUtility.HtmlEncode(m_pf.UserFullName);
            }
            else
            {
                txtPreferredGreeting.Text = szPreferredGreeting;
                lblFullName.Text          = HttpUtility.HtmlEncode(String.Format(CultureInfo.CurrentCulture, "{0} ({1})", m_pf.UserFullName, szPreferredGreeting));
            }
            lblQuestion.Text = HttpUtility.HtmlEncode(m_pf.SecurityQuestion);
            lblAddress.Text  = HttpUtility.HtmlEncode(txtAddress.Text = m_pf.Address);
            dateDOB.Date     = m_pf.DateOfBirth ?? DateTime.MinValue;
            accordianAccount.SelectedIndex = (sidebarTab == tabID.pftQA) ? 2 : (sidebarTab == tabID.pftPass ? 1 : 0);

            string szEmailVerify = util.GetStringParam(Request, "ve");

            if (!String.IsNullOrEmpty(szEmailVerify))
            {
                if (m_pf.VerifyEmail(szEmailVerify, out string verifiedEmail, out string szerr))
                {
                    m_pf.AddVerifiedEmail(verifiedEmail);
                    lblVerifyResult.Text     = HttpUtility.HtmlEncode(String.Format(CultureInfo.CurrentCulture, Resources.Profile.accountVerifyValidated, verifiedEmail));
                    lblVerifyResult.CssClass = "success";
                }
                else
                {
                    lblVerifyResult.Text     = szerr;
                    lblVerifyResult.CssClass = "error";
                }
            }
    private void InitAccount(tabID sidebarTab)
    {
        lblMemberSince.Text            = String.Format(CultureInfo.CurrentCulture, Resources.LocalizedText.MemberSince, m_pf.CreationDate);
        lblLastLogin.Text              = String.Format(CultureInfo.CurrentCulture, Resources.LocalizedText.MemberLastLogon, m_pf.LastLogon);
        lblLastActivity.Text           = String.Format(CultureInfo.CurrentCulture, Resources.LocalizedText.MemberLastActivity, m_pf.LastActivity);
        itemLastActivity.Visible       = m_pf.LastActivity.Date.CompareTo(m_pf.LastLogon.Date) != 0;
        lblPasswordStatus.Text         = m_pf.LastPasswordChange.CompareTo(m_pf.CreationDate) == 0 ? Resources.LocalizedText.MemberOriginalPassword : String.Format(CultureInfo.CurrentCulture, Resources.LocalizedText.MemberLastPassword, m_pf.LastPasswordChange);
        txtFirst.Text                  = m_pf.FirstName;
        txtFirst.Attributes["oninput"] = "javascript:updateGreeting(this);";
        txtLast.Text              = m_pf.LastName;
        lblStaticEmail.Text       = txtEmail2.Text = txtEmail.Text = m_pf.Email;
        wmeGreeting.WatermarkText = String.IsNullOrEmpty(m_pf.FirstName) ? Resources.Profile.accountPreferredGreetingWatermark : m_pf.FirstName;
        string szPreferredGreeting = m_pf.PreferredGreeting.Trim();

        if (szPreferredGreeting.CompareCurrentCultureIgnoreCase(m_pf.UserFirstName.Trim()) == 0)
        {
            txtPreferredGreeting.Text = string.Empty;
            lblFullName.Text          = m_pf.UserFullName;
        }
        else
        {
            txtPreferredGreeting.Text = szPreferredGreeting;
            lblFullName.Text          = String.Format(CultureInfo.CurrentCulture, "{0} ({1})", m_pf.UserFullName, szPreferredGreeting);
        }
        lblQuestion.Text = m_pf.SecurityQuestion;
        lblAddress.Text  = txtAddress.Text = m_pf.Address;
        accordianAccount.SelectedIndex = (sidebarTab == tabID.pftQA) ? 2 : (sidebarTab == tabID.pftPass ? 1 : 0);

        if (m_pf.PreferenceExists(MFBConstants.keyTFASettings))
        {
            mvBigRedButtons.SetActiveView(vwStaticRedButtons);
            tfaBRB.AuthCode = m_pf.GetPreferenceForKey(MFBConstants.keyTFASettings) as string;
        }
        else
        {
            mvBigRedButtons.SetActiveView(vwRedButtons);
        }

        fuHdSht.Attributes["onchange"] = "javascript:hdshtUpdated();";
        SetHeadShot();
        txtCell.Text = m_pf.MobilePhone;
    }
Beispiel #14
0
        /// <summary>
        /// Determines if the specified list contains the specified tab somewhere in its children
        /// </summary>
        /// <param name="lst">The list of tabitems</param>
        /// <param name="id">The ID to find</param>
        /// <returns>True if it does</returns>
        static public bool ContainsTab(IEnumerable <TabItem> lst, tabID id)
        {
            if (lst == null)
            {
                throw new ArgumentNullException("lst");
            }
            foreach (TabItem ti in lst)
            {
                if (ti.ID == id)
                {
                    return(true);
                }
                if (ContainsTab(ti.Children, id))
                {
                    return(true);
                }
            }

            return(false);
        }
        private tabID SetUpSidebar()
        {
            tabID sidebarTab = tabID.tabUnknown;

            string szPrefPath = String.IsNullOrWhiteSpace(Request.PathInfo) ? string.Empty : Request.PathInfo.Substring(1);

            string[] rgPrefPath = szPrefPath.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
            string   szPref     = util.GetStringParam(Request, "pref");

            if (rgPrefPath.Length > 0 && !String.IsNullOrEmpty(rgPrefPath[0]) && Enum.TryParse(rgPrefPath[0], out tabID tid))
            {
                sidebarTab = tid;
            }

            if (sidebarTab == tabID.tabUnknown && !String.IsNullOrEmpty(szPref))
            {
                // Backwards compatibility - redirect if using the szPref method
                if (Enum.TryParse(szPref, out tabID tid2))
                {
                    sidebarTab = tid2;

                    // Redirect now using PathInfo scheme
                    string szNew = Request.Url.PathAndQuery.Replace(".aspx", String.Format(CultureInfo.InvariantCulture, ".aspx/{0}", szPref)).Replace(String.Format(CultureInfo.InvariantCulture, "pref={0}", szPref), string.Empty).Replace("?&", "?");
                    Response.Redirect(szNew, true);
                    return(sidebarTab);
                }
            }

            if (sidebarTab == tabID.tabUnknown)
            {
                sidebarTab = HandleUnknownSidebar(szPref);
            }

            this.Master.SelectedTab = sidebarTab;

            SetSidebarTab(sidebarTab, szPref);

            return(sidebarTab);
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        m_pf = MyFlightbook.Profile.GetUser(User.Identity.Name);

        if (!Request.IsSecureConnection && !Request.IsLocal)
        {
            Response.Redirect(Request.Url.AbsoluteUri.Replace("http://", "https://"));
        }

        lblName.Text = String.Format(CultureInfo.CurrentCulture, Resources.Profile.TrainingHeader, m_pf.UserFullName);

        this.Master.Title = String.Format(CultureInfo.CurrentCulture, Resources.LocalizedText.TitleTraining, Branding.CurrentBrand.AppName);

        // sidebar doesn't store it's state, so just set the currenttab each time.
        tabID sidebarTab = tabID.tabUnknown;

        string szPrefPath = String.IsNullOrWhiteSpace(Request.PathInfo) ? string.Empty : Request.PathInfo.Substring(1);

        string[] rgPrefPath = szPrefPath.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);

        if (rgPrefPath.Length > 0 && !String.IsNullOrEmpty(rgPrefPath[0]) && Enum.TryParse <tabID>(rgPrefPath[0], out tabID tabid))
        {
            sidebarTab = tabid;
        }

        if (sidebarTab == tabID.tabUnknown)
        {
            sidebarTab = tabID.instInstructors;
        }

        this.Master.SelectedTab = sidebarTab;

        switch (sidebarTab)
        {
        case tabID.instEndorsements:
            mvProfile.SetActiveView(vwEndorsements);
            break;

        case tabID.instSignFlights:
            mvProfile.SetActiveView(vwSignFlights);
            break;

        case tabID.instStudents:
            mvProfile.SetActiveView(vwStudents);
            break;

        case tabID.instInstructors:
            mvProfile.SetActiveView(vwInstructors);
            break;
        }

        if (!IsPostBack)
        {
            switch (sidebarTab)
            {
            case tabID.instEndorsements:
                if (Request.IsMobileDevice())
                {
                    mfbIlEndorsements.Columns = 1;
                }
                mfbIlEndorsements.Key = User.Identity.Name;
                mfbIlEndorsements.Refresh();

                mfbEndorsementList1.Student = Page.User.Identity.Name;
                mfbEndorsementList1.RefreshEndorsements();

                if (!Request.IsMobileDeviceOrTablet())
                {
                    mfbMultiFileUpload1.Mode = Controls_mfbMultiFileUpload.UploadMode.Ajax;
                }

                lnkPrintFriendly.NavigateUrl = String.Format(CultureInfo.InvariantCulture, "{0}?naked=1&print=1", Request.Url.AbsolutePath);
                if (util.GetIntParam(Request, "print", 0) != 0)
                {
                    lnkPrintFriendly.Visible = mfbIlEndorsements.Visible = mfbMultiFileUpload1.Visible = false;
                    List <MyFlightbook.Image.MFBImageInfo> lstInlineImages = new List <MyFlightbook.Image.MFBImageInfo>(mfbIlEndorsements.Images.ImageArray);
                    lstInlineImages.RemoveAll(mfbii => mfbii.ImageType != MyFlightbook.Image.MFBImageInfo.ImageFileType.JPEG);
                    rptEndorsementImages.DataSource = lstInlineImages;
                    rptEndorsementImages.DataBind();
                }
                break;

            case tabID.instSignFlights:
                RefreshFlightsToBeSigned();
                break;

            case tabID.instStudents:
                SetUpStudents();
                break;
            }
        }

        // Need to do these on every page load to recreate links, etc.
        switch (sidebarTab)
        {
        case tabID.instSignFlights:
        case tabID.instStudents:
        case tabID.instInstructors:
        case tabID.instEndorsements:
            this.Master.ShowSponsoredAd = false;
            m_sm = new CFIStudentMap(User.Identity.Name);
            RefreshStudentsAndInstructors();
            break;
        }
    }
Beispiel #17
0
    protected void Page_Load(object sender, EventArgs e)
    {
        Profile pf = MyFlightbook.Profile.GetUser(Page.User.Identity.Name);

        if (!pf.CanDoSomeAdmin)
        {
            RejectUser();
        }

        tabID sidebarTab = tabID.admUsers;

        if (!IsPostBack)
        {
            string szPage = util.GetStringParam(Request, "t");

            if (!String.IsNullOrEmpty(szPage))
            {
                if (!Enum.TryParse <tabID>(szPage, out sidebarTab))
                {
                    sidebarTab = tabID.admUsers;
                }
            }

            if (!IsAuthorizedForTab(sidebarTab, pf))
            {
                RejectUser();
                return;
            }

            switch (sidebarTab)
            {
            default:
            case tabID.admUsers:
                mvAdmin.SetActiveView(vwUsers);
                mvMain.SetActiveView(vwMainUsers);
                break;

            case tabID.admEndorsements:
                mvAdmin.SetActiveView(vwEndorsementTemplates);
                mvMain.SetActiveView(vwMainEndorsements);
                break;

            case tabID.admImages:
                mvAdmin.SetActiveView(vwImages);
                mvMain.SetActiveView(vwMainImages);
                btnDeleteS3Debug.Visible = AWSConfiguration.UseDebugBucket;
                break;

            case tabID.admManufacturers:
                mvAdmin.SetActiveView(vwManufacturers);
                mvMain.SetActiveView(vwMainManufacturers);
                break;

            case tabID.admMisc:
                mvAdmin.SetActiveView(vwMisc);
                mvMain.SetActiveView(vwMainMisc);
                break;

            case tabID.admModels:
                mvAdmin.SetActiveView(vwModels);
                mvMain.SetActiveView(vwMainModels);
                break;

            case tabID.admProperties:
                mvAdmin.SetActiveView(vwProperties);
                mvMain.SetActiveView(vwMainProperties);
                break;

            case tabID.admAircraft:
                ScriptManager.GetCurrent(this).AsyncPostBackTimeout = 1500;      // use a long timeout
                mvAdmin.SetActiveView(vwAircraft);
                mvMain.SetActiveView(vwMainAircraft);
                break;

            case tabID.admDonations:
                mvAdmin.SetActiveView(vwDonations);
                mvMain.SetActiveView(vwMainDonations);
                RefreshDonations();

                util.SetValidationGroup(pnlTestTransaction, "valTestTransaction");
                dateTestTransaction.Date = DateTime.Now;
                break;

            case tabID.admAchievements:
                mvAdmin.SetActiveView(vwAchievements);
                mvMain.SetActiveView(vwMainAchievements);
                break;
            }

            hdnActiveTab.Value = sidebarTab.ToString();
        }
        else
        {
            sidebarTab = (tabID)Enum.Parse(typeof(tabID), hdnActiveTab.Value);
        }

        Master.SelectedTab = sidebarTab;
    }
Beispiel #18
0
        public static string Description(this tabID id)
        {
            switch (id)
            {
            default:
                throw new ArgumentOutOfRangeException(nameof(id));

            case tabID.tabUnknown:
                return(string.Empty);

            case tabID.tabHome:
                return(Resources.Tabs.TabHome);

            case tabID.tabLogbook:
                return(Resources.Tabs.TabLogbook);

            case tabID.tabAircraft:
                return(Resources.Tabs.TabAircraft);

            case tabID.tabMaps:
                return(Resources.Tabs.TabAirports);

            case tabID.tabTraining:
                return(Resources.Tabs.TabInstruction);

            case tabID.tabProfile:
                return(Resources.Tabs.TabProfile);

            case tabID.tabAdmin:
                return(Resources.Tabs.TabAdmin);

            //Logbook
            case tabID.lbtAddNew:
                return(Resources.Tabs.LogbookAdd);

            case tabID.lbtFindFlights:
                return(Resources.Tabs.LogbookFind);

            case tabID.lbtTotals:
                return(Resources.Tabs.LogbookTotals);

            case tabID.lbtCurrency:
                return(Resources.Tabs.LogbookCurrency);

            case tabID.lbtTrends:
                return(Resources.Tabs.LogbookAnalysis);

            case tabID.lbtDownload:
                return(Resources.Tabs.LogbookDownload);

            case tabID.lbtImport:
                return(Resources.Tabs.LogbookImport);

            case tabID.lbtStartingTotals:
                return(Resources.Tabs.LogbookStartingTotals);

            case tabID.lbtPrintView:
                return(Resources.Tabs.LogbookPrintView);

            case tabID.lbtPending:
                return(Resources.Tabs.LogbookPending);

            case tabID.lbtCheckFlights:
                return(Resources.Tabs.LogbookCheckFlights);

            // Profile
            case tabID.pftAccount:
                return(Resources.Tabs.ProfileAccount);

            case tabID.pftPrefs:
                return(Resources.Tabs.ProfilePreferences);

            case tabID.pftPilotInfo:
                return(Resources.Tabs.ProfilePilotInformation);

            case tabID.pftDonate:
                return(Resources.Tabs.ProfileDonate);

            case tabID.pftName:
                return(Resources.Tabs.ProfileName);

            case tabID.pftPass:
                return(Resources.Tabs.ProfilePassword);

            case tabID.pftQA:
                return(Resources.Tabs.ProfileQA);

            // Training
            case tabID.instEndorsements:
                return(Resources.Tabs.InstructionEndorsements);

            case tabID.instSignFlights:
                return(Resources.Tabs.InstructionSignedFlights);

            case tabID.instStudents:
                return(Resources.Tabs.InstructionStudents);

            case tabID.instInstructors:
                return(Resources.Tabs.InstructionInstructors);

            case tabID.instProgressTowardsMilestones:
                return(Resources.Tabs.InstructionProgress);

            case tabID.instAchievements:
                return(Resources.Tabs.InstructionAchievements);

            case tabID.inst8710:
                return(Resources.Tabs.Instruction8710);

            case tabID.instModelRollup:
                return(Resources.Tabs.InstructionRollupModel);

            case tabID.instTimeRollup:
                return(Resources.Tabs.InstructionRollupTime);

            // Map
            case tabID.mptRoute:
                return(Resources.Tabs.MapRoutes);

            case tabID.mptFindAirport:
                return(Resources.Tabs.MapFind);

            case tabID.mptAddAirports:
                return(Resources.Tabs.MapAdd);

            case tabID.mptVisited:
                return(Resources.Tabs.MapVisited);

            case tabID.mptQuiz:
                return(Resources.Tabs.MapQuiz);

            // Aircraft
            case tabID.actMyAircraft:
                return(Resources.Tabs.MyAircraft);

            case tabID.actImportAircraft:
                return(Resources.Tabs.ImportAircraft);

            case tabID.actMakes:
                return(Resources.Tabs.TabMakes);

            case tabID.actMyClubs:
                return(Resources.Tabs.Clubs);

            // Admin Tabs
            case tabID.admUsers:
                return(Resources.Tabs.AdminUsers);

            case tabID.admModels:
                return(Resources.Tabs.AdminModels);

            case tabID.admProperties:
                return(Resources.Tabs.AdminProperties);

            case tabID.admStats:
                return(Resources.Tabs.AdminStats);

            case tabID.admManufacturers:
                return(Resources.Tabs.AdminManufacturers);

            case tabID.admImages:
                return(Resources.Tabs.AdminImages);

            case tabID.admAirports:
                return(Resources.Tabs.AdminAirports);

            case tabID.admEndorsements:
                return(Resources.Tabs.AdminEndorsements);

            case tabID.admFAQ:
                return(Resources.Tabs.AdminFAQ);

            case tabID.admAircraft:
                return(Resources.Tabs.AdminAircraft);

            case tabID.admDonations:
                return(Resources.Tabs.AdminDonations);

            case tabID.admAchievements:
                return(Resources.Tabs.AdminAchievements);

            case tabID.admMisc:
                return(Resources.Tabs.AdminMisc);

            case tabID.admTelemetry:
                return(Resources.Tabs.AdminTelemetry);
            }
        }
Beispiel #19
0
 public TabClickedEventArgs(tabID tid = tabID.tabHome)
     : base()
 {
     TabID = tid;
 }
    private tabID SetUpSidebar()
    {
        tabID sidebarTab = tabID.tabUnknown;

        string szPrefPath = String.IsNullOrWhiteSpace(Request.PathInfo) ? string.Empty : Request.PathInfo.Substring(1);

        string[] rgPrefPath = szPrefPath.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
        string   szPref     = util.GetStringParam(Request, "pref");

        if (rgPrefPath.Length > 0 && !String.IsNullOrEmpty(rgPrefPath[0]))
        {
            try { sidebarTab = (tabID)Enum.Parse(typeof(tabID), rgPrefPath[0]); }
            catch (ArgumentException) { }
            catch (OverflowException) { }
        }

        if (sidebarTab == tabID.tabUnknown && !String.IsNullOrEmpty(szPref))
        {
            // Backwards compatibility - redirect if using the szPref method
            try
            {
                sidebarTab = (tabID)Enum.Parse(typeof(tabID), szPref);

                // Redirect now using PathInfo scheme
                string szNew = Request.Url.PathAndQuery.Replace(".aspx", String.Format(CultureInfo.InvariantCulture, ".aspx/{0}", szPref)).Replace(String.Format(CultureInfo.InvariantCulture, "pref={0}", szPref), string.Empty).Replace("?&", "?");
                Response.Redirect(szNew, true);
                return(sidebarTab);
            }
            catch (ArgumentException) { }
            catch (OverflowException) { }
        }

        if (sidebarTab == tabID.tabUnknown)
        {
            // have a less fragile way of linking.
            switch (szPref)
            {
            default:
            case "name":
                sidebarTab = tabID.pftName;
                break;

            case "pass":
                sidebarTab = tabID.pftPass;
                break;

            case "qa":
                sidebarTab = tabID.pftQA;
                break;

            case "pref":
            case "email":
                sidebarTab = tabID.pftPrefs;
                break;

            case "pilotinfo":
                sidebarTab = tabID.pftPilotInfo;
                break;

            case "instruction":
                sidebarTab = tabID.instEndorsements;
                break;
            }
        }

        this.Master.SelectedTab = sidebarTab;

        switch (sidebarTab)
        {
        case tabID.pftAccount:
        case tabID.pftName:
        case tabID.pftPass:
        case tabID.pftQA:
            mvProfile.SetActiveView(vwAccount);
            this.Master.SelectedTab = tabID.pftAccount;
            break;

        case tabID.pftPrefs:
            mvProfile.SetActiveView(vwPrefs);
            break;

        case tabID.pftPilotInfo:
            mvProfile.SetActiveView(vwPilotInfo);
            break;

        // Backwards compatibility: we moved instructors/students/endorsements/signing to InstStudent, but may still be requested here.
        // Redirect for any of those
        case tabID.instEndorsements:
        case tabID.instSignFlights:
        case tabID.instStudents:
        case tabID.instInstructors:
            Response.Redirect(Request.Url.PathAndQuery.Replace("EditProfile.aspx", String.Format(CultureInfo.InvariantCulture, "Training.aspx/{0}", szPref)).Replace(String.Format(CultureInfo.InvariantCulture, "pref={0}", szPref), string.Empty).Replace("?&", "?"));
            break;

        case tabID.pftDonate:
            mvProfile.SetActiveView(vwDonate);
            break;
        }

        return(sidebarTab);
    }