<%! from r2.lib.template_helpers import static %> <%namespace name="utils" file="utils.html" /> <%namespace file="utils.html" import="error_field, plain_link" /> <%namespace file="printablebuttons.html" import="ajax_ynbutton, ynbutton" /> <%def name="icon(app)">
   
<%def name="developers(app)"> <% devs = app._developers %> %if devs:
Developers: %for i, dev in enumerate(sorted(devs, key=lambda d: d.name)): %if i: %if i == len(devs) - 1: and %else: , %endif %endif ${plain_link(dev.name, "/u/" + dev.name)} %endfor
%endif <%def name="editable_developer(app, dev)">
  • ${dev.name} %if c.user == dev: ${_("(that's you!)")} %endif ${ajax_ynbutton(_("remove"), "removedeveloper", hidden_data=dict(client_id=app._id, name=dev.name))}
  • <%def name="developed_app(app, collapsed=True)"> <%def name="scope_details(scope, compact=False)">
    %if scope.subreddit_only: ${_("Only on:")} %for i, name in enumerate(sorted(scope.subreddits)): %if i: , %endif /r/${name} %endfor %endif
    <%def name="authorized_app(app, scope)">
    ${icon(app)}

    %if app.about_url: ${app.name} %else: ${app.name} %endif

    ${scope_details(scope, compact=True)}
    ${app.description}
    ${developers(app)} ${ynbutton(_("revoke access"), _("revoked"), "revokeapp", callback="r.apps.revoked", hidden_data=dict(client_id=app._id), _class="revoke-app-button")}
    %if thing.my_apps:

    ${_("authorized applications")}

    %for app, scope in thing.my_apps: ${authorized_app(app, scope)} %endfor %endif

    ${_("developed applications")}

    ${_("create application")}

    ${_("name")} ${error_field("NO_TEXT", "name")}
    ${_("description")}
    ${_("about url")} ${error_field("BAD_URL", "about_url")}
    ${_("redirect uri")} ${error_field("NO_URL", "redirect_uri")} ${error_field("BAD_URL", "redirect_uri")}