Skip to content

DEV: [gjs-codemod] Convert all templates to gjs #659

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 17 additions & 15 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -14,42 +14,44 @@ GEM
securerandom (>= 0.3)
tzinfo (~> 2.0, >= 2.0.5)
uri (>= 0.13.1)
ast (2.4.2)
ast (2.4.3)
base64 (0.2.0)
benchmark (0.4.0)
bigdecimal (3.1.9)
concurrent-ruby (1.3.5)
connection_pool (2.5.0)
connection_pool (2.5.3)
drb (2.2.1)
i18n (1.14.7)
concurrent-ruby (~> 1.0)
json (2.10.2)
json (2.11.3)
language_server-protocol (3.17.0.4)
lint_roller (1.1.0)
logger (1.6.6)
logger (1.7.0)
minitest (5.25.5)
parallel (1.26.3)
parser (3.3.7.1)
parallel (1.27.0)
parser (3.3.8.0)
ast (~> 2.4.1)
racc
prettier_print (1.2.1)
prism (1.4.0)
racc (1.8.1)
rack (3.1.12)
rack (3.1.14)
rainbow (3.1.1)
regexp_parser (2.10.0)
rubocop (1.74.0)
rubocop (1.75.5)
json (~> 2.3)
language_server-protocol (~> 3.17.0.2)
lint_roller (~> 1.1.0)
parallel (~> 1.10)
parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 2.9.3, < 3.0)
rubocop-ast (>= 1.38.0, < 2.0)
rubocop-ast (>= 1.44.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.38.1)
parser (>= 3.3.1.0)
rubocop-ast (1.44.1)
parser (>= 3.3.7.2)
prism (~> 1.4)
rubocop-capybara (2.22.1)
lint_roller (~> 1.1)
rubocop (~> 1.72, >= 1.72.1)
Expand All @@ -65,13 +67,13 @@ GEM
rubocop-factory_bot (2.27.1)
lint_roller (~> 1.1)
rubocop (~> 1.72, >= 1.72.1)
rubocop-rails (2.30.3)
rubocop-rails (2.31.0)
activesupport (>= 4.2.0)
lint_roller (~> 1.1)
rack (>= 1.1)
rubocop (>= 1.72.1, < 2.0)
rubocop (>= 1.75.0, < 2.0)
rubocop-ast (>= 1.38.0, < 2.0)
rubocop-rspec (3.5.0)
rubocop-rspec (3.6.0)
lint_roller (~> 1.1)
rubocop (~> 1.72, >= 1.72.1)
rubocop-rspec_rails (2.31.0)
Expand All @@ -97,4 +99,4 @@ DEPENDENCIES
syntax_tree

BUNDLED WITH
2.6.6
2.6.8
15 changes: 15 additions & 0 deletions assets/javascripts/discourse/components/assigned-to.gjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import avatar from "discourse/helpers/avatar";

const AssignedTo = <template>
<div class="assigned-to-user">
{{avatar @user imageSize="small"}}

<span class="assigned-username">
{{@user.username}}
</span>

{{yield}}
</div>
</template>;

export default AssignedTo;
9 changes: 0 additions & 9 deletions assets/javascripts/discourse/components/assigned-to.hbs

This file was deleted.

35 changes: 35 additions & 0 deletions assets/javascripts/discourse/components/assignee-chooser-row.gjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import { and } from "truth-helpers";
import UserStatusMessage from "discourse/components/user-status-message";
import avatar from "discourse/helpers/avatar";
import icon from "discourse/helpers/d-icon";
import decorateUsernameSelector from "discourse/helpers/decorate-username-selector";
import formatUsername from "discourse/helpers/format-username";
import EmailGroupUserChooserRow from "select-kit/components/email-group-user-chooser-row";

export default class AssigneeChooserRow extends EmailGroupUserChooserRow {
<template>
{{#if this.item.isUser}}
{{avatar this.item imageSize="tiny"}}
<div class="user-wrapper">
<span class="identifier">{{formatUsername this.item.id}}</span>
<span class="name">{{this.item.name}}</span>
{{#if (and this.item.showUserStatus this.item.status)}}
<UserStatusMessage
@status={{this.item.status}}
@showDescription={{true}}
/>
{{/if}}
</div>
{{decorateUsernameSelector this.item.id}}
{{else if this.item.isGroup}}
{{icon "users"}}
<div class="user-wrapper">
<span class="identifier">{{this.item.id}}</span>
<span class="name">{{this.item.full_name}}</span>
</div>
{{else}}
{{icon "envelope"}}
<span class="identifier">{{this.item.id}}</span>
{{/if}}
</template>
}
23 changes: 0 additions & 23 deletions assets/javascripts/discourse/components/assignee-chooser-row.hbs

This file was deleted.

This file was deleted.

2 changes: 1 addition & 1 deletion assets/javascripts/discourse/components/assignment.gjs
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ import { TextArea } from "@ember/legacy-built-in-components";
import { on } from "@ember/modifier";
import { action } from "@ember/object";
import { service } from "@ember/service";
import { not } from "truth-helpers";
import icon from "discourse/helpers/d-icon";
import { i18n } from "discourse-i18n";
import ComboBox from "select-kit/components/combo-box";
import not from "truth-helpers/helpers/not";
import AssigneeChooser from "./assignee-chooser";

export default class Assignment extends Component {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import Component from "@glimmer/component";
import { action } from "@ember/object";
import { TrackedObject } from "@ember-compat/tracked-built-ins";
import DButton from "discourse/components/d-button";
import AssignUserForm from "../assign-user-form";

export default class AssignUser extends Component {
model = new TrackedObject({});
Expand All @@ -19,4 +21,26 @@ export default class AssignUser extends Component {
note: this.model.note,
});
}

<template>
<div>
<AssignUserForm
@model={{this.model}}
@onSubmit={{this.assign}}
@formApi={{this.formApi}}
/>
</div>

<div>
<DButton
class="btn-primary"
@action={{this.formApi.submit}}
@label={{if
this.model.reassign
"discourse_assign.reassign.title"
"discourse_assign.assign_modal.assign"
}}
/>
</div>
</template>
}

This file was deleted.

66 changes: 66 additions & 0 deletions assets/javascripts/discourse/components/group-assigned-filter.gjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
import { hash } from "@ember/helper";
import { LinkTo } from "@ember/routing";
import avatar from "discourse/helpers/avatar";
import icon from "discourse/helpers/d-icon";
import formatUsername from "discourse/helpers/format-username";
import { i18n } from "discourse-i18n";

const GroupAssignedFilter = <template>
<li>
{{#if @showAvatar}}
<LinkTo
@route="group.assigned.show"
@model={{@filter.username_lower}}
@query={{hash order=@order ascending=@ascending search=@search}}
>
<div class="assign-image">
<a
href={{@filter.userPath}}
data-user-card={{@filter.username}}
>{{avatar this.filter imageSize="large"}}</a>
</div>

<div class="assign-names">
<div class="assign-username">{{formatUsername @filter.username}}</div>
<div class="assign-name">{{@filter.name}}</div>
</div>

<div class="assign-count">
{{@filter.assignments_count}}
</div>
</LinkTo>
{{else if @groupName}}
<LinkTo
@route="group.assigned.show"
@model={{@filter}}
@query={{hash order=@order ascending=@ascending search=@search}}
>
<div class="assign-image">
{{icon "group-plus"}}
</div>
<div class="assign-names">
<div class="assign-username">{{@groupName}}</div>
</div>

<div class="assign-count">
{{@assignmentCount}}
</div>
</LinkTo>
{{else}}
<LinkTo
@route="group.assigned.show"
@model={{@filter}}
@query={{hash order=@order ascending=@ascending search=@search}}
>
<div class="assign-everyone">
{{i18n "discourse_assign.group_everyone"}}
</div>
<div class="assign-count">
{{@assignmentCount}}
</div>
</LinkTo>
{{/if}}
</li>
</template>;

export default GroupAssignedFilter;
55 changes: 0 additions & 55 deletions assets/javascripts/discourse/components/group-assigned-filter.hbs

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { LinkTo } from "@ember/routing";
import icon from "discourse/helpers/d-icon";
import { i18n } from "discourse-i18n";

const GroupAssignedMenuItem = <template>
<LinkTo @route="group.assigned">
{{icon "group-plus" class="glyph"}}{{i18n "discourse_assign.assigned"}}
({{@group.assignment_count}})
</LinkTo>
</template>;

export default GroupAssignedMenuItem;

This file was deleted.

Loading