├── .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 |
5 |

{{ website | title }} Login

6 |
7 |
8 | {% csrf_token %} 9 | {{ form.as_p }} 10 |
11 | 12 | 13 |
14 |
15 |

Reset Password

16 |

Register

17 |
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 |
6 |

Password changed

7 |
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 |
8 | {% csrf_token %} 9 |

Change Password

10 |
11 | {{ form.as_p }} 12 | 13 | 14 |
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 |
13 | {% csrf_token %} 14 | {{ form.as_p }} 15 | 16 | 17 |
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 |
8 | {% csrf_token %} 9 |

Reset Password

10 |
11 | {{ form }} 12 | 13 | 14 |
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 |
13 | {% csrf_token %} 14 | {{ form.as_p }} 15 | 16 |
17 |
18 | {% endblock %} -------------------------------------------------------------------------------- /browser/templates/settings.html: -------------------------------------------------------------------------------- 1 | {% extends website|add:"/base.html" %} 2 | 3 | {% block content %} 4 | 5 |
6 |

Settings

7 |
8 |

9 | Change password 10 |

11 |
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 | 15 | 16 | 17 |
18 |
19 | 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 | 4 | 5 | 6 | {% else %} 7 | 8 | 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 | 
*/ 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 | 9 | 10 |
                    11 |

                    Here is a example dialog.

                    12 |

                    Selected text:

                    13 |

                    Custom arg:

                    14 | 15 |
                    16 | 17 | 18 |
                    19 |
                    20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/example/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.PluginManager.requireLangPack("example");tinymce.create("tinymce.plugins.ExamplePlugin",{init:function(a,b){a.addCommand("mceExample",function(){a.windowManager.open({file:b+"/dialog.htm",width:320+parseInt(a.getLang("example.delta_width",0)),height:120+parseInt(a.getLang("example.delta_height",0)),inline:1},{plugin_url:b,some_custom_arg:"custom arg"})});a.addButton("example",{title:"example.desc",cmd:"mceExample",image:b+"/img/example.gif"});a.onNodeChange.add(function(d,c,e){c.setActive("example",e.nodeName=="IMG")})},createControl:function(b,a){return null},getInfo:function(){return{longname:"Example plugin",author:"Some author",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example",version:"1.0"}}});tinymce.PluginManager.add("example",tinymce.plugins.ExamplePlugin)})(); -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/example/img/example.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/example/img/example.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/example/js/dialog.js: -------------------------------------------------------------------------------- 1 | tinyMCEPopup.requireLangPack(); 2 | 3 | var ExampleDialog = { 4 | init : function() { 5 | var f = document.forms[0]; 6 | 7 | // Get the selected contents as text and place it in the input 8 | f.someval.value = tinyMCEPopup.editor.selection.getContent({format : 'text'}); 9 | f.somearg.value = tinyMCEPopup.getWindowArg('some_custom_arg'); 10 | }, 11 | 12 | insert : function() { 13 | // Insert the contents from the input into the document 14 | tinyMCEPopup.editor.execCommand('mceInsertContent', false, document.forms[0].someval.value); 15 | tinyMCEPopup.close(); 16 | } 17 | }; 18 | 19 | tinyMCEPopup.onInit.add(ExampleDialog.init, ExampleDialog); 20 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/example/langs/en.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.example',{ 2 | desc : 'This is just a template button' 3 | }); 4 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/example/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.example_dlg',{ 2 | title : 'This is just a example title' 3 | }); 4 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/example_dependency/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.ExampleDependencyPlugin",{init:function(a,b){},getInfo:function(){return{longname:"Example Dependency plugin",author:"Some author",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example_dependency",version:"1.0"}}});tinymce.PluginManager.add("example_dependency",tinymce.plugins.ExampleDependencyPlugin,["example"])})(); -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/iespell/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.IESpell",{init:function(a,b){var c=this,d;if(!tinymce.isIE){return}c.editor=a;a.addCommand("mceIESpell",function(){try{d=new ActiveXObject("ieSpell.ieSpellExtension");d.CheckDocumentNode(a.getDoc().documentElement)}catch(f){if(f.number==-2146827859){a.windowManager.confirm(a.getLang("iespell.download"),function(e){if(e){window.open("http://www.iespell.com/download.php","ieSpellDownload","")}})}else{a.windowManager.alert("Error Loading ieSpell: Exception "+f.number)}}});a.addButton("iespell",{title:"iespell.iespell_desc",cmd:"mceIESpell"})},getInfo:function(){return{longname:"IESpell (IE Only)",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("iespell",tinymce.plugins.IESpell)})(); -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/media/css/media.css: -------------------------------------------------------------------------------- 1 | #id, #name, #hspace, #vspace, #class_name, #align { width: 100px } 2 | #hspace, #vspace { width: 50px } 3 | #flash_quality, #flash_align, #flash_scale, #flash_salign, #flash_wmode { width: 100px } 4 | #flash_base, #flash_flashvars, #html5_altsource1, #html5_altsource2, #html5_poster { width: 240px } 5 | #width, #height { width: 40px } 6 | #src, #media_type { width: 250px } 7 | #class { width: 120px } 8 | #prev { margin: 0; border: 1px solid black; width: 380px; height: 260px; overflow: auto } 9 | .panel_wrapper div.current { height: 420px; overflow: auto } 10 | #flash_options, #shockwave_options, #qt_options, #wmp_options, #rmp_options { display: none } 11 | .mceAddSelectValue { background-color: #DDDDDD } 12 | #qt_starttime, #qt_endtime, #qt_fov, #qt_href, #qt_moveid, #qt_moviename, #qt_node, #qt_pan, #qt_qtsrc, #qt_qtsrcchokespeed, #qt_target, #qt_tilt, #qt_urlsubstituten, #qt_volume { width: 70px } 13 | #wmp_balance, #wmp_baseurl, #wmp_captioningid, #wmp_currentmarker, #wmp_currentposition, #wmp_defaultframe, #wmp_playcount, #wmp_rate, #wmp_uimode, #wmp_volume { width: 70px } 14 | #rmp_console, #rmp_numloop, #rmp_controls, #rmp_scriptcallbacks { width: 70px } 15 | #shockwave_swvolume, #shockwave_swframe, #shockwave_swurl, #shockwave_swstretchvalign, #shockwave_swstretchhalign, #shockwave_swstretchstyle { width: 90px } 16 | #qt_qtsrc { width: 200px } 17 | iframe {border: 1px solid gray} 18 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/media/moxieplayer.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/media/moxieplayer.swf -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/nonbreaking/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.Nonbreaking",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceNonBreaking",function(){a.execCommand("mceInsertContent",false,(a.plugins.visualchars&&a.plugins.visualchars.state)?' ':" ")});a.addButton("nonbreaking",{title:"nonbreaking.nonbreaking_desc",cmd:"mceNonBreaking"});if(a.getParam("nonbreaking_force_tab")){a.onKeyDown.add(function(d,f){if(f.keyCode==9){f.preventDefault();d.execCommand("mceNonBreaking");d.execCommand("mceNonBreaking");d.execCommand("mceNonBreaking")}})}},getInfo:function(){return{longname:"Nonbreaking space",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("nonbreaking",tinymce.plugins.Nonbreaking)})(); -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/pagebreak/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.PageBreakPlugin",{init:function(b,d){var f='',a="mcePageBreak",c=b.getParam("pagebreak_separator",""),e;e=new RegExp(c.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(g){return"\\"+g}),"g");b.addCommand("mcePageBreak",function(){b.execCommand("mceInsertContent",0,f)});b.addButton("pagebreak",{title:"pagebreak.desc",cmd:a});b.onInit.add(function(){if(b.theme.onResolveName){b.theme.onResolveName.add(function(g,h){if(h.node.nodeName=="IMG"&&b.dom.hasClass(h.node,a)){h.name="pagebreak"}})}});b.onClick.add(function(g,h){h=h.target;if(h.nodeName==="IMG"&&g.dom.hasClass(h,a)){g.selection.select(h)}});b.onNodeChange.add(function(h,g,i){g.setActive("pagebreak",i.nodeName==="IMG"&&h.dom.hasClass(i,a))});b.onBeforeSetContent.add(function(g,h){h.content=h.content.replace(e,f)});b.onPostProcess.add(function(g,h){if(h.get){h.content=h.content.replace(/]+>/g,function(i){if(i.indexOf('class="mcePageBreak')!==-1){i=c}return i})}})},getInfo:function(){return{longname:"PageBreak",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/pagebreak",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("pagebreak",tinymce.plugins.PageBreakPlugin)})(); -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/paste/js/pastetext.js: -------------------------------------------------------------------------------- 1 | tinyMCEPopup.requireLangPack(); 2 | 3 | var PasteTextDialog = { 4 | init : function() { 5 | this.resize(); 6 | }, 7 | 8 | insert : function() { 9 | var h = tinyMCEPopup.dom.encode(document.getElementById('content').value), lines; 10 | 11 | // Convert linebreaks into paragraphs 12 | if (document.getElementById('linebreaks').checked) { 13 | lines = h.split(/\r?\n/); 14 | if (lines.length > 1) { 15 | h = ''; 16 | tinymce.each(lines, function(row) { 17 | h += '

                    ' + row + '

                    '; 18 | }); 19 | } 20 | } 21 | 22 | tinyMCEPopup.editor.execCommand('mceInsertClipboardContent', false, {content : h}); 23 | tinyMCEPopup.close(); 24 | }, 25 | 26 | resize : function() { 27 | var vp = tinyMCEPopup.dom.getViewPort(window), el; 28 | 29 | el = document.getElementById('content'); 30 | 31 | el.style.width = (vp.w - 20) + 'px'; 32 | el.style.height = (vp.h - 90) + 'px'; 33 | } 34 | }; 35 | 36 | tinyMCEPopup.onInit.add(PasteTextDialog.init, PasteTextDialog); 37 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/paste/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.paste_dlg',{"word_title":"Use Ctrl+V on your keyboard to paste the text into the window.","text_linebreaks":"Keep Linebreaks","text_title":"Use Ctrl+V on your keyboard to paste the text into the window."}); -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/paste/pastetext.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | {#paste.paste_text_desc} 4 | 5 | 6 | 7 | 8 |
                    9 |
                    {#paste.paste_text_desc}
                    10 | 11 |
                    12 | 13 |
                    14 | 15 |
                    16 | 17 |
                    {#paste_dlg.text_title}
                    18 | 19 | 20 | 21 |
                    22 | 23 | 24 |
                    25 |
                    26 | 27 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/paste/pasteword.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | {#paste.paste_word_desc} 4 | 5 | 6 | 7 | 8 |
                    9 |
                    {#paste.paste_word_desc}
                    10 | 11 |
                    {#paste_dlg.word_title}
                    12 | 13 |
                    14 | 15 |
                    16 | 17 | 18 |
                    19 |
                    20 | 21 | 22 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/preview/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.Preview",{init:function(a,b){var d=this,c=tinymce.explode(a.settings.content_css);d.editor=a;tinymce.each(c,function(f,e){c[e]=a.documentBaseURI.toAbsolute(f)});a.addCommand("mcePreview",function(){a.windowManager.open({file:a.getParam("plugin_preview_pageurl",b+"/preview.html"),width:parseInt(a.getParam("plugin_preview_width","550")),height:parseInt(a.getParam("plugin_preview_height","600")),resizable:"yes",scrollbars:"yes",popup_css:c?c.join(","):a.baseURI.toAbsolute("themes/"+a.settings.theme+"/skins/"+a.settings.skin+"/content.css"),inline:a.getParam("plugin_preview_inline",1)},{base:a.documentBaseURI.getURI()})});a.addButton("preview",{title:"preview.preview_desc",cmd:"mcePreview"})},getInfo:function(){return{longname:"Preview",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("preview",tinymce.plugins.Preview)})(); -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/preview/example.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 18 | Example of a custom preview page 19 | 20 | 21 | 22 | Editor contents:
                    23 |
                    24 | 25 |
                    26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/preview/preview.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | {#preview.preview_desc} 11 | 12 | 13 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/print/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.Print",{init:function(a,b){a.addCommand("mcePrint",function(){a.getWin().print()});a.addButton("print",{title:"print.print_desc",cmd:"mcePrint"})},getInfo:function(){return{longname:"Print",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("print",tinymce.plugins.Print)})(); -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/print/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() { 12 | tinymce.create('tinymce.plugins.Print', { 13 | init : function(ed, url) { 14 | ed.addCommand('mcePrint', function() { 15 | ed.getWin().print(); 16 | }); 17 | 18 | ed.addButton('print', {title : 'print.print_desc', cmd : 'mcePrint'}); 19 | }, 20 | 21 | getInfo : function() { 22 | return { 23 | longname : 'Print', 24 | author : 'Moxiecode Systems AB', 25 | authorurl : 'http://tinymce.moxiecode.com', 26 | infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print', 27 | version : tinymce.majorVersion + "." + tinymce.minorVersion 28 | }; 29 | } 30 | }); 31 | 32 | // Register plugin 33 | tinymce.PluginManager.add('print', tinymce.plugins.Print); 34 | })(); 35 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/searchreplace/css/searchreplace.css: -------------------------------------------------------------------------------- 1 | .panel_wrapper {height:85px;} 2 | .panel_wrapper div.current {height:85px;} 3 | 4 | /* IE */ 5 | * html .panel_wrapper {height:100px;} 6 | * html .panel_wrapper div.current {height:100px;} 7 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/searchreplace/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.SearchReplacePlugin",{init:function(a,c){function b(d){window.focus();a.windowManager.open({file:c+"/searchreplace.htm",width:420+parseInt(a.getLang("searchreplace.delta_width",0)),height:170+parseInt(a.getLang("searchreplace.delta_height",0)),inline:1,auto_focus:0},{mode:d,search_string:a.selection.getContent({format:"text"}),plugin_url:c})}a.addCommand("mceSearch",function(){b("search")});a.addCommand("mceReplace",function(){b("replace")});a.addButton("search",{title:"searchreplace.search_desc",cmd:"mceSearch"});a.addButton("replace",{title:"searchreplace.replace_desc",cmd:"mceReplace"});a.addShortcut("ctrl+f","searchreplace.search_desc","mceSearch")},getInfo:function(){return{longname:"Search/Replace",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("searchreplace",tinymce.plugins.SearchReplacePlugin)})(); -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/searchreplace/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.searchreplace_dlg',{findwhat:"Find What",replacewith:"Replace with",direction:"Direction",up:"Up",down:"Down",mcase:"Match Case",findnext:"Find Next",allreplaced:"All occurrences of the search string were replaced.","searchnext_desc":"Find Again",notfound:"The search has been completed. The search string could not be found.","search_title":"Find","replace_title":"Find/Replace",replaceall:"Replace All",replace:"Replace"}); -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/spellchecker/css/content.css: -------------------------------------------------------------------------------- 1 | .mceItemHiddenSpellWord {background:url(../img/wline.gif) repeat-x bottom left; cursor:default;} 2 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/spellchecker/editor_plugin.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/spellchecker/editor_plugin.js -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/spellchecker/editor_plugin_src.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/spellchecker/editor_plugin_src.js -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/spellchecker/img/wline.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/plugins/spellchecker/img/wline.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/style/css/props.css: -------------------------------------------------------------------------------- 1 | #text_font {width:250px;} 2 | #text_size {width:70px;} 3 | .mceAddSelectValue {background:#DDD;} 4 | select, #block_text_indent, #box_width, #box_height, #box_padding_top, #box_padding_right, #box_padding_bottom, #box_padding_left {width:70px;} 5 | #box_margin_top, #box_margin_right, #box_margin_bottom, #box_margin_left, #positioning_width, #positioning_height, #positioning_zindex {width:70px;} 6 | #positioning_placement_top, #positioning_placement_right, #positioning_placement_bottom, #positioning_placement_left {width:70px;} 7 | #positioning_clip_top, #positioning_clip_right, #positioning_clip_bottom, #positioning_clip_left {width:70px;} 8 | .panel_toggle_insert_span {padding-top:10px;} 9 | .panel_wrapper div.current {padding-top:10px;height:230px;} 10 | .delim {border-left:1px solid gray;} 11 | .tdelim {border-bottom:1px solid gray;} 12 | #block_display {width:145px;} 13 | #list_type {width:115px;} 14 | .disabled {background:#EEE;} 15 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/style/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.StylePlugin",{init:function(a,b){a.addCommand("mceStyleProps",function(){var c=false;var f=a.selection.getSelectedBlocks();var d=[];if(f.length===1){d.push(a.selection.getNode().style.cssText)}else{tinymce.each(f,function(g){d.push(a.dom.getAttrib(g,"style"))});c=true}a.windowManager.open({file:b+"/props.htm",width:480+parseInt(a.getLang("style.delta_width",0)),height:340+parseInt(a.getLang("style.delta_height",0)),inline:1},{applyStyleToBlocks:c,plugin_url:b,styles:d})});a.addCommand("mceSetElementStyle",function(d,c){if(e=a.selection.getNode()){a.dom.setAttrib(e,"style",c);a.execCommand("mceRepaint")}});a.onNodeChange.add(function(d,c,f){c.setDisabled("styleprops",f.nodeName==="BODY")});a.addButton("styleprops",{title:"style.desc",cmd:"mceStyleProps"})},getInfo:function(){return{longname:"Style",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("style",tinymce.plugins.StylePlugin)})(); -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/style/readme.txt: -------------------------------------------------------------------------------- 1 | Edit CSS Style plug-in notes 2 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3 | Unlike WYSIWYG editor functionality that operates only on the selected text, 4 | typically by inserting new HTML elements with the specified styles. 5 | This plug-in operates on the HTML blocks surrounding the selected text. 6 | No new HTML elements are created. 7 | 8 | This plug-in only operates on the surrounding blocks and not the nearest 9 | parent node. This means that if a block encapsulates a node, 10 | e.g

                    text

                    , then only the styles in the block are 11 | recognized, not those in the span. 12 | 13 | When selecting text that includes multiple blocks at the same level (peers), 14 | this plug-in accumulates the specified styles in all of the surrounding blocks 15 | and populates the dialogue checkboxes accordingly. There is no differentiation 16 | between styles set in all the blocks versus styles set in some of the blocks. 17 | 18 | When the [Update] or [Apply] buttons are pressed, the styles selected in the 19 | checkboxes are applied to all blocks that surround the selected text. 20 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/table/css/cell.css: -------------------------------------------------------------------------------- 1 | /* CSS file for cell dialog in the table plugin */ 2 | 3 | .panel_wrapper div.current { 4 | height: 200px; 5 | } 6 | 7 | .advfield { 8 | width: 200px; 9 | } 10 | 11 | #action { 12 | margin-bottom: 3px; 13 | } 14 | 15 | #class { 16 | width: 150px; 17 | } -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/table/css/row.css: -------------------------------------------------------------------------------- 1 | /* CSS file for row dialog in the table plugin */ 2 | 3 | .panel_wrapper div.current { 4 | height: 200px; 5 | } 6 | 7 | .advfield { 8 | width: 200px; 9 | } 10 | 11 | #action { 12 | margin-bottom: 3px; 13 | } 14 | 15 | #rowtype,#align,#valign,#class,#height { 16 | width: 150px; 17 | } 18 | 19 | #height { 20 | width: 50px; 21 | } 22 | 23 | .col2 { 24 | padding-left: 20px; 25 | } 26 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/table/css/table.css: -------------------------------------------------------------------------------- 1 | /* CSS file for table dialog in the table plugin */ 2 | 3 | .panel_wrapper div.current { 4 | height: 245px; 5 | } 6 | 7 | .advfield { 8 | width: 200px; 9 | } 10 | 11 | #class { 12 | width: 150px; 13 | } 14 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/table/js/merge_cells.js: -------------------------------------------------------------------------------- 1 | tinyMCEPopup.requireLangPack(); 2 | 3 | var MergeCellsDialog = { 4 | init : function() { 5 | var f = document.forms[0]; 6 | 7 | f.numcols.value = tinyMCEPopup.getWindowArg('cols', 1); 8 | f.numrows.value = tinyMCEPopup.getWindowArg('rows', 1); 9 | }, 10 | 11 | merge : function() { 12 | var func, f = document.forms[0]; 13 | 14 | tinyMCEPopup.restoreSelection(); 15 | 16 | func = tinyMCEPopup.getWindowArg('onaction'); 17 | 18 | func({ 19 | cols : f.numcols.value, 20 | rows : f.numrows.value 21 | }); 22 | 23 | tinyMCEPopup.close(); 24 | } 25 | }; 26 | 27 | tinyMCEPopup.onInit.add(MergeCellsDialog.init, MergeCellsDialog); 28 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/template/blank.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | blank_page 4 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/template/css/template.css: -------------------------------------------------------------------------------- 1 | #frmbody { 2 | padding: 10px; 3 | background-color: #FFF; 4 | border: 1px solid #CCC; 5 | } 6 | 7 | .frmRow { 8 | margin-bottom: 10px; 9 | } 10 | 11 | #templatesrc { 12 | border: none; 13 | width: 320px; 14 | height: 240px; 15 | } 16 | 17 | .title { 18 | padding-bottom: 5px; 19 | } 20 | 21 | .mceActionPanel { 22 | padding-top: 5px; 23 | } 24 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/template/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.template_dlg',{title:"Templates",label:"Template","desc_label":"Description",desc:"Insert Predefined Template Content",select:"Select a Template",preview:"Preview",warning:"Warning: Updating a template with a different one may cause data loss.","mdate_format":"%Y-%m-%d %H:%M:%S","cdate_format":"%Y-%m-%d %H:%M:%S","months_long":"January,February,March,April,May,June,July,August,September,October,November,December","months_short":"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec","day_long":"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday","day_short":"Sun,Mon,Tue,Wed,Thu,Fri,Sat,Sun"}); -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/visualblocks/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.VisualBlocks",{init:function(a,b){var c;if(!window.NodeList){return}a.addCommand("mceVisualBlocks",function(){var e=a.dom,d;if(!c){c=e.uniqueId();d=e.create("link",{id:c,rel:"stylesheet",href:b+"/css/visualblocks.css"});a.getDoc().getElementsByTagName("head")[0].appendChild(d)}else{d=e.get(c);d.disabled=!d.disabled}a.controlManager.setActive("visualblocks",!d.disabled)});a.addButton("visualblocks",{title:"visualblocks.desc",cmd:"mceVisualBlocks"});a.onInit.add(function(){if(a.settings.visualblocks_default_state){a.execCommand("mceVisualBlocks",false,null,{skip_focus:true})}})},getInfo:function(){return{longname:"Visual blocks",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualblocks",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("visualblocks",tinymce.plugins.VisualBlocks)})(); -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/visualchars/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.VisualChars",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceVisualChars",c._toggleVisualChars,c);a.addButton("visualchars",{title:"visualchars.desc",cmd:"mceVisualChars"});a.onBeforeGetContent.add(function(d,e){if(c.state&&e.format!="raw"&&!e.draft){c.state=true;c._toggleVisualChars(false)}})},getInfo:function(){return{longname:"Visual characters",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_toggleVisualChars:function(m){var p=this,k=p.editor,a,g,j,n=k.getDoc(),o=k.getBody(),l,q=k.selection,e,c,f;p.state=!p.state;k.controlManager.setActive("visualchars",p.state);if(m){f=q.getBookmark()}if(p.state){a=[];tinymce.walk(o,function(b){if(b.nodeType==3&&b.nodeValue&&b.nodeValue.indexOf("\u00a0")!=-1){a.push(b)}},"childNodes");for(g=0;g$1');c=k.dom.create("div",null,l);while(node=c.lastChild){k.dom.insertAfter(node,a[g])}k.dom.remove(a[g])}}else{a=k.dom.select("span.mceItemNbsp",o);for(g=a.length-1;g>=0;g--){k.dom.remove(a[g],1)}}q.moveToBookmark(f)}});tinymce.PluginManager.add("visualchars",tinymce.plugins.VisualChars)})(); -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/xhtmlxtras/css/attributes.css: -------------------------------------------------------------------------------- 1 | .panel_wrapper div.current { 2 | height: 290px; 3 | } 4 | 5 | #id, #style, #title, #dir, #hreflang, #lang, #classlist, #tabindex, #accesskey { 6 | width: 200px; 7 | } 8 | 9 | #events_panel input { 10 | width: 200px; 11 | } 12 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/xhtmlxtras/css/popup.css: -------------------------------------------------------------------------------- 1 | input.field, select.field {width:200px;} 2 | input.picker {width:179px; margin-left: 5px;} 3 | input.disabled {border-color:#F2F2F2;} 4 | img.picker {vertical-align:text-bottom; cursor:pointer;} 5 | h1 {padding: 0 0 5px 0;} 6 | .panel_wrapper div.current {height:160px;} 7 | #xhtmlxtrasdel .panel_wrapper div.current, #xhtmlxtrasins .panel_wrapper div.current {height: 230px;} 8 | a.browse span {display:block; width:20px; height:20px; background:url('../../../themes/advanced/img/icons.gif') -140px -20px;} 9 | #datetime {width:180px;} 10 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/xhtmlxtras/js/abbr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * abbr.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 init() { 12 | SXE.initElementDialog('abbr'); 13 | if (SXE.currentAction == "update") { 14 | SXE.showRemoveButton(); 15 | } 16 | } 17 | 18 | function insertAbbr() { 19 | SXE.insertElement('abbr'); 20 | tinyMCEPopup.close(); 21 | } 22 | 23 | function removeAbbr() { 24 | SXE.removeElement('abbr'); 25 | tinyMCEPopup.close(); 26 | } 27 | 28 | tinyMCEPopup.onInit.add(init); 29 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/xhtmlxtras/js/acronym.js: -------------------------------------------------------------------------------- 1 | /** 2 | * acronym.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 init() { 12 | SXE.initElementDialog('acronym'); 13 | if (SXE.currentAction == "update") { 14 | SXE.showRemoveButton(); 15 | } 16 | } 17 | 18 | function insertAcronym() { 19 | SXE.insertElement('acronym'); 20 | tinyMCEPopup.close(); 21 | } 22 | 23 | function removeAcronym() { 24 | SXE.removeElement('acronym'); 25 | tinyMCEPopup.close(); 26 | } 27 | 28 | tinyMCEPopup.onInit.add(init); 29 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/xhtmlxtras/js/cite.js: -------------------------------------------------------------------------------- 1 | /** 2 | * cite.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 init() { 12 | SXE.initElementDialog('cite'); 13 | if (SXE.currentAction == "update") { 14 | SXE.showRemoveButton(); 15 | } 16 | } 17 | 18 | function insertCite() { 19 | SXE.insertElement('cite'); 20 | tinyMCEPopup.close(); 21 | } 22 | 23 | function removeCite() { 24 | SXE.removeElement('cite'); 25 | tinyMCEPopup.close(); 26 | } 27 | 28 | tinyMCEPopup.onInit.add(init); 29 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.xhtmlxtras_dlg',{"attribs_title":"Insert/Edit Attributes","option_rtl":"Right to Left","option_ltr":"Left to Right","insert_date":"Insert Current Date/Time",remove:"Remove","title_cite_element":"Citation Element","title_abbr_element":"Abbreviation Element","title_acronym_element":"Acronym Element","title_del_element":"Deletion Element","title_ins_element":"Insertion Element","fieldset_events_tab":"Element Events","fieldset_attrib_tab":"Element Attributes","fieldset_general_tab":"General Settings","events_tab":"Events","attrib_tab":"Attributes","general_tab":"General","attribute_attrib_tab":"Attributes","attribute_events_tab":"Events","attribute_label_accesskey":"AccessKey","attribute_label_tabindex":"TabIndex","attribute_label_langcode":"Language","attribute_option_rtl":"Right to Left","attribute_option_ltr":"Left to Right","attribute_label_langdir":"Text Direction","attribute_label_datetime":"Date/Time","attribute_label_cite":"Cite","attribute_label_style":"Style","attribute_label_class":"Class","attribute_label_id":"ID","attribute_label_title":"Title"}); -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/advanced/anchor.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {#advanced_dlg.anchor_title} 5 | 6 | 7 | 8 | 9 |
                    10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
                    {#advanced_dlg.anchor_title}
                    19 | 20 |
                    21 | 22 | 23 |
                    24 |
                    25 | 26 | 27 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/advanced/img/colorpicker.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/themes/advanced/img/colorpicker.jpg -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/advanced/img/flash.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/themes/advanced/img/flash.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/advanced/img/icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/themes/advanced/img/icons.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/advanced/img/iframe.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/themes/advanced/img/iframe.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/advanced/img/pagebreak.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/themes/advanced/img/pagebreak.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/advanced/img/quicktime.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/themes/advanced/img/quicktime.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/advanced/img/realmedia.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/themes/advanced/img/realmedia.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/advanced/img/shockwave.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/themes/advanced/img/shockwave.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/advanced/img/trans.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/themes/advanced/img/trans.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/advanced/img/video.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/themes/advanced/img/video.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/advanced/img/windowsmedia.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/themes/advanced/img/windowsmedia.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/advanced/skins/default/img/buttons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/themes/advanced/skins/default/img/buttons.png -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/advanced/skins/default/img/items.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/themes/advanced/skins/default/img/items.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/advanced/skins/default/img/menu_check.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/themes/advanced/skins/default/img/menu_check.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/advanced/skins/default/img/progress.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/themes/advanced/skins/default/img/progress.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/advanced/skins/default/img/tabs.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/themes/advanced/skins/default/img/tabs.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/advanced/skins/highcontrast/content.css: -------------------------------------------------------------------------------- 1 | body, td, pre { margin:8px;} 2 | body.mceForceColors {background:#FFF; color:#000;} 3 | h1 {font-size: 2em} 4 | h2 {font-size: 1.5em} 5 | h3 {font-size: 1.17em} 6 | h4 {font-size: 1em} 7 | h5 {font-size: .83em} 8 | h6 {font-size: .75em} 9 | .mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;} 10 | a.mceItemAnchor {display:inline-block; width:11px !important; height:11px !important; background:url(../default/img/items.gif) no-repeat 0 0;} 11 | span.mceItemNbsp {background: #DDD} 12 | td.mceSelected, th.mceSelected {background-color:#3399ff !important} 13 | img {border:0;} 14 | table, img, hr, .mceItemAnchor {cursor:default} 15 | table td, table th {cursor:text} 16 | ins {border-bottom:1px solid green; text-decoration: none; color:green} 17 | del {color:red; text-decoration:line-through} 18 | cite {border-bottom:1px dashed blue} 19 | acronym {border-bottom:1px dotted #CCC; cursor:help} 20 | abbr {border-bottom:1px dashed #CCC; cursor:help} 21 | 22 | img:-moz-broken {-moz-force-broken-image-icon:1; width:24px; height:24px} 23 | font[face=mceinline] {font-family:inherit !important} 24 | *[contentEditable]:focus {outline:0} 25 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css: -------------------------------------------------------------------------------- 1 | /* Silver */ 2 | .o2k7SkinSilver .mceToolbar .mceToolbarStart span, .o2k7SkinSilver .mceButton, .o2k7SkinSilver .mceSplitButton, .o2k7SkinSilver .mceSeparator, .o2k7SkinSilver .mceSplitButton a.mceOpen, .o2k7SkinSilver .mceListBox a.mceOpen {background-image:url(img/button_bg_silver.png)} 3 | .o2k7SkinSilver td.mceToolbar, .o2k7SkinSilver td.mceStatusbar, .o2k7SkinSilver .mceMenuItemTitle a {background:#eee} 4 | .o2k7SkinSilver .mceListBox .mceText {background:#FFF} 5 | .o2k7SkinSilver .mceExternalToolbar, .o2k7SkinSilver .mceListBox .mceText, .o2k7SkinSilver div.mceMenu, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceFirst td, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceLast td, .o2k7SkinSilver .mceIframeContainer {border-color: #bbb} 6 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/advanced/source_editor.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | {#advanced_dlg.code_title} 4 | 5 | 6 | 7 | 8 |
                    9 |
                    10 | 11 |
                    12 | 13 |
                    14 | 15 |
                    16 | 17 | 18 | 19 |
                    20 | 21 | 22 |
                    23 |
                    24 | 25 | 26 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/simple/img/icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/themes/simple/img/icons.gif -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/simple/langs/en.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.simple',{"cleanup_desc":"Cleanup Messy Code","redo_desc":"Redo (Ctrl+Y)","undo_desc":"Undo (Ctrl+Z)","numlist_desc":"Insert/Remove Numbered List","bullist_desc":"Insert/Remove Bulleted List","striketrough_desc":"Strikethrough","underline_desc":"Underline (Ctrl+U)","italic_desc":"Italic (Ctrl+I)","bold_desc":"Bold (Ctrl+B)"}); -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/simple/skins/default/content.css: -------------------------------------------------------------------------------- 1 | body, td, pre { 2 | font-family: Verdana, Arial, Helvetica, sans-serif; 3 | font-size: 10px; 4 | } 5 | 6 | body { 7 | background-color: #FFFFFF; 8 | } 9 | 10 | .mceVisualAid { 11 | border: 1px dashed #BBBBBB; 12 | } 13 | 14 | /* MSIE specific */ 15 | 16 | * html body { 17 | scrollbar-3dlight-color: #F0F0EE; 18 | scrollbar-arrow-color: #676662; 19 | scrollbar-base-color: #F0F0EE; 20 | scrollbar-darkshadow-color: #DDDDDD; 21 | scrollbar-face-color: #E0E0DD; 22 | scrollbar-highlight-color: #F0F0EE; 23 | scrollbar-shadow-color: #F0F0EE; 24 | scrollbar-track-color: #F5F5F5; 25 | } 26 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/simple/skins/o2k7/content.css: -------------------------------------------------------------------------------- 1 | body, td, pre {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} 2 | 3 | body {background: #FFF;} 4 | .mceVisualAid {border: 1px dashed #BBB;} 5 | 6 | /* IE */ 7 | 8 | * html body { 9 | scrollbar-3dlight-color: #F0F0EE; 10 | scrollbar-arrow-color: #676662; 11 | scrollbar-base-color: #F0F0EE; 12 | scrollbar-darkshadow-color: #DDDDDD; 13 | scrollbar-face-color: #E0E0DD; 14 | scrollbar-highlight-color: #F0F0EE; 15 | scrollbar-shadow-color: #F0F0EE; 16 | scrollbar-track-color: #F5F5F5; 17 | } 18 | -------------------------------------------------------------------------------- /http_handler/static/javascript/third-party/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/http_handler/static/javascript/third-party/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png -------------------------------------------------------------------------------- /http_handler/static/javascript/youps/ButtonService.js: -------------------------------------------------------------------------------- 1 | const API_URL = 'http://localhost:8000'; 2 | 3 | class ButtonService extends React.Component { 4 | 5 | constructor(props){ 6 | super(props); 7 | } 8 | 9 | getRules() { 10 | const url = '/email_rule_meta'; 11 | return axios.get(url, {withCredentials: true}).then(response => response.data); 12 | } 13 | getCustomersByURL(link){ 14 | const url = `${API_URL}${link}`; 15 | return axios.get(url).then(response => response.data); 16 | } 17 | getCustomer(pk) { 18 | const url = `${API_URL}/api/customers/${pk}`; 19 | return axios.get(url).then(response => response.data); 20 | } 21 | deleteCustomer(customer){ 22 | const url = `${API_URL}/api/customers/${customer.pk}`; 23 | return axios.delete(url); 24 | } 25 | createCustomer(customer){ 26 | const url = `${API_URL}/api/customers/`; 27 | return axios.post(url,customer); 28 | } 29 | updateCustomer(customer){ 30 | const url = `${API_URL}/api/customers/${customer.pk}`; 31 | return axios.put(url,customer); 32 | } 33 | } -------------------------------------------------------------------------------- /http_handler/static/javascript/youps/addon/dialog/dialog.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-dialog { 2 | position: absolute; 3 | left: 0; right: 0; 4 | background: inherit; 5 | z-index: 15; 6 | padding: .1em .8em; 7 | overflow: hidden; 8 | color: inherit; 9 | } 10 | 11 | .CodeMirror-dialog-top { 12 | border-bottom: 1px solid #eee; 13 | top: 0; 14 | } 15 | 16 | .CodeMirror-dialog-bottom { 17 | border-top: 1px solid #eee; 18 | bottom: 0; 19 | } 20 | 21 | .CodeMirror-dialog input { 22 | border: none; 23 | outline: none; 24 | background: transparent; 25 | width: 20em; 26 | color: inherit; 27 | font-family: monospace; 28 | } 29 | 30 | .CodeMirror-dialog button { 31 | font-size: 70%; 32 | } 33 | -------------------------------------------------------------------------------- /http_handler/static/javascript/youps/addon/display/fullscreen.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-fullscreen { 2 | position: fixed; 3 | top: 0; left: 0; right: 0; bottom: 0; 4 | height: auto; 5 | z-index: 9; 6 | } 7 | -------------------------------------------------------------------------------- /http_handler/static/javascript/youps/addon/edit/trailingspace.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | CodeMirror.defineOption("showTrailingSpace", false, function(cm, val, prev) { 13 | if (prev == CodeMirror.Init) prev = false; 14 | if (prev && !val) 15 | cm.removeOverlay("trailingspace"); 16 | else if (!prev && val) 17 | cm.addOverlay({ 18 | token: function(stream) { 19 | for (var l = stream.string.length, i = l; i && /\s/.test(stream.string.charAt(i - 1)); --i) {} 20 | if (i > stream.pos) { stream.pos = i; return null; } 21 | stream.pos = l; 22 | return "trailingspace"; 23 | }, 24 | name: "trailingspace" 25 | }); 26 | }); 27 | }); 28 | -------------------------------------------------------------------------------- /http_handler/static/javascript/youps/addon/fold/foldgutter.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-foldmarker { 2 | color: blue; 3 | text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px; 4 | font-family: arial; 5 | line-height: .3; 6 | cursor: pointer; 7 | } 8 | .CodeMirror-foldgutter { 9 | width: .7em; 10 | } 11 | .CodeMirror-foldgutter-open, 12 | .CodeMirror-foldgutter-folded { 13 | cursor: pointer; 14 | } 15 | .CodeMirror-foldgutter-open:after { 16 | content: "\25BE"; 17 | } 18 | .CodeMirror-foldgutter-folded:after { 19 | content: "\25B8"; 20 | } 21 | -------------------------------------------------------------------------------- /http_handler/static/javascript/youps/addon/lint/css-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // Depends on csslint.js from https://github.com/stubbornella/csslint 5 | 6 | // declare global: CSSLint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror); 15 | })(function(CodeMirror) { 16 | "use strict"; 17 | 18 | CodeMirror.registerHelper("lint", "css", function(text, options) { 19 | var found = []; 20 | if (!window.CSSLint) { 21 | if (window.console) { 22 | window.console.error("Error: window.CSSLint not defined, CodeMirror CSS linting cannot run."); 23 | } 24 | return found; 25 | } 26 | var results = CSSLint.verify(text, options), messages = results.messages, message = null; 27 | for ( var i = 0; i < messages.length; i++) { 28 | message = messages[i]; 29 | var startLine = message.line -1, endLine = message.line -1, startCol = message.col -1, endCol = message.col; 30 | found.push({ 31 | from: CodeMirror.Pos(startLine, startCol), 32 | to: CodeMirror.Pos(endLine, endCol), 33 | message: message.message, 34 | severity : message.type 35 | }); 36 | } 37 | return found; 38 | }); 39 | 40 | }); 41 | -------------------------------------------------------------------------------- /http_handler/static/javascript/youps/addon/lint/json-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // Depends on jsonlint.js from https://github.com/zaach/jsonlint 5 | 6 | // declare global: jsonlint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror); 15 | })(function(CodeMirror) { 16 | "use strict"; 17 | 18 | CodeMirror.registerHelper("lint", "json", function(text) { 19 | var found = []; 20 | if (!window.jsonlint) { 21 | if (window.console) { 22 | window.console.error("Error: window.jsonlint not defined, CodeMirror JSON linting cannot run."); 23 | } 24 | return found; 25 | } 26 | jsonlint.parseError = function(str, hash) { 27 | var loc = hash.loc; 28 | found.push({from: CodeMirror.Pos(loc.first_line - 1, loc.first_column), 29 | to: CodeMirror.Pos(loc.last_line - 1, loc.last_column), 30 | message: str}); 31 | }; 32 | try { jsonlint.parse(text); } 33 | catch(e) {} 34 | return found; 35 | }); 36 | 37 | }); 38 | -------------------------------------------------------------------------------- /http_handler/static/javascript/youps/addon/lint/yaml-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | // Depends on js-yaml.js from https://github.com/nodeca/js-yaml 15 | 16 | // declare global: jsyaml 17 | 18 | CodeMirror.registerHelper("lint", "yaml", function(text) { 19 | var found = []; 20 | if (!window.jsyaml) { 21 | if (window.console) { 22 | window.console.error("Error: window.jsyaml not defined, CodeMirror YAML linting cannot run."); 23 | } 24 | return found; 25 | } 26 | try { jsyaml.load(text); } 27 | catch(e) { 28 | var loc = e.mark, 29 | // js-yaml YAMLException doesn't always provide an accurate lineno 30 | // e.g., when there are multiple yaml docs 31 | // --- 32 | // --- 33 | // foo:bar 34 | from = loc ? CodeMirror.Pos(loc.line, loc.column) : CodeMirror.Pos(0, 0), 35 | to = from; 36 | found.push({ from: from, to: to, message: e.message }); 37 | } 38 | return found; 39 | }); 40 | 41 | }); 42 | -------------------------------------------------------------------------------- /http_handler/static/javascript/youps/addon/mode/multiplex_test.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function() { 5 | CodeMirror.defineMode("markdown_with_stex", function(){ 6 | var inner = CodeMirror.getMode({}, "stex"); 7 | var outer = CodeMirror.getMode({}, "markdown"); 8 | 9 | var innerOptions = { 10 | open: '$', 11 | close: '$', 12 | mode: inner, 13 | delimStyle: 'delim', 14 | innerStyle: 'inner' 15 | }; 16 | 17 | return CodeMirror.multiplexingMode(outer, innerOptions); 18 | }); 19 | 20 | var mode = CodeMirror.getMode({}, "markdown_with_stex"); 21 | 22 | function MT(name) { 23 | test.mode( 24 | name, 25 | mode, 26 | Array.prototype.slice.call(arguments, 1), 27 | 'multiplexing'); 28 | } 29 | 30 | MT( 31 | "stexInsideMarkdown", 32 | "[strong **Equation:**] [delim&delim-open $][inner&tag \\pi][delim&delim-close $]"); 33 | })(); 34 | -------------------------------------------------------------------------------- /http_handler/static/javascript/youps/addon/runmode/colorize.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror"), require("./runmode")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror", "./runmode"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | var isBlock = /^(p|li|div|h\\d|pre|blockquote|td)$/; 15 | 16 | function textContent(node, out) { 17 | if (node.nodeType == 3) return out.push(node.nodeValue); 18 | for (var ch = node.firstChild; ch; ch = ch.nextSibling) { 19 | textContent(ch, out); 20 | if (isBlock.test(node.nodeType)) out.push("\n"); 21 | } 22 | } 23 | 24 | CodeMirror.colorize = function(collection, defaultMode) { 25 | if (!collection) collection = document.body.getElementsByTagName("pre"); 26 | 27 | for (var i = 0; i < collection.length; ++i) { 28 | var node = collection[i]; 29 | var mode = node.getAttribute("data-lang") || defaultMode; 30 | if (!mode) continue; 31 | 32 | var text = []; 33 | textContent(node, text); 34 | node.innerHTML = ""; 35 | CodeMirror.runMode(text.join(""), mode, node); 36 | 37 | node.className += " cm-s-default"; 38 | } 39 | }; 40 | }); 41 | -------------------------------------------------------------------------------- /http_handler/static/javascript/youps/addon/search/matchesonscrollbar.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-search-match { 2 | background: gold; 3 | border-top: 1px solid orange; 4 | border-bottom: 1px solid orange; 5 | -moz-box-sizing: border-box; 6 | box-sizing: border-box; 7 | opacity: .5; 8 | } 9 | -------------------------------------------------------------------------------- /http_handler/static/javascript/youps/addon/tern/worker.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // declare global: tern, server 5 | 6 | var server; 7 | 8 | this.onmessage = function(e) { 9 | var data = e.data; 10 | switch (data.type) { 11 | case "init": return startServer(data.defs, data.plugins, data.scripts); 12 | case "add": return server.addFile(data.name, data.text); 13 | case "del": return server.delFile(data.name); 14 | case "req": return server.request(data.body, function(err, reqData) { 15 | postMessage({id: data.id, body: reqData, err: err && String(err)}); 16 | }); 17 | case "getFile": 18 | var c = pending[data.id]; 19 | delete pending[data.id]; 20 | return c(data.err, data.text); 21 | default: throw new Error("Unknown message type: " + data.type); 22 | } 23 | }; 24 | 25 | var nextId = 0, pending = {}; 26 | function getFile(file, c) { 27 | postMessage({type: "getFile", name: file, id: ++nextId}); 28 | pending[nextId] = c; 29 | } 30 | 31 | function startServer(defs, plugins, scripts) { 32 | if (scripts) importScripts.apply(null, scripts); 33 | 34 | server = new tern.Server({ 35 | getFile: getFile, 36 | async: true, 37 | defs: defs, 38 | plugins: plugins 39 | }); 40 | } 41 | 42 | this.console = { 43 | log: function(v) { postMessage({type: "debug", message: v}); } 44 | }; 45 | -------------------------------------------------------------------------------- /http_handler/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for murmur project. 3 | 4 | This module contains the WSGI application used by Django's development server 5 | and any production WSGI deployments. It should expose a module-level variable 6 | named ``application``. Django's ``runserver`` and ``runfcgi`` commands discover 7 | this application via the ``WSGI_APPLICATION`` setting. 8 | 9 | Usually you will have the standard Django WSGI application here, but it also 10 | might make sense to replace the whole Django WSGI application with a custom one 11 | that later delegates to the Django one. For example, you could introduce WSGI 12 | middleware here, or combine a Django application with an application of another 13 | framework. 14 | 15 | """ 16 | import os 17 | 18 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "http_handler.settings") 19 | 20 | # This application object is used by any WSGI server configured to use this 21 | # file. This includes Django's development server, if the WSGI_APPLICATION 22 | # setting points here. 23 | from django.core.wsgi import get_wsgi_application 24 | application = get_wsgi_application() 25 | # Apply WSGI middleware here. 26 | # from helloworld.wsgi import HelloWorldApplication 27 | # application = HelloWorldApplication(application) 28 | -------------------------------------------------------------------------------- /logs/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore 5 | -------------------------------------------------------------------------------- /manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | 5 | if __name__ == "__main__": 6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "http_handler.settings") 7 | 8 | from django.core.management import execute_from_command_line 9 | 10 | execute_from_command_line(sys.argv) 11 | -------------------------------------------------------------------------------- /murmur-env/debug: -------------------------------------------------------------------------------- 1 | true 2 | -------------------------------------------------------------------------------- /murmur-env/env: -------------------------------------------------------------------------------- 1 | staging 2 | -------------------------------------------------------------------------------- /murmur-env/protocol: -------------------------------------------------------------------------------- 1 | http 2 | -------------------------------------------------------------------------------- /murmur-env/website: -------------------------------------------------------------------------------- 1 | youps 2 | -------------------------------------------------------------------------------- /registration/__init__.py: -------------------------------------------------------------------------------- 1 | VERSION = (1, 0, 0, 'final', 0) 2 | 3 | 4 | def get_version(): 5 | "Returns a PEP 386-compliant version number from VERSION." 6 | assert len(VERSION) == 5 7 | assert VERSION[3] in ('alpha', 'beta', 'rc', 'final') 8 | 9 | # Now build the two parts of the version number: 10 | # main = X.Y[.Z] 11 | # sub = .devN - for pre-alpha releases 12 | # | {a|b|c}N - for alpha, beta and rc releases 13 | 14 | parts = 2 if VERSION[2] == 0 else 3 15 | main = '.'.join(str(x) for x in VERSION[:parts]) 16 | 17 | sub = '' 18 | if VERSION[3] != 'final': 19 | mapping = {'alpha': 'a', 'beta': 'b', 'rc': 'c'} 20 | sub = mapping[VERSION[3]] + str(VERSION[4]) 21 | 22 | return str(main + sub) 23 | -------------------------------------------------------------------------------- /registration/backends/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/backends/__init__.py -------------------------------------------------------------------------------- /registration/backends/default/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/backends/default/__init__.py -------------------------------------------------------------------------------- /registration/backends/simple/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/backends/simple/__init__.py -------------------------------------------------------------------------------- /registration/backends/simple/urls.py: -------------------------------------------------------------------------------- 1 | """ 2 | URLconf for registration and activation, using django-registration's 3 | one-step backend. 4 | 5 | If the default behavior of these views is acceptable to you, simply 6 | use a line like this in your root URLconf to set up the default URLs 7 | for registration:: 8 | 9 | (r'^accounts/', include('registration.backends.simple.urls')), 10 | 11 | This will also automatically set up the views in 12 | ``django.contrib.auth`` at sensible default locations. 13 | 14 | If you'd like to customize registration behavior, feel free to set up 15 | your own URL patterns for these views instead. 16 | 17 | """ 18 | 19 | 20 | from django.conf.urls import include 21 | from django.conf.urls import patterns 22 | from django.conf.urls import url 23 | from django.views.generic.base import TemplateView 24 | 25 | from registration.backends.simple.views import RegistrationView 26 | 27 | from http_handler.settings import WEBSITE 28 | 29 | urlpatterns = patterns('', 30 | url(r'^register/$', 31 | RegistrationView.as_view(), 32 | name='registration_register'), 33 | url(r'^register/closed/$', 34 | TemplateView.as_view(template_name=WEBSITE+'/registration/registration_closed.html'), 35 | name='registration_disallowed'), 36 | (r'', include('registration.auth_urls')), 37 | ) 38 | -------------------------------------------------------------------------------- /registration/locale/ar/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/ar/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/bg/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/bg/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/ca/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/ca/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/cs/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/cs/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/da/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/da/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/de/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/de/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/el/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/el/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/en/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/en/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/es/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/es/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/es_AR/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/es_AR/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/fa/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/fa/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/fr/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/fr/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/he/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/he/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/hr/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/hr/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/is/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/is/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/it/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/it/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/ja/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/ja/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/ko/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/ko/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/nb/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/nb/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/nl/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/nl/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/pl/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/pl/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/pt/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/pt/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/pt_BR/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/pt_BR/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/ru/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/ru/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/sl/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/sl/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/sr/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/sr/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/sv/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/sv/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/tr_TR/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/tr_TR/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/zh_CN/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/zh_CN/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/locale/zh_TW/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/locale/zh_TW/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /registration/management/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/management/__init__.py -------------------------------------------------------------------------------- /registration/management/commands/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haystack/YouPS/849c8ef785bf9bf2f6379c6fc5e2b842c1a6a522/registration/management/commands/__init__.py -------------------------------------------------------------------------------- /registration/management/commands/cleanupregistration.py: -------------------------------------------------------------------------------- 1 | """ 2 | A management command which deletes expired accounts (e.g., 3 | accounts which signed up but never activated) from the database. 4 | 5 | Calls ``RegistrationProfile.objects.delete_expired_users()``, which 6 | contains the actual logic for determining which accounts are deleted. 7 | 8 | """ 9 | 10 | from django.core.management.base import NoArgsCommand 11 | 12 | from registration.models import RegistrationProfile 13 | 14 | 15 | class Command(NoArgsCommand): 16 | help = "Delete expired user registrations from the database" 17 | 18 | def handle_noargs(self, **options): 19 | RegistrationProfile.objects.delete_expired_users() 20 | -------------------------------------------------------------------------------- /registration/signals.py: -------------------------------------------------------------------------------- 1 | from django.dispatch import Signal 2 | 3 | 4 | # A new user has registered. 5 | user_registered = Signal(providing_args=["user", "request"]) 6 | 7 | # A user has activated his or her account. 8 | user_activated = Signal(providing_args=["user", "request"]) 9 | -------------------------------------------------------------------------------- /registration/tests/__init__.py: -------------------------------------------------------------------------------- 1 | from registration.tests.default_backend import * 2 | from registration.tests.forms import * 3 | from registration.tests.models import * 4 | from registration.tests.simple_backend import * 5 | -------------------------------------------------------------------------------- /registration/urls.py: -------------------------------------------------------------------------------- 1 | """ 2 | Backwards-compatible URLconf for existing django-registration 3 | installs; this allows the standard ``include('registration.urls')`` to 4 | continue working, but that usage is deprecated and will be removed for 5 | django-registration 1.0. For new installs, use 6 | ``include('registration.backends.default.urls')``. 7 | 8 | """ 9 | 10 | import warnings 11 | 12 | warnings.warn("include('registration.urls') is deprecated; use include('registration.backends.default.urls') instead.", 13 | DeprecationWarning) 14 | 15 | from registration.backends.default.urls import * 16 | -------------------------------------------------------------------------------- /requirements.dev.txt: -------------------------------------------------------------------------------- 1 | autopep8==1.4.3 2 | flake8==3.6.0 3 | keyring==18.0.0 4 | pep8==1.7.1 5 | pip-chill==0.1.8 6 | pydocstyle==3.0.0 7 | pylint==1.9.4 8 | pylint-django==0.7.2 9 | rope==0.12.0 10 | yagmail==0.11.214 11 | -------------------------------------------------------------------------------- /requirements.docker.txt: -------------------------------------------------------------------------------- 1 | amqp==1.4.9 2 | attrs==15.2.0 3 | beautifulsoup4==4.6.0 4 | bleach==1.4 5 | boto==2.45.0 6 | chardet==3.0.4 7 | django==1.8 8 | django-annoying==0.8.0 9 | django-appconf==0.6 10 | django-compressor==1.4 11 | django-extensions==2.0.6 12 | django-gravatar==0.1.0 13 | django-mobile==0.4.0 14 | django-registration==2.0 15 | django-storages==1.4.1 16 | dkimpy==0.6.1 17 | dnspython==1.15.0 18 | google-api-python-client==1.6.1 19 | html2text==2014.9.25 20 | html5lib==1.0b3 21 | icalendar==4.0.4 22 | imapclient==2.1.0 23 | ipython==5.8.0 24 | jinja2==2.10.3 25 | jsonfield==1.0.3 26 | markdown2==2.3.0 27 | mysqlclient==1.4.6 28 | oauth2client==1.5.2 29 | pycrypto==2.6.1 30 | pyspf==2.0.11 31 | python-dateutil >= 2.7.0 32 | python-gflags==3.1.0 33 | python-gnupg==0.4.0 34 | pytz==2016.7 35 | requests==2.18.4 36 | salmon-mail==3.1.1 37 | typing==3.6.4 38 | nylas 39 | email_reply_parser 40 | # spacy==2.1.3 41 | # ics==0.6 -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | beautifulsoup4==4.6.0 2 | bleach==1.4 3 | boto==2.45.0 4 | django-annoying==0.8.0 5 | django-compressor==1.4 6 | django-gravatar==0.1.0 7 | django-mobile==0.4.0 8 | django-registration==2.0 9 | django-storages==1.4.1 10 | dkimpy==0.6.1 11 | dnspython==1.15.0 12 | google-api-python-client==1.6.1 13 | html2text==2014.9.25 14 | imapclient==2.0.0 15 | jsonfield==1.0.3 16 | lamson==1.3.4 17 | markdown2==2.3.0 18 | mysql-python==1.2.5 19 | pycrypto==2.6.1 20 | pyspf==2.0.1 21 | python-gflags==3.1.0 22 | python-gnupg==0.4.0 23 | pytz==2016.7 24 | requests==2.18.4 25 | south==1.0.1 26 | typing==3.6.6 -------------------------------------------------------------------------------- /run/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore 5 | -------------------------------------------------------------------------------- /schema/__init__.py: -------------------------------------------------------------------------------- 1 | from schema.models import UserProfile 2 | from schema.youps import (ContactSchema, EmailRule, FolderSchema, ImapAccount, LogSchema, 3 | MailbotMode, Message_Thread, TaskManager, 4 | MessageSchema, CalendarSchema) 5 | 6 | __all__ = ['ContactSchema', 7 | 'EmailRule', 8 | 'FolderSchema', 9 | 'ImapAccount', 10 | 'LogSchema', 11 | 'MailbotMode', 12 | 'MessageSchema', 13 | 'Message_Thread', 14 | 'UserProfile', 15 | 'TaskManager', 16 | 'CalendarSchema' 17 | ] 18 | -------------------------------------------------------------------------------- /scripts/reset_user.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # stop on errors 4 | set -e 5 | 6 | # stop the cron jobs 7 | pidfile="/home/ubuntu/production/mailx/loop_sync_user_inbox2.lock" 8 | exec 200>$pidfile 9 | flock 200 || exit 1 10 | pidfile="/home/ubuntu/production/mailx/register_inbox2.lock" 11 | exec 201>$pidfile 12 | flock 201 || exit 1 13 | 14 | # read the users email 15 | if [ $# -eq 0 ]; then 16 | read -p "Please enter your email: " email 17 | echo 18 | else 19 | email=$1 20 | fi 21 | 22 | # run our code 23 | python manage.py shell <