mirror of https://gitlab.com/bashrc2/epicyon
				
				
				
			Emoji icons for keyboard menus
							parent
							
								
									7e9a41ee40
								
							
						
					
					
						commit
						ca77dd959a
					
				| 
						 | 
				
			
			@ -41,6 +41,7 @@ from filters import isFiltered
 | 
			
		|||
from follow import isFollowerOfPerson
 | 
			
		||||
from webapp_frontscreen import htmlFrontScreen
 | 
			
		||||
from webapp_utils import htmlKeyboardNavigation
 | 
			
		||||
from webapp_utils import htmlHideFromScreenReader
 | 
			
		||||
from webapp_utils import scheduledPostsExist
 | 
			
		||||
from webapp_utils import getPersonAvatarUrl
 | 
			
		||||
from webapp_utils import htmlHeaderWithExternalStyle
 | 
			
		||||
| 
						 | 
				
			
			@ -712,15 +713,31 @@ def htmlProfile(rssIconAtTop: bool,
 | 
			
		|||
    # keyboard navigation
 | 
			
		||||
    userPathStr = '/users/' + nickname
 | 
			
		||||
    deft = defaultTimeline
 | 
			
		||||
    menuTimeline = \
 | 
			
		||||
        htmlHideFromScreenReader('🏠 ') + translate['Switch to timeline view']
 | 
			
		||||
    menuEdit = \
 | 
			
		||||
        htmlHideFromScreenReader('✍ ') + translate['Edit']
 | 
			
		||||
    menuFollowing = \
 | 
			
		||||
        htmlHideFromScreenReader('👥 ') + translate['Following']
 | 
			
		||||
    menuFollowers = \
 | 
			
		||||
        htmlHideFromScreenReader('👪 ') + translate['Followers']
 | 
			
		||||
    menuRoles = \
 | 
			
		||||
        htmlHideFromScreenReader('🤚 ') + translate['Roles']
 | 
			
		||||
    menuSkills = \
 | 
			
		||||
        htmlHideFromScreenReader('🛠️') + translate['Skills']
 | 
			
		||||
    menuShares = \
 | 
			
		||||
        htmlHideFromScreenReader('🤝️') + translate['Shares']
 | 
			
		||||
    menuLogout = \
 | 
			
		||||
        htmlHideFromScreenReader('❎️') + translate['Logout']
 | 
			
		||||
    navLinks = {
 | 
			
		||||
        translate['Switch to timeline view']: userPathStr + '/' + deft,
 | 
			
		||||
        translate['Edit']: userPathStr + '/editprofile',
 | 
			
		||||
        translate['Following']: userPathStr + '/following#timeline',
 | 
			
		||||
        translate['Followers']: userPathStr + '/followers#timeline',
 | 
			
		||||
        translate['Roles']: userPathStr + '/roles#timeline',
 | 
			
		||||
        translate['Skills']: userPathStr + '/skills#timeline',
 | 
			
		||||
        translate['Shares']: userPathStr + '/shares#timeline',
 | 
			
		||||
        translate['Logout']: '/logout'
 | 
			
		||||
        menuTimeline: userPathStr + '/' + deft,
 | 
			
		||||
        menuEdit: userPathStr + '/editprofile',
 | 
			
		||||
        menuFollowing: userPathStr + '/following#timeline',
 | 
			
		||||
        menuFollowers: userPathStr + '/followers#timeline',
 | 
			
		||||
        menuRoles: userPathStr + '/roles#timeline',
 | 
			
		||||
        menuSkills: userPathStr + '/skills#timeline',
 | 
			
		||||
        menuShares: userPathStr + '/shares#timeline',
 | 
			
		||||
        menuLogout: '/logout'
 | 
			
		||||
    }
 | 
			
		||||
    profileStr = htmlKeyboardNavigation(textModeBanner, navLinks)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1347,9 +1364,13 @@ def htmlEditProfile(cssCache: {}, translate: {}, baseDir: str, path: str,
 | 
			
		|||
    # keyboard navigation
 | 
			
		||||
    userPathStr = '/users/' + nickname
 | 
			
		||||
    userTimalineStr = '/users/' + nickname + '/' + defaultTimeline
 | 
			
		||||
    menuTimeline = \
 | 
			
		||||
        htmlHideFromScreenReader('🏠 ') + translate['Switch to timeline view']
 | 
			
		||||
    menuProfile = \
 | 
			
		||||
        htmlHideFromScreenReader('👤 ') + translate['Switch to profile view']
 | 
			
		||||
    navLinks = {
 | 
			
		||||
        translate['Switch to profile view']: userPathStr,
 | 
			
		||||
        translate['Switch to timeline view']: userTimalineStr
 | 
			
		||||
        menuProfile: userPathStr,
 | 
			
		||||
        menuTimeline: userTimalineStr
 | 
			
		||||
    }
 | 
			
		||||
    editProfileForm += htmlKeyboardNavigation(textModeBanner, navLinks)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,6 +15,7 @@ from utils import removeIdEnding
 | 
			
		|||
from follow import followerApprovalActive
 | 
			
		||||
from person import isPersonSnoozed
 | 
			
		||||
from webapp_utils import htmlKeyboardNavigation
 | 
			
		||||
from webapp_utils import htmlHideFromScreenReader
 | 
			
		||||
from webapp_utils import htmlPostSeparator
 | 
			
		||||
from webapp_utils import getBannerFile
 | 
			
		||||
from webapp_utils import htmlHeaderWithExternalStyle
 | 
			
		||||
| 
						 | 
				
			
			@ -378,21 +379,49 @@ def htmlTimeline(cssCache: {}, defaultTimeline: str,
 | 
			
		|||
    sharesStr = translate['Shares']
 | 
			
		||||
    if newShare:
 | 
			
		||||
        sharesStr = '*' + sharesStr + '*'
 | 
			
		||||
    menuProfile = \
 | 
			
		||||
        htmlHideFromScreenReader('👤 ') + translate['Switch to profile view']
 | 
			
		||||
    menuInbox = \
 | 
			
		||||
        htmlHideFromScreenReader('📥 ') + translate['Inbox']
 | 
			
		||||
    menuOutbox = \
 | 
			
		||||
        htmlHideFromScreenReader('📤 ') + translate['Outbox']
 | 
			
		||||
    menuSearch = \
 | 
			
		||||
        htmlHideFromScreenReader('🔍 ') + translate['Search and follow']
 | 
			
		||||
    menuCalendar = \
 | 
			
		||||
        htmlHideFromScreenReader('📅 ') + calendarStr
 | 
			
		||||
    menuDM = \
 | 
			
		||||
        htmlHideFromScreenReader('✉ ') + dmStr
 | 
			
		||||
    menuReplies = \
 | 
			
		||||
        htmlHideFromScreenReader('↩️') + repliesStr
 | 
			
		||||
    menuBookmarks = \
 | 
			
		||||
        htmlHideFromScreenReader('🔖 ') + translate['Bookmarks']
 | 
			
		||||
    menuShares = \
 | 
			
		||||
        htmlHideFromScreenReader('🤝️') + sharesStr
 | 
			
		||||
    menuEvents = \
 | 
			
		||||
        htmlHideFromScreenReader('🎫️') + translate['Events']
 | 
			
		||||
    menuBlogs = \
 | 
			
		||||
        htmlHideFromScreenReader('📝️') + translate['Blogs']
 | 
			
		||||
    menuNewswire = \
 | 
			
		||||
        htmlHideFromScreenReader('📰️') + translate['Newswire']
 | 
			
		||||
    menuLinks = \
 | 
			
		||||
        htmlHideFromScreenReader('🔗️') + translate['Links']
 | 
			
		||||
    menuNewPost = \
 | 
			
		||||
        htmlHideFromScreenReader('➕️') + translate['Create a new post']
 | 
			
		||||
    navLinks = {
 | 
			
		||||
        translate['Switch to profile view']: '/users/' + nickname,
 | 
			
		||||
        translate['Inbox']: usersPath + '/inbox#timeline',
 | 
			
		||||
        translate['Search and follow']: usersPath + '/search',
 | 
			
		||||
        translate['Create a new post']: usersPath + '/newpost',
 | 
			
		||||
        calendarStr: usersPath + '/calendar',
 | 
			
		||||
        dmStr: usersPath + '/dm#timeline',
 | 
			
		||||
        repliesStr: usersPath + '/tlreplies#timeline',
 | 
			
		||||
        translate['Outbox']: usersPath + '/inbox#timeline',
 | 
			
		||||
        translate['Bookmarks']: usersPath + '/tlbookmarks#timeline',
 | 
			
		||||
        sharesStr: usersPath + '/tlshares#timeline',
 | 
			
		||||
        translate['Blogs']: usersPath + '/tlblogs#timeline',
 | 
			
		||||
        translate['Events']: usersPath + '/tlevents#timeline',
 | 
			
		||||
        translate['Skip to Newswire']: '#newswire',
 | 
			
		||||
        translate['Skip to Links']: '#links'
 | 
			
		||||
        menuProfile: '/users/' + nickname,
 | 
			
		||||
        menuInbox: usersPath + '/inbox#timeline',
 | 
			
		||||
        menuSearch: usersPath + '/search',
 | 
			
		||||
        menuNewPost: usersPath + '/newpost',
 | 
			
		||||
        menuCalendar: usersPath + '/calendar',
 | 
			
		||||
        menuDM: usersPath + '/dm#timeline',
 | 
			
		||||
        menuReplies: usersPath + '/tlreplies#timeline',
 | 
			
		||||
        menuOutbox: usersPath + '/inbox#timeline',
 | 
			
		||||
        menuBookmarks: usersPath + '/tlbookmarks#timeline',
 | 
			
		||||
        menuShares: usersPath + '/tlshares#timeline',
 | 
			
		||||
        menuBlogs: usersPath + '/tlblogs#timeline',
 | 
			
		||||
        menuEvents: usersPath + '/tlevents#timeline',
 | 
			
		||||
        menuNewswire: '#newswire',
 | 
			
		||||
        menuLinks: '#links'
 | 
			
		||||
    }
 | 
			
		||||
    if moderator:
 | 
			
		||||
        navLinks[translate['Mod']] = usersPath + '/moderation'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -880,6 +880,12 @@ def getAvatarImageUrl(session,
 | 
			
		|||
    return avatarUrl
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def htmlHideFromScreenReader(htmlStr: str) -> str:
 | 
			
		||||
    """Returns html which is hidden from screen readers
 | 
			
		||||
    """
 | 
			
		||||
    return '<span aria-hidden="true">' + htmlStr + '</span>'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def htmlKeyboardNavigation(banner: str, links: {},
 | 
			
		||||
                           usersPath=None, translate=None,
 | 
			
		||||
                           followApprovals=False) -> str:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue