Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F13523402
serverSideConfig.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
3 KB
Referenced Files
None
Subscribers
None
serverSideConfig.js
View Options
import
{
get
,
set
}
from
'lodash'
const
defaultApi
=
({
rootState
,
commit
},
{
path
,
value
})
=>
{
const
params
=
{}
set
(
params
,
path
,
value
)
return
rootState
.
api
.
backendInteractor
.
updateProfile
({
params
})
.
then
(
result
=>
{
commit
(
'addNewUsers'
,
[
result
])
commit
(
'setCurrentUser'
,
result
)
})
}
const
notificationsApi
=
({
rootState
,
commit
},
{
path
,
value
,
oldValue
})
=>
{
const
settings
=
{}
set
(
settings
,
path
,
value
)
return
rootState
.
api
.
backendInteractor
.
updateNotificationSettings
({
settings
})
.
then
(
result
=>
{
if
(
result
.
status
===
'success'
)
{
commit
(
'confirmServerSideOption'
,
{
name
,
value
})
}
else
{
commit
(
'confirmServerSideOption'
,
{
name
,
value
:
oldValue
})
}
})
}
/**
* Map that stores relation between path for reading (from user profile),
* for writing (into API) an what API to use.
*
* Shorthand - instead of { get, set, api? } object it's possible to use string
* in case default api is used and get = set
*
* If no api is specified, defaultApi is used (see above)
*/
export
const
settingsMap
=
{
defaultScope
:
'source.privacy'
,
defaultNSFW
:
'source.sensitive'
,
// BROKEN: pleroma/pleroma#2837
stripRichContent
:
{
get
:
'source.pleroma.no_rich_text'
,
set
:
'no_rich_text'
},
// Privacy
locked
:
'locked'
,
acceptChatMessages
:
{
get
:
'pleroma.accepts_chat_messages'
,
set
:
'accepts_chat_messages'
},
allowFollowingMove
:
{
get
:
'pleroma.allow_following_move'
,
set
:
'allow_following_move'
},
discoverable
:
{
get
:
'source.pleroma.discoverable'
,
set
:
'discoverable'
},
hideFavorites
:
{
get
:
'pleroma.hide_favorites'
,
set
:
'hide_favorites'
},
hideFollowers
:
{
get
:
'pleroma.hide_followers'
,
set
:
'hide_followers'
},
hideFollows
:
{
get
:
'pleroma.hide_follows'
,
set
:
'hide_follows'
},
hideFollowersCount
:
{
get
:
'pleroma.hide_followers_count'
,
set
:
'hide_followers_count'
},
hideFollowsCount
:
{
get
:
'pleroma.hide_follows_count'
,
set
:
'hide_follows_count'
},
// NotificationSettingsAPIs
webPushHideContents
:
{
get
:
'pleroma.notification_settings.hide_notification_contents'
,
set
:
'hide_notification_contents'
,
api
:
notificationsApi
},
blockNotificationsFromStrangers
:
{
get
:
'pleroma.notification_settings.block_from_strangers'
,
set
:
'block_from_strangers'
,
api
:
notificationsApi
}
}
export
const
defaultState
=
Object
.
fromEntries
(
Object
.
keys
(
settingsMap
).
map
(
key
=>
[
key
,
null
]))
const
serverSideConfig
=
{
state
:
{
...
defaultState
},
mutations
:
{
confirmServerSideOption
(
state
,
{
name
,
value
})
{
set
(
state
,
name
,
value
)
},
wipeServerSideOption
(
state
,
{
name
})
{
set
(
state
,
name
,
null
)
},
wipeAllServerSideOptions
(
state
)
{
Object
.
keys
(
settingsMap
).
forEach
(
key
=>
{
set
(
state
,
key
,
null
)
})
},
// Set the settings based on their path location
setCurrentUser
(
state
,
user
)
{
Object
.
entries
(
settingsMap
).
forEach
((
map
)
=>
{
const
[
name
,
value
]
=
map
const
{
get
:
path
=
value
}
=
value
set
(
state
,
name
,
get
(
user
.
_original
,
path
))
})
}
},
actions
:
{
setServerSideOption
({
rootState
,
state
,
commit
,
dispatch
},
{
name
,
value
})
{
const
oldValue
=
get
(
state
,
name
)
const
map
=
settingsMap
[
name
]
if
(
!
map
)
throw
new
Error
(
'Invalid server-side setting'
)
const
{
set
:
path
=
map
,
api
=
defaultApi
}
=
map
commit
(
'wipeServerSideOption'
,
{
name
})
api
({
rootState
,
commit
},
{
path
,
value
,
oldValue
})
.
catch
((
e
)
=>
{
console
.
warn
(
'Error setting server-side option:'
,
e
)
commit
(
'confirmServerSideOption'
,
{
name
,
value
:
oldValue
})
})
},
logout
({
commit
})
{
commit
(
'wipeAllServerSideOptions'
)
}
}
}
export
default
serverSideConfig
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Dec 7, 9:41 PM (1 h, 8 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
697901
Default Alt Text
serverSideConfig.js (3 KB)
Attached To
Mode
rPUFE pleroma-fe-upstream
Attached
Detach File
Event Timeline
Log In to Comment