Search Apps Documentation Source Content File Folder Download Copy Actions Download State String Boolean Number Struct Map Slice Pointer Function Closure Reference Nil Package Type Interface Unknown

v1 state

Back to all declarations

realmPkgPath

untyped string

Value

"gno.land/r/gnoland/boards2/v1"

gRealmPath

untyped string

Value

"/r/gnoland/boards2/v1"

RequiredAccountAmount

int64

Value

3000000000

Notice

string

Value

""

Help

string

Value

""

gListedBoardsByID

v0.BPTree

// string(id) -> \*boards.Board

Open
OID
0fb476…77f7:8
gListedBoardsByID details

Inspect ref

gInviteRequests

v0.BPTree

// string(board id) -> \*bptree.BPTree(address -> time.Time)

Open
OID
0fb476…77f7:10
gInviteRequests details

Inspect ref

gBannedUsers

v0.BPTree

// string(board id) -> \*bptree.BPTree(address -> time.Time)

Open
OID
0fb476…77f7:12
gBannedUsers details

Inspect ref

gLocked

struct{...}

TODO: Refactor globals in favor of a cleaner pattern

Open
OID
0fb476…77f7:14
gLocked details

Inspect struct

gPerms

*permissions.Permissions

// GovDAO T1 multisig

Open
OID
0fb476…77f7:26
gPerms details

Inspect pointer

initRealmPermissions

func(owners [].uverse.address) boards.Permissions

initRealmPermissions returns the default realm permissions.

Open
OID
0fb476…77f7:125
initRealmPermissions details

Inspect func

getInviteRequests

func(boardID boards.ID) (*v0.BPTree, found bool)

getInviteRequests returns invite requests for a board.

Open
OID
0fb476…77f7:127
getInviteRequests details

Inspect func

getBannedUsers

func(boardID boards.ID) (*v0.BPTree, found bool)

getBannedUsers returns banned users within a board.

Open
OID
0fb476…77f7:128
getBannedUsers details

Inspect func

mustGetBoardByName

func(name string) *boards.Board

mustGetBoardByName returns a board or panics when it's not found.

Open
OID
0fb476…77f7:129
mustGetBoardByName details

Inspect func

mustGetBoard

func(id boards.ID) *boards.Board

mustGetBoard returns a board or panics when it's not found.

Open
OID
0fb476…77f7:130
mustGetBoard details

Inspect func

getThread

func(board *boards.Board, threadID boards.ID) (*boards.Post, bool)

getThread returns a board thread.

Open
OID
0fb476…77f7:131
getThread details

Inspect func

getReply

func(thread *boards.Post, replyID boards.ID) (*boards.Post, bool)

getReply returns a thread comment or reply.

Open
OID
0fb476…77f7:132
getReply details

Inspect func

mustGetThread

func(board *boards.Board, threadID boards.ID) *boards.Post

mustGetThread returns a thread or panics when it's not found.

Open
OID
0fb476…77f7:133
mustGetThread details

Inspect func

mustGetReply

func(thread *boards.Post, replyID boards.ID) *boards.Post

mustGetReply returns a reply or panics when it's not found.

Open
OID
0fb476…77f7:134
mustGetReply details

Inspect func

mustGetPermissions

func(bid boards.ID) boards.Permissions
Open
OID
0fb476…77f7:135
mustGetPermissions details

Inspect func

parseRealmPath

func(path string) *realmpath.Request
Open
OID
0fb476…77f7:136
parseRealmPath details

Inspect func

DefaultFlaggingThreshold

untyped bigint

DefaultFlaggingThreshold defines the default number of flags that hides flaggable items.

Value

(1 <untyped> bigint)

gFlaggingThresholds

v0.BPTree

// string(board ID) -> int

Open
OID
0fb476…77f7:138
gFlaggingThresholds details

Inspect ref

flagItem

func(post *boards.Post, user .uverse.address, reason string, threshold int) bool

flagItem adds a flag to a post. Returns whether flag count threshold is reached and post can be hidden. Panics if flag count threshold was already reached.

Open
OID
0fb476…77f7:139
flagItem details

Inspect func

getFlaggingThreshold

func(bid boards.ID) int
Open
OID
0fb476…77f7:141
getFlaggingThreshold details

Inspect func

dateFormat

untyped string

Value

"2006-01-02 3:04pm MST"

padLeft

func(s string, length int) string
Open
OID
0fb476…77f7:142
padLeft details

Inspect func

padZero

func(u64 uint64, length int) string
Open
OID
0fb476…77f7:144
padZero details

Inspect func

indentBody

func(indent string, body string) string
Open
OID
0fb476…77f7:145
indentBody details

Inspect func

indentForeignBody

func(indent string, body string, budget *int) string

indentForeignBody is the single "render a user body" operation: it sandboxes the body in a \<gno-foreign> block, indents it like indentBody, AND charges one unit against the per-render budget — so wrapping and budget-accounting can't drift apart (the \*int signals the mutation). The body renders inside the sandbox: its block structure (headings, blockquotes, lists, columns, alerts) is contained and cannot hijack realm chrome, so boards no longer needs the write-time markdown blacklist. The opener survives the "> " comment indentation at any depth (goldmark strips the "> " prefix before the block parser runs).

Open
OID
0fb476…77f7:146
indentForeignBody details

Inspect func

summaryOf

func(text string, length int) string
Open
OID
0fb476…77f7:147
summaryOf details

Inspect func

getRoleBadge

func(post *boards.Post) string
Open
OID
0fb476…77f7:149
getRoleBadge details

Inspect func

BoardMeta

type

BoardMeta defines a type for board metadata.

Value

v1.BoardMeta

ThreadMeta

type

ThreadMeta defines a type for thread metadata.

Value

v1.ThreadMeta

RoleOwner

boards.Role

List of Boards2 member roles.

Value

<gnolang.StringValue>

RoleAdmin

untyped string

List of Boards2 member roles.

Value

"admin"

RoleModerator

untyped string

List of Boards2 member roles.

Value

"moderator"

RoleGuest

untyped string

List of Boards2 member roles.

Value

"guest"

PermissionCustom

boards.Permission

PermissionCustom defines an initial value for custom board permissions. When a board defines custom permissions it must starts from a value greater or equal than PermissionCustom. Custom permissions definition example: const ( PermissionCustom1 boards.Permission = iota + boards2.PermissionCustom PermissionCustom2 PermissionCustom3 )

Value

<zero>

PermissionBoardCreate

boards.Permission

List of Boards2 permissions.

Value

<zero>

PermissionBoardFlaggingUpdate

boards.Permission

List of Boards2 permissions.

Value

<zero>

PermissionBoardFreeze

boards.Permission

List of Boards2 permissions.

Value

<zero>

PermissionBoardRename

boards.Permission

List of Boards2 permissions.

Value

<zero>

PermissionMemberInvite

boards.Permission

List of Boards2 permissions.

Value

<zero>

PermissionMemberInviteRevoke

boards.Permission

List of Boards2 permissions.

Value

<zero>

PermissionMemberRemove

boards.Permission

List of Boards2 permissions.

Value

<zero>

PermissionPermissionsUpdate

boards.Permission

List of Boards2 permissions.

Value

<zero>

PermissionRealmHelpChange

boards.Permission

List of Boards2 permissions.

Value

<zero>

PermissionRealmLock

boards.Permission

List of Boards2 permissions.

Value

<zero>

PermissionRealmNotice

boards.Permission

List of Boards2 permissions.

Value

<zero>

PermissionAccountRequiredAmountChange

boards.Permission

List of Boards2 permissions.

Value

<zero>

PermissionReplyCreate

boards.Permission

List of Boards2 permissions.

Value

<zero>

PermissionReplyDelete

boards.Permission

List of Boards2 permissions.

Value

<zero>

PermissionReplyFlag

boards.Permission

List of Boards2 permissions.

Value

<zero>

PermissionRoleChange

boards.Permission

List of Boards2 permissions.

Value

<zero>

PermissionThreadCreate

boards.Permission

List of Boards2 permissions.

Value

<zero>

PermissionThreadDelete

boards.Permission

List of Boards2 permissions.

Value

<zero>

PermissionThreadEdit

boards.Permission

List of Boards2 permissions.

Value

<zero>

PermissionThreadFlag

boards.Permission

List of Boards2 permissions.

Value

<zero>

PermissionThreadFreeze

boards.Permission

List of Boards2 permissions.

Value

<zero>

PermissionThreadRepost

boards.Permission

List of Boards2 permissions.

Value

<zero>

PermissionUserBan

boards.Permission

List of Boards2 permissions.

Value

<zero>

PermissionUserUnban

boards.Permission

List of Boards2 permissions.

Value

<zero>

createBasicBoardPermissions

func(owner .uverse.address) *permissions.Permissions
Open
OID
0fb476…77f7:150
createBasicBoardPermissions details

Inspect func

createOpenBoardPermissions

func(owner .uverse.address) *permissions.Permissions
Open
OID
0fb476…77f7:152
createOpenBoardPermissions details

Inspect func

validateBasicBoardCreate

func(perms boards.Permissions, args boards.Args) .uverse.error

validateBasicBoardCreate validates PermissionBoardCreate. Expected \`args\` values: 1. Caller address 2. Board name 3. Board ID 4. Is board listed 5. Is board open

Open
OID
0fb476…77f7:119
validateBasicBoardCreate details

Inspect func

validateBasicBoardRename

func(boards.Permissions, args boards.Args) .uverse.error

validateBasicBoardRename validates PermissionBoardRename. Expected \`args\` values: 1. Caller address 2. Board ID 3. Current board name 4. New board name

Open
OID
0fb476…77f7:153
validateBasicBoardRename details

Inspect func

validateBasicMemberInvite

func(perms boards.Permissions, args boards.Args) .uverse.error

validateBasicMemberInvite validates PermissionMemberInvite. Expected \`args\` values: 1. Caller address 2. Board ID 3. Invites

Open
OID
0fb476…77f7:124
validateBasicMemberInvite details

Inspect func

validateBasicRoleChange

func(perms boards.Permissions, args boards.Args) .uverse.error

validateBasicRoleChange validates PermissionRoleChange. Expected \`args\` values: 1. Caller address 2. Board ID 3. Member address 4. Role

Open
OID
0fb476…77f7:122
validateBasicRoleChange details

Inspect func

checkBoardNameIsNotAddress

func(s string) .uverse.error
Open
OID
0fb476…77f7:154
checkBoardNameIsNotAddress details

Inspect func

checkBoardNameBelongsToAddress

func(owner .uverse.address, name string) .uverse.error
Open
OID
0fb476…77f7:155
checkBoardNameBelongsToAddress details

Inspect func

validateOpenBoardRename

func(boards.Permissions, args boards.Args) .uverse.error

validateOpenBoardRename validates PermissionBoardRename. Expected \`args\` values: 1. Caller address 2. Board ID 3. Current board name 4. New board name

Open
OID
0fb476…77f7:156
validateOpenBoardRename details

Inspect func

validateOpenMemberInvite

func(perms boards.Permissions, args boards.Args) .uverse.error

validateOpenMemberInvite validates PermissionMemberInvite. Expected \`args\` values: 1. Caller address 2. Board ID 3. Invites

Open
OID
0fb476…77f7:158
validateOpenMemberInvite details

Inspect func

validateOpenRoleChange

func(perms boards.Permissions, args boards.Args) .uverse.error

validateOpenRoleChange validates PermissionRoleChange. Expected \`args\` values: 1. Caller address 2. Board ID 3. Member address 4. Role

Open
OID
0fb476…77f7:159
validateOpenRoleChange details

Inspect func

validateOpenThreadCreate

func(perms boards.Permissions, args boards.Args) .uverse.error

validateOpenThreadCreate validates PermissionThreadCreate. Expected \`args\` values: 1. Caller address 2. Board ID 3. Thread ID 4. Title 5. Body

Open
OID
0fb476…77f7:160
validateOpenThreadCreate details

Inspect func

validateOpenReplyCreate

func(perms boards.Permissions, args boards.Args) .uverse.error

validateOpenReplyCreate validates PermissionReplyCreate. Expected \`args\` values: 1. Caller address 2. Board ID 3. Thread ID 4. Parent ID 5. Reply ID 6. Body

Open
OID
0fb476…77f7:161
validateOpenReplyCreate details

Inspect func

checkAccountHasAmount

func(addr .uverse.address, amount int64) .uverse.error
Open
OID
0fb476…77f7:162
checkAccountHasAmount details

Inspect func

boardsNS

untyped string

boardsNS is the package-path namespace shared by all Boards2 versions. Update as part of each version bump.

Value

"gno.land/r/gnoland/boards2/"

GetRealmPermissions

func() boards.Permissions

GetRealmPermissions returns Boards2 realm permissions. This is a protected function only callable by Boards2 sub realms.

Open
OID
0fb476…77f7:163
GetRealmPermissions details

Inspect func

GetBoard

func(boardID boards.ID) (*boards.Board, found bool)

GetBoard returns a board. This is a protected function only callable by Boards2 sub realms.

Open
OID
0fb476…77f7:165
GetBoard details

Inspect func

MustGetBoard

func(boardID boards.ID) *boards.Board

MustGetBoard returns a board or panics on error. This is a protected function only callable by Boards2 sub realms.

Open
OID
0fb476…77f7:166
MustGetBoard details

Inspect func

Iterate

func(start int, count int, fn boards.BoardIterFn) bool

Iterate iterates boards. Iteration is done for all boards, including the ones that are not listed. To reverse iterate boards use a negative count. If the callback returns true, iteration is stopped.

Open
OID
0fb476…77f7:167
Iterate details

Inspect func

assertCallerHasBoardsNS

func(int, rlm .uverse.realm)

assertCallerHasBoardsNS panics unless the caller realm's PkgPath lives within the Boards2 namespace. Callers pass their own live cur; the helper enforces rlm.IsCurrent() and derives the caller as rlm.Previous() internally. This mirrors the Transfer/AddMember pattern (see docs/resources/gno-security.md): receive the live cur, extract Previous() inside, never trust a stale-or-stashed realm value's PkgPath(). \_ int discriminator keeps this helper non-crossing.

Open
OID
0fb476…77f7:168
assertCallerHasBoardsNS details

Inspect func

MaxBoardNameLength

untyped bigint

Value

(50 <untyped> bigint)

MaxThreadTitleLength

untyped bigint

Value

(100 <untyped> bigint)

MaxThreadBodyLength

untyped bigint

Value

(40000 <untyped> bigint)

MaxReplyLength

untyped bigint

Value

(10000 <untyped> bigint)

SetHelp

func(content string)

SetHelp sets or updates boards realm help content.

Open
OID
0fb476…77f7:282
SetHelp details

Inspect func

SetRequiredAccountAmount

func(amount int64)

SetRequiredAccountAmount sets the required account amount to interact as a non member with open boards. Amount must be given as ugnot. The amount requirement is not applied to members that were invited to an open board.

Open
OID
0fb476…77f7:284
SetRequiredAccountAmount details

Inspect func

SetPermissions

func(boardID boards.ID, p boards.Permissions)

SetPermissions sets a permissions implementation for boards2 realm or a board.

Open
OID
0fb476…77f7:285
SetPermissions details

Inspect func

SetRealmNotice

func(message string)

SetRealmNotice sets a notice to be displayed globally within the realm. An empty message removes the realm notice.

Open
OID
0fb476…77f7:286
SetRealmNotice details

Inspect func

GetBoardIDFromName

func(name string) (boards.ID, found bool)

GetBoardIDFromName searches a board by name and returns its ID.

Open
OID
0fb476…77f7:287
GetBoardIDFromName details

Inspect func

BoardCount

func() int

BoardCount returns the total number of boards.

Open
OID
0fb476…77f7:288
BoardCount details

Inspect func

CreateBoard

func(name string, listed bool, open bool) boards.ID

CreateBoard creates a new board. Listed boards are included in the realm's list of boards. Open boards allow anyone to create threads and comment.

Open
OID
0fb476…77f7:289
CreateBoard details

Inspect func

RenameBoard

func(name string, newName string)

RenameBoard changes the name of an existing board. A history of previous board names is kept when boards are renamed. Because of that boards are also accessible using previous name(s).

Open
OID
0fb476…77f7:290
RenameBoard details

Inspect func

CreateThread

func(boardID boards.ID, title string, body string) boards.ID

CreateThread creates a new thread within a board.

Open
OID
0fb476…77f7:291
CreateThread details

Inspect func

CreateReply

func(boardID boards.ID, threadID boards.ID, replyID boards.ID, body string) boards.ID

CreateReply creates a new comment or reply within a thread. The value of \`replyID\` is only required when creating a reply of another reply.

Open
OID
0fb476…77f7:292
CreateReply details

Inspect func

CreateRepost

func(boardID boards.ID, threadID boards.ID, destinationBoardID boards.ID, title string, body string) boards.ID

CreateRepost reposts a thread into another board.

Open
OID
0fb476…77f7:293
CreateRepost details

Inspect func

DeleteThread

func(boardID boards.ID, threadID boards.ID)

DeleteThread deletes a thread from a board. Threads can be deleted by the users who created them or otherwise by users with special permissions.

Open
OID
0fb476…77f7:294
DeleteThread details

Inspect func

DeleteReply

func(boardID boards.ID, threadID boards.ID, replyID boards.ID)

DeleteReply deletes a reply from a thread. Replies can be deleted by the users who created them or otherwise by users with special permissions. Soft deletion is used when the deleted reply contains sub replies, in which case the reply content is replaced by a text informing that reply has been deleted to avoid deleting sub-replies.

Open
OID
0fb476…77f7:295
DeleteReply details

Inspect func

EditThread

func(boardID boards.ID, threadID boards.ID, title string, body string)

EditThread updates the title and body of a thread. Threads can be updated by the users who created them or otherwise by users with special permissions.

Open
OID
0fb476…77f7:296
EditThread details

Inspect func

EditReply

func(boardID boards.ID, threadID boards.ID, replyID boards.ID, body string)

EditReply updates the body of a comment or reply. Replies can be updated only by the users who created them.

Open
OID
0fb476…77f7:297
EditReply details

Inspect func

RemoveMember

func(boardID boards.ID, member .uverse.address)

RemoveMember removes a member from the realm or a board. Board ID is only required when removing a member from board.

Open
OID
0fb476…77f7:298
RemoveMember details

Inspect func

IsMember

func(boardID boards.ID, user .uverse.address) bool

IsMember checks if a user is a member of the realm or a board. Board ID is only required when checking if a user is a member of a board.

Open
OID
0fb476…77f7:299
IsMember details

Inspect func

HasMemberRole

func(boardID boards.ID, member .uverse.address, role boards.Role) bool

HasMemberRole checks if a realm or board member has a specific role assigned. Board ID is only required when checking a member of a board.

Open
OID
0fb476…77f7:300
HasMemberRole details

Inspect func

ChangeMemberRole

func(boardID boards.ID, member .uverse.address, role boards.Role)

ChangeMemberRole changes the role of a realm or board member. Board ID is only required when changing the role for a member of a board.

Open
OID
0fb476…77f7:301
ChangeMemberRole details

Inspect func

assertMemberAddressIsValid

func(member .uverse.address)
Open
OID
0fb476…77f7:302
assertMemberAddressIsValid details

Inspect func

assertUserAddressIsValid

func(user .uverse.address)
Open
OID
0fb476…77f7:303
assertUserAddressIsValid details

Inspect func

assertBoardExists

func(id boards.ID)
Open
OID
0fb476…77f7:304
assertBoardExists details

Inspect func

assertBoardIsNotFrozen

func(b *boards.Board)
Open
OID
0fb476…77f7:305
assertBoardIsNotFrozen details

Inspect func

assertIsValidBoardName

func(name string)
Open
OID
0fb476…77f7:306
assertIsValidBoardName details

Inspect func

assertThreadIsNotFrozen

func(t *boards.Post)
Open
OID
0fb476…77f7:307
assertThreadIsNotFrozen details

Inspect func

assertNameIsNotEmpty

func(name string)
Open
OID
0fb476…77f7:308
assertNameIsNotEmpty details

Inspect func

assertTitleIsValid

func(title string)
Open
OID
0fb476…77f7:309
assertTitleIsValid details

Inspect func

assertBodyIsNotEmpty

func(body string)
Open
OID
0fb476…77f7:310
assertBodyIsNotEmpty details

Inspect func

assertBoardNameNotExists

func(name string)
Open
OID
0fb476…77f7:311
assertBoardNameNotExists details

Inspect func

assertThreadExists

func(b *boards.Board, threadID boards.ID)
Open
OID
0fb476…77f7:312
assertThreadExists details

Inspect func

assertReplyExists

func(thread *boards.Post, replyID boards.ID)
Open
OID
0fb476…77f7:313
assertReplyExists details

Inspect func

assertThreadIsVisible

func(thread *boards.Post)
Open
OID
0fb476…77f7:314
assertThreadIsVisible details

Inspect func

assertReplyIsVisible

func(thread *boards.Post)
Open
OID
0fb476…77f7:315
assertReplyIsVisible details

Inspect func

assertThreadBodyIsValid

func(body string)
Open
OID
0fb476…77f7:316
assertThreadBodyIsValid details

Inspect func

assertReplyBodyIsValid

func(body string)
Open
OID
0fb476…77f7:317
assertReplyBodyIsValid details

Inspect func

assertMembersUpdateIsEnabled

func(boardID boards.ID)
Open
OID
0fb476…77f7:318
assertMembersUpdateIsEnabled details

Inspect func

BanDay

uint

Constants for different banning periods.

Value

24

BanWeek

uint

Constants for different banning periods.

Value

168

BanYear

uint

Constants for different banning periods.

Value

8760

Ban

func(boardID boards.ID, user .uverse.address, hours uint, reason string)

Ban bans a user from a board for a period of time. Only invited guest members and external users can be banned. Banning board owners, admins and moderators is not allowed.

Open
OID
0fb476…77f7:319
Ban details

Inspect func

Unban

func(boardID boards.ID, user .uverse.address, reason string)

Unban unbans a user from a board.

Open
OID
0fb476…77f7:321
Unban details

Inspect func

IsBanned

func(boardID boards.ID, user .uverse.address) bool

IsBanned checks if a user is banned from a board.

Open
OID
0fb476…77f7:322
IsBanned details

Inspect func

assertAddressIsValid

func(addr .uverse.address)
Open
OID
0fb476…77f7:323
assertAddressIsValid details

Inspect func

assertUserIsNotBanned

func(boardID boards.ID, user .uverse.address)
Open
OID
0fb476…77f7:324
assertUserIsNotBanned details

Inspect func

SetFlaggingThreshold

func(boardID boards.ID, threshold int)

SetFlaggingThreshold sets the number of flags required to hide a thread or comment. Threshold is only applicable within the board where it's setted.

Open
OID
0fb476…77f7:325
SetFlaggingThreshold details

Inspect func

GetFlaggingThreshold

func(boardID boards.ID) int

GetFlaggingThreshold returns the number of flags required to hide a thread or comment within a board.

Open
OID
0fb476…77f7:327
GetFlaggingThreshold details

Inspect func

FlagThread

func(boardID boards.ID, threadID boards.ID, reason string)

FlagThread adds a new flag to a thread. Flagging requires special permissions and hides the thread when the number of flags reaches a pre-defined flagging threshold.

Open
OID
0fb476…77f7:328
FlagThread details

Inspect func

FlagReply

func(boardID boards.ID, threadID boards.ID, replyID boards.ID, reason string)

FlagReply adds a new flag to a comment or reply. Flagging requires special permissions and hides the comment or reply when the number of flags reaches a pre-defined flagging threshold.

Open
OID
0fb476…77f7:329
FlagReply details

Inspect func

FreezeBoard

func(boardID boards.ID)

FreezeBoard freezes a board so no more threads and comments can be created or modified.

Open
OID
0fb476…77f7:330
FreezeBoard details

Inspect func

UnfreezeBoard

func(boardID boards.ID)

UnfreezeBoard removes frozen status from a board.

Open
OID
0fb476…77f7:332
UnfreezeBoard details

Inspect func

IsBoardFrozen

func(boardID boards.ID) bool

IsBoardFrozen checks if a board has been frozen.

Open
OID
0fb476…77f7:333
IsBoardFrozen details

Inspect func

FreezeThread

func(boardID boards.ID, threadID boards.ID)

FreezeThread freezes a thread so thread cannot be replied, modified or deleted. Fails if board is frozen.

Open
OID
0fb476…77f7:334
FreezeThread details

Inspect func

UnfreezeThread

func(boardID boards.ID, threadID boards.ID)

UnfreezeThread removes frozen status from a thread. Fails if board is frozen.

Open
OID
0fb476…77f7:335
UnfreezeThread details

Inspect func

IsThreadFrozen

func(boardID boards.ID, threadID boards.ID) bool

IsThreadFrozen checks if a thread has been frozen. Returns true if board is frozen.

Open
OID
0fb476…77f7:336
IsThreadFrozen details

Inspect func

setBoardReadonly

func(int, rlm .uverse.realm, boardID boards.ID, readonly bool)
Open
OID
0fb476…77f7:337
setBoardReadonly details

Inspect func

setThreadReadonly

func(int, rlm .uverse.realm, boardID boards.ID, threadID boards.ID, readonly bool)
Open
OID
0fb476…77f7:338
setThreadReadonly details

Inspect func

Invite

type

Invite contains a user invitation.

Value

v1.Invite

InviteMember

func(boardID boards.ID, user .uverse.address, role boards.Role)

InviteMember adds a member to the realm or to a board. A role can optionally be specified to be assigned to the new member.

Open
OID
0fb476…77f7:339
InviteMember details

Inspect func

InviteMembers

func(boardID boards.ID, invites []v1.Invite)

InviteMembers adds one or more members to the realm or to a board. Board ID is only required when inviting a member to a specific board.

Open
OID
0fb476…77f7:341
InviteMembers details

Inspect func

RequestInvite

func(boardID boards.ID)

RequestInvite request to be invited to a board.

Open
OID
0fb476…77f7:342
RequestInvite details

Inspect func

AcceptInvite

func(boardID boards.ID, user .uverse.address)

AcceptInvite accepts a board invite request.

Open
OID
0fb476…77f7:343
AcceptInvite details

Inspect func

RevokeInvite

func(boardID boards.ID, user .uverse.address)

RevokeInvite revokes a board invite request.

Open
OID
0fb476…77f7:344
RevokeInvite details

Inspect func

inviteMembers

func(int, rlm .uverse.realm, boardID boards.ID, invites []v1.Invite)
Open
OID
0fb476…77f7:345
inviteMembers details

Inspect func

assertInviteRequestExists

func(boardID boards.ID, user .uverse.address)
Open
OID
0fb476…77f7:346
assertInviteRequestExists details

Inspect func

assertNoDuplicatedInvites

func(invites []v1.Invite)
Open
OID
0fb476…77f7:347
assertNoDuplicatedInvites details

Inspect func

LockRealm

func(lockRealmMembers bool)

LockRealm locks the realm making it readonly. WARNING: Realm can't be unlocked once locked. Realm can also be locked without locking realm members. Realm members can be locked when locking the realm or afterwards. This is relevant for two reasons, one so that members can be modified after the lock. The other is for realm owners, who can delete threads and comments after the lock.

Open
OID
0fb476…77f7:348
LockRealm details

Inspect func

IsRealmLocked

func() bool

IsRealmLocked checks if boards realm has been locked.

Open
OID
0fb476…77f7:350
IsRealmLocked details

Inspect func

AreRealmMembersLocked

func() bool

AreRealmMembersLocked checks if realm members have been locked.

Open
OID
0fb476…77f7:351
AreRealmMembersLocked details

Inspect func

assertRealmIsNotLocked

func()
Open
OID
0fb476…77f7:352
assertRealmIsNotLocked details

Inspect func

assertRealmMembersAreNotLocked

func()
Open
OID
0fb476…77f7:353
assertRealmMembersAreNotLocked details

Inspect func

pageSizeDefault

untyped bigint

Value

(6 <untyped> bigint)

pageSizeReplies

untyped bigint

Value

(10 <untyped> bigint)

pageSizeFlat

untyped bigint

Value

(50 <untyped> bigint)

maxRenderedBodies

func() int

maxRenderedBodies caps user bodies wrapped in \<gno-foreign> per page render, kept a margin under gnoweb's per-render foreign-block cap (foreign.MaxBlocksPerRender, sourced from chain/markdown so it can't drift from the renderer). On reaching it the tree stops descending and shows a truncation notice instead of letting the renderer blank comments past the cap. The margin absorbs the OP, repost source bodies, and chrome. Computed lazily (a func, not a package-level var) so it tracks the native cap across chain upgrades: a var initializer runs once at realm-init and persists, freezing a stale value if the underlying MaxBlocksPerRender ever changes; recomputing per render re-reads it.

Open
OID
0fb476…77f7:354
maxRenderedBodies details

Inspect func

menuManageBoard

untyped string

Value

"manageBoard"

createBoardURI

string

Value

"/r/gnoland/boards2/v1:create-board"

adminUsersURI

string

Value

"/r/gnoland/boards2/v1:admin-users"

helpURI

string

Value

"/r/gnoland/boards2/v1:help"

renderHelp

func(res *v0.ResponseWriter, *v0.Request)
Open
OID
0fb476…77f7:361
renderHelp details

Inspect func

renderBoardsList

func(res *v0.ResponseWriter, req *v0.Request)
Open
OID
0fb476…77f7:362
renderBoardsList details

Inspect func

renderBoardListMenu

func(res *v0.ResponseWriter, req *v0.Request)
Open
OID
0fb476…77f7:363
renderBoardListMenu details

Inspect func

renderCreateBoard

func(res *v0.ResponseWriter, *v0.Request)
Open
OID
0fb476…77f7:364
renderCreateBoard details

Inspect func

renderMembers

func(res *v0.ResponseWriter, req *v0.Request)
Open
OID
0fb476…77f7:365
renderMembers details

Inspect func

renderInvites

func(res *v0.ResponseWriter, req *v0.Request)
Open
OID
0fb476…77f7:366
renderInvites details

Inspect func

renderBannedUsers

func(res *v0.ResponseWriter, req *v0.Request)
Open
OID
0fb476…77f7:367
renderBannedUsers details

Inspect func

infoAlert

func(title string, msg string) string
Open
OID
0fb476…77f7:368
infoAlert details

Inspect func

rolesToString

func(roles []boards.Role) string
Open
OID
0fb476…77f7:369
rolesToString details

Inspect func

menuURL

func(name string) string
Open
OID
0fb476…77f7:370
menuURL details

Inspect func

getCurrentMenu

func(rawURL string) string
Open
OID
0fb476…77f7:371
getCurrentMenu details

Inspect func

renderBoard

func(res *v0.ResponseWriter, req *v0.Request)
Open
OID
0fb476…77f7:372
renderBoard details

Inspect func

renderSubMenu

func(items []string) string

renderSubMenu renders a sub-menu with a distinct visual pattern.

Open
OID
0fb476…77f7:374
renderSubMenu details

Inspect func

renderBoardMenu

func(board *boards.Board, req *v0.Request) string
Open
OID
0fb476…77f7:375
renderBoardMenu details

Inspect func

renderInviteMember

func(res *v0.ResponseWriter, req *v0.Request)
Open
OID
0fb476…77f7:376
renderInviteMember details

Inspect func

renderPost

func(post *boards.Post, path string, indent string, levels int, budget *int, desc bool) string

renderPost renders a post and (unless it's a leaf or capped) its replies. desc is the page's sort order, forwarded so a comment's nested inline children (renderSubReplies) match the order of the view they appear in. It is unused for the top-level/re-root call (path != "" routes to renderTopLevelReplies, which derives the order from the path); those callers pass false.

Open
OID
0fb476…77f7:377
renderPost details

Inspect func

renderPostContent

func(post *boards.Post, indent string, levels int, budget *int) string
Open
OID
0fb476…77f7:379
renderPostContent details

Inspect func

renderPostInner

func(post *boards.Post, path string) string
Open
OID
0fb476…77f7:380
renderPostInner details

Inspect func

renderSourcePost

func(post *boards.Post, indent string, budget *int) (string, *boards.Post)
Open
OID
0fb476…77f7:381
renderSourcePost details

Inspect func

renderFlagPost

func(res *v0.ResponseWriter, req *v0.Request)
Open
OID
0fb476…77f7:382
renderFlagPost details

Inspect func

renderFlaggingReasonsPost

func(res *v0.ResponseWriter, req *v0.Request)
Open
OID
0fb476…77f7:383
renderFlaggingReasonsPost details

Inspect func

renderReplyPost

func(res *v0.ResponseWriter, req *v0.Request)
Open
OID
0fb476…77f7:384
renderReplyPost details

Inspect func

renderReply

func(res *v0.ResponseWriter, req *v0.Request)
Open
OID
0fb476…77f7:385
renderReply details

Inspect func

newClampedPager

func(path string, size int, pageSize int) pager.Pager

newClampedPager builds a pager, clamping an out-of-range, zero, negative, or malformed ?page= to the last valid page instead of erroring. pager.New rejects page==0, page>pageCount, and non-numeric pages with ErrInvalidPageNumber, which the callers would otherwise surface as a panic (aborting the whole render) or an error page in place of the list. A NEGATIVE page is not rejected by pager.New (it only checks ==0 and >pageCount), so it must be caught here too — otherwise it renders a broken "page -N of M" picker with both arrows disabled. Triggers on a stale deep link after deletions, or a hand-edited URL.

Open
OID
0fb476…77f7:387
newClampedPager details

Inspect func

renderTopLevelReplies

func(post *boards.Post, path string, indent string, levels int, budget *int) string
Open
OID
0fb476…77f7:388
renderTopLevelReplies details

Inspect func

renderSubReplies

func(post *boards.Post, indent string, levels int, budget *int, desc bool) string
Open
OID
0fb476…77f7:389
renderSubReplies details

Inspect func

renderEditReply

func(res *v0.ResponseWriter, req *v0.Request)
Open
OID
0fb476…77f7:390
renderEditReply details

Inspect func

maxFlatIndentDepth

untyped bigint

maxFlatIndentDepth caps the blockquote nesting in the flat comment view so deep reply chains stay readable; comments deeper than this still render, just at the capped indent.

Value

(6 <untyped> bigint)

renderThread

func(res *v0.ResponseWriter, req *v0.Request)
Open
OID
0fb476…77f7:391
renderThread details

Inspect func

renderThreadFlat

func(thread *boards.Post, path string, budget *int) string

renderThreadFlat renders every comment in the thread as a single flat, depth-indented, paginated list backed by ThreadMeta.AllReplies (the index that already holds every reply at every depth). Unlike the recursive threaded view — which bounds work with the render budget and truncates a large subtree — this view is reachable to the very last comment: each comment renders one \<gno-foreign> block (no recursion), so a fixed page size (pageSizeFlat) plus the OP stays well under the budget regardless of nesting, and the pager always advances. ?order=desc shows newest first, so its page 1 is the latest comments.

Open
OID
0fb476…77f7:393
renderThreadFlat details

Inspect func

flatIndent

func(thread *boards.Post, reply *boards.Post) string

flatIndent returns the blockquote indent for a reply in the flat view, derived from its depth below the thread root (depth 1 = a direct reply to the thread), capped at maxFlatIndentDepth.

Open
OID
0fb476…77f7:394
flatIndent details

Inspect func

renderThreadSummary

func(thread *boards.Post) string
Open
OID
0fb476…77f7:395
renderThreadSummary details

Inspect func

renderCreateThread

func(res *v0.ResponseWriter, req *v0.Request)
Open
OID
0fb476…77f7:396
renderCreateThread details

Inspect func

renderEditThread

func(res *v0.ResponseWriter, req *v0.Request)
Open
OID
0fb476…77f7:397
renderEditThread details

Inspect func

renderRepostThread

func(res *v0.ResponseWriter, req *v0.Request)
Open
OID
0fb476…77f7:398
renderRepostThread details

Inspect func

makeBoardURI

func(b *boards.Board) string
Open
OID
0fb476…77f7:399
makeBoardURI details

Inspect func

makeFreezeBoardURI

func(b *boards.Board) string
Open
OID
0fb476…77f7:401
makeFreezeBoardURI details

Inspect func

makeUnfreezeBoardURI

func(b *boards.Board) string
Open
OID
0fb476…77f7:402
makeUnfreezeBoardURI details

Inspect func

makeInviteMemberURI

func(b *boards.Board) string
Open
OID
0fb476…77f7:403
makeInviteMemberURI details

Inspect func

makeCreateThreadURI

func(b *boards.Board) string
Open
OID
0fb476…77f7:404
makeCreateThreadURI details

Inspect func

makeRequestInviteURI

func(b *boards.Board) string
Open
OID
0fb476…77f7:405
makeRequestInviteURI details

Inspect func

makeThreadURI

func(p *boards.Post) string
Open
OID
0fb476…77f7:406
makeThreadURI details

Inspect func

makeThreadFlatURI

func(p *boards.Post) string

makeThreadFlatURI links to the thread's flat "all comments" view. Works for a thread or any reply within it (makeThreadURI resolves to the thread).

Open
OID
0fb476…77f7:408
makeThreadFlatURI details

Inspect func

makeReplyURI

func(p *boards.Post) string
Open
OID
0fb476…77f7:409
makeReplyURI details

Inspect func

makeCreateReplyURI

func(p *boards.Post) string
Open
OID
0fb476…77f7:410
makeCreateReplyURI details

Inspect func

makeCreateRepostURI

func(p *boards.Post) string
Open
OID
0fb476…77f7:411
makeCreateRepostURI details

Inspect func

makeDeletePostURI

func(p *boards.Post) string
Open
OID
0fb476…77f7:412
makeDeletePostURI details

Inspect func

makeEditPostURI

func(p *boards.Post) string
Open
OID
0fb476…77f7:413
makeEditPostURI details

Inspect func

makeFlagURI

func(p *boards.Post) string
Open
OID
0fb476…77f7:414
makeFlagURI details

Inspect func

makeFlaggingReasonsURI

func(p *boards.Post) string
Open
OID
0fb476…77f7:415
makeFlaggingReasonsURI details

Inspect func
realmPkgPath : untyped string ="gno.land/r/gnoland/boards2/v1"
gRealmPath : untyped string ="/r/gnoland/boards2/v1"
RequiredAccountAmount : int64 =3000000000
Notice : string =""
Help : string =""
gListedBoardsByID : v0.BPTree Inspect
gInviteRequests : v0.BPTree Inspect
gBannedUsers : v0.BPTree Inspect
gLocked : struct{...} Inspect
gBoards : *boards.storage Inspect
gBoardsSequence : *boards.idGenerator Inspect
gPerms : *permissions.Permissions Inspect
initRealmPermissions : func(owners [].uverse.address) boards.Permissions Inspect
getInviteRequests : func(boardID boards.ID) (*v0.BPTree, found bool) Inspect
getBannedUsers : func(boardID boards.ID) (*v0.BPTree, found bool) Inspect
mustGetBoardByName : func(name string) *boards.Board Inspect
mustGetBoard : func(id boards.ID) *boards.Board Inspect
getThread : func(board *boards.Board, threadID boards.ID) (*boards.Post, bool) Inspect
getReply : func(thread *boards.Post, replyID boards.ID) (*boards.Post, bool) Inspect
mustGetThread : func(board *boards.Board, threadID boards.ID) *boards.Post Inspect
mustGetReply : func(thread *boards.Post, replyID boards.ID) *boards.Post Inspect
mustGetPermissions : func(bid boards.ID) boards.Permissions Inspect
parseRealmPath : func(path string) *realmpath.Request Inspect
DefaultFlaggingThreshold : untyped bigint =(1 <untyped> bigint)
gFlaggingThresholds : v0.BPTree Inspect
flagItem : func(post *boards.Post, user .uverse.address, reason string, threshold int) bool Inspect
getFlaggingThreshold : func(bid boards.ID) int Inspect
dateFormat : untyped string ="2006-01-02 3:04pm MST"
padLeft : func(s string, length int) string Inspect
padZero : func(u64 uint64, length int) string Inspect
indentBody : func(indent string, body string) string Inspect
indentForeignBody : func(indent string, body string, budget *int) string Inspect
summaryOf : func(text string, length int) string Inspect
getRoleBadge : func(post *boards.Post) string Inspect
BoardMeta : type =v1.BoardMeta
ThreadMeta : type =v1.ThreadMeta
RoleOwner : boards.Role =<gnolang.StringValue>
RoleAdmin : untyped string ="admin"
RoleModerator : untyped string ="moderator"
RoleGuest : untyped string ="guest"
PermissionCustom : boards.Permission =<zero>
PermissionBoardCreate : boards.Permission =<zero>
PermissionBoardFlaggingUpdate : boards.Permission =<zero>
PermissionBoardFreeze : boards.Permission =<zero>
PermissionBoardRename : boards.Permission =<zero>
PermissionMemberInvite : boards.Permission =<zero>
PermissionMemberInviteRevoke : boards.Permission =<zero>
PermissionMemberRemove : boards.Permission =<zero>
PermissionPermissionsUpdate : boards.Permission =<zero>
PermissionRealmHelpChange : boards.Permission =<zero>
PermissionRealmLock : boards.Permission =<zero>
PermissionRealmNotice : boards.Permission =<zero>
PermissionAccountRequiredAmountChange : boards.Permission =<zero>
PermissionReplyCreate : boards.Permission =<zero>
PermissionReplyDelete : boards.Permission =<zero>
PermissionReplyFlag : boards.Permission =<zero>
PermissionRoleChange : boards.Permission =<zero>
PermissionThreadCreate : boards.Permission =<zero>
PermissionThreadDelete : boards.Permission =<zero>
PermissionThreadEdit : boards.Permission =<zero>
PermissionThreadFlag : boards.Permission =<zero>
PermissionThreadFreeze : boards.Permission =<zero>
PermissionThreadRepost : boards.Permission =<zero>
PermissionUserBan : boards.Permission =<zero>
PermissionUserUnban : boards.Permission =<zero>
createBasicBoardPermissions : func(owner .uverse.address) *permissions.Permissions Inspect
createOpenBoardPermissions : func(owner .uverse.address) *permissions.Permissions Inspect
validateBasicBoardCreate : func(perms boards.Permissions, args boards.Args) .uverse.error Inspect
validateBasicBoardRename : func(boards.Permissions, args boards.Args) .uverse.error Inspect
validateBasicMemberInvite : func(perms boards.Permissions, args boards.Args) .uverse.error Inspect
validateBasicRoleChange : func(perms boards.Permissions, args boards.Args) .uverse.error Inspect
checkBoardNameIsNotAddress : func(s string) .uverse.error Inspect
checkBoardNameBelongsToAddress : func(owner .uverse.address, name string) .uverse.error Inspect
validateOpenBoardRename : func(boards.Permissions, args boards.Args) .uverse.error Inspect
validateOpenMemberInvite : func(perms boards.Permissions, args boards.Args) .uverse.error Inspect
validateOpenRoleChange : func(perms boards.Permissions, args boards.Args) .uverse.error Inspect
validateOpenThreadCreate : func(perms boards.Permissions, args boards.Args) .uverse.error Inspect
validateOpenReplyCreate : func(perms boards.Permissions, args boards.Args) .uverse.error Inspect
checkAccountHasAmount : func(addr .uverse.address, amount int64) .uverse.error Inspect
boardsNS : untyped string ="gno.land/r/gnoland/boards2/"
GetRealmPermissions : func() boards.Permissions Inspect
GetBoard : func(boardID boards.ID) (*boards.Board, found bool) Inspect
MustGetBoard : func(boardID boards.ID) *boards.Board Inspect
Iterate : func(start int, count int, fn boards.BoardIterFn) bool Inspect
assertCallerHasBoardsNS : func(int, rlm .uverse.realm) Inspect
MaxBoardNameLength : untyped bigint =(50 <untyped> bigint)
MaxThreadTitleLength : untyped bigint =(100 <untyped> bigint)
MaxThreadBodyLength : untyped bigint =(40000 <untyped> bigint)
MaxReplyLength : untyped bigint =(10000 <untyped> bigint)
reBoardName : *regexp.Regexp Inspect
SetHelp : func(content string) Inspect
SetRequiredAccountAmount : func(amount int64) Inspect
SetPermissions : func(boardID boards.ID, p boards.Permissions) Inspect
SetRealmNotice : func(message string) Inspect
GetBoardIDFromName : func(name string) (boards.ID, found bool) Inspect
BoardCount : func() int Inspect
CreateBoard : func(name string, listed bool, open bool) boards.ID Inspect
RenameBoard : func(name string, newName string) Inspect
CreateThread : func(boardID boards.ID, title string, body string) boards.ID Inspect
CreateReply : func(boardID boards.ID, threadID boards.ID, replyID boards.ID, body string) boards.ID Inspect
CreateRepost : func(boardID boards.ID, threadID boards.ID, destinationBoardID boards.ID, title string, body string) boards.ID Inspect
DeleteThread : func(boardID boards.ID, threadID boards.ID) Inspect
DeleteReply : func(boardID boards.ID, threadID boards.ID, replyID boards.ID) Inspect
EditThread : func(boardID boards.ID, threadID boards.ID, title string, body string) Inspect
EditReply : func(boardID boards.ID, threadID boards.ID, replyID boards.ID, body string) Inspect
RemoveMember : func(boardID boards.ID, member .uverse.address) Inspect
IsMember : func(boardID boards.ID, user .uverse.address) bool Inspect
HasMemberRole : func(boardID boards.ID, member .uverse.address, role boards.Role) bool Inspect
ChangeMemberRole : func(boardID boards.ID, member .uverse.address, role boards.Role) Inspect
assertMemberAddressIsValid : func(member .uverse.address) Inspect
assertUserAddressIsValid : func(user .uverse.address) Inspect
assertBoardExists : func(id boards.ID) Inspect
assertBoardIsNotFrozen : func(b *boards.Board) Inspect
assertIsValidBoardName : func(name string) Inspect
assertThreadIsNotFrozen : func(t *boards.Post) Inspect
assertNameIsNotEmpty : func(name string) Inspect
assertTitleIsValid : func(title string) Inspect
assertBodyIsNotEmpty : func(body string) Inspect
assertBoardNameNotExists : func(name string) Inspect
assertThreadExists : func(b *boards.Board, threadID boards.ID) Inspect
assertReplyExists : func(thread *boards.Post, replyID boards.ID) Inspect
assertThreadIsVisible : func(thread *boards.Post) Inspect
assertReplyIsVisible : func(thread *boards.Post) Inspect
assertThreadBodyIsValid : func(body string) Inspect
assertReplyBodyIsValid : func(body string) Inspect
assertMembersUpdateIsEnabled : func(boardID boards.ID) Inspect
BanDay : uint =24
BanWeek : uint =168
BanYear : uint =8760
Ban : func(boardID boards.ID, user .uverse.address, hours uint, reason string) Inspect
Unban : func(boardID boards.ID, user .uverse.address, reason string) Inspect
IsBanned : func(boardID boards.ID, user .uverse.address) bool Inspect
assertAddressIsValid : func(addr .uverse.address) Inspect
assertUserIsNotBanned : func(boardID boards.ID, user .uverse.address) Inspect
SetFlaggingThreshold : func(boardID boards.ID, threshold int) Inspect
GetFlaggingThreshold : func(boardID boards.ID) int Inspect
FlagThread : func(boardID boards.ID, threadID boards.ID, reason string) Inspect
FlagReply : func(boardID boards.ID, threadID boards.ID, replyID boards.ID, reason string) Inspect
FreezeBoard : func(boardID boards.ID) Inspect
UnfreezeBoard : func(boardID boards.ID) Inspect
IsBoardFrozen : func(boardID boards.ID) bool Inspect
FreezeThread : func(boardID boards.ID, threadID boards.ID) Inspect
UnfreezeThread : func(boardID boards.ID, threadID boards.ID) Inspect
IsThreadFrozen : func(boardID boards.ID, threadID boards.ID) bool Inspect
setBoardReadonly : func(int, rlm .uverse.realm, boardID boards.ID, readonly bool) Inspect
setThreadReadonly : func(int, rlm .uverse.realm, boardID boards.ID, threadID boards.ID, readonly bool) Inspect
Invite : type =v1.Invite
InviteMember : func(boardID boards.ID, user .uverse.address, role boards.Role) Inspect
InviteMembers : func(boardID boards.ID, invites []v1.Invite) Inspect
RequestInvite : func(boardID boards.ID) Inspect
AcceptInvite : func(boardID boards.ID, user .uverse.address) Inspect
RevokeInvite : func(boardID boards.ID, user .uverse.address) Inspect
inviteMembers : func(int, rlm .uverse.realm, boardID boards.ID, invites []v1.Invite) Inspect
assertInviteRequestExists : func(boardID boards.ID, user .uverse.address) Inspect
assertNoDuplicatedInvites : func(invites []v1.Invite) Inspect
LockRealm : func(lockRealmMembers bool) Inspect
IsRealmLocked : func() bool Inspect
AreRealmMembersLocked : func() bool Inspect
assertRealmIsNotLocked : func() Inspect
assertRealmMembersAreNotLocked : func() Inspect
pageSizeDefault : untyped bigint =(6 <untyped> bigint)
pageSizeReplies : untyped bigint =(10 <untyped> bigint)
pageSizeFlat : untyped bigint =(50 <untyped> bigint)
maxRenderedBodies : func() int Inspect
menuManageBoard : untyped string ="manageBoard"
createBoardURI : string ="/r/gnoland/boards2/v1:create-board"
adminUsersURI : string ="/r/gnoland/boards2/v1:admin-users"
helpURI : string ="/r/gnoland/boards2/v1:help"
Render : func(path string) string Inspect
renderHelp : func(res *v0.ResponseWriter, *v0.Request) Inspect
renderBoardsList : func(res *v0.ResponseWriter, req *v0.Request) Inspect
renderBoardListMenu : func(res *v0.ResponseWriter, req *v0.Request) Inspect
renderCreateBoard : func(res *v0.ResponseWriter, *v0.Request) Inspect
renderMembers : func(res *v0.ResponseWriter, req *v0.Request) Inspect
renderInvites : func(res *v0.ResponseWriter, req *v0.Request) Inspect
renderBannedUsers : func(res *v0.ResponseWriter, req *v0.Request) Inspect
infoAlert : func(title string, msg string) string Inspect
rolesToString : func(roles []boards.Role) string Inspect
menuURL : func(name string) string Inspect
getCurrentMenu : func(rawURL string) string Inspect
renderBoard : func(res *v0.ResponseWriter, req *v0.Request) Inspect
renderSubMenu : func(items []string) string Inspect
renderBoardMenu : func(board *boards.Board, req *v0.Request) string Inspect
renderInviteMember : func(res *v0.ResponseWriter, req *v0.Request) Inspect
renderPost : func(post *boards.Post, path string, indent string, levels int, budget *int, desc bool) string Inspect
renderPostContent : func(post *boards.Post, indent string, levels int, budget *int) string Inspect
renderPostInner : func(post *boards.Post, path string) string Inspect
renderSourcePost : func(post *boards.Post, indent string, budget *int) (string, *boards.Post) Inspect
renderFlagPost : func(res *v0.ResponseWriter, req *v0.Request) Inspect
renderFlaggingReasonsPost : func(res *v0.ResponseWriter, req *v0.Request) Inspect
renderReplyPost : func(res *v0.ResponseWriter, req *v0.Request) Inspect
renderReply : func(res *v0.ResponseWriter, req *v0.Request) Inspect
newClampedPager : func(path string, size int, pageSize int) pager.Pager Inspect
renderTopLevelReplies : func(post *boards.Post, path string, indent string, levels int, budget *int) string Inspect
renderSubReplies : func(post *boards.Post, indent string, levels int, budget *int, desc bool) string Inspect
renderEditReply : func(res *v0.ResponseWriter, req *v0.Request) Inspect
maxFlatIndentDepth : untyped bigint =(6 <untyped> bigint)
renderThread : func(res *v0.ResponseWriter, req *v0.Request) Inspect
renderThreadFlat : func(thread *boards.Post, path string, budget *int) string Inspect
flatIndent : func(thread *boards.Post, reply *boards.Post) string Inspect
renderThreadSummary : func(thread *boards.Post) string Inspect
renderCreateThread : func(res *v0.ResponseWriter, req *v0.Request) Inspect
renderEditThread : func(res *v0.ResponseWriter, req *v0.Request) Inspect
renderRepostThread : func(res *v0.ResponseWriter, req *v0.Request) Inspect
makeBoardURI : func(b *boards.Board) string Inspect
makeFreezeBoardURI : func(b *boards.Board) string Inspect
makeUnfreezeBoardURI : func(b *boards.Board) string Inspect
makeInviteMemberURI : func(b *boards.Board) string Inspect
makeCreateThreadURI : func(b *boards.Board) string Inspect
makeRequestInviteURI : func(b *boards.Board) string Inspect
makeThreadURI : func(p *boards.Post) string Inspect
makeThreadFlatURI : func(p *boards.Post) string Inspect
makeReplyURI : func(p *boards.Post) string Inspect
makeCreateReplyURI : func(p *boards.Post) string Inspect
makeCreateRepostURI : func(p *boards.Post) string Inspect
makeDeletePostURI : func(p *boards.Post) string Inspect
makeEditPostURI : func(p *boards.Post) string Inspect
makeFlagURI : func(p *boards.Post) string Inspect
makeFlaggingReasonsURI : func(p *boards.Post) string Inspect