Back to Home

ESO Lua File v101041

pregameandingame/optionspanels/optionspanel_account_shared.lua

[◄ back to folders ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
-----------------------------------------
-- Shared Account Options Panel Functions and Data
-----------------------------------------
-------------------------
-- Utility Functions
-------------------------
local g_serviceType = GetPlatformServiceType()
    if g_serviceType == PLATFORM_SERVICE_TYPE_DMM then
        return false
    end
    return ZO_IsConsolePlatform() or IsInUI("pregame")
end
local function HasActivatedEmail()
    if IsInUI("pregame") then
        return HasActivatedEmailInPregame()
    elseif ZO_IsConsolePlatform() then
        return HasActivatedEmailOnConsole()
    else
        return false
    end
end
    if IsInUI("pregame") or ZO_IsConsolePlatform() then
        return GetSecureSetting(SETTING_TYPE_ACCOUNT, ACCOUNT_SETTING_ACCOUNT_EMAIL)
    else
        return ""
    end
end
    return IsDeferredSettingLoaded(SETTING_TYPE_ACCOUNT, ACCOUNT_SETTING_ACCOUNT_EMAIL) and not HasActivatedEmail() and ZO_OptionsPanel_GetAccountEmail() ~= ""
end
-------------------------------------
-- Setup Account Settings Data
-------------------------------------
local ZO_Panel_Account_ControlData =
{
    [SETTING_TYPE_CUSTOM] =
    {
        [OPTIONS_CUSTOM_SETTING_RESEND_EMAIL_ACTIVATION] =
        {
            controlType = OPTIONS_INVOKE_CALLBACK,
            panel = SETTING_PANEL_ACCOUNT,
            text = SI_INTERFACE_OPTIONS_ACCOUNT_RESEND_ACTIVATION,
            gamepadCustomTooltipFunction = function(tooltip, text)
                GAMEPAD_TOOLTIPS:LayoutSettingAccountResendActivation(tooltip, HasActivatedEmail(), ZO_OptionsPanel_GetAccountEmail())
            end,
            callback = function()
                RequestResendAccountEmailVerification()
            end,
        },
    },
    [SETTING_TYPE_ACCOUNT] =
    {
        [ACCOUNT_SETTING_ACCOUNT_EMAIL] =
        {
            controlType = OPTIONS_INVOKE_CALLBACK,
            system = SETTING_TYPE_ACCOUNT,
            settingId = ACCOUNT_SETTING_ACCOUNT_EMAIL,
            panel = SETTING_PANEL_ACCOUNT,
            text = SI_INTERFACE_OPTIONS_ACCOUNT_CHANGE_EMAIL,
            gamepadCustomTooltipFunction = function(tooltip, text)
                GAMEPAD_TOOLTIPS:LayoutSettingAccountResendActivation(tooltip, HasActivatedEmail(), ZO_OptionsPanel_GetAccountEmail())
            end,
            -- If this setting doesn't exist, we won't attempt to load it, which would mean
            -- OPTIONS_CUSTOM_SETTING_RESEND_EMAIL_ACTIVATION could never be able to show
            visible = false,
            callback = function()
                if IsInGamepadPreferredMode() then
                    local data =
                    {
                        finishedCallback = function()
                            GAMEPAD_OPTIONS:RefreshOptionsList()
                        end,
                    }
                    ZO_Dialogs_ShowGamepadDialog("ZO_OPTIONS_GAMEPAD_EDIT_EMAIL_DIALOG", data)
                else
                    ZO_Dialogs_ShowDialog("ZO_OPTIONS_KEYBOARD_EDIT_EMAIL_DIALOG")
                end
            end,
        },
        [ACCOUNT_SETTING_GET_UPDATES] =
        {
            controlType = OPTIONS_CHECKBOX,
            system = SETTING_TYPE_ACCOUNT,
            settingId = ACCOUNT_SETTING_GET_UPDATES,
            panel = SETTING_PANEL_ACCOUNT,
            text = SI_INTERFACE_OPTIONS_ACCOUNT_GET_UPDATES,
            tooltipText = function()
                if not IsConsoleUI() then
                    if HasActivatedEmail() then
                        return GetString(SI_INTERFACE_OPTIONS_ACCOUNT_GET_UPDATES_TOOLTIP_TEXT)
                    else
                        return zo_strformat(SI_KEYBOARD_INTERFACE_OPTIONS_ACCOUNT_GET_UPDATES_TOOLTIP_WARNING_FORMAT, GetString(SI_INTERFACE_OPTIONS_ACCOUNT_GET_UPDATES_TOOLTIP_TEXT), GetString(SI_INTERFACE_OPTIONS_ACCOUNT_NEED_ACTIVE_ACCOUNT_WARNING))
                    end
                end
            end,
            SetSettingOverride = function(control, value)
                SetSecureSetting(control.data.system, control.data.settingId, tostring(value))
            end,
            GetSettingOverride = function(control)
                return GetSecureSetting_Bool(control.data.system, control.data.settingId)
            end,
            gamepadCustomTooltipFunction = function(tooltip, text)
                GAMEPAD_TOOLTIPS:LayoutSettingAccountGetUpdates(tooltip, HasActivatedEmail())
            end,
            enabled = function()
                return HasActivatedEmail()
            end,
            gamepadIsEnabledCallback = function()
                return HasActivatedEmail()
            end,
        }
    }
}
ZO_SharedOptions.AddTableToPanel(SETTING_PANEL_ACCOUNT, ZO_Panel_Account_ControlData)
------------------------------------------
-- Register for account settings events
------------------------------------------
    local function OnAccountManagementRequestUnsuccessful(eventId, resultMessage)
        ZO_Dialogs_ShowPlatformDialog("ACCOUNT_MANAGEMENT_REQUEST_FAILED", { mainText = resultMessage })
    end
    EVENT_MANAGER:RegisterForEvent("AccountManagement", EVENT_UNSUCCESSFUL_REQUEST_RESULT, OnAccountManagementRequestUnsuccessful)
    local function OnAccountManagementActivationEmailSent(eventId, resultMessage)
        ZO_Dialogs_ShowPlatformDialog("ACCOUNT_MANAGEMENT_ACTIVATION_EMAIL_SENT")
    end
    EVENT_MANAGER:RegisterForEvent("AccountManagement", EVENT_ACCOUNT_EMAIL_ACTIVATION_EMAIL_SENT, OnAccountManagementActivationEmailSent)
end