Split settings into multiple files
This commit is contained in:
parent
52f3579809
commit
adaf9e4102
63
pages/settings/accounts.pixy
Normal file
63
pages/settings/accounts.pixy
Normal file
@ -0,0 +1,63 @@
|
||||
component SettingsAccounts(user *arn.User)
|
||||
SettingsTabs
|
||||
|
||||
h1.page-title Accounts settings
|
||||
|
||||
.settings
|
||||
.widget.mountable(data-api="/api/user/" + user.ID)
|
||||
h3.widget-title
|
||||
Icon("cubes")
|
||||
span Accounts
|
||||
|
||||
InputText("Accounts.AniList.Nick", user.Accounts.AniList.Nick, "AniList", "Your username on anilist.co")
|
||||
InputText("Accounts.MyAnimeList.Nick", user.Accounts.MyAnimeList.Nick, "MyAnimeList", "Your username on myanimelist.net")
|
||||
InputText("Accounts.Kitsu.Nick", user.Accounts.Kitsu.Nick, "Kitsu", "Your username on kitsu.io")
|
||||
InputText("Accounts.Osu.Nick", user.Accounts.Osu.Nick, "Osu", "Your username on osu.ppy.sh")
|
||||
InputText("Accounts.Overwatch.BattleTag", user.Accounts.Overwatch.BattleTag, "Overwatch", "Your battletag on Overwatch")
|
||||
//- InputText("Accounts.AnimePlanet.Nick", user.Accounts.AnimePlanet.Nick, "AnimePlanet", "Your username on anime-planet.com")
|
||||
|
||||
.widget.mountable
|
||||
h3.widget-title
|
||||
Icon("user-plus")
|
||||
span Connect
|
||||
|
||||
.widget-section.social-account
|
||||
label(for="google") Google:
|
||||
|
||||
a#google.button.social-account-button(href="/auth/google", data-ajax="false")
|
||||
if user.Accounts.Google.ID != ""
|
||||
Icon("check")
|
||||
span Connected
|
||||
else
|
||||
Icon("circle-o")
|
||||
span Not connected
|
||||
|
||||
.widget-section.social-account
|
||||
label(for="facebook") Facebook:
|
||||
|
||||
a#facebook.button.social-account-button(href="/auth/facebook", data-ajax="false")
|
||||
if user.Accounts.Facebook.ID != ""
|
||||
Icon("check")
|
||||
span Connected
|
||||
else
|
||||
Icon("circle-o")
|
||||
span Not connected
|
||||
|
||||
.widget.mountable
|
||||
h3.widget-title
|
||||
Icon("download")
|
||||
span Import
|
||||
|
||||
ImportLists(user)
|
||||
|
||||
if len(user.AnimeList().Items) > 0
|
||||
.widget.mountable
|
||||
h3.widget-title
|
||||
Icon("upload")
|
||||
span Export
|
||||
|
||||
.widget-section
|
||||
label JSON:
|
||||
a.button(href="/api/animelist/" + user.ID, target="_blank")
|
||||
Icon("upload")
|
||||
span Export anime list as JSON
|
34
pages/settings/apps.pixy
Normal file
34
pages/settings/apps.pixy
Normal file
@ -0,0 +1,34 @@
|
||||
component SettingsApps(user *arn.User)
|
||||
SettingsTabs
|
||||
|
||||
h1.page-title App settings
|
||||
|
||||
.settings
|
||||
.widget.mountable
|
||||
h3.widget-title
|
||||
Icon("puzzle-piece")
|
||||
span Apps
|
||||
|
||||
.widget-section
|
||||
label Chrome Extension:
|
||||
button.action(data-action="installExtension", data-trigger="click")
|
||||
Icon("chrome")
|
||||
span Get the Chrome Extension
|
||||
|
||||
.widget-section
|
||||
label Firefox Extension:
|
||||
a.button(href="https://addons.mozilla.org/en-US/firefox/addon/anime-notifier/", target="_blank", rel="nofollow")
|
||||
Icon("firefox")
|
||||
span Get the Firefox Extension
|
||||
|
||||
.widget-section
|
||||
label Android Web App:
|
||||
a.button(href="https://www.youtube.com/watch?v=opyt4cw0ep8", target="_blank", rel="noopener")
|
||||
Icon("android")
|
||||
span Get the Android Web App
|
||||
|
||||
.widget-section
|
||||
label Desktop Web App:
|
||||
button.action(data-action="installApp", data-trigger="click")
|
||||
Icon("desktop")
|
||||
span Get the Desktop Web App
|
26
pages/settings/formatting.pixy
Normal file
26
pages/settings/formatting.pixy
Normal file
@ -0,0 +1,26 @@
|
||||
component SettingsFormatting(user *arn.User)
|
||||
SettingsTabs
|
||||
|
||||
h1.page-title Formatting settings
|
||||
|
||||
.settings
|
||||
.widget.mountable(data-api="/api/settings/" + user.ID)
|
||||
h3.widget-title
|
||||
Icon("font")
|
||||
span Formatting
|
||||
|
||||
.widget-section
|
||||
label(for="Theme")= "Theme:"
|
||||
select.widget-ui-element.action(id="Theme", data-field="Theme", value=user.Settings().Theme, title="Language of anime titles", data-action="save", data-trigger="change")
|
||||
option(value="light") Light
|
||||
option(value="dark") Dark
|
||||
|
||||
.widget-section
|
||||
label(for="TitleLanguage")= "Title language:"
|
||||
select.widget-ui-element.action(id="TitleLanguage", data-field="TitleLanguage", value=user.Settings().TitleLanguage, title="Language of anime titles", data-action="save", data-trigger="change")
|
||||
option(value="canonical") Canonical
|
||||
option(value="english") English
|
||||
option(value="romaji") Romaji
|
||||
option(value="japanese") 日本語
|
||||
|
||||
InputNumber("Format.RatingsPrecision", float64(user.Settings().Format.RatingsPrecision), "Ratings precision", "How many decimals after the comma would you like to display in ratings on anime pages?", "0", "2", "1")
|
50
pages/settings/notifications.pixy
Normal file
50
pages/settings/notifications.pixy
Normal file
@ -0,0 +1,50 @@
|
||||
component SettingsNotifications(user *arn.User)
|
||||
SettingsTabs
|
||||
|
||||
h1.page-title Notification settings
|
||||
|
||||
.settings
|
||||
.widget.mountable
|
||||
h3.widget-title
|
||||
Icon("bell")
|
||||
span Instant notifications
|
||||
|
||||
#enable-notifications.widget-section
|
||||
label Instant notifications:
|
||||
button.action(data-action="enableNotifications", data-trigger="click")
|
||||
Icon("toggle-off")
|
||||
span OFF
|
||||
|
||||
#disable-notifications.widget-section.hidden
|
||||
label Instant notifications:
|
||||
button.action(data-action="disableNotifications", data-trigger="click")
|
||||
Icon("toggle-on")
|
||||
span ON
|
||||
|
||||
#test-notification.widget-section
|
||||
label Test:
|
||||
button.action(data-action="testNotification", data-trigger="click")
|
||||
Icon("paper-plane")
|
||||
span Send test notification
|
||||
|
||||
.footer
|
||||
p(title="This setting is not account bound, instead it is bound to your browser.") You can customize this setting on every device you own.
|
||||
|
||||
.widget.mountable(data-api="/api/settings/" + user.ID)
|
||||
h3.widget-title
|
||||
Icon("filter")
|
||||
span Filter
|
||||
|
||||
InputBool("Notification.AnimeEpisodeReleases", user.Settings().Notification.AnimeEpisodeReleases, "New episodes", "Notifications about new episodes")
|
||||
InputBool("Notification.AnimeFinished", user.Settings().Notification.AnimeFinished, "Finished anime series", "Notifications about finished anime series")
|
||||
//- InputBool("Notification.NewFollowers", user.Settings().Notification.NewFollowers, "New followers", "Notifications about new followers")
|
||||
|
||||
//- .widget.mountable(data-api="/api/settings/" + user.ID)
|
||||
//- h3.widget-title
|
||||
//- Icon("heart")
|
||||
//- span Likes
|
||||
|
||||
//- InputBool("Notification.ForumLikes", user.Settings().Notification.ForumLikes, "Forum post likes", "Notifications about forum post likes")
|
||||
//- InputBool("Notification.SoundTrackLikes", user.Settings().Notification.SoundTrackLikes, "Soundtrack likes", "Notifications about soundtrack likes")
|
||||
//- //- InputBool("Notification.GroupPostLikes", user.Settings().Notification.GroupPostLikes, "Group post likes", "Notifications about group post likes")
|
||||
//- InputBool("Notification.QuoteLikes", user.Settings().Notification.QuoteLikes, "Quote likes", "Notifications about quote likes")
|
72
pages/settings/personal.pixy
Normal file
72
pages/settings/personal.pixy
Normal file
@ -0,0 +1,72 @@
|
||||
component SettingsPersonal(user *arn.User)
|
||||
SettingsTabs
|
||||
|
||||
h1.page-title Personal settings
|
||||
|
||||
.settings
|
||||
.widget.mountable(data-api="/api/user/" + user.ID)
|
||||
h3.widget-title
|
||||
Icon("user")
|
||||
span Personal
|
||||
|
||||
InputText("Nick", user.Nick, "Username", "Your username on notify.moe")
|
||||
InputText("Tagline", user.Tagline, "Tagline", "Text that appears below your username")
|
||||
InputText("Website", user.Website, "Website", "Your homepage")
|
||||
|
||||
if arn.IsDevelopment()
|
||||
InputTextArea("Introduction", user.Introduction, "Introduction", "Tell us about yourself (Markdown is allowed)")
|
||||
|
||||
.widget.mountable(data-api="/api/settings/" + user.ID)
|
||||
h3.widget-title
|
||||
Icon("camera")
|
||||
span Avatar
|
||||
|
||||
//- .widget-section
|
||||
//- label(for="Avatar.Source") Source:
|
||||
//- select.widget-ui-element.action(id="Avatar.Source", data-field="Avatar.Source", value=user.Settings().Avatar.Source, data-action="save", data-trigger="change")
|
||||
//- option(value="") Automatic
|
||||
//- option(value="Gravatar") Gravatar
|
||||
//- option(value="URL") Link
|
||||
//- option(value="FileSystem") Upload
|
||||
|
||||
//- //- URL input
|
||||
//- if user.Settings().Avatar.Source == "URL"
|
||||
//- InputText("Avatar.SourceURL", user.Settings().Avatar.SourceURL, "Link", "Post the link to the image here")
|
||||
|
||||
//- //- Gravatar preview image
|
||||
//- if user.Settings().Avatar.Source == "Gravatar" || (user.Settings().Avatar.Source == "" && user.Avatar.Source == "Gravatar")
|
||||
//- .profile-image-container.avatar-preview
|
||||
//- img.profile-image.mountable(src=user.Gravatar(), alt="Gravatar (" + user.Email + ")", title="Gravatar (" + user.Email + ")")
|
||||
|
||||
//- //- URL preview image
|
||||
//- if user.Settings().Avatar.Source == "URL" && user.Settings().Avatar.SourceURL != ""
|
||||
//- .profile-image-container.avatar-preview
|
||||
//- img.profile-image.mountable(src=strings.Replace(user.Settings().Avatar.SourceURL, "http://", "https://", 1), alt="Avatar preview")
|
||||
|
||||
//- //- File upload
|
||||
//- if user.Settings().Avatar.Source == "FileSystem"
|
||||
|
||||
InputFileUpload("avatar-input", "File", "image", "/api/upload/avatar")
|
||||
|
||||
.profile-image-container.avatar-preview
|
||||
if user.HasAvatar()
|
||||
img.avatar-input-preview.profile-image.lazy(data-src=user.AvatarLink("large"), data-webp="true", alt="Profile image", title="Recommended: 560 x 560 | PNG or JPG")
|
||||
else
|
||||
img.avatar-input-preview.profile-image.hidden(src=user.AvatarLink("large"), alt="Profile image", title="Recommended: 560 x 560 | PNG or JPG")
|
||||
|
||||
#avatar-input-preview-svg
|
||||
SVGProfileImage(user)
|
||||
|
||||
.widget.mountable(data-api="/api/settings/" + user.ID)
|
||||
h3.widget-title
|
||||
Icon("picture-o")
|
||||
span Cover
|
||||
|
||||
InputFileUpload("cover-input", "File", "image", "/api/upload/cover")
|
||||
|
||||
.cover-preview(title="Recommended: 1920 x 450 | PNG or JPG")
|
||||
img.profile-cover.cover-input-preview.lazy(data-src=user.CoverLink("small"), data-webp="true", alt="Cover image")
|
||||
|
||||
if !user.IsPro()
|
||||
.footer
|
||||
p PRO account required.
|
26
pages/settings/pro.pixy
Normal file
26
pages/settings/pro.pixy
Normal file
@ -0,0 +1,26 @@
|
||||
component SettingsPro(user *arn.User)
|
||||
SettingsTabs
|
||||
|
||||
h1.page-title PRO settings
|
||||
|
||||
.settings
|
||||
.widget.mountable(data-api="/api/settings/" + user.ID)
|
||||
h3.widget-title
|
||||
Icon("star")
|
||||
span PRO
|
||||
|
||||
if user.IsPro()
|
||||
.widget-section
|
||||
label
|
||||
span Your PRO account expires in
|
||||
span.utc-date(data-date=user.ProExpires)
|
||||
span .
|
||||
a.button(href="/shop")
|
||||
Icon("star")
|
||||
span Extend PRO account duration
|
||||
else
|
||||
.widget-section
|
||||
label Would you like to make this website more awesome?
|
||||
a.button(href="/support")
|
||||
Icon("star")
|
||||
span Go PRO
|
@ -1,285 +0,0 @@
|
||||
component SettingsTabs
|
||||
.tabs
|
||||
Tab("Personal", "user", "/settings")
|
||||
Tab("Accounts", "cubes", "/settings/accounts")
|
||||
Tab("Notifications", "bell", "/settings/notifications")
|
||||
Tab("Apps", "puzzle-piece", "/settings/apps")
|
||||
Tab("Formatting", "font", "/settings/formatting")
|
||||
Tab("PRO", "star", "/settings/pro")
|
||||
|
||||
component SettingsPersonal(user *arn.User)
|
||||
SettingsTabs
|
||||
|
||||
h1.page-title Personal settings
|
||||
|
||||
.settings
|
||||
.widget.mountable(data-api="/api/user/" + user.ID)
|
||||
h3.widget-title
|
||||
Icon("user")
|
||||
span Personal
|
||||
|
||||
InputText("Nick", user.Nick, "Username", "Your username on notify.moe")
|
||||
InputText("Tagline", user.Tagline, "Tagline", "Text that appears below your username")
|
||||
InputText("Website", user.Website, "Website", "Your homepage")
|
||||
|
||||
if arn.IsDevelopment()
|
||||
InputTextArea("Introduction", user.Introduction, "Introduction", "Tell us about yourself (Markdown is allowed)")
|
||||
|
||||
.widget.mountable(data-api="/api/settings/" + user.ID)
|
||||
h3.widget-title
|
||||
Icon("camera")
|
||||
span Avatar
|
||||
|
||||
//- .widget-section
|
||||
//- label(for="Avatar.Source") Source:
|
||||
//- select.widget-ui-element.action(id="Avatar.Source", data-field="Avatar.Source", value=user.Settings().Avatar.Source, data-action="save", data-trigger="change")
|
||||
//- option(value="") Automatic
|
||||
//- option(value="Gravatar") Gravatar
|
||||
//- option(value="URL") Link
|
||||
//- option(value="FileSystem") Upload
|
||||
|
||||
//- //- URL input
|
||||
//- if user.Settings().Avatar.Source == "URL"
|
||||
//- InputText("Avatar.SourceURL", user.Settings().Avatar.SourceURL, "Link", "Post the link to the image here")
|
||||
|
||||
//- //- Gravatar preview image
|
||||
//- if user.Settings().Avatar.Source == "Gravatar" || (user.Settings().Avatar.Source == "" && user.Avatar.Source == "Gravatar")
|
||||
//- .profile-image-container.avatar-preview
|
||||
//- img.profile-image.mountable(src=user.Gravatar(), alt="Gravatar (" + user.Email + ")", title="Gravatar (" + user.Email + ")")
|
||||
|
||||
//- //- URL preview image
|
||||
//- if user.Settings().Avatar.Source == "URL" && user.Settings().Avatar.SourceURL != ""
|
||||
//- .profile-image-container.avatar-preview
|
||||
//- img.profile-image.mountable(src=strings.Replace(user.Settings().Avatar.SourceURL, "http://", "https://", 1), alt="Avatar preview")
|
||||
|
||||
//- //- File upload
|
||||
//- if user.Settings().Avatar.Source == "FileSystem"
|
||||
|
||||
InputFileUpload("avatar-input", "File", "image", "/api/upload/avatar")
|
||||
|
||||
.profile-image-container.avatar-preview
|
||||
if user.HasAvatar()
|
||||
img.avatar-input-preview.profile-image.lazy(data-src=user.AvatarLink("large"), data-webp="true", alt="Profile image", title="Recommended: 560 x 560 | PNG or JPG")
|
||||
else
|
||||
img.avatar-input-preview.profile-image.hidden(src=user.AvatarLink("large"), alt="Profile image", title="Recommended: 560 x 560 | PNG or JPG")
|
||||
|
||||
#avatar-input-preview-svg
|
||||
SVGProfileImage(user)
|
||||
|
||||
.widget.mountable(data-api="/api/settings/" + user.ID)
|
||||
h3.widget-title
|
||||
Icon("picture-o")
|
||||
span Cover
|
||||
|
||||
InputFileUpload("cover-input", "File", "image", "/api/upload/cover")
|
||||
|
||||
.cover-preview(title="Recommended: 1920 x 450 | PNG or JPG")
|
||||
img.profile-cover.cover-input-preview.lazy(data-src=user.CoverLink("small"), data-webp="true", alt="Cover image")
|
||||
|
||||
if !user.IsPro()
|
||||
.footer
|
||||
p PRO account required.
|
||||
|
||||
component SettingsNotifications(user *arn.User)
|
||||
SettingsTabs
|
||||
|
||||
h1.page-title Notification settings
|
||||
|
||||
.settings
|
||||
.widget.mountable
|
||||
h3.widget-title
|
||||
Icon("bell")
|
||||
span Instant notifications
|
||||
|
||||
#enable-notifications.widget-section
|
||||
label Instant notifications:
|
||||
button.action(data-action="enableNotifications", data-trigger="click")
|
||||
Icon("toggle-off")
|
||||
span OFF
|
||||
|
||||
#disable-notifications.widget-section.hidden
|
||||
label Instant notifications:
|
||||
button.action(data-action="disableNotifications", data-trigger="click")
|
||||
Icon("toggle-on")
|
||||
span ON
|
||||
|
||||
#test-notification.widget-section
|
||||
label Test:
|
||||
button.action(data-action="testNotification", data-trigger="click")
|
||||
Icon("paper-plane")
|
||||
span Send test notification
|
||||
|
||||
.footer
|
||||
p(title="This setting is not account bound, instead it is bound to your browser.") You can customize this setting on every device you own.
|
||||
|
||||
.widget.mountable(data-api="/api/settings/" + user.ID)
|
||||
h3.widget-title
|
||||
Icon("filter")
|
||||
span Filter
|
||||
|
||||
InputBool("Notification.AnimeEpisodeReleases", user.Settings().Notification.AnimeEpisodeReleases, "New episodes", "Notifications about new episodes")
|
||||
InputBool("Notification.AnimeFinished", user.Settings().Notification.AnimeFinished, "Finished anime series", "Notifications about finished anime series")
|
||||
//- InputBool("Notification.NewFollowers", user.Settings().Notification.NewFollowers, "New followers", "Notifications about new followers")
|
||||
|
||||
//- .widget.mountable(data-api="/api/settings/" + user.ID)
|
||||
//- h3.widget-title
|
||||
//- Icon("heart")
|
||||
//- span Likes
|
||||
|
||||
//- InputBool("Notification.ForumLikes", user.Settings().Notification.ForumLikes, "Forum post likes", "Notifications about forum post likes")
|
||||
//- InputBool("Notification.SoundTrackLikes", user.Settings().Notification.SoundTrackLikes, "Soundtrack likes", "Notifications about soundtrack likes")
|
||||
//- //- InputBool("Notification.GroupPostLikes", user.Settings().Notification.GroupPostLikes, "Group post likes", "Notifications about group post likes")
|
||||
//- InputBool("Notification.QuoteLikes", user.Settings().Notification.QuoteLikes, "Quote likes", "Notifications about quote likes")
|
||||
|
||||
component SettingsApps(user *arn.User)
|
||||
SettingsTabs
|
||||
|
||||
h1.page-title App settings
|
||||
|
||||
.settings
|
||||
.widget.mountable
|
||||
h3.widget-title
|
||||
Icon("puzzle-piece")
|
||||
span Apps
|
||||
|
||||
.widget-section
|
||||
label Chrome Extension:
|
||||
button.action(data-action="installExtension", data-trigger="click")
|
||||
Icon("chrome")
|
||||
span Get the Chrome Extension
|
||||
|
||||
.widget-section
|
||||
label Firefox Extension:
|
||||
a.button(href="https://addons.mozilla.org/en-US/firefox/addon/anime-notifier/", target="_blank", rel="nofollow")
|
||||
Icon("firefox")
|
||||
span Get the Firefox Extension
|
||||
|
||||
.widget-section
|
||||
label Android Web App:
|
||||
a.button(href="https://www.youtube.com/watch?v=opyt4cw0ep8", target="_blank", rel="noopener")
|
||||
Icon("android")
|
||||
span Get the Android Web App
|
||||
|
||||
.widget-section
|
||||
label Desktop Web App:
|
||||
button.action(data-action="installApp", data-trigger="click")
|
||||
Icon("desktop")
|
||||
span Get the Desktop Web App
|
||||
|
||||
component SettingsFormatting(user *arn.User)
|
||||
SettingsTabs
|
||||
|
||||
h1.page-title Formatting settings
|
||||
|
||||
.settings
|
||||
.widget.mountable(data-api="/api/settings/" + user.ID)
|
||||
h3.widget-title
|
||||
Icon("font")
|
||||
span Formatting
|
||||
|
||||
.widget-section
|
||||
label(for="Theme")= "Theme:"
|
||||
select.widget-ui-element.action(id="Theme", data-field="Theme", value=user.Settings().Theme, title="Language of anime titles", data-action="save", data-trigger="change")
|
||||
option(value="light") Light
|
||||
option(value="dark") Dark
|
||||
|
||||
.widget-section
|
||||
label(for="TitleLanguage")= "Title language:"
|
||||
select.widget-ui-element.action(id="TitleLanguage", data-field="TitleLanguage", value=user.Settings().TitleLanguage, title="Language of anime titles", data-action="save", data-trigger="change")
|
||||
option(value="canonical") Canonical
|
||||
option(value="english") English
|
||||
option(value="romaji") Romaji
|
||||
option(value="japanese") 日本語
|
||||
|
||||
InputNumber("Format.RatingsPrecision", float64(user.Settings().Format.RatingsPrecision), "Ratings precision", "How many decimals after the comma would you like to display in ratings on anime pages?", "0", "2", "1")
|
||||
|
||||
component SettingsPro(user *arn.User)
|
||||
SettingsTabs
|
||||
|
||||
h1.page-title PRO settings
|
||||
|
||||
.settings
|
||||
.widget.mountable(data-api="/api/settings/" + user.ID)
|
||||
h3.widget-title
|
||||
Icon("star")
|
||||
span PRO
|
||||
|
||||
if user.IsPro()
|
||||
.widget-section
|
||||
label
|
||||
span Your PRO account expires in
|
||||
span.utc-date(data-date=user.ProExpires)
|
||||
span .
|
||||
a.button(href="/shop")
|
||||
Icon("star")
|
||||
span Extend PRO account duration
|
||||
else
|
||||
.widget-section
|
||||
label Would you like to make this website more awesome?
|
||||
a.button(href="/support")
|
||||
Icon("star")
|
||||
span Go PRO
|
||||
|
||||
component SettingsAccounts(user *arn.User)
|
||||
SettingsTabs
|
||||
|
||||
h1.page-title Accounts settings
|
||||
|
||||
.settings
|
||||
.widget.mountable(data-api="/api/user/" + user.ID)
|
||||
h3.widget-title
|
||||
Icon("cubes")
|
||||
span Accounts
|
||||
|
||||
InputText("Accounts.AniList.Nick", user.Accounts.AniList.Nick, "AniList", "Your username on anilist.co")
|
||||
InputText("Accounts.MyAnimeList.Nick", user.Accounts.MyAnimeList.Nick, "MyAnimeList", "Your username on myanimelist.net")
|
||||
InputText("Accounts.Kitsu.Nick", user.Accounts.Kitsu.Nick, "Kitsu", "Your username on kitsu.io")
|
||||
InputText("Accounts.Osu.Nick", user.Accounts.Osu.Nick, "Osu", "Your username on osu.ppy.sh")
|
||||
InputText("Accounts.Overwatch.BattleTag", user.Accounts.Overwatch.BattleTag, "Overwatch", "Your battletag on Overwatch")
|
||||
//- InputText("Accounts.AnimePlanet.Nick", user.Accounts.AnimePlanet.Nick, "AnimePlanet", "Your username on anime-planet.com")
|
||||
|
||||
.widget.mountable
|
||||
h3.widget-title
|
||||
Icon("user-plus")
|
||||
span Connect
|
||||
|
||||
.widget-section.social-account
|
||||
label(for="google") Google:
|
||||
|
||||
a#google.button.social-account-button(href="/auth/google", data-ajax="false")
|
||||
if user.Accounts.Google.ID != ""
|
||||
Icon("check")
|
||||
span Connected
|
||||
else
|
||||
Icon("circle-o")
|
||||
span Not connected
|
||||
|
||||
.widget-section.social-account
|
||||
label(for="facebook") Facebook:
|
||||
|
||||
a#facebook.button.social-account-button(href="/auth/facebook", data-ajax="false")
|
||||
if user.Accounts.Facebook.ID != ""
|
||||
Icon("check")
|
||||
span Connected
|
||||
else
|
||||
Icon("circle-o")
|
||||
span Not connected
|
||||
|
||||
.widget.mountable
|
||||
h3.widget-title
|
||||
Icon("download")
|
||||
span Import
|
||||
|
||||
ImportLists(user)
|
||||
|
||||
if len(user.AnimeList().Items) > 0
|
||||
.widget.mountable
|
||||
h3.widget-title
|
||||
Icon("upload")
|
||||
span Export
|
||||
|
||||
.widget-section
|
||||
label JSON:
|
||||
a.button(href="/api/animelist/" + user.ID, target="_blank")
|
||||
Icon("upload")
|
||||
span Export anime list as JSON
|
8
pages/settings/tabs.pixy
Normal file
8
pages/settings/tabs.pixy
Normal file
@ -0,0 +1,8 @@
|
||||
component SettingsTabs
|
||||
.tabs
|
||||
Tab("Personal", "user", "/settings")
|
||||
Tab("Accounts", "cubes", "/settings/accounts")
|
||||
Tab("Notifications", "bell", "/settings/notifications")
|
||||
Tab("Apps", "puzzle-piece", "/settings/apps")
|
||||
Tab("Formatting", "font", "/settings/formatting")
|
||||
Tab("PRO", "star", "/settings/pro")
|
Loading…
Reference in New Issue
Block a user