Icons private use area (#9136)

* move all glyphs to private area

* replace exclamation mark icon

* replace quotation mark icon

* replace rapid icon

* replace share icon

* replace patron icon

* replace gear icon

* replace phone icon

* replace streak icon

* replace die-six and ograve icons

* replace flag icon

* replace flame icon

* replace feather icon

* replace turtle icon

* replace nuclear icon

* replace arrow-streamline-target icon

* replace buffer icon

* replace upload-cloud icon

* replace number and some special characters icons

* replace upper case alphabet characters icons

* replace alphabet characters icons and a few special characters icons

* fixing some missing icons

* notifications icons fix

* a few more icons found

* changing a few more icons
pull/9180/head
Andrew Mazur 2021-06-14 10:13:27 +03:00 committed by GitHub
parent ef28d64ac1
commit e4db7c25e6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
243 changed files with 776 additions and 776 deletions

View File

@ -165,7 +165,7 @@ trait FormHelper { self: I18nHelper =>
def submit(
content: Frag,
icon: Option[String] = Some("E"),
icon: Option[String] = Some(""),
nameValue: Option[(String, String)] = None,
klass: String = "",
confirm: Option[String] = None

View File

@ -110,7 +110,7 @@ trait GameHelper { self: I18nHelper with UserHelper with AiHelper with StringHel
def gameVsText(game: Game, withRatings: Boolean = false): String =
Namer.gameVsTextBlocking(game, withRatings)(lightUser)
val berserkIconSpan = iconTag("`")
val berserkIconSpan = iconTag("")
def playerLink(
player: Player,

View File

@ -21,7 +21,7 @@ trait TeamHelper { self: HasEnv =>
def teamLink(id: String, name: Frag, withIcon: Boolean): Tag =
a(
href := routes.Team.show(id),
dataIcon := withIcon.option("f"),
dataIcon := withIcon.option(""),
cls := withIcon option "text"
)(name)

View File

@ -29,14 +29,14 @@ trait TournamentHelper { self: I18nHelper with DateHelper with UserHelper =>
def tournamentLink(tour: Tournament)(implicit lang: Lang): Frag =
a(
dataIcon := "g",
dataIcon := "",
cls := (if (tour.isScheduled) "text is-gold" else "text"),
href := routes.Tournament.show(tour.id).url
)(tour.name())
def tournamentLink(tourId: String)(implicit lang: Lang): Frag =
a(
dataIcon := "g",
dataIcon := "",
cls := "text",
href := routes.Tournament.show(tourId).url
)(tournamentIdToName(tourId))
@ -48,7 +48,7 @@ trait TournamentHelper { self: I18nHelper with DateHelper with UserHelper =>
private def icon(c: Char) = s"""<span data-icon="$c"></span>"""
private val replacements = List(
"Lichess " -> "",
"Marathon" -> icon('\\'),
"Marathon" -> icon(''),
"HyperBullet" -> s"H${icon(PerfType.Bullet.iconChar)}",
"SuperBlitz" -> s"S${icon(PerfType.Blitz.iconChar)}"
) ::: PerfType.leaderboardable.filterNot(PerfType.translated.contains).map { pt =>
@ -65,7 +65,7 @@ trait TournamentHelper { self: I18nHelper with DateHelper with UserHelper =>
def tournamentIconChar(tour: Tournament): String =
tour.schedule.map(_.freq) match {
case Some(Schedule.Freq.Marathon | Schedule.Freq.ExperimentalMarathon) => "\\"
case Some(Schedule.Freq.Marathon | Schedule.Freq.ExperimentalMarathon) => ""
case _ => tour.spotlight.flatMap(_.iconFont) | tour.perfType.iconChar.toString
}
}

View File

@ -279,7 +279,7 @@ trait UserHelper { self: I18nHelper with StringHelper with NumberHelper =>
s"$name played $nbGames games since $createdAt.$currentRating"
}
val patronIconChar = ""
val patronIconChar = ""
val lineIconChar = ""
val lineIcon: Frag = i(cls := "line")

View File

@ -17,7 +17,7 @@ object close {
active = "close"
) {
div(cls := "account box box-pad")(
h1(dataIcon := "j", cls := "text")(closeAccount()),
h1(dataIcon := "", cls := "text")(closeAccount()),
if (managed)
p("Your account is managed, and cannot be closed.")
else
@ -30,7 +30,7 @@ object close {
a(href := routes.User.show(u.username))(changedMindDoNotCloseAccount()),
form3.submit(
closeAccount(),
icon = "j".some,
icon = "".some,
confirm = closingIsDefinitive.txt().some,
klass = "button-red"
)

View File

@ -178,7 +178,7 @@ object pref {
radios(form("insightShare"), translatedInsightShareChoices)
)
),
p(cls := "saved text none", dataIcon := "E")(yourPreferencesHaveBeenSaved())
p(cls := "saved text none", dataIcon := "")(yourPreferencesHaveBeenSaved())
)
)
}

View File

@ -46,7 +46,7 @@ object reopen {
title = "Reopen your account"
) {
main(cls := "page-small box box-pad")(
h1(cls := "is-green text", dataIcon := "E")(trans.checkYourEmail()),
h1(cls := "is-green text", dataIcon := "")(trans.checkYourEmail()),
p("We've sent you an email with a link."),
p(trans.ifYouDoNotSeeTheEmailCheckOtherPlaces())
)

View File

@ -59,7 +59,7 @@ object security {
td(
s.session.id != cur option
postForm(action := routes.Account.signout(s.session.id))(
submitButton(cls := "button button-red", title := trans.logOut.txt(), dataIcon := "L")
submitButton(cls := "button button-red", title := trans.logOut.txt(), dataIcon := "")
)
)
}

View File

@ -67,7 +67,7 @@ object twoFactor {
) {
div(cls := "account twofactor box box-pad")(
h1(
i(cls := "is-green text", dataIcon := "E"),
i(cls := "is-green text", dataIcon := ""),
twoFactorEnabled()
),
standardFlash(),

View File

@ -49,7 +49,7 @@ object activity {
private def renderPatron(p: Patron)(implicit ctx: Context) =
div(cls := "entry plan")(
iconTag(""),
iconTag(""),
div(
if (p.months == 0) a(href := routes.Plan.index)("Lifetime Patron!")
else
@ -83,7 +83,7 @@ object activity {
private def renderPuzzles(u: User)(p: Puzzles)(implicit ctx: Context) =
entryTag(
iconTag("-"),
iconTag(""),
scoreFrag(p.score),
div(
trans.activity.solvedNbPuzzles.pluralSame(p.score.size),
@ -93,7 +93,7 @@ object activity {
private def renderStorm(s: Storm)(implicit ctx: Context) =
entryTag(
iconTag("~"),
iconTag(""),
scoreTag(winTag(trans.storm.highscoreX(strong(s.score)))),
div(
trans.storm.playedNbRunsOfPuzzleStorm
@ -103,7 +103,7 @@ object activity {
private def renderRacer(s: Racer)(implicit ctx: Context) =
entryTag(
iconTag(","),
iconTag(""),
scoreTag(winTag(trans.storm.highscoreX(strong(s.score)))),
div(
trans.storm.playedNbRunsOfPuzzleStorm
@ -113,7 +113,7 @@ object activity {
private def renderStreak(s: Streak)(implicit ctx: Context) =
entryTag(
iconTag("}"),
iconTag(""),
scoreTag(winTag(trans.storm.highscoreX(strong(s.score)))),
div(
trans.storm.playedNbRunsOfPuzzleStorm
@ -135,7 +135,7 @@ object activity {
private def renderPosts(posts: Map[lila.forum.Topic, List[lila.forum.Post]])(implicit ctx: Context) =
ctx.noKid option entryTag(
iconTag("d"),
iconTag(""),
div(
posts.toSeq.map { case (topic, posts) =>
val url = routes.ForumTopic.show(topic.categId, topic.slug)
@ -154,7 +154,7 @@ object activity {
private def renderCorresMoves(nb: Int, povs: List[lila.game.LightPov])(implicit ctx: Context) =
entryTag(
iconTag(";"),
iconTag(""),
div(
trans.activity.playedNbMoves.pluralSame(nb),
" ",
@ -174,7 +174,7 @@ object activity {
private def renderCorresEnds(score: Score, povs: List[lila.game.LightPov])(implicit ctx: Context) =
entryTag(
iconTag(";"),
iconTag(""),
div(
trans.activity.completedNbGames.plural(score.size, subCount(score.size)),
score.rp.filterNot(_.isEmpty).map(ratingProgFrag),
@ -200,7 +200,7 @@ object activity {
private def renderFollows(all: Follows)(implicit ctx: Context) =
entryTag(
iconTag("h"),
iconTag(""),
div(
List(all.in.map(_ -> true), all.out.map(_ -> false)).flatten map { case (f, in) =>
frag(
@ -219,7 +219,7 @@ object activity {
private def renderSimuls(u: User)(simuls: List[lila.simul.Simul])(implicit ctx: Context) =
entryTag(
iconTag("f"),
iconTag(""),
div(
simuls.groupBy(_.isHost(u.some)).toSeq.map { case (isHost, simuls) =>
frag(
@ -244,7 +244,7 @@ object activity {
private def renderStudies(studies: List[lila.study.Study.IdName])(implicit ctx: Context) =
entryTag(
iconTag("4"),
iconTag(""),
div(
trans.activity.createdNbStudies.pluralSame(studies.size),
subTag(
@ -257,7 +257,7 @@ object activity {
private def renderTeams(teams: Teams)(implicit ctx: Context) =
ctx.noKid option entryTag(
iconTag("f"),
iconTag(""),
div(
trans.activity.joinedNbTeams.pluralSame(teams.value.size),
subTag(fragList(teams.value.map(id => teamLink(id))))
@ -266,7 +266,7 @@ object activity {
private def renderTours(tours: lila.activity.ActivityView.Tours)(implicit ctx: Context) =
entryTag(
iconTag("g"),
iconTag(""),
div(
trans.activity.competedInNbTournaments.pluralSame(tours.nb),
subTag(
@ -276,7 +276,7 @@ object activity {
"is-gold" -> (t.rank == 1),
"text" -> (t.rank <= 3)
),
dataIcon := (t.rank <= 3).option("g")
dataIcon := (t.rank <= 3).option("")
)(
trans.activity.rankedInTournament.plural(
t.nbGames,
@ -294,7 +294,7 @@ object activity {
private def renderSwisses(swisses: List[(Swiss.IdName, Int)])(implicit ctx: Context) =
entryTag(
iconTag("g"),
iconTag(""),
div(
trans.activity.competedInNbSwissTournaments.pluralSame(swisses.size),
subTag(
@ -304,7 +304,7 @@ object activity {
"is-gold" -> (rank == 1),
"text" -> (rank <= 3)
),
dataIcon := (rank <= 3).option("g")
dataIcon := (rank <= 3).option("")
)(
trans.activity.rankedInSwissTournament(
strong(rank),
@ -325,7 +325,7 @@ object activity {
private def renderSignup(implicit ctx: Context) =
entryTag(
iconTag("s"),
iconTag(""),
div(trans.activity.signedUp())
)

View File

@ -47,7 +47,7 @@ object replay {
}
val pgnLinks = div(
a(
dataIcon := "x",
dataIcon := "",
cls := "text",
href := s"${routes.Game.exportOne(game.id)}?literate=1",
downloadAttr
@ -55,7 +55,7 @@ object replay {
trans.downloadAnnotated()
),
a(
dataIcon := "x",
dataIcon := "",
cls := "text",
href := s"${routes.Game.exportOne(game.id)}?evals=0&clocks=0",
downloadAttr
@ -63,15 +63,15 @@ object replay {
trans.downloadRaw()
),
game.isPgnImport option a(
dataIcon := "x",
dataIcon := "",
cls := "text",
href := s"${routes.Game.exportOne(game.id)}?imported=1",
downloadAttr
)(trans.downloadImported()),
ctx.noBlind option frag(
a(dataIcon := "=", cls := "text embed-howto")(trans.embedInYourWebsite()),
a(dataIcon := "", cls := "text embed-howto")(trans.embedInYourWebsite()),
a(
dataIcon := "$",
dataIcon := "",
cls := "text",
targetBlank,
href := cdnUrl(routes.Export.gif(pov.gameId, pov.color.name).url)

View File

@ -264,7 +264,7 @@ object tree {
"Read more about the appeal process"
)
),
p(a(cls := "text", dataIcon := "x", href := routes.Account.data)("Export personal data"))
p(a(cls := "text", dataIcon := "", href := routes.Account.data)("Export personal data"))
)
)
}

View File

@ -42,7 +42,7 @@ object bits {
) {
main(cls := "auth auth-signup box box-pad")(
h1(
fail option span(cls := "is-red", dataIcon := "L"),
fail option span(cls := "is-red", dataIcon := ""),
trans.passwordReset()
),
postForm(cls := "form3", action := routes.Auth.passwordResetApply)(
@ -60,7 +60,7 @@ object bits {
title = trans.passwordReset.txt()
) {
main(cls := "page-small box box-pad")(
h1(cls := "is-green text", dataIcon := "E")(trans.checkYourEmail()),
h1(cls := "is-green text", dataIcon := "")(trans.checkYourEmail()),
p(trans.weHaveSentYouAnEmailTo(email)),
p(trans.ifYouDoNotSeeTheEmailCheckOtherPlaces())
)
@ -81,8 +81,8 @@ object bits {
) {
main(cls := "page-small box box-pad")(
(ok match {
case Some(true) => h1(cls := "is-green text", dataIcon := "E")
case Some(false) => h1(cls := "is-red text", dataIcon := "L")
case Some(true) => h1(cls := "is-green text", dataIcon := "")
case Some(false) => h1(cls := "is-red text", dataIcon := "")
case _ => h1
})(
userLink(u, withOnline = false),
@ -114,7 +114,7 @@ object bits {
) {
main(cls := "auth auth-signup box box-pad")(
h1(
fail option span(cls := "is-red", dataIcon := "L"),
fail option span(cls := "is-red", dataIcon := ""),
"Log in by email"
),
p("We will send you an email containing a link to log you in."),
@ -133,7 +133,7 @@ object bits {
title = "Log in by email"
) {
main(cls := "page-small box box-pad")(
h1(cls := "is-green text", dataIcon := "E")(trans.checkYourEmail()),
h1(cls := "is-green text", dataIcon := "")(trans.checkYourEmail()),
p("We've sent you an email with a link."),
p(trans.ifYouDoNotSeeTheEmailCheckOtherPlaces())
)

View File

@ -21,7 +21,7 @@ object checkYourEmail {
main(
cls := s"page-small box box-pad email-confirm ${if (form.exists(_.hasErrors)) "error" else "anim"}"
)(
h1(cls := "is-green text", dataIcon := "E")(trans.checkYourEmail()),
h1(cls := "is-green text", dataIcon := "")(trans.checkYourEmail()),
p(trans.weHaveSentYouAnEmailClickTheLink()),
h2("Not receiving it?"),
ol(

View File

@ -60,15 +60,15 @@ z-index: 99;
def pagination(url: Int => String, page: Int, nbPages: Int, showPost: Boolean): Tag =
st.nav(cls := "pagination")(
if (page > 1) a(href := url(page - 1), dataIcon := "I")
else span(cls := "disabled", dataIcon := "I"),
if (page > 1) a(href := url(page - 1), dataIcon := "")
else span(cls := "disabled", dataIcon := ""),
sliding(page, nbPages, 3, showPost = showPost).map {
case None => raw(" &hellip; ")
case Some(p) if p == page => span(cls := "current")(p)
case Some(p) => a(href := url(p))(p)
},
if (page < nbPages) a(rel := "next", href := url(page + 1), dataIcon := "H")
else span(cls := "disabled", dataIcon := "H")
if (page < nbPages) a(rel := "next", href := url(page + 1), dataIcon := "")
else span(cls := "disabled", dataIcon := "")
)
private def sliding(pager: Paginator[_], length: Int, showPost: Boolean): List[Option[Int]] =

View File

@ -54,8 +54,8 @@ object captcha {
trans.help(),
" ",
a(title := trans.viewTheSolution.txt(), targetBlank, href := s"${url}#last")(url),
div(cls := "result success text", dataIcon := "E")(trans.checkmate()),
div(cls := "result failure text", dataIcon := "k")(trans.notACheckmate()),
div(cls := "result success text", dataIcon := "")(trans.checkmate()),
div(cls := "result failure text", dataIcon := "")(trans.notACheckmate()),
form3.hidden(form("move"))
)
)

View File

@ -86,7 +86,7 @@ object layout {
private def zenToggle(implicit ctx: Context) =
spaceless(s"""
<a data-icon="E" id="zentog" class="text fbt active">
<a data-icon="" id="zentog" class="text fbt active">
${trans.preferences.zenMode.txt()}
</a>""")
@ -100,7 +100,7 @@ object layout {
spaceless(s"""<div>
<a id="challenge-toggle" class="toggle link">
<span title="${trans.challenge.challenges
.txt()}" class="data-count" data-count="${ctx.nbChallenges}" data-icon="U"></span>
.txt()}" class="data-count" data-count="${ctx.nbChallenges}" data-icon=""></span>
</a>
<div id="challenge-app" class="dropdown"></div>
</div>
@ -115,14 +115,14 @@ object layout {
private def anonDasher(playing: Boolean)(implicit ctx: Context) =
spaceless(s"""<div class="dasher">
<a class="toggle link anon">
<span title="${trans.preferences.preferences.txt()}" data-icon="%"></span>
<span title="${trans.preferences.preferences.txt()}" data-icon=""></span>
</a>
<div id="dasher_app" class="dropdown" data-playing="$playing"></div>
</div>
<a href="${routes.Auth.login}?referrer=${ctx.req.path}" class="signin button button-empty">${trans.signIn
.txt()}</a>""")
private val clinputLink = a(cls := "link")(span(dataIcon := "y"))
private val clinputLink = a(cls := "link")(span(dataIcon := ""))
private def clinput(implicit ctx: Context) =
div(id := "clinput")(
@ -289,12 +289,12 @@ object layout {
id := "friend_box",
dataI18n := safeJsonValue(i18nJsObject(i18nKeys))
)(
div(cls := "friend_box_title")(trans.nbFriendsOnline.plural(0, iconTag("S"))),
div(cls := "friend_box_title")(trans.nbFriendsOnline.plural(0, iconTag(""))),
div(cls := "content_wrap none")(
div(cls := "content list")
)
),
a(id := "reconnecting", cls := "link text", dataIcon := "B")(trans.reconnecting()),
a(id := "reconnecting", cls := "link text", dataIcon := "")(trans.reconnecting()),
loadScripts(moreJs, chessground)
)
)
@ -341,7 +341,7 @@ object layout {
cls := "link data-count link-center",
href := routes.Team.requests,
dataCount := ctx.teamNbRequests,
dataIcon := "f",
dataIcon := "",
title := trans.team.teams.txt()
)

View File

@ -43,5 +43,5 @@ object navTree {
private def makeLink(id: String) = href := s"#help-$id"
private def goBack(parent: Node): Frag =
a(makeLink(parent.id), cls := "back", dataIcon := "I", title := "Go back")
a(makeLink(parent.id), cls := "back", dataIcon := "", title := "Go back")
}

View File

@ -38,13 +38,13 @@ object bits {
div(cls := "meta-headline")(
div(cls := "meta")(
doc.getDate("blog.date").map { date =>
span(cls := "text", dataIcon := "p")(semanticDate(date.value.toDateTimeAtStartOfDay))
span(cls := "text", dataIcon := "")(semanticDate(date.value.toDateTimeAtStartOfDay))
},
doc.getText("blog.author").map { author =>
span(cls := "text", dataIcon := "r")(richText(author))
span(cls := "text", dataIcon := "")(richText(author))
},
doc.getText("blog.category").map { categ =>
span(cls := "text", dataIcon := "t")(categ)
span(cls := "text", dataIcon := "")(categ)
}
),
strong(cls := "headline")(doc.getHtml("blog.shortlede", prismic.linkResolver).map(raw))

View File

@ -27,7 +27,7 @@ object index {
div(cls := "blog index page-menu__content page-small box")(
div(cls := "box__top")(
h1("Lichess Official Blog"),
a(cls := "atom", href := routes.Blog.atom, dataIcon := "3")
a(cls := "atom", href := routes.Blog.atom, dataIcon := "")
),
primaryPost map { post =>
frag(
@ -85,7 +85,7 @@ object index {
a(
cls := "button",
href := routes.Blog.show(doc.id, doc.slug, ref = prismic.maybeRef),
dataIcon := "G"
dataIcon := ""
)(
" Continue reading this post"
)

View File

@ -48,7 +48,7 @@ object show {
.exists(
_.value.toDateTimeAtStartOfDay isAfter org.joda.time.DateTime.now.minusWeeks(2)
)) option
a(href := routes.Blog.discuss(doc.id), cls := "button text discuss", dataIcon := "d")(
a(href := routes.Blog.discuss(doc.id), cls := "button text discuss", dataIcon := "")(
"Discuss this blog post in the forum"
)
} else p("This is a preview."),

View File

@ -18,13 +18,13 @@ object bookmark {
href := routes.Game.bookmark(g.id),
title := trans.bookmarkThisGame.txt()
)(
iconTag("t")(cls := "on is3"),
iconTag("s")(cls := "off is3"),
iconTag("")(cls := "on is3"),
iconTag("")(cls := "off is3"),
span(g.showBookmarks)
)
else if (g.hasBookmarks)
span(cls := "bookmark")(
span(dataIcon := "s", cls := "is3")(g.showBookmarks)
span(dataIcon := "", cls := "is3")(g.showBookmarks)
)
else emptyFrag
}

View File

@ -29,7 +29,7 @@ object bits {
def details(c: Challenge)(implicit ctx: Context) =
div(cls := "details")(
div(cls := "variant", dataIcon := (if (c.initialFen.isDefined) '*' else c.perfType.iconChar))(
div(cls := "variant", dataIcon := (if (c.initialFen.isDefined) '' else c.perfType.iconChar))(
div(
views.html.game.bits.variantLink(c.variant, c.perfType.some),
br,

View File

@ -15,7 +15,7 @@ object mine {
val cancelForm =
postForm(action := routes.Challenge.cancel(c.id), cls := "cancel xhr")(
submitButton(cls := "button button-red text", dataIcon := "L")(trans.cancel())
submitButton(cls := "button button-red text", dataIcon := "")(trans.cancel())
)
views.html.base.layout(
@ -61,7 +61,7 @@ object mine {
title := "Copy URL",
cls := "copy button",
dataRel := "challenge-id",
dataIcon := "\""
dataIcon := ""
)
),
p(trans.theFirstPersonToComeOnThisUrlWillPlayWithYou())

View File

@ -52,7 +52,7 @@ object theirs {
(c.mode.rated && c.unlimited) option
badTag(trans.bewareTheGameIsRatedButHasNoClock()),
postForm(cls := "accept", action := routes.Challenge.accept(c.id, color.map(_.name)))(
submitButton(cls := "text button button-fat", dataIcon := "G")(trans.joinTheGame())
submitButton(cls := "text button button-fat", dataIcon := "")(trans.joinTheGame())
)
)
} else

View File

@ -49,7 +49,7 @@ object clas {
href := routes.Clas.form,
cls := "new button button-empty",
title := trans.clas.newClass.txt(),
dataIcon := "O"
dataIcon := ""
)
),
if (classes.isEmpty)
@ -70,7 +70,7 @@ object clas {
classes.map { clas =>
div(
cls := List("clas-widget" -> true, "clas-widget-archived" -> clas.isArchived),
dataIcon := "f"
dataIcon := ""
)(
a(cls := "overlay", href := routes.Clas.show(clas.id.value)),
div(

View File

@ -36,7 +36,7 @@ object invite {
trans.decline(),
nameValue = ("v" -> false.toString).some,
klass = "button-red button-fat",
icon = "L".some
icon = "".some
)
else p,
form3.submit(

View File

@ -63,7 +63,7 @@ object student {
private def top(clas: Clas, s: Student.WithUser)(implicit ctx: Context) =
div(cls := "student-show__top")(
h1(dataIcon := "r")(
h1(dataIcon := "")(
span(
strong(s.user.username),
em(s.student.realName)

View File

@ -19,7 +19,7 @@ object studentDashboard {
bits.layout(c.name, Left(c withStudents Nil))(
cls := "clas-show dashboard dashboard-student",
div(cls := "clas-show__top")(
h1(dataIcon := "f", cls := "text")(c.name),
h1(dataIcon := "", cls := "text")(c.name),
c.desc.trim.nonEmpty option div(cls := "clas-show__desc")(richText(c.desc))
),
c.archived map { archived =>
@ -103,7 +103,7 @@ object studentDashboard {
val online = isOnline(user.id)
td(
a(
dataIcon := "U",
dataIcon := "",
cls := List("button button-empty text" -> true, "disabled" -> !online),
title := trans.challenge.challengeToPlay.txt(),
href := online option s"${routes.Lobby.home}?user=${user.username}#friend"

View File

@ -19,7 +19,7 @@ object teacherDashboard {
bits.layout(c.name, Left(c withStudents students.map(_.student)))(
cls := s"clas-show dashboard dashboard-teacher dashboard-teacher-$active",
div(cls := "clas-show__top")(
h1(dataIcon := "f", cls := "text")(c.name),
h1(dataIcon := "", cls := "text")(c.name),
st.nav(cls := "dashboard-nav")(
a(cls := active.active("overview"), href := routes.Clas.show(c.id.value))("Overview"),
a(cls := active.active("wall"), href := routes.Clas.wall(c.id.value))("News"),
@ -57,7 +57,7 @@ object teacherDashboard {
a(
href := routes.Clas.studentForm(c.id.value),
cls := "button button-clas text",
dataIcon := "O"
dataIcon := ""
)(trans.clas.addStudent())
)
),
@ -262,7 +262,7 @@ object teacherDashboard {
dataSortNumberTh(trans.games()),
dataSortNumberTh(trans.puzzles()),
dataSortNumberTh(trans.clas.lastActiveDate()),
th(iconTag("5")(title := trans.clas.managed.txt()))
th(iconTag("")(title := trans.clas.managed.txt()))
)
),
tbody(
@ -277,7 +277,7 @@ object teacherDashboard {
td(dataSort := user.seenAt.map(_.getMillis.toString))(user.seenAt.map(momentFromNowOnce)),
td(
dataSort := (if (student.managed) 1 else 0),
student.managed option iconTag("5")(title := trans.clas.managed.txt())
student.managed option iconTag("")(title := trans.clas.managed.txt())
)
)
}

View File

@ -13,10 +13,10 @@ object wall {
def show(c: Clas, html: Frag, students: List[Student.WithUser])(implicit ctx: Context) =
teacherDashboard.layout(c, students.filter(_.student.isActive), "wall")(
div(cls := "clas-wall__actions")(
a(dataIcon := "m", href := routes.Clas.wallEdit(c.id.value), cls := "button button-clas text")(
a(dataIcon := "", href := routes.Clas.wallEdit(c.id.value), cls := "button button-clas text")(
trans.clas.editNews()
),
a(dataIcon := "e", href := routes.Clas.notifyStudents(c.id.value), cls := "button button-clas text")(
a(dataIcon := "", href := routes.Clas.notifyStudents(c.id.value), cls := "button button-clas text")(
trans.clas.notifyAllStudents()
)
),

View File

@ -64,7 +64,7 @@ object edit {
a(
href := routes.Coach.show(c.user.username),
cls := "button button-empty text",
dataIcon := "v"
dataIcon := ""
)("Preview coach page")
)
)
@ -182,14 +182,14 @@ object edit {
),
div(cls := "actions btn-rack")(
r.moddedAt.fold(true)(_.isBefore(r.updatedAt)) option
a(dataValue := "1", cls := "btn-rack__btn yes", dataIcon := "E"),
a(dataValue := "0", cls := "btn-rack__btn no", dataIcon := "L")
a(dataValue := "1", cls := "btn-rack__btn yes", dataIcon := ""),
a(dataValue := "0", cls := "btn-rack__btn no", dataIcon := "")
)
)
}
)
),
div(cls := "status text", dataIcon := "E")("Your changes have been saved.")
div(cls := "status text", dataIcon := "")("Your changes have been saved.")
)
)
)

View File

@ -52,12 +52,12 @@ object show {
frag(
if (c.coach.isListed) p("This page is now public.")
else "This page is not public yet. ",
a(href := routes.Coach.edit, cls := "text", dataIcon := "m")("Edit my coach profile")
a(href := routes.Coach.edit, cls := "text", dataIcon := "")("Edit my coach profile")
)
else
a(
cls := "text button button-empty",
dataIcon := "c",
dataIcon := "",
href := s"${routes.Msg.convo(c.user.username)}"
)(sendPM()),
ctx.me.exists(_.id != c.user.id) option review.form(c, myReview),

View File

@ -99,8 +99,8 @@ object widget {
!link option tr(cls := "available")(
th(availability()),
td(
if (c.coach.available.value) span(cls := "text", dataIcon := "E")(accepting())
else span(cls := "text", dataIcon := "L")(notAccepting())
if (c.coach.available.value) span(cls := "text", dataIcon := "")(accepting())
else span(cls := "text", dataIcon := "")(notAccepting())
)
),
c.user.seenAt.map { seen =>

View File

@ -39,7 +39,7 @@ object dev {
})
)
},
submitButton(cls := "button button-empty", dataIcon := "E")
submitButton(cls := "button button-empty", dataIcon := "")
)
}
)

View File

@ -92,7 +92,7 @@ object dgt {
st.section(
h2("Lichess connectivity"),
if (token.isDefined)
p(cls := "text", dataIcon := "E")(
p(cls := "text", dataIcon := "")(
"You have an OAuth token suitable for DGT play.",
br,
br,

View File

@ -83,7 +83,7 @@ object event {
div(cls := "box__top")(
h1(title),
div(cls := "box__top__actions")(
a(cls := "button button-green", href := routes.Event.form, dataIcon := "O")
a(cls := "button button-green", href := routes.Event.form, dataIcon := "")
)
),
table(cls := "slist slist-pad")(
@ -112,7 +112,7 @@ object event {
showDateTimeUTC(e.finishesAt),
momentFromNow(e.finishesAt)
),
td(a(cls := "text", href := routes.Event.show(e.id), dataIcon := "v"))
td(a(cls := "text", href := routes.Event.show(e.id), dataIcon := ""))
)
}
)

View File

@ -24,7 +24,7 @@ object categ {
) {
main(cls := "forum index box")(
div(cls := "box__top")(
h1(dataIcon := "d", cls := "text")("Lichess Forum"),
h1(dataIcon := "", cls := "text")("Lichess Forum"),
bits.searchForm()
),
showCategs(categs.filterNot(_.categ.isTeam)),
@ -47,7 +47,7 @@ object categ {
a(
href := routes.ForumTopic.form(categ.slug),
cls := "button button-empty button-green text",
dataIcon := "m"
dataIcon := ""
)(
trans.createANewTopic()
)
@ -89,7 +89,7 @@ object categ {
h1(
a(
href := categ.team.fold(routes.ForumCateg.index)(routes.Team.show(_)),
dataIcon := "I",
dataIcon := "",
cls := "text"
),
categ.team.fold(frag(categ.name))(teamIdToName)

View File

@ -16,7 +16,7 @@ object post {
posts map { p =>
li(
a(
dataIcon := p.isTeam.option("f"),
dataIcon := p.isTeam.option(""),
cls := "post_link text",
href := routes.ForumPost.redirect(p.postId),
title := p.topicName
@ -56,12 +56,12 @@ object post {
}
),
(!post.erased && ctx.userId.exists(post.shouldShowEditForm)) option
a(cls := "mod edit button button-empty text", dataIcon := "m")("Edit"),
a(cls := "mod edit button button-empty text", dataIcon := "")("Edit"),
if (!post.erased && ctx.userId.has(~post.userId))
postForm(action := routes.ForumPost.delete(categ.slug, post.id))(
submitButton(
cls := "mod delete button button-empty confirm",
dataIcon := "q",
dataIcon := "",
title := "Delete"
)
)
@ -69,7 +69,7 @@ object post {
a(
cls := "mod delete button button-empty",
href := routes.ForumPost.delete(categ.slug, post.id),
dataIcon := "q",
dataIcon := "",
title := "Delete"
)
else
@ -81,7 +81,7 @@ object post {
titleOrText(trans.reportXToModerators.txt(userId)),
cls := "mod report button button-empty",
href := s"${routes.Report.form}?username=${userId}&postUrl=${urlencode(postUrl)}",
dataIcon := "!"
dataIcon := ""
)
)
}

View File

@ -20,7 +20,7 @@ object search {
main(cls := "box search")(
div(cls := "box__top")(
h1(
a(href := routes.ForumCateg.index, dataIcon := "I", cls := "text"),
a(href := routes.ForumCateg.index, dataIcon := "", cls := "text"),
title
),
bits.searchForm(text)

View File

@ -23,11 +23,11 @@ object topic {
) {
main(cls := "forum forum-topic topic-form page-small box box-pad")(
h1(
a(href := routes.ForumCateg.show(categ.slug), dataIcon := "I", cls := "text"),
a(href := routes.ForumCateg.show(categ.slug), dataIcon := "", cls := "text"),
categ.name
),
st.section(cls := "warning")(
h2(dataIcon := "!", cls := "text")(trans.important()),
h2(dataIcon := "", cls := "text")(trans.important()),
p(
trans.yourQuestionMayHaveBeenAnswered(
strong(a(href := routes.Main.faq)(trans.inTheFAQ()))
@ -100,7 +100,7 @@ object topic {
h1(
a(
href := routes.ForumCateg.show(categ.slug),
dataIcon := "I",
dataIcon := "",
cls := "text"
),
topic.name
@ -142,10 +142,10 @@ object topic {
cls := s"unsub ${if (uns) "on" else "off"}",
action := routes.Timeline.unsub(s"forum:${topic.id}")
)(
button(cls := "button button-empty text on", dataIcon := "v", bits.dataUnsub := "off")(
button(cls := "button button-empty text on", dataIcon := "", bits.dataUnsub := "off")(
trans.subscribe()
),
button(cls := "button button-empty text off", dataIcon := "v", bits.dataUnsub := "on")(
button(cls := "button button-empty text off", dataIcon := "", bits.dataUnsub := "on")(
trans.unsubscribe()
)
)

View File

@ -14,12 +14,12 @@ object bits {
def gameIcon(game: Game): Char =
game.perfType match {
case _ if game.fromPosition => '*'
case _ if game.imported => '/'
case _ if game.fromPosition => ''
case _ if game.imported => ''
case Some(p) if game.variant.exotic => p.iconChar
case _ if game.hasAi => 'n'
case _ if game.hasAi => ''
case Some(p) => p.iconChar
case _ => '8'
case _ => ''
}
def sides(

View File

@ -53,7 +53,7 @@ object importGame {
help = Some(analyseHelp),
disabled = ctx.isAnon
),
form3.action(form3.submit(trans.importGame(), "/".some))
form3.action(form3.submit(trans.importGame(), "".some))
)
)
}

View File

@ -113,7 +113,7 @@ object side {
},
tour.map { t =>
st.section(cls := "game__tournament")(
a(cls := "text", dataIcon := "g", href := routes.Tournament.show(t.tour.id))(t.tour.name()),
a(cls := "text", dataIcon := "", href := routes.Tournament.show(t.tour.id))(t.tour.name()),
div(cls := "clock", dataTime := t.tour.secondsToFinish)(t.tour.clockStatus)
)
} orElse game.tournamentId.map { tourId =>

View File

@ -60,7 +60,7 @@ object widgets {
),
div(cls := "versus")(
gamePlayer(g.whitePlayer),
div(cls := "swords", dataIcon := "U"),
div(cls := "swords", dataIcon := ""),
gamePlayer(g.blackPlayer)
),
div(cls := "result")(

View File

@ -66,7 +66,7 @@ object insight {
moreCss = cssTag("insight")
)(
main(cls := "box box-pad page-small")(
h1(cls := "text", dataIcon := "7")(u.username, " chess insights"),
h1(cls := "text", dataIcon := "")(u.username, " chess insights"),
p(userLink(u), " has no chess insights yet!"),
refreshForm(u, s"Generate ${u.username}'s chess insights")
)
@ -88,7 +88,7 @@ object insight {
def refreshForm(u: User, action: String) =
postForm(cls := "insight-refresh", st.action := routes.Insight.refresh(u.username))(
button(dataIcon := "E", cls := "button text")(action),
button(dataIcon := "", cls := "button text")(action),
div(cls := "crunching none")(
spinner,
br,

View File

@ -116,7 +116,7 @@ object irwin {
link = false
),
br,
pov.game.isTournament ?? frag(iconTag("g"), " "),
pov.game.isTournament ?? frag(iconTag(""), " "),
pov.game.perfType.map { pt =>
iconTag(pt.iconChar)
},

View File

@ -22,7 +22,7 @@ object bits {
frag(
div(cls := "lobby__leaderboard lobby__box")(
div(cls := "lobby__box__top")(
h2(cls := "title text", dataIcon := "C")(trans.leaderboard()),
h2(cls := "title text", dataIcon := "")(trans.leaderboard()),
a(cls := "more", href := routes.User.list)(trans.more(), " »")
),
div(cls := "lobby__box__content")(
@ -43,7 +43,7 @@ object bits {
),
div(cls := "lobby__winners lobby__box")(
div(cls := "lobby__box__top")(
h2(cls := "title text", dataIcon := "g")(trans.tournamentWinners()),
h2(cls := "title text", dataIcon := "")(trans.tournamentWinners()),
a(cls := "more", href := routes.Tournament.leaderboard)(trans.more(), " »")
),
div(cls := "lobby__box__content")(
@ -65,7 +65,7 @@ object bits {
),
div(cls := "lobby__tournaments lobby__box")(
a(cls := "lobby__box__top", href := routes.Tournament.home)(
h2(cls := "title text", dataIcon := "g")(trans.openTournaments()),
h2(cls := "title text", dataIcon := "")(trans.openTournaments()),
span(cls := "more")(trans.more(), " »")
),
div(cls := "enterable_list lobby__box__content")(
@ -74,7 +74,7 @@ object bits {
),
simuls.nonEmpty option div(cls := "lobby__simuls lobby__box")(
a(cls := "lobby__box__top", href := routes.Simul.home)(
h2(cls := "title text", dataIcon := "f")(trans.simultaneousExhibitions()),
h2(cls := "title text", dataIcon := "")(trans.simultaneousExhibitions()),
span(cls := "more")(trans.more(), " »")
),
div(cls := "enterable_list lobby__box__content")(
@ -87,7 +87,7 @@ object bits {
posts.nonEmpty option
div(cls := "lobby__blog lobby__box")(
a(cls := "lobby__box__top", href := routes.Blog.index())(
h2(cls := "title text", dataIcon := "6")(trans.latestUpdates()),
h2(cls := "title text", dataIcon := "")(trans.latestUpdates()),
span(cls := "more")(trans.more(), " »")
),
div(cls := "lobby__box__content")(
@ -138,7 +138,7 @@ object bits {
p("You have a game in progress with ", strong(current.opponent), "."),
br,
br,
a(cls := "text button button-fat", dataIcon := "G", href := routes.Round.player(current.pov.fullId))(
a(cls := "text button button-fat", dataIcon := "", href := routes.Round.player(current.pov.fullId))(
"Join the game"
),
br,
@ -147,7 +147,7 @@ object bits {
br,
br,
postForm(action := routes.Round.resign(current.pov.fullId))(
button(cls := "text button button-red", dataIcon := "L")(
button(cls := "text button button-red", dataIcon := "")(
if (current.pov.game.abortable) "Abort" else "Resign",
" the game"
)

View File

@ -161,7 +161,7 @@ object home {
ctx.noBot option bits.underboards(tours, simuls, leaderboard, tournamentWinners),
ctx.noKid option div(cls := "lobby__forum lobby__box")(
a(cls := "lobby__box__top", href := routes.ForumCateg.index)(
h2(cls := "title text", dataIcon := "d")(trans.latestForumPosts()),
h2(cls := "title text", dataIcon := "")(trans.latestForumPosts()),
span(cls := "more")(trans.more(), " »")
),
div(cls := "lobby__box__content")(

View File

@ -27,27 +27,27 @@ object chatPanic {
"Current state: ",
state.map { s =>
frag(
goodTag(cls := "text", dataIcon := "E")(strong("ENABLED")),
goodTag(cls := "text", dataIcon := "")(strong("ENABLED")),
". Expires ",
momentFromNow(s)
)
} getOrElse badTag(cls := "text", dataIcon := "L")(strong("DISABLED"))
} getOrElse badTag(cls := "text", dataIcon := "")(strong("DISABLED"))
),
div(cls := "forms")(
if (state.isDefined)
frag(
postForm(action := s"${routes.Mod.chatPanicPost}?v=0")(
submitButton(cls := "button button-fat button-red text", dataIcon := "L")("Disable")
submitButton(cls := "button button-fat button-red text", dataIcon := "")("Disable")
),
postForm(action := s"${routes.Mod.chatPanicPost}?v=1")(
submitButton(cls := "button button-fat button-green text", dataIcon := "E")(
submitButton(cls := "button button-fat button-green text", dataIcon := "")(
"Renew for two hours"
)
)
)
else
postForm(action := s"${routes.Mod.chatPanicPost}?v=1")(
submitButton(cls := "button button-fat text", dataIcon := "E")("Enable")
submitButton(cls := "button button-fat text", dataIcon := "")("Enable")
)
)
)

View File

@ -60,8 +60,8 @@ this.setSelectionRange(this.value.length, this.value.length);
td(momentFromNow(u.createdAt)),
td(u.seenAt.map(momentFromNow(_))),
td(style := "font-size:2em")(
if (!u.everLoggedIn) iconTag("E")(cls := "is-green")
else iconTag("L")(cls := "is-red")
if (!u.everLoggedIn) iconTag("")(cls := "is-green")
else iconTag("")(cls := "is-red")
)
)
)

View File

@ -88,7 +88,7 @@ object games {
),
dataSortNumberTh("Opponent"),
dataSortNumberTh("Speed"),
th(iconTag('g')),
th(iconTag('')),
dataSortNumberTh("Moves"),
dataSortNumberTh("Result"),
dataSortNumberTh("ACPL", br, "(Avg ± SD)"),
@ -123,14 +123,14 @@ object games {
td(dataSort := ~pov.game.tournamentId)(
pov.game.tournamentId map { tourId =>
a(
dataIcon := "g",
dataIcon := "",
href := routes.Tournament.show(tourId).url,
title := tournamentIdToName(tourId)
)
},
pov.game.swissId map { swissId =>
a(
dataIcon := "g",
dataIcon := "",
href := routes.Swiss.show(swissId).url,
title := s"Swiss #${swissId}"
)

View File

@ -73,7 +73,7 @@ object gamify {
views.html.mod.menu("gamify"),
div(id := "mod-gamify", cls := "page-menu__content box")(
h1(
a(href := routes.Mod.gamify, dataIcon := "I"),
a(href := routes.Mod.gamify, dataIcon := ""),
title
),
div(cls := "period")(

View File

@ -143,7 +143,7 @@ object inquiry {
),
div(cls := "actions")(
isGranted(_.ModMessage) option div(cls := "dropper warn buttons")(
iconTag("e"),
iconTag(""),
div(
env.mod.presets.pmPresets.get().value.map { preset =>
postForm(action := routes.Mod.warn(in.user.username, preset.name))(
@ -157,7 +157,7 @@ object inquiry {
val url = routes.Mod.engine(in.user.username, !in.user.marks.engine).url
div(cls := "dropper engine buttons")(
postForm(action := url, title := "Mark as cheat")(
markButton(in.user.marks.engine)(dataIcon := "n"),
markButton(in.user.marks.engine)(dataIcon := ""),
autoNextInput
),
thenForms(url, markButton(false))
@ -167,7 +167,7 @@ object inquiry {
val url = routes.Mod.booster(in.user.username, !in.user.marks.boost).url
div(cls := "dropper booster buttons")(
postForm(action := url, cls := "main", title := "Mark as booster or sandbagger")(
markButton(in.user.marks.boost)(dataIcon := "9"),
markButton(in.user.marks.boost)(dataIcon := ""),
autoNextInput
),
thenForms(url, markButton(false))
@ -181,7 +181,7 @@ object inquiry {
title := (if (in.user.marks.troll) "Un-shadowban" else "Shadowban"),
cls := "main"
)(
markButton(in.user.marks.troll)(dataIcon := "c"),
markButton(in.user.marks.troll)(dataIcon := ""),
autoNextInput
),
thenForms(url, markButton(false))
@ -198,7 +198,7 @@ object inquiry {
)
},
div(cls := "dropper more buttons")(
iconTag("u"),
iconTag(""),
div(
isGranted(_.NotifySlack) option {
postForm(action := routes.Mod.notifySlack(in.user.id))(
@ -232,7 +232,7 @@ object inquiry {
title := "Dismiss this report as processed. (Hotkey: d)",
cls := "process"
)(
submitButton(dataIcon := "E", cls := "fbt"),
submitButton(dataIcon := "", cls := "fbt"),
autoNextInput
),
postForm(
@ -240,7 +240,7 @@ object inquiry {
title := "Cancel the inquiry, re-instore the report",
cls := "cancel"
)(
submitButton(dataIcon := "L", cls := "fbt")
submitButton(dataIcon := "", cls := "fbt")
)
)
)

View File

@ -38,7 +38,7 @@ object presets {
).some
)(form3.textarea(_)(rows := 20)),
form3.action(
submitButton(cls := "button text", dataIcon := "E")("Save")
submitButton(cls := "button text", dataIcon := "")("Save")
)
)
)

View File

@ -38,7 +38,7 @@ object index {
submitButton(
cls := "button button-empty button-red confirm text",
title := s"Revoke access from ${t.app.name}",
dataIcon := "q"
dataIcon := ""
)("Revoke")
)
)
@ -81,13 +81,13 @@ object index {
href := routes.OAuthApp.edit(t.clientId.value),
cls := "button button-empty",
title := "Edit this app",
dataIcon := "m"
dataIcon := ""
),
postForm(action := routes.OAuthApp.delete(t.clientId.value))(
submitButton(
cls := "button button-empty button-red confirm",
title := "Delete this app",
dataIcon := "q"
dataIcon := ""
)
)
)

View File

@ -17,7 +17,7 @@ object index {
div(cls := "box__top")(
h1(title),
st.form(cls := "box-top__actions", action := routes.OAuthToken.create)(
submitButton(cls := "button frameless", st.title := "New access token", dataIcon := "O")
submitButton(cls := "button frameless", st.title := "New access token", dataIcon := "")
)
),
standardFlash(cls := "box__pad"),
@ -45,7 +45,7 @@ object index {
),
tokens.headOption.filter(_.isBrandNew).map { token =>
div(cls := "box__pad brand")(
iconTag("E")(cls := "is-green"),
iconTag("")(cls := "is-green"),
div(
p(
"Make sure to copy your new personal access token now.",

View File

@ -194,11 +194,11 @@ object features {
st.tr(th(name), th(trans.patron.freeAccount()), th(trans.patron.lichessPatron()))
)
private val unlimited = span(dataIcon := "E", cls := "is is-green text unlimited")("Unlimited")
private val unlimited = span(dataIcon := "", cls := "is is-green text unlimited")("Unlimited")
private val check = span(dataIcon := "E", cls := "is is-green text check")("Yes")
private val check = span(dataIcon := "", cls := "is is-green text check")("Yes")
private def custom(str: String) = span(dataIcon := "E", cls := "is is-green text check")(str)
private def custom(str: String) = span(dataIcon := "", cls := "is is-green text check")(str)
private def all(content: Frag) = frag(td(content), td(content))

View File

@ -23,7 +23,7 @@ object config {
postForm(action := routes.Practice.configSave)(
textarea(cls := "practice_text", name := "text")(form("text").value),
errMsg(form("text")),
submitButton(cls := "button button-fat text", dataIcon := "E")("Save")
submitButton(cls := "button button-fat text", dataIcon := "")("Save")
),
div(cls := "preview")(
ol(

View File

@ -112,7 +112,7 @@ object dashboard {
bits.pageMenu(path),
div(cls := s"page-menu__content box box-pad $baseClass")(
div(cls := "box__top")(
// iconTag('-'),
// iconTag(''),
h1(
title,
strong(subtitle)
@ -178,7 +178,7 @@ object dashboard {
strong(results.unfixed),
span("to replay")
),
iconTag(if (results.canReplay) 'G' else 'E')
iconTag(if (results.canReplay) '' else '')
)
)
}

View File

@ -25,13 +25,13 @@ object actions {
titleOrText(trans.challenge.challengeToPlay.txt()),
href := s"${routes.Lobby.home}?user=$userId#friend",
cls := "btn-rack__btn",
dataIcon := "U"
dataIcon := ""
),
a(
titleOrText(trans.composeMessage.txt()),
href := routes.Msg.convo(userId),
cls := "btn-rack__btn",
dataIcon := "c"
dataIcon := ""
)
),
relation match {
@ -41,18 +41,18 @@ object actions {
cls := "btn-rack__btn relation-button",
href := routes.Relation.follow(userId),
titleOrText(trans.follow.txt()),
dataIcon := "h"
dataIcon := ""
),
a(
cls := "btn-rack__btn relation-button",
href := routes.Relation.block(userId),
titleOrText(trans.block.txt()),
dataIcon := "k"
dataIcon := ""
)
)
case Some(true) =>
a(
dataIcon := "h",
dataIcon := "",
cls := "btn-rack__btn relation-button text hover-text",
href := routes.Relation.unfollow(userId),
titleOrText(trans.following.txt()),
@ -60,7 +60,7 @@ object actions {
)
case Some(false) =>
a(
dataIcon := "k",
dataIcon := "",
cls := "btn-rack__btn relation-button text hover-text",
href := routes.Relation.unblock(userId),
titleOrText(trans.blocked.txt()),

View File

@ -18,7 +18,7 @@ object mini {
case None if followable && !blocked =>
a(
cls := "btn-rack__btn relation-button text",
dataIcon := "h",
dataIcon := "",
href := s"${routes.Relation.follow(userId)}?mini=1"
)(trans.follow())
case Some(true) =>
@ -26,14 +26,14 @@ object mini {
cls := "btn-rack__btn relation-button text",
title := trans.unfollow.txt(),
href := s"${routes.Relation.unfollow(userId)}?mini=1",
dataIcon := "h"
dataIcon := ""
)(trans.following())
case Some(false) =>
a(
cls := "btn-rack__btn relation-button text",
title := trans.unblock.txt(),
href := s"${routes.Relation.unblock(userId)}?mini=1",
dataIcon := "k"
dataIcon := ""
)(trans.blocked())
case _ => emptyFrag
}

View File

@ -30,7 +30,7 @@ object tour {
href := routes.RelayTour.form,
cls := "new button button-empty",
title := newBroadcast.txt(),
dataIcon := "O"
dataIcon := ""
)
),
st.section(

View File

@ -62,7 +62,7 @@ object form {
form3.hidden("text", text take 140),
submitButton(
cls := "button button-empty button-red confirm",
dataIcon := "j",
dataIcon := "",
title := "Report spam or offensive language"
)
)

View File

@ -64,12 +64,12 @@ object list {
case None =>
if (r.done.isDefined)
postForm(action := routes.Report.inquiry(r.id), cls := "reopen")(
submitButton(dataIcon := "G", cls := "text button button-metal")("Reopen")
submitButton(dataIcon := "", cls := "text button button-metal")("Reopen")
)
else
frag(
postForm(action := routes.Report.inquiry(r.id), cls := "inquiry")(
submitButton(dataIcon := "G", cls := "button button-metal")
submitButton(dataIcon := "", cls := "button button-metal")
),
postForm(action := routes.Report.process(r.id), cls := "cancel")(
submitButton(cls := "button button-thin button-empty")("Dismiss")

View File

@ -37,7 +37,7 @@ fetch($button.data('action'), {method:'post'})
cls := "report-block button",
st.title := trans.block.txt()
)(
span(cls := "text", dataIcon := "k")("Block ", usernameOrId(userId))
span(cls := "text", dataIcon := "")("Block ", usernameOrId(userId))
)
),
br,

View File

@ -22,7 +22,7 @@ private object bits {
dataValidateUrl := s"""${routes.Setup.validateFen}${strict.??("?strict=1")}"""
)(
form3.input(field)(st.placeholder := trans.pasteTheFenStringHere.txt()),
a(cls := "button button-empty", dataIcon := "m", title := trans.boardEditor.txt(), href := url)
a(cls := "button button-empty", dataIcon := "", title := trans.boardEditor.txt(), href := url)
),
a(cls := "board_editor", href := url)(
span(cls := "preview")(

View File

@ -75,10 +75,10 @@ object filter {
)
),
div(cls := "actions")(
button(tpe := "reset", cls := "button button-empty button-red text reset", dataIcon := "k")(
button(tpe := "reset", cls := "button button-empty button-red text reset", dataIcon := "")(
trans.reset()
),
submitButton(cls := "button button-green text apply", dataIcon := "E")(trans.apply())
submitButton(cls := "button button-green text apply", dataIcon := "")(trans.apply())
)
)
)

View File

@ -133,7 +133,7 @@ object forms {
frag(
p(cls := "error")(e),
br,
a(href := routes.Lobby.home, cls := "button text", dataIcon := "L")(trans.cancel.txt())
a(href := routes.Lobby.home, cls := "button text", dataIcon := "")(trans.cancel.txt())
)
}
.getOrElse {

View File

@ -45,8 +45,8 @@ object bits {
tr(
td(cls := "name")(a(href := routes.Simul.show(simul.id))(simul.fullName)),
td(userIdLink(simul.hostId.some)),
td(cls := "text", dataIcon := "p")(simul.clock.config.show),
td(cls := "text", dataIcon := "r")(simul.applicants.size)
td(cls := "text", dataIcon := "")(simul.clock.config.show),
td(cls := "text", dataIcon := "")(simul.applicants.size)
)
}
)

View File

@ -30,7 +30,7 @@ object form {
formContent(form, teams, none),
form3.actions(
a(href := routes.Simul.home)(trans.cancel()),
form3.submit(trans.hostANewSimul(), icon = "g".some)
form3.submit(trans.hostANewSimul(), icon = "".some)
)
)
)
@ -50,11 +50,11 @@ object form {
formContent(form, teams, simul.some),
form3.actions(
a(href := routes.Simul.show(simul.id))(trans.cancel()),
form3.submit(trans.save(), icon = "g".some)
form3.submit(trans.save(), icon = "".some)
)
),
postForm(cls := "terminate", action := routes.Simul.abort(simul.id))(
submitButton(dataIcon := "j", cls := "text button button-red confirm")(
submitButton(dataIcon := "", cls := "text button button-red confirm")(
"Cancel the simul"
)
)

View File

@ -31,7 +31,7 @@ object homeInner {
tr(cls := "scheduled")(
simTd(sim),
simHost(sim),
td(cls := "players text", dataIcon := "r")(sim.applicants.size)
td(cls := "players text", dataIcon := "")(sim.applicants.size)
)
}
)
@ -48,7 +48,7 @@ object homeInner {
tr(cls := "scheduled")(
simTd(sim),
simHost(sim),
td(cls := "players text", dataIcon := "r")(sim.applicants.size)
td(cls := "players text", dataIcon := "")(sim.applicants.size)
)
},
ctx.isAuth option tr(cls := "create")(
@ -70,7 +70,7 @@ object homeInner {
tr(
simTd(sim),
simHost(sim),
td(cls := "players text", dataIcon := "r")(sim.pairings.size)
td(cls := "players text", dataIcon := "")(sim.pairings.size)
)
}
)
@ -87,7 +87,7 @@ object homeInner {
tr(
simTd(sim),
simHost(sim),
td(cls := "players text", dataIcon := "r")(sim.pairings.size)
td(cls := "players text", dataIcon := "")(sim.pairings.size)
)
}
)

View File

@ -48,7 +48,7 @@ object show {
div(cls := "simul__meta")(
div(cls := "game-infos")(
div(cls := "header")(
iconTag("f"),
iconTag(""),
div(
span(cls := "clock")(sim.clock.config.show),
div(cls := "setup")(
@ -57,7 +57,7 @@ object show {
trans.casual(),
(isGranted(_.ManageSimul) || ctx.userId.has(sim.hostId)) && sim.isCreated option frag(
" • ",
a(href := routes.Simul.edit(sim.id), title := "Edit simul")(iconTag("%"))
a(href := routes.Simul.edit(sim.id), title := "Edit simul")(iconTag(""))
)
)
)

View File

@ -159,7 +159,7 @@ object contact {
"."
),
p(
youCanAlsoReachReportPage(button(cls := "thin button button-empty", dataIcon := "!"))
youCanAlsoReachReportPage(button(cls := "thin button button-empty", dataIcon := ""))
),
p(
doNotMessageModerators(),

View File

@ -21,7 +21,7 @@ object message {
main(cls := "box box-pad")(
h1(dataIcon := icon ifTrue back.isEmpty, cls := List("text" -> (icon.isDefined && back.isEmpty)))(
back map { url =>
a(href := url, dataIcon := "I", cls := "text")
a(href := url, dataIcon := "", cls := "text")
},
title
),

View File

@ -122,7 +122,7 @@ $('#asset-version-message').text(lichess.info.message);"""
cls := "copyable autoselect",
value := s"""<iframe src="$netBaseUrl/tv/frame?theme=brown&bg=dark" $args></iframe>"""
),
button(title := "Copy code", cls := "copy button", dataRel := "tv-embed-src", dataIcon := "\"")
button(title := "Copy code", cls := "copy button", dataRel := "tv-embed-src", dataIcon := "")
),
parameters
)
@ -146,7 +146,7 @@ $('#asset-version-message').text(lichess.info.message);"""
title := "Copy code",
cls := "copy button",
dataRel := "puzzle-embed-src",
dataIcon := "\""
dataIcon := ""
)
),
parameters,
@ -205,7 +205,7 @@ $('#asset-version-message').text(lichess.info.message);"""
moreJs = moreJs
) {
val sep = div(cls := "sep")
val external = frag(" ", i(dataIcon := "0"))
val external = frag(" ", i(dataIcon := ""))
def activeCls(c: String) = cls := active.activeO(c)
main(cls := "page-menu")(
st.nav(cls := "page-menu__menu subnav")(

View File

@ -54,7 +54,7 @@ object edit extends Context.ToLang {
frag(
(ctx.is(s.user) && s.streamer.listed.value) option div(
cls := s"status is${granted ?? "-green"}",
dataIcon := (if (granted) "E" else "")
dataIcon := (if (granted) "" else "")
)(
if (granted)
frag(
@ -94,7 +94,7 @@ object edit extends Context.ToLang {
),
modData.map { case ((log, notes), same) =>
div(cls := "mod_log status")(
strong(cls := "text", dataIcon := "!")(
strong(cls := "text", dataIcon := "")(
"Moderation history",
log.isEmpty option ": nothing to show."
),
@ -112,7 +112,7 @@ object edit extends Context.ToLang {
}
),
br,
strong(cls := "text", dataIcon := "!")(
strong(cls := "text", dataIcon := "")(
"Moderator notes",
notes.isEmpty option ": nothing to show."
),
@ -126,7 +126,7 @@ object edit extends Context.ToLang {
}
),
br,
strong(cls := "text", dataIcon := "!")(
strong(cls := "text", dataIcon := "")(
"Streamers with same Twitch or YouTube",
same.isEmpty option ": nothing to show."
),
@ -192,7 +192,7 @@ object edit extends Context.ToLang {
name := "approval.quick",
value := "approve"
),
form3.submit("Decline and next", icon = "L".some)(
form3.submit("Decline and next", icon = "".some)(
cls := "button-red",
name := "approval.quick",
value := "decline"

View File

@ -39,7 +39,7 @@ $('.streamer-picture form.upload input[type=file]').on('change', function() {
submitButton(cls := "button button-red")(deletePicture())
),
div(cls := "cancel")(
a(href := routes.Streamer.edit, cls := "text", dataIcon := "I")(trans.cancel())
a(href := routes.Streamer.edit, cls := "text", dataIcon := "")(trans.cancel())
)
)
)

View File

@ -29,7 +29,7 @@ object bits {
def newForm()(implicit ctx: Context) =
postForm(cls := "new-study", action := routes.Study.create)(
submitButton(cls := "button button-green", dataIcon := "O", title := trans.study.createStudy.txt())
submitButton(cls := "button button-green", dataIcon := "", title := trans.study.createStudy.txt())
)
def authLinks(active: String, order: lila.study.Order)(implicit ctx: Context) = {
@ -50,12 +50,12 @@ object bits {
def widget(s: lila.study.Study.WithChaptersAndLiked, tag: Tag = h2)(implicit ctx: Context) =
frag(
a(cls := "overlay", href := routes.Study.show(s.study.id.value), title := s.study.name.value),
div(cls := "top", dataIcon := "4")(
div(cls := "top", dataIcon := "")(
div(
tag(cls := "study-name")(s.study.name.value),
span(
!s.study.isPublic option frag(
iconTag("a")(cls := "private", ariaTitle(trans.study.`private`.txt())),
iconTag("")(cls := "private", ariaTitle(trans.study.`private`.txt())),
" "
),
iconTag(if (s.liked) "" else ""),
@ -71,14 +71,14 @@ object bits {
div(cls := "body")(
ol(cls := "chapters")(
s.chapters.map { name =>
li(cls := "text", dataIcon := "K")(name.value)
li(cls := "text", dataIcon := "")(name.value)
}
),
ol(cls := "members")(
s.study.members.members.values
.take(4)
.map { m =>
li(cls := "text", dataIcon := (if (m.canContribute) "" else "v"))(usernameOrId(m.id))
li(cls := "text", dataIcon := (if (m.canContribute) "" else ""))(usernameOrId(m.id))
}
.toList
)

View File

@ -11,7 +11,7 @@ object clone {
def apply(s: lila.study.Study)(implicit ctx: Context) =
views.html.site.message(
title = s"Clone ${s.name}",
icon = Some("4")
icon = Some("")
) {
postForm(action := routes.Study.cloneApply(s.id.value))(
p("This will create a new private study with the same chapters."),
@ -21,12 +21,12 @@ object clone {
p(
submitButton(
cls := "submit button large text",
dataIcon := "4",
dataIcon := "",
style := "margin: 30px auto; display: block; font-size: 2em;"
)("Clone the study")
),
p(
a(href := routes.Study.show(s.id.value), cls := "text", dataIcon := "I")(trans.cancel())
a(href := routes.Study.show(s.id.value), cls := "text", dataIcon := "")(trans.cancel())
)
)
}

View File

@ -19,7 +19,7 @@ object create {
)(implicit ctx: Context) =
views.html.site.message(
title = trans.toStudy.txt(),
icon = Some("4"),
icon = Some(""),
back = data.fen.map(f => routes.Editor.load(f.value).url),
moreCss = cssTag("study.create").some
) {
@ -36,7 +36,7 @@ object create {
name := "as",
value := "study",
cls := "submit button large new text",
dataIcon := "4"
dataIcon := ""
)(trans.study.createStudy())
),
div(cls := "studies")(

View File

@ -41,7 +41,7 @@ object embed {
a(
targetBlank,
cls := "open",
dataIcon := "=",
dataIcon := "",
href := url,
title := trans.study.open.txt()
)

View File

@ -116,7 +116,7 @@ object list {
private[study] def paginate(pager: Paginator[WithChaptersAndLiked], url: Call)(implicit ctx: Context) =
if (pager.currentPageResults.isEmpty)
div(cls := "nostudies")(
iconTag("4"),
iconTag(""),
p(trans.study.noneYet())
)
else
@ -149,7 +149,7 @@ object list {
private[study] def searchForm(placeholder: String, value: String) =
form(cls := "search", action := routes.Study.search(), method := "get")(
input(name := "q", st.placeholder := placeholder, st.value := value),
submitButton(cls := "button", dataIcon := "y")
submitButton(cls := "button", dataIcon := "")
)
private def layout(

View File

@ -14,7 +14,7 @@ object bits {
def link(swissId: Swiss.Id): Frag = link(swissId, idToName(swissId))
def link(swissId: Swiss.Id, name: String): Frag =
a(
dataIcon := "g",
dataIcon := "",
cls := "text",
href := routes.Swiss.show(swissId.value).url
)(name)
@ -64,7 +64,7 @@ object bits {
td(cls := "infos")(
momentFromNowOnce(s.startsAt)
),
td(cls := "text", dataIcon := "r")(s.nbPlayers.localize)
td(cls := "text", dataIcon := "")(s.nbPlayers.localize)
)
}
)

View File

@ -40,7 +40,7 @@ object form {
form3.globalError(form),
form3.actions(
a(href := routes.Team.show(teamId))(trans.cancel()),
form3.submit(trans.createANewTournament(), icon = "g".some)
form3.submit(trans.createANewTournament(), icon = "".some)
)
)
)
@ -75,11 +75,11 @@ object form {
form3.globalError(form),
form3.actions(
a(href := routes.Swiss.show(swiss.id.value))(trans.cancel()),
form3.submit(trans.save(), icon = "g".some)
form3.submit(trans.save(), icon = "".some)
)
),
postForm(cls := "terminate", action := routes.Swiss.terminate(swiss.id.value))(
submitButton(dataIcon := "j", cls := "text button button-red confirm")(
submitButton(dataIcon := "", cls := "text button button-red confirm")(
"Cancel the tournament"
)
)

View File

@ -28,7 +28,7 @@ object home {
)
),
div(cls := "team")(
iconTag("f"),
iconTag(""),
p(
"Swiss tournaments can only be created by team leaders, and can only be played by team members.",
br,
@ -72,7 +72,7 @@ object home {
td(
momentFromNow(s.startsAt),
br,
span(cls := "players text", dataIcon := "r")(s.nbPlayers.localize)
span(cls := "players text", dataIcon := "")(s.nbPlayers.localize)
)
)
}

View File

@ -39,7 +39,7 @@ object side {
a(href := routes.Swiss.home)("Swiss"),
(isGranted(_.ManageTournament) || (ctx.userId.has(s.createdBy) && !s.isFinished)) option frag(
" ",
a(href := routes.Swiss.edit(s.id.value), title := "Edit tournament")(iconTag("%"))
a(href := routes.Swiss.edit(s.id.value), title := "Edit tournament")(iconTag(""))
)
),
bits.showInterval(s)
@ -64,8 +64,8 @@ object side {
teamLink(s.teamId),
if (verdicts.relevant)
st.section(
dataIcon := (if (ctx.isAuth && verdicts.accepted) "E"
else "L"),
dataIcon := (if (ctx.isAuth && verdicts.accepted) ""
else ""),
cls := List(
"conditions" -> true,
"accepted" -> (ctx.isAuth && verdicts.accepted),

View File

@ -93,7 +93,7 @@ $('#form3-message').val($('#form3-message').val() + $(e.target).data('copyurl')
momentFromNow(t.startsAt),
" ",
a(
dataIcon := "z",
dataIcon := "",
cls := "text copy-url-button",
data.copyurl := s"${netConfig.domain}${routes.Tournament.show(t.id).url}"
)

View File

@ -48,7 +48,7 @@ object bits {
tr(cls := "paginated")(
td(cls := "subject")(
a(
dataIcon := "f",
dataIcon := "",
cls := List(
"team-name text" -> true,
"mine" -> isMine

View File

@ -75,7 +75,7 @@ object form {
hr,
t.enabled option postForm(cls := "inline", action := routes.Team.disable(t.id))(
submitButton(
dataIcon := "j",
dataIcon := "",
cls := "submit button text confirm button-empty button-red",
st.title := trans.team.closeTeamDescription.txt() // can actually be reverted
)(closeTeam())
@ -83,7 +83,7 @@ object form {
isGranted(_.ManageTeam) option
postForm(cls := "inline", action := routes.Team.close(t.id))(
submitButton(
dataIcon := "q",
dataIcon := "",
cls := "text button button-empty button-red confirm",
st.title := "Deletes the team and its memberships. Cannot be reverted!"
)(trans.delete())

View File

@ -60,7 +60,7 @@ object show {
}
)(
div(cls := "box__top")(
h1(cls := "text", dataIcon := "f")(t.name),
h1(cls := "text", dataIcon := "")(t.name),
div(
if (t.disabled) span(cls := "staff")("CLOSED")
else nbMembers.plural(t.nbMembers, strong(t.nbMembers.localize))
@ -116,7 +116,7 @@ object show {
a(
href := routes.Tournament.teamBattleForm(t.id),
cls := "button button-empty text",
dataIcon := "g"
dataIcon := ""
)(
span(
strong(teamBattle()),
@ -126,7 +126,7 @@ object show {
a(
href := s"${routes.Tournament.form}?team=${t.id}",
cls := "button button-empty text",
dataIcon := "g"
dataIcon := ""
)(
span(
strong(teamTournament()),
@ -136,7 +136,7 @@ object show {
a(
href := s"${routes.Swiss.form(t.id)}",
cls := "button button-empty text",
dataIcon := "g"
dataIcon := ""
)(
span(
strong(trans.swiss.swissTournaments()),
@ -146,7 +146,7 @@ object show {
a(
href := routes.Team.pmAll(t.id),
cls := "button button-empty text",
dataIcon := "e"
dataIcon := ""
)(
span(
strong(messageAllMembers()),
@ -155,7 +155,7 @@ object show {
)
),
((t.enabled && info.ledByMe) || isGranted(_.Admin)) option
a(href := routes.Team.edit(t.id), cls := "button button-empty text", dataIcon := "%")(
a(href := routes.Team.edit(t.id), cls := "button button-empty text", dataIcon := "")(
trans.settings.settings()
)
),

View File

@ -101,7 +101,7 @@ object tournaments {
)
)
),
td(cls := "text", dataIcon := "r")(any.nbPlayers.localize)
td(cls := "text", dataIcon := "")(any.nbPlayers.localize)
)
}
)

View File

@ -112,7 +112,7 @@ object timeline {
.plural(months, userLink(userId), months)
)
case BlogPost(id, slug, title) =>
a(cls := "text", dataIcon := "6", href := routes.Blog.show(id, slug))(title)
a(cls := "text", dataIcon := "", href := routes.Blog.show(id, slug))(title)
case StreamStart(id, name) =>
views.html.streamer.bits
.redirectLink(id)(cls := "text", dataIcon := "")(trans.xStartedStreaming(name))

View File

@ -37,7 +37,7 @@ object bits {
td(momentFromNow(s.at))
},
td(tour.durationString),
td(dataIcon := "r", cls := "text")(tour.nbPlayers)
td(dataIcon := "", cls := "text")(tour.nbPlayers)
)
}
)

View File

@ -58,7 +58,7 @@ object crud {
action := routes.TournamentCrud.cloneT(tour.id),
method := "get"
)(
form3.submit("Clone", "g".some, klass = "button-green")
form3.submit("Clone", "".some, klass = "button-green")
)
),
standardFlash(),
@ -134,7 +134,7 @@ object crud {
div(cls := "box__top")(
h1("Tournament manager"),
div(cls := "box__top__actions")(
a(cls := "button button-green", href := routes.TournamentCrud.form, dataIcon := "O")
a(cls := "button button-green", href := routes.TournamentCrud.form, dataIcon := "")
)
),
table(cls := "slist slist-pad")(
@ -162,7 +162,7 @@ object crud {
td(tour.clock.toString),
td(tour.minutes, "m"),
td(showDateTimeUTC(tour.startsAt), " ", momentFromNow(tour.startsAt, alwaysRelative = true)),
td(a(href := routes.Tournament.show(tour.id), dataIcon := "v", title := "View on site"))
td(a(href := routes.Tournament.show(tour.id), dataIcon := "", title := "View on site"))
)
},
pagerNextTable(tours, np => routes.TournamentCrud.index(np).url)

View File

@ -18,7 +18,7 @@ object faq {
) {
main(cls := "page-small box box-pad page")(
h1(
a(href := routes.Tournament.home, dataIcon := "I", cls := "text"),
a(href := routes.Tournament.home, dataIcon := "", cls := "text"),
trans.tournamentFAQ()
),
div(cls := "body")(apply())

View File

@ -19,7 +19,7 @@ object finishedList {
td(cls := "date")(momentFromNow(t.startsAt)),
td(cls := "players")(
span(
iconTag('g')(cls := "text"),
iconTag('')(cls := "text"),
userIdLink(t.winnerId, withOnline = false)
),
span(trans.nbPlayers.plural(t.nbPlayers, t.nbPlayers.localize))

View File

@ -42,7 +42,7 @@ object form {
fields.isTeamBattle option form3.hidden(form("teamBattleByTeam")),
form3.actions(
a(href := routes.Tournament.home)(trans.cancel()),
form3.submit(trans.createANewTournament(), icon = "g".some)
form3.submit(trans.createANewTournament(), icon = "".some)
)
)
),
@ -81,11 +81,11 @@ object form {
),
form3.actions(
a(href := routes.Tournament.show(tour.id))(trans.cancel()),
form3.submit(trans.save(), icon = "g".some)
form3.submit(trans.save(), icon = "".some)
)
),
postForm(cls := "terminate", action := routes.Tournament.terminate(tour.id))(
submitButton(dataIcon := "j", cls := "text button button-red confirm")(
submitButton(dataIcon := "", cls := "text button button-red confirm")(
"Cancel the tournament"
)
)
@ -296,7 +296,7 @@ final private class TourFields(form: Form[_], tour: Option[Tournament])(implicit
legend(trans.advancedSettings()),
errMsg(form("conditions")),
p(
strong(dataIcon := "!", cls := "text")(trans.recommendNotTouching()),
strong(dataIcon := "", cls := "text")(trans.recommendNotTouching()),
" ",
trans.fewerPlayers(),
" ",

View File

@ -87,7 +87,7 @@ object home {
a(
href := routes.Tournament.form,
cls := "button button-green text",
dataIcon := "O"
dataIcon := ""
)(trans.createANewTournament())
)
),

Some files were not shown because too many files have changed in this diff Show More