Giter VIP home page Giter VIP logo

codeforcroatia.org's Introduction

codeforcroatia.org's People

Contributors

schlos avatar themightychris avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

codeforcroatia.org's Issues

Update drafts page to include create page draft link

Path: _parent/html-templates/drafts.tpl

pseudo code:

{extends "designs/site.tpl"}

{block content}
<div class="reading-width">
    <header class="page-header">
        <h2 class="header-title">My Drafts</h2>
        <div class="header-buttons"><a href="/blog/create?Status=Draft" class="button primary">New Blog Draft</a></div>
        <div class="header-buttons"><a href="/pages/create?Status=Draft" class="button primary">New Page Draft</a></div>
    </header>

    <ul>
    {foreach item=Draft from=$data}
        <li>{contextLink $Draft}</li>
    {foreachelse}
        <li class="empty-text">You have no drafts saved. Create a new <a href="/blog/create?Status=Draft">blog draft</a> or <a href="/pages/create?Status=Draft">page draft</a>.</li>
    {/foreach}
    </ul>
</div>
{/block}

Custom chat with members

Link to Telegram etc...

Add to site-botom.tpl

{$Project = $data}
{if $Project->ChatChannel == empty && ($.User && $Project->hasMember($.User))}
    <!-- code for your chatbot -->
{/if}

Setup SSO for Discourse

Povezati CfC.org SSO na Diskurs.

Laddr can provide SSO for discourse, so your users don't need a second account or login: http://forum.laddr.us/t/providing-single-sign-on-to-discourse/20

Here are the guides I took note of during my discourse setup, let me know if you need any help, I learned a lot along the way:

CSP fix inline styles - Refused to load the stylesheet

Laddr: v2

Chrome console:

o9pIGdlOpMNT_fu0Z0d6ndhLjpY.js:338 Refused to load the stylesheet 'data:text/css;charset=utf-8;base64,QGltcG9ydCB1cmwoaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PU1vbnRzZXJyYXQ6NDAwLDcwMCk7CmNsb3VkZmxhcmUtYXBwW2FwcD0iZmxhc2hjYXJkIl0gewogIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgY29sb3I6ICM0NDQ7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWZsb3c6IGNvbHVtbjsKICBmb250LWZhbWlseTogTW9udHNlcnJhdCwgc2Fucy1zZXJpZjsKICBmb250LXNpemU6IDE0cHg7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBtYXgtd2lkdGg6IDEwMCU7CiAgbWluLWhlaWdodDogNzBweDsKICBwYWRkaW5nOiAyMHB4...VyZC10aGVtZS1kZWZhdWx0IHsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAqdmVydGljYWwtYWxpZ246IGF1dG87CiAgKnpvb206IDE7CiAgKmRpc3BsYXk6IGlubGluZTsKICBib3JkZXItcmFkaXVzOiAzcHg7CiAgY3Vyc29yOiBwb2ludGVyOwogIGJvcmRlcjogMDsKICBtYXJnaW46IDAgLjVlbSAwIDA7CiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICBsZXR0ZXItc3BhY2luZzogLjFlbTsKICBmb250LXNpemU6IC44ZW07CiAgbGluZS1oZWlnaHQ6IDFlbTsKICBwYWRkaW5nOiAuNzVlbSAyZW07CiAgYmFja2dyb3VuZDogIzMyODhlNjsKICBjb2xvcjogI2ZmZjsgfQo=' because it violates the following Content Security Policy directive: "style-src 'self' *.codeforcroatia.org fonts.googleapis.com use.fontawesome.com 'unsafe-inline'". Note that 'style-src-elem' was not explicitly set, so 'style-src' is used as a fallback.

(anonymous) @ o9pIGdlOpMNT_fu0Z0d6ndhLjpY.js:338

6HXwHfwN6C9LmVio1sG0oCegiDk.js:145 Refused to load the stylesheet 'data:text/css;charset=utf-8;base64,Y2xvdWRmbGFyZS1hcHBbYXBwPSJjb3Zlci1tZXNzYWdlIl0sCmNsb3VkZmxhcmUtYXBwW2FwcD0iY292ZXItbWVzc2FnZSJdICogewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KCmNsb3VkZmxhcmUtYXBwW2FwcD0iY292ZXItbWVzc2FnZSJdIHsKICBib3R0b206IDA7CiAgZGlzcGxheTogbm9uZTsKICBmb250LXNpemU6IDE2cHg7CiAgbGVmdDogMDsKICBwb3NpdGlvbjogZml4ZWQ7CiAgcmlnaHQ6IDA7CiAgdG9wOiAwOwogIHotaW5kZXg6IDEwMDAwOwp9CgpjbG91ZGZsYXJlLWFwcFthcHA9ImNvdmVyLW1lc3NhZ2UiXS5jZi1pbnZhbGlkIGNmLWRpYWxvZy1jb250ZW50LXRpdGxlLApjbG91ZGZsYXJlLWFwcFthcHA9...Vzc2FnZSJdIGlucHV0W3R5cGU9ImVtYWlsIl06Zm9jdXMgewogIG91dGxpbmU6IG5vbmU7Cn0KCmNsb3VkZmxhcmUtYXBwW2FwcD0iY292ZXItbWVzc2FnZSJdIGZvcm0gewogIHdpZHRoOiAxMDAlOwogIG1hcmdpbi10b3A6IDEuNzVlbTsKICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyOwogICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICBkaXNwbGF5OiBmbGV4OwogIC13ZWJraXQtYm94LXBhY2s6IGVuZDsKICAgICAgLW1zLWZsZXgtcGFjazogZW5kOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKfQo=' because it violates the following Content Security Policy directive: "style-src 'self' *.codeforcroatia.org fonts.googleapis.com use.fontawesome.com 'unsafe-inline'". Note that 'style-src-elem' was not explicitly set, so 'style-src' is used as a fallback.

(anonymous) @ 6HXwHfwN6C9LmVio1sG0oCegiDk.js:145
codeforcroatia.org/:1 Refused to load the stylesheet 'data:text/css;charset=utf-8;base64,QGltcG9ydCB1cmwoaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PU1vbnRzZXJyYXQ6NDAwLDcwMCk7CmNsb3VkZmxhcmUtYXBwW2FwcD0iZmxhc2hjYXJkIl0gewogIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgY29sb3I6ICM0NDQ7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWZsb3c6IGNvbHVtbjsKICBmb250LWZhbWlseTogTW9udHNlcnJhdCwgc2Fucy1zZXJpZjsKICBmb250LXNpemU6IDE0cHg7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBtYXgtd2lkdGg6IDEwMCU7CiAgbWluLWhlaWdodDogNzBweDsKICBwYWRkaW5nOiAyMHB4...VyZC10aGVtZS1kZWZhdWx0IHsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAqdmVydGljYWwtYWxpZ246IGF1dG87CiAgKnpvb206IDE7CiAgKmRpc3BsYXk6IGlubGluZTsKICBib3JkZXItcmFkaXVzOiAzcHg7CiAgY3Vyc29yOiBwb2ludGVyOwogIGJvcmRlcjogMDsKICBtYXJnaW46IDAgLjVlbSAwIDA7CiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICBsZXR0ZXItc3BhY2luZzogLjFlbTsKICBmb250LXNpemU6IC44ZW07CiAgbGluZS1oZWlnaHQ6IDFlbTsKICBwYWRkaW5nOiAuNzVlbSAyZW07CiAgYmFja2dyb3VuZDogIzMyODhlNjsKICBjb2xvcjogI2ZmZjsgfQo=' because it violates the following Content Security Policy directive: "style-src 'self' *.codeforcroatia.org fonts.googleapis.com use.fontawesome.com 'unsafe-inline'". Note that 'style-src-elem' was not explicitly set, so 'style-src' is used as a fallback.

codeforcroatia.org/:1 Refused to load the stylesheet 'data:text/css;charset=utf-8;base64,Y2xvdWRmbGFyZS1hcHBbYXBwPSJjb3Zlci1tZXNzYWdlIl0sCmNsb3VkZmxhcmUtYXBwW2FwcD0iY292ZXItbWVzc2FnZSJdICogewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KCmNsb3VkZmxhcmUtYXBwW2FwcD0iY292ZXItbWVzc2FnZSJdIHsKICBib3R0b206IDA7CiAgZGlzcGxheTogbm9uZTsKICBmb250LXNpemU6IDE2cHg7CiAgbGVmdDogMDsKICBwb3NpdGlvbjogZml4ZWQ7CiAgcmlnaHQ6IDA7CiAgdG9wOiAwOwogIHotaW5kZXg6IDEwMDAwOwp9CgpjbG91ZGZsYXJlLWFwcFthcHA9ImNvdmVyLW1lc3NhZ2UiXS5jZi1pbnZhbGlkIGNmLWRpYWxvZy1jb250ZW50LXRpdGxlLApjbG91ZGZsYXJlLWFwcFthcHA9...Vzc2FnZSJdIGlucHV0W3R5cGU9ImVtYWlsIl06Zm9jdXMgewogIG91dGxpbmU6IG5vbmU7Cn0KCmNsb3VkZmxhcmUtYXBwW2FwcD0iY292ZXItbWVzc2FnZSJdIGZvcm0gewogIHdpZHRoOiAxMDAlOwogIG1hcmdpbi10b3A6IDEuNzVlbTsKICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyOwogICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICBkaXNwbGF5OiBmbGV4OwogIC13ZWJraXQtYm94LXBhY2s6IGVuZDsKICAgICAgLW1zLWZsZXgtcGFjazogZW5kOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKfQo=' because it violates the following Content Security Policy directive: "style-src 'self' *.codeforcroatia.org fonts.googleapis.com use.fontawesome.com 'unsafe-inline'". Note that 'style-src-elem' was not explicitly set, so 'style-src' is used as a fallback.

Info: https://stackoverflow.com/a/18428346

Todo:

  • move inline styles to a dedicated file
  • remove 'unsafe-inline' from CSP directive (meta)

Content improvements

Call to undefined method ... hasMember()

Laddr: v2

Fatal error: Call to undefined method Emergence\Comments\Comment::hasMember() in /tmp/dwoo-compiled/code-for-croatia/ea1bfea6b333a2071fb6a5edf52fdc6b0d3d9bd1.d17.php on line 27

Add DOB to the user profile

Path: _parent/html-templates/profile/profileEdit.tpl

Pseudo code:
{field inputName="BirthDate" label="Date of Birth" type="date" default=$User->BirthDate}

Path: _parent/html-templates/people/person.tpl

Pseudo code:

            {if $.User}
                <h2 class="h3">{_ 'Contact Information'}</h2>
                <small>{icon "info-circle" fa-fw} Contact information is visible to members only.</small>
                <dl class="section">
                    {if $Person->Email}
                        <dt>Email</dt>
                        <dd><a href="mailto:{$Person->Email}" title="Email {personName $Person}">{$Person->Email}</a></dd>
                    {/if}

                    {if $Person->Twitter}
                        <dt>Twitter</dt>
                        <dd><a href="https://twitter.com/{$Person->Twitter|escape}">{$Person->Twitter|escape}</a></dd>
                    {/if}

                    {if $Person->Phone}
                        <dt>Phone</dt>
                        <dd><a href="tel:{$Person->Phone|escape:url}">{$Person->Phone|phone}</a></dd>
                    {/if}

                    {if $Person->BirthDate && $.User->hasAccountLevel('Staff') || $Person->BirthDate && $.User->ID == $Person->ID}
                        <dt>Date of Birth <small>{icon "user-secret" fa-fw} Visible to Staff only.</small></dt>
                        <dd>{$Person->BirthDate|escape}</dd>
                    {/if}
                </dl>
            {/if}

Add link to My Drafts in User Navigation

Path: _parent/html-templates/includes/site.nav-userlinks.tpl

Pseudo code:

<a class="dropdown-item" href="{$.User->getURL()}">{_ "View My Profile"}</a>
<a class="dropdown-item" href="/profile">{_ "Edit My Profile"}</a>
<a class="dropdown-item" href="/drafts">{_ "My Drafts"}</a>
<a class="dropdown-item" href="/logout">{_ "Logout"}</a>

Add Content-Security-Policy directive

Some recommendations from Sucuri:

Check full report at:
https://sitecheck.sucuri.net/results/codeforcroatia.org

Upstream issue CodeForPhilly/laddr#223


Changes to be done on codeforcroatia Laddr:

  • Missing Content-Security-Policy directive.

Top menu reorganisation

izrezak

Novo:

  1. About (O nama)
  1. Projects (Projekti)
  1. Join us (Pridružite se)
  1. Resources
  1. Contact us
  • Contact us (E-mail)
  • Chat (Slack)
  • Forum (Discourse)
  • Meetup
  • Members

Add ability to specify custom links without code update

Path: _parent/html-templates/resources.tpl

Add ability to specify custom links without code update by using Staff editable content block.

Pseudo code:

{extends designs/site.tpl}

{block title}{_ Resources} &mdash; {$dwoo.parent}{/block}

{block content}
<div class="row">
    <div class="col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2">
        <div class="page-header">
            <h1>{_ Resources}</h1>
        </div>

        <ul>
            {include includes/site.resourcelinks.tpl}
        </ul>

        <ul>
            {contentBlock "custom-resources-list"}
        </ul>
    </div>
</div>
{/block}

Or add additional custom resources per user levels (Staff & Logged in Users):

{extends designs/site.tpl}

{block title}{_ Resources} &mdash; {$dwoo.parent}{/block}

{block content}
<div class="row">
    <div class="col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2">
        <div class="page-header">
            <h1>{_ Resources}</h1>
        </div>

        <h2>{_ "Generic Resources"}</h2>
        <ul>
            {include includes/site.resourcelinks.tpl}
        </ul>

        {* Add custom resources list using Staff Markdown page editor box *}
        <div>
            <p>{contentBlock "custom-resources-list"}</p>
        </div>

        {* Add custom resources list for Staff using Staff Markdown page editor box *}
        {if $.User->hasAccountLevel('Staff')}
        <div class="alert alert-danger">
            <h2>{_ "Staff Resources"}</h2>
            {contentBlock "staff-resources-list"}
        </div>
        {/if}

        {* Add custom resources list for Logged in Users using Staff Markdown page editor box *}
        {if $.User->hasAccountLevel('User')}
        <div class="alert alert-success">
            <h2>{_ "Members Resources"}</h2>
            {contentBlock "members-resources-list"}
        </div>
        {/if}

    </div>
</div>
{/block}

Add hours spent per project

  • ability on a project details page for a project member to add hours spent per project (and date, month, year, or log automatically)
  • display accumulated hours on a project details page
  • display accumulated hours on a user profile page

Update Sketeton URL

everywhere you have http://skeleton.sla.slatepowered.net/ needs to be whatever host you’re deploying to

- name: 'Update http://skeleton.sla.slatepowered.net/'

"http://skeleton.sla.slatepowered.net/site-admin/sources/scienceleadership-skeleton/pull?fetch=true" \

"http://skeleton.sla.slatepowered.net/site-admin/sources/scienceleadership-skeleton/sync-to-vfs" \


and then everywhere there is /sources/scienceleadership-skeleton/ needs to be /sources/codeforcroatia/ per per https://github.com/codeforcroatia/codeforcroatia.org/blob/master/php-config/Git.config.d/codeforcroatia.php

"http://skeleton.sla.slatepowered.net/site-admin/sources/scienceleadership-skeleton/pull?fetch=true" \

"http://skeleton.sla.slatepowered.net/site-admin/sources/scienceleadership-skeleton/sync-to-vfs" \

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.