├── .cache
└── .gitkeep
├── .env.example
├── .gitignore
├── Dockerfile
├── Makefile
├── README.md
├── api.json
├── browser
├── .DS_Store
├── __init__.py
├── forms.py
├── imap.py
├── sandbox.py
├── sandbox_helpers.py
├── templates
│ ├── 404.html
│ ├── gmail_setup_import.html
│ ├── gmail_setup_start.html
│ ├── registration
│ │ ├── activate.html
│ │ ├── activation_complete.html
│ │ ├── activation_email.txt
│ │ ├── activation_email_subject.txt
│ │ ├── login.html
│ │ ├── logout.html
│ │ ├── password_change_done.html
│ │ ├── password_change_form.html
│ │ ├── password_reset_complete.html
│ │ ├── password_reset_confirm.html
│ │ ├── password_reset_done.html
│ │ ├── password_reset_email.html
│ │ ├── password_reset_form.html
│ │ ├── password_reset_subject.txt
│ │ ├── registration_complete.html
│ │ └── registration_form.html
│ ├── settings.html
│ └── youps
│ │ ├── about.html
│ │ ├── base.html
│ │ ├── calendar.html
│ │ ├── components
│ │ ├── datetime.html
│ │ ├── deadline-add.html
│ │ ├── deadline.html
│ │ ├── email_expandable_row.html
│ │ ├── flag_change-add.html
│ │ ├── flag_change.html
│ │ ├── mode.html
│ │ ├── new_message-add.html
│ │ ├── new_message.html
│ │ ├── shortcut-add.html
│ │ ├── shortcut.html
│ │ └── string.html
│ │ ├── docs.html
│ │ ├── email_button.html
│ │ ├── login_email.html
│ │ ├── privacy.html
│ │ ├── tab_content.html
│ │ └── test.html
├── util.py
├── views.py
└── youps_component.py
├── config
├── __init__.py
├── boot.py
├── logging.conf
└── settings.py
├── docker-compose.yml
├── docs.json
├── docs
├── calendar.md
└── examples.md
├── engine
├── __init__.py
├── constants.py
├── google_auth.py
├── main.py
├── models
│ ├── __init__.py
│ ├── calendar.py
│ ├── contact.py
│ ├── event.py
│ ├── event_data.py
│ ├── folder.py
│ ├── helpers
│ │ ├── __init__.py
│ │ └── message_helpers.py
│ ├── icalevents
│ │ ├── __init__.py
│ │ ├── icaldownload.py
│ │ ├── icalevents.py
│ │ └── icalparser.py
│ ├── mailbox.py
│ ├── message.py
│ └── thread.py
├── parser
│ ├── __init__.py
│ ├── decode_header_patch.py
│ ├── header_parser.py
│ ├── regexes.py
│ └── rfc2822_parser.py
├── s3_storage.py
├── utils.py
└── youps.py
├── formEmails
├── formSubmission.js
├── instructions.md
└── logEditURL.js
├── gmail_setup
├── __init__.py
├── admin.py
├── api.py
├── tests.py
├── urls.py
└── views.py
├── http_handler
├── __init__.py
├── settings.py
├── static
│ ├── css
│ │ ├── gmail_setup.css
│ │ ├── murmur
│ │ │ └── base.css
│ │ ├── third-party
│ │ │ ├── bootstrap-theme.css
│ │ │ ├── bootstrap-theme.css.map
│ │ │ ├── bootstrap-theme.min.css
│ │ │ ├── bootstrap.css
│ │ │ ├── bootstrap.css.map
│ │ │ ├── bootstrap.min.css
│ │ │ ├── datatable.css
│ │ │ ├── images
│ │ │ │ ├── ui-bg_diagonals-thick_18_b81900_40x40.png
│ │ │ │ ├── ui-bg_diagonals-thick_20_666666_40x40.png
│ │ │ │ ├── ui-bg_flat_10_000000_40x100.png
│ │ │ │ ├── ui-bg_glass_100_f6f6f6_1x400.png
│ │ │ │ ├── ui-bg_glass_100_fdf5ce_1x400.png
│ │ │ │ ├── ui-bg_glass_65_ffffff_1x400.png
│ │ │ │ ├── ui-bg_gloss-wave_35_f6a828_500x100.png
│ │ │ │ ├── ui-bg_highlight-soft_100_eeeeee_1x100.png
│ │ │ │ ├── ui-bg_highlight-soft_75_ffe45c_1x100.png
│ │ │ │ ├── ui-icons_222222_256x240.png
│ │ │ │ ├── ui-icons_228ef1_256x240.png
│ │ │ │ ├── ui-icons_ef8c08_256x240.png
│ │ │ │ ├── ui-icons_ffd27a_256x240.png
│ │ │ │ └── ui-icons_ffffff_256x240.png
│ │ │ ├── jquery-ui.min.css
│ │ │ ├── jquery-ui.min.css.new
│ │ │ ├── jquery.dataTables.min.css
│ │ │ └── jquery.dropdown.css
│ │ └── youps
│ │ │ ├── docs
│ │ │ ├── fonts
│ │ │ │ ├── LibreBodoniBold.ttf
│ │ │ │ ├── LibreBodoniRegular.ttf
│ │ │ │ └── mavo-icons.woff
│ │ │ ├── style.css
│ │ │ └── style.scss
│ │ │ ├── email_button.css
│ │ │ ├── history_table.css
│ │ │ ├── libs
│ │ │ ├── codemirror.css
│ │ │ ├── docs.css
│ │ │ ├── fontawesome-all.min.css
│ │ │ ├── jquery.switchButton.css
│ │ │ ├── jsonpanel.css
│ │ │ ├── prism.css
│ │ │ ├── qunit.css
│ │ │ ├── sandbox.css
│ │ │ └── show-hint.css
│ │ │ └── style.css
│ ├── filters
│ │ └── tag_archive_rejected.xml
│ ├── fonts
│ │ ├── glyphicons-halflings-regular.eot
│ │ ├── glyphicons-halflings-regular.svg
│ │ ├── glyphicons-halflings-regular.ttf
│ │ ├── glyphicons-halflings-regular.woff
│ │ └── glyphicons-halflings-regular.woff2
│ ├── gif
│ │ ├── gmail_low_640.gif
│ │ └── thunderbird_low_640.gif
│ ├── images
│ │ ├── favicon
│ │ │ ├── android-chrome-144x144.png
│ │ │ ├── android-chrome-192x192.png
│ │ │ ├── android-chrome-36x36.png
│ │ │ ├── android-chrome-48x48.png
│ │ │ ├── android-chrome-72x72.png
│ │ │ ├── android-chrome-96x96.png
│ │ │ ├── android-chrome-manifest.json
│ │ │ ├── apple-touch-icon-114x114.png
│ │ │ ├── apple-touch-icon-120x120.png
│ │ │ ├── apple-touch-icon-144x144.png
│ │ │ ├── apple-touch-icon-152x152.png
│ │ │ ├── apple-touch-icon-180x180.png
│ │ │ ├── apple-touch-icon-57x57.png
│ │ │ ├── apple-touch-icon-60x60.png
│ │ │ ├── apple-touch-icon-72x72.png
│ │ │ ├── apple-touch-icon-76x76.png
│ │ │ ├── apple-touch-icon-precomposed.png
│ │ │ ├── apple-touch-icon.png
│ │ │ ├── browserconfig.xml
│ │ │ ├── favicon-16x16.png
│ │ │ ├── favicon-194x194.png
│ │ │ ├── favicon-32x32.png
│ │ │ ├── favicon-96x96.png
│ │ │ ├── favicon.ico
│ │ │ ├── mstile-144x144.png
│ │ │ ├── mstile-150x150.png
│ │ │ ├── mstile-310x150.png
│ │ │ ├── mstile-310x310.png
│ │ │ └── mstile-70x70.png
│ │ ├── icons
│ │ │ ├── Circle_Blue.png
│ │ │ ├── Circle_Green.png
│ │ │ ├── Circle_Grey.png
│ │ │ ├── Circle_Orange.png
│ │ │ ├── Circle_Red.png
│ │ │ ├── Circle_Yellow.png
│ │ │ └── terminal.png
│ │ ├── murmurations
│ │ │ ├── 2115134127_9c074ca2b2_o.jpg
│ │ │ ├── 4227228_6bdfe3543e_o.jpg
│ │ │ ├── 4227243_a0587ccefe_o.jpg
│ │ │ ├── 4483398_dbd42c5993_o.jpg
│ │ │ ├── 4483522_fbbf80a6ca_o.jpg
│ │ │ ├── 4483546_9a1a9906e4_o.jpg
│ │ │ ├── 4483577_fec76ad00f_o.jpg
│ │ │ └── 6507188799_8474f9775a_o.jpg
│ │ ├── no-img-selected.png
│ │ ├── select_folder.png
│ │ ├── sort_asc.png
│ │ ├── sort_asc_disabled.png
│ │ ├── sort_both.png
│ │ ├── sort_desc.png
│ │ ├── sort_desc_disabled.png
│ │ ├── spinner.gif
│ │ └── squadbox
│ │ │ ├── favicon
│ │ │ ├── android-icon-144x144.png
│ │ │ ├── android-icon-192x192.png
│ │ │ ├── android-icon-36x36.png
│ │ │ ├── android-icon-48x48.png
│ │ │ ├── android-icon-72x72.png
│ │ │ ├── android-icon-96x96.png
│ │ │ ├── apple-icon-114x114.png
│ │ │ ├── apple-icon-120x120.png
│ │ │ ├── apple-icon-144x144.png
│ │ │ ├── apple-icon-152x152.png
│ │ │ ├── apple-icon-180x180.png
│ │ │ ├── apple-icon-57x57.png
│ │ │ ├── apple-icon-60x60.png
│ │ │ ├── apple-icon-72x72.png
│ │ │ ├── apple-icon-76x76.png
│ │ │ ├── apple-icon-precomposed.png
│ │ │ ├── apple-icon.png
│ │ │ ├── browserconfig.xml
│ │ │ ├── favicon-16x16.png
│ │ │ ├── favicon-192x192.png
│ │ │ ├── favicon-32x32.png
│ │ │ ├── favicon-96x96.png
│ │ │ ├── favicon.ico
│ │ │ ├── manifest.json
│ │ │ ├── ms-icon-144x144.png
│ │ │ ├── ms-icon-150x150.png
│ │ │ ├── ms-icon-310x310.png
│ │ │ └── ms-icon-70x70.png
│ │ │ ├── kaitlin.jpg
│ │ │ ├── karger.png
│ │ │ ├── pic2.jpg
│ │ │ ├── squadbox_diagram1.png
│ │ │ ├── squadbox_diagram2.png
│ │ │ ├── squadbox_logo4.png
│ │ │ └── twitter.png
│ └── javascript
│ │ ├── add_blacklist.js
│ │ ├── add_donotsend.js
│ │ ├── add_members.js
│ │ ├── add_whitelist.js
│ │ ├── bind.js
│ │ ├── create_group.js
│ │ ├── d3
│ │ ├── d3.js
│ │ └── d3.layout.js
│ │ ├── edit_group_info.js
│ │ ├── gmail_setup.js
│ │ ├── murmur
│ │ ├── add_list.js
│ │ ├── create_post.js
│ │ ├── group_page.js
│ │ ├── home.js
│ │ ├── main.js
│ │ ├── my_group_settings.js
│ │ └── thread_page.js
│ │ ├── notify.js
│ │ ├── pagination.js
│ │ ├── third-party
│ │ ├── bootstrap.js
│ │ ├── bootstrap.min.js
│ │ ├── ckeditor
│ │ │ ├── CHANGES.md
│ │ │ ├── LICENSE.md
│ │ │ ├── README.md
│ │ │ ├── adapters
│ │ │ │ └── jquery.js
│ │ │ ├── build-config.js
│ │ │ ├── ckeditor.js
│ │ │ ├── config.js
│ │ │ ├── contents.css
│ │ │ ├── lang
│ │ │ │ └── en.js
│ │ │ ├── plugins
│ │ │ │ ├── a11yhelp
│ │ │ │ │ └── dialogs
│ │ │ │ │ │ ├── a11yhelp.js
│ │ │ │ │ │ └── lang
│ │ │ │ │ │ ├── _translationstatus.txt
│ │ │ │ │ │ ├── ar.js
│ │ │ │ │ │ ├── bg.js
│ │ │ │ │ │ ├── ca.js
│ │ │ │ │ │ ├── cs.js
│ │ │ │ │ │ ├── cy.js
│ │ │ │ │ │ ├── da.js
│ │ │ │ │ │ ├── de.js
│ │ │ │ │ │ ├── el.js
│ │ │ │ │ │ ├── en-gb.js
│ │ │ │ │ │ ├── en.js
│ │ │ │ │ │ ├── eo.js
│ │ │ │ │ │ ├── es.js
│ │ │ │ │ │ ├── et.js
│ │ │ │ │ │ ├── fa.js
│ │ │ │ │ │ ├── fi.js
│ │ │ │ │ │ ├── fr-ca.js
│ │ │ │ │ │ ├── fr.js
│ │ │ │ │ │ ├── gl.js
│ │ │ │ │ │ ├── gu.js
│ │ │ │ │ │ ├── he.js
│ │ │ │ │ │ ├── hi.js
│ │ │ │ │ │ ├── hr.js
│ │ │ │ │ │ ├── hu.js
│ │ │ │ │ │ ├── id.js
│ │ │ │ │ │ ├── it.js
│ │ │ │ │ │ ├── ja.js
│ │ │ │ │ │ ├── km.js
│ │ │ │ │ │ ├── ko.js
│ │ │ │ │ │ ├── ku.js
│ │ │ │ │ │ ├── lt.js
│ │ │ │ │ │ ├── lv.js
│ │ │ │ │ │ ├── mk.js
│ │ │ │ │ │ ├── mn.js
│ │ │ │ │ │ ├── nb.js
│ │ │ │ │ │ ├── nl.js
│ │ │ │ │ │ ├── no.js
│ │ │ │ │ │ ├── pl.js
│ │ │ │ │ │ ├── pt-br.js
│ │ │ │ │ │ ├── pt.js
│ │ │ │ │ │ ├── ro.js
│ │ │ │ │ │ ├── ru.js
│ │ │ │ │ │ ├── si.js
│ │ │ │ │ │ ├── sk.js
│ │ │ │ │ │ ├── sl.js
│ │ │ │ │ │ ├── sq.js
│ │ │ │ │ │ ├── sr-latn.js
│ │ │ │ │ │ ├── sr.js
│ │ │ │ │ │ ├── sv.js
│ │ │ │ │ │ ├── th.js
│ │ │ │ │ │ ├── tr.js
│ │ │ │ │ │ ├── tt.js
│ │ │ │ │ │ ├── ug.js
│ │ │ │ │ │ ├── uk.js
│ │ │ │ │ │ ├── vi.js
│ │ │ │ │ │ ├── zh-cn.js
│ │ │ │ │ │ └── zh.js
│ │ │ │ ├── clipboard
│ │ │ │ │ └── dialogs
│ │ │ │ │ │ └── paste.js
│ │ │ │ ├── dialog
│ │ │ │ │ └── dialogDefinition.js
│ │ │ │ ├── icons.png
│ │ │ │ ├── icons_hidpi.png
│ │ │ │ ├── image
│ │ │ │ │ ├── dialogs
│ │ │ │ │ │ └── image.js
│ │ │ │ │ └── images
│ │ │ │ │ │ └── noimage.png
│ │ │ │ ├── link
│ │ │ │ │ ├── dialogs
│ │ │ │ │ │ ├── anchor.js
│ │ │ │ │ │ └── link.js
│ │ │ │ │ └── images
│ │ │ │ │ │ ├── anchor.png
│ │ │ │ │ │ └── hidpi
│ │ │ │ │ │ └── anchor.png
│ │ │ │ └── pastefromword
│ │ │ │ │ └── filter
│ │ │ │ │ └── default.js
│ │ │ ├── samples
│ │ │ │ ├── ajax.html
│ │ │ │ ├── api.html
│ │ │ │ ├── appendto.html
│ │ │ │ ├── assets
│ │ │ │ │ ├── inlineall
│ │ │ │ │ │ └── logo.png
│ │ │ │ │ ├── outputxhtml
│ │ │ │ │ │ └── outputxhtml.css
│ │ │ │ │ ├── posteddata.php
│ │ │ │ │ ├── sample.jpg
│ │ │ │ │ └── uilanguages
│ │ │ │ │ │ └── languages.js
│ │ │ │ ├── datafiltering.html
│ │ │ │ ├── divreplace.html
│ │ │ │ ├── index.html
│ │ │ │ ├── inlineall.html
│ │ │ │ ├── inlinebycode.html
│ │ │ │ ├── inlinetextarea.html
│ │ │ │ ├── jquery.html
│ │ │ │ ├── plugins
│ │ │ │ │ ├── dialog
│ │ │ │ │ │ ├── assets
│ │ │ │ │ │ │ └── my_dialog.js
│ │ │ │ │ │ └── dialog.html
│ │ │ │ │ ├── enterkey
│ │ │ │ │ │ └── enterkey.html
│ │ │ │ │ ├── htmlwriter
│ │ │ │ │ │ ├── assets
│ │ │ │ │ │ │ └── outputforflash
│ │ │ │ │ │ │ │ ├── outputforflash.fla
│ │ │ │ │ │ │ │ ├── outputforflash.swf
│ │ │ │ │ │ │ │ └── swfobject.js
│ │ │ │ │ │ ├── outputforflash.html
│ │ │ │ │ │ └── outputhtml.html
│ │ │ │ │ ├── toolbar
│ │ │ │ │ │ └── toolbar.html
│ │ │ │ │ └── wysiwygarea
│ │ │ │ │ │ └── fullpage.html
│ │ │ │ ├── readonly.html
│ │ │ │ ├── replacebyclass.html
│ │ │ │ ├── replacebycode.html
│ │ │ │ ├── sample.css
│ │ │ │ ├── sample.js
│ │ │ │ ├── sample_posteddata.php
│ │ │ │ ├── tabindex.html
│ │ │ │ ├── uicolor.html
│ │ │ │ ├── uilanguages.html
│ │ │ │ └── xhtmlstyle.html
│ │ │ ├── skins
│ │ │ │ └── office2013
│ │ │ │ │ ├── dialog.css
│ │ │ │ │ ├── editor.css
│ │ │ │ │ ├── icons.png
│ │ │ │ │ ├── icons_hidpi.png
│ │ │ │ │ └── images
│ │ │ │ │ ├── arrow.png
│ │ │ │ │ ├── close.png
│ │ │ │ │ ├── hidpi
│ │ │ │ │ ├── close.png
│ │ │ │ │ ├── lock-open.png
│ │ │ │ │ ├── lock.png
│ │ │ │ │ └── refresh.png
│ │ │ │ │ ├── lock-open.png
│ │ │ │ │ ├── lock.png
│ │ │ │ │ └── refresh.png
│ │ │ └── styles.js
│ │ ├── csrf.min.js
│ │ ├── cufon-yui.js
│ │ ├── droid-sans.fonts.js
│ │ ├── jquery-ui.min.js
│ │ ├── jquery.dataTables.min.js
│ │ ├── jquery.dropdown.js
│ │ ├── jquery.min.js
│ │ ├── noty
│ │ │ ├── jquery.noty.js
│ │ │ ├── layouts
│ │ │ │ ├── bottom.js
│ │ │ │ ├── bottomCenter.js
│ │ │ │ ├── bottomLeft.js
│ │ │ │ ├── bottomRight.js
│ │ │ │ ├── center.js
│ │ │ │ ├── centerLeft.js
│ │ │ │ ├── centerRight.js
│ │ │ │ ├── inline.js
│ │ │ │ ├── top.js
│ │ │ │ ├── topCenter.js
│ │ │ │ ├── topLeft.js
│ │ │ │ └── topRight.js
│ │ │ └── themes
│ │ │ │ └── default.js
│ │ ├── tiny_mce
│ │ │ ├── langs
│ │ │ │ └── en.js
│ │ │ ├── license.txt
│ │ │ ├── plugins
│ │ │ │ ├── advhr
│ │ │ │ │ ├── css
│ │ │ │ │ │ └── advhr.css
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ ├── editor_plugin_src.js
│ │ │ │ │ ├── js
│ │ │ │ │ │ └── rule.js
│ │ │ │ │ ├── langs
│ │ │ │ │ │ └── en_dlg.js
│ │ │ │ │ └── rule.htm
│ │ │ │ ├── advimage
│ │ │ │ │ ├── css
│ │ │ │ │ │ └── advimage.css
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ ├── editor_plugin_src.js
│ │ │ │ │ ├── image.htm
│ │ │ │ │ ├── img
│ │ │ │ │ │ └── sample.gif
│ │ │ │ │ ├── js
│ │ │ │ │ │ └── image.js
│ │ │ │ │ └── langs
│ │ │ │ │ │ └── en_dlg.js
│ │ │ │ ├── advlink
│ │ │ │ │ ├── css
│ │ │ │ │ │ └── advlink.css
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ ├── editor_plugin_src.js
│ │ │ │ │ ├── js
│ │ │ │ │ │ └── advlink.js
│ │ │ │ │ ├── langs
│ │ │ │ │ │ └── en_dlg.js
│ │ │ │ │ └── link.htm
│ │ │ │ ├── advlist
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ └── editor_plugin_src.js
│ │ │ │ ├── autolink
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ └── editor_plugin_src.js
│ │ │ │ ├── autoresize
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ └── editor_plugin_src.js
│ │ │ │ ├── autosave
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ └── editor_plugin_src.js
│ │ │ │ ├── bbcode
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ └── editor_plugin_src.js
│ │ │ │ ├── contextmenu
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ └── editor_plugin_src.js
│ │ │ │ ├── directionality
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ └── editor_plugin_src.js
│ │ │ │ ├── emotions
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ ├── editor_plugin_src.js
│ │ │ │ │ ├── emotions.htm
│ │ │ │ │ ├── img
│ │ │ │ │ │ ├── smiley-cool.gif
│ │ │ │ │ │ ├── smiley-cry.gif
│ │ │ │ │ │ ├── smiley-embarassed.gif
│ │ │ │ │ │ ├── smiley-foot-in-mouth.gif
│ │ │ │ │ │ ├── smiley-frown.gif
│ │ │ │ │ │ ├── smiley-innocent.gif
│ │ │ │ │ │ ├── smiley-kiss.gif
│ │ │ │ │ │ ├── smiley-laughing.gif
│ │ │ │ │ │ ├── smiley-money-mouth.gif
│ │ │ │ │ │ ├── smiley-sealed.gif
│ │ │ │ │ │ ├── smiley-smile.gif
│ │ │ │ │ │ ├── smiley-surprised.gif
│ │ │ │ │ │ ├── smiley-tongue-out.gif
│ │ │ │ │ │ ├── smiley-undecided.gif
│ │ │ │ │ │ ├── smiley-wink.gif
│ │ │ │ │ │ └── smiley-yell.gif
│ │ │ │ │ ├── js
│ │ │ │ │ │ └── emotions.js
│ │ │ │ │ └── langs
│ │ │ │ │ │ └── en_dlg.js
│ │ │ │ ├── example
│ │ │ │ │ ├── dialog.htm
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ ├── editor_plugin_src.js
│ │ │ │ │ ├── img
│ │ │ │ │ │ └── example.gif
│ │ │ │ │ ├── js
│ │ │ │ │ │ └── dialog.js
│ │ │ │ │ └── langs
│ │ │ │ │ │ ├── en.js
│ │ │ │ │ │ └── en_dlg.js
│ │ │ │ ├── example_dependency
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ └── editor_plugin_src.js
│ │ │ │ ├── fullpage
│ │ │ │ │ ├── css
│ │ │ │ │ │ └── fullpage.css
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ ├── editor_plugin_src.js
│ │ │ │ │ ├── fullpage.htm
│ │ │ │ │ ├── js
│ │ │ │ │ │ └── fullpage.js
│ │ │ │ │ └── langs
│ │ │ │ │ │ └── en_dlg.js
│ │ │ │ ├── fullscreen
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ ├── editor_plugin_src.js
│ │ │ │ │ └── fullscreen.htm
│ │ │ │ ├── iespell
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ └── editor_plugin_src.js
│ │ │ │ ├── inlinepopups
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ ├── editor_plugin_src.js
│ │ │ │ │ ├── skins
│ │ │ │ │ │ └── clearlooks2
│ │ │ │ │ │ │ ├── img
│ │ │ │ │ │ │ ├── alert.gif
│ │ │ │ │ │ │ ├── button.gif
│ │ │ │ │ │ │ ├── buttons.gif
│ │ │ │ │ │ │ ├── confirm.gif
│ │ │ │ │ │ │ ├── corners.gif
│ │ │ │ │ │ │ ├── horizontal.gif
│ │ │ │ │ │ │ └── vertical.gif
│ │ │ │ │ │ │ └── window.css
│ │ │ │ │ └── template.htm
│ │ │ │ ├── insertdatetime
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ └── editor_plugin_src.js
│ │ │ │ ├── layer
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ └── editor_plugin_src.js
│ │ │ │ ├── legacyoutput
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ └── editor_plugin_src.js
│ │ │ │ ├── lists
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ └── editor_plugin_src.js
│ │ │ │ ├── media
│ │ │ │ │ ├── css
│ │ │ │ │ │ └── media.css
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ ├── editor_plugin_src.js
│ │ │ │ │ ├── js
│ │ │ │ │ │ ├── embed.js
│ │ │ │ │ │ └── media.js
│ │ │ │ │ ├── langs
│ │ │ │ │ │ └── en_dlg.js
│ │ │ │ │ ├── media.htm
│ │ │ │ │ └── moxieplayer.swf
│ │ │ │ ├── nonbreaking
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ └── editor_plugin_src.js
│ │ │ │ ├── noneditable
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ └── editor_plugin_src.js
│ │ │ │ ├── pagebreak
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ └── editor_plugin_src.js
│ │ │ │ ├── paste
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ ├── editor_plugin_src.js
│ │ │ │ │ ├── js
│ │ │ │ │ │ ├── pastetext.js
│ │ │ │ │ │ └── pasteword.js
│ │ │ │ │ ├── langs
│ │ │ │ │ │ └── en_dlg.js
│ │ │ │ │ ├── pastetext.htm
│ │ │ │ │ └── pasteword.htm
│ │ │ │ ├── preview
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ ├── editor_plugin_src.js
│ │ │ │ │ ├── example.html
│ │ │ │ │ ├── jscripts
│ │ │ │ │ │ └── embed.js
│ │ │ │ │ └── preview.html
│ │ │ │ ├── print
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ └── editor_plugin_src.js
│ │ │ │ ├── save
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ └── editor_plugin_src.js
│ │ │ │ ├── searchreplace
│ │ │ │ │ ├── css
│ │ │ │ │ │ └── searchreplace.css
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ ├── editor_plugin_src.js
│ │ │ │ │ ├── js
│ │ │ │ │ │ └── searchreplace.js
│ │ │ │ │ ├── langs
│ │ │ │ │ │ └── en_dlg.js
│ │ │ │ │ └── searchreplace.htm
│ │ │ │ ├── spellchecker
│ │ │ │ │ ├── css
│ │ │ │ │ │ └── content.css
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ ├── editor_plugin_src.js
│ │ │ │ │ └── img
│ │ │ │ │ │ └── wline.gif
│ │ │ │ ├── style
│ │ │ │ │ ├── css
│ │ │ │ │ │ └── props.css
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ ├── editor_plugin_src.js
│ │ │ │ │ ├── js
│ │ │ │ │ │ └── props.js
│ │ │ │ │ ├── langs
│ │ │ │ │ │ └── en_dlg.js
│ │ │ │ │ ├── props.htm
│ │ │ │ │ └── readme.txt
│ │ │ │ ├── tabfocus
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ └── editor_plugin_src.js
│ │ │ │ ├── table
│ │ │ │ │ ├── cell.htm
│ │ │ │ │ ├── css
│ │ │ │ │ │ ├── cell.css
│ │ │ │ │ │ ├── row.css
│ │ │ │ │ │ └── table.css
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ ├── editor_plugin_src.js
│ │ │ │ │ ├── js
│ │ │ │ │ │ ├── cell.js
│ │ │ │ │ │ ├── merge_cells.js
│ │ │ │ │ │ ├── row.js
│ │ │ │ │ │ └── table.js
│ │ │ │ │ ├── langs
│ │ │ │ │ │ └── en_dlg.js
│ │ │ │ │ ├── merge_cells.htm
│ │ │ │ │ ├── row.htm
│ │ │ │ │ └── table.htm
│ │ │ │ ├── template
│ │ │ │ │ ├── blank.htm
│ │ │ │ │ ├── css
│ │ │ │ │ │ └── template.css
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ ├── editor_plugin_src.js
│ │ │ │ │ ├── js
│ │ │ │ │ │ └── template.js
│ │ │ │ │ ├── langs
│ │ │ │ │ │ └── en_dlg.js
│ │ │ │ │ └── template.htm
│ │ │ │ ├── visualblocks
│ │ │ │ │ ├── css
│ │ │ │ │ │ └── visualblocks.css
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ └── editor_plugin_src.js
│ │ │ │ ├── visualchars
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ └── editor_plugin_src.js
│ │ │ │ ├── wordcount
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ └── editor_plugin_src.js
│ │ │ │ └── xhtmlxtras
│ │ │ │ │ ├── abbr.htm
│ │ │ │ │ ├── acronym.htm
│ │ │ │ │ ├── attributes.htm
│ │ │ │ │ ├── cite.htm
│ │ │ │ │ ├── css
│ │ │ │ │ ├── attributes.css
│ │ │ │ │ └── popup.css
│ │ │ │ │ ├── del.htm
│ │ │ │ │ ├── editor_plugin.js
│ │ │ │ │ ├── editor_plugin_src.js
│ │ │ │ │ ├── ins.htm
│ │ │ │ │ ├── js
│ │ │ │ │ ├── abbr.js
│ │ │ │ │ ├── acronym.js
│ │ │ │ │ ├── attributes.js
│ │ │ │ │ ├── cite.js
│ │ │ │ │ ├── del.js
│ │ │ │ │ ├── element_common.js
│ │ │ │ │ └── ins.js
│ │ │ │ │ └── langs
│ │ │ │ │ └── en_dlg.js
│ │ │ ├── themes
│ │ │ │ ├── advanced
│ │ │ │ │ ├── about.htm
│ │ │ │ │ ├── anchor.htm
│ │ │ │ │ ├── charmap.htm
│ │ │ │ │ ├── color_picker.htm
│ │ │ │ │ ├── editor_template.js
│ │ │ │ │ ├── editor_template_src.js
│ │ │ │ │ ├── image.htm
│ │ │ │ │ ├── img
│ │ │ │ │ │ ├── colorpicker.jpg
│ │ │ │ │ │ ├── flash.gif
│ │ │ │ │ │ ├── icons.gif
│ │ │ │ │ │ ├── iframe.gif
│ │ │ │ │ │ ├── pagebreak.gif
│ │ │ │ │ │ ├── quicktime.gif
│ │ │ │ │ │ ├── realmedia.gif
│ │ │ │ │ │ ├── shockwave.gif
│ │ │ │ │ │ ├── trans.gif
│ │ │ │ │ │ ├── video.gif
│ │ │ │ │ │ └── windowsmedia.gif
│ │ │ │ │ ├── js
│ │ │ │ │ │ ├── about.js
│ │ │ │ │ │ ├── anchor.js
│ │ │ │ │ │ ├── charmap.js
│ │ │ │ │ │ ├── color_picker.js
│ │ │ │ │ │ ├── image.js
│ │ │ │ │ │ ├── link.js
│ │ │ │ │ │ └── source_editor.js
│ │ │ │ │ ├── langs
│ │ │ │ │ │ ├── en.js
│ │ │ │ │ │ └── en_dlg.js
│ │ │ │ │ ├── link.htm
│ │ │ │ │ ├── shortcuts.htm
│ │ │ │ │ ├── skins
│ │ │ │ │ │ ├── default
│ │ │ │ │ │ │ ├── content.css
│ │ │ │ │ │ │ ├── dialog.css
│ │ │ │ │ │ │ ├── img
│ │ │ │ │ │ │ │ ├── buttons.png
│ │ │ │ │ │ │ │ ├── items.gif
│ │ │ │ │ │ │ │ ├── menu_arrow.gif
│ │ │ │ │ │ │ │ ├── menu_check.gif
│ │ │ │ │ │ │ │ ├── progress.gif
│ │ │ │ │ │ │ │ └── tabs.gif
│ │ │ │ │ │ │ └── ui.css
│ │ │ │ │ │ ├── highcontrast
│ │ │ │ │ │ │ ├── content.css
│ │ │ │ │ │ │ ├── dialog.css
│ │ │ │ │ │ │ └── ui.css
│ │ │ │ │ │ └── o2k7
│ │ │ │ │ │ │ ├── content.css
│ │ │ │ │ │ │ ├── dialog.css
│ │ │ │ │ │ │ ├── img
│ │ │ │ │ │ │ ├── button_bg.png
│ │ │ │ │ │ │ ├── button_bg_black.png
│ │ │ │ │ │ │ └── button_bg_silver.png
│ │ │ │ │ │ │ ├── ui.css
│ │ │ │ │ │ │ ├── ui_black.css
│ │ │ │ │ │ │ └── ui_silver.css
│ │ │ │ │ └── source_editor.htm
│ │ │ │ └── simple
│ │ │ │ │ ├── editor_template.js
│ │ │ │ │ ├── editor_template_src.js
│ │ │ │ │ ├── img
│ │ │ │ │ └── icons.gif
│ │ │ │ │ ├── langs
│ │ │ │ │ └── en.js
│ │ │ │ │ └── skins
│ │ │ │ │ ├── default
│ │ │ │ │ ├── content.css
│ │ │ │ │ └── ui.css
│ │ │ │ │ └── o2k7
│ │ │ │ │ ├── content.css
│ │ │ │ │ ├── img
│ │ │ │ │ └── button_bg.png
│ │ │ │ │ └── ui.css
│ │ │ ├── tiny_mce.js
│ │ │ ├── tiny_mce_popup.js
│ │ │ ├── tiny_mce_src.js
│ │ │ └── utils
│ │ │ │ ├── editable_selects.js
│ │ │ │ ├── form_utils.js
│ │ │ │ ├── mctabs.js
│ │ │ │ └── validate.js
│ │ └── typeahead.js
│ │ │ ├── bloodhound.js
│ │ │ ├── bloodhound.min.js
│ │ │ ├── typeahead.bundle.js
│ │ │ ├── typeahead.bundle.min.js
│ │ │ ├── typeahead.jquery.js
│ │ │ └── typeahead.jquery.min.js
│ │ └── youps
│ │ ├── Autolinker.js
│ │ ├── Autolinker.min.js
│ │ ├── ButtonService.js
│ │ ├── addon
│ │ ├── comment
│ │ │ ├── comment.js
│ │ │ └── continuecomment.js
│ │ ├── dialog
│ │ │ ├── dialog.css
│ │ │ └── dialog.js
│ │ ├── display
│ │ │ ├── autorefresh.js
│ │ │ ├── fullscreen.css
│ │ │ ├── fullscreen.js
│ │ │ ├── panel.js
│ │ │ ├── placeholder.js
│ │ │ └── rulers.js
│ │ ├── edit
│ │ │ ├── closebrackets.js
│ │ │ ├── closetag.js
│ │ │ ├── continuelist.js
│ │ │ ├── matchbrackets.js
│ │ │ ├── matchtags.js
│ │ │ └── trailingspace.js
│ │ ├── fold
│ │ │ ├── brace-fold.js
│ │ │ ├── comment-fold.js
│ │ │ ├── foldcode.js
│ │ │ ├── foldgutter.css
│ │ │ ├── foldgutter.js
│ │ │ ├── indent-fold.js
│ │ │ ├── markdown-fold.js
│ │ │ └── xml-fold.js
│ │ ├── hint
│ │ │ ├── anyword-hint.js
│ │ │ ├── css-hint.js
│ │ │ ├── html-hint.js
│ │ │ ├── javascript-hint.js
│ │ │ ├── show-hint.js
│ │ │ ├── sql-hint.js
│ │ │ └── xml-hint.js
│ │ ├── lint
│ │ │ ├── coffeescript-lint.js
│ │ │ ├── css-lint.js
│ │ │ ├── html-lint.js
│ │ │ ├── javascript-lint.js
│ │ │ ├── json-lint.js
│ │ │ ├── lint.css
│ │ │ ├── lint.js
│ │ │ └── yaml-lint.js
│ │ ├── merge
│ │ │ ├── merge.css
│ │ │ └── merge.js
│ │ ├── mode
│ │ │ ├── loadmode.js
│ │ │ ├── multiplex.js
│ │ │ ├── multiplex_test.js
│ │ │ ├── overlay.js
│ │ │ └── simple.js
│ │ ├── runmode
│ │ │ ├── colorize.js
│ │ │ ├── runmode-standalone.js
│ │ │ ├── runmode.js
│ │ │ └── runmode.node.js
│ │ ├── scroll
│ │ │ ├── annotatescrollbar.js
│ │ │ ├── scrollpastend.js
│ │ │ ├── simplescrollbars.css
│ │ │ └── simplescrollbars.js
│ │ ├── search
│ │ │ ├── jump-to-line.js
│ │ │ ├── match-highlighter.js
│ │ │ ├── matchesonscrollbar.css
│ │ │ ├── matchesonscrollbar.js
│ │ │ ├── search.js
│ │ │ └── searchcursor.js
│ │ ├── selection
│ │ │ ├── active-line.js
│ │ │ ├── mark-selection.js
│ │ │ └── selection-pointer.js
│ │ ├── tern
│ │ │ ├── tern.css
│ │ │ ├── tern.js
│ │ │ └── worker.js
│ │ └── wrap
│ │ │ └── hardwrap.js
│ │ ├── app.js
│ │ ├── blanket.min.js
│ │ ├── bootstrap.bundle.min.js
│ │ ├── codemirror.js
│ │ ├── console
│ │ ├── DAT.GUI.min.js
│ │ ├── backbone-localStorage.min.js
│ │ ├── backbone.min.js
│ │ ├── jquery.min.js
│ │ ├── lettering.js
│ │ ├── prettify.js
│ │ ├── sandbox-console.js
│ │ └── underscore.min.js
│ │ ├── demo.css
│ │ ├── email_button.js
│ │ ├── fontawesome-all.min.js
│ │ ├── history_table.js
│ │ ├── jquery-ui.min.js
│ │ ├── jquery.switchButton.js
│ │ ├── jsonpanel.js
│ │ ├── login_imap.js
│ │ ├── mavo.min.js
│ │ ├── prism.js
│ │ ├── python.js
│ │ ├── qunit.js
│ │ ├── sidebar.js
│ │ └── tests.js
├── tasks.py
├── urls.py
└── wsgi.py
├── imap_monitor.log
├── logs
└── .gitignore
├── manage.py
├── murmur-env
├── debug
├── env
├── protocol
└── website
├── registration
├── __init__.py
├── admin.py
├── auth_urls.py
├── backends
│ ├── __init__.py
│ ├── default
│ │ ├── __init__.py
│ │ ├── urls.py
│ │ └── views.py
│ └── simple
│ │ ├── __init__.py
│ │ ├── urls.py
│ │ └── views.py
├── forms.py
├── locale
│ ├── ar
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── bg
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── ca
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── cs
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── da
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── de
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── el
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── en
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── es
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── es_AR
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── fa
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── fr
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── he
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── hr
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── is
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── it
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── ja
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── ko
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── nb
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── nl
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── pl
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── pt
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── pt_BR
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── ru
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── sl
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── sr
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── sv
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── tr_TR
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ ├── zh_CN
│ │ └── LC_MESSAGES
│ │ │ ├── django.mo
│ │ │ └── django.po
│ └── zh_TW
│ │ └── LC_MESSAGES
│ │ ├── django.mo
│ │ └── django.po
├── management
│ ├── __init__.py
│ └── commands
│ │ ├── __init__.py
│ │ └── cleanupregistration.py
├── models.py
├── signals.py
├── tests
│ ├── __init__.py
│ ├── default_backend.py
│ ├── forms.py
│ ├── models.py
│ ├── simple_backend.py
│ └── urls.py
├── urls.py
└── views.py
├── requirements.dev.txt
├── requirements.docker.txt
├── requirements.txt
├── run
└── .gitignore
├── schema
├── __init__.py
├── models.py
└── youps.py
├── scripts
├── new_database.sh
├── new_database_unsafe.sh
└── reset_user.sh
├── smtp_handler
├── Pile.py
├── __init__.py
├── lamson_subclass.py
├── main.py
├── management
│ ├── __init__.py
│ └── commands
│ │ ├── __init__.py
│ │ ├── button.py
│ │ ├── cron_task.py
│ │ ├── digest.py
│ │ ├── mailbot.py
│ │ ├── send_test_mail.py
│ │ ├── youps_test.py
│ │ └── youps_unit_test.py
├── settings.py
└── utils.py
├── tasks-cron-docker
└── tasks-cron-server
/.cache/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/.cache/.gitkeep
--------------------------------------------------------------------------------
/.env.example:
--------------------------------------------------------------------------------
1 | # Please enter your gmail username and password
2 | # Also enable insecure logins
3 | GMAIL_USER=YOUR_GMAIL_ACCOUNT@GMAIL.COM
4 | GMAIL_PASSWORD=YOU_GMAIL_PASSWORD
5 |
6 |
7 |
8 |
9 |
10 | # DONT WORRY ABOUT ANYTHING BELOW HERE.
11 |
12 | # REALLY DONT
13 |
14 | #
15 |
16 | # the databsae we are connecting to
17 | DATABASE_NAME=youps
18 | MYSQL_PASS=YOUR_DATABASE_PASSWORD
19 | DATABASE_HOST=db
20 |
21 | # domain name used for sending emails
22 | DOMAIN_NAME=localhost:8000
23 |
24 | # host used for the relay server
25 | RELAY_HOST=smtp
26 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Ignore all compiled python files.
2 | *.pyc
3 |
4 | # Ignore private file
5 | private.py
6 |
7 | # Ignore all emacs backup files
8 | *.*~
9 |
10 | # Ignore Mac DS_Store Files
11 | .DS_Store
12 |
13 | # Local Settings
14 | local_settings.py
15 |
16 | # migrations
17 | schema/migrations/*
18 |
19 | # Google secrets file
20 | gmail_setup/client_secrets.json
21 |
22 | sandbox/
23 | \.idea/
24 |
25 | \.vscode/
26 |
27 | venv/
28 |
29 | \.python-version
30 | scripts/send_email.py
31 | scripts/better_send_email.py
32 | scripts/oauth2_creds.json
33 | scripts/imap_interact.ini
34 | .history
35 | \.env
36 |
37 | *.lock
38 |
39 | \.pytest_cache/
40 |
41 | imap_config.ini
42 |
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM python:2
2 | ENV PYTHONUNBUFFERED 1
3 | RUN apt-get update && apt-get install -y \
4 | telnet \
5 | default-mysql-client \
6 | cron && \
7 | rm -rf /var/lib/apt/lists/*
8 | RUN mkdir -p /home/ubuntu/production/mailx
9 | WORKDIR /home/ubuntu/production/mailx
10 | COPY ./murmur-env/. /opt/murmur/
11 | COPY tasks-cron-docker /etc/cron.d/tasks-cron
12 | RUN crontab /etc/cron.d/tasks-cron
13 | COPY requirements.docker.txt /home/ubuntu/production/mailx/requirements.txt
14 | RUN pip install -r requirements.txt --no-cache-dir
15 | # COPY . /home/ubuntu/production/mailx/
--------------------------------------------------------------------------------
/browser/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/browser/.DS_Store
--------------------------------------------------------------------------------
/browser/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/browser/__init__.py
--------------------------------------------------------------------------------
/browser/forms.py:
--------------------------------------------------------------------------------
1 | from django import forms
2 |
3 | class UploadFileForm(forms.Form):
4 | title = forms.CharField(max_length=50)
5 | file = forms.FileField()
--------------------------------------------------------------------------------
/browser/templates/404.html:
--------------------------------------------------------------------------------
1 | {% extends website|add:"/base.html" %}
2 |
3 | {% block content %}
4 |
5 |
6 |
7 |
8 |
404 Error
9 |
10 | {{ error }}
11 |
12 |
13 |
14 |
15 | {% endblock %}
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/browser/templates/registration/activate.html:
--------------------------------------------------------------------------------
1 | {% extends website|add:"/base.html" %}
2 | {% block headlink-right %}
3 | {% endblock %}
4 |
5 | {% block content %}
6 |
7 | {% if account %}
8 |
Activation complete
9 |
10 |
11 | Thanks {{ account }}!
12 |
13 |
14 | You may now login .
15 |
16 | {% else %}
17 |
Activation problem
18 |
19 |
20 | Oops – it seems that your activation key is invalid. Please check the url again.
21 |
22 | {% endif %}
23 |
24 | {% endblock %}
25 |
--------------------------------------------------------------------------------
/browser/templates/registration/activation_complete.html:
--------------------------------------------------------------------------------
1 | {% extends website|add:"/base.html" %}
2 | {% block headlink-right %}
3 | {% endblock %}
4 |
5 |
6 | {% block content %}
7 |
8 |
9 |
Activation complete
10 |
11 |
12 | Login
13 |
14 |
15 | {% endblock %}
16 |
17 |
--------------------------------------------------------------------------------
/browser/templates/registration/activation_email.txt:
--------------------------------------------------------------------------------
1 |
2 | Activate account at {{ website | title }}:
3 |
4 | {{ protocol }}://{{ domain }}{% url "registration_activate" activation_key %}
5 |
6 | Link is valid for {{ expiration_days }} days.
7 |
8 |
--------------------------------------------------------------------------------
/browser/templates/registration/activation_email_subject.txt:
--------------------------------------------------------------------------------
1 | Account activation on {{ website | title }}
--------------------------------------------------------------------------------
/browser/templates/registration/login.html:
--------------------------------------------------------------------------------
1 | {% extends website|add:"/base.html" %}
2 |
3 | {% block content %}
4 |
18 |
19 |
20 | {% endblock %}
21 |
--------------------------------------------------------------------------------
/browser/templates/registration/logout.html:
--------------------------------------------------------------------------------
1 | {% extends website|add:"/base.html" %}
2 | {% block headlink-right %}
3 | {% endblock %}
4 | {% block content %}
5 |
6 |
Logged out
7 |
8 |
9 | Login
10 |
11 |
12 | {% endblock %}
13 |
--------------------------------------------------------------------------------
/browser/templates/registration/password_change_done.html:
--------------------------------------------------------------------------------
1 | {% extends website|add:"/base.html" %}
2 | {% block headlink-right %}
3 | {% endblock %}
4 | {% block content %}
5 |
8 | {% endblock %}
9 |
--------------------------------------------------------------------------------
/browser/templates/registration/password_change_form.html:
--------------------------------------------------------------------------------
1 | {% extends website|add:"/base.html" %}
2 | {% block headlink-right %}
3 | {% endblock %}
4 |
5 | {% block content %}
6 |
7 |
15 |
16 | {% endblock %}
--------------------------------------------------------------------------------
/browser/templates/registration/password_reset_complete.html:
--------------------------------------------------------------------------------
1 | {% extends website|add:"/base.html" %}
2 | {% block headlink-right %}
3 | {% endblock %}
4 |
5 | {% block content %}
6 |
7 | Password reset successfully.
8 |
9 |
Log in
10 |
11 | {% endblock %}
--------------------------------------------------------------------------------
/browser/templates/registration/password_reset_confirm.html:
--------------------------------------------------------------------------------
1 | {% extends website|add:"/base.html" %}
2 | {% block headlink-right %}
3 | {% endblock %}
4 |
5 | {% block content %}
6 |
7 |
8 |
Confirm Password Reset
9 |
10 | {% if validlink %}
11 |
12 |
18 |
19 | {% else %}
20 |
21 |
Password reset failed
22 |
23 | {% endif %}
24 |
25 |
26 | {% endblock %}
--------------------------------------------------------------------------------
/browser/templates/registration/password_reset_done.html:
--------------------------------------------------------------------------------
1 | {% extends website|add:"/base.html" %}
2 | {% block headlink-right %}
3 | {% endblock %}
4 |
5 | {% block content %}
6 |
7 |
Email with password reset instructions has been sent.
8 |
9 | {% endblock %}
10 |
--------------------------------------------------------------------------------
/browser/templates/registration/password_reset_email.html:
--------------------------------------------------------------------------------
1 | Reset password at {{ website | title }}:
2 | {% block reset_link %}
3 | {{ protocol }}://{{ domain }}{% url "auth_password_reset_confirm" uidb64=uid token=token %}
4 | {% endblock %}
5 |
--------------------------------------------------------------------------------
/browser/templates/registration/password_reset_form.html:
--------------------------------------------------------------------------------
1 | {% extends website|add:"/base.html" %}
2 | {% block headlink-right %}
3 | {% endblock %}
4 |
5 | {% block content %}
6 |
7 |
15 |
16 | {% endblock %}
--------------------------------------------------------------------------------
/browser/templates/registration/password_reset_subject.txt:
--------------------------------------------------------------------------------
1 | Password reset on {{ website | title }}
--------------------------------------------------------------------------------
/browser/templates/registration/registration_complete.html:
--------------------------------------------------------------------------------
1 | {% extends website|add:"/base.html" %}
2 | {% block headlink-right %}
3 | {% endblock %}
4 |
5 |
6 | {% block content %}
7 |
8 |
Verficiation email sent. Complete verification to continue (check your spam folder if you can't find)
9 |
10 | {% endblock %}
--------------------------------------------------------------------------------
/browser/templates/registration/registration_form.html:
--------------------------------------------------------------------------------
1 | {% extends website|add:"/base.html" %}
2 | {% block headlink-right %}
3 | {% endblock %}
4 | {% block content %}
5 |
6 |
Register Account
7 |
8 | {% if website == 'squadbox' %}
9 |
Note: Squadbox is still in the development and testing phase and thus may have bugs. Please send any feedback to squadbox@mit.edu .
10 |
11 | {% endif %}
12 |
17 |
18 | {% endblock %}
--------------------------------------------------------------------------------
/browser/templates/settings.html:
--------------------------------------------------------------------------------
1 | {% extends website|add:"/base.html" %}
2 |
3 | {% block content %}
4 |
5 |
12 | {% endblock %}
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/browser/templates/youps/components/datetime.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/browser/templates/youps/components/deadline-add.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | Create a deadline event handler
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/browser/templates/youps/components/deadline.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | Save
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/browser/templates/youps/components/email_expandable_row.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{ sender }}
5 | {{ subject }}
6 | {{ date }}
7 |
8 |
9 |
10 |
11 | {% autoescape off %}
12 | {{ params }}
13 | {% endautoescape %}
14 |
25 |
26 |
--------------------------------------------------------------------------------
/browser/templates/youps/components/flag_change-add.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | Create a flag change event handler
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/browser/templates/youps/components/mode.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | {{ new_message }}
10 |
11 | {{ flag_change }}
12 |
13 | {{ deadline }}
14 |
15 | {{ shortcut }}
16 |
17 |
18 |
--------------------------------------------------------------------------------
/browser/templates/youps/components/new_message-add.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | NEW
13 | Create message arrival handler
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/browser/templates/youps/components/shortcut-add.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | Create a shortcut handler
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/browser/templates/youps/components/string.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/browser/templates/youps/tab_content.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/browser/templates/youps/tab_content.html
--------------------------------------------------------------------------------
/browser/templates/youps/test.html:
--------------------------------------------------------------------------------
1 | {% if rule == 'new-message' %}
2 |
3 | immediately
4 |
5 |
6 | {% else %}
7 |
8 | immediately
9 |
10 |
11 | {% endif %}
--------------------------------------------------------------------------------
/config/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/config/__init__.py
--------------------------------------------------------------------------------
/config/boot.py:
--------------------------------------------------------------------------------
1 | from config import settings
2 | from salmon import queue, view
3 | from salmon.routing import Router
4 | from salmon.server import LMTPReceiver, Relay
5 | import logging
6 | import logging.config
7 | import jinja2
8 |
9 | logging.config.fileConfig("config/logging.conf")
10 |
11 | # the relay host to actually send the final message to
12 | settings.relay = Relay(host=settings.relay_config['host'],
13 | port=settings.relay_config['port'], debug=1)
14 |
15 | # where to listen for incoming messages
16 | settings.receiver = LMTPReceiver(settings.receiver_config['host'],
17 | settings.receiver_config['port'])
18 |
19 | Router.defaults(**settings.router_defaults)
20 | Router.load(settings.handlers)
21 | Router.RELOAD=True
22 | Router.UNDELIVERABLE_QUEUE=queue.Queue("run/undeliverable")
23 |
24 | view.LOADER = jinja2.Environment(
25 | loader=jinja2.PackageLoader(settings.template_config['dir'],
26 | settings.template_config['module']))
--------------------------------------------------------------------------------
/config/logging.conf:
--------------------------------------------------------------------------------
1 | [loggers]
2 | keys=root,routing
3 |
4 | [handlers]
5 | keys=fileHandler
6 |
7 | [formatters]
8 | keys=defaultFormatter
9 |
10 | [logger_root]
11 | level=DEBUG
12 | handlers=fileHandler
13 |
14 | [logger_routing]
15 | level=DEBUG
16 | handlers=fileHandler
17 | qualname=routing
18 | propagate=0
19 |
20 | [handler_fileHandler]
21 | # this works using FileHandler
22 | class=FileHandler
23 | # If you have Python2.6 you can use this and it will work when you use logrotate
24 | #class=WatchedFileHandler
25 | level=INFO
26 | formatter=defaultFormatter
27 | args=("logs/murmur_smtp.log",)
28 |
29 | [formatter_defaultFormatter]
30 | format=%(asctime)s %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s
31 | datefmt=
32 |
--------------------------------------------------------------------------------
/config/settings.py:
--------------------------------------------------------------------------------
1 | # This file contains python variables that configure Lamson for email processing.
2 | import sys
3 | import logging
4 | import os
5 |
6 | # You may add additional parameters such as `username' and `password' if your
7 | # relay server requires authentication, `starttls' (boolean) or `ssl' (boolean)
8 | # for secure connections.
9 | relay_config = {'host': os.getenv('RELAY_HOST', 'localhost'), 'port': 8825 }
10 |
11 | receiver_config = {'host': 'localhost', 'port': 8823}
12 |
13 | handlers = ['smtp_handler.main']
14 |
15 | # router_defaults = {'host': '\*\\.mit\\.edu'}
16 | router_defaults = {'host': '.+'}
17 |
18 | template_config = {'dir': 'smtp_handler', 'module': 'templates'}
19 |
20 | # hook django
21 | import os
22 | import django
23 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "http_handler.settings")
24 |
25 | django.setup()
26 | # the config/boot.py will turn these values into variables set in settings
27 |
--------------------------------------------------------------------------------
/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "3"
2 |
3 | services:
4 | db:
5 | image: mysql:5.7
6 | environment:
7 | - MYSQL_ROOT_PASSWORD=${MYSQL_PASS}
8 | volumes:
9 | - youps-db:/var/lib/mysql
10 | restart: always
11 | web:
12 | build: .
13 | container_name: youps_web
14 | command: bash -c "salmon start --force & cron; python manage.py runserver 0.0.0.0:8000"
15 | volumes:
16 | - .:/home/ubuntu/production/mailx
17 | ports:
18 | - "8000:8000"
19 | depends_on:
20 | - db
21 | - smtp
22 | environment:
23 | # - DJANGO_SETTINGS_MODULE="http_handler.settings"
24 | - RELAY_HOST=${RELAY_HOST} # only for local development
25 | - DATABASE_NAME=${DATABASE_NAME}
26 | - MYSQL_PASS=${MYSQL_PASS}
27 | - DOMAIN_NAME=${DOMAIN_NAME}
28 | - DATABASE_HOST=${DATABASE_HOST}
29 | restart: on-failure
30 | smtp:
31 | image: namshi/smtp
32 | expose:
33 | - 8825
34 | environment:
35 | - GMAIL_USER=${GMAIL_USER}
36 | - GMAIL_PASSWORD=${GMAIL_PASSWORD}
37 | - PORT=8825
38 | restart: always
39 | volumes:
40 | youps-db:
41 |
--------------------------------------------------------------------------------
/docs.json:
--------------------------------------------------------------------------------
1 | {
2 | "example": [
3 | {
4 | "votes": "0",
5 | "title": "Mark emails with more than 10 recipients as low priority",
6 | "description": "This rule can help with marking emails in mass newsletters as low priority. ",
7 | "code": "# include any code of the example \ndef on_message(msg): \n if len(msg.to + msg.cc + msg.bcc) > 10:\n message.add_flags([\"low\"])"
8 | },
9 | {
10 | "votes": "0",
11 | "title": "Mark emails with more than 10 recipients and last three messages from sender are unread as low priority",
12 | "description": "This rule can help with marking emails in mass newletters as low priority while filtering out those emails which you actually want to read.",
13 | "code": "# include any code of the example def on_message(msg): \n sender = message.from\n prev_msgs = sender.recent_messages(3)\n if all([not prev_msg.is_read for prev_msg in prev_msgs]):\n if len(msg.to + msg.cc + msg.bcc) > 10:\n msg.add_flags([\"low\"])"
14 | }
15 | ]
16 | }
--------------------------------------------------------------------------------
/engine/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/engine/__init__.py
--------------------------------------------------------------------------------
/engine/constants.py:
--------------------------------------------------------------------------------
1 | import re
2 | MAX_GROUP_NAME_LENGTH = 20
3 | MAX_GROUP_DESC_LENGTH = 140
4 |
5 | msg_code={
6 | 'USER_DOES_NOT_EXIST': 'User %s does not exist in Murmur system.',
7 | 'PRIVILEGE_ERROR': 'Do not have the required privileges',
8 | 'NOT_MEMBER': 'Not a member of this Group',
9 | 'NOT_MEMBERS': '%s cannot be added sicne they are not a member of this group',
10 | 'DUPLICATE_ERROR': 'Name already exists',
11 | 'GROUP_NOT_FOUND_ERROR': 'Group not found',
12 | 'POST_NOT_FOUND_ERROR': 'Post not found',
13 | 'THREAD_NOT_FOUND_ERROR': 'Thread not found',
14 | 'TAG_NOT_FOUND_ERROR': 'Tag not found',
15 | 'OWNER_UNSUBSCRIBE_ERROR': 'Can not unsubscribe the owner',
16 | 'REQUEST_ERROR': 'Incorrect request parameters',
17 | 'INCORRECT_GROUP_NAME': 'Group name cannot be of this format',
18 | 'MAX_GROUP_NAME_LENGTH': 'Group name is too long',
19 | 'MAX_GROUP_DESC_LENGTH': 'Group description is too long',
20 | 'UNKNOWN_ERROR': 'Unknown',
21 | 'INVALID_STATUS_ERROR' : '%s is not a valid post status',
22 | }
23 |
24 | def extract_hash_tags(s):
25 | s = re.sub("<.*?>", " ", s)
26 | s = re.sub(" ", " ", s)
27 |
28 | tags = [re.sub(r'\W+', '', part).lower() for part in s.split() if part.startswith('#') and not part[1:].isdigit()]
29 |
30 | first_three = set()
31 | for t in tags:
32 | first_three.add(t)
33 | if len(first_three) == 3: break
34 | return first_three
35 |
36 | ALLOWED_MESSAGE_STATUSES = {
37 | 'R' : 'rejected',
38 | 'P' : 'pending',
39 | 'A' : 'approved'
40 | }
41 |
--------------------------------------------------------------------------------
/engine/main.py:
--------------------------------------------------------------------------------
1 | import base64, email, hashlib, json, logging, random, re, requests, sys, time
2 |
3 | from bleach import clean
4 | from cgi import escape
5 | from datetime import timedelta
6 | from django.utils.timezone import utc
7 | from django.db.models import Q
8 | from email.utils import parseaddr
9 | from html2text import html2text
10 | from salmon.mail import MailResponse
11 | from pytz import utc
12 |
13 | from browser.util import *
14 | from engine.constants import *
15 | from engine.google_auth import *
16 | from engine.constants import extract_hash_tags, ALLOWED_MESSAGE_STATUSES
17 | from gmail_setup.api import update_gmail_filter, untrash_message
18 | from gmail_setup.views import build_services
19 | from http_handler.settings import BASE_URL, WEBSITE, AWS_STORAGE_BUCKET_NAME, PERSPECTIVE_KEY, IMAP_SECRET
20 | from engine.s3_storage import upload_attachments, download_attachments, download_message
21 | from schema.models import *
22 | from smtp_handler.utils import *
23 |
24 | from engine.youps import get_deltas_cursors, login_imap, fetch_execution_log, apply_button_rule, create_mailbot_mode, fetch_watch_message, delete_mailbot_mode, remove_rule, run_mailbot, run_simulate_on_messages, save_shortcut, handle_imap_idle
25 |
26 | def format_date_time(d):
27 | return datetime.strftime(d, '%Y/%m/%d %H:%M:%S')
28 |
29 |
--------------------------------------------------------------------------------
/engine/models/__init__.py:
--------------------------------------------------------------------------------
1 | # # this was creating circular import errors
2 | # from folder import Folder
3 | # from contact import Contact
4 | # from message import Message
5 | # from event_data import (MessageArrivalData, NewMessageDataScheduled, NewMessageDataDue,
6 | # AbstractEventData, NewFlagsData, RemovedFlagsData, MessageMovedData)
7 | # from thread import Thread
8 | # from mailbox import Mailbox
9 | # __all__ = ["Mailbox", "Thread", "Contact", "Folder", "Message",
10 | # "MessageArrivalData", "NewMessageDataScheduled",
11 | # "NewMessageDataDue", "AbstractEventData", "NewFlagsData",
12 | # "RemovedFlagsData", "MessageMovedData"
13 | # ]
14 |
--------------------------------------------------------------------------------
/engine/models/helpers/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/engine/models/helpers/__init__.py
--------------------------------------------------------------------------------
/engine/models/icalevents/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | iCalEvents search all events occurring in a given time frame in an iCal file.
3 | """
4 |
5 | __all__ = ["icaldownload", "icalparser", "icalevents"]
6 |
--------------------------------------------------------------------------------
/engine/parser/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/engine/parser/__init__.py
--------------------------------------------------------------------------------
/formEmails/logEditURL.js:
--------------------------------------------------------------------------------
1 | // store the edit link for the form in the spreadsheet
2 | function storeEditURL(e) {
3 | var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Form Responses 1');
4 | var urlCol = 28;
5 | var row = Math.floor(sheet.getLastRow());
6 | var resIndex = row - 2;
7 | var form = FormApp.openByUrl('');
8 | var editLink = form.getResponses()[resIndex].getEditResponseUrl();
9 | sheet.getRange(row, urlCol).setValue([editLink]);
10 | }
--------------------------------------------------------------------------------
/gmail_setup/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/gmail_setup/__init__.py
--------------------------------------------------------------------------------
/gmail_setup/admin.py:
--------------------------------------------------------------------------------
1 | from django.contrib import admin
2 |
3 | # Register your models here.
4 |
--------------------------------------------------------------------------------
/gmail_setup/tests.py:
--------------------------------------------------------------------------------
1 | from django.test import TestCase
2 |
3 | # Create your tests here.
4 |
--------------------------------------------------------------------------------
/gmail_setup/urls.py:
--------------------------------------------------------------------------------
1 | from django.conf.urls import patterns, include, url
2 | from . import views
3 |
4 | urlpatterns = patterns(
5 | '',
6 | url(r'^$', views.index, name='index'),
7 | url(r'authorize', views.auth, name='auth'),
8 | url(r'callback', views.auth_return, name='return'),
9 | url(r'import', views.import_start, name='import'),
10 | url(r'initial_filters', views.initial_filters, name='initial_filters'),
11 | url(r'done', views.index, name='done'),
12 | url(r'forget', views.deauth, name='forget'),
13 | )
--------------------------------------------------------------------------------
/http_handler/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/__init__.py
--------------------------------------------------------------------------------
/http_handler/static/css/third-party/images/ui-bg_diagonals-thick_18_b81900_40x40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/css/third-party/images/ui-bg_diagonals-thick_18_b81900_40x40.png
--------------------------------------------------------------------------------
/http_handler/static/css/third-party/images/ui-bg_diagonals-thick_20_666666_40x40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/css/third-party/images/ui-bg_diagonals-thick_20_666666_40x40.png
--------------------------------------------------------------------------------
/http_handler/static/css/third-party/images/ui-bg_flat_10_000000_40x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/css/third-party/images/ui-bg_flat_10_000000_40x100.png
--------------------------------------------------------------------------------
/http_handler/static/css/third-party/images/ui-bg_glass_100_f6f6f6_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/css/third-party/images/ui-bg_glass_100_f6f6f6_1x400.png
--------------------------------------------------------------------------------
/http_handler/static/css/third-party/images/ui-bg_glass_100_fdf5ce_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/css/third-party/images/ui-bg_glass_100_fdf5ce_1x400.png
--------------------------------------------------------------------------------
/http_handler/static/css/third-party/images/ui-bg_glass_65_ffffff_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/css/third-party/images/ui-bg_glass_65_ffffff_1x400.png
--------------------------------------------------------------------------------
/http_handler/static/css/third-party/images/ui-bg_gloss-wave_35_f6a828_500x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/css/third-party/images/ui-bg_gloss-wave_35_f6a828_500x100.png
--------------------------------------------------------------------------------
/http_handler/static/css/third-party/images/ui-bg_highlight-soft_100_eeeeee_1x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/css/third-party/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
--------------------------------------------------------------------------------
/http_handler/static/css/third-party/images/ui-bg_highlight-soft_75_ffe45c_1x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/css/third-party/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
--------------------------------------------------------------------------------
/http_handler/static/css/third-party/images/ui-icons_222222_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/css/third-party/images/ui-icons_222222_256x240.png
--------------------------------------------------------------------------------
/http_handler/static/css/third-party/images/ui-icons_228ef1_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/css/third-party/images/ui-icons_228ef1_256x240.png
--------------------------------------------------------------------------------
/http_handler/static/css/third-party/images/ui-icons_ef8c08_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/css/third-party/images/ui-icons_ef8c08_256x240.png
--------------------------------------------------------------------------------
/http_handler/static/css/third-party/images/ui-icons_ffd27a_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/css/third-party/images/ui-icons_ffd27a_256x240.png
--------------------------------------------------------------------------------
/http_handler/static/css/third-party/images/ui-icons_ffffff_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/css/third-party/images/ui-icons_ffffff_256x240.png
--------------------------------------------------------------------------------
/http_handler/static/css/youps/docs/fonts/LibreBodoniBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/css/youps/docs/fonts/LibreBodoniBold.ttf
--------------------------------------------------------------------------------
/http_handler/static/css/youps/docs/fonts/LibreBodoniRegular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/css/youps/docs/fonts/LibreBodoniRegular.ttf
--------------------------------------------------------------------------------
/http_handler/static/css/youps/docs/fonts/mavo-icons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/css/youps/docs/fonts/mavo-icons.woff
--------------------------------------------------------------------------------
/http_handler/static/css/youps/history_table.css:
--------------------------------------------------------------------------------
1 |
2 | #console-table .label-info {
3 | text-align: left;
4 | max-width: 300px;
5 | min-width: 150px;
6 | white-space: normal;
7 | }
--------------------------------------------------------------------------------
/http_handler/static/css/youps/libs/jquery.switchButton.css:
--------------------------------------------------------------------------------
1 | .switch-button-label {
2 | float: left;
3 |
4 | font-size: 10pt;
5 | cursor: pointer;
6 | }
7 |
8 | .switch-button-label.off {
9 | color: #adadad;
10 | }
11 |
12 | .switch-button-label.on {
13 | color: #0088CC;
14 | }
15 |
16 | .switch-button-background {
17 | float: left;
18 | position: relative;
19 |
20 | background: #ccc;
21 | border: 1px solid #aaa;
22 |
23 | margin: 1px 10px;
24 |
25 | -webkit-border-radius: 4px;
26 | -moz-border-radius: 4px;
27 | border-radius: 4px;
28 |
29 | cursor: pointer;
30 | }
31 |
32 | .switch-button-button {
33 | position: absolute;
34 |
35 | left: -1px;
36 | top : -1px;
37 |
38 | background: #FAFAFA;
39 | border: 1px solid #aaa;
40 |
41 | -webkit-border-radius: 4px;
42 | -moz-border-radius: 4px;
43 | border-radius: 4px;
44 | }
45 |
--------------------------------------------------------------------------------
/http_handler/static/css/youps/libs/show-hint.css:
--------------------------------------------------------------------------------
1 | .CodeMirror-hints {
2 | position: absolute;
3 | z-index: 10;
4 | overflow: hidden;
5 | list-style: none;
6 |
7 | margin: 0;
8 | padding: 2px;
9 |
10 | -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
11 | -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
12 | box-shadow: 2px 3px 5px rgba(0,0,0,.2);
13 | border-radius: 3px;
14 | border: 1px solid silver;
15 |
16 | background: white;
17 | font-size: 90%;
18 | font-family: monospace;
19 |
20 | max-height: 20em;
21 | overflow-y: auto;
22 | }
23 |
24 | .CodeMirror-hint {
25 | margin: 0;
26 | padding: 0 4px;
27 | border-radius: 2px;
28 | white-space: pre;
29 | color: black;
30 | cursor: pointer;
31 | }
32 |
33 | li.CodeMirror-hint-active {
34 | background: #08f;
35 | color: white;
36 | }
37 |
--------------------------------------------------------------------------------
/http_handler/static/filters/tag_archive_rejected.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Label and Archive Rejected
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/http_handler/static/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/http_handler/static/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/http_handler/static/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/http_handler/static/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/http_handler/static/gif/gmail_low_640.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/gif/gmail_low_640.gif
--------------------------------------------------------------------------------
/http_handler/static/gif/thunderbird_low_640.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/gif/thunderbird_low_640.gif
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/android-chrome-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/android-chrome-144x144.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/android-chrome-192x192.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/android-chrome-36x36.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/android-chrome-36x36.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/android-chrome-48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/android-chrome-48x48.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/android-chrome-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/android-chrome-72x72.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/android-chrome-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/android-chrome-96x96.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/android-chrome-manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Murmur",
3 | "icons": [
4 | {
5 | "src": "\/android-chrome-36x36.png",
6 | "sizes": "36x36",
7 | "type": "image\/png",
8 | "density": "0.75"
9 | },
10 | {
11 | "src": "\/android-chrome-48x48.png",
12 | "sizes": "48x48",
13 | "type": "image\/png",
14 | "density": "1.0"
15 | },
16 | {
17 | "src": "\/android-chrome-72x72.png",
18 | "sizes": "72x72",
19 | "type": "image\/png",
20 | "density": "1.5"
21 | },
22 | {
23 | "src": "\/android-chrome-96x96.png",
24 | "sizes": "96x96",
25 | "type": "image\/png",
26 | "density": "2.0"
27 | },
28 | {
29 | "src": "\/android-chrome-144x144.png",
30 | "sizes": "144x144",
31 | "type": "image\/png",
32 | "density": "3.0"
33 | },
34 | {
35 | "src": "\/android-chrome-192x192.png",
36 | "sizes": "192x192",
37 | "type": "image\/png",
38 | "density": "4.0"
39 | }
40 | ]
41 | }
42 |
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/apple-touch-icon-114x114.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/apple-touch-icon-114x114.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/apple-touch-icon-120x120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/apple-touch-icon-120x120.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/apple-touch-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/apple-touch-icon-144x144.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/apple-touch-icon-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/apple-touch-icon-152x152.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/apple-touch-icon-180x180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/apple-touch-icon-180x180.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/apple-touch-icon-57x57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/apple-touch-icon-57x57.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/apple-touch-icon-60x60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/apple-touch-icon-60x60.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/apple-touch-icon-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/apple-touch-icon-72x72.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/apple-touch-icon-76x76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/apple-touch-icon-76x76.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/apple-touch-icon-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/apple-touch-icon-precomposed.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/apple-touch-icon.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | #da532c
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/favicon-16x16.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/favicon-194x194.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/favicon-194x194.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/favicon-32x32.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/favicon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/favicon-96x96.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/favicon.ico
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/mstile-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/mstile-144x144.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/mstile-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/mstile-150x150.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/mstile-310x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/mstile-310x150.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/mstile-310x310.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/mstile-310x310.png
--------------------------------------------------------------------------------
/http_handler/static/images/favicon/mstile-70x70.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/favicon/mstile-70x70.png
--------------------------------------------------------------------------------
/http_handler/static/images/icons/Circle_Blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/icons/Circle_Blue.png
--------------------------------------------------------------------------------
/http_handler/static/images/icons/Circle_Green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/icons/Circle_Green.png
--------------------------------------------------------------------------------
/http_handler/static/images/icons/Circle_Grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/icons/Circle_Grey.png
--------------------------------------------------------------------------------
/http_handler/static/images/icons/Circle_Orange.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/icons/Circle_Orange.png
--------------------------------------------------------------------------------
/http_handler/static/images/icons/Circle_Red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/icons/Circle_Red.png
--------------------------------------------------------------------------------
/http_handler/static/images/icons/Circle_Yellow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/icons/Circle_Yellow.png
--------------------------------------------------------------------------------
/http_handler/static/images/icons/terminal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/icons/terminal.png
--------------------------------------------------------------------------------
/http_handler/static/images/murmurations/2115134127_9c074ca2b2_o.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/murmurations/2115134127_9c074ca2b2_o.jpg
--------------------------------------------------------------------------------
/http_handler/static/images/murmurations/4227228_6bdfe3543e_o.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/murmurations/4227228_6bdfe3543e_o.jpg
--------------------------------------------------------------------------------
/http_handler/static/images/murmurations/4227243_a0587ccefe_o.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/murmurations/4227243_a0587ccefe_o.jpg
--------------------------------------------------------------------------------
/http_handler/static/images/murmurations/4483398_dbd42c5993_o.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/murmurations/4483398_dbd42c5993_o.jpg
--------------------------------------------------------------------------------
/http_handler/static/images/murmurations/4483522_fbbf80a6ca_o.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/murmurations/4483522_fbbf80a6ca_o.jpg
--------------------------------------------------------------------------------
/http_handler/static/images/murmurations/4483546_9a1a9906e4_o.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/murmurations/4483546_9a1a9906e4_o.jpg
--------------------------------------------------------------------------------
/http_handler/static/images/murmurations/4483577_fec76ad00f_o.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/murmurations/4483577_fec76ad00f_o.jpg
--------------------------------------------------------------------------------
/http_handler/static/images/murmurations/6507188799_8474f9775a_o.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/murmurations/6507188799_8474f9775a_o.jpg
--------------------------------------------------------------------------------
/http_handler/static/images/no-img-selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/no-img-selected.png
--------------------------------------------------------------------------------
/http_handler/static/images/select_folder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/select_folder.png
--------------------------------------------------------------------------------
/http_handler/static/images/sort_asc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/sort_asc.png
--------------------------------------------------------------------------------
/http_handler/static/images/sort_asc_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/sort_asc_disabled.png
--------------------------------------------------------------------------------
/http_handler/static/images/sort_both.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/sort_both.png
--------------------------------------------------------------------------------
/http_handler/static/images/sort_desc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/sort_desc.png
--------------------------------------------------------------------------------
/http_handler/static/images/sort_desc_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/sort_desc_disabled.png
--------------------------------------------------------------------------------
/http_handler/static/images/spinner.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/spinner.gif
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/android-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/android-icon-144x144.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/android-icon-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/android-icon-192x192.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/android-icon-36x36.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/android-icon-36x36.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/android-icon-48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/android-icon-48x48.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/android-icon-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/android-icon-72x72.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/android-icon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/android-icon-96x96.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/apple-icon-114x114.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/apple-icon-114x114.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/apple-icon-120x120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/apple-icon-120x120.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/apple-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/apple-icon-144x144.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/apple-icon-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/apple-icon-152x152.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/apple-icon-180x180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/apple-icon-180x180.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/apple-icon-57x57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/apple-icon-57x57.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/apple-icon-60x60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/apple-icon-60x60.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/apple-icon-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/apple-icon-72x72.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/apple-icon-76x76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/apple-icon-76x76.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/apple-icon-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/apple-icon-precomposed.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/apple-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/apple-icon.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 | #ffffff
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/favicon-16x16.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/favicon-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/favicon-192x192.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/favicon-32x32.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/favicon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/favicon-96x96.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/favicon.ico
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "App",
3 | "icons": [
4 | {
5 | "src": "\/android-icon-36x36.png",
6 | "sizes": "36x36",
7 | "type": "image\/png",
8 | "density": "0.75"
9 | },
10 | {
11 | "src": "\/android-icon-48x48.png",
12 | "sizes": "48x48",
13 | "type": "image\/png",
14 | "density": "1.0"
15 | },
16 | {
17 | "src": "\/android-icon-72x72.png",
18 | "sizes": "72x72",
19 | "type": "image\/png",
20 | "density": "1.5"
21 | },
22 | {
23 | "src": "\/android-icon-96x96.png",
24 | "sizes": "96x96",
25 | "type": "image\/png",
26 | "density": "2.0"
27 | },
28 | {
29 | "src": "\/android-icon-144x144.png",
30 | "sizes": "144x144",
31 | "type": "image\/png",
32 | "density": "3.0"
33 | },
34 | {
35 | "src": "\/android-icon-192x192.png",
36 | "sizes": "192x192",
37 | "type": "image\/png",
38 | "density": "4.0"
39 | }
40 | ]
41 | }
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/ms-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/ms-icon-144x144.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/ms-icon-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/ms-icon-150x150.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/ms-icon-310x310.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/ms-icon-310x310.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/favicon/ms-icon-70x70.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/favicon/ms-icon-70x70.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/kaitlin.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/kaitlin.jpg
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/karger.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/karger.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/pic2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/pic2.jpg
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/squadbox_diagram1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/squadbox_diagram1.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/squadbox_diagram2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/squadbox_diagram2.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/squadbox_logo4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/squadbox_logo4.png
--------------------------------------------------------------------------------
/http_handler/static/images/squadbox/twitter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/images/squadbox/twitter.png
--------------------------------------------------------------------------------
/http_handler/static/javascript/add_blacklist.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function() {
2 |
3 | var group_name = $.trim($("#group-name").text()),
4 | btn_add_blacklist = $("#btn-add-blacklist");
5 |
6 |
7 | btn_add_blacklist.click(function() {
8 | var params = {
9 | 'group_name': group_name,
10 | 'senders': $('#new-blacklist-emails').val(),
11 | };
12 |
13 | $.post('/blacklist', params,
14 | function(res) {
15 | if (res.status) $('#new-blacklist-emails').val("");
16 | notify(res, true);
17 | }
18 | );
19 | });
20 |
21 | $(".default-text").blur();
22 | tinyMCE.init({
23 | mode: "textareas",
24 | theme: "advanced",
25 | theme_advanced_buttons1: "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,blockquote",
26 | theme_advanced_toolbar_location: "top",
27 | theme_advanced_toolbar_align: "left",
28 | theme_advanced_statusbar_location: "bottom",
29 | theme_advanced_resizing: true
30 | });
31 |
32 | });
--------------------------------------------------------------------------------
/http_handler/static/javascript/add_members.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function() {
2 |
3 | var website = $("#website-name").text();
4 | var group_name = $.trim($("#group-name").text());
5 |
6 | var btn_add_members = $("#btn-add-members");
7 |
8 | btn_add_members.click(function() {
9 | var params = {
10 | 'group_name': group_name,
11 | 'emails': $('#new-member-emails').val(),
12 | };
13 | params.add_as_mods = (website == "squadbox");
14 |
15 | $.post('/add_members', params,
16 | function(res) {
17 | if (res.status) $('#new-member-emails').val("");
18 | notify(res, true);
19 | }
20 | );
21 | });
22 |
23 | $(".default-text").blur();
24 | tinyMCE.init({
25 | mode: "textareas",
26 | theme: "advanced",
27 | theme_advanced_buttons1: "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,blockquote",
28 | theme_advanced_toolbar_location: "top",
29 | theme_advanced_toolbar_align: "left",
30 | theme_advanced_statusbar_location: "bottom",
31 | theme_advanced_resizing: true
32 | });
33 |
34 | });
--------------------------------------------------------------------------------
/http_handler/static/javascript/add_whitelist.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function() {
2 |
3 | var group_name = $.trim($("#group-name").text()),
4 | btn_add_whitelist = $("#btn-add-whitelist");
5 |
6 | btn_add_whitelist.click(function() {
7 | var params = {
8 | 'group_name': group_name,
9 | 'senders': $('#new-whitelist-emails').val(),
10 | };
11 |
12 | $.post('/whitelist', params,
13 | function(res) {
14 | if (res.status) $('#new-whitelist-emails').val("");
15 | notify(res, true);
16 | }
17 | );
18 | });
19 |
20 | $(".default-text").blur();
21 | tinyMCE.init({
22 | mode: "textareas",
23 | theme: "advanced",
24 | theme_advanced_buttons1: "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,blockquote",
25 | theme_advanced_toolbar_location: "top",
26 | theme_advanced_toolbar_align: "left",
27 | theme_advanced_statusbar_location: "bottom",
28 | theme_advanced_resizing: true
29 | });
30 |
31 | });
--------------------------------------------------------------------------------
/http_handler/static/javascript/bind.js:
--------------------------------------------------------------------------------
1 | /* To avoid closure */
2 | function bind(fnc, val ) {
3 | return function () {
4 | return fnc(val);
5 | };
6 | }
--------------------------------------------------------------------------------
/http_handler/static/javascript/notify.js:
--------------------------------------------------------------------------------
1 | function notify(res, on_success){
2 | if(!res.status){
3 | noty({text: "Error: " + res.code, dismissQueue: true, timeout:2000, force: true, type: 'error', layout: 'topRight'});
4 | }else{
5 | if(on_success){
6 | noty({text: "Success!", dismissQueue: true, timeout:2000, force: true, type:'success', layout: 'topRight'});
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/http_handler/static/javascript/pagination.js:
--------------------------------------------------------------------------------
1 | var current_page = 1;
2 | allowScroll = true;
3 |
4 | function loadMorePosts(current_page){
5 | $.ajax({
6 | method: 'POST',
7 | url: '/post_list?page=' + current_page,
8 | data: {},
9 | success: function (data) {
10 | $('#loading').hide();
11 | if ($(data).find("#post-list-table").children().length == 0){
12 | allowScroll = false;
13 | $('#nomoreposts').show();
14 | } else {
15 | $("#post-list-table").append($(data).find("#post-list-table").html());
16 | allowScroll = true;
17 | }
18 | },
19 | error: function (data) {
20 | console.log("Error loading posts.");
21 | console.log(data);
22 | }
23 | });
24 | }
25 |
26 | $(window).scroll(function() {
27 | var hT = $('#scroll_trigger').offset().top,
28 | wH = $(window).height(),
29 | wS = $(this).scrollTop();
30 | if (wS > (hT-wH)){
31 | if (allowScroll){
32 | $('#loading').show();
33 | current_page += 1;
34 | loadMorePosts(current_page);
35 | allowScroll = false;
36 | }
37 | }
38 | });
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/ckeditor/config.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
3 | * For licensing, see LICENSE.md or http://ckeditor.com/license
4 | */
5 |
6 | CKEDITOR.editorConfig = function( config ) {
7 | // Define changes to default configuration here.
8 | // For complete reference see:
9 | // http://docs.ckeditor.com/#!/api/CKEDITOR.config
10 |
11 | // The toolbar groups arrangement, optimized for two toolbar rows.
12 | config.toolbarGroups = [
13 | { name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
14 | { name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ] },
15 | { name: 'links' },
16 | { name: 'insert' },
17 | { name: 'forms' },
18 | { name: 'tools' },
19 | { name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
20 | { name: 'others' },
21 | '/',
22 | { name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
23 | { name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] },
24 | { name: 'styles' },
25 | { name: 'colors' },
26 | { name: 'about' }
27 | ];
28 |
29 | // Remove some buttons provided by the standard plugins, which are
30 | // not needed in the Standard(s) toolbar.
31 | config.removeButtons = 'Underline,Subscript,Superscript';
32 |
33 | // Set the most common block elements.
34 | config.format_tags = 'p;h1;h2;h3;pre';
35 |
36 | // Simplify the dialog windows.
37 | config.removeDialogTabs = 'image:advanced;link:advanced';
38 | };
39 |
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
2 | For licensing, see LICENSE.md or http://ckeditor.com/license
3 |
4 | cs.js Found: 30 Missing: 0
5 | cy.js Found: 30 Missing: 0
6 | da.js Found: 12 Missing: 18
7 | de.js Found: 30 Missing: 0
8 | el.js Found: 25 Missing: 5
9 | eo.js Found: 30 Missing: 0
10 | fa.js Found: 30 Missing: 0
11 | fi.js Found: 30 Missing: 0
12 | fr.js Found: 30 Missing: 0
13 | gu.js Found: 12 Missing: 18
14 | he.js Found: 30 Missing: 0
15 | it.js Found: 30 Missing: 0
16 | mk.js Found: 5 Missing: 25
17 | nb.js Found: 30 Missing: 0
18 | nl.js Found: 30 Missing: 0
19 | no.js Found: 30 Missing: 0
20 | pt-br.js Found: 30 Missing: 0
21 | ro.js Found: 6 Missing: 24
22 | tr.js Found: 30 Missing: 0
23 | ug.js Found: 27 Missing: 3
24 | vi.js Found: 6 Missing: 24
25 | zh-cn.js Found: 30 Missing: 0
26 |
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/ckeditor/plugins/dialog/dialogDefinition.js:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
3 | For licensing, see LICENSE.md or http://ckeditor.com/license
4 | */
5 |
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/ckeditor/plugins/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/ckeditor/plugins/icons.png
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/ckeditor/plugins/icons_hidpi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/ckeditor/plugins/icons_hidpi.png
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/ckeditor/plugins/image/images/noimage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/ckeditor/plugins/image/images/noimage.png
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/ckeditor/plugins/link/images/anchor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/ckeditor/plugins/link/images/anchor.png
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/ckeditor/plugins/link/images/hidpi/anchor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/ckeditor/plugins/link/images/hidpi/anchor.png
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/ckeditor/samples/assets/inlineall/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/ckeditor/samples/assets/inlineall/logo.png
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/ckeditor/samples/assets/sample.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/ckeditor/samples/assets/sample.jpg
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/ckeditor/samples/assets/uilanguages/languages.js:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
3 | For licensing, see LICENSE.md or http://ckeditor.com/license
4 | */
5 | var CKEDITOR_LANGS=function(){var c={af:"Afrikaans",ar:"Arabic",bg:"Bulgarian",bn:"Bengali/Bangla",bs:"Bosnian",ca:"Catalan",cs:"Czech",cy:"Welsh",da:"Danish",de:"German",el:"Greek",en:"English","en-au":"English (Australia)","en-ca":"English (Canadian)","en-gb":"English (United Kingdom)",eo:"Esperanto",es:"Spanish",et:"Estonian",eu:"Basque",fa:"Persian",fi:"Finnish",fo:"Faroese",fr:"French","fr-ca":"French (Canada)",gl:"Galician",gu:"Gujarati",he:"Hebrew",hi:"Hindi",hr:"Croatian",hu:"Hungarian",id:"Indonesian",
6 | is:"Icelandic",it:"Italian",ja:"Japanese",ka:"Georgian",km:"Khmer",ko:"Korean",ku:"Kurdish",lt:"Lithuanian",lv:"Latvian",mk:"Macedonian",mn:"Mongolian",ms:"Malay",nb:"Norwegian Bokmal",nl:"Dutch",no:"Norwegian",pl:"Polish",pt:"Portuguese (Portugal)","pt-br":"Portuguese (Brazil)",ro:"Romanian",ru:"Russian",si:"Sinhala",sk:"Slovak",sq:"Albanian",sl:"Slovenian",sr:"Serbian (Cyrillic)","sr-latn":"Serbian (Latin)",sv:"Swedish",th:"Thai",tr:"Turkish",tt:"Tatar",ug:"Uighur",uk:"Ukrainian",vi:"Vietnamese",
7 | zh:"Chinese Traditional","zh-cn":"Chinese Simplified"},b=[],a;for(a in CKEDITOR.lang.languages)b.push({code:a,name:c[a]||a});b.sort(function(a,b){return a.name
2 |
3 | -------------------------------------------------------------------------------------------
4 | CKEditor - Posted Data
5 |
6 | We are sorry, but your Web server does not support the PHP language used in this script.
7 |
8 | Please note that CKEditor can be used with any other server-side language than just PHP.
9 | To save the content created with CKEditor you need to read the POST data on the server
10 | side and write it to a file or the database.
11 |
12 | Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
13 | For licensing, see LICENSE.md or http://ckeditor.com/license
14 | -------------------------------------------------------------------------------------------
15 |
16 |
9 |
10 |
20 |
21 | */ include "assets/posteddata.php"; ?>
17 |
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/ckeditor/skins/office2013/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/ckeditor/skins/office2013/icons.png
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/ckeditor/skins/office2013/icons_hidpi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/ckeditor/skins/office2013/icons_hidpi.png
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/ckeditor/skins/office2013/images/arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/ckeditor/skins/office2013/images/arrow.png
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/ckeditor/skins/office2013/images/close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/ckeditor/skins/office2013/images/close.png
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/ckeditor/skins/office2013/images/hidpi/close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/ckeditor/skins/office2013/images/hidpi/close.png
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/ckeditor/skins/office2013/images/hidpi/lock-open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/ckeditor/skins/office2013/images/hidpi/lock-open.png
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/ckeditor/skins/office2013/images/hidpi/lock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/ckeditor/skins/office2013/images/hidpi/lock.png
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/ckeditor/skins/office2013/images/hidpi/refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/ckeditor/skins/office2013/images/hidpi/refresh.png
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/ckeditor/skins/office2013/images/lock-open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/ckeditor/skins/office2013/images/lock-open.png
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/ckeditor/skins/office2013/images/lock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/ckeditor/skins/office2013/images/lock.png
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/ckeditor/skins/office2013/images/refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/ckeditor/skins/office2013/images/refresh.png
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/csrf.min.js:
--------------------------------------------------------------------------------
1 | $(document).ajaxSend(function(event,xhr,settings){function getCookie(name){var cookieValue=null;if(document.cookie&&document.cookie!=""){var cookies=document.cookie.split(";");for(var i=0;i ',
8 | selector: 'ul#noty_bottom_layout_container',
9 | style: function() {
10 | $(this).css({
11 | bottom: 0,
12 | left: '5%',
13 | position: 'fixed',
14 | width: '90%',
15 | height: 'auto',
16 | margin: 0,
17 | padding: 0,
18 | listStyleType: 'none',
19 | zIndex: 9999999
20 | });
21 | }
22 | },
23 | parent: {
24 | object: '
',
25 | selector: 'li',
26 | css: {}
27 | },
28 | css: {
29 | display: 'none'
30 | },
31 | addClass: ''
32 | };
33 |
34 | })(jQuery);
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/noty/layouts/bottomCenter.js:
--------------------------------------------------------------------------------
1 | ;(function($) {
2 |
3 | $.noty.layouts.bottomCenter = {
4 | name: 'bottomCenter',
5 | options: { // overrides options
6 |
7 | },
8 | container: {
9 | object: '
',
10 | selector: 'ul#noty_bottomCenter_layout_container',
11 | style: function() {
12 | $(this).css({
13 | bottom: 20,
14 | left: 0,
15 | position: 'fixed',
16 | width: '310px',
17 | height: 'auto',
18 | margin: 0,
19 | padding: 0,
20 | listStyleType: 'none',
21 | zIndex: 10000000
22 | });
23 |
24 | $(this).css({
25 | left: ($(window).width() - $(this).outerWidth(false)) / 2 + 'px'
26 | });
27 | }
28 | },
29 | parent: {
30 | object: '
',
31 | selector: 'li',
32 | css: {}
33 | },
34 | css: {
35 | display: 'none',
36 | width: '310px'
37 | },
38 | addClass: ''
39 | };
40 |
41 | })(jQuery);
42 |
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/noty/layouts/bottomLeft.js:
--------------------------------------------------------------------------------
1 | ;(function($) {
2 |
3 | $.noty.layouts.bottomLeft = {
4 | name: 'bottomLeft',
5 | options: { // overrides options
6 |
7 | },
8 | container: {
9 | object: '
',
10 | selector: 'ul#noty_bottomLeft_layout_container',
11 | style: function() {
12 | $(this).css({
13 | bottom: 20,
14 | left: 20,
15 | position: 'fixed',
16 | width: '310px',
17 | height: 'auto',
18 | margin: 0,
19 | padding: 0,
20 | listStyleType: 'none',
21 | zIndex: 10000000
22 | });
23 |
24 | if (window.innerWidth < 600) {
25 | $(this).css({
26 | left: 5
27 | });
28 | }
29 | }
30 | },
31 | parent: {
32 | object: '
',
33 | selector: 'li',
34 | css: {}
35 | },
36 | css: {
37 | display: 'none',
38 | width: '310px'
39 | },
40 | addClass: ''
41 | };
42 |
43 | })(jQuery);
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/noty/layouts/bottomRight.js:
--------------------------------------------------------------------------------
1 | ;(function($) {
2 |
3 | $.noty.layouts.bottomRight = {
4 | name: 'bottomRight',
5 | options: { // overrides options
6 |
7 | },
8 | container: {
9 | object: '
',
10 | selector: 'ul#noty_bottomRight_layout_container',
11 | style: function() {
12 | $(this).css({
13 | bottom: 20,
14 | right: 20,
15 | position: 'fixed',
16 | width: '310px',
17 | height: 'auto',
18 | margin: 0,
19 | padding: 0,
20 | listStyleType: 'none',
21 | zIndex: 10000000
22 | });
23 |
24 | if (window.innerWidth < 600) {
25 | $(this).css({
26 | right: 5
27 | });
28 | }
29 | }
30 | },
31 | parent: {
32 | object: '
',
33 | selector: 'li',
34 | css: {}
35 | },
36 | css: {
37 | display: 'none',
38 | width: '310px'
39 | },
40 | addClass: ''
41 | };
42 |
43 | })(jQuery);
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/noty/layouts/inline.js:
--------------------------------------------------------------------------------
1 | ;(function($) {
2 |
3 | $.noty.layouts.inline = {
4 | name: 'inline',
5 | options: {},
6 | container: {
7 | object: '
',
8 | selector: 'ul#noty_inline_layout_container',
9 | style: function() {
10 | $(this).css({
11 | width: '100%',
12 | height: 'auto',
13 | margin: 0,
14 | padding: 0,
15 | listStyleType: 'none',
16 | zIndex: 9999999
17 | });
18 | }
19 | },
20 | parent: {
21 | object: '
',
22 | selector: 'li',
23 | css: {}
24 | },
25 | css: {
26 | display: 'none'
27 | },
28 | addClass: ''
29 | };
30 |
31 | })(jQuery);
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/noty/layouts/top.js:
--------------------------------------------------------------------------------
1 | ;(function($) {
2 |
3 | $.noty.layouts.top = {
4 | name: 'top',
5 | options: {},
6 | container: {
7 | object: '
',
8 | selector: 'ul#noty_top_layout_container',
9 | style: function() {
10 | $(this).css({
11 | top: 0,
12 | left: '5%',
13 | position: 'fixed',
14 | width: '90%',
15 | height: 'auto',
16 | margin: 0,
17 | padding: 0,
18 | listStyleType: 'none',
19 | zIndex: 9999999
20 | });
21 | }
22 | },
23 | parent: {
24 | object: '
',
25 | selector: 'li',
26 | css: {}
27 | },
28 | css: {
29 | display: 'none'
30 | },
31 | addClass: ''
32 | };
33 |
34 | })(jQuery);
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/noty/layouts/topCenter.js:
--------------------------------------------------------------------------------
1 | ;(function($) {
2 |
3 | $.noty.layouts.topCenter = {
4 | name: 'topCenter',
5 | options: { // overrides options
6 |
7 | },
8 | container: {
9 | object: '
',
10 | selector: 'ul#noty_topCenter_layout_container',
11 | style: function() {
12 | $(this).css({
13 | top: 20,
14 | left: 0,
15 | position: 'fixed',
16 | width: '310px',
17 | height: 'auto',
18 | margin: 0,
19 | padding: 0,
20 | listStyleType: 'none',
21 | zIndex: 10000000
22 | });
23 |
24 | $(this).css({
25 | left: ($(window).width() - $(this).outerWidth(false)) / 2 + 'px'
26 | });
27 | }
28 | },
29 | parent: {
30 | object: '
',
31 | selector: 'li',
32 | css: {}
33 | },
34 | css: {
35 | display: 'none',
36 | width: '310px'
37 | },
38 | addClass: ''
39 | };
40 |
41 | })(jQuery);
42 |
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/noty/layouts/topLeft.js:
--------------------------------------------------------------------------------
1 | ;(function($) {
2 |
3 | $.noty.layouts.topLeft = {
4 | name: 'topLeft',
5 | options: { // overrides options
6 |
7 | },
8 | container: {
9 | object: '
',
10 | selector: 'ul#noty_topLeft_layout_container',
11 | style: function() {
12 | $(this).css({
13 | top: 20,
14 | left: 20,
15 | position: 'fixed',
16 | width: '310px',
17 | height: 'auto',
18 | margin: 0,
19 | padding: 0,
20 | listStyleType: 'none',
21 | zIndex: 10000000
22 | });
23 |
24 | if (window.innerWidth < 600) {
25 | $(this).css({
26 | left: 5
27 | });
28 | }
29 | }
30 | },
31 | parent: {
32 | object: '
',
33 | selector: 'li',
34 | css: {}
35 | },
36 | css: {
37 | display: 'none',
38 | width: '310px'
39 | },
40 | addClass: ''
41 | };
42 |
43 | })(jQuery);
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/noty/layouts/topRight.js:
--------------------------------------------------------------------------------
1 | ;(function($) {
2 |
3 | $.noty.layouts.topRight = {
4 | name: 'topRight',
5 | options: { // overrides options
6 |
7 | },
8 | container: {
9 | object: '
',
10 | selector: 'ul#noty_topRight_layout_container',
11 | style: function() {
12 | $(this).css({
13 | top: 60,
14 | right: 20,
15 | position: 'fixed',
16 | width: '310px',
17 | height: 'auto',
18 | margin: 0,
19 | padding: 0,
20 | listStyleType: 'none',
21 | zIndex: 10000000
22 | });
23 |
24 | if (window.innerWidth < 600) {
25 | $(this).css({
26 | right: 5
27 | });
28 | }
29 | }
30 | },
31 | parent: {
32 | object: '
',
33 | selector: 'li',
34 | css: {}
35 | },
36 | css: {
37 | display: 'none',
38 | width: '310px'
39 | },
40 | addClass: ''
41 | };
42 |
43 | })(jQuery);
44 |
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/advhr/css/advhr.css:
--------------------------------------------------------------------------------
1 | input.radio {border:1px none #000; background:transparent; vertical-align:middle;}
2 | .panel_wrapper div.current {height:80px;}
3 | #width {width:50px; vertical-align:middle;}
4 | #width2 {width:50px; vertical-align:middle;}
5 | #size {width:100px;}
6 |
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/advhr/editor_plugin.js:
--------------------------------------------------------------------------------
1 | (function(){tinymce.create("tinymce.plugins.AdvancedHRPlugin",{init:function(a,b){a.addCommand("mceAdvancedHr",function(){a.windowManager.open({file:b+"/rule.htm",width:250+parseInt(a.getLang("advhr.delta_width",0)),height:160+parseInt(a.getLang("advhr.delta_height",0)),inline:1},{plugin_url:b})});a.addButton("advhr",{title:"advhr.advhr_desc",cmd:"mceAdvancedHr"});a.onNodeChange.add(function(d,c,e){c.setActive("advhr",e.nodeName=="HR")});a.onClick.add(function(c,d){d=d.target;if(d.nodeName==="HR"){c.selection.select(d)}})},getInfo:function(){return{longname:"Advanced HR",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("advhr",tinymce.plugins.AdvancedHRPlugin)})();
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/advhr/langs/en_dlg.js:
--------------------------------------------------------------------------------
1 | tinyMCE.addI18n('en.advhr_dlg',{size:"Height",noshade:"No Shadow",width:"Width",normal:"Normal",widthunits:"Units"});
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/advimage/css/advimage.css:
--------------------------------------------------------------------------------
1 | #src_list, #over_list, #out_list {width:280px;}
2 | .mceActionPanel {margin-top:7px;}
3 | .alignPreview {border:1px solid #000; width:140px; height:140px; overflow:hidden; padding:5px;}
4 | .checkbox {border:0;}
5 | .panel_wrapper div.current {height:305px;}
6 | #prev {margin:0; border:1px solid #000; width:428px; height:150px; overflow:auto;}
7 | #align, #classlist {width:150px;}
8 | #width, #height {vertical-align:middle; width:50px; text-align:center;}
9 | #vspace, #hspace, #border {vertical-align:middle; width:30px; text-align:center;}
10 | #class_list {width:180px;}
11 | input {width: 280px;}
12 | #constrain, #onmousemovecheck {width:auto;}
13 | #id, #dir, #lang, #usemap, #longdesc {width:200px;}
14 |
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/advimage/editor_plugin.js:
--------------------------------------------------------------------------------
1 | (function(){tinymce.create("tinymce.plugins.AdvancedImagePlugin",{init:function(a,b){a.addCommand("mceAdvImage",function(){if(a.dom.getAttrib(a.selection.getNode(),"class","").indexOf("mceItem")!=-1){return}a.windowManager.open({file:b+"/image.htm",width:480+parseInt(a.getLang("advimage.delta_width",0)),height:385+parseInt(a.getLang("advimage.delta_height",0)),inline:1},{plugin_url:b})});a.addButton("image",{title:"advimage.image_desc",cmd:"mceAdvImage"})},getInfo:function(){return{longname:"Advanced image",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("advimage",tinymce.plugins.AdvancedImagePlugin)})();
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/advimage/img/sample.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/advimage/img/sample.gif
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/advimage/langs/en_dlg.js:
--------------------------------------------------------------------------------
1 | tinyMCE.addI18n('en.advimage_dlg',{"image_list":"Image List","align_right":"Right","align_left":"Left","align_textbottom":"Text Bottom","align_texttop":"Text Top","align_bottom":"Bottom","align_middle":"Middle","align_top":"Top","align_baseline":"Baseline",align:"Alignment",hspace:"Horizontal Space",vspace:"Vertical Space",dimensions:"Dimensions",border:"Border",list:"Image List",alt:"Image Description",src:"Image URL","dialog_title":"Insert/Edit Image","missing_alt":"Are you sure you want to continue without including an Image Description? Without it the image may not be accessible to some users with disabilities, or to those using a text browser, or browsing the Web with images turned off.","example_img":"Appearance Preview Image",misc:"Miscellaneous",mouseout:"For Mouse Out",mouseover:"For Mouse Over","alt_image":"Alternative Image","swap_image":"Swap Image",map:"Image Map",id:"ID",rtl:"Right to Left",ltr:"Left to Right",classes:"Classes",style:"Style","long_desc":"Long Description Link",langcode:"Language Code",langdir:"Language Direction","constrain_proportions":"Constrain Proportions",preview:"Preview",title:"Title",general:"General","tab_advanced":"Advanced","tab_appearance":"Appearance","tab_general":"General",width:"Width",height:"Height"});
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/advlink/css/advlink.css:
--------------------------------------------------------------------------------
1 | .mceLinkList, .mceAnchorList, #targetlist {width:280px;}
2 | .mceActionPanel {margin-top:7px;}
3 | .panel_wrapper div.current {height:320px;}
4 | #classlist, #title, #href {width:280px;}
5 | #popupurl, #popupname {width:200px;}
6 | #popupwidth, #popupheight, #popupleft, #popuptop {width:30px;vertical-align:middle;text-align:center;}
7 | #id, #style, #classes, #target, #dir, #hreflang, #lang, #charset, #type, #rel, #rev, #tabindex, #accesskey {width:200px;}
8 | #events_panel input {width:200px;}
9 |
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/advlink/editor_plugin.js:
--------------------------------------------------------------------------------
1 | (function(){tinymce.create("tinymce.plugins.AdvancedLinkPlugin",{init:function(a,b){this.editor=a;a.addCommand("mceAdvLink",function(){var c=a.selection;if(c.isCollapsed()&&!a.dom.getParent(c.getNode(),"A")){return}a.windowManager.open({file:b+"/link.htm",width:480+parseInt(a.getLang("advlink.delta_width",0)),height:400+parseInt(a.getLang("advlink.delta_height",0)),inline:1},{plugin_url:b})});a.addButton("link",{title:"advlink.link_desc",cmd:"mceAdvLink"});a.addShortcut("ctrl+k","advlink.advlink_desc","mceAdvLink");a.onNodeChange.add(function(d,c,f,e){c.setDisabled("link",e&&f.nodeName!="A");c.setActive("link",f.nodeName=="A"&&!f.name)})},getInfo:function(){return{longname:"Advanced link",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("advlink",tinymce.plugins.AdvancedLinkPlugin)})();
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/autoresize/editor_plugin.js:
--------------------------------------------------------------------------------
1 | (function(){tinymce.create("tinymce.plugins.AutoResizePlugin",{init:function(a,c){var d=this,e=0;if(a.getParam("fullscreen_is_enabled")){return}function b(){var j,i=a.getDoc(),f=i.body,l=i.documentElement,h=tinymce.DOM,k=d.autoresize_min_height,g;g=tinymce.isIE?f.scrollHeight:(tinymce.isWebKit&&f.clientHeight==0?0:f.offsetHeight);if(g>d.autoresize_min_height){k=g}if(d.autoresize_max_height&&g>d.autoresize_max_height){k=d.autoresize_max_height;f.style.overflowY="auto";l.style.overflowY="auto"}else{f.style.overflowY="hidden";l.style.overflowY="hidden";f.scrollTop=0}if(k!==e){j=k-e;h.setStyle(h.get(a.id+"_ifr"),"height",k+"px");e=k;if(tinymce.isWebKit&&j<0){b()}}}d.editor=a;d.autoresize_min_height=parseInt(a.getParam("autoresize_min_height",a.getElement().offsetHeight));d.autoresize_max_height=parseInt(a.getParam("autoresize_max_height",0));a.onInit.add(function(f){f.dom.setStyle(f.getBody(),"paddingBottom",f.getParam("autoresize_bottom_margin",50)+"px")});a.onChange.add(b);a.onSetContent.add(b);a.onPaste.add(b);a.onKeyUp.add(b);a.onPostRender.add(b);if(a.getParam("autoresize_on_init",true)){a.onLoad.add(b);a.onLoadContent.add(b)}a.addCommand("mceAutoResize",b)},getInfo:function(){return{longname:"Auto Resize",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autoresize",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("autoresize",tinymce.plugins.AutoResizePlugin)})();
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/directionality/editor_plugin.js:
--------------------------------------------------------------------------------
1 | (function(){tinymce.create("tinymce.plugins.Directionality",{init:function(b,c){var d=this;d.editor=b;function a(e){var h=b.dom,g,f=b.selection.getSelectedBlocks();if(f.length){g=h.getAttrib(f[0],"dir");tinymce.each(f,function(i){if(!h.getParent(i.parentNode,"*[dir='"+e+"']",h.getRoot())){if(g!=e){h.setAttrib(i,"dir",e)}else{h.setAttrib(i,"dir",null)}}});b.nodeChanged()}}b.addCommand("mceDirectionLTR",function(){a("ltr")});b.addCommand("mceDirectionRTL",function(){a("rtl")});b.addButton("ltr",{title:"directionality.ltr_desc",cmd:"mceDirectionLTR"});b.addButton("rtl",{title:"directionality.rtl_desc",cmd:"mceDirectionRTL"});b.onNodeChange.add(d._nodeChange,d)},getInfo:function(){return{longname:"Directionality",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_nodeChange:function(b,a,e){var d=b.dom,c;e=d.getParent(e,d.isBlock);if(!e){a.setDisabled("ltr",1);a.setDisabled("rtl",1);return}c=d.getAttrib(e,"dir");a.setActive("ltr",c=="ltr");a.setDisabled("ltr",0);a.setActive("rtl",c=="rtl");a.setDisabled("rtl",0)}});tinymce.PluginManager.add("directionality",tinymce.plugins.Directionality)})();
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/editor_plugin.js:
--------------------------------------------------------------------------------
1 | (function(a){a.create("tinymce.plugins.EmotionsPlugin",{init:function(b,c){b.addCommand("mceEmotion",function(){b.windowManager.open({file:c+"/emotions.htm",width:250+parseInt(b.getLang("emotions.delta_width",0)),height:160+parseInt(b.getLang("emotions.delta_height",0)),inline:1},{plugin_url:c})});b.addButton("emotions",{title:"emotions.emotions_desc",cmd:"mceEmotion"})},getInfo:function(){return{longname:"Emotions",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions",version:a.majorVersion+"."+a.minorVersion}}});a.PluginManager.add("emotions",a.plugins.EmotionsPlugin)})(tinymce);
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/editor_plugin_src.js:
--------------------------------------------------------------------------------
1 | /**
2 | * editor_plugin_src.js
3 | *
4 | * Copyright 2009, Moxiecode Systems AB
5 | * Released under LGPL License.
6 | *
7 | * License: http://tinymce.moxiecode.com/license
8 | * Contributing: http://tinymce.moxiecode.com/contributing
9 | */
10 |
11 | (function(tinymce) {
12 | tinymce.create('tinymce.plugins.EmotionsPlugin', {
13 | init : function(ed, url) {
14 | // Register commands
15 | ed.addCommand('mceEmotion', function() {
16 | ed.windowManager.open({
17 | file : url + '/emotions.htm',
18 | width : 250 + parseInt(ed.getLang('emotions.delta_width', 0)),
19 | height : 160 + parseInt(ed.getLang('emotions.delta_height', 0)),
20 | inline : 1
21 | }, {
22 | plugin_url : url
23 | });
24 | });
25 |
26 | // Register buttons
27 | ed.addButton('emotions', {title : 'emotions.emotions_desc', cmd : 'mceEmotion'});
28 | },
29 |
30 | getInfo : function() {
31 | return {
32 | longname : 'Emotions',
33 | author : 'Moxiecode Systems AB',
34 | authorurl : 'http://tinymce.moxiecode.com',
35 | infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions',
36 | version : tinymce.majorVersion + "." + tinymce.minorVersion
37 | };
38 | }
39 | });
40 |
41 | // Register plugin
42 | tinymce.PluginManager.add('emotions', tinymce.plugins.EmotionsPlugin);
43 | })(tinymce);
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-cool.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-cool.gif
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-cry.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-cry.gif
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-embarassed.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-embarassed.gif
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-frown.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-frown.gif
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-innocent.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-innocent.gif
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-kiss.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-kiss.gif
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-laughing.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-laughing.gif
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-sealed.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-sealed.gif
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-smile.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-smile.gif
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-surprised.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-surprised.gif
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-undecided.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-undecided.gif
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-wink.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-wink.gif
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-yell.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/img/smiley-yell.gif
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/js/emotions.js:
--------------------------------------------------------------------------------
1 | tinyMCEPopup.requireLangPack();
2 |
3 | var EmotionsDialog = {
4 | addKeyboardNavigation: function(){
5 | var tableElm, cells, settings;
6 |
7 | cells = tinyMCEPopup.dom.select("a.emoticon_link", "emoticon_table");
8 |
9 | settings ={
10 | root: "emoticon_table",
11 | items: cells
12 | };
13 | cells[0].tabindex=0;
14 | tinyMCEPopup.dom.addClass(cells[0], "mceFocus");
15 | if (tinymce.isGecko) {
16 | cells[0].focus();
17 | } else {
18 | setTimeout(function(){
19 | cells[0].focus();
20 | }, 100);
21 | }
22 | tinyMCEPopup.editor.windowManager.createInstance('tinymce.ui.KeyboardNavigation', settings, tinyMCEPopup.dom);
23 | },
24 | init : function(ed) {
25 | tinyMCEPopup.resizeToInnerSize();
26 | this.addKeyboardNavigation();
27 | },
28 |
29 | insert : function(file, title) {
30 | var ed = tinyMCEPopup.editor, dom = ed.dom;
31 |
32 | tinyMCEPopup.execCommand('mceInsertContent', false, dom.createHTML('img', {
33 | src : tinyMCEPopup.getWindowArg('plugin_url') + '/img/' + file,
34 | alt : ed.getLang(title),
35 | title : ed.getLang(title),
36 | border : 0
37 | }));
38 |
39 | tinyMCEPopup.close();
40 | }
41 | };
42 |
43 | tinyMCEPopup.onInit.add(EmotionsDialog.init, EmotionsDialog);
44 |
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/emotions/langs/en_dlg.js:
--------------------------------------------------------------------------------
1 | tinyMCE.addI18n('en.emotions_dlg',{cry:"Cry",cool:"Cool",desc:"Emotions",title:"Insert Emotion",usage:"Use left and right arrows to navigate.",yell:"Yell",wink:"Wink",undecided:"Undecided","tongue_out":"Tongue Out",surprised:"Surprised",smile:"Smile",sealed:"Sealed","money_mouth":"Money Mouth",laughing:"Laughing",kiss:"Kiss",innocent:"Innocent",frown:"Frown","foot_in_mouth":"Foot in Mouth",embarassed:"Embarassed"});
2 |
--------------------------------------------------------------------------------
/http_handler/static/javascript/third-party/tiny_mce/plugins/example/dialog.htm:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
{#example_dlg.title}
5 |
6 |
7 |
8 |
22 |