preferences title

preferences title

<%= @identity.username %>

<%= @identity.name %>

<a href="/identities/<%= @identity.id %>/delegations/from"><%= @num_delegations_from %> delegations from
  |
<a href="/identities/<%= @identity.id %>/delegations/to"><%= @num_delegations_to %> delegations to
  |
<a href="/identities/<%= @identity.id %>/votes"><%= @num_votes %> votes

<%= unless @is_in_trust_metric do %>

NOT IN TRUST METRIC

<% end %>

<%= if @is_me do %>

Your preferences

	<form method="POST" action="preferences" class="pure-form" style="margin-top: -15px;">
		<input type="hidden" name="_csrf_token" value="<%= get_csrf_token() %>" />

Trust metric URL

			<input type="text" name="trust_metric_url" style="max-width: 500px;" value="<%= @calculation_opts.trust_metric_url %>" />

Minimum voting power

			<input type="text" name="minimum_voting_power" style="max-width: 250px;" value="<%= @calculation_opts.minimum_voting_power %>" />

Minimum approval score

			<input type="text" name="minimum_reference_approval_score" style="max-width: 250px;" value="<%= @calculation_opts.minimum_reference_approval_score %>" />

Number of artificial votes with score 0 in approval polls

			<input type="text" name="soft_quorum_t" style="max-width: 250px;" value="<%= @calculation_opts.soft_quorum_t %>" />

Number of days for vote weight to halve

			<input type="text" name="vote_weight_halving_days" style="max-width: 250px;" value="<%= @calculation_opts.vote_weight_halving_days %>" />

		<button type="submit" class="pure-button pure-button-primary">Update preferences</button>
	</form>
<% else %>

Do you trust this identity? Learn more

	<%= render Liquio.HtmlPollView, "cast_vote.html",
		to_path: "/identities/#{@identity.id}",
		poll: %{:id => @identity.trust_metric_poll_id, :choice_type => "probability"},
		own_vote: @own_is_human_vote,
		allow_numeric: false
	%>

Delegation to this identity

	<form method="POST" action="/identities/<%= @identity.id %>/delegations" class="pure-form" style="margin-top: -15px;">
		<input type="hidden" name="_csrf_token" value="<%= get_csrf_token() %>" />

Relative weight

			<input type="text" name="weight" style="max-width: 150px;"<%= if @delegation do %> value="<%= number_format_simple @delegation.data.weight %>"<% end %> placeholder="1" />

Topics (separated by comma)

			<input type="text" name="topics" style="max-width: 400px;"<%= if @delegation != nil and @delegation.data.topics != nil do %> value="<%= @delegation.data.topics |> Enum.join(", ") %>"<% end %> placeholder="All topics" />

		<%= if @delegation do %>
			<button type="submit" class="pure-button pure-button-primary">Update delegation</button>
			<button type="submit" name="weight" value="0" class="pure-button delete-button">Remove delegation</button>
		<% else %>
			<button type="submit" class="pure-button pure-button-primary">Set delegation</button>
		<% end %>
	</form>
<% end %>

<%= @identity.username %>

<%= @identity.name %>

<a href="/identities/<%= @identity.id %>/delegations/from"><%= @num_delegations_from %> delegations from
  |
<a href="/identities/<%= @identity.id %>/delegations/to"><%= @num_delegations_to %> delegations to
  |
<a href="/identities/<%= @identity.id %>/votes"><%= @num_votes %> votes

<%= unless @is_in_trust_metric do %>

NOT IN TRUST METRIC

<% end %>

<%= if @is_me do %>
	<form method="POST" action="preferences" class="pure-form">
		<input type="hidden" name="_csrf_token" value="<%= get_csrf_token() %>" />

Trust metric URL

			<input type="text" name="trust_metric_url" style="max-width: 500px;" value="<%= @calculation_opts.trust_metric_url %>" />

Minimum voting power

			<input type="text" name="minimum_voting_power" style="max-width: 250px;" value="<%= @calculation_opts.minimum_voting_power %>" />

Minimum approval score

			<input type="text" name="minimum_reference_approval_score" style="max-width: 250px;" value="<%= @calculation_opts.minimum_reference_approval_score %>" />

Number of artificial votes with score 0 in approval polls

			<input type="text" name="soft_quorum_t" style="max-width: 250px;" value="<%= @calculation_opts.soft_quorum_t %>" />

Number of days for vote weight to halve

			<input type="text" name="vote_weight_halving_days" style="max-width: 250px;" value="<%= @calculation_opts.vote_weight_halving_days %>" />

		<button type="submit" class="pure-button pure-button-primary">Update preferences</button>
	</form>
<% else %>

Do you trust this identity? Learn more

	<%= render Liquio.HtmlPollView, "cast_vote.html",
		to_path: "/identities/#{@identity.id}",
		poll: %{:id => @identity.trust_metric_poll_id, :choice_type => "probability"},
		own_vote: @own_is_human_vote,
		allow_numeric: false
	%>

Delegation to this identity

	<form method="POST" action="/identities/<%= @identity.id %>/delegations" class="pure-form" style="margin-top: -15px;">
		<input type="hidden" name="_csrf_token" value="<%= get_csrf_token() %>" />

Relative weight

			<input type="text" name="weight" style="max-width: 150px;"<%= if @delegation do %> value="<%= number_format_simple @delegation.data.weight %>"<% end %> placeholder="1" />

Topics (separated by comma)

			<input type="text" name="topics" style="max-width: 400px;"<%= if @delegation != nil and @delegation.data.topics != nil do %> value="<%= @delegation.data.topics |> Enum.join(", ") %>"<% end %> placeholder="All topics" />

		<%= if @delegation do %>
			<button type="submit" class="pure-button pure-button-primary">Update delegation</button>
			<button type="submit" name="weight" value="0" class="pure-button delete-button">Remove delegation</button>
		<% else %>
			<button type="submit" class="pure-button pure-button-primary">Set delegation</button>
		<% end %>
	</form>
<% end %>


Tiny indentation fix

Tiny indentation fix


Update navigation items.

Update navigation items.

<!DOCTYPE html>

    <meta charset="utf-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
    <title>Magnetissimo - Web application that indexes all popular torrent sites, and saves it to the local database.</title>
    <link rel="stylesheet" href="<%= Routes.static_path(@conn, "/css/app.css") %>"/>

          <img src="<%= Routes.static_path(@conn, "/images/magnetissimo-logo.jpg") %>" alt="Magnetissimo Logo"/>

            Home

              More

                Github Repository

                Discord Server

                Contact

                Report an issue

            Powered by ❤ Elixir and Phoenix.

          <%= render "_sidebar.html", total_torrent_count: @total_torrent_count, tallies: @tallies, term: @term, website_source: @website_source %>

          <%= render @view_module, @view_template, assigns %>

<!DOCTYPE html>

    <meta charset="utf-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
    <title>Magnetissimo - Web application that indexes all popular torrent sites, and saves it to the local database.</title>
    <link rel="stylesheet" href="<%= Routes.static_path(@conn, "/css/app.css") %>"/>

          <img src="<%= Routes.static_path(@conn, "/images/magnetissimo-logo.jpg") %>" alt="Magnetissimo Logo"/>

            Home

            Search

            Stats

              More

                Github Repository

                Discord Server

                Contact

                Report an issue

            Powered by ❤ Elixir and Phoenix.

          <%= render "_sidebar.html", total_torrent_count: @total_torrent_count, tallies: @tallies, term: @term, website_source: @website_source %>

          <%= render @view_module, @view_template, assigns %>


ref: remove flattr

ref: remove flattr

<img src="<%= static_path(@conn, "/images/christian-kruse.jpg") %>" alt="" class="u-photo big">

Christian Kruse

      My name is Christian Kruse. I work as a software developer and
      system administator at <%= link "Termitel GmbH", to: "https://termitel.de/" %>.
      I live in Germany in a small town called
      <%= link "Steinfurt", to: "https://en.wikipedia.org/wiki/Steinfurt" %>.

      I am passionate about software development,
      <%= link "GNU/Linux", to: "https://en.wikipedia.org/wiki/Linux" %>,
      <%= link "FLOSS", to: "https://en.wikipedia.org/wiki/Free_and_open-source_software" %>
      as well as <%= link "OS X", to: "https://en.wikipedia.org/wiki/OS_X" %>.
      I am also a do-it-yourself apologetic: I did a lot of things in and
      around my house myself. I love the hacker culture. And last but not
      least I am a dog owner.

      This is my personal replacement for Twitter, Facebook and the other
      data silos. <%= link "My content is mine", to: "http://indiewebcamp.com/" %>
      — so if you are interested in my activity, just have a look at this
      page.

      All content on this site is available under
      CC BY-SA 3.0.

      <img src="<%= static_path(@conn, "/images/cc-commons-badge.png") %>" width="80" height="15" alt="IndieWebCamp" class="badge">
      <img src="<%= static_path(@conn, "/images/indieweb-badge.png") %>" width="80" height="15" alt="IndieWebCamp" class="badge">
      <img src="<%= static_path(@conn, "/images/webmention-badge.png") %>" width="80" height="15" alt="WebMentions" class="badge">
      <img src="<%= static_path(@conn, "/images/microformats-badge.png") %>" width="80" height="15" alt="Microformats" class="badge">

Personal information

Address

Christian Kruse

Friedenau 35

48565 Steinfurt

Germany

Email

<%= link "cjk@defunct.ch", to: "mailto:cjk@defunct.ch", class: "u-email" %>

Jabber

<%= link "cjk@defunct.ch", to: "xmpp:cjk@defunct.ch", class: "u-url" %>

PGP

A99A9D73

BC5D 9F4E F7FB 4382 6056  E834 B8E0 F342 A99A 9D73

<%= link "wwwtech.de/A99A9D73.asc", to: "/A99A9D73.asc" %>

Please send me encrypted mails if possible (see my public key above). Every
    bit of encrypted traffic increases the encrypted background noise
    and thus makes it harder to distinguish between important and
    unimportant traffic.

Social media

I also take part in several social services:

<%= link "forum.selfhtml.org/users/1", to: "http://forum.selfhtml.org/users/1", rel: "me" %> on SELFHTML

<%= link "https://chaos.social/@cjk101010", to: "https://chaos.social/@cjk101010", rel: "me" %> on Mastodon</>

<%= link "@cjk101010", to: "https://twitter.com/cjk101010", rel: "me" %> on Twitter

<%= link "github.com/ckruse", to: "https://github.com/ckruse", rel: "me" %> on Github

<%= link "www.reddit.com/user/cjk101010/", to: "https://www.reddit.com/user/cjk101010/", rel: "me" %> on Reddit

<%= link "news.ycombinator.com/user?id=cjk101010", to: "https://news.ycombinator.com/user?id=cjk101010", rel: "me" %> on Hackernews

<%= link "keybase.io/ckruse", to: "https://keybase.io/ckruse", rel: "me" %> on Keybase.io

<%= link "stackoverflow.com/users/785998/ckruse", to: "http://stackoverflow.com/users/785998/ckruse", rel: "me" %> on StackOverflow

<img src="<%= static_path(@conn, "/images/christian-kruse.jpg") %>" alt="" class="u-photo big">

Christian Kruse

      My name is Christian Kruse. I work as a software developer and
      system administator at <%= link "Termitel GmbH", to: "https://termitel.de/" %>.
      I live in Germany in a small town called
      <%= link "Steinfurt", to: "https://en.wikipedia.org/wiki/Steinfurt" %>.

      I am passionate about software development,
      <%= link "GNU/Linux", to: "https://en.wikipedia.org/wiki/Linux" %>,
      <%= link "FLOSS", to: "https://en.wikipedia.org/wiki/Free_and_open-source_software" %>
      as well as <%= link "OS X", to: "https://en.wikipedia.org/wiki/OS_X" %>.
      I am also a do-it-yourself apologetic: I did a lot of things in and
      around my house myself. I love the hacker culture. And last but not
      least I am a dog owner.

      This is my personal replacement for Twitter, Facebook and the other
      data silos. <%= link "My content is mine", to: "http://indiewebcamp.com/" %>
      — so if you are interested in my activity, just have a look at this
      page.

      All content on this site is available under
      CC BY-SA 3.0.

      <img src="<%= static_path(@conn, "/images/cc-commons-badge.png") %>" width="80" height="15" alt="IndieWebCamp" class="badge">
      <img src="<%= static_path(@conn, "/images/indieweb-badge.png") %>" width="80" height="15" alt="IndieWebCamp" class="badge">
      <img src="<%= static_path(@conn, "/images/webmention-badge.png") %>" width="80" height="15" alt="WebMentions" class="badge">
      <img src="<%= static_path(@conn, "/images/microformats-badge.png") %>" width="80" height="15" alt="Microformats" class="badge">

Personal information

Address

Christian Kruse

Friedenau 35

48565 Steinfurt

Germany

Email

<%= link "cjk@defunct.ch", to: "mailto:cjk@defunct.ch", class: "u-email" %>

Jabber

<%= link "cjk@defunct.ch", to: "xmpp:cjk@defunct.ch", class: "u-url" %>

PGP

A99A9D73

BC5D 9F4E F7FB 4382 6056  E834 B8E0 F342 A99A 9D73

<%= link "wwwtech.de/A99A9D73.asc", to: "/A99A9D73.asc" %>

Please send me encrypted mails if possible (see my public key above). Every
    bit of encrypted traffic increases the encrypted background noise
    and thus makes it harder to distinguish between important and
    unimportant traffic.

Social media

I also take part in several social services:

<%= link "forum.selfhtml.org/users/1", to: "http://forum.selfhtml.org/users/1", rel: "me" %> on SELFHTML

<%= link "https://chaos.social/@cjk101010", to: "https://chaos.social/@cjk101010", rel: "me" %> on Mastodon</>

<%= link "@cjk101010", to: "https://twitter.com/cjk101010", rel: "me" %> on Twitter

<%= link "github.com/ckruse", to: "https://github.com/ckruse", rel: "me" %> on Github

<%= link "flattr.com/profile/cjk", to: "https://flattr.com/profile/cjk", rel: "me" %> on Flattr

<%= link "www.reddit.com/user/cjk101010/", to: "https://www.reddit.com/user/cjk101010/", rel: "me" %> on Reddit

<%= link "news.ycombinator.com/user?id=cjk101010", to: "https://news.ycombinator.com/user?id=cjk101010", rel: "me" %> on Hackernews

<%= link "keybase.io/ckruse", to: "https://keybase.io/ckruse", rel: "me" %> on Keybase.io

<%= link "stackoverflow.com/users/785998/ckruse", to: "http://stackoverflow.com/users/785998/ckruse", rel: "me" %> on StackOverflow


Fix img alt

Fix img alt

        You know the rules, right?

Look for pairs of cards by turning them over in turns, 2 at a time. If you find a match, you get a point - and you may turn over 2 more cards. Whoever finds more matches wins.

    <form class="game-option option-four" method=post action="/<%= locale() %>/games">

Play solo

            Play solo to improve your accuracy!

            <input type="hidden" name="_csrf_token" value="<%= get_csrf_token() %>">
            <input type="hidden" name="game[theme]" value="eighties">
            <input type="hidden" name="game[board_size]" value="6">
            <input type="hidden" name="game[players_number]" value="1">
            <input type="hidden" name="game[visibility]" value="private">

          <button type="submit" class="btn btn-option-go btn-info">Start solo game</button>

    </form>

    <form class="game-option option-one" method=post action="/<%= locale() %>/games/random">
      <input type="hidden" name="_csrf_token" value="<%= get_csrf_token() %>">

Play with anybody

            Somebody may be waiting for you to join right now!

          <button type="submit" class="btn btn-option-go btn-primary">Join random player</button>

    </form>

    <form class="game-option option-two" method=post action="/<%= locale() %>/games">

Play with a friend

            Simply send a link to your online friend to begin!

            <input type="hidden" name="_csrf_token" value="<%= get_csrf_token() %>">
            <input type="hidden" name="game[theme]" value="eighties">
            <input type="hidden" name="game[board_size]" value="6">
            <input type="hidden" name="game[players_number]" value="2">
            <input type="hidden" name="game[visibility]" value="private">

          <button type="submit" class="btn btn-option-go btn-success">Start 2-player game</button>

    </form>

    <form class="game-option option-three" method=post action="/<%= locale() %>/games">

Play locally

            Play with your friend on the same device!

            <input type="hidden" name="_csrf_token" value="<%= get_csrf_token() %>">
            <input type="hidden" name="game[theme]" value="eighties">
            <input type="hidden" name="game[board_size]" value="6">
            <input type="hidden" name="game[players_number]" value="2">
            <input type="hidden" name="game[visibility]" value="local">

          <button type="submit" class="btn btn-option-go btn-warning">Start local game</button>

    </form>

       More options

Start a custom game

  <div class="elm-game-selector" data-themes='<%= raw @themes %>' data-csrf='<%= get_csrf_token() %>'>


ref: update cforum for v5

ref: update cforum for v5

Software Projects

  All software projects listed an this page are licensed under a free
  license. Feel free to use, distribute or change according to the
  license.

Classic Forum

<img src="<%= static_path(@conn, "/images/cforum.png") %>" alt="">

The <%= link "Classic Forum", to: "https://github.com/ckruse/cforum_ex" %> is
      a classical threaded forum software based on <%= link "Elixir", to: "https://elixir-lang.org/" %>, the
      <%= link "Phoenix Framework", to: "https://phoenixframework.org/" %> and
      <%= link "PostgreSQL", to: "http://www.postgresql.org/" %>. It aims to be highly
      configurable and reasonable fast. The main installation can be found
      at the <%= link "SELFHTML Forum", to: "http://forum.selfhtml.org/" %>.
      It is licensed under the <%= link "MIT license", to: "https://choosealicense.com/licenses/mit/" %>.

CFPropertyList

<img src="<%= static_path(@conn, "/images/cfpropertylist.png") %>" alt="">

<%= link "CFPropertyList", to: "https://github.com/ckruse/CFPropertyList" %>
      is a <%= link "Ruby", to: "https://www.ruby-lang.org/" %>
      library for reading and manipulating files in
      <%= link "Apple's", to: "http://www.apple.com/" %>
      <%= link "Property List", to: "https://en.wikipedia.org/wiki/Property_list" %>
      format.  It can read, write and parse the XML plists, binary
      plists and the legacy plain format plists. It is licensed under
      the <%= link "MIT license", to: "http://choosealicense.com/licenses/mit/" %>.

Microformats2-elixir

<img src="<%= static_path(@conn, "/images/microformats2-elixir.png") %>" alt="">

<%= link "Microformats2-elixir", to: "https://github.com/ckruse/microformats2-elixir" %>
      is a <%= link "Elixir", to: "http://elixir-lang.org/" %>
      library for parsing <%= link "Microformats2", to: "http://microformats.org/wiki/microformats-2" %>
      structured HTML. It is licensed under the
      <%= link "AGPL3", to: "http://choosealicense.com/licenses/agpl-3.0/" %> license.

WWWTech.de

<img src="<%= static_path(@conn, "/images/wwwtech.png") %>" alt="">

<%= link "WWWTech.de", to: "https://github.com/ckruse/wwwtech.de" %>
      is the implementation of this website based on the <%= link "Phoenix framework", to: "http://www.phoenixframework.org/" %>.
      It tries to be part of the <%= link "Indieweb movement", to: "https://indiewebcamp.com/" %>.
      It is licensed under
      the <%= link "AGPL3", to: "http://choosealicense.com/licenses/agpl-3.0/" %>.

Burp

<img src="<%= static_path(@conn, "/images/burp.png") %>" alt="">

<%= link "Burp", to: "https://github.com/ckruse/Burp" %> is a blogging software powerd by
      <%= link "Ruby on Rails", to: "http://rubyonrails.org/" %> and
      <%= link "PostgreSQL", to: "http://www.postgresql.org/" %>. It
      is very simple and does just serve the content, without
      any feature foo. It powers the <%= link "Wayne blogging plattform", to: "http://wer.kennt-wayne.de/" %>.

Irckerl

<img src="<%= static_path(@conn,  "/images/irckerl.png") %>" alt="">

<%= link "Irckerl", to: "https://github.com/ckruse/irckerl" %> is a
      IRC server written in Erlang. It is merely a pet project, I
      would not yet recommend to use it. Everytime when I am bored or
      in the mood of it I write code for it.

Software Projects

  All software projects listed an this page are licensed under a free
  license. Feel free to use, distribute or change according to the
  license.

Classic Forum

<img src="<%= static_path(@conn, "/images/cforum.png") %>" alt="">

The <%= link "Classic Forum", to: "https://github.com/ckruse/cforum" %> is
      a classical threaded forum software based on
      <%= link "Rails", to: "http://rubyonrails.org/" %> and
      <%= link "PostgreSQL", to: "http://www.postgresql.org/" %>. It aims to be highly
      configurable and reasonable fast. The main installation can be found
      at the <%= link "SELFHTML Forum", to: "http://forum.selfhtml.org/" %>.
      It is licensed under the <%= link "AGPL3", to: "http://choosealicense.com/licenses/agpl-3.0/" %>.

CFPropertyList

<img src="<%= static_path(@conn, "/images/cfpropertylist.png") %>" alt="">

<%= link "CFPropertyList", to: "https://github.com/ckruse/CFPropertyList" %>
      is a <%= link "Ruby", to: "https://www.ruby-lang.org/" %>
      library for reading and manipulating files in
      <%= link "Apple's", to: "http://www.apple.com/" %>
      <%= link "Property List", to: "https://en.wikipedia.org/wiki/Property_list" %>
      format.  It can read, write and parse the XML plists, binary
      plists and the legacy plain format plists. It is licensed under
      the <%= link "MIT license", to: "http://choosealicense.com/licenses/mit/" %>.

Microformats2-elixir

<img src="<%= static_path(@conn, "/images/microformats2-elixir.png") %>" alt="">

<%= link "Microformats2-elixir", to: "https://github.com/ckruse/microformats2-elixir" %>
      is a <%= link "Elixir", to: "http://elixir-lang.org/" %>
      library for parsing <%= link "Microformats2", to: "http://microformats.org/wiki/microformats-2" %>
      structured HTML. It is licensed under the
      <%= link "AGPL3", to: "http://choosealicense.com/licenses/agpl-3.0/" %> license.

WWWTech.de

<img src="<%= static_path(@conn, "/images/wwwtech.png") %>" alt="">

<%= link "WWWTech.de", to: "https://github.com/ckruse/wwwtech.de" %>
      is the implementation of this website based on the <%= link "Phoenix framework", to: "http://www.phoenixframework.org/" %>.
      It tries to be part of the <%= link "Indieweb movement", to: "https://indiewebcamp.com/" %>.
      It is licensed under
      the <%= link "AGPL3", to: "http://choosealicense.com/licenses/agpl-3.0/" %>.

Burp

<img src="<%= static_path(@conn, "/images/burp.png") %>" alt="">

<%= link "Burp", to: "https://github.com/ckruse/Burp" %> is a blogging software powerd by
      <%= link "Ruby on Rails", to: "http://rubyonrails.org/" %> and
      <%= link "PostgreSQL", to: "http://www.postgresql.org/" %>. It
      is very simple and does just serve the content, without
      any feature foo. It powers the <%= link "Wayne blogging plattform", to: "http://wer.kennt-wayne.de/" %>.

Irckerl

<img src="<%= static_path(@conn,  "/images/irckerl.png") %>" alt="">

<%= link "Irckerl", to: "https://github.com/ckruse/irckerl" %> is a
      IRC server written in Erlang. It is merely a pet project, I
      would not yet recommend to use it. Everytime when I am bored or
      in the mood of it I write code for it.


styling thumbnails in search results

styling thumbnails in search results

    <%= if @persona_thumbnail do %>
      <%= img_tag(@persona_thumbnail.path <> @persona_thumbnail.filename,
                  height: 120,
                  alt: @persona_image_title,
                  class: "thumbnail",
                  id: "photo",
                  style: "margin-bottom:0px;") %>
    <% else %>

    <% end %>

      <%= fa_icon("user-o") %> Persona
      <%= link @persona.name, to: @persona.url,
                              style: "color:#1a0dab" %>

      <%= link "https://panoptikum.io" <> @persona.url, to: @persona.url,
                                                        style: "color:#006621" %>

    <%= truncate_string(@persona.long_description, 750) %>

    <%= for {engagement, index} <- Enum.with_index(@engagements) do %>
      <%= if index > 0, do: "·" %>
        <%= link [fa_icon("podcast"), " ", truncate_string(engagement.podcast.title, 50)],
                         to: podcast_frontend_path(PanWeb.Endpoint, :show, engagement.podcast),
                         class: "btn btn-default btn-xs",
                         style: "color: #000" %>

      <%= engagement.role %>
    <% end %>

<%= @score %>

    <%= if @persona_thumbnail do %>
      <%= img_tag(@persona_thumbnail.path <> @persona_thumbnail.filename,
                  height: 120,
                  alt: @persona_image_title,
                  class: "thumbnail",
                  id: "photo"),
                  style: "margin-bottom:0px;" %>
    <% else %>

    <% end %>

      <%= fa_icon("user-o") %> Persona
      <%= link @persona.name, to: @persona.url,
                              style: "color:#1a0dab" %>

      <%= link "https://panoptikum.io" <> @persona.url, to: @persona.url,
                                                        style: "color:#006621" %>

    <%= truncate_string(@persona.long_description, 750) %>

    <%= for {engagement, index} <- Enum.with_index(@engagements) do %>
      <%= if index > 0, do: "·" %>
        <%= link [fa_icon("podcast"), " ", truncate_string(engagement.podcast.title, 50)],
                         to: podcast_frontend_path(PanWeb.Endpoint, :show, engagement.podcast),
                         class: "btn btn-default btn-xs",
                         style: "color: #000" %>

      <%= engagement.role %>
    <% end %>

<%= @score %>


Update edit password template

Update edit password template

Create a New Password

<%%= form_for @changeset, password_path(@conn, :update, @changeset.data), [as: :password], fn f  -> %>

  <%%= hidden_input f, :reset_password_token %>

    <%%= required_label f, :current_password, class: "control-label" %>
    <%%= password_input f, :current_password, class: "form-control", required: "" %>
    <%%= error_tag f, :current_password %>

    <%%= required_label f, :password, class: "control-label" %>
    <%%= password_input f, :password, class: "form-control", required: "" %>
    <%%= error_tag f, :password %>

    <%%= required_label f, :password_confirmation, class: "control-label" %>
    <%%= password_input f, :password_confirmation, class: "form-control", required: "" %>
    <%%= error_tag f, :password_confirmation %>

    <%%= submit "Update Password", class: "btn btn-primary" %>
    <%%= link "Cancel", to: Coherence.Config.logged_out_url("/"), class: "btn" %>

<%% end %>

Create a New Password

<%%= form_for @changeset, password_path(@conn, :update, @changeset.data), [as: :password], fn f  -> %>

  <%%= hidden_input f, :reset_password_token %>

    <%%= required_label f, :password, class: "control-label" %>
    <%%= password_input f, :password, class: "form-control", required: "" %>
    <%%= error_tag f, :password %>

    <%%= required_label f, :password_confirmation, class: "control-label" %>
    <%%= password_input f, :password_confirmation, class: "form-control", required: "" %>
    <%%= error_tag f, :password_confirmation %>

    <%%= submit "Update Password", class: "btn btn-primary" %>
    <%%= link "Cancel", to: Coherence.Config.logged_out_url("/"), class: "btn" %>

<%% end %>


Expose member_id on admin volunteer form

 - this change is to ease prepping for refactoring out volunteers

  <%= form_for @changeset, @action, [multipart: true], fn f -> %>

      <%= if @changeset.action do %>

Oops, something went wrong! Please check the errors below.

      <% end %>

        <%= label f, :name %>
        <%= text_input f, :name, class: "form-control" %>
        <%= error_tag f, :name %>

        <%= label f, :member_id %>
        <%= text_input f, :member_id, class: "form-control" %>
        <%= error_tag f, :member_id %>

            <%= label f, :avatar_url, "Avatar" %>

          <%= if @current_volunteer && @current_volunteer.avatar_url do %>

              <img class="img-fluid img-thumbnail sponsor"
                alt="Current image" src="<%= image_path(@conn, @vcurrent_volunteer.avatar_url) %>"/>

          <% end %>

            <%= file_input f, :avatar, class: "form-control" %>
            Image size must be 120x120

        <%= error_tag f, :avatar %>

      <%= submit "Save", class: "btn btn-primary" %>

  <% end %>

  <%= form_for @changeset, @action, [multipart: true], fn f -> %>

      <%= if @changeset.action do %>

Oops, something went wrong! Please check the errors below.

      <% end %>

        <%= label f, :name %>
        <%= text_input f, :name, class: "form-control" %>
        <%= error_tag f, :name %>

            <%= label f, :avatar_url, "Avatar" %>

          <%= if @current_volunteer && @current_volunteer.avatar_url do %>

              <img class="img-fluid img-thumbnail sponsor"
                alt="Current image" src="<%= image_path(@conn, @vcurrent_volunteer.avatar_url) %>"/>

          <% end %>

            <%= file_input f, :avatar, class: "form-control" %>
            Image size must be 120x120

        <%= error_tag f, :avatar %>

      <%= submit "Save", class: "btn btn-primary" %>

  <% end %>


Minor fix in PL localization

Minor fix in PL localization

        Znasz zasady, prawda?

Szukaj par kart, odwracając je po kolei, po 2 na raz. Jeśli znajdziesz dopasowanie, zdobędziesz punkt - i możesz odkryć 2 kolejne karty. Kto znajdzie więcej dopasowań, wygrywa.

    <form class="game-option option-four" method=post action="/<%= locale() %>/games">

Graj w pojedynkę

            Graj solo, aby poprawić swoją celność!

            <input type="hidden" name="_csrf_token" value="<%= get_csrf_token() %>">
            <input type="hidden" name="game[theme]" value="eighties">
            <input type="hidden" name="game[board_size]" value="6">
            <input type="hidden" name="game[players_number]" value="1">
            <input type="hidden" name="game[visibility]" value="private">

          <button type="submit" class="btn btn-option-go btn-info">Graj solo</button>

    </form>

    <form class="game-option option-one" method=post action="/<%= locale() %>/games/random">
      <input type="hidden" name="_csrf_token" value="<%= get_csrf_token() %>">

Graj z kimkolwiek

            Ktoś może już teraz czekać, aż dołączysz!

          <button type="submit" class="btn btn-option-go btn-primary">Losowy gracz</button>

    </form>

    <form class="game-option option-two" method=post action="/<%= locale() %>/games">

Grać z przyjacielem

            Aby rozpocząć, po prostu wyślij link znajomemu online!

            <input type="hidden" name="_csrf_token" value="<%= get_csrf_token() %>">
            <input type="hidden" name="game[theme]" value="eighties">
            <input type="hidden" name="game[board_size]" value="6">
            <input type="hidden" name="game[players_number]" value="2">
            <input type="hidden" name="game[visibility]" value="private">

          <button type="submit" class="btn btn-option-go btn-success">Gra dla 2 graczy</button>

    </form>

    <form class="game-option option-three" method=post action="/<%= locale() %>/games">

Graj lokalnie

            Graj ze znajomym na tym samym urządzeniu!

            <input type="hidden" name="_csrf_token" value="<%= get_csrf_token() %>">
            <input type="hidden" name="game[theme]" value="eighties">
            <input type="hidden" name="game[board_size]" value="6">
            <input type="hidden" name="game[players_number]" value="2">
            <input type="hidden" name="game[visibility]" value="local">

          <button type="submit" class="btn btn-option-go btn-warning">Lokalną gra</button>

    </form>

       Więcej opcji

Rozpocznij grę niestandardową

  <div class="elm-game-selector" data-themes='<%= raw @themes %>' data-csrf='<%= get_csrf_token() %>'>

        Znasz zasady, prawda?

Szukaj par kart, odwracając je po kolei, po 2 na raz. Jeśli znajdziesz dopasowanie, zdobędziesz punkt - i możesz odkryć 2 kolejne karty. Kto znajdzie więcej dopasowań, wygrywa.

    <form class="game-option option-four" method=post action="/<%= locale() %>/games">

Graj w pojedynkę

            Graj solo, aby poprawić swoją celność!

            <input type="hidden" name="_csrf_token" value="<%= get_csrf_token() %>">
            <input type="hidden" name="game[theme]" value="eighties">
            <input type="hidden" name="game[board_size]" value="6">
            <input type="hidden" name="game[players_number]" value="1">
            <input type="hidden" name="game[visibility]" value="private">

          <button type="submit" class="btn btn-option-go btn-info">Graj solo</button>

    </form>

    <form class="game-option option-one" method=post action="/<%= locale() %>/games/random">
      <input type="hidden" name="_csrf_token" value="<%= get_csrf_token() %>">

Graj z kimkolwiek

            Ktoś może już teraz czekać, aż dołączysz!

          <button type="submit" class="btn btn-option-go btn-primary">Graj z losowym graczem</button>

    </form>

    <form class="game-option option-two" method=post action="/<%= locale() %>/games">

Grać z przyjacielem

            Aby rozpocząć, po prostu wyślij link znajomemu online!

            <input type="hidden" name="_csrf_token" value="<%= get_csrf_token() %>">
            <input type="hidden" name="game[theme]" value="eighties">
            <input type="hidden" name="game[board_size]" value="6">
            <input type="hidden" name="game[players_number]" value="2">
            <input type="hidden" name="game[visibility]" value="private">

          <button type="submit" class="btn btn-option-go btn-success">Gra dla 2 graczy</button>

    </form>

    <form class="game-option option-three" method=post action="/<%= locale() %>/games">

Graj lokalnie

            Graj ze znajomym na tym samym urządzeniu!

            <input type="hidden" name="_csrf_token" value="<%= get_csrf_token() %>">
            <input type="hidden" name="game[theme]" value="eighties">
            <input type="hidden" name="game[board_size]" value="6">
            <input type="hidden" name="game[players_number]" value="2">
            <input type="hidden" name="game[visibility]" value="local">

          <button type="submit" class="btn btn-option-go btn-warning">Lokalną gra</button>

    </form>

       Więcej opcji

Rozpocznij grę niestandardową

  <div class="elm-game-selector" data-themes='<%= raw @themes %>' data-csrf='<%= get_csrf_token() %>'>


current solution for displaying title (#89)

* current solution for displaying title

* oops

<%
  board = if @search, do: @search.board, else: @board

  {user_locked_card_id, locked_card_ids} =
    locked_cards(@user.id, board.id, @socket.id)
%>

  <%= for column <- board.columns do %>
    <div class="column <%= if Enum.count(board.columns) > 4 do %>lb-column<% end %>" data-col-id="<%= column.id %>">

<%= column.title %>

        <a href="#" phx-click="sortby_likes" phx-value="<%= column.id %>">
          Sort by Likes

      <%= for pile <- column.piles do %>
        <div
          data-pos="<%= pile.pos %>"
          class="lb-dnd-slot"
          <%= unless @search do %>
          onDragOver="dnd.allowDrop(event)"
          onDragLeave="dnd.dragLeave(event)"
          onDrop="dnd.dropIntoJunction(event)"
          <% end %>
          >

        <%= render(
          LucidboardWeb.BoardView,
          "pile.html",
          Map.merge(assigns, %{
            pile: pile,
            locked_card_id: user_locked_card_id,
            locked_card_ids: locked_card_ids,
          })
        ) %>
      <% end %>

      <div
        data-pos="<%= length(column.piles) %>"
        class="lb-dnd-slot"
        <%= unless @search do %>
        onDragOver="dnd.allowDrop(event)"
        onDragLeave="dnd.dragLeave(event)"
        onDrop="dnd.dropIntoJunction(event)"
        <% end %>
        >

        <%= show_card_count(column) %>

      <%= unless @search || user_locked_card_id do %>
      <a href="#"
        phx-click="add_card"
        phx-value="<%= column.id %>"
        class="is-primary icon-padder js-addCard lb-inputTrigger">
        <%= fas("plus") %>Add Card

      <% end %>

  <% end %>

<% title = Map.get(@board, :title) %>
<%= if title, do: raw(~s()) %>


Make the erlef slack channel input available to chairs

    General
    Volunteers

      <%= form_for @changeset, @action, [multipart: true], fn f -> %>

          <%= if @changeset.action do %>

Oops, something went wrong! Please check the errors below.

          <% end %>

            <%= inputs_for f, :meta, fn fm -> %>

                <%= label fm, :email %>
                <%= email_input fm, :email, class: "form-control" %>
                <%= error_tag fm, :email %>

              <%= label fm, :github %>
              <%= text_input fm, :github, class: "form-control" %>

                 This field should only be the repository name for your working groups vs a url

              <%= error_tag fm, :github %>

          <%= label fm, :erlef_slack_channel %>
          <%= text_input fm, :erlef_slack_channel, class: "form-control" %>
               This input should be a complete uri to a slack channel on Erlef slack (e.g, https://the-eef.slack.com/archives/C091381DE)

          <%= error_tag fm, :erlef_slack_channel %>

        <% end %>

          <%= label f, :description %>
          <%= textarea f, :description, class: "form-control" %>
          <%= error_tag f, :description %>

          <%= label f, :charter %>
          <%= hidden_input f, :charter, class: "form-control" %>
          <%= error_tag f, :charter %>

        <%= submit "Save", class: "btn btn-primary" %>

    <% end %>

                  Name
                  Chair

                <%= for v <- @wg.volunteers do %>
                  <% is_chair? = Erlef.Groups.is_chair?(@wg, v) %>

                      <% path = v.avatar_url || "volunteers/profile-placeholder.png" %>
                      <%= img_tag(image_path(@conn, path), height: "100", width: "100", class: "img-fluid pr-4") %>
                      <%= v.name %>

                      <%= if is_chair? do %>

                      <% else %>
                        <% path = Routes.working_group_settings_path(@conn, :create_chair, @wg.slug, v) %>
                        <%= link("Make chair", to: path, class: "btn btn-primary", method: :put, data: [confirm: "Are you sure?"]) %>
                      <% end %>

                      <%= if ((is_chair? and Enum.count(@wg.chairs) == 1) || !is_chair?) do %>
                        <button class="btn btn-warning" disabled>Remove chair</button>
                      <% else %>
                        <% path = Routes.working_group_settings_path(@conn, :delete_chair, @wg.slug, v) %>
                        <%= link("Remove chair", to: path, class: "btn btn-warning", method: :delete, data: [confirm: "Are you sure?"]) %>
                      <% end %>

                      <%= if is_chair? do %>
                        <button class="btn btn-danger" disabled>Remove</button>
                      <% else %>
                        <% path = Routes.working_group_settings_path(@conn, :delete_volunteer, @wg.slug, v) %>
                        <%= link("Remove", to: path, class: "btn btn-danger", method: :delete, data: [confirm: "Are you sure?"]) %>
                      <% end %>

                <% end %>

    General
    Volunteers

      <%= form_for @changeset, @action, [multipart: true], fn f -> %>

          <%= if @changeset.action do %>

Oops, something went wrong! Please check the errors below.

          <% end %>

            <%= inputs_for f, :meta, fn fm -> %>

                <%= label fm, :email %>
                <%= email_input fm, :email, class: "form-control" %>
                <%= error_tag fm, :email %>

              <%= label fm, :github %>
              <%= text_input fm, :github, class: "form-control" %>

                 This field should only be the repository name for your working groups vs a url

              <%= error_tag fm, :github %>

        <% end %>

          <%= label f, :description %>
          <%= textarea f, :description, class: "form-control" %>
          <%= error_tag f, :description %>

          <%= label f, :charter %>
          <%= hidden_input f, :charter, class: "form-control" %>
          <%= error_tag f, :charter %>

        <%= submit "Save", class: "btn btn-primary" %>

    <% end %>

                  Name
                  Chair

                <%= for v <- @wg.volunteers do %>
                  <% is_chair? = Erlef.Groups.is_chair?(@wg, v) %>

                      <% path = v.avatar_url || "volunteers/profile-placeholder.png" %>
                      <%= img_tag(image_path(@conn, path), height: "100", width: "100", class: "img-fluid pr-4") %>
                      <%= v.name %>

                      <%= if is_chair? do %>

                      <% else %>
                        <% path = Routes.working_group_settings_path(@conn, :create_chair, @wg.slug, v) %>
                        <%= link("Make chair", to: path, class: "btn btn-primary", method: :put, data: [confirm: "Are you sure?"]) %>
                      <% end %>

                      <%= if ((is_chair? and Enum.count(@wg.chairs) == 1) || !is_chair?) do %>
                        <button class="btn btn-warning" disabled>Remove chair</button>
                      <% else %>
                        <% path = Routes.working_group_settings_path(@conn, :delete_chair, @wg.slug, v) %>
                        <%= link("Remove chair", to: path, class: "btn btn-warning", method: :delete, data: [confirm: "Are you sure?"]) %>
                      <% end %>

                      <%= if is_chair? do %>
                        <button class="btn btn-danger" disabled>Remove</button>
                      <% else %>
                        <% path = Routes.working_group_settings_path(@conn, :delete_volunteer, @wg.slug, v) %>
                        <%= link("Remove", to: path, class: "btn btn-danger", method: :delete, data: [confirm: "Are you sure?"]) %>
                      <% end %>

                <% end %>


ECM2015 pt 1 - use for of - use 'strict mode' - use 'let'

overlay opacity

<!- div id="coords">

<input id="opacity" class="range-slider" type="range" value= "0.8" min="0.0" max="1.0" step="0.05" />


feat(admin): add break line after tabs in outer_text field type

<%= form_for @changeset, @action, fn f -> %>
  <%= if @changeset.action do %>

Oops, something went wrong! Please check the errors below.

  <% end %>

  <%= for {id, column} <- @columns do %>
    <%= if column.type == :outer_text do %>

            <%= for language <- @languages do %>

                <a class="nav-link <%= if language == List.first(@languages) do %>active<% end %>" data-toggle="tab" href="#outer_text_<%= language.abbr %>" role="tab">
                  <%= language.name %>

            <% end %>

            <%= for language <- @languages do %>
              <div class="tab-pane <%= if language == List.first(@languages) do %>active<% end %>" id="outer_text_<%= language.abbr %>" role="tabpanel">
                <%= form_for column.model.changeset(struct(column.model)), nil, [as: String.to_atom("outer_text_" <> language.abbr)], fn nf -> %>
                  <%= for {field_id, field} <- column.model.admin_fields do %>
                    <%= render "form_group.html", f: nf, id: field_id, column: field %>
                  <% end %>
                <% end %>

            <% end %>

    <% else %>
      <%= render "form_group.html", f: f, id: id, column: column %>
    <% end %>
  <% end %>

    <%= submit "Submit", class: "btn btn-primary" %>

<% end %>


Update page title from Phoenix default

Update page title from Phoenix default

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">
    <title>RemoteRetro</title>
    <link rel="stylesheet" href="<%= static_path(@conn, "/css/semantic-ui/semantic.min.css") %>">
    <link rel="stylesheet" href="<%= static_path(@conn, "/css/app.css") %>">
  </head>

  <body class="<%= if @view_module.include_backdrop, do: "photo-backdrop" %>">
    <main role="main">
      <%= render @view_module, @view_template, assigns %>
    </main>

    <%= if @view_module.include_js do %>
      <script>window.userToken = "<%= assigns[:user_token] %>"</script>
      <script>window.retroUUID = "<%= assigns[:retro_uuid] %>"</script>
      <script src="<%= static_path(@conn, "/js/dll/dll.vendor.js") %>"></script>
      <script src="<%= static_path(@conn, "/js/app.js") %>"></script>
    <% end %>
  </body>
</html>

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">

    <title>Hello RemoteRetro!</title>
    <link rel="stylesheet" href="<%= static_path(@conn, "/css/semantic-ui/semantic.min.css") %>">
    <link rel="stylesheet" href="<%= static_path(@conn, "/css/app.css") %>">
  </head>

  <body class="<%= if @view_module.include_backdrop, do: "photo-backdrop" %>">
    <main role="main">
      <%= render @view_module, @view_template, assigns %>
    </main>

    <%= if @view_module.include_js do %>
      <script>window.userToken = "<%= assigns[:user_token] %>"</script>
      <script>window.retroUUID = "<%= assigns[:retro_uuid] %>"</script>
      <script src="<%= static_path(@conn, "/js/dll/dll.vendor.js") %>"></script>
      <script src="<%= static_path(@conn, "/js/app.js") %>"></script>
    <% end %>
  </body>
</html>


try using the non hashed app_manifest.json

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <meta name="theme-color" content="#F0F3F7" />
    <meta name="mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="description" content="whistler news reader">
    <meta name="author" content="Frederik Dietz">
    <meta name="theme-color" content="#27323F">

    <title>whistler news reader</title>

    <link rel="manifest" href="/app_manifest.json>

    <link rel="apple-touch-icon" sizes="57x57" href="<%= static_path(@conn, "/favicons/apple-icon-57x57.png") %>">
    <link rel="apple-touch-icon" sizes="60x60" href="<%= static_path(@conn, "/favicons/apple-icon-60x60.png") %>">
    <link rel="apple-touch-icon" sizes="72x72" href="<%= static_path(@conn, "/favicons/apple-icon-72x72.png") %>">
    <link rel="apple-touch-icon" sizes="76x76" href="<%= static_path(@conn, "/favicons/apple-icon-76x76.png") %>">
    <link rel="apple-touch-icon" sizes="114x114" href="<%= static_path(@conn, "/favicons/apple-icon-114x114.png") %>">
    <link rel="apple-touch-icon" sizes="120x120" href="<%= static_path(@conn, "/favicons/apple-icon-120x120.png") %>">
    <link rel="apple-touch-icon" sizes="144x144" href="<%= static_path(@conn, "/favicons/apple-icon-144x144.png") %>">
    <link rel="apple-touch-icon" sizes="152x152" href="<%= static_path(@conn, "/favicons/apple-icon-152x152.png") %>">
    <link rel="apple-touch-icon" sizes="180x180" href="<%= static_path(@conn, "/favicons/apple-icon-180x180.png") %>">
    <link rel="icon" type="image/png" sizes="192x192" href="<%= static_path(@conn, "/favicons/android-icon-192x192.png") %>">
    <link rel="icon" type="image/png" sizes="32x32" href="<%= static_path(@conn, "/favicons/favicon-32x32.png") %>">
    <link rel="icon" type="image/png" sizes="96x96" href="<%= static_path(@conn, "/favicons/favicon-96x96.png") %>">
    <link rel="icon" type="image/png" sizes="16x16" href="<%= static_path(@conn, "/favicons/favicon-16x16.png") %>">

    <link href="https://fonts.googleapis.com/css?family=Merriweather:300,400" rel="stylesheet" type="text/css">
    <link href='https://fonts.googleapis.com/css?family=Lato:400,600' rel='stylesheet' type='text/css'>
  </head>

  <body>
    <%= render @view_module, @view_template, assigns %>
    <%= if Mix.env == :dev && System.get_env("WEBPACK_ENV") == "hot" do %>
      <script src="http://localhost:4001/js/bundle.js"></script>
    <% else %>
      <script src="<%= static_path(@conn, "/js/bundle.js") %>"></script>
    <% end %>
  </body>
</html>

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <meta name="theme-color" content="#F0F3F7" />
    <meta name="mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="description" content="whistler news reader">
    <meta name="author" content="Frederik Dietz">
    <meta name="theme-color" content="#27323F">

    <title>whistler news reader</title>

    <link rel="manifest" href="<%= static_path(@conn, "/app_manifest.json") %>">

    <link rel="apple-touch-icon" sizes="57x57" href="<%= static_path(@conn, "/favicons/apple-icon-57x57.png") %>">
    <link rel="apple-touch-icon" sizes="60x60" href="<%= static_path(@conn, "/favicons/apple-icon-60x60.png") %>">
    <link rel="apple-touch-icon" sizes="72x72" href="<%= static_path(@conn, "/favicons/apple-icon-72x72.png") %>">
    <link rel="apple-touch-icon" sizes="76x76" href="<%= static_path(@conn, "/favicons/apple-icon-76x76.png") %>">
    <link rel="apple-touch-icon" sizes="114x114" href="<%= static_path(@conn, "/favicons/apple-icon-114x114.png") %>">
    <link rel="apple-touch-icon" sizes="120x120" href="<%= static_path(@conn, "/favicons/apple-icon-120x120.png") %>">
    <link rel="apple-touch-icon" sizes="144x144" href="<%= static_path(@conn, "/favicons/apple-icon-144x144.png") %>">
    <link rel="apple-touch-icon" sizes="152x152" href="<%= static_path(@conn, "/favicons/apple-icon-152x152.png") %>">
    <link rel="apple-touch-icon" sizes="180x180" href="<%= static_path(@conn, "/favicons/apple-icon-180x180.png") %>">
    <link rel="icon" type="image/png" sizes="192x192" href="<%= static_path(@conn, "/favicons/android-icon-192x192.png") %>">
    <link rel="icon" type="image/png" sizes="32x32" href="<%= static_path(@conn, "/favicons/favicon-32x32.png") %>">
    <link rel="icon" type="image/png" sizes="96x96" href="<%= static_path(@conn, "/favicons/favicon-96x96.png") %>">
    <link rel="icon" type="image/png" sizes="16x16" href="<%= static_path(@conn, "/favicons/favicon-16x16.png") %>">

    <link href="https://fonts.googleapis.com/css?family=Merriweather:300,400" rel="stylesheet" type="text/css">
    <link href='https://fonts.googleapis.com/css?family=Lato:400,600' rel='stylesheet' type='text/css'>
  </head>

  <body>
    <%= render @view_module, @view_template, assigns %>
    <%= if Mix.env == :dev && System.get_env("WEBPACK_ENV") == "hot" do %>
      <script src="http://localhost:4001/js/bundle.js"></script>
    <% else %>
      <script src="<%= static_path(@conn, "/js/bundle.js") %>"></script>
    <% end %>
  </body>
</html>


Update LW cancellation note on home page

Landeswettbewerbe 2020

Der Landeswettbewerb des Verbunds 1 fand dieses Jahr in Valencia statt.

      Die Landeswettbewerbe in Warschau und Rom mussten wegen der derzeitigen COVID-19-Pandemie leider abgesagt werden.

Aktuelle Infos

Vorspielpläne und Ergebnisse findest du rund um den jeweiligen Wettbewerb in der Jumu-App:

      <%= app_link :ios %> <%= app_link :android %>

Landeswettbewerbe 2020

Der Landeswettbewerb des Verbunds 1 fand dieses Jahr in Valencia statt.

      Der Landeswettbewerb in Warschau musste wegen der derzeitigen COVID-19-Pandemie leider abgesagt werden.

Aktuelle Infos

Vorspielpläne und Ergebnisse findest du rund um den jeweiligen Wettbewerb in der Jumu-App:

      <%= app_link :ios %> <%= app_link :android %>


Revert "Use static_push by default for the JS and CSS (#2805)"

This reverts commit 32e2bb39c7e361238a1cfef359d92269d5c07e48.

Browser support on caching for static_push is currently not implemented
well enough to make this default. If users want to push assets, they
should use `Plug.Conn.push/2` instead.

Please see https://github.com/phoenixframework/phoenix/issues/2875 for
discussion.

<!DOCTYPE html>

    <meta charset="utf-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, shrink-to-fit=no, user-scalable=no"/>
    <title><%= app_module %> · Phoenix Framework</title>
    <link rel="stylesheet" href="<%%= Routes.static_path(@conn, "/css/app.css") %>"/>

Get Started

          <img src="<%%= Routes.static_path(@conn, "/images/phoenix.png") %>" alt="Phoenix Framework Logo"/>

<%%= get_flash(@conn, :info) %>

<%%= get_flash(@conn, :error) %>

      <%%= render @view_module, @view_template, assigns %>

<!DOCTYPE html>

    <meta charset="utf-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, shrink-to-fit=no, user-scalable=no"/>
    <title><%= app_module %> · Phoenix Framework</title>
    <link rel="stylesheet" href="<%%= Routes.static_push(@conn, "/css/app.css") %>"/>

Get Started

          <img src="<%%= Routes.static_path(@conn, "/images/phoenix.png") %>" alt="Phoenix Framework Logo"/>

<%%= get_flash(@conn, :info) %>

<%%= get_flash(@conn, :error) %>

      <%%= render @view_module, @view_template, assigns %>


Fix links to sections

Fix links to sections

  <%= for section <- @sections do %>

<%= link section.name, to: page_path(@conn, :index) <> "#section-#{section.id}" %>

  <% end %>

<%= for section <- @sections do %>
  <h2 id="section-<%= section.id %>"><%= section.name %>

<%= section.description %>

  <%= for repository <- section.repositories do %>

      <%= link repository.name, to: repository.url %>
      <%= repository.description %>

        <span datetime="<%= repository.last_updated_at %>">

        <%= repository.stars %>

  <% end %>

<% end %>

  <%= for section <- @sections do %>

<%= link section.name, to: page_path(@conn, :index) %>

  <% end %>

<%= for section <- @sections do %>
  <h2 id="section-<%= section.id %>"><%= section.name %>

<%= section.description %>

  <%= for repository <- section.repositories do %>

      <%= link repository.name, to: repository.url %>
      <%= repository.description %>

        <span datetime="<%= repository.last_updated_at %>">

        <%= repository.stars %>

  <% end %>

<% end %>


Remove invalid links and add a message box.

Listing builds

      Project
      Number
      Log
      Coordinate
      Config

<%= for build <- @builds do %>

      <%= build.project_id %>
      <%= build.number %>
      <%= build.log %>
      <%= build.coordinate %>
      <%= build.config %>

        <%= link "Show", to: build_path(@conn, :show, build), class: "btn btn-default btn-xs" %>

<% end %>

Listing builds

      Project
      Number
      Log
      Coordinate
      Config

<%= for build <- @builds do %>

      <%= build.project_id %>
      <%= build.number %>
      <%= build.log %>
      <%= build.coordinate %>
      <%= build.config %>

        <%= link "Show", to: build_path(@conn, :show, build), class: "btn btn-default btn-xs" %>
        <%= link "Edit", to: build_path(@conn, :edit, build), class: "btn btn-default btn-xs" %>
        <%= link "Delete", to: build_path(@conn, :delete, build), method: :delete, data: [confirm: "Are you sure?"], class: "btn btn-danger btn-xs" %>

<% end %>

<%= link "New build", to: build_path(@conn, :new) %>


Center align buttons in email.

Center align buttons in email.

<% results_url = "https://parkinsons-and-me.herokuapp.com/#my-results/#{@uuid}" %>
<% button_style = "ph3 pv2 f3 outline-0 pointer bg-white b--green-blue ba bw1 black no-underline mh2" %>

Hi <%= String.capitalize @user.name %> - here's your personalised list of Parkinson's services

Remember you can revisit your page of recommendations at any time. Or share the link with your family and friends.

      <a href="<%= results_url %>" class="green-blue no-underline"><%= results_url %>

    <%= for x <- @top3services do %>

 <%= x.title %>

 <%= x.body |> strip_iframe |> raw %>

        <a
        href="<%= x.url %>"
        class="<%= button_style %>"
        >
          <%= x.cta %>

    <% end %>

Psst... one more thing...

Thank you for testing Parkinson's and Me. You've caught it hot off the press - it's not quite live yet and we're still making improvements. We'd love to know what you thought and if you have any suggestions on how we could make it better.

Can you spare two minutes to share your feedback?

      <a href="https://goo.gl/forms/Ld8X0fSkdMF5wvlo2" class="<%= button_style %>">Fill out this quick survey
      <a href="mailto:web@parkinsons.org.uk?subject=Here's some feedback on Parkinson's and Me" class="<%= button_style %>">Drop us an email

We're the Parkinson's charity that drives better care, treatments and quality of life. Together we can bring forward the day when no one fears Parkinson's. Parksinson's UK is the operating name of the Parkinson's Disease Society of the United Kingdom, a registered charity in England, Wales (258197) and in Scotalnd (SC037544).

Copyright © 2017 Parkinson's UK, All rights reserved.

Our mailing address is:

Parkinson's UK

215 Vauxhall Bridge Road

London, England SW1V 1EJ

United Kingdom

<% results_url = "https://parkinsons-and-me.herokuapp.com/#my-results/#{@uuid}" %>
<% button_style = "ph3 pv2 f3 outline-0 pointer bg-white b--green-blue ba bw1 black no-underline mh2" %>

Hi <%= String.capitalize @user.name %> - here's your personalised list of Parkinson's services

Remember you can revisit your page of recommendations at any time. Or share the link with your family and friends.

      <a href="<%= results_url %>" class="green-blue no-underline"><%= results_url %>

    <%= for x <- @top3services do %>

 <%= x.title %>

 <%= x.body |> strip_iframe |> raw %>

        <a
        href="<%= x.url %>"
        class="<%= button_style %>"
        >
          <%= x.cta %>

    <% end %>

Psst... one more thing...

Thank you for testing Parkinson's and Me. You've caught it hot off the press - it's not quite live yet and we're still making improvements. We'd love to know what you thought and if you have any suggestions on how we could make it better.

Can you spare two minutes to share your feedback?

      <a href="https://goo.gl/forms/Ld8X0fSkdMF5wvlo2" class="<%= button_style %>">Fill out this quick survey
      <a href="mailto:web@parkinsons.org.uk?subject=Here's some feedback on Parkinson's and Me" class="<%= button_style %>">Drop us an email

We're the Parkinson's charity that drives better care, treatments and quality of life. Together we can bring forward the day when no one fears Parkinson's. Parksinson's UK is the operating name of the Parkinson's Disease Society of the United Kingdom, a registered charity in England, Wales (258197) and in Scotalnd (SC037544).

Copyright © 2017 Parkinson's UK, All rights reserved.

Our mailing address is :

Parkinson's UK

215 Vauxhall Bridge Road

London, England SW1V 1EJ

United Kingdom


add a reminder

add a reminder

  <%= for post <- @posts do %>

  <% img_src = hd(post.json_metadata["image"] || [false] ) %>

      <a href="/authors/<%= post.author %>/<%= post.permlink %>">

        <%= if img_src do %>
          <img src="<%= img_src %>">
        <% end %>

        <a class="ui large blue ribbon label" href="/authors/<%= post.author %>">  @<%= post.author  %>

        <a class="header" href="/authors/<%= post.author %>/<%= post.permlink %>"> <%= post.title %>

          <%= for tag <- post.tags do %>
          <a class="ui  label" href="/tags/<%=tag%>">
            <%= format_tag(tag, @conn.assigns.lang) %>

          <% end %>

    <% end %>

      <%= for {v, i} <- generate_pagination_list(@current_page) do %>

      <a class="<%=if i == @current_page, do: "active" %> item"
        href="<%= @conn.request_path <> "?" <> URI.encode_query(%{"page"=> v}) %>">
        <%= v %>

      <% end %>


Adds legal mumbo-jumbo.

Adds legal mumbo-jumbo.

<%= render Vutuv.LayoutView, "flash.html", assigns %>

More than just a career network.

Vutuv is fast and free. We respect your privacy, don't track your moves and will not flood your inbox with senseless e-mails.
Bonus: It's open-source.

    <%= form_for @changeset, user_path(@conn, :create), [multipart: true, class: "imagebox__form"], fn f -> %>
      <%= if @changeset.action do %>

<%= gettext "Oops, something went wrong! Please check the errors below." %>

      <% end %>

Get started now. It only takes 30 seconds.

      <%= select f, :first_name, [{gettext("Mr"), "male"},
        {gettext("Mrs"), "female"}, {gettext("Other"), "other"}], class: "imagebox__input" %>
      <%= text_input f, :first_name, class: "imagebox__input", placeholder: "Enter your first name", autofocus: true %>
      <%= error_tag f, :first_name %>
      <%= text_input f, :last_name, class: "imagebox__input", placeholder: "Enter your last name" %>
      <%= error_tag f, :last_name %>
      <%= inputs_for f, :emails, fn ef -> %>
        <%= text_input ef, :value, class: "imagebox__input", placeholder: "Enter your email address" %>
        <%= error_tag ef, :value %>
      <% end %>
      <%= submit gettext("Sign up"), class: "imagebox__input" %>

<a href="<%= session_path(@conn, :new) %>" class="imagebox__alreadymember">Already a member? Sign in here.

Legal mumbo-jumbo: We reserve the right to stop this service or delete your account anytime without warning.

    <% end %>

<%= render Vutuv.LayoutView, "flash.html", assigns %>

More than just a career network.

Vutuv is fast and free. We respect your privacy, don't track your moves and will not flood your inbox with senseless e-mails.
Bonus: It's open-source.

    <%= form_for @changeset, user_path(@conn, :create), [multipart: true, class: "imagebox__form"], fn f -> %>
      <%= if @changeset.action do %>

<%= gettext "Oops, something went wrong! Please check the errors below." %>

      <% end %>

Get started now. It only takes 30 seconds.

      <%= select f, :first_name, [{gettext("Mr"), "male"},
        {gettext("Mrs"), "female"}, {gettext("Other"), "other"}], class: "imagebox__input" %>
      <%= text_input f, :first_name, class: "imagebox__input", placeholder: "Enter your first name", autofocus: true %>
      <%= error_tag f, :first_name %>
      <%= text_input f, :last_name, class: "imagebox__input", placeholder: "Enter your last name" %>
      <%= error_tag f, :last_name %>
      <%= inputs_for f, :emails, fn ef -> %>
        <%= text_input ef, :value, class: "imagebox__input", placeholder: "Enter your email address" %>
        <%= error_tag ef, :value %>
      <% end %>
      <%= submit gettext("Sign up"), class: "imagebox__input" %>
      <a href="<%= session_path(@conn, :new) %>" class="imagebox__alreadymember">Already a member? Sign in here.
    <% end %>


add Privacy Policy text

add Privacy Policy text

Privacy Policy

Personal Information and Usage Data

When you sign up, we create an account using your email address, link to your profile photo, first name and last name from the Google account you use for authentication. We associate your use of and activities on the site (“retros”) with your account so that you and your team members can review your retros if you sign back in later. This includes anything you submit via text inputs, votes you submit during the voting process, grouping, and other activities.

During your use of the site, your IP address may be captured in our logs or by site analytics providers. If you email us for help, any information you provide in your email will be managed in accordance with Stride Consulting's privacy policy.

Email, Marketing and Communications

When a retro is completed, any action items you create are emailed to you and your team. We will also send out very occasional updates of major changes to policies or terms. These messages are necessary to operate our service.

If you have opted in to occasional product updates and marketing emails from us, you can later opt out at any time by emailing remote_retro@stridenyc.com with subject “Email Opt Out” or by changing your preference in the user interface.

Data Security

Data transmitted between our hosting provider and your browser is encrypted using SSL/TLS, and database backups are also encrypted. Our production environment is carefully restricted to only the few individuals who need access, and our software development process involves multiple privacy by design considerations.

Third Party Disclosure

We do not sell your data, and we only share it with third parties necessary to provide the services you request while using the site, to improve the performance and security of the services, and for the occasional emails described above. You can find a list of Third Party Data Processors we use below.

If we need to monitor, investigate, or respond to any reported or suspected illegal activity, fraud, threats to anyone's physical safety, or similar concerns, we may share your info with those involved in addressing our concerns. If we are compelled by a court order or other valid legal process to share your data, we will attempt to notify you unless legally prohibited from doing so.

If something material in this policy changes for any reason, we will make our best efforts to notify you in advance.

Third Party Data Processors

We use the following third party processors to process personal information and other data associated with your usage of Remote Retro to the extent necessary to provide our services.

Gigalixir on AWS (for application hosting)

SendGrid (to send emails)

Honeybadger (for exception reporting)

Papertrail (for request logging)

Hubspot (to manage email lists)

Google (for authentication and site analytics)

Hotjar (for heatmaps and user feedback surveys)

GDPR

For users in the EU, the GDPR provides you with rights including:

The right of access

The right to rectification (aka correction)

The right to erasure

The right to restrict processing

The right to data portability

The right to object

Rights in relation to automated decision making and profiling.

If you are in the EU and wish to exercise or discuss your GDPR rights, please contact us at remote_retro@stridenyc.com.

Last Updated

May 2020


podcast-show: tailwind-styling continued

<%= if @current_user && @current_user.admin do %>

    <%= link(icon("cog-heroicons-outline", class: "inline h-6 w-6"),
             to: databrowser_path(@conn, :show, "podcast", @podcast)) %>
    <%= link(icon("rss-heroicons-outline", class: "inline h-6 w-6"),
             to: databrowser_path(@conn, :edit, "feed", @podcast.feeds |> hd)) %>

<% end %>

<%= @podcast.title %>

<%= if @podcast.retired do %>

    We retired this podcast, because we couldn't parse it for 10 consecutive times.

<% end %>

          <%= if @podcast_thumbnail do %>
            <%= img_tag(@podcast_thumbnail.path <> @podcast_thumbnail.filename,
                        width: 150,
                        height: 150,
                        alt: @podcast.image_title,
                        class: "thumbnail",
                        id: "photo") %>
          <% else %>

          <% end %>

<%= raw @podcast.summary %>

        <%= render "_like_follow_unsubscribe_buttons.html",
                    current_user: @current_user, podcast: @podcast, conn: @conn %>

        <%= if @podcast.website do %>

Website

            <%= link @podcast.website, to: String.downcase(@podcast.website),
                                       class: "text-link hover:text-link-dark" %>

        <% end %>

Description

<%= @podcast.description %>

        <%= if @podcast.payment_link_url do %>

Support

            <%= link @podcast.payment_link_title || "Support", to: String.trim(@podcast.payment_link_url),
                                                               class: "text-link hover:text-link-dark" %>

        <% end %>

Language

          <%= for language <- @podcast.languages do %>
            <%= language.emoji %> <%= language.name %>
          <% end %>

        <%= if @podcast.last_build_date do %>

last modified

<%= Timex.format!(@podcast.last_build_date, "{ISOdate} {h24}:{m}") %>

        <% end %>
        <%= if @podcast.latest_episode_publishing_date do %>

last episode published

<%= Timex.format!(@podcast.latest_episode_publishing_date, "{ISOdate} {h24}:{m}") %>

        <% end %>
        <%= if @podcast.publication_frequency > 0 do %>

publication frequency

<%= Float.round(@podcast.publication_frequency, 2) %> days

        <% end %>

Contributors

        <%= for {persona, engagements} <- Enum.group_by(@podcast.engagements, &Map.get(&1, :persona)) do %>

            <%= link [fa_icon("user-o"), " ", persona.name],
                      to: persona_frontend_path(@conn, :show, persona),
                      class: "btn btn-xs btn-lavender" %>
            <%= for engagement <- engagements do %>
              <%= engagement.role %>
            <% end %>

        <% end %>

Explicit

<%= @podcast.explicit %>

Number of Episodes

<%= @episode_count %>

<%= fa_icon("feed") %> Rss-Feeds

<%= link "Detail page", to: podcast_frontend_path(@conn, :feeds, @podcast) %>

Categories

          <%= for category <- @podcast.categories do %>
            <%= link [fa_icon("folder-open-heroicons-outline"), " ", category.title],
                      to: category_frontend_path(@conn, :show, category),
                      class: "btn btn-xs btn-gray-lighter" %>
            <% end %>

      <%= img_tag ["/qrcode/", URI.encode_www_form(podcast_frontend_url(@conn, :subscribe_button, @podcast))],
                  width: 150, height: 150 %>

    <%= render "_subscribe_button.html",
               podcast: @podcast, conn: @conn %>

<%= if @current_user && @current_user.admin do %>

    <%= link(icon("cog-heroicons-outline", class: "inline h-6 w-6"),
             to: databrowser_path(@conn, :show, "podcast", @podcast)) %>
    <%= link(icon("rss-heroicons-outline", class: "inline h-6 w-6"),
             to: databrowser_path(@conn, :edit, "feed", @podcast.feeds |> hd)) %>

<% end %>

<%= @podcast.title %>

<%= if @podcast.retired do %>

    We retired this podcast, because we couldn't parse it for 10 consecutive times.

<% end %>

          <%= if @podcast_thumbnail do %>
            <%= img_tag(@podcast_thumbnail.path <> @podcast_thumbnail.filename,
                        width: 150,
                        height: 150,
                        alt: @podcast.image_title,
                        class: "thumbnail",
                        id: "photo") %>
          <% else %>

          <% end %>

<%= raw @podcast.summary %>

        <%= render "_like_follow_unsubscribe_buttons.html",
                    current_user: @current_user, podcast: @podcast, conn: @conn %>

        <%= if @podcast.website do %>

Website

<%= link @podcast.website, to: String.downcase(@podcast.website) %>

        <% end %>

Description

<%= @podcast.description %>

        <%= if @podcast.payment_link_url do %>

Support

<%= link @podcast.payment_link_title || "Support", to: String.trim(@podcast.payment_link_url) %>

        <% end %>

Language

          <%= for language <- @podcast.languages do %>
            <%= language.emoji %> <%= language.name %>
          <% end %>

        <%= if @podcast.last_build_date do %>

last modified

<%= Timex.format!(@podcast.last_build_date, "{ISOdate} {h24}:{m}") %>

        <% end %>
        <%= if @podcast.latest_episode_publishing_date do %>

last episode published

<%= Timex.format!(@podcast.latest_episode_publishing_date, "{ISOdate} {h24}:{m}") %>

        <% end %>
        <%= if @podcast.publication_frequency > 0 do %>

publication frequency

<%= Float.round(@podcast.publication_frequency, 2) %> days

        <% end %>

Contributors

        <%= for {persona, engagements} <- Enum.group_by(@podcast.engagements, &Map.get(&1, :persona)) do %>

            <%= link [fa_icon("user-o"), " ", persona.name],
                      to: persona_frontend_path(@conn, :show, persona),
                      class: "btn btn-xs btn-lavender" %>
            <%= for engagement <- engagements do %>
              <%= engagement.role %>
            <% end %>

        <% end %>

Explicit

<%= @podcast.explicit %>

Number of Episodes

<%= @episode_count %>

<%= fa_icon("feed") %> Rss-Feeds

<%= link "Detail page", to: podcast_frontend_path(@conn, :feeds, @podcast) %>

Categories

          <%= for category <- @podcast.categories do %>
            <%= link [fa_icon("folder-open-heroicons-outline"), " ", category.title],
                      to: category_frontend_path(@conn, :show, category),
                      class: "btn btn-xs btn-gray-lighter" %>
            <% end %>

      <%= img_tag ["/qrcode/", URI.encode_www_form(podcast_frontend_url(@conn, :subscribe_button, @podcast))],
                  width: 150, height: 150 %>

    <%= render "_subscribe_button.html",
               podcast: @podcast, conn: @conn %>


Fill in FAQ content

Fill in FAQ content

FAQ

  Hier findest du Antworten auf häufig gestellte Fragen.

Anmeldung

Ab wann kann ich mich anmelden?

Die Anmeldung für ein Wettbewerbsjahr beginnt im Oktober des Vorjahres.

Wann ist Anmeldeschluss?

        Das hängt von der Schule ab – das jeweilige Datum findest du auf der
        <%= link "Anmeldeseite", to: page_path(@conn, :registration) %>.

Kann ich mein Vorspielprogramm nach der Anmeldung noch ändern?

        Ja, dies ist bis zum Anmeldeschluss möglich. Gib einfach den Änderungscode,
        den du nach der Anmeldung bzw. Weiterleitung erhalten hast,
        <%= link "hier", to: page_path(@conn, :edit_registration) %> ein.

Muss ich mich für den Landeswettbewerb erneut anmelden?

        Nein! Bei einer Weiterleitung zum LW wird deine Anmeldung automatisch übernommen.
        Du bekommst dann eine E-Mail mit einem neuen Änderungscode, mit dem du dein Vorspielprogramm ändern kannst.

Muss ich mich für den Bundeswettbewerb erneut anmelden?

        Ja, bei einer Weiterleitung zum BW musst du ein gesondertes Anmeldeformular ausdrucken und
        unterschrieben per Post abschicken. Wie das geht, erfährst du beim LW-Organisationsteam.

Regeln

Wie wird die Altersgruppe berechnet?

        Auf Seite 6 der <%= link "Ausschreibung", to: page_path(@conn, :rules) %> findest du eine
        Tabelle zum Nachschlagen. Bei Solisten und einzelnen Begleitern zählt hier einfach das Geburtsjahr.
        Bei Ensembles oder Begleitgruppen nimmt man das Durchschnittsalter auf den Tag genau und
        schaut dann, in welchem Jahr dieser Tag liegt.

Darf ich mich in den Klassik-Kategorien per Playback begleiten lassen?

Nein, in der Klassik ist eine Begleitung per Playback nicht möglich.

“Kinder musizieren” (Kimu)

Wer kann an Kimu teilnehmen?

        Kimu ist für junge Teilnehmer gedacht, um vor dem "richtigen" Wettbewerb in familiärer
        Atmosphäre erste Bühnenerfahrung zu sammeln. Hier sind vor allem die Altersgruppen
        I und II gemeint – eine feste Altersgrenze gibt es aber nicht.

Kann man bei Kimu weitergeleitet werden?

Nein, eine Weiterleitung gibt es bei Kimu nicht.

FAQ

  Hier findest du Antworten auf häufig gestellte Fragen.

Anmeldung

Frage 1

Lorem ipsum

Frage 2

Lorem ipsum

Kimu

Frage 1

Lorem ipsum

Frage 2

Lorem ipsum


Fix type in admins' user form

Fix type in admins' user form

<%= form_for @changeset, @action, fn f -> %>
  <%= render JumubaseWeb.ErrorView, "form_errors.html", errors: f.errors %>

      <%= label f, :given_name, gettext("First name"), class: "control-label" %>
      <%= text_input f, :given_name, class: "form-control" %>
      <%= error_tag f, :given_name %>

      <%= label f, :family_name, gettext("Last name"), class: "control-label" %>
      <%= text_input f, :family_name, class: "form-control" %>
      <%= error_tag f, :family_name %>

      <%= label f, :email, gettext("Email"), class: "control-label" %>
      <%= email_input f, :email, class: "form-control" %>
      <%= error_tag f, :email %>

  <%= if @include_password do %>

        <%= label f, :password, gettext("Password"), class: "control-label" %>
        <%= password_input f, :password, class: "form-control" %>
        <%= error_tag f, :password %>

  <% end %>

      <%= label f, :role, gettext("Role"), class: "control-label" %>
      <%= select f, :role, form_roles(),
        prompt: gettext("Please choose"),
        class: "form-control"
        %>
      <%= error_tag f, :role %>

      <%= label f, :host_ids, gettext("Hosts") %>
      <%= multiple_select f, :host_ids, @host_options,
        selected: get_ids(@changeset.data.hosts),
        class: "form-control" %>
      <%= error_tag f, :host_ids %>

    <%= submit @submit_title, class: "btn btn-primary" %>

<% end %>

<%= form_for @changeset, @action, fn f -> %>
  <%= render JumubaseWeb.ErrorView, "form_errors.html", errors: f.errors %>

      <%= label f, :fiven_name, gettext("First name"), class: "control-label" %>
      <%= text_input f, :fiven_name, class: "form-control" %>
      <%= error_tag f, :fiven_name %>

      <%= label f, :family_name, gettext("Last name"), class: "control-label" %>
      <%= text_input f, :family_name, class: "form-control" %>
      <%= error_tag f, :family_name %>

      <%= label f, :email, gettext("Email"), class: "control-label" %>
      <%= email_input f, :email, class: "form-control" %>
      <%= error_tag f, :email %>

  <%= if @include_password do %>

        <%= label f, :password, gettext("Password"), class: "control-label" %>
        <%= password_input f, :password, class: "form-control" %>
        <%= error_tag f, :password %>

  <% end %>

      <%= label f, :role, gettext("Role"), class: "control-label" %>
      <%= select f, :role, form_roles(),
        prompt: gettext("Please choose"),
        class: "form-control"
        %>
      <%= error_tag f, :role %>

      <%= label f, :host_ids, gettext("Hosts") %>
      <%= multiple_select f, :host_ids, @host_options,
        selected: get_ids(@changeset.data.hosts),
        class: "form-control" %>
      <%= error_tag f, :host_ids %>

    <%= submit @submit_title, class: "btn btn-primary" %>

<% end %>


Fix Dockefile reference

Fix Dockefile reference

# Find eligible builder and runner images on Docker Hub. We use Ubuntu/Debian instead of
# Alpine to avoid DNS resolution issues in production.
#
# https://hub.docker.com/r/hexpm/elixir/tags?page=1&name=ubuntu
# https://hub.docker.com/_/ubuntu?tab=tags
#
#
# This file is based on these images:
#
#   - https://hub.docker.com/r/hexpm/elixir/tags - for the build image
#   - https://hub.docker.com/_/debian?tab=tags&page=1&name=bullseye-20220801-slim - for the release image
#   - https://pkgs.org/ - resource for finding needed packages
#   - Ex: hexpm/elixir:<%= elixir_vsn %>-erlang-<%= otp_vsn %>-debian-bullseye-20220801-slim
#
ARG ELIXIR_VERSION=<%= elixir_vsn %>
ARG OTP_VERSION=<%= otp_vsn %>
ARG DEBIAN_VERSION=bullseye-20220801-slim

ARG BUILDER_IMAGE="hexpm/elixir:${ELIXIR_VERSION}-erlang-${OTP_VERSION}-debian-${DEBIAN_VERSION}"
ARG RUNNER_IMAGE="debian:${DEBIAN_VERSION}"

FROM ${BUILDER_IMAGE} as builder

# install build dependencies
RUN apt-get update -y && apt-get install -y build-essential git \
    && apt-get clean && rm -f /var/lib/apt/lists/*_*

# prepare build dir
WORKDIR /app

# install hex + rebar
RUN mix local.hex --force && \
    mix local.rebar --force

# set build ENV
ENV MIX_ENV="prod"

# install mix dependencies
COPY mix.exs mix.lock ./
RUN mix deps.get --only $MIX_ENV
RUN mkdir config

# copy compile-time config files before we compile dependencies
# to ensure any relevant config change will trigger the dependencies
# to be re-compiled.
COPY config/config.exs config/${MIX_ENV}.exs config/
RUN mix deps.compile

COPY priv priv

COPY lib lib
<%= if assets_dir_exists? do %>
COPY assets assets

# compile assets
RUN mix assets.deploy
<% end %>
# Compile the release
RUN mix compile

# Changes to config/runtime.exs don't require recompiling the code
COPY config/runtime.exs config/

COPY rel rel
RUN mix release

# start a new build stage so that the final image will only contain
# the compiled release and other runtime necessities
FROM ${RUNNER_IMAGE}

RUN apt-get update -y && apt-get install -y libstdc++6 openssl libncurses5 locales \
  && apt-get clean && rm -f /var/lib/apt/lists/*_*

# Set the locale
RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen

ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8

WORKDIR "/app"
RUN chown nobody /app

# set runner ENV
ENV MIX_ENV="prod"

# Only copy the final release from the build stage
COPY --from=builder --chown=nobody:root /app/_build/${MIX_ENV}/rel/<%= otp_app %> ./

USER nobody

CMD ["/app/bin/server"]

# Find eligible builder and runner images on Docker Hub. We use Ubuntu/Debian instead of
# Alpine to avoid DNS resolution issues in production.
#
# https://hub.docker.com/r/hexpm/elixir/tags?page=1&name=ubuntu
# https://hub.docker.com/_/ubuntu?tab=tags
#
#
# This file is based on these images:
#
#   - https://hub.docker.com/r/hexpm/elixir/tags - for the build image
#   - https://hub.docker.com/_/debian?tab=tags&page=1&name=bullseye-20210902-slim - for the release image
#   - https://pkgs.org/ - resource for finding needed packages
#   - Ex: hexpm/elixir:<%= elixir_vsn %>-erlang-<%= otp_vsn %>-debian-bullseye-20210902-slim
#
ARG ELIXIR_VERSION=<%= elixir_vsn %>
ARG OTP_VERSION=<%= otp_vsn %>
ARG DEBIAN_VERSION=bullseye-20210902-slim

ARG BUILDER_IMAGE="hexpm/elixir:${ELIXIR_VERSION}-erlang-${OTP_VERSION}-debian-${DEBIAN_VERSION}"
ARG RUNNER_IMAGE="debian:${DEBIAN_VERSION}"

FROM ${BUILDER_IMAGE} as builder

# install build dependencies
RUN apt-get update -y && apt-get install -y build-essential git \
    && apt-get clean && rm -f /var/lib/apt/lists/*_*

# prepare build dir
WORKDIR /app

# install hex + rebar
RUN mix local.hex --force && \
    mix local.rebar --force

# set build ENV
ENV MIX_ENV="prod"

# install mix dependencies
COPY mix.exs mix.lock ./
RUN mix deps.get --only $MIX_ENV
RUN mkdir config

# copy compile-time config files before we compile dependencies
# to ensure any relevant config change will trigger the dependencies
# to be re-compiled.
COPY config/config.exs config/${MIX_ENV}.exs config/
RUN mix deps.compile

COPY priv priv

COPY lib lib
<%= if assets_dir_exists? do %>
COPY assets assets

# compile assets
RUN mix assets.deploy
<% end %>
# Compile the release
RUN mix compile

# Changes to config/runtime.exs don't require recompiling the code
COPY config/runtime.exs config/

COPY rel rel
RUN mix release

# start a new build stage so that the final image will only contain
# the compiled release and other runtime necessities
FROM ${RUNNER_IMAGE}

RUN apt-get update -y && apt-get install -y libstdc++6 openssl libncurses5 locales \
  && apt-get clean && rm -f /var/lib/apt/lists/*_*

# Set the locale
RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen

ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8

WORKDIR "/app"
RUN chown nobody /app

# set runner ENV
ENV MIX_ENV="prod"

# Only copy the final release from the build stage
COPY --from=builder --chown=nobody:root /app/_build/${MIX_ENV}/rel/<%= otp_app %> ./

USER nobody

CMD ["/app/bin/server"]


strip spaces from urls

strip spaces from urls

  <%= link [fa_icon("podcast"), " ", @episode.podcast.title],
           to: podcast_frontend_path(@conn, :show, @episode.podcast),
           class: "btn btn-default btn-lg" %>
    /
  <%= fa_icon("headphones") %> <%= @episode.title %>

    <%= if @episode_thumbnail do %>
      <%= img_tag(@episode_thumbnail.path <> @episode_thumbnail.filename,
                  width: 150,
                  alt: @episode.image_title || @episode.podcast.image_title,
                  class: "thumbnail",
                  id: "photo") %>
    <% else %>

    <% end %>

  <%= if (@episode.description && @episode.description != @episode.shownotes) ||
         (@episode.summary && @episode.summary != @episode.description) do %>
    <div class="<%= if @episode.image_url, do: 'col-md-5', else: 'col-md-7' %>" style="border-right: 1px dotted #ccc;">
      <%= if @episode.description && @episode.description != @episode.shownotes do %>

Description

<%= truncate_string(HtmlSanitizeEx.strip_tags(@episode.description), 1000) %>

      <% end %>

      <%= if @episode.summary && @episode.summary != @episode.description do %>

Summary

<%= truncate_string(@episode.summary, 1000) %>

      <% end %>

  <% end %>

Subtitle

<%= @episode.subtitle %>

      <%= if @episode.payment_link_url do %>

<Support

<%= link @episode.payment_link_title, to: @episode.payment_link_url %>

      <% end %>

Duration

<%= @episode.duration %>

      <%= if @episode.publishing_date do %>

Publishing date

<%= Timex.format!(@episode.publishing_date, "{ISOdate} {h24}:{m}") %>

      <% end %>
      <%= if @episode.link do %>

Link

<a href="<%= @episode.link %>"><%= @episode.link %>

      <% end %>
      <%= if @episode.deep_link do %>

Deep link

<a href="<%= @episode.deep_link %>" id="metadata"><%= @episode.deep_link %>

      <% end %>

Contributors

      <%= for {persona, gigs} <- Enum.group_by(@episode.gigs, &Map.get(&1, :persona)) do %>

          <%= link [fa_icon("user-o"), " ", persona.name],
                   to: persona_frontend_path(@conn, :show, persona),
                   class: "btn btn-xs truncate btn-lavender" %>
          <%= for gig <- gigs do %>
             <span class="label label-success" id="gig-<%= gig.id %>"><%= gig.role %>
            <%= if gig.self_proclaimed do %>

                <%= fa_icon "info-circle", class: "icon-lavender" %>

            <% end %>

          <% end %>

      <% end %>

Enclosures

      <%= for enclosure <- @episode.enclosures do %>

<%= enclosure.type %>

          <%= link String.split(enclosure.url, "/") |> List.last, to: String.trim(enclosure.url) %>

          <%= if is_integer(enclosure.length) do %>
            (<%= Float.round(String.to_integer(enclosure.length) / 1048576, 1) %> MB)
          <% end %>

      <% end %>

<%= if @current_user do %>

  Claim contribution

<%= proclaim_or_not_buttons(@current_user.id, @episode.id) %>

<% end %>

<%= if @current_user do %>

<%= like_or_unlike(@current_user.id, @episode.id) %>

<% end %>

  <%= link [fa_icon("podcast"), " ", @episode.podcast.title],
           to: podcast_frontend_path(@conn, :show, @episode.podcast),
           class: "btn btn-default btn-lg" %>
    /
  <%= fa_icon("headphones") %> <%= @episode.title %>

    <%= if @episode_thumbnail do %>
      <%= img_tag(@episode_thumbnail.path <> @episode_thumbnail.filename,
                  width: 150,
                  alt: @episode.image_title || @episode.podcast.image_title,
                  class: "thumbnail",
                  id: "photo") %>
    <% else %>

    <% end %>

  <%= if (@episode.description && @episode.description != @episode.shownotes) ||
         (@episode.summary && @episode.summary != @episode.description) do %>
    <div class="<%= if @episode.image_url, do: 'col-md-5', else: 'col-md-7' %>" style="border-right: 1px dotted #ccc;">
      <%= if @episode.description && @episode.description != @episode.shownotes do %>

Description

<%= truncate_string(HtmlSanitizeEx.strip_tags(@episode.description), 1000) %>

      <% end %>

      <%= if @episode.summary && @episode.summary != @episode.description do %>

Summary

<%= truncate_string(@episode.summary, 1000) %>

      <% end %>

  <% end %>

Subtitle

<%= @episode.subtitle %>

      <%= if @episode.payment_link_url do %>

<Support

<%= link @episode.payment_link_title, to: @episode.payment_link_url %>

      <% end %>

Duration

<%= @episode.duration %>

      <%= if @episode.publishing_date do %>

Publishing date

<%= Timex.format!(@episode.publishing_date, "{ISOdate} {h24}:{m}") %>

      <% end %>
      <%= if @episode.link do %>

Link

<a href="<%= @episode.link %>"><%= @episode.link %>

      <% end %>
      <%= if @episode.deep_link do %>

Deep link

<a href="<%= @episode.deep_link %>" id="metadata"><%= @episode.deep_link %>

      <% end %>

Contributors

      <%= for {persona, gigs} <- Enum.group_by(@episode.gigs, &Map.get(&1, :persona)) do %>

          <%= link [fa_icon("user-o"), " ", persona.name],
                   to: persona_frontend_path(@conn, :show, persona),
                   class: "btn btn-xs truncate btn-lavender" %>
          <%= for gig <- gigs do %>
             <span class="label label-success" id="gig-<%= gig.id %>"><%= gig.role %>
            <%= if gig.self_proclaimed do %>

                <%= fa_icon "info-circle", class: "icon-lavender" %>

            <% end %>

          <% end %>

      <% end %>

Enclosures

      <%= for enclosure <- @episode.enclosures do %>

<%= enclosure.type %>

          <%= link String.split(enclosure.url, "/") |> List.last, to: enclosure.url %>

          <%= if is_integer(enclosure.length) do %>
            (<%= Float.round(String.to_integer(enclosure.length) / 1048576, 1) %> MB)
          <% end %>

      <% end %>

<%= if @current_user do %>

  Claim contribution

<%= proclaim_or_not_buttons(@current_user.id, @episode.id) %>

<% end %>

<%= if @current_user do %>

<%= like_or_unlike(@current_user.id, @episode.id) %>

<% end %>


Added Source Code link in index.html

Added Source Code link in index.html

Layer Two

            <%= form_for  @conn, "/", [as: :login_form], fn form_data -> %>
            <%= email_input form_data, :email, placeholder: "E-mail", class: "input_fields", required: "true" %>

            <%= password_input form_data, :password, placeholder: "Password", class: "input_fields", required: "true" %>

            <%= submit "Enter", id: "submit_button" %>
            <% end %>

Source Code Copyright © 2016-<%= DateTime.utc_now.year %>

Layer Two

            <%= form_for  @conn, "/", [as: :login_form], fn form_data -> %>
            <%= email_input form_data, :email, placeholder: "E-mail", class: "input_fields", required: "true" %>

            <%= password_input form_data, :password, placeholder: "Password", class: "input_fields", required: "true" %>

            <%= submit "Enter", id: "submit_button" %>
            <% end %>

Copyright © 2016-<%= DateTime.utc_now.year %>


Use animation start rather than end

Use animation start rather than end

<%= if Enum.count(@retros) == 0 do %>

Welcome, <%= assigns[:current_user].given_name %>!

        You're about to take part in your first RemoteRetro, traversing the following stages:

The Lobby

Gather the team!

The Retrospective Prime Directive

Frame the retro as a safe, collaborative space

Idea Generation

Invite ideas from participants

Voting

Vote anonymously to discuss ideas

Action Item Generation

Generate and commit to action items

Retrospective Close

Distribute action items and depart!

    <%= form_for @conn, retro_path(@conn, :create), [as: :retro, class: "ui form content"], fn _f -> %>
      <button type="submit" class="ui blue right labeled fluid icon button">
        Let's Create Your First Retrospective!

      </button>
    <% end %>

<% else %>

My Retros:

      <%= for retro <- @retros do %>

          <a href="<%= retro_path @conn, :show, retro %>">
            created <%= Timex.format!(retro.inserted_at, "{relative}", :relative) %>

          <%= if Enum.count(retro.ideas) > 0 do %>

                Action Items

                <%# ideas retrieved via association are scoped to action_items %>
                <%= for idea <- retro.ideas do %>

<%= action_item_to_string(idea) %>

                <% end %>

          <% end %>

      <% end %>

    <%= form_for @conn, retro_path(@conn, :create), [as: :retro, class: "ui form"], fn _f -> %>
      <button type="submit" class="ui blue right labeled icon button">
        Create a Retrospective!

      </button>
    <% end %>

<% end %>


show all hide all

show all hide all

<div style="padding: 40px;">
  <%= raw(@content) %>

  <%= if assigns[:show_help_desk_widget] != nil and assigns[:show_help_desk_widget] == "Show" do %>
    <!-- Start of justicedemocrats Zendesk Widget script -->
    <script>/*<![CDATA[*/window.zEmbed||function(e,t){var n,o,d,i,s,a=[],r=document.createElement("iframe");window.zEmbed=function(){a.push(arguments)},window.zE=window.zE||window.zEmbed,r.src="javascript:false",r.title="",r.role="presentation",(r.frameElement||r).style.cssText="display: none",d=document.getElementsByTagName("script"),d=d[d.length-1],d.parentNode.insertBefore(r,d),i=r.contentWindow,s=i.document;try{o=s}catch(e){n=document.domain,r.src='javascript:var d=document.open();d.domain="'+n+'";void(0);',o=s}o.open()._l=function(){var e=this.createElement("script");n&&(this.domain=n),e.id="js-iframe-async",e.src="https://assets.zendesk.com/embeddable_framework/main.js",this.t=+new Date,this.zendeskHost="justicedemocrats.zendesk.com",this.zEQueue=a,this.body.appendChild(e)},o.write('<body onload="document._l();">'),o.close()}();
    /*]]>*/</script>
    <!-- End of justicedemocrats Zendesk Widget script -->
  <% end %>
</div>

<script>

  function show (el) {
    el.style.display = 'block';
  }

  function hide (el) {
    el.style.display = 'none';
  }

  function toggle (el) {
    if (el.style.display == 'none') {
      el.style.display = 'block';
    } else {
      el.style.display = 'none';
    }
  }

  function showHiddenContent (ev) {
    var els = [document.querySelector('#vol-events')].concat(Array.from(document.querySelectorAll('.vol-events')));

    els.forEach(el => {
      var action = el.getAttribute('data-action');

      if (action == 'show') {
        show(el)
      } else if (action == 'hide') {
        hide(el)
      } else {
        toggle(el)
      }
    })
  }

  var buttons = Array.from(document.querySelectorAll('.show-events'));

  buttons.forEach(function (button) {
    button.addEventListener('click', showHiddenContent);
  })

</script>

<div style="padding: 40px;">
  <%= raw(@content) %>

  <%= if assigns[:show_help_desk_widget] != nil and assigns[:show_help_desk_widget] == "Show" do %>
    <!-- Start of justicedemocrats Zendesk Widget script -->
    <script>/*<![CDATA[*/window.zEmbed||function(e,t){var n,o,d,i,s,a=[],r=document.createElement("iframe");window.zEmbed=function(){a.push(arguments)},window.zE=window.zE||window.zEmbed,r.src="javascript:false",r.title="",r.role="presentation",(r.frameElement||r).style.cssText="display: none",d=document.getElementsByTagName("script"),d=d[d.length-1],d.parentNode.insertBefore(r,d),i=r.contentWindow,s=i.document;try{o=s}catch(e){n=document.domain,r.src='javascript:var d=document.open();d.domain="'+n+'";void(0);',o=s}o.open()._l=function(){var e=this.createElement("script");n&&(this.domain=n),e.id="js-iframe-async",e.src="https://assets.zendesk.com/embeddable_framework/main.js",this.t=+new Date,this.zendeskHost="justicedemocrats.zendesk.com",this.zEQueue=a,this.body.appendChild(e)},o.write('<body onload="document._l();">'),o.close()}();
    /*]]>*/</script>
    <!-- End of justicedemocrats Zendesk Widget script -->
  <% end %>
</div>

<script>

  function show (el) {
    el.style.display = 'block';
  }

  function hide (el) {
    el.style.display = 'none';
  }

  function toggle (el) {
    if (el.style.display == 'none') {
      el.style.display = 'block';
    } else {
      el.style.display = 'none';
    }
  }

  function showHiddenContent (ev) {
    var el = document.querySelector('#vol-events');
    var action = el.getAttribute('data-action');

    if (action == 'show') {
      show(el)
    } else if (action == 'hide') {
      hide(el)
    } else {
      toggle(el)
    }
  }

  var buttons = Array.from(document.querySelectorAll('.show-events'));

  buttons.forEach(function (button) {
    button.addEventListener('click', showHiddenContent);
  })

</script>