Skip to content

Commit dc1f340

Browse files
committed
Update phoenix
1 parent 57ee78a commit dc1f340

File tree

77 files changed

+780
-713
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+780
-713
lines changed

services/app/apps/codebattle/assets/js/widgets/components/InvitesContainer.jsx

Lines changed: 44 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,33 @@
1-
import React, { useEffect, useCallback } from 'react';
1+
import React, { useEffect, useCallback } from "react";
22

3-
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
4-
import Button from 'react-bootstrap/Button';
5-
import OverlayTrigger from 'react-bootstrap/OverlayTrigger';
6-
import Popover from 'react-bootstrap/Popover';
7-
import { useDispatch, useSelector } from 'react-redux';
3+
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
4+
import Button from "react-bootstrap/Button";
5+
import OverlayTrigger from "react-bootstrap/OverlayTrigger";
6+
import Popover from "react-bootstrap/Popover";
7+
import { useDispatch, useSelector } from "react-redux";
88

9-
import { unfollowUser, followUser } from '@/middlewares/Main';
9+
import { unfollowUser, followUser } from "@/middlewares/Main";
1010

11-
import i18n from '../../i18n';
12-
import {
13-
initInvites,
14-
} from '../middlewares/Invite';
15-
import initPresence from '../middlewares/Main';
16-
import * as selectors from '../selectors';
17-
import { actions } from '../slices';
18-
import { selectors as invitesSelectors } from '../slices/invites';
19-
import { isSafari } from '../utils/browser';
11+
import i18n from "../../i18n";
12+
import { initInvites } from "../middlewares/Invite";
13+
import initPresence from "../middlewares/Main";
14+
import * as selectors from "../selectors";
15+
import { actions } from "../slices";
16+
import { selectors as invitesSelectors } from "../slices/invites";
17+
import { isSafari } from "../utils/browser";
2018

21-
import InvitesList from './InvitesList';
19+
import InvitesList from "./InvitesList";
2220

2321
function InvitesContainer() {
2422
const dispatch = useDispatch();
2523

26-
const followId = useSelector(state => state.gameUI.followId);
27-
const followPaused = useSelector(state => state.gameUI.followPaused);
24+
const followId = useSelector((state) => state.gameUI.followId);
25+
const followPaused = useSelector((state) => state.gameUI.followPaused);
2826
const currentUserId = useSelector(selectors.currentUserIdSelector);
29-
const checkInvitePlayers = ({ creatorId, recipientId }) => creatorId === currentUserId || recipientId === currentUserId;
30-
const filterInvites = invite => invite.state === 'pending' && checkInvitePlayers(invite);
27+
const checkInvitePlayers = ({ creatorId, recipientId }) =>
28+
creatorId === currentUserId || recipientId === currentUserId;
29+
const filterInvites = (invite) =>
30+
invite.state === "pending" && checkInvitePlayers(invite);
3131
const invites = useSelector(invitesSelectors.selectAll).filter(filterInvites);
3232

3333
const handleUnfollowClick = useCallback(() => {
@@ -65,41 +65,51 @@ function InvitesContainer() {
6565
// return () => invitesCountElement.classList.remove(...inviteClasses.split(' '));
6666
// }, [invites.length, followId]);
6767

68+
const defaultShow = invites.length !== 0 || undefined;
69+
6870
return (
6971
<>
7072
<OverlayTrigger
71-
trigger={isSafari() ? 'click' : 'focus'}
73+
trigger={isSafari() ? "click" : "focus"}
7274
key="codebattle-invites"
73-
placement={invites.length === 0 ? 'bottom-end' : 'bottom'}
74-
overlay={(
75-
<Popover id="popover-invites" className="cb-bg-panel cb-border-color cb-text cb-rounded" show={invites.length !== 0}>
75+
placement={invites.length === 0 ? "bottom-end" : "bottom"}
76+
show={defaultShow}
77+
overlay={
78+
<Popover
79+
id="popover-invites"
80+
className="cb-bg-panel cb-border-color cb-text cb-rounded"
81+
>
7682
{followId && (
7783
<div className="d-flex justify-content-center align-items-center p-2">
78-
{i18n.t('You are following ID: %{followId}', { followId })}
84+
{i18n.t("You are following ID: %{followId}", { followId })}
7985
<button
8086
type="button"
8187
className="btn btn-sm btn-outline-secondary cb-btn-outline-secondary cb-rounded mx-1"
8288
onClick={togglePausedfollowClick}
8389
>
8490
<FontAwesomeIcon
85-
icon={followPaused ? 'play' : 'pause'}
91+
icon={followPaused ? "play" : "pause"}
8692
className="mr-1"
8793
/>
88-
{followPaused ? i18n.t('Unpause') : i18n.t('Pause')}
94+
{followPaused ? i18n.t("Unpause") : i18n.t("Pause")}
8995
</button>
9096
<button
9197
type="button"
9298
className="btn btn-sm btn-outline-danger cb-rounded mx-1"
9399
onClick={handleUnfollowClick}
94100
>
95101
<FontAwesomeIcon icon="binoculars" className="mr-1" />
96-
{i18n.t('Unfollow')}
102+
{i18n.t("Unfollow")}
97103
</button>
98104
</div>
99105
)}
100-
<InvitesList followId={followId} list={invites} currentUserId={currentUserId} />
106+
<InvitesList
107+
followId={followId}
108+
list={invites}
109+
currentUserId={currentUserId}
110+
/>
101111
</Popover>
102-
)}
112+
}
103113
>
104114
{({ ref, ...triggerHandler }) => (
105115
<Button
@@ -110,14 +120,14 @@ function InvitesContainer() {
110120
ref={ref}
111121
alt="invites"
112122
src="/assets/images/fight.svg"
113-
style={{ width: '46px', height: '46px' }}
123+
style={{ width: "46px", height: "46px" }}
114124
/>
115125
{followId && (
116126
<span
117127
className="position-absolute badge badge-danger"
118-
style={{ top: '74%' }}
128+
style={{ top: "74%" }}
119129
>
120-
<FontAwesomeIcon icon={followPaused ? 'pause' : 'binoculars'} />
130+
<FontAwesomeIcon icon={followPaused ? "pause" : "binoculars"} />
121131
</span>
122132
)}
123133
{invites.length !== 0 ? (

services/app/apps/codebattle/lib/codebattle/code_check/output_parser_v2.ex

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,8 @@ defmodule Codebattle.CodeCheck.OutputParser.V2 do
163163
result: safe_encode(solution_result["value"]),
164164
status:
165165
if solution_result["type"] == "result" and
166-
AtomizedMap.atomize(solution_result["value"]) == AtomizedMap.atomize(assert_item.expected) do
166+
AtomizedMap.atomize(solution_result["value"]) ==
167+
AtomizedMap.atomize(assert_item.expected) do
167168
"success"
168169
else
169170
"failure"

services/app/apps/codebattle/lib/codebattle/game/player.ex

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,18 @@ defmodule Codebattle.Game.Player do
4646
field(:achievements, {:array, :string}, default: [])
4747
field(:avatar_url, :string)
4848
# CodeCheck.Result.t() | CodeCheck.Result.V2.t()
49-
field(:check_result, AtomizedMap, default: %CodeCheck.Result{})
49+
field(:check_result, AtomizedMap,
50+
default: %{
51+
exit_code: 0,
52+
success_count: 0,
53+
asserts_count: 1,
54+
status: "initial",
55+
output_error: "",
56+
version: 2,
57+
asserts: []
58+
}
59+
)
60+
5061
field(:creator, :boolean, default: false)
5162
field(:editor_lang, :string, default: "js")
5263
field(:editor_text, :string, default: @default_editor_text)

services/app/apps/codebattle/lib/codebattle/season_cache.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ defmodule Codebattle.SeasonCache do
1818
end
1919
end)
2020
|> case do
21-
{:commit, season, _params} -> season
21+
{:commit, season} -> season
2222
{:ok, season} -> season
2323
{:ignore, nil} -> nil
2424
{:error, _} -> nil

services/app/apps/codebattle/lib/codebattle/task_pack.ex

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,10 @@ defmodule Codebattle.TaskPack do
5656
def get_tasks(%__MODULE__{} = task_pack) do
5757
query = from(t in Task, where: t.id in ^task_pack.task_ids)
5858
tasks = Repo.all(query)
59-
task_pack.task_ids |> Enum.map(fn task_id -> Enum.find(tasks, &(&1.id == task_id)) end) |> Enum.filter(& &1)
59+
60+
task_pack.task_ids
61+
|> Enum.map(fn task_id -> Enum.find(tasks, &(&1.id == task_id)) end)
62+
|> Enum.filter(& &1)
6063
end
6164

6265
def can_see_task_pack?(%{visibility: "public"}, _user), do: true

services/app/apps/codebattle/lib/codebattle_web.ex

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ defmodule CodebattleWeb do
2828

2929
def controller do
3030
quote do
31-
use Phoenix.Controller, namespace: CodebattleWeb
31+
use Phoenix.Controller, formats: [:html, :json]
3232
use PhoenixMetaTags.TagController
3333
use Gettext, backend: CodebattleWeb.Gettext
3434

@@ -52,12 +52,12 @@ defmodule CodebattleWeb do
5252
namespace: CodebattleWeb
5353

5454
use PhoenixMetaTags.TagView
55-
use Phoenix.HTML
5655
use Gettext, backend: CodebattleWeb.Gettext
5756

5857
import CodebattleWeb.ErrorHelpers
5958
import CodebattleWeb.FormHelpers
6059
import Phoenix.Controller, only: [view_module: 1]
60+
import Phoenix.HTML
6161
import Phoenix.HTML.Form
6262

6363
alias CodebattleWeb.Router.Helpers, as: Routes
@@ -71,24 +71,24 @@ defmodule CodebattleWeb do
7171

7272
def live_view do
7373
quote do
74+
use PhoenixHTMLHelpers
75+
7476
use Phoenix.LiveView,
7577
root: "lib/codebattle_web/templates",
7678
namespace: CodebattleWeb
7779

7880
use PhoenixMetaTags.TagView
79-
use Phoenix.HTML
8081
use Gettext, backend: CodebattleWeb.Gettext
8182

8283
import CodebattleWeb.ErrorHelpers
84+
import Phoenix.Controller, only: [view_module: 1]
85+
import Phoenix.HTML
86+
import Phoenix.HTML.Form
87+
import PhoenixHTMLHelpers.Tag
8388

8489
# Import convenience functions from controllers
85-
import Phoenix.Controller, only: [view_module: 1]
8690

8791
# Use all HTML functionality (forms, tags, etc)
88-
import Phoenix.HTML.Form
89-
import Phoenix.HTML.Format
90-
import Phoenix.HTML.Link
91-
import Phoenix.HTML.Tag
9292

9393
unquote(view_helpers())
9494
end
@@ -112,12 +112,14 @@ defmodule CodebattleWeb do
112112

113113
defp view_helpers do
114114
quote do
115-
use Phoenix.HTML
115+
use PhoenixHTMLHelpers
116+
117+
import Phoenix.HTML
118+
import Phoenix.HTML.Form
119+
import PhoenixHTMLHelpers.Tag
116120

117121
alias CodebattleWeb.Router.Helpers, as: Routes
118122
alias Phoenix.LiveView.JS
119-
# Import basic rendering functionality (render, render_layout, etc)
120-
# import Phoenix.View
121123
end
122124
end
123125

services/app/apps/codebattle/lib/codebattle_web/controllers/event_controller.ex

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,10 @@ defmodule CodebattleWeb.EventController do
1212
end
1313

1414
def new(conn, _params) do
15-
render(conn, "new.html", changeset: Event.changeset(%Event{}), user: conn.assigns.current_user)
15+
render(conn, "new.html",
16+
changeset: Event.changeset(%Event{}),
17+
user: conn.assigns.current_user
18+
)
1619
end
1720

1821
def show(conn, %{"id" => id}) do
@@ -27,7 +30,7 @@ defmodule CodebattleWeb.EventController do
2730
user = conn.assigns.current_user
2831
params = Map.put(event_params, "user_id", user.id)
2932

30-
# Handle stages JSON if present
33+
# Handle stages Jason if present
3134
params = process_stages_json(params)
3235

3336
case Event.create(params) do
@@ -44,7 +47,7 @@ defmodule CodebattleWeb.EventController do
4447
def update(conn, %{"id" => id, "event" => event_params}) do
4548
event = Event.get!(id)
4649

47-
# Handle stages JSON if present
50+
# Handle stages Jason if present
4851
event_params = process_stages_json(event_params)
4952

5053
case Event.update(
@@ -57,7 +60,11 @@ defmodule CodebattleWeb.EventController do
5760
|> redirect(to: Routes.event_path(conn, :show, event))
5861

5962
{:error, %Ecto.Changeset{} = changeset} ->
60-
render(conn, "edit.html", event: event, changeset: changeset, user: conn.assigns.current_user)
63+
render(conn, "edit.html",
64+
event: event,
65+
changeset: changeset,
66+
user: conn.assigns.current_user
67+
)
6168
end
6269
end
6370

@@ -78,7 +85,7 @@ defmodule CodebattleWeb.EventController do
7885
|> redirect(to: Routes.event_path(conn, :index))
7986
end
8087

81-
# Process stages JSON data from form
88+
# Process stages Jason data from form
8289
defp process_stages_json(%{"stages_json" => stages_json} = params) when is_binary(stages_json) and stages_json != "" do
8390
with {:ok, stages_data} <- Jason.decode(stages_json),
8491
true <- is_list(stages_data) do
@@ -94,7 +101,7 @@ defmodule CodebattleWeb.EventController do
94101
|> Map.put("stages", stages)
95102
else
96103
_ ->
97-
# Invalid format - not a list or invalid JSON
104+
# Invalid format - not a list or invalid Jason
98105
params
99106
end
100107
end

services/app/apps/codebattle/lib/codebattle_web/controllers/ext_api/tourtnament_controller.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,12 @@ defmodule CodebattleWeb.ExtApi.TournamentController do
5454
{:ok, %{status: status}} ->
5555
conn
5656
|> put_status(:bad_gateway)
57-
|> json(%{error: "Failed to retrieve JSON", status: status})
57+
|> json(%{error: "Failed to retrieve Jason", status: status})
5858

5959
{:error, reason} ->
6060
conn
6161
|> put_status(:internal_server_error)
62-
|> json(%{error: "Error fetching JSON: #{inspect(reason)}"})
62+
|> json(%{error: "Error fetching Jason: #{inspect(reason)}"})
6363
end
6464
end
6565

services/app/apps/codebattle/lib/codebattle_web/controllers/feedback_controller.ex

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
defmodule CodebattleWeb.FeedbackController do
22
use CodebattleWeb, :controller
33

4+
plug(:put_view, CodebattleWeb.FeedbackView)
5+
46
def index(conn, _params) do
57
conn
68
|> put_meta_tags(%{

services/app/apps/codebattle/lib/codebattle_web/controllers/game/image_controller.ex

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ defmodule CodebattleWeb.Game.ImageController do
55
alias Codebattle.Game.Context
66
alias CodebattleWeb.HtmlImage
77

8+
plug :put_layout, html: false
9+
810
def show(conn, %{"game_id" => id}) do
911
case Context.fetch_game(id) do
1012
{:ok, game} ->

0 commit comments

Comments
 (0)