├── .env.docker ├── .env.example ├── .gitattributes ├── .github ├── CODEOWNERS ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── workflows │ └── ci.yml ├── .gitignore ├── .mergify.yml ├── .travis.yml ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE ├── Makefile ├── PULL_REQUEST_TEMPLATE.md ├── Procfile ├── README.md ├── app.json ├── app ├── __init__.py ├── celery.py ├── context_processors.py ├── controllers │ ├── __init__.py │ ├── api │ │ ├── __init__.py │ │ └── private │ │ │ ├── __init__.py │ │ │ └── v1 │ │ │ ├── __init__.py │ │ │ ├── admin │ │ │ ├── __init__.py │ │ │ ├── activity.py │ │ │ ├── builder.py │ │ │ ├── component.py │ │ │ ├── component_group.py │ │ │ ├── incident.py │ │ │ ├── incident_update.py │ │ │ ├── metric.py │ │ │ ├── notifications.py │ │ │ ├── profile.py │ │ │ ├── settings.py │ │ │ ├── subscriber.py │ │ │ └── user.py │ │ │ ├── forbidden.py │ │ │ ├── forgot_password.py │ │ │ ├── install.py │ │ │ ├── login.py │ │ │ ├── register.py │ │ │ ├── reset_password.py │ │ │ └── status.py │ ├── controller.py │ └── web │ │ ├── __init__.py │ │ ├── admin │ │ ├── __init__.py │ │ ├── activity.py │ │ ├── builder.py │ │ ├── component.py │ │ ├── component_group.py │ │ ├── dashboard.py │ │ ├── incident.py │ │ ├── incident_update.py │ │ ├── logout.py │ │ ├── metric.py │ │ ├── notification.py │ │ ├── profile.py │ │ ├── settings.py │ │ ├── subscriber.py │ │ └── user.py │ │ ├── error.py │ │ ├── forgot_password.py │ │ ├── health_check.py │ │ ├── history.py │ │ ├── install.py │ │ ├── login.py │ │ ├── not_found.py │ │ ├── register.py │ │ ├── reset_password.py │ │ ├── statistics.py │ │ └── status_page.py ├── exceptions │ ├── __init__.py │ ├── client_error.py │ ├── error_codes.py │ ├── missing_argument.py │ ├── sanitization_rule_not_found.py │ ├── server_error.py │ └── validation_rule_not_found.py ├── management │ └── commands │ │ ├── __init__.py │ │ ├── health.py │ │ └── silverback.py ├── middleware │ ├── __init__.py │ ├── auth.py │ ├── correlation.py │ ├── errors.py │ └── logging.py ├── migrations │ ├── 0001_initial.py │ └── __init__.py ├── models │ ├── __init__.py │ ├── activity.py │ ├── component.py │ ├── component_group.py │ ├── custom_lookup.py │ ├── incident.py │ ├── incident_update.py │ ├── incident_update_component.py │ ├── incident_update_notification.py │ ├── metric.py │ ├── notification.py │ ├── option.py │ ├── profile.py │ ├── register_request.py │ ├── reset_request.py │ ├── subscriber.py │ ├── task.py │ └── user_meta.py ├── modules │ ├── __init__.py │ ├── core │ │ ├── __init__.py │ │ ├── acl.py │ │ ├── activity.py │ │ ├── component.py │ │ ├── component_group.py │ │ ├── constants.py │ │ ├── dashboard.py │ │ ├── decorators.py │ │ ├── forgot_password.py │ │ ├── health.py │ │ ├── incident.py │ │ ├── incident_update.py │ │ ├── incident_update_component.py │ │ ├── incident_update_notification.py │ │ ├── install.py │ │ ├── login.py │ │ ├── metric.py │ │ ├── notification.py │ │ ├── profile.py │ │ ├── request.py │ │ ├── reset_password.py │ │ ├── settings.py │ │ ├── statistics.py │ │ ├── status_page.py │ │ ├── subscriber.py │ │ ├── task.py │ │ ├── upgrade.py │ │ └── user.py │ ├── entity │ │ ├── __init__.py │ │ ├── activity_entity.py │ │ ├── component_entity.py │ │ ├── component_group_entity.py │ │ ├── incident_entity.py │ │ ├── incident_update_component_entity.py │ │ ├── incident_update_entity.py │ │ ├── incident_update_notification_entity.py │ │ ├── metric_entity.py │ │ ├── notification_entity.py │ │ ├── option_entity.py │ │ ├── profile_entity.py │ │ ├── register_request_entity.py │ │ ├── reset_request_entity.py │ │ ├── subscriber_entity.py │ │ ├── task_entity.py │ │ └── user_entity.py │ ├── service │ │ ├── __init__.py │ │ └── prometheus.py │ ├── util │ │ ├── __init__.py │ │ ├── crypto.py │ │ ├── gravatar.py │ │ ├── helpers.py │ │ ├── humanize.py │ │ ├── io.py │ │ └── token.py │ └── validation │ │ ├── __init__.py │ │ └── extension.py ├── settings │ ├── __init__.py │ ├── basic.py │ └── info.py ├── tasks │ ├── __init__.py │ ├── forgot_password.py │ ├── incident_update.py │ ├── notify_subscriber.py │ ├── ping.py │ ├── register_request.py │ └── verify_subscriber.py ├── templatetags │ ├── __init.py │ └── extras.py ├── tests │ ├── __init__.py │ ├── functional │ │ ├── __init__.py │ │ └── controllers │ │ │ ├── __init__.py │ │ │ ├── api │ │ │ ├── __init__.py │ │ │ └── private │ │ │ │ ├── __init__.py │ │ │ │ └── v1 │ │ │ │ ├── __init__.py │ │ │ │ ├── admin │ │ │ │ ├── __init__.py │ │ │ │ ├── test_profile.py │ │ │ │ ├── test_settings.py │ │ │ │ └── test_user.py │ │ │ │ ├── test_install.py │ │ │ │ └── test_status.py │ │ │ └── web │ │ │ ├── __init__.py │ │ │ ├── test_feed.py │ │ │ ├── test_home.py │ │ │ └── test_login.py │ ├── testing_base.py │ └── unit │ │ ├── __init__.py │ │ └── modules │ │ ├── __init__.py │ │ └── entity │ │ ├── __init__.py │ │ └── test_option_entity.py ├── urls.py └── wsgi.py ├── assets ├── chart.drawio ├── chart.png ├── css │ ├── app.css │ ├── dashboard.css │ ├── dashboard.rtl.css │ └── landing.css ├── fonts │ └── feather │ │ ├── feather-webfont.eot │ │ ├── feather-webfont.svg │ │ ├── feather-webfont.ttf │ │ └── feather-webfont.woff ├── images │ ├── async_icon.png │ ├── browsers │ │ ├── android-browser.svg │ │ ├── aol-explorer.svg │ │ ├── blackberry.svg │ │ ├── camino.svg │ │ ├── chrome.svg │ │ ├── chromium.svg │ │ ├── dolphin.svg │ │ ├── edge.svg │ │ ├── firefox.svg │ │ ├── ie.svg │ │ ├── maxthon.svg │ │ ├── mozilla.svg │ │ ├── netscape.svg │ │ ├── opera.svg │ │ ├── safari.svg │ │ ├── sleipnir.svg │ │ ├── uc-browser.svg │ │ └── vivaldi.svg │ ├── crypto-currencies │ │ ├── bitcoin.svg │ │ ├── cardano.svg │ │ ├── dash.svg │ │ ├── eos.svg │ │ ├── ethereum.svg │ │ ├── litecoin.svg │ │ ├── nem.svg │ │ └── ripple.svg │ ├── docker_icon.png │ ├── encrypt_icon.png │ ├── faces │ │ ├── female │ │ │ ├── 1.jpg │ │ │ ├── 10.jpg │ │ │ ├── 11.jpg │ │ │ ├── 12.jpg │ │ │ ├── 13.jpg │ │ │ ├── 14.jpg │ │ │ ├── 15.jpg │ │ │ ├── 16.jpg │ │ │ ├── 17.jpg │ │ │ ├── 18.jpg │ │ │ ├── 19.jpg │ │ │ ├── 2.jpg │ │ │ ├── 20.jpg │ │ │ ├── 21.jpg │ │ │ ├── 22.jpg │ │ │ ├── 23.jpg │ │ │ ├── 24.jpg │ │ │ ├── 25.jpg │ │ │ ├── 26.jpg │ │ │ ├── 27.jpg │ │ │ ├── 28.jpg │ │ │ ├── 29.jpg │ │ │ ├── 3.jpg │ │ │ ├── 30.jpg │ │ │ ├── 31.jpg │ │ │ ├── 32.jpg │ │ │ ├── 4.jpg │ │ │ ├── 5.jpg │ │ │ ├── 6.jpg │ │ │ ├── 7.jpg │ │ │ ├── 8.jpg │ │ │ └── 9.jpg │ │ └── male │ │ │ ├── 1.jpg │ │ │ ├── 10.jpg │ │ │ ├── 11.jpg │ │ │ ├── 12.jpg │ │ │ ├── 13.jpg │ │ │ ├── 14.jpg │ │ │ ├── 15.jpg │ │ │ ├── 16.jpg │ │ │ ├── 17.jpg │ │ │ ├── 18.jpg │ │ │ ├── 2.jpg │ │ │ ├── 20.jpg │ │ │ ├── 21.jpg │ │ │ ├── 24.jpg │ │ │ ├── 25.jpg │ │ │ ├── 26.jpg │ │ │ ├── 27.jpg │ │ │ ├── 28.jpg │ │ │ ├── 29.jpg │ │ │ ├── 3.jpg │ │ │ ├── 30.jpg │ │ │ ├── 31.jpg │ │ │ ├── 32.jpg │ │ │ ├── 33.jpg │ │ │ ├── 34.jpg │ │ │ ├── 35.jpg │ │ │ ├── 36.jpg │ │ │ ├── 37.jpg │ │ │ ├── 38.jpg │ │ │ ├── 39.jpg │ │ │ ├── 4.jpg │ │ │ ├── 40.jpg │ │ │ ├── 41.jpg │ │ │ ├── 42.jpg │ │ │ ├── 43.jpg │ │ │ ├── 5.jpg │ │ │ ├── 6.jpg │ │ │ ├── 7.jpg │ │ │ ├── 8.jpg │ │ │ └── 9.jpg │ ├── flags │ │ ├── ad.svg │ │ ├── ae.svg │ │ ├── af.svg │ │ ├── ag.svg │ │ ├── ai.svg │ │ ├── al.svg │ │ ├── am.svg │ │ ├── ao.svg │ │ ├── aq.svg │ │ ├── ar.svg │ │ ├── as.svg │ │ ├── at.svg │ │ ├── au.svg │ │ ├── aw.svg │ │ ├── ax.svg │ │ ├── az.svg │ │ ├── ba.svg │ │ ├── bb.svg │ │ ├── bd.svg │ │ ├── be.svg │ │ ├── bf.svg │ │ ├── bg.svg │ │ ├── bh.svg │ │ ├── bi.svg │ │ ├── bj.svg │ │ ├── bl.svg │ │ ├── bm.svg │ │ ├── bn.svg │ │ ├── bo.svg │ │ ├── bq.svg │ │ ├── br.svg │ │ ├── bs.svg │ │ ├── bt.svg │ │ ├── bv.svg │ │ ├── bw.svg │ │ ├── by.svg │ │ ├── bz.svg │ │ ├── ca.svg │ │ ├── cc.svg │ │ ├── cd.svg │ │ ├── cf.svg │ │ ├── cg.svg │ │ ├── ch.svg │ │ ├── ci.svg │ │ ├── ck.svg │ │ ├── cl.svg │ │ ├── cm.svg │ │ ├── cn.svg │ │ ├── co.svg │ │ ├── cr.svg │ │ ├── cu.svg │ │ ├── cv.svg │ │ ├── cw.svg │ │ ├── cx.svg │ │ ├── cy.svg │ │ ├── cz.svg │ │ ├── de.svg │ │ ├── dj.svg │ │ ├── dk.svg │ │ ├── dm.svg │ │ ├── do.svg │ │ ├── dz.svg │ │ ├── ec.svg │ │ ├── ee.svg │ │ ├── eg.svg │ │ ├── eh.svg │ │ ├── er.svg │ │ ├── es.svg │ │ ├── et.svg │ │ ├── eu.svg │ │ ├── fi.svg │ │ ├── fj.svg │ │ ├── fk.svg │ │ ├── fm.svg │ │ ├── fo.svg │ │ ├── fr.svg │ │ ├── ga.svg │ │ ├── gb-eng.svg │ │ ├── gb-nir.svg │ │ ├── gb-sct.svg │ │ ├── gb-wls.svg │ │ ├── gb.svg │ │ ├── gd.svg │ │ ├── ge.svg │ │ ├── gf.svg │ │ ├── gg.svg │ │ ├── gh.svg │ │ ├── gi.svg │ │ ├── gl.svg │ │ ├── gm.svg │ │ ├── gn.svg │ │ ├── gp.svg │ │ ├── gq.svg │ │ ├── gr.svg │ │ ├── gs.svg │ │ ├── gt.svg │ │ ├── gu.svg │ │ ├── gw.svg │ │ ├── gy.svg │ │ ├── hk.svg │ │ ├── hm.svg │ │ ├── hn.svg │ │ ├── hr.svg │ │ ├── ht.svg │ │ ├── hu.svg │ │ ├── id.svg │ │ ├── ie.svg │ │ ├── il.svg │ │ ├── im.svg │ │ ├── in.svg │ │ ├── io.svg │ │ ├── iq.svg │ │ ├── ir.svg │ │ ├── is.svg │ │ ├── it.svg │ │ ├── je.svg │ │ ├── jm.svg │ │ ├── jo.svg │ │ ├── jp.svg │ │ ├── ke.svg │ │ ├── kg.svg │ │ ├── kh.svg │ │ ├── ki.svg │ │ ├── km.svg │ │ ├── kn.svg │ │ ├── kp.svg │ │ ├── kr.svg │ │ ├── kw.svg │ │ ├── ky.svg │ │ ├── kz.svg │ │ ├── la.svg │ │ ├── lb.svg │ │ ├── lc.svg │ │ ├── li.svg │ │ ├── lk.svg │ │ ├── lr.svg │ │ ├── ls.svg │ │ ├── lt.svg │ │ ├── lu.svg │ │ ├── lv.svg │ │ ├── ly.svg │ │ ├── ma.svg │ │ ├── mc.svg │ │ ├── md.svg │ │ ├── me.svg │ │ ├── mf.svg │ │ ├── mg.svg │ │ ├── mh.svg │ │ ├── mk.svg │ │ ├── ml.svg │ │ ├── mm.svg │ │ ├── mn.svg │ │ ├── mo.svg │ │ ├── mp.svg │ │ ├── mq.svg │ │ ├── mr.svg │ │ ├── ms.svg │ │ ├── mt.svg │ │ ├── mu.svg │ │ ├── mv.svg │ │ ├── mw.svg │ │ ├── mx.svg │ │ ├── my.svg │ │ ├── mz.svg │ │ ├── na.svg │ │ ├── nc.svg │ │ ├── ne.svg │ │ ├── nf.svg │ │ ├── ng.svg │ │ ├── ni.svg │ │ ├── nl.svg │ │ ├── no.svg │ │ ├── np.svg │ │ ├── nr.svg │ │ ├── nu.svg │ │ ├── nz.svg │ │ ├── om.svg │ │ ├── pa.svg │ │ ├── pe.svg │ │ ├── pf.svg │ │ ├── pg.svg │ │ ├── ph.svg │ │ ├── pk.svg │ │ ├── pl.svg │ │ ├── pm.svg │ │ ├── pn.svg │ │ ├── pr.svg │ │ ├── ps.svg │ │ ├── pt.svg │ │ ├── pw.svg │ │ ├── py.svg │ │ ├── qa.svg │ │ ├── re.svg │ │ ├── ro.svg │ │ ├── rs.svg │ │ ├── ru.svg │ │ ├── rw.svg │ │ ├── sa.svg │ │ ├── sb.svg │ │ ├── sc.svg │ │ ├── sd.svg │ │ ├── se.svg │ │ ├── sg.svg │ │ ├── sh.svg │ │ ├── si.svg │ │ ├── sj.svg │ │ ├── sk.svg │ │ ├── sl.svg │ │ ├── sm.svg │ │ ├── sn.svg │ │ ├── so.svg │ │ ├── sr.svg │ │ ├── ss.svg │ │ ├── st.svg │ │ ├── sv.svg │ │ ├── sx.svg │ │ ├── sy.svg │ │ ├── sz.svg │ │ ├── tc.svg │ │ ├── td.svg │ │ ├── tf.svg │ │ ├── tg.svg │ │ ├── th.svg │ │ ├── tj.svg │ │ ├── tk.svg │ │ ├── tl.svg │ │ ├── tm.svg │ │ ├── tn.svg │ │ ├── to.svg │ │ ├── tr.svg │ │ ├── tt.svg │ │ ├── tv.svg │ │ ├── tw.svg │ │ ├── tz.svg │ │ ├── ua.svg │ │ ├── ug.svg │ │ ├── um.svg │ │ ├── un.svg │ │ ├── us.svg │ │ ├── uy.svg │ │ ├── uz.svg │ │ ├── va.svg │ │ ├── vc.svg │ │ ├── ve.svg │ │ ├── vg.svg │ │ ├── vi.svg │ │ ├── vn.svg │ │ ├── vu.svg │ │ ├── wf.svg │ │ ├── ws.svg │ │ ├── ye.svg │ │ ├── yt.svg │ │ ├── za.svg │ │ ├── zm.svg │ │ └── zw.svg │ ├── install_icon.png │ ├── logo.png │ ├── open_icon.png │ ├── payments │ │ ├── 2checkout-dark.svg │ │ ├── 2checkout.svg │ │ ├── alipay-dark.svg │ │ ├── alipay.svg │ │ ├── amazon-dark.svg │ │ ├── amazon.svg │ │ ├── americanexpress-dark.svg │ │ ├── americanexpress.svg │ │ ├── applepay-dark.svg │ │ ├── applepay.svg │ │ ├── bancontact-dark.svg │ │ ├── bancontact.svg │ │ ├── bitcoin-dark.svg │ │ ├── bitcoin.svg │ │ ├── bitpay-dark.svg │ │ ├── bitpay.svg │ │ ├── cirrus-dark.svg │ │ ├── cirrus.svg │ │ ├── clickandbuy-dark.svg │ │ ├── clickandbuy.svg │ │ ├── coinkite-dark.svg │ │ ├── coinkite.svg │ │ ├── dinersclub-dark.svg │ │ ├── dinersclub.svg │ │ ├── directdebit-dark.svg │ │ ├── directdebit.svg │ │ ├── discover-dark.svg │ │ ├── discover.svg │ │ ├── dwolla-dark.svg │ │ ├── dwolla.svg │ │ ├── ebay-dark.svg │ │ ├── ebay.svg │ │ ├── eway-dark.svg │ │ ├── eway.svg │ │ ├── giropay-dark.svg │ │ ├── giropay.svg │ │ ├── googlewallet-dark.svg │ │ ├── googlewallet.svg │ │ ├── ingenico-dark.svg │ │ ├── ingenico.svg │ │ ├── jcb-dark.svg │ │ ├── jcb.svg │ │ ├── klarna-dark.svg │ │ ├── klarna.svg │ │ ├── laser-dark.svg │ │ ├── laser.svg │ │ ├── maestro-dark.svg │ │ ├── maestro.svg │ │ ├── mastercard-dark.svg │ │ ├── mastercard.svg │ │ ├── monero-dark.svg │ │ ├── monero.svg │ │ ├── neteller-dark.svg │ │ ├── neteller.svg │ │ ├── ogone-dark.svg │ │ ├── ogone.svg │ │ ├── okpay-dark.svg │ │ ├── okpay.svg │ │ ├── paybox-dark.svg │ │ ├── paybox.svg │ │ ├── paymill-dark.svg │ │ ├── paymill.svg │ │ ├── payone-dark.svg │ │ ├── payone.svg │ │ ├── payoneer-dark.svg │ │ ├── payoneer.svg │ │ ├── paypal-dark.svg │ │ ├── paypal.svg │ │ ├── paysafecard-dark.svg │ │ ├── paysafecard.svg │ │ ├── payu-dark.svg │ │ ├── payu.svg │ │ ├── payza-dark.svg │ │ ├── payza.svg │ │ ├── ripple-dark.svg │ │ ├── ripple.svg │ │ ├── sage-dark.svg │ │ ├── sage.svg │ │ ├── sepa-dark.svg │ │ ├── sepa.svg │ │ ├── shopify-dark.svg │ │ ├── shopify.svg │ │ ├── skrill-dark.svg │ │ ├── skrill.svg │ │ ├── solo-dark.svg │ │ ├── solo.svg │ │ ├── square-dark.svg │ │ ├── square.svg │ │ ├── stripe-dark.svg │ │ ├── stripe.svg │ │ ├── switch-dark.svg │ │ ├── switch.svg │ │ ├── ukash-dark.svg │ │ ├── ukash.svg │ │ ├── unionpay-dark.svg │ │ ├── unionpay.svg │ │ ├── verifone-dark.svg │ │ ├── verifone.svg │ │ ├── verisign-dark.svg │ │ ├── verisign.svg │ │ ├── visa-dark.svg │ │ ├── visa.svg │ │ ├── webmoney-dark.svg │ │ ├── webmoney.svg │ │ ├── westernunion-dark.svg │ │ ├── westernunion.svg │ │ ├── worldpay-dark.svg │ │ └── worldpay.svg │ └── waves.svg ├── js │ ├── core.js │ ├── dashboard.js │ ├── require.min.js │ └── vendors │ │ ├── axios.js │ │ ├── bootstrap.bundle.min.js │ │ ├── chart.bundle.min.js │ │ ├── circle-progress.min.js │ │ ├── jquery-3.2.1.min.js │ │ ├── jquery-3.2.1.slim.min.js │ │ ├── jquery-3.3.1.slim.min.js │ │ ├── jquery-jvectormap-2.0.3.min.js │ │ ├── jquery-jvectormap-de-merc.js │ │ ├── jquery-jvectormap-world-mill.js │ │ ├── jquery.sparkline.min.js │ │ ├── jquery.tablesorter.min.js │ │ ├── js-cookie-2.2.0.js │ │ ├── selectize.min.js │ │ └── vue.js └── plugins │ ├── charts-c3 │ ├── js │ │ ├── c3.min.js │ │ └── d3.v3.min.js │ ├── plugin.css │ └── plugin.js │ ├── fullcalendar │ ├── js │ │ ├── fullcalendar.min.js │ │ └── moment.min.js │ ├── plugin.css │ └── plugin.js │ ├── input-mask │ ├── js │ │ └── jquery.mask.min.js │ └── plugin.js │ ├── pace │ ├── .gitignore │ ├── .hsdoc │ ├── Gruntfile.coffee │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── docs │ │ ├── intro.md │ │ ├── resources │ │ │ ├── barber-pole-orange.css │ │ │ ├── flash-white.css │ │ │ └── templates │ │ │ │ ├── index.jade │ │ │ │ └── page.jade │ │ └── welcome │ │ │ └── index.html │ ├── install.json │ ├── pace.coffee │ ├── pace.js │ ├── pace.min.js │ ├── package.json │ ├── plugin.js │ ├── templates │ │ ├── pace-theme-barber-shop.tmpl.css │ │ ├── pace-theme-big-counter.tmpl.css │ │ ├── pace-theme-bounce.tmpl.css │ │ ├── pace-theme-center-atom.tmpl.css │ │ ├── pace-theme-center-circle.tmpl.css │ │ ├── pace-theme-center-radar.tmpl.css │ │ ├── pace-theme-center-simple.tmpl.css │ │ ├── pace-theme-corner-indicator.tmpl.css │ │ ├── pace-theme-fill-left.tmpl.css │ │ ├── pace-theme-flash.tmpl.css │ │ ├── pace-theme-flat-top.tmpl.css │ │ ├── pace-theme-loading-bar.tmpl.css │ │ ├── pace-theme-mac-osx.tmpl.css │ │ └── pace-theme-minimal.tmpl.css │ ├── tests │ │ └── demo.html │ └── themes │ │ ├── black │ │ ├── pace-theme-barber-shop.css │ │ ├── pace-theme-big-counter.css │ │ ├── pace-theme-bounce.css │ │ ├── pace-theme-center-atom.css │ │ ├── pace-theme-center-circle.css │ │ ├── pace-theme-center-radar.css │ │ ├── pace-theme-center-simple.css │ │ ├── pace-theme-corner-indicator.css │ │ ├── pace-theme-fill-left.css │ │ ├── pace-theme-flash.css │ │ ├── pace-theme-flat-top.css │ │ ├── pace-theme-loading-bar.css │ │ ├── pace-theme-mac-osx.css │ │ └── pace-theme-minimal.css │ │ ├── blue │ │ ├── pace-theme-barber-shop.css │ │ ├── pace-theme-big-counter.css │ │ ├── pace-theme-bounce.css │ │ ├── pace-theme-center-atom.css │ │ ├── pace-theme-center-circle.css │ │ ├── pace-theme-center-radar.css │ │ ├── pace-theme-center-simple.css │ │ ├── pace-theme-corner-indicator.css │ │ ├── pace-theme-fill-left.css │ │ ├── pace-theme-flash.css │ │ ├── pace-theme-flat-top.css │ │ ├── pace-theme-loading-bar.css │ │ ├── pace-theme-mac-osx.css │ │ └── pace-theme-minimal.css │ │ ├── green │ │ ├── pace-theme-barber-shop.css │ │ ├── pace-theme-big-counter.css │ │ ├── pace-theme-bounce.css │ │ ├── pace-theme-center-atom.css │ │ ├── pace-theme-center-circle.css │ │ ├── pace-theme-center-radar.css │ │ ├── pace-theme-center-simple.css │ │ ├── pace-theme-corner-indicator.css │ │ ├── pace-theme-fill-left.css │ │ ├── pace-theme-flash.css │ │ ├── pace-theme-flat-top.css │ │ ├── pace-theme-loading-bar.css │ │ ├── pace-theme-mac-osx.css │ │ └── pace-theme-minimal.css │ │ ├── orange │ │ ├── pace-theme-barber-shop.css │ │ ├── pace-theme-big-counter.css │ │ ├── pace-theme-bounce.css │ │ ├── pace-theme-center-atom.css │ │ ├── pace-theme-center-circle.css │ │ ├── pace-theme-center-radar.css │ │ ├── pace-theme-center-simple.css │ │ ├── pace-theme-corner-indicator.css │ │ ├── pace-theme-fill-left.css │ │ ├── pace-theme-flash.css │ │ ├── pace-theme-flat-top.css │ │ ├── pace-theme-loading-bar.css │ │ ├── pace-theme-mac-osx.css │ │ └── pace-theme-minimal.css │ │ ├── pace-theme-barber-shop.css │ │ ├── pace-theme-big-counter.css │ │ ├── pace-theme-bounce.css │ │ ├── pace-theme-center-atom.css │ │ ├── pace-theme-center-circle.css │ │ ├── pace-theme-center-radar.css │ │ ├── pace-theme-center-simple.css │ │ ├── pace-theme-corner-indicator.css │ │ ├── pace-theme-fill-left.css │ │ ├── pace-theme-flash.css │ │ ├── pace-theme-flat-top.css │ │ ├── pace-theme-loading-bar.css │ │ ├── pace-theme-mac-osx.css │ │ ├── pace-theme-minimal.css │ │ ├── pink │ │ ├── pace-theme-barber-shop.css │ │ ├── pace-theme-big-counter.css │ │ ├── pace-theme-bounce.css │ │ ├── pace-theme-center-atom.css │ │ ├── pace-theme-center-circle.css │ │ ├── pace-theme-center-radar.css │ │ ├── pace-theme-center-simple.css │ │ ├── pace-theme-corner-indicator.css │ │ ├── pace-theme-fill-left.css │ │ ├── pace-theme-flash.css │ │ ├── pace-theme-flat-top.css │ │ ├── pace-theme-loading-bar.css │ │ ├── pace-theme-mac-osx.css │ │ └── pace-theme-minimal.css │ │ ├── purple │ │ ├── pace-theme-barber-shop.css │ │ ├── pace-theme-big-counter.css │ │ ├── pace-theme-bounce.css │ │ ├── pace-theme-center-atom.css │ │ ├── pace-theme-center-circle.css │ │ ├── pace-theme-center-radar.css │ │ ├── pace-theme-center-simple.css │ │ ├── pace-theme-corner-indicator.css │ │ ├── pace-theme-fill-left.css │ │ ├── pace-theme-flash.css │ │ ├── pace-theme-flat-top.css │ │ ├── pace-theme-loading-bar.css │ │ ├── pace-theme-mac-osx.css │ │ └── pace-theme-minimal.css │ │ ├── red │ │ ├── pace-theme-barber-shop.css │ │ ├── pace-theme-big-counter.css │ │ ├── pace-theme-bounce.css │ │ ├── pace-theme-center-atom.css │ │ ├── pace-theme-center-circle.css │ │ ├── pace-theme-center-radar.css │ │ ├── pace-theme-center-simple.css │ │ ├── pace-theme-corner-indicator.css │ │ ├── pace-theme-fill-left.css │ │ ├── pace-theme-flash.css │ │ ├── pace-theme-flat-top.css │ │ ├── pace-theme-loading-bar.css │ │ ├── pace-theme-mac-osx.css │ │ └── pace-theme-minimal.css │ │ ├── silver │ │ ├── pace-theme-barber-shop.css │ │ ├── pace-theme-big-counter.css │ │ ├── pace-theme-bounce.css │ │ ├── pace-theme-center-atom.css │ │ ├── pace-theme-center-circle.css │ │ ├── pace-theme-center-radar.css │ │ ├── pace-theme-center-simple.css │ │ ├── pace-theme-corner-indicator.css │ │ ├── pace-theme-fill-left.css │ │ ├── pace-theme-flash.css │ │ ├── pace-theme-flat-top.css │ │ ├── pace-theme-loading-bar.css │ │ ├── pace-theme-mac-osx.css │ │ └── pace-theme-minimal.css │ │ ├── white │ │ ├── pace-theme-barber-shop.css │ │ ├── pace-theme-big-counter.css │ │ ├── pace-theme-bounce.css │ │ ├── pace-theme-center-atom.css │ │ ├── pace-theme-center-circle.css │ │ ├── pace-theme-center-radar.css │ │ ├── pace-theme-center-simple.css │ │ ├── pace-theme-corner-indicator.css │ │ ├── pace-theme-fill-left.css │ │ ├── pace-theme-flash.css │ │ ├── pace-theme-flat-top.css │ │ ├── pace-theme-loading-bar.css │ │ ├── pace-theme-mac-osx.css │ │ └── pace-theme-minimal.css │ │ └── yellow │ │ ├── pace-theme-barber-shop.css │ │ ├── pace-theme-big-counter.css │ │ ├── pace-theme-bounce.css │ │ ├── pace-theme-center-atom.css │ │ ├── pace-theme-center-circle.css │ │ ├── pace-theme-center-radar.css │ │ ├── pace-theme-center-simple.css │ │ ├── pace-theme-corner-indicator.css │ │ ├── pace-theme-fill-left.css │ │ ├── pace-theme-flash.css │ │ ├── pace-theme-flat-top.css │ │ ├── pace-theme-loading-bar.css │ │ ├── pace-theme-mac-osx.css │ │ └── pace-theme-minimal.css │ ├── prismjs │ ├── js │ │ └── prism.pack.js │ ├── plugin.css │ └── plugin.js │ └── toastr │ ├── plugin.js │ ├── toastr.css │ └── toastr.js ├── deployments ├── development │ └── README.md ├── docker-compose │ └── README.md ├── k8s │ └── README.md └── ubuntu-18.04 │ └── README.md ├── docker-compose.yml ├── docker ├── nginx │ └── nginx.conf └── rabbitmq │ └── rabbitmq-isolated.conf ├── flake8.ini ├── manage.py ├── pycodestyle ├── renovate.json ├── requirements.txt ├── runtime.txt ├── static └── .gitignore ├── storage ├── app │ ├── private │ │ └── .gitignore │ └── public │ │ └── .gitignore ├── database │ └── .gitignore ├── logs │ └── .gitignore └── mails │ └── .gitignore ├── swagger.yaml ├── themes ├── child │ ├── layouts │ │ └── .gitignore │ ├── partials │ │ └── .gitignore │ └── templates │ │ └── .gitignore └── default │ ├── layouts │ ├── base.html │ ├── landing.html │ └── mail.html │ ├── mails │ ├── incident_update.html │ ├── register_invitation.html │ └── reset_password.html │ ├── partials │ ├── bottom-menu.html │ ├── footer.html │ ├── header.html │ └── top-menu.html │ └── templates │ ├── 404.html │ ├── 500.html │ ├── admin │ ├── activity.html │ ├── builder.html │ ├── component │ │ ├── add.html │ │ ├── edit.html │ │ └── list.html │ ├── component_group │ │ ├── add.html │ │ ├── edit.html │ │ └── list.html │ ├── dashboard.html │ ├── incident │ │ ├── add.html │ │ ├── edit.html │ │ ├── list.html │ │ ├── update │ │ │ ├── add.html │ │ │ ├── edit.html │ │ │ └── view.html │ │ └── view.html │ ├── metric │ │ ├── add.html │ │ ├── edit.html │ │ └── list.html │ ├── notification.html │ ├── profile.html │ ├── settings.html │ ├── status_page.html │ ├── subscriber │ │ ├── add.html │ │ ├── edit.html │ │ └── list.html │ └── user │ │ ├── add.html │ │ ├── edit.html │ │ └── list.html │ ├── forgot_password.html │ ├── install.html │ ├── login.html │ ├── register.html │ ├── reset_password.html │ ├── status_page_history.html │ ├── status_page_index.html │ └── status_page_single.html └── translation ├── de └── LC_MESSAGES │ └── django.po ├── fr └── LC_MESSAGES │ └── django.po └── nl └── LC_MESSAGES └── django.po /.env.docker: -------------------------------------------------------------------------------- 1 | APP_NAME=Silverback 2 | APP_KEY=)lj2@3@y&5ofgoekbt2c-4$$w2bedn@-(hr&i^!#%wype&wp6d 3 | APP_DEBUG=True 4 | APP_URL=http://localhost 5 | 6 | CURRENT_THEME=default 7 | 8 | DB_CONNECTION=mysql 9 | DB_HOST=db 10 | DB_PORT=3306 11 | DB_DATABASE=silverback 12 | DB_USERNAME=silverback 13 | DB_PASSWORD=secret 14 | 15 | EMAIL_BACKEND=filebased 16 | MAIL_DRIVER=smtp 17 | MAIL_HOST=smtp.mailtrap.io 18 | MAIL_PORT=2525 19 | MAIL_USERNAME=null 20 | MAIL_PASSWORD=null 21 | MAIL_ENCRYPTION=null 22 | 23 | ALLOWED_HOSTS=* 24 | APP_TIMEZONE=UTC 25 | APP_LANGUAGE=en-us 26 | 27 | DJANGO_LOGGING_HANDLERS= 28 | DJANGO_LOGGING_LEVEL=warning 29 | DJANGO_LOGGING_PROPAGATE=false 30 | 31 | APP_LOGGING_HANDLERS=file 32 | APP_LOGGING_LEVEL=info 33 | APP_LOGGING_PROPAGATE=true 34 | 35 | ACTIVATE_NOTIFICATIONS=false 36 | 37 | CELERY_BROKER_URL=amqp://guest:guest@rabbitmq:5672 38 | CELERY_RESULT_BACKEND=redis://redis:6379 39 | 40 | APP_CRYPTO_KEY=oibX_h5ErwimAtF5hDU8Rrfo_BHcD7lNrwHddg2WkBQ= 41 | 42 | TEXT_MESSAGING_DRIVER=twilio 43 | 44 | TWILIO_AUTH_TOKEN= 45 | TWILIO_ACCOUNT_SID= -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | APP_NAME=Silverback 2 | APP_KEY= 3 | APP_DEBUG=true 4 | APP_URL=http://localhost 5 | 6 | CURRENT_THEME=default 7 | 8 | DB_CONNECTION=sqlite 9 | DB_HOST=127.0.0.1 10 | DB_PORT=3306 11 | DB_DATABASE=silverback 12 | DB_USERNAME=root 13 | DB_PASSWORD=secret 14 | 15 | EMAIL_BACKEND=filebased 16 | MAIL_DRIVER=smtp 17 | MAIL_HOST=smtp.mailtrap.io 18 | MAIL_PORT=2525 19 | MAIL_USERNAME=null 20 | MAIL_PASSWORD=null 21 | MAIL_ENCRYPTION=null 22 | 23 | ALLOWED_HOSTS=* 24 | APP_TIMEZONE=UTC 25 | APP_LANGUAGE=en-us 26 | 27 | DJANGO_LOGGING_HANDLERS= 28 | DJANGO_LOGGING_LEVEL=warning 29 | DJANGO_LOGGING_PROPAGATE=false 30 | 31 | APP_LOGGING_HANDLERS=file 32 | APP_LOGGING_LEVEL=info 33 | APP_LOGGING_PROPAGATE=true 34 | 35 | ACTIVATE_NOTIFICATIONS=false 36 | 37 | CELERY_BROKER_URL=amqp://guest:guest@127.0.0.1:5672 38 | CELERY_RESULT_BACKEND=redis://127.0.0.1:6379 39 | 40 | APP_CRYPTO_KEY=oibX_h5ErwimAtF5hDU8Rrfo_BHcD7lNrwHddg2WkBQ= 41 | 42 | TEXT_MESSAGING_DRIVER=twilio 43 | 44 | TWILIO_AUTH_TOKEN= 45 | TWILIO_ACCOUNT_SID= -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | assets/* linguist-vendored 2 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # Docs: https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners 2 | * @clivern 3 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: clivern 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | 5 | --- 6 | 7 | **Describe the bug** 8 | A clear and concise description of what the bug is. 9 | 10 | **To Reproduce** 11 | Steps to reproduce the behavior: 12 | 1. Go to '...' 13 | 2. Click on '....' 14 | 3. Scroll down to '....' 15 | 4. See error 16 | 17 | **Expected behavior** 18 | A clear and concise description of what you expected to happen. 19 | 20 | **Screenshots** 21 | If applicable, add screenshots to help explain your problem. 22 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | 5 | --- 6 | 7 | **Is your feature request related to a problem or something you would like to see? Please describe.** 8 | A clear and concise description of what the problem or the new feature is. Ex. I'm always frustrated when [...] 9 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: Silverback Lite CI 2 | 3 | on: [push] 4 | 5 | jobs: 6 | build: 7 | runs-on: ubuntu-16.04 8 | strategy: 9 | max-parallel: 4 10 | matrix: 11 | python-version: [3.6, 3.7] 12 | steps: 13 | - uses: actions/checkout@v1 14 | - name: Set up Python ${{ matrix.python-version }} 15 | uses: actions/setup-python@v1 16 | with: 17 | python-version: ${{ matrix.python-version }} 18 | - name: Run make liteci 19 | run: | 20 | sudo apt-get update 21 | sudo apt-get install libmysqlclient-dev libpq-dev python-dev 22 | make liteci 23 | -------------------------------------------------------------------------------- /.mergify.yml: -------------------------------------------------------------------------------- 1 | --- 2 | pull_request_rules: 3 | - 4 | actions: 5 | merge: 6 | method: squash 7 | conditions: 8 | - author!=Clivern 9 | - approved-reviews-by=Clivern 10 | - label=merge 11 | - status-success=continuous-integration/travis-ci/pr 12 | - status-success=continuous-integration/travis-ci/push 13 | name: "Automatic Merge 🚀" 14 | - 15 | actions: 16 | merge: 17 | method: merge 18 | conditions: 19 | - author=Clivern 20 | - label=merge 21 | name: "Automatic Merge 🚀" 22 | - 23 | actions: 24 | merge: 25 | method: squash 26 | conditions: 27 | - "author=renovate[bot]" 28 | - label=merge 29 | - status-success=continuous-integration/travis-ci/pr 30 | - status-success=continuous-integration/travis-ci/push 31 | name: "Automatic Merge for Renovate PRs 🚀" 32 | - 33 | actions: 34 | comment: 35 | message: "Nice! PR successfully merged." 36 | conditions: 37 | - merged 38 | name: "Merge Done 🚀" 39 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Contributing 2 | 3 | - With issues: 4 | - Use the search tool before opening a new issue. 5 | - Please provide source code and commit sha if you found a bug. 6 | - Review existing issues and provide feedback or react to them. 7 | 8 | - With pull requests: 9 | - We follow [Google Python Style Guide](http://google.github.io/styleguide/pyguide.html). 10 | - Open your pull request against `master` or `develop` if exists. 11 | - Your pull request should have no more than two commits, if not you should squash them. 12 | - It should pass all tests in the available continuous integrations systems such as TravisCI. 13 | - You should add/modify tests to cover your proposed code changes. 14 | - If your pull request contains a new feature, please document it on the README. 15 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.6 2 | 3 | ENV PYTHONUNBUFFERED 1 4 | 5 | RUN mkdir /app 6 | 7 | COPY . /app 8 | 9 | WORKDIR /app 10 | 11 | RUN pip install -r requirements.txt 12 | 13 | RUN python manage.py collectstatic --noinput 14 | 15 | RUN rm -rf ./assets 16 | 17 | EXPOSE 8000 18 | 19 | VOLUME /app/storage 20 | 21 | HEALTHCHECK --interval=5s --timeout=2s --retries=5 --start-period=2s \ 22 | CMD python manage.py health check 23 | 24 | CMD ["gunicorn" , "-b", "0.0.0.0:8000", "app.wsgi"] -------------------------------------------------------------------------------- /PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | - With pull requests: 2 | - Open your pull request against `master` or `develop` if exists. 3 | - Your pull request should have no more than two commits, if not you should squash them. 4 | - It should pass all tests in the available continuous integrations systems such as TravisCI. 5 | - You should add/modify tests to cover your proposed code changes. 6 | - If your pull request contains a new feature, please document it on the README. 7 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: python manage.py collectstatic --no-input; python manage.py migrate; gunicorn app.wsgi --log-file - 2 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Silverback", 3 | "description": "A Status and Incident Communication Tool", 4 | "repository": "https://github.com/silverbackhq/silverback", 5 | "website": "https://github.com/silverbackhq", 6 | "logo": "https://silverbackhq.org/logo.png", 7 | "keywords": ["silverback", "silverbackhq", "status-page", "incident-management", "chatops", "statuspage", "application-monitoring", "cachet"], 8 | "success_url": "/", 9 | "env": { 10 | "APP_ENVIRONMENT": "heroku", 11 | "APP_URL": "http://localhost", 12 | "APP_DEBUG": "false", 13 | "DB_CONNECTION": "sqlite", 14 | "DB_HOST": "127.0.0.1", 15 | "DB_PORT": "3306", 16 | "DB_DATABASE": "silverback", 17 | "DB_USERNAME": "root", 18 | "DB_PASSWORD": "secret", 19 | "ALLOWED_HOSTS": "*", 20 | "APP_KEY": { 21 | "description": "A secret key.", 22 | "generator": "secret" 23 | }, 24 | "DISABLE_COLLECTSTATIC": "0" 25 | }, 26 | "addons": [{ 27 | "plan": "heroku-postgresql", 28 | "options": { 29 | "version": "9.5" 30 | } 31 | }] 32 | } 33 | -------------------------------------------------------------------------------- /app/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Silverbackhq 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # https://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from .celery import app as celery_app 16 | 17 | __all__ = (celery_app) 18 | -------------------------------------------------------------------------------- /app/context_processors.py: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Silverbackhq 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # https://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # Standard Library 16 | import os 17 | 18 | # Local Library 19 | from app.modules.entity.option_entity import OptionEntity 20 | from app.modules.core.constants import Constants 21 | 22 | 23 | def globals(request): 24 | 25 | option_entity = OptionEntity() 26 | 27 | return { 28 | "google_account": option_entity.get_value_by_key("google_analytics_account", ""), 29 | "app_timezone": os.getenv("APP_TIMEZONE", "UTC"), 30 | "activate_notifications": os.getenv("ACTIVATE_NOTIFICATIONS", "false") == "true", 31 | "constants": Constants(), 32 | } 33 | -------------------------------------------------------------------------------- /app/controllers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/controllers/__init__.py -------------------------------------------------------------------------------- /app/controllers/api/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/controllers/api/__init__.py -------------------------------------------------------------------------------- /app/controllers/api/private/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/controllers/api/private/__init__.py -------------------------------------------------------------------------------- /app/controllers/api/private/v1/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/controllers/api/private/v1/__init__.py -------------------------------------------------------------------------------- /app/controllers/api/private/v1/admin/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/controllers/api/private/v1/admin/__init__.py -------------------------------------------------------------------------------- /app/controllers/api/private/v1/forbidden.py: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Silverbackhq 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # https://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # Third Party Library 16 | from django.http import JsonResponse 17 | from django.utils.translation import gettext as _ 18 | 19 | 20 | def csrf_failure(request, reason=""): 21 | return JsonResponse({ 22 | "status": "failure", 23 | "messages": [{ 24 | "type": "error", 25 | "message": _("Error! Access forbidden due to invalid CSRF token.") 26 | }] 27 | }) 28 | -------------------------------------------------------------------------------- /app/controllers/web/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/controllers/web/__init__.py -------------------------------------------------------------------------------- /app/controllers/web/admin/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/controllers/web/admin/__init__.py -------------------------------------------------------------------------------- /app/exceptions/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/exceptions/__init__.py -------------------------------------------------------------------------------- /app/exceptions/client_error.py: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Silverbackhq 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # https://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from app.exceptions.error_codes import ErrorCodes 16 | 17 | 18 | class ClientError(Exception): 19 | """Client Error Custom Exception""" 20 | 21 | def __init__(self, message, error_code=None, extra={}): 22 | Exception.__init__(self, message) 23 | self.error_code = ErrorCodes().CLIENT_ERROR if error_code is None else error_code 24 | self.extra = extra 25 | 26 | def get_error_code(self): 27 | return self.error_code 28 | -------------------------------------------------------------------------------- /app/exceptions/error_codes.py: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Silverbackhq 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # https://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | 16 | class ErrorCodes(): 17 | 18 | SERVER_ERROR = "SERVER_ERROR" 19 | CLIENT_ERROR = "CLIENT_ERROR" 20 | -------------------------------------------------------------------------------- /app/exceptions/missing_argument.py: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Silverbackhq 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # https://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | 16 | class MissingArgument(Exception): 17 | """Missing Argument Custom Exception""" 18 | 19 | def __init__(self, message, error_info={}): 20 | Exception.__init__(self, message) 21 | self.error_info = error_info 22 | -------------------------------------------------------------------------------- /app/exceptions/sanitization_rule_not_found.py: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Silverbackhq 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # https://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | 16 | class SanitizationRuleNotFound(Exception): 17 | """Sanitization Rule Not Exist Custom Exception""" 18 | 19 | def __init__(self, error_info): 20 | Exception.__init__(self, "Sanitization Rule Not Found!") 21 | self.error_info = error_info 22 | -------------------------------------------------------------------------------- /app/exceptions/server_error.py: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Silverbackhq 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # https://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from app.exceptions.error_codes import ErrorCodes 16 | 17 | 18 | class ServerError(Exception): 19 | """ServerError Custom Exception""" 20 | 21 | def __init__(self, message, error_code=None, extra={}): 22 | Exception.__init__(self, message) 23 | self.error_code = ErrorCodes().SERVER_ERROR if error_code is None else error_code 24 | self.extra = extra 25 | 26 | def get_error_code(self): 27 | return self.error_code 28 | -------------------------------------------------------------------------------- /app/exceptions/validation_rule_not_found.py: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Silverbackhq 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # https://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | 16 | class ValidationRuleNotFound(Exception): 17 | """Validation Rule Not Exist Custom Exception""" 18 | 19 | def __init__(self, error_info): 20 | Exception.__init__(self, "Validation Rule Not Found!") 21 | self.error_info = error_info 22 | -------------------------------------------------------------------------------- /app/management/commands/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/management/commands/__init__.py -------------------------------------------------------------------------------- /app/middleware/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/middleware/__init__.py -------------------------------------------------------------------------------- /app/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/migrations/__init__.py -------------------------------------------------------------------------------- /app/models/option.py: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Silverbackhq 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # https://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # Third Party Library 16 | from django.db import models 17 | 18 | 19 | class Option(models.Model): 20 | 21 | key = models.CharField(max_length=30, db_index=True, verbose_name="Key") 22 | value = models.CharField(max_length=200, verbose_name="Value") 23 | autoload = models.BooleanField(default=False, verbose_name="Autoload") 24 | created_at = models.DateTimeField(auto_now_add=True, verbose_name="Created at") 25 | updated_at = models.DateTimeField(auto_now=True, verbose_name="Updated at") 26 | 27 | class Meta: 28 | db_table = "app_option" 29 | -------------------------------------------------------------------------------- /app/modules/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/modules/__init__.py -------------------------------------------------------------------------------- /app/modules/core/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/modules/core/__init__.py -------------------------------------------------------------------------------- /app/modules/core/constants.py: -------------------------------------------------------------------------------- 1 | """ 2 | Constants Module 3 | """ 4 | 5 | 6 | class Constants(): 7 | 8 | INCIDENT_UPDATE_STATUSES = { 9 | "investigating": "Investigating", 10 | "identified": "Identified", 11 | "monitoring": "Monitoring", 12 | "update": "Update", 13 | "resolved": "Resolved", 14 | } 15 | 16 | COMPONENT_STATUSES = { 17 | "operational": "Operational", 18 | "degraded_performance": "Degraded Performance", 19 | "partial_outage": "Partial Outage", 20 | "major_outage": "Major Outage", 21 | "maintenance": "Maintenance", 22 | } 23 | -------------------------------------------------------------------------------- /app/modules/core/settings.py: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Silverbackhq 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # https://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # Local Library 16 | from app.modules.entity.option_entity import OptionEntity 17 | 18 | 19 | class Settings(): 20 | 21 | def __init__(self): 22 | self.__option_entity = OptionEntity() 23 | 24 | def update_options(self, options): 25 | status = True 26 | for key, value in options.items(): 27 | status &= self.__option_entity.update_value_by_key(key, value) 28 | return status 29 | 30 | def get_value_by_key(self, key, default=""): 31 | return self.__option_entity.get_value_by_key(key, default) 32 | -------------------------------------------------------------------------------- /app/modules/entity/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/modules/entity/__init__.py -------------------------------------------------------------------------------- /app/modules/service/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/modules/service/__init__.py -------------------------------------------------------------------------------- /app/modules/util/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/modules/util/__init__.py -------------------------------------------------------------------------------- /app/modules/validation/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/modules/validation/__init__.py -------------------------------------------------------------------------------- /app/settings/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/settings/__init__.py -------------------------------------------------------------------------------- /app/tasks/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Silverbackhq 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # https://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from .forgot_password import * # noqa: F401 F403 16 | from .register_request import * # noqa: F401 F403 17 | from .incident_update import * # noqa: F401 F403 18 | from .notify_subscriber import * # noqa: F401 F403 19 | from .verify_subscriber import * # noqa: F401 F403 20 | from .ping import * # noqa: F401 F403 21 | -------------------------------------------------------------------------------- /app/templatetags/__init.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/templatetags/__init.py -------------------------------------------------------------------------------- /app/templatetags/extras.py: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Silverbackhq 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # https://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # Third Party Library 16 | from django import template 17 | 18 | 19 | register = template.Library() 20 | 21 | 22 | @register.filter(name='cut') 23 | def cut(value, arg): 24 | """Removes all values of arg from the given string 25 | 26 | 27 | {% load extras %} 28 | {{ somevariable|cut:"0" }} 29 | """ 30 | return value.replace(arg, '') 31 | -------------------------------------------------------------------------------- /app/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/tests/__init__.py -------------------------------------------------------------------------------- /app/tests/functional/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/tests/functional/__init__.py -------------------------------------------------------------------------------- /app/tests/functional/controllers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/tests/functional/controllers/__init__.py -------------------------------------------------------------------------------- /app/tests/functional/controllers/api/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/tests/functional/controllers/api/__init__.py -------------------------------------------------------------------------------- /app/tests/functional/controllers/api/private/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/tests/functional/controllers/api/private/__init__.py -------------------------------------------------------------------------------- /app/tests/functional/controllers/api/private/v1/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/tests/functional/controllers/api/private/v1/__init__.py -------------------------------------------------------------------------------- /app/tests/functional/controllers/api/private/v1/admin/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/tests/functional/controllers/api/private/v1/admin/__init__.py -------------------------------------------------------------------------------- /app/tests/functional/controllers/web/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/tests/functional/controllers/web/__init__.py -------------------------------------------------------------------------------- /app/tests/unit/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/tests/unit/__init__.py -------------------------------------------------------------------------------- /app/tests/unit/modules/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/tests/unit/modules/__init__.py -------------------------------------------------------------------------------- /app/tests/unit/modules/entity/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/app/tests/unit/modules/entity/__init__.py -------------------------------------------------------------------------------- /app/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI Config for Silverback 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | For more information on this file, see 6 | https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/ 7 | 8 | To Run Using gunicorn 9 | pip install gunicorn 10 | gunicorn app.wsgi:application 11 | """ 12 | 13 | # Standard Library 14 | import os 15 | 16 | # Third Party Library 17 | from django.core.wsgi import get_wsgi_application 18 | 19 | 20 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "app.settings.basic") 21 | 22 | application = get_wsgi_application() 23 | -------------------------------------------------------------------------------- /assets/chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/chart.png -------------------------------------------------------------------------------- /assets/fonts/feather/feather-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/fonts/feather/feather-webfont.eot -------------------------------------------------------------------------------- /assets/fonts/feather/feather-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/fonts/feather/feather-webfont.ttf -------------------------------------------------------------------------------- /assets/fonts/feather/feather-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/fonts/feather/feather-webfont.woff -------------------------------------------------------------------------------- /assets/images/async_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/async_icon.png -------------------------------------------------------------------------------- /assets/images/browsers/aol-explorer.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/browsers/blackberry.svg: -------------------------------------------------------------------------------- 1 | blackberryCreated with Sketch.Layer 1 -------------------------------------------------------------------------------- /assets/images/crypto-currencies/bitcoin.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/crypto-currencies/dash.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/crypto-currencies/eos.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/crypto-currencies/ethereum.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/crypto-currencies/litecoin.svg: -------------------------------------------------------------------------------- 1 | Litecoin -------------------------------------------------------------------------------- /assets/images/crypto-currencies/ripple.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/docker_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/docker_icon.png -------------------------------------------------------------------------------- /assets/images/encrypt_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/encrypt_icon.png -------------------------------------------------------------------------------- /assets/images/faces/female/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/1.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/10.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/11.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/12.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/13.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/14.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/15.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/16.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/17.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/18.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/19.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/2.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/20.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/21.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/22.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/23.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/23.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/24.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/24.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/25.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/25.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/26.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/26.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/27.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/27.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/28.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/28.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/29.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/29.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/3.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/30.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/30.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/31.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/31.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/32.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/32.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/4.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/5.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/6.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/7.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/8.jpg -------------------------------------------------------------------------------- /assets/images/faces/female/9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/female/9.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/1.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/10.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/11.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/12.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/13.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/14.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/15.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/16.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/17.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/18.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/2.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/20.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/21.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/24.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/24.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/25.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/25.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/26.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/26.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/27.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/27.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/28.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/28.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/29.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/29.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/3.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/30.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/30.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/31.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/31.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/32.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/32.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/33.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/33.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/34.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/34.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/35.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/35.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/36.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/36.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/37.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/37.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/38.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/38.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/39.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/39.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/4.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/40.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/40.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/41.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/41.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/42.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/42.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/43.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/43.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/5.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/6.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/7.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/8.jpg -------------------------------------------------------------------------------- /assets/images/faces/male/9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/faces/male/9.jpg -------------------------------------------------------------------------------- /assets/images/flags/ae.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ag.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/am.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/at.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ax.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/az.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/bb.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/bd.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/be.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/bf.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/bg.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/bh.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/bj.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/bl.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/bq.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/bs.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/bv.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/bw.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ca.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/images/flags/cd.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/cf.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/cg.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ch.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ci.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/cl.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/cm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/cn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/co.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/cr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/cu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/cw.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/cz.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/de.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/dj.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/dk.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/dz.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ee.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/eh.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/eu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/fi.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/fm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/fo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/fr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ga.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/gb-eng.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/gb-sct.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/gb.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/gf.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/gg.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/gh.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/gl.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/gm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/gn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/gp.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/gr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/gw.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/gy.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/hn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/hu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/id.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/il.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/in.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/is.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/it.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/jm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/jo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/jp.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/km.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/kn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/kp.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/kw.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/la.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/lc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/lr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/lt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/lu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/lv.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ly.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ma.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/mc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/mf.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/mg.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/mh.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/mk.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ml.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/mm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/mq.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/mr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/mu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/mv.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/na.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/nc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ne.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ng.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/nl.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/no.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/nr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/pa.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/pe.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ph.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/pk.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/pl.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/pm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/pr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ps.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/pw.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/qa.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/re.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ro.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ru.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/rw.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/sb.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/sc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/sd.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/se.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/sg.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/sj.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/sl.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/sn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/so.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/sr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ss.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/st.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/sy.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/td.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/tf.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/tg.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/th.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/tk.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/tl.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/tn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/to.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/tr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/tt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/tw.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/tz.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ua.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/vc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ve.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/vn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/wf.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ws.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/ye.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/yt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/flags/za.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/images/install_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/install_icon.png -------------------------------------------------------------------------------- /assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/logo.png -------------------------------------------------------------------------------- /assets/images/open_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silverbackhq/silverback/fcdeccd6f58abed2a10be7b34b2e2bfc954499bb/assets/images/open_icon.png -------------------------------------------------------------------------------- /assets/plugins/charts-c3/plugin.js: -------------------------------------------------------------------------------- 1 | require.config({ 2 | shim: { 3 | 'c3': ['d3', 'core'], 4 | 'd3': ['core'], 5 | }, 6 | paths: { 7 | 'd3': 'static/plugins/charts-c3/js/d3.v3.min', 8 | 'c3': 'static/plugins/charts-c3/js/c3.min', 9 | } 10 | }); -------------------------------------------------------------------------------- /assets/plugins/fullcalendar/plugin.js: -------------------------------------------------------------------------------- 1 | require.config({ 2 | shim: { 3 | 'fullcalendar': ['moment', 'jquery'], 4 | }, 5 | paths: { 6 | 'fullcalendar': 'static/plugins/fullcalendar/js/fullcalendar.min', 7 | 'moment': 'static/plugins/fullcalendar/js/moment.min', 8 | } 9 | }); -------------------------------------------------------------------------------- /assets/plugins/input-mask/plugin.js: -------------------------------------------------------------------------------- 1 | require.config({ 2 | shim: { 3 | 'input-mask': ['jquery'] 4 | }, 5 | paths: { 6 | 'input-mask': 'static/plugins/input-mask/js/jquery.mask.min' 7 | } 8 | }); 9 | 10 | require(['input-mask', 'jquery'], function(mask, $){ 11 | $(document).ready(function(){ 12 | $.applyDataMask('[data-mask]'); 13 | }); 14 | }); -------------------------------------------------------------------------------- /assets/plugins/pace/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | -------------------------------------------------------------------------------- /assets/plugins/pace/.hsdoc: -------------------------------------------------------------------------------- 1 | title: "Pace" 2 | source: "pace.coffee" 3 | assets: "{templates/*,themes/*,docs/welcome/*,docs/lib/*,docs/resources/*.css,*.js}" 4 | -------------------------------------------------------------------------------- /assets/plugins/pace/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013 HubSpot, Inc. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | 9 | -------------------------------------------------------------------------------- /assets/plugins/pace/README.md: -------------------------------------------------------------------------------- 1 | pace 2 | ==== 3 | 4 | 5 | 6 | 7 | 8 | An automatic web page progress bar. 9 | 10 | Include [pace.js](https://raw.github.com/HubSpot/pace/v0.7.1/pace.min.js) and a [theme](http://github.hubspot.com/pace/docs/welcome/) of your choice to your page and you are done! 11 | 12 | Pace will automatically monitor your Ajax requests, event loop lag, document ready state and elements on your page to decide on the progress. 13 | 14 | If you use AMD or Browserify, require pace.js and call `pace.start()` as early in the loading process as is possible. 15 | 16 | ### [Demo](http://github.hubspot.com/pace/docs/welcome/) 17 | 18 | ### [Documentation](http://github.hubspot.com/pace/) 19 | 20 | ### Example 21 | 22 | ```html 23 | 24 | 25 | 26 | 27 | ``` 28 | -------------------------------------------------------------------------------- /assets/plugins/pace/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "PACE", 3 | "main": "pace.js", 4 | "version": "0.7.8", 5 | "homepage": "http://github.hubspot.com/pace/docs/welcome", 6 | "authors": [ 7 | "Zack Bloom ", 8 | "Adam Schwartz " 9 | ], 10 | "description": "Automatic page load progress bar", 11 | "keywords": [ 12 | "loading", 13 | "load", 14 | "pageload", 15 | "progress", 16 | "activity", 17 | "ajax", 18 | "spinner", 19 | "progress", 20 | "bar", 21 | "automatic", 22 | "client-side" 23 | ], 24 | "license": "MIT", 25 | "ignore": [ 26 | ".*", 27 | "Gruntfile.coffee", 28 | "bower_components", 29 | "docs", 30 | "node_modules", 31 | "package.json", 32 | "templates", 33 | "tests" 34 | ] 35 | } 36 | -------------------------------------------------------------------------------- /assets/plugins/pace/docs/resources/templates/index.jade: -------------------------------------------------------------------------------- 1 | extends index 2 | 3 | append early-head 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/plugins/pace/docs/resources/templates/page.jade: -------------------------------------------------------------------------------- 1 | extends index 2 | 3 | append early-head 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/plugins/pace/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pace", 3 | "version": "0.7.8", 4 | "description": "Automatic page load progress bar", 5 | "authors": [ 6 | "Zack Bloom ", 7 | "Adam Schwartz " 8 | ], 9 | "license": "MIT", 10 | "main": "pace.js", 11 | "repository": { 12 | "type": "git", 13 | "url": "git://github.com/HubSpot/pace.git" 14 | }, 15 | "devDependencies": { 16 | "grunt-contrib-coffee": "0.7.0", 17 | "coffee-script": "1.6.3", 18 | "grunt-contrib-uglify": "0.2.7", 19 | "grunt-cli": "0.1.13", 20 | "grunt": "0.4.5", 21 | "grunt-contrib-watch": "0.5.3", 22 | "color": "0.4.4" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /assets/plugins/pace/plugin.js: -------------------------------------------------------------------------------- 1 | require.config({ 2 | paths: { 3 | 'pace': 'static/plugins/pace/pace.min' 4 | } 5 | }); 6 | 7 | require(['pace'], function (pace) { 8 | pace.start({document: false}); 9 | }); -------------------------------------------------------------------------------- /assets/plugins/pace/templates/pace-theme-big-counter.tmpl.css: -------------------------------------------------------------------------------- 1 | .pace { 2 | -webkit-pointer-events: none; 3 | pointer-events: none; 4 | -webkit-user-select: none; 5 | -moz-user-select: none; 6 | user-select: none; 7 | } 8 | 9 | .pace.pace-inactive .pace-progress { 10 | display: none; 11 | } 12 | 13 | .pace .pace-progress { 14 | position: fixed; 15 | z-index: 2000; 16 | top: 0; 17 | right: 0; 18 | height: 5rem; 19 | width: 5rem; 20 | } 21 | 22 | .pace .pace-progress:after { 23 | display: block; 24 | position: absolute; 25 | top: 0; 26 | right: .5rem; 27 | content: attr(data-progress-text); 28 | font-family: "Helvetica Neue", sans-serif; 29 | font-weight: 100; 30 | font-size: 5rem; 31 | line-height: 1; 32 | text-align: right; 33 | color: `Color(args.color || '#000').clearer(0.8).rgbString()`; 34 | } 35 | -------------------------------------------------------------------------------- /assets/plugins/pace/templates/pace-theme-center-simple.tmpl.css: -------------------------------------------------------------------------------- 1 | .pace { 2 | -webkit-pointer-events: none; 3 | pointer-events: none; 4 | -webkit-user-select: none; 5 | -moz-user-select: none; 6 | user-select: none; 7 | 8 | z-index: 2000; 9 | position: fixed; 10 | margin: auto; 11 | top: 0; 12 | left: 0; 13 | right: 0; 14 | bottom: 0; 15 | height: 5px; 16 | width: 200px; 17 | background: #fff; 18 | border: 1px solid `args.color || "#29d"`; 19 | } 20 | 21 | .pace .pace-progress { 22 | -webkit-box-sizing: border-box; 23 | -moz-box-sizing: border-box; 24 | -ms-box-sizing: border-box; 25 | -o-box-sizing: border-box; 26 | box-sizing: border-box; 27 | 28 | -webkit-transform: translate3d(0, 0, 0); 29 | -moz-transform: translate3d(0, 0, 0); 30 | -ms-transform: translate3d(0, 0, 0); 31 | -o-transform: translate3d(0, 0, 0); 32 | transform: translate3d(0, 0, 0); 33 | 34 | max-width: 200px; 35 | position: fixed; 36 | z-index: 2000; 37 | display: block; 38 | position: absolute; 39 | left: 0px; 40 | top: 0px; 41 | height: 100%; 42 | background: `args.color || "#29d"`; 43 | } 44 | 45 | .pace.pace-inactive { 46 | display: none; 47 | } -------------------------------------------------------------------------------- /assets/plugins/pace/templates/pace-theme-fill-left.tmpl.css: -------------------------------------------------------------------------------- 1 | .pace { 2 | -webkit-pointer-events: none; 3 | pointer-events: none; 4 | -webkit-user-select: none; 5 | -moz-user-select: none; 6 | user-select: none; 7 | } 8 | 9 | .pace-inactive { 10 | display: none; 11 | } 12 | 13 | .pace .pace-progress { 14 | background-color: `Color(args.color).clearer(0.8).rgbString() || "rgba(0, 0, 0, 0.2)"`; 15 | position: fixed; 16 | z-index: -1; 17 | top: 0; 18 | left: 0; 19 | bottom: 0; 20 | } 21 | -------------------------------------------------------------------------------- /assets/plugins/pace/templates/pace-theme-flat-top.tmpl.css: -------------------------------------------------------------------------------- 1 | .pace { 2 | -webkit-pointer-events: none; 3 | pointer-events: none; 4 | -webkit-user-select: none; 5 | -moz-user-select: none; 6 | user-select: none; 7 | } 8 | 9 | .pace .pace-progress { 10 | display: block; 11 | position: fixed; 12 | z-index: 2000; 13 | top: 0; 14 | left: 0; 15 | height: 12px; 16 | background: `args.color || "#29d"`; 17 | 18 | -webkit-transition: -webkit-transform .3s; 19 | transition: transform .3s; 20 | 21 | -webkit-transform: translateY(-50px); 22 | transform: translateY(-50px); 23 | 24 | pointer-events: none; 25 | } 26 | 27 | .pace.pace-active .pace-progress { 28 | -webkit-transform: translateY(0); 29 | transform: translateY(0); 30 | } 31 | -------------------------------------------------------------------------------- /assets/plugins/pace/templates/pace-theme-minimal.tmpl.css: -------------------------------------------------------------------------------- 1 | .pace .pace-progress { 2 | background: `args.color || "#29d"`; 3 | position: fixed; 4 | z-index: 2000; 5 | top: 0; 6 | left: 0; 7 | height: 2px; 8 | 9 | -webkit-transition: width 1s; 10 | -moz-transition: width 1s; 11 | -o-transition: width 1s; 12 | transition: width 1s; 13 | } 14 | 15 | .pace-inactive { 16 | display: none; 17 | } 18 | -------------------------------------------------------------------------------- /assets/plugins/pace/tests/demo.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/black/pace-theme-big-counter.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace.pace-inactive .pace-progress { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | position: fixed; 16 | z-index: 2000; 17 | top: 0; 18 | right: 0; 19 | height: 5rem; 20 | width: 5rem; 21 | } 22 | 23 | .pace .pace-progress:after { 24 | display: block; 25 | position: absolute; 26 | top: 0; 27 | right: .5rem; 28 | content: attr(data-progress-text); 29 | font-family: "Helvetica Neue", sans-serif; 30 | font-weight: 100; 31 | font-size: 5rem; 32 | line-height: 1; 33 | text-align: right; 34 | color: rgba(0, 0, 0, 0.19999999999999996); 35 | } 36 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/black/pace-theme-fill-left.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace-inactive { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | background-color: rgba(0, 0, 0, 0.19999999999999996); 16 | position: fixed; 17 | z-index: -1; 18 | top: 0; 19 | left: 0; 20 | bottom: 0; 21 | } 22 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/black/pace-theme-flat-top.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace .pace-progress { 11 | display: block; 12 | position: fixed; 13 | z-index: 2000; 14 | top: 0; 15 | left: 0; 16 | height: 12px; 17 | background: #000000; 18 | 19 | -webkit-transition: -webkit-transform .3s; 20 | transition: transform .3s; 21 | 22 | -webkit-transform: translateY(-50px); 23 | transform: translateY(-50px); 24 | 25 | pointer-events: none; 26 | } 27 | 28 | .pace.pace-active .pace-progress { 29 | -webkit-transform: translateY(0); 30 | transform: translateY(0); 31 | } 32 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/black/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace .pace-progress { 3 | background: #000000; 4 | position: fixed; 5 | z-index: 2000; 6 | top: 0; 7 | left: 0; 8 | height: 2px; 9 | 10 | -webkit-transition: width 1s; 11 | -moz-transition: width 1s; 12 | -o-transition: width 1s; 13 | transition: width 1s; 14 | } 15 | 16 | .pace-inactive { 17 | display: none; 18 | } 19 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/blue/pace-theme-big-counter.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace.pace-inactive .pace-progress { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | position: fixed; 16 | z-index: 2000; 17 | top: 0; 18 | right: 0; 19 | height: 5rem; 20 | width: 5rem; 21 | } 22 | 23 | .pace .pace-progress:after { 24 | display: block; 25 | position: absolute; 26 | top: 0; 27 | right: .5rem; 28 | content: attr(data-progress-text); 29 | font-family: "Helvetica Neue", sans-serif; 30 | font-weight: 100; 31 | font-size: 5rem; 32 | line-height: 1; 33 | text-align: right; 34 | color: rgba(34, 153, 221, 0.19999999999999996); 35 | } 36 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/blue/pace-theme-fill-left.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace-inactive { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | background-color: rgba(34, 153, 221, 0.19999999999999996); 16 | position: fixed; 17 | z-index: -1; 18 | top: 0; 19 | left: 0; 20 | bottom: 0; 21 | } 22 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/blue/pace-theme-flat-top.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace .pace-progress { 11 | display: block; 12 | position: fixed; 13 | z-index: 2000; 14 | top: 0; 15 | left: 0; 16 | height: 12px; 17 | background: #2299dd; 18 | 19 | -webkit-transition: -webkit-transform .3s; 20 | transition: transform .3s; 21 | 22 | -webkit-transform: translateY(-50px); 23 | transform: translateY(-50px); 24 | 25 | pointer-events: none; 26 | } 27 | 28 | .pace.pace-active .pace-progress { 29 | -webkit-transform: translateY(0); 30 | transform: translateY(0); 31 | } 32 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/blue/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace .pace-progress { 3 | background: #2299dd; 4 | position: fixed; 5 | z-index: 2000; 6 | top: 0; 7 | left: 0; 8 | height: 2px; 9 | 10 | -webkit-transition: width 1s; 11 | -moz-transition: width 1s; 12 | -o-transition: width 1s; 13 | transition: width 1s; 14 | } 15 | 16 | .pace-inactive { 17 | display: none; 18 | } 19 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/green/pace-theme-big-counter.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace.pace-inactive .pace-progress { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | position: fixed; 16 | z-index: 2000; 17 | top: 0; 18 | right: 0; 19 | height: 5rem; 20 | width: 5rem; 21 | } 22 | 23 | .pace .pace-progress:after { 24 | display: block; 25 | position: absolute; 26 | top: 0; 27 | right: .5rem; 28 | content: attr(data-progress-text); 29 | font-family: "Helvetica Neue", sans-serif; 30 | font-weight: 100; 31 | font-size: 5rem; 32 | line-height: 1; 33 | text-align: right; 34 | color: rgba(34, 223, 128, 0.19999999999999996); 35 | } 36 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/green/pace-theme-fill-left.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace-inactive { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | background-color: rgba(34, 223, 128, 0.19999999999999996); 16 | position: fixed; 17 | z-index: -1; 18 | top: 0; 19 | left: 0; 20 | bottom: 0; 21 | } 22 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/green/pace-theme-flat-top.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace .pace-progress { 11 | display: block; 12 | position: fixed; 13 | z-index: 2000; 14 | top: 0; 15 | left: 0; 16 | height: 12px; 17 | background: #22df80; 18 | 19 | -webkit-transition: -webkit-transform .3s; 20 | transition: transform .3s; 21 | 22 | -webkit-transform: translateY(-50px); 23 | transform: translateY(-50px); 24 | 25 | pointer-events: none; 26 | } 27 | 28 | .pace.pace-active .pace-progress { 29 | -webkit-transform: translateY(0); 30 | transform: translateY(0); 31 | } 32 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/green/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace .pace-progress { 3 | background: #22df80; 4 | position: fixed; 5 | z-index: 2000; 6 | top: 0; 7 | left: 0; 8 | height: 2px; 9 | 10 | -webkit-transition: width 1s; 11 | -moz-transition: width 1s; 12 | -o-transition: width 1s; 13 | transition: width 1s; 14 | } 15 | 16 | .pace-inactive { 17 | display: none; 18 | } 19 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/orange/pace-theme-big-counter.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace.pace-inactive .pace-progress { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | position: fixed; 16 | z-index: 2000; 17 | top: 0; 18 | right: 0; 19 | height: 5rem; 20 | width: 5rem; 21 | } 22 | 23 | .pace .pace-progress:after { 24 | display: block; 25 | position: absolute; 26 | top: 0; 27 | right: .5rem; 28 | content: attr(data-progress-text); 29 | font-family: "Helvetica Neue", sans-serif; 30 | font-weight: 100; 31 | font-size: 5rem; 32 | line-height: 1; 33 | text-align: right; 34 | color: rgba(235, 122, 85, 0.19999999999999996); 35 | } 36 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/orange/pace-theme-fill-left.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace-inactive { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | background-color: rgba(235, 122, 85, 0.19999999999999996); 16 | position: fixed; 17 | z-index: -1; 18 | top: 0; 19 | left: 0; 20 | bottom: 0; 21 | } 22 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/orange/pace-theme-flat-top.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace .pace-progress { 11 | display: block; 12 | position: fixed; 13 | z-index: 2000; 14 | top: 0; 15 | left: 0; 16 | height: 12px; 17 | background: #eb7a55; 18 | 19 | -webkit-transition: -webkit-transform .3s; 20 | transition: transform .3s; 21 | 22 | -webkit-transform: translateY(-50px); 23 | transform: translateY(-50px); 24 | 25 | pointer-events: none; 26 | } 27 | 28 | .pace.pace-active .pace-progress { 29 | -webkit-transform: translateY(0); 30 | transform: translateY(0); 31 | } 32 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/orange/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace .pace-progress { 3 | background: #eb7a55; 4 | position: fixed; 5 | z-index: 2000; 6 | top: 0; 7 | left: 0; 8 | height: 2px; 9 | 10 | -webkit-transition: width 1s; 11 | -moz-transition: width 1s; 12 | -o-transition: width 1s; 13 | transition: width 1s; 14 | } 15 | 16 | .pace-inactive { 17 | display: none; 18 | } 19 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/pace-theme-big-counter.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace.pace-inactive .pace-progress { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | position: fixed; 16 | z-index: 2000; 17 | top: 0; 18 | right: 0; 19 | height: 5rem; 20 | width: 5rem; 21 | } 22 | 23 | .pace .pace-progress:after { 24 | display: block; 25 | position: absolute; 26 | top: 0; 27 | right: .5rem; 28 | content: attr(data-progress-text); 29 | font-family: "Helvetica Neue", sans-serif; 30 | font-weight: 100; 31 | font-size: 5rem; 32 | line-height: 1; 33 | text-align: right; 34 | color: rgba(0, 0, 0, 0.19999999999999996); 35 | } 36 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/pace-theme-fill-left.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace .pace-progress { 11 | background-color: rgba(0, 0, 0, 0.19999999999999996); 12 | position: fixed; 13 | z-index: -1; 14 | top: 0; 15 | left: 0; 16 | bottom: 0; 17 | 18 | -webkit-transition: width 1s; 19 | -moz-transition: width 1s; 20 | -o-transition: width 1s; 21 | transition: width 1s; 22 | } 23 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/pace-theme-flat-top.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace .pace-progress { 11 | display: block; 12 | position: fixed; 13 | z-index: 2000; 14 | top: 0; 15 | left: 0; 16 | height: 12px; 17 | background: #29d; 18 | 19 | -webkit-transition: -webkit-transform .3s, width 1s; 20 | -moz-transition: width 1s; 21 | -o-transform: width 1s; 22 | transition: transform .3s, width 1s; 23 | 24 | -webkit-transform: translateY(-50px); 25 | transform: translateY(-50px); 26 | 27 | pointer-events: none; 28 | } 29 | 30 | .pace.pace-active .pace-progress { 31 | -webkit-transform: translateY(0); 32 | transform: translateY(0); 33 | } -------------------------------------------------------------------------------- /assets/plugins/pace/themes/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace .pace-progress { 3 | background: #29d; 4 | position: fixed; 5 | z-index: 2000; 6 | top: 0; 7 | left: 0; 8 | height: 2px; 9 | 10 | -webkit-transition: width 1s; 11 | -moz-transition: width 1s; 12 | -o-transition: width 1s; 13 | transition: width 1s; 14 | } 15 | 16 | .pace-inactive { 17 | display: none; 18 | } 19 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/pink/pace-theme-big-counter.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace.pace-inactive .pace-progress { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | position: fixed; 16 | z-index: 2000; 17 | top: 0; 18 | right: 0; 19 | height: 5rem; 20 | width: 5rem; 21 | } 22 | 23 | .pace .pace-progress:after { 24 | display: block; 25 | position: absolute; 26 | top: 0; 27 | right: .5rem; 28 | content: attr(data-progress-text); 29 | font-family: "Helvetica Neue", sans-serif; 30 | font-weight: 100; 31 | font-size: 5rem; 32 | line-height: 1; 33 | text-align: right; 34 | color: rgba(233, 15, 146, 0.19999999999999996); 35 | } 36 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/pink/pace-theme-fill-left.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace-inactive { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | background-color: rgba(233, 15, 146, 0.19999999999999996); 16 | position: fixed; 17 | z-index: -1; 18 | top: 0; 19 | left: 0; 20 | bottom: 0; 21 | } 22 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/pink/pace-theme-flat-top.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace .pace-progress { 11 | display: block; 12 | position: fixed; 13 | z-index: 2000; 14 | top: 0; 15 | left: 0; 16 | height: 12px; 17 | background: #e90f92; 18 | 19 | -webkit-transition: -webkit-transform .3s; 20 | transition: transform .3s; 21 | 22 | -webkit-transform: translateY(-50px); 23 | transform: translateY(-50px); 24 | 25 | pointer-events: none; 26 | } 27 | 28 | .pace.pace-active .pace-progress { 29 | -webkit-transform: translateY(0); 30 | transform: translateY(0); 31 | } 32 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/pink/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace .pace-progress { 3 | background: #e90f92; 4 | position: fixed; 5 | z-index: 2000; 6 | top: 0; 7 | left: 0; 8 | height: 2px; 9 | 10 | -webkit-transition: width 1s; 11 | -moz-transition: width 1s; 12 | -o-transition: width 1s; 13 | transition: width 1s; 14 | } 15 | 16 | .pace-inactive { 17 | display: none; 18 | } 19 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/purple/pace-theme-big-counter.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace.pace-inactive .pace-progress { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | position: fixed; 16 | z-index: 2000; 17 | top: 0; 18 | right: 0; 19 | height: 5rem; 20 | width: 5rem; 21 | } 22 | 23 | .pace .pace-progress:after { 24 | display: block; 25 | position: absolute; 26 | top: 0; 27 | right: .5rem; 28 | content: attr(data-progress-text); 29 | font-family: "Helvetica Neue", sans-serif; 30 | font-weight: 100; 31 | font-size: 5rem; 32 | line-height: 1; 33 | text-align: right; 34 | color: rgba(124, 96, 224, 0.19999999999999996); 35 | } 36 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/purple/pace-theme-fill-left.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace-inactive { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | background-color: rgba(124, 96, 224, 0.19999999999999996); 16 | position: fixed; 17 | z-index: -1; 18 | top: 0; 19 | left: 0; 20 | bottom: 0; 21 | } 22 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/purple/pace-theme-flat-top.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace .pace-progress { 11 | display: block; 12 | position: fixed; 13 | z-index: 2000; 14 | top: 0; 15 | left: 0; 16 | height: 12px; 17 | background: #7c60e0; 18 | 19 | -webkit-transition: -webkit-transform .3s; 20 | transition: transform .3s; 21 | 22 | -webkit-transform: translateY(-50px); 23 | transform: translateY(-50px); 24 | 25 | pointer-events: none; 26 | } 27 | 28 | .pace.pace-active .pace-progress { 29 | -webkit-transform: translateY(0); 30 | transform: translateY(0); 31 | } 32 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/purple/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace .pace-progress { 3 | background: #7c60e0; 4 | position: fixed; 5 | z-index: 2000; 6 | top: 0; 7 | left: 0; 8 | height: 2px; 9 | 10 | -webkit-transition: width 1s; 11 | -moz-transition: width 1s; 12 | -o-transition: width 1s; 13 | transition: width 1s; 14 | } 15 | 16 | .pace-inactive { 17 | display: none; 18 | } 19 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/red/pace-theme-big-counter.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace.pace-inactive .pace-progress { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | position: fixed; 16 | z-index: 2000; 17 | top: 0; 18 | right: 0; 19 | height: 5rem; 20 | width: 5rem; 21 | } 22 | 23 | .pace .pace-progress:after { 24 | display: block; 25 | position: absolute; 26 | top: 0; 27 | right: .5rem; 28 | content: attr(data-progress-text); 29 | font-family: "Helvetica Neue", sans-serif; 30 | font-weight: 100; 31 | font-size: 5rem; 32 | line-height: 1; 33 | text-align: right; 34 | color: rgba(238, 49, 72, 0.19999999999999996); 35 | } 36 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/red/pace-theme-fill-left.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace-inactive { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | background-color: rgba(238, 49, 72, 0.19999999999999996); 16 | position: fixed; 17 | z-index: -1; 18 | top: 0; 19 | left: 0; 20 | bottom: 0; 21 | } 22 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/red/pace-theme-flat-top.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace .pace-progress { 11 | display: block; 12 | position: fixed; 13 | z-index: 2000; 14 | top: 0; 15 | left: 0; 16 | height: 12px; 17 | background: #ee3148; 18 | 19 | -webkit-transition: -webkit-transform .3s; 20 | transition: transform .3s; 21 | 22 | -webkit-transform: translateY(-50px); 23 | transform: translateY(-50px); 24 | 25 | pointer-events: none; 26 | } 27 | 28 | .pace.pace-active .pace-progress { 29 | -webkit-transform: translateY(0); 30 | transform: translateY(0); 31 | } 32 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/red/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace .pace-progress { 3 | background: #ee3148; 4 | position: fixed; 5 | z-index: 2000; 6 | top: 0; 7 | left: 0; 8 | height: 2px; 9 | 10 | -webkit-transition: width 1s; 11 | -moz-transition: width 1s; 12 | -o-transition: width 1s; 13 | transition: width 1s; 14 | } 15 | 16 | .pace-inactive { 17 | display: none; 18 | } 19 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/silver/pace-theme-big-counter.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace.pace-inactive .pace-progress { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | position: fixed; 16 | z-index: 2000; 17 | top: 0; 18 | right: 0; 19 | height: 5rem; 20 | width: 5rem; 21 | } 22 | 23 | .pace .pace-progress:after { 24 | display: block; 25 | position: absolute; 26 | top: 0; 27 | right: .5rem; 28 | content: attr(data-progress-text); 29 | font-family: "Helvetica Neue", sans-serif; 30 | font-weight: 100; 31 | font-size: 5rem; 32 | line-height: 1; 33 | text-align: right; 34 | color: rgba(214, 214, 214, 0.19999999999999996); 35 | } 36 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/silver/pace-theme-fill-left.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace-inactive { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | background-color: rgba(214, 214, 214, 0.19999999999999996); 16 | position: fixed; 17 | z-index: -1; 18 | top: 0; 19 | left: 0; 20 | bottom: 0; 21 | } 22 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/silver/pace-theme-flat-top.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace .pace-progress { 11 | display: block; 12 | position: fixed; 13 | z-index: 2000; 14 | top: 0; 15 | left: 0; 16 | height: 12px; 17 | background: #d6d6d6; 18 | 19 | -webkit-transition: -webkit-transform .3s; 20 | transition: transform .3s; 21 | 22 | -webkit-transform: translateY(-50px); 23 | transform: translateY(-50px); 24 | 25 | pointer-events: none; 26 | } 27 | 28 | .pace.pace-active .pace-progress { 29 | -webkit-transform: translateY(0); 30 | transform: translateY(0); 31 | } 32 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/silver/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace .pace-progress { 3 | background: #d6d6d6; 4 | position: fixed; 5 | z-index: 2000; 6 | top: 0; 7 | left: 0; 8 | height: 2px; 9 | 10 | -webkit-transition: width 1s; 11 | -moz-transition: width 1s; 12 | -o-transition: width 1s; 13 | transition: width 1s; 14 | } 15 | 16 | .pace-inactive { 17 | display: none; 18 | } 19 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/white/pace-theme-big-counter.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace.pace-inactive .pace-progress { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | position: fixed; 16 | z-index: 2000; 17 | top: 0; 18 | right: 0; 19 | height: 5rem; 20 | width: 5rem; 21 | } 22 | 23 | .pace .pace-progress:after { 24 | display: block; 25 | position: absolute; 26 | top: 0; 27 | right: .5rem; 28 | content: attr(data-progress-text); 29 | font-family: "Helvetica Neue", sans-serif; 30 | font-weight: 100; 31 | font-size: 5rem; 32 | line-height: 1; 33 | text-align: right; 34 | color: rgba(255, 255, 255, 0.19999999999999996); 35 | } 36 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/white/pace-theme-fill-left.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace-inactive { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | background-color: rgba(255, 255, 255, 0.19999999999999996); 16 | position: fixed; 17 | z-index: -1; 18 | top: 0; 19 | left: 0; 20 | bottom: 0; 21 | } 22 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/white/pace-theme-flat-top.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace .pace-progress { 11 | display: block; 12 | position: fixed; 13 | z-index: 2000; 14 | top: 0; 15 | left: 0; 16 | height: 12px; 17 | background: #ffffff; 18 | 19 | -webkit-transition: -webkit-transform .3s; 20 | transition: transform .3s; 21 | 22 | -webkit-transform: translateY(-50px); 23 | transform: translateY(-50px); 24 | 25 | pointer-events: none; 26 | } 27 | 28 | .pace.pace-active .pace-progress { 29 | -webkit-transform: translateY(0); 30 | transform: translateY(0); 31 | } 32 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/white/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace .pace-progress { 3 | background: #ffffff; 4 | position: fixed; 5 | z-index: 2000; 6 | top: 0; 7 | left: 0; 8 | height: 2px; 9 | 10 | -webkit-transition: width 1s; 11 | -moz-transition: width 1s; 12 | -o-transition: width 1s; 13 | transition: width 1s; 14 | } 15 | 16 | .pace-inactive { 17 | display: none; 18 | } 19 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/yellow/pace-theme-big-counter.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace.pace-inactive .pace-progress { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | position: fixed; 16 | z-index: 2000; 17 | top: 0; 18 | right: 0; 19 | height: 5rem; 20 | width: 5rem; 21 | } 22 | 23 | .pace .pace-progress:after { 24 | display: block; 25 | position: absolute; 26 | top: 0; 27 | right: .5rem; 28 | content: attr(data-progress-text); 29 | font-family: "Helvetica Neue", sans-serif; 30 | font-weight: 100; 31 | font-size: 5rem; 32 | line-height: 1; 33 | text-align: right; 34 | color: rgba(252, 210, 90, 0.19999999999999996); 35 | } 36 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/yellow/pace-theme-fill-left.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace-inactive { 11 | display: none; 12 | } 13 | 14 | .pace .pace-progress { 15 | background-color: rgba(252, 210, 90, 0.19999999999999996); 16 | position: fixed; 17 | z-index: -1; 18 | top: 0; 19 | left: 0; 20 | bottom: 0; 21 | } 22 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/yellow/pace-theme-flat-top.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace { 3 | -webkit-pointer-events: none; 4 | pointer-events: none; 5 | -webkit-user-select: none; 6 | -moz-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | .pace .pace-progress { 11 | display: block; 12 | position: fixed; 13 | z-index: 2000; 14 | top: 0; 15 | left: 0; 16 | height: 12px; 17 | background: #fcd25a; 18 | 19 | -webkit-transition: -webkit-transform .3s; 20 | transition: transform .3s; 21 | 22 | -webkit-transform: translateY(-50px); 23 | transform: translateY(-50px); 24 | 25 | pointer-events: none; 26 | } 27 | 28 | .pace.pace-active .pace-progress { 29 | -webkit-transform: translateY(0); 30 | transform: translateY(0); 31 | } 32 | -------------------------------------------------------------------------------- /assets/plugins/pace/themes/yellow/pace-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* This is a compiled file, you should be editing the file in the templates directory */ 2 | .pace .pace-progress { 3 | background: #fcd25a; 4 | position: fixed; 5 | z-index: 2000; 6 | top: 0; 7 | left: 0; 8 | height: 2px; 9 | 10 | -webkit-transition: width 1s; 11 | -moz-transition: width 1s; 12 | -o-transition: width 1s; 13 | transition: width 1s; 14 | } 15 | 16 | .pace-inactive { 17 | display: none; 18 | } 19 | -------------------------------------------------------------------------------- /assets/plugins/prismjs/plugin.js: -------------------------------------------------------------------------------- 1 | require.config({ 2 | paths: { 3 | 'prismjs': 'static/plugins/prismjs/js/prism.pack', 4 | }, 5 | shim: { 6 | prism: { 7 | exports: "Prism" 8 | } 9 | } 10 | }); 11 | 12 | require(['prismjs', 'jquery'], function(prismjs, $){ 13 | $(document).ready(function(){ 14 | // $('[class^="language-"]').each(function(i, block) { 15 | // Prism.highlightElement(block); 16 | // }); 17 | }); 18 | }); -------------------------------------------------------------------------------- /assets/plugins/toastr/plugin.js: -------------------------------------------------------------------------------- 1 | require.config({ 2 | paths: { 3 | 'toastr': 'static/plugins/toastr/toastr' 4 | } 5 | }); 6 | 7 | require(['toastr'], function (toastr) { 8 | toastr.options = { 9 | "closeButton": true, 10 | "debug": false, 11 | "newestOnTop": false, 12 | "progressBar": false, 13 | "positionClass": "toast-top-center", 14 | "preventDuplicates": false, 15 | "onclick": null, 16 | "showDuration": "10000", 17 | "hideDuration": "1000", 18 | "timeOut": "10000", 19 | "extendedTimeOut": "1000", 20 | "showEasing": "swing", 21 | "hideEasing": "linear", 22 | "showMethod": "fadeIn", 23 | "hideMethod": "fadeOut" 24 | }; 25 | }); -------------------------------------------------------------------------------- /deployments/docker-compose/README.md: -------------------------------------------------------------------------------- 1 | ## Install on Docker Compose 2 | 3 | 4 | #### Requirements 5 | 6 | - Python 3 or later 7 | - A Supported Database: MySQL, PostgreSQL. 8 | - Redis Server (optional for notifications). 9 | - RabbitMQ Server (optional for notifications). 10 | 11 | 12 | #### Steps 13 | -------------------------------------------------------------------------------- /deployments/k8s/README.md: -------------------------------------------------------------------------------- 1 | ## Install on Kubernetes 2 | 3 | 4 | #### Requirements 5 | 6 | - Python 3 or later 7 | - A Supported Database: MySQL, PostgreSQL. 8 | - Redis Server (optional for notifications). 9 | - RabbitMQ Server (optional for notifications). 10 | 11 | 12 | #### Steps 13 | -------------------------------------------------------------------------------- /deployments/ubuntu-18.04/README.md: -------------------------------------------------------------------------------- 1 | ## Install on Ubuntu 18.04 2 | 3 | 4 | #### Requirements 5 | 6 | - Python 3 or later 7 | - A Supported Database: MySQL, PostgreSQL. 8 | - Redis Server (optional for notifications). 9 | - RabbitMQ Server (optional for notifications). 10 | 11 | 12 | #### Steps 13 | -------------------------------------------------------------------------------- /docker/nginx/nginx.conf: -------------------------------------------------------------------------------- 1 | server { 2 | listen 80 default_server; 3 | listen [::]:80 default_server ipv6only=on; 4 | 5 | access_log /code/storage/logs/access.log; 6 | 7 | error_log /code/storage/logs/error.log; 8 | 9 | location = /favicon.ico { access_log off; log_not_found off; } 10 | 11 | location /static { 12 | alias /code/static; 13 | } 14 | 15 | location / { 16 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 17 | proxy_set_header Host $http_host; 18 | proxy_redirect off; 19 | proxy_pass http://web:8000; 20 | } 21 | } -------------------------------------------------------------------------------- /docker/rabbitmq/rabbitmq-isolated.conf: -------------------------------------------------------------------------------- 1 | [ 2 | {rabbit, 3 | [ 4 | %% The default "guest" user is only permitted to access the server 5 | %% via a loopback interface (e.g. localhost). 6 | %% {loopback_users, [<<"guest">>]}, 7 | %% 8 | %% Uncomment the following line if you want to allow access to the 9 | %% guest user from anywhere on the network. 10 | {loopback_users, []}, 11 | {default_vhost, "/"}, 12 | {default_user, "guest"}, 13 | {default_pass, "guest"}, 14 | {default_permissions, [".*", ".*", ".*"]} 15 | ]} 16 | ]. -------------------------------------------------------------------------------- /flake8.ini: -------------------------------------------------------------------------------- 1 | [flake8] 2 | statistics=True 3 | format=Code:%(code)s File:%(path)s Line:%(row)d Column:%(col)d Info:%(text)s 4 | max-line-length=160 -------------------------------------------------------------------------------- /manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | 5 | if __name__ == "__main__": 6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "app.settings.basic") 7 | try: 8 | from django.core.management import execute_from_command_line 9 | except ImportError as exc: 10 | raise ImportError( 11 | "Couldn't import Django. Are you sure it's installed and " 12 | "available on your PYTHONPATH environment variable? Did you " 13 | "forget to activate a virtual environment?" 14 | ) from exc 15 | execute_from_command_line(sys.argv) -------------------------------------------------------------------------------- /pycodestyle: -------------------------------------------------------------------------------- 1 | [pycodestyle] 2 | count=True 3 | ignore= 4 | max-line-length=160 5 | statistics=True 6 | format = Code:%(code)s File:%(path)s Line:%(row)d Column:%(col)d Info:%(text)s -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "config:base" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Django==3.0.8 2 | mysqlclient==2.0.1 3 | python-dotenv==0.14.0 4 | gunicorn==20.0.4 5 | requests==2.24.0 6 | psycopg2==2.8.5 7 | jsonschema==3.2.0 8 | celery==4.4.5 9 | redis==3.5.3 10 | cryptography==3.0 11 | markdown2==2.3.9 12 | twilio==6.44.1 13 | pyumetric==0.0.4 14 | pyvalitron==1.1.3 15 | feedgen==0.9.0 16 | python-dateutil==2.8.1 17 | psycopg2-binary==2.8.5 18 | whitenoise==5.1.0 19 | -------------------------------------------------------------------------------- /runtime.txt: -------------------------------------------------------------------------------- 1 | python-3.7.3 2 | -------------------------------------------------------------------------------- /static/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /storage/app/private/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /storage/app/public/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /storage/database/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /storage/logs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /storage/mails/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /swagger.yaml: -------------------------------------------------------------------------------- 1 | swagger: '2.0' 2 | info: 3 | description: 'Silverback is a free and open source project for web infrastructure, developer APIs, services and SaaS companies to set up their very own status page in minutes.' 4 | version: 1.0.0 5 | title: Silverback 6 | contact: 7 | email: hello@clivern.com 8 | license: 9 | name: Apache 2.0 10 | url: 'https://github.com/silverbackhq/silverback/blob/master/LICENSE' 11 | host: silverbackhq.org 12 | basePath: / 13 | schemes: 14 | - https 15 | - http 16 | paths: 17 | /_healthcheck: 18 | get: 19 | tags: 20 | - healthcheck 21 | summary: Get system health 22 | description: '' 23 | operationId: logoutUser 24 | produces: 25 | - application/json 26 | parameters: [] 27 | responses: 28 | default: 29 | description: successful operation 30 | externalDocs: 31 | description: Find out more about silverback 32 | url: 'https://github.com/silverbackhq/silverback' 33 | -------------------------------------------------------------------------------- /themes/child/layouts/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /themes/child/partials/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /themes/child/templates/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /themes/default/layouts/landing.html: -------------------------------------------------------------------------------- 1 | {% load static %} 2 | {% load i18n %} 3 | 4 | 5 | 6 | 7 | 8 | {{ page_title }} 9 | 10 | 11 | 12 | 13 | 14 | 15 | {% include 'partials/header.html' %} 16 | 17 | 18 | {% block content %} 19 | {% endblock %} 20 | {% include 'partials/footer.html' %} 21 | 22 | -------------------------------------------------------------------------------- /themes/default/partials/bottom-menu.html: -------------------------------------------------------------------------------- 1 | {% load static %} 2 | {% load i18n %} 3 | 4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | 14 |
15 | {% trans "Copyright" %} © {% now "Y" %} {{ AUTHOR }}. {% trans "All Rights Reserved." %} 16 |
17 |
18 |
19 |
-------------------------------------------------------------------------------- /themes/default/partials/footer.html: -------------------------------------------------------------------------------- 1 | {% load static %} 2 | {% load i18n %} -------------------------------------------------------------------------------- /themes/default/partials/header.html: -------------------------------------------------------------------------------- 1 | {% load static %} 2 | {% load i18n %} 3 | 4 | {% if google_account %} 5 | 15 | {% endif %} 16 | 25 | -------------------------------------------------------------------------------- /themes/default/templates/404.html: -------------------------------------------------------------------------------- 1 | {% extends 'layouts/base.html' %} 2 | {% load static %} 3 | {% load i18n %} 4 | 5 | {% block content %} 6 |
7 |
8 |
{% trans "404" %}
9 |

{% trans "Page Not Found" %}

10 |

{% trans "Sorry, but the page you are looking for not found!" %}

11 | 12 | {% trans "Go back" %} 13 | 14 |
15 |
16 | {% endblock %} -------------------------------------------------------------------------------- /themes/default/templates/500.html: -------------------------------------------------------------------------------- 1 | {% extends 'layouts/base.html' %} 2 | {% load static %} 3 | {% load i18n %} 4 | 5 | {% block content %} 6 |
7 |
8 |
{% trans "500" %}
9 |

{% trans "Internal Server Error" %}

10 |

{% trans "The server encountered something unexpected!" %}

11 | 12 | {% trans "Go back" %} 13 | 14 |
15 |
16 | {% endblock %} -------------------------------------------------------------------------------- /themes/default/templates/admin/status_page.html: -------------------------------------------------------------------------------- 1 | {% extends 'layouts/base.html' %} 2 | {% load static %} 3 | {% load i18n %} 4 | 5 | 6 | {% block content %} 7 |
8 | {% include 'partials/top-menu.html' %} 9 |
10 |
11 |
12 | 13 |
14 |
15 |
16 |
17 | {% include 'partials/bottom-menu.html' %} 18 | 19 | {% endblock %} --------------------------------------------------------------------------------