Updating to Version 3

This commit is contained in:
Martin Donnelly 2016-03-15 11:33:52 +00:00
parent 186a568a7d
commit 1ff964991e
27 changed files with 15925 additions and 334 deletions

26
.editorconfig Normal file
View File

@ -0,0 +1,26 @@
# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# editorconfig.org
root = true
[*]
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = space
indent_size = 2
[*.{js,json,hbs,html,css}]
indent_style = space
indent_size = 2
[*.hbs]
insert_final_newline = false
[*.{diff,md}]
indent_size = 2
trim_trailing_whitespace = false

View File

@ -2,12 +2,37 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="c2fd5632-2143-4c7e-8b0d-96d7692b700b" name="Default" comment="">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.editorconfig" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.jshintrc" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/html/css/app.css" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/html/css/gist.css" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/html/css/md.css" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/html/css/read.css" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/html/index.html" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/html/js/app.v3.js" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/html/js/appv2.js" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/html/js/shell.js" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/html/libs/ejs.js" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/html/libs/ejs_production.js" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/html/libs/microevent.js" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/html/libs/view.js" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/html/partials/list.ejs.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/html/css/cards.css" afterPath="$PROJECT_DIR$/html/css/cards.css" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/html/ejs/list.ejs" afterPath="$PROJECT_DIR$/html/ejs/list.ejs" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/html/ejs/test.ejs" afterPath="$PROJECT_DIR$/html/ejs/test.ejs" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/node_modules/ejs/package.json" afterPath="$PROJECT_DIR$/node_modules/ejs/package.json" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/node_modules/express/package.json" afterPath="$PROJECT_DIR$/node_modules/express/package.json" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/node_modules/lodash/README.md" afterPath="$PROJECT_DIR$/node_modules/lodash/README.md" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/node_modules/lodash/array.js" afterPath="$PROJECT_DIR$/node_modules/lodash/array.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/node_modules/lodash/lang.js" afterPath="$PROJECT_DIR$/node_modules/lodash/lang.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/node_modules/lodash/object.js" afterPath="$PROJECT_DIR$/node_modules/lodash/object.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/node_modules/lodash/package.json" afterPath="$PROJECT_DIR$/node_modules/lodash/package.json" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/package.json" afterPath="$PROJECT_DIR$/package.json" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pipes-server.js" afterPath="$PROJECT_DIR$/pipes-server.js" />
</list>
<ignored path="rinser.iws" />
<ignored path=".idea/workspace.xml" />
<ignored path="node_modules/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
@ -24,32 +49,44 @@
<favorites_list name="rinser" />
</component>
<component name="FileEditorManager">
<splitter split-orientation="horizontal" split-proportion="0.5129568">
<split-first>
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="paleo.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/paleo.js">
<file leaf-file-name="appv2.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/html/js/appv2.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="72" column="2" selection-start-line="72" selection-start-column="2" selection-end-line="72" selection-end-column="2" />
<caret line="183" column="4" selection-start-line="183" selection-start-column="4" selection-end-line="183" selection-end-column="4" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="lifestyle.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/lifestyle.js">
<file leaf-file-name="ejs.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/html/libs/ejs.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="185" column="2" selection-start-line="185" selection-start-column="2" selection-end-line="185" selection-end-column="2" />
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="jobs.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/jobs.js">
<file leaf-file-name="index.html" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/html/index.html">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="41" column="2" selection-start-line="41" selection-start-column="2" selection-end-line="41" selection-end-column="2" />
<state vertical-scroll-proportion="-9.153846">
<caret line="14" column="23" selection-start-line="14" selection-start-column="23" selection-end-line="14" selection-end-column="23" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="cards.css" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/html/css/cards.css">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.29411766">
<caret line="10" column="0" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
<folding />
</state>
</provider>
@ -59,73 +96,144 @@
<entry file="file://$PROJECT_DIR$/.gitignore">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="26" column="5" selection-start-line="26" selection-start-column="5" selection-end-line="26" selection-end-column="5" />
<caret line="80" column="0" selection-start-line="80" selection-start-column="0" selection-end-line="80" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="pipes-server.js" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/pipes-server.js">
<file leaf-file-name="app.css" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/html/css/app.css">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.93248945">
<caret line="38" column="3" selection-start-line="38" selection-start-column="3" selection-end-line="38" selection-end-column="3" />
<state vertical-scroll-proportion="-12.423077">
<caret line="178" column="29" selection-start-line="178" selection-start-column="29" selection-end-line="178" selection-end-column="29" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="package.json" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/package.json">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-9.153846">
<caret line="14" column="18" selection-start-line="14" selection-start-column="18" selection-end-line="14" selection-end-column="18" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="express.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/node_modules/express/lib/express.js">
<file leaf-file-name="list.ejs.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/html/partials/list.ejs.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="98" column="0" selection-start-line="98" selection-start-column="0" selection-end-line="98" selection-end-column="0" />
<caret line="3" column="0" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="news.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/news.js">
<file leaf-file-name="app.prod.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/html/js/app.prod.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="102" column="2" selection-start-line="102" selection-start-column="2" selection-end-line="102" selection-end-column="2" />
<caret line="0" column="10" selection-start-line="0" selection-start-column="10" selection-end-line="133" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="tech.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/tech.js">
<file leaf-file-name="app.v3.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/html/js/app.v3.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="103" column="2" selection-start-line="103" selection-start-column="2" selection-end-line="103" selection-end-column="2" />
<folding />
<caret line="150" column="0" selection-start-line="150" selection-start-column="0" selection-end-line="150" selection-end-column="0" />
<folding>
<element signature="e#0#43#0" expanded="false" />
<marker date="1458040593461" expanded="true" signature="67:3554" placeholder="{...}" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="bunyan.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/node_modules/bunyan/lib/bunyan.js">
<file leaf-file-name="app.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/html/js/app.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-109.62069">
<caret line="187" column="49" selection-start-line="187" selection-start-column="45" selection-end-line="187" selection-end-column="49" />
<state vertical-scroll-proportion="0.0">
<caret line="8" column="33" selection-start-line="0" selection-start-column="0" selection-end-line="130" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</split-first>
<split-second>
<leaf>
<file leaf-file-name="app.v3.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/html/js/app.v3.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-4.8421054">
<caret line="51" column="55" selection-start-line="51" selection-start-column="55" selection-end-line="51" selection-end-column="55" />
<folding>
<element signature="e#0#43#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="testcards.ejs" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/html/ejs/testcards.ejs">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-9.807693">
<caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="index.ejs" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/views/index.ejs">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-3.2692308">
<caret line="5" column="9" selection-start-line="5" selection-start-column="9" selection-end-line="5" selection-end-column="9" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="test.ejs" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/html/ejs/test.ejs">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-1.9615384">
<caret line="3" column="48" selection-start-line="3" selection-start-column="48" selection-end-line="3" selection-end-column="48" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="feeds.html" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/html/feeds.html">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="1.020362">
<caret line="31" column="9" selection-start-line="31" selection-start-column="9" selection-end-line="31" selection-end-column="9" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="list.ejs" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/html/ejs/list.ejs">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-0.65384614">
<caret line="1" column="0" selection-start-line="1" selection-start-column="0" selection-end-line="1" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="paleo.json" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/html/paleo.json">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</split-second>
</splitter>
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
@ -156,7 +264,6 @@
<option value="$PROJECT_DIR$/html/lifestyle.json" />
<option value="$PROJECT_DIR$/node_modules/rss-braider/lib/RssBraider.js" />
<option value="$PROJECT_DIR$/html/ejs/testcards.ejs" />
<option value="$PROJECT_DIR$/.gitignore" />
<option value="$PROJECT_DIR$/tech.js" />
<option value="$PROJECT_DIR$/paleo.js" />
<option value="$PROJECT_DIR$/news.js" />
@ -164,6 +271,16 @@
<option value="$PROJECT_DIR$/jobs.js" />
<option value="$PROJECT_DIR$/package.json" />
<option value="$PROJECT_DIR$/pipes-server.js" />
<option value="$PROJECT_DIR$/html/js/appv2.js" />
<option value="$PROJECT_DIR$/html/partials/list.ejs.js" />
<option value="$PROJECT_DIR$/html/ejs/list.ejs" />
<option value="$PROJECT_DIR$/html/ejs/test.ejs" />
<option value="$PROJECT_DIR$/html/js/app.v3.js" />
<option value="$PROJECT_DIR$/html/feeds.html" />
<option value="$PROJECT_DIR$/html/index.html" />
<option value="$PROJECT_DIR$/.gitignore" />
<option value="$PROJECT_DIR$/html/css/app.css" />
<option value="$PROJECT_DIR$/html/css/cards.css" />
</list>
</option>
</component>
@ -173,10 +290,10 @@
<detection-done>true</detection-done>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="1914" />
<option name="y" value="19" />
<option name="width" value="1437" />
<option name="height" value="1047" />
<option name="x" value="1592" />
<option name="y" value="-8" />
<option name="width" value="1936" />
<option name="height" value="1096" />
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="true">
<OptionsSetting value="true" id="Add" />
@ -204,7 +321,6 @@
</navigator>
<panes>
<pane id="Scratches" />
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<PATH>
@ -219,7 +335,7 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="rinser" />
<option name="myItemId" value="Rinser" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
@ -229,11 +345,11 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="rinser" />
<option name="myItemId" value="Rinser" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="templates" />
<option name="myItemId" value="views" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
@ -243,11 +359,11 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="rinser" />
<option name="myItemId" value="Rinser" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="node_modules" />
<option name="myItemId" value="routes" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
@ -257,15 +373,11 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="rinser" />
<option name="myItemId" value="Rinser" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="node_modules" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="rss-braider" />
<option name="myItemId" value="html" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
@ -275,19 +387,15 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="rinser" />
<option name="myItemId" value="Rinser" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="node_modules" />
<option name="myItemId" value="html" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="rss-braider" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="node_modules" />
<option name="myItemId" value="partials" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
@ -297,15 +405,15 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="rinser" />
<option name="myItemId" value="Rinser" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="node_modules" />
<option name="myItemId" value="html" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="rss" />
<option name="myItemId" value="js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
@ -315,25 +423,48 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="rinser" />
<option name="myItemId" value="Rinser" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="bin" />
<option name="myItemId" value="html" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="ejs" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="rinser" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Rinser" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="html" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="css" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="HbShouldOpenHtmlAsHb" value="" />
<property name="recentsLimit" value="5" />
<property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
<property name="settings.editor.selected.configurable" value="settings.nodejs" />
<property name="settings.editor.splitter.proportion" value="0.2" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/pipes-server.js" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/node_modules" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth0" value="157" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder0" value="0" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth1" value="186" />
@ -351,13 +482,18 @@
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth3" value="855" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder3" value="3" />
<property name="js-jscs-nodeInterpreter" value="C:\Program Files\nodejs\node.exe" />
<property name="editor.config.accepted" value="true" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="D:\dev\rinser" />
<recent name="C:\mddev\Rinser\html" />
<recent name="C:\mddev\Rinser\html\libs" />
<recent name="C:\mddev\Rinser\html\js" />
<recent name="C:\mddev\Rinser\html\css" />
<recent name="C:\mddev\Rinser" />
</key>
</component>
<component name="RunManager" selected="Node.js.serve">
<component name="RunManager" selected="Node.js.Unnamed">
<configuration default="false" name="paleo.js" type="NodeJSConfigurationType" factoryName="Node.js" temporary="true" path-to-node="C:/Program Files/nodejs/node" path-to-js-file="paleo.js" working-dir="$PROJECT_DIR$">
<method />
</configuration>
@ -410,8 +546,11 @@
<recursive>false</recursive>
<method />
</configuration>
<configuration default="false" name="Unnamed" type="NodeJSConfigurationType" factoryName="Node.js" path-to-node="C:/Program Files/nodejs/node" path-to-js-file="pipes-server.js" working-dir="$PROJECT_DIR$">
<method />
</configuration>
<list size="2">
<item index="0" class="java.lang.String" itemvalue="Node.js.serve" />
<item index="0" class="java.lang.String" itemvalue="Node.js.Unnamed" />
<item index="1" class="java.lang.String" itemvalue="Node.js.paleo.js" />
</list>
<recent_temporary>
@ -533,19 +672,32 @@
<option name="project" value="LOCAL" />
<updated>1455282625915</updated>
</task>
<option name="localTasksCounter" value="18" />
<task id="LOCAL-00018" summary="Updating to Version 3">
<created>1458041283718</created>
<option name="number" value="00018" />
<option name="project" value="LOCAL" />
<updated>1458041283718</updated>
</task>
<task id="LOCAL-00019" summary="Updating to Version 3">
<created>1458041423312</created>
<option name="number" value="00019" />
<option name="project" value="LOCAL" />
<updated>1458041423312</updated>
</task>
<option name="localTasksCounter" value="20" />
<servers />
</component>
<component name="ToolWindowManager">
<frame x="1914" y="19" width="1437" height="1047" extended-state="0" />
<frame x="1592" y="-8" width="1936" height="1096" extended-state="6" />
<editor active="false" />
<layout>
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.28091493" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.20706007" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.4353206" sideWeight="0.5110794" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.4353206" sideWeight="0.48892066" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.37795275" sideWeight="0.65546817" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33551913" sideWeight="0.34785393" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.48547718" sideWeight="0.48606148" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33551913" sideWeight="0.65214604" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32896176" sideWeight="0.4838976" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
@ -553,13 +705,33 @@
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32850778" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="SonarQube" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32962137" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
</layout>
<layout-to-restore>
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.33551913" sideWeight="0.34785393" order="8" side_tool="true" content_ui="tabs" />
<window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.14956331" sideWeight="0.48606148" order="10" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.33551913" sideWeight="0.65214604" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32896176" sideWeight="0.4838976" order="11" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2517617" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32850778" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="SonarQube" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32962137" sideWeight="0.5" order="12" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3997773" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
</layout-to-restore>
</component>
<component name="Vcs.Log.UiProperties">
<option name="RECENTLY_FILTERED_USER_GROUPS">
@ -578,7 +750,8 @@
<MESSAGE value="debugging braider" />
<MESSAGE value="reverting" />
<MESSAGE value="debugging" />
<option name="LAST_COMMIT_MESSAGE" value="debugging" />
<MESSAGE value="Updating to Version 3" />
<option name="LAST_COMMIT_MESSAGE" value="Updating to Version 3" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
@ -587,66 +760,6 @@
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/paleo.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="81" column="0" selection-start-line="81" selection-start-column="0" selection-end-line="81" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/lifestyle.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/html/lifestyle.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="19" column="107" selection-start-line="19" selection-start-column="107" selection-end-line="19" selection-end-column="107" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cron.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="11" selection-end-column="12" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/paleo.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="5" column="14" selection-start-line="5" selection-start-column="14" selection-end-line="5" selection-end-column="47" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/jobs-local.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="208" column="2" selection-start-line="208" selection-start-column="2" selection-end-line="208" selection-end-column="2" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/plugins/capitalize_title.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="6" column="2" selection-start-line="6" selection-start-column="2" selection-end-line="6" selection-end-column="2" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/plugins/filter_glasgow.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="5" column="18" selection-start-line="5" selection-start-column="18" selection-end-line="5" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/jobs-local.xml">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
@ -791,19 +904,10 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/html/paleo.json">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/output.txt">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="13" selection-start-line="0" selection-start-column="13" selection-end-line="0" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
@ -831,59 +935,10 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/html/ejs/test.ejs">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/html/ejs/testcards.ejs">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-9.807693">
<caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/bin/www">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/node_modules/rss-braider/package.json">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-7.8461537">
<caret line="27" column="5" selection-start-line="27" selection-start-column="5" selection-end-line="27" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/node_modules/rss-braider/index.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="5" column="25" selection-start-line="5" selection-start-column="25" selection-end-line="5" selection-end-column="25" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/node_modules/rss-braider/lib/RssBraider.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="16" column="39" selection-start-line="16" selection-start-column="39" selection-end-line="16" selection-end-column="39" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/node_modules/bunyan/lib/bunyan.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-109.62069">
<caret line="187" column="49" selection-start-line="187" selection-start-column="45" selection-end-line="187" selection-end-column="49" />
<folding />
</state>
</provider>
</entry>
@ -919,6 +974,34 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/package.json">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="12" column="15" selection-start-line="12" selection-start-column="15" selection-end-line="12" selection-end-column="15" />
<folding>
<marker date="1458037477957" expanded="true" signature="68:146" placeholder="{&quot;ejs&quot;: &quot;^2.3.3&quot;...}" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pipes-server.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="36" column="3" selection-start-line="36" selection-start-column="3" selection-end-line="36" selection-end-column="3" />
<folding>
<marker date="1458036348108" expanded="true" signature="1243:1318" placeholder="{...}" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.editorconfig">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.55510205">
<caret line="16" column="20" selection-start-line="16" selection-start-column="20" selection-end-line="16" selection-end-column="20" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/jobs.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
@ -927,34 +1010,149 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/html/js/shell.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/html/libs/ejs.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/html/js/app.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="8" column="33" selection-start-line="0" selection-start-column="0" selection-end-line="130" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/html/js/appv2.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="183" column="4" selection-start-line="183" selection-start-column="4" selection-end-line="183" selection-end-column="4" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/html/paleo.json">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/html/ejs/list.ejs">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-0.65384614">
<caret line="1" column="0" selection-start-line="1" selection-start-column="0" selection-end-line="1" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/views/index.ejs">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-3.2692308">
<caret line="5" column="9" selection-start-line="5" selection-start-column="9" selection-end-line="5" selection-end-column="9" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/html/partials/list.ejs.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="3" column="0" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/html/js/app.prod.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="10" selection-start-line="0" selection-start-column="10" selection-end-line="133" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/html/js/app.v3.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="150" column="0" selection-start-line="150" selection-start-column="0" selection-end-line="150" selection-end-column="0" />
<folding>
<element signature="e#0#43#0" expanded="false" />
<marker date="1458040593461" expanded="true" signature="67:3554" placeholder="{...}" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/html/ejs/test.ejs">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-1.9615384">
<caret line="3" column="48" selection-start-line="3" selection-start-column="48" selection-end-line="3" selection-end-column="48" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/html/ejs/testcards.ejs">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-9.807693">
<caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/html/css/nprogress.css">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/html/feeds.html">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="1.020362">
<caret line="31" column="9" selection-start-line="31" selection-start-column="9" selection-end-line="31" selection-end-column="9" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/html/index.html">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-9.153846">
<caret line="14" column="23" selection-start-line="14" selection-start-column="23" selection-end-line="14" selection-end-column="23" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.gitignore">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="26" column="5" selection-start-line="26" selection-start-column="5" selection-end-line="26" selection-end-column="5" />
<caret line="80" column="0" selection-start-line="80" selection-start-column="0" selection-end-line="80" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/node_modules/express/lib/express.js">
<entry file="file://$PROJECT_DIR$/html/css/app.css">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="98" column="0" selection-start-line="98" selection-start-column="0" selection-end-line="98" selection-end-column="0" />
<state vertical-scroll-proportion="-12.423077">
<caret line="178" column="29" selection-start-line="178" selection-start-column="29" selection-end-line="178" selection-end-column="29" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/package.json">
<entry file="file://$PROJECT_DIR$/html/css/cards.css">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-9.153846">
<caret line="14" column="18" selection-start-line="14" selection-start-column="18" selection-end-line="14" selection-end-column="18" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pipes-server.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.93248945">
<caret line="38" column="3" selection-start-line="38" selection-start-column="3" selection-end-line="38" selection-end-column="3" />
<state vertical-scroll-proportion="0.29411766">
<caret line="10" column="0" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
<folding />
</state>
</provider>

33
.jshintrc Normal file
View File

@ -0,0 +1,33 @@
{
"predef": [
"server",
"document",
"window",
"-Promise"
],
"browser": true,
"boss": true,
"curly": true,
"debug": false,
"devel": true,
"eqeqeq": true,
"evil": true,
"forin": false,
"immed": false,
"laxbreak": false,
"newcap": true,
"noarg": true,
"noempty": false,
"nonew": false,
"nomen": false,
"onevar": false,
"plusplus": false,
"regexp": false,
"undef": true,
"sub": true,
"strict": false,
"white": false,
"eqnull": true,
"esnext": true,
"unused": true
}

180
html/css/app.css Normal file
View File

@ -0,0 +1,180 @@
html,
body {
height: 100%;
background-color: #eee;
}
html,
body,
input,
textarea,
buttons {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.004);
}
/**
* Layout CSS
*/
#header {
position: fixed;
top: 0;
right: 0;
left: 0;
z-index: 2;
transition: left 0.2s;
}
#sidedrawer {
position: fixed;
top: 0;
bottom: 0;
width: 200px;
left: -200px;
overflow: auto;
z-index: 2;
background-color: #fff;
transition: transform 0.2s;
}
#content-wrapper {
min-height: 100%;
overflow-x: hidden;
margin-left: 0px;
transition: margin-left 0.2s;
/* sticky bottom */
margin-bottom: -160px;
padding-bottom: 160px;
}
#footer {
height: 160px;
margin-left: 0px;
transition: margin-left 0.2s;
}
@media (min-width: 600px) {
#header {
left: 200px;
}
#sidedrawer {
transform: translate(200px);
}
#content-wrapper {
margin-left: 200px;
}
#footer {
margin-left: 200px;
}
body.hide-sidedrawer #header {
left: 0;
}
body.hide-sidedrawer #sidedrawer {
transform: translate(0px);
}
body.hide-sidedrawer #content-wrapper {
margin-left: 0;
}
body.hide-sidedrawer #footer {
margin-left: 0;
}
}
/**
* Toggle Side drawer
*/
#sidedrawer.active {
transform: translate(200px);
}
/**
* Header CSS
*/
.sidedrawer-toggle {
color: #fff;
cursor: pointer;
font-size: 20px;
line-height: 20px;
margin-right: 10px;
}
.sidedrawer-toggle:hover {
color: #fff;
text-decoration: none;
}
/**
* Footer CSS
*/
#footer {
background-color: #0288D1;
color: #fff;
}
#footer a {
color: #fff;
text-decoration: underline;
}
/**
* Side drawer CSS
*/
#sidedrawer-brand {
/* padding-left: 20px; */
}
#sidedrawer ul {
list-style: none;
}
#sidedrawer > ul {
padding-left: 0px;
}
#sidedrawer > ul > li:first-child {
padding-top: 15px;
}
#sidedrawer strong {
display: block;
padding: 15px 22px;
cursor: pointer;
}
#sidedrawer .entry:hover {
background-color: #E0E0E0;
}
#sidedrawer strong + ul > li {
padding: 6px 0px;
}
#sidedrawer .entry {
padding: 7px;
cursor:pointer;
}
/*#sidedrawer .entry:after {
font-family:Linearicons-Free;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
float:right;
content:"\e87a"
}*/
#footer, .mui-appbar {
background-color: #DCEF2E;
}

View File

@ -1,9 +1,5 @@
@import url(http://fonts.googleapis.com/css?family=Roboto:400,100,100italic,300,300italic,400italic,500,700,500italic,900,700italic,900italic);
* { font-family: 'Roboto', sans-serif; line-height:1.2; vertical-align:middle; }
body { background:#222; }
* { line-height:1.2; vertical-align:middle; }
main {
display:block;
@ -12,12 +8,10 @@ main {
margin:3vh auto;
padding:1.5rem 0 0;
background:#d5d5d5;
outline
border-radius:.25rem;
overflow:hidden;
transform:scale(.75);
transform-origin:center 3rem;
transition:transform .3s;
}
body:hover main {
transform:scale(1);
@ -35,7 +29,7 @@ header {
input, .card {
position:relative;
z-index:2;
/* z-index:2;*/
}
input {
display:block;
@ -66,8 +60,7 @@ input:focus + header {
margin:0 1rem 1rem;
border-radius:3px;
user-select:none;
animation:fly-in-from-left .5s 1s ease both;
transform-origin:top left;
}
.card:nth-child(even){
animation-name:fly-in-from-right;
@ -89,7 +82,7 @@ input:focus + header {
}
}
.card:after {
/*.card:after {
position:absolute;
font-size:.9rem;
top:1.5rem;
@ -102,7 +95,7 @@ input:focus + header {
text-align:center;
border-radius:50%;
pointer-events:none;
}
}*/
h1 {
font-size:2rem;

123
html/css/gist.css Normal file
View File

@ -0,0 +1,123 @@
.gist {
color: #000;
}
.gist div {
padding: 0;
margin: 0;
}
.gist .gist-file {
border: 1px solid #dedede; /* gray */
font-family: Monaco, "Courier New", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", monospace;
margin-bottom: 1em;
}
.gist .gist-file .gist-meta {
overflow: hidden;
font-size: 85%;
padding: .5em;
color: #666;
background-color: #eaeaea;
}
.gist .gist-file .gist-meta a {
color: #369;
}
.gist .gist-file .gist-meta a:visited {
color: #737;
}
.gist .gist-file .gist-data {
overflow: auto;
word-wrap: normal;
background-color: #f8f8ff;
border-bottom: 1px solid #ddd;
font-size: 100%;
}
.gist .gist-file .gist-data pre {
font-family: 'Bitstream Vera Sans Mono', 'Courier', monospace;
background: transparent !important;
margin: 0 !important;
border: none !important;
padding: .25em .5em .5em .5em !important;
}
.gist .gist-file .gist-data .gist-highlight {
background: transparent !important;
}
.gist .gist-file .gist-data .gist-line-numbers {
background-color: #ececec;
color: #aaa;
border-right: 1px solid #ddd;
text-align: right;
}
.gist .gist-file .gist-data .gist-line-numbers span {
clear: right;
display: block;
}
.gist-syntax { background: #ffffff; }
.gist-syntax .c { color: #999988; font-style: italic } /* Comment */
.gist-syntax .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.gist-syntax .k { color: #000000; font-weight: bold } /* Keyword */
.gist-syntax .o { color: #000000; font-weight: bold } /* Operator */
.gist-syntax .cm { color: #999988; font-style: italic } /* Comment.Multiline */
.gist-syntax .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
.gist-syntax .c1 { color: #999988; font-style: italic } /* Comment.Single */
.gist-syntax .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
.gist-syntax .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.gist-syntax .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
.gist-syntax .ge { color: #000000; font-style: italic } /* Generic.Emph */
.gist-syntax .gr { color: #aa0000 } /* Generic.Error */
.gist-syntax .gh { color: #999999 } /* Generic.Heading */
.gist-syntax .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.gist-syntax .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
.gist-syntax .go { color: #888888 } /* Generic.Output */
.gist-syntax .gp { color: #555555 } /* Generic.Prompt */
.gist-syntax .gs { font-weight: bold } /* Generic.Strong */
.gist-syntax .gu { color: #aaaaaa } /* Generic.Subheading */
.gist-syntax .gt { color: #aa0000 } /* Generic.Traceback */
.gist-syntax .kc { color: #000000; font-weight: bold } /* Keyword.Constant */
.gist-syntax .kd { color: #000000; font-weight: bold } /* Keyword.Declaration */
.gist-syntax .kp { color: #000000; font-weight: bold } /* Keyword.Pseudo */
.gist-syntax .kr { color: #000000; font-weight: bold } /* Keyword.Reserved */
.gist-syntax .kt { color: #445588; font-weight: bold } /* Keyword.Type */
.gist-syntax .m { color: #009999 } /* Literal.Number */
.gist-syntax .s { color: #d14 } /* Literal.String */
.gist-syntax .na { color: #008080 } /* Name.Attribute */
.gist-syntax .nb { color: #0086B3 } /* Name.Builtin */
.gist-syntax .nc { color: #445588; font-weight: bold } /* Name.Class */
.gist-syntax .no { color: #008080 } /* Name.Constant */
.gist-syntax .ni { color: #800080 } /* Name.Entity */
.gist-syntax .ne { color: #990000; font-weight: bold } /* Name.Exception */
.gist-syntax .nf { color: #990000; font-weight: bold } /* Name.Function */
.gist-syntax .nn { color: #555555 } /* Name.Namespace */
.gist-syntax .nt { color: #000080 } /* Name.Tag */
.gist-syntax .nv { color: #008080 } /* Name.Variable */
.gist-syntax .ow { color: #000000; font-weight: bold } /* Operator.Word */
.gist-syntax .w { color: #bbbbbb } /* Text.Whitespace */
.gist-syntax .mf { color: #009999 } /* Literal.Number.Float */
.gist-syntax .mh { color: #009999 } /* Literal.Number.Hex */
.gist-syntax .mi { color: #009999 } /* Literal.Number.Integer */
.gist-syntax .mo { color: #009999 } /* Literal.Number.Oct */
.gist-syntax .sb { color: #d14 } /* Literal.String.Backtick */
.gist-syntax .sc { color: #d14 } /* Literal.String.Char */
.gist-syntax .sd { color: #d14 } /* Literal.String.Doc */
.gist-syntax .s2 { color: #d14 } /* Literal.String.Double */
.gist-syntax .se { color: #d14 } /* Literal.String.Escape */
.gist-syntax .sh { color: #d14 } /* Literal.String.Heredoc */
.gist-syntax .si { color: #d14 } /* Literal.String.Interpol */
.gist-syntax .sx { color: #d14 } /* Literal.String.Other */
.gist-syntax .sr { color: #009926 } /* Literal.String.Regex */
.gist-syntax .s1 { color: #d14 } /* Literal.String.Single */
.gist-syntax .ss { color: #990073 } /* Literal.String.Symbol */
.gist-syntax .bp { color: #999999 } /* Name.Builtin.Pseudo */
.gist-syntax .vc { color: #008080 } /* Name.Variable.Class */
.gist-syntax .vg { color: #008080 } /* Name.Variable.Global */
.gist-syntax .vi { color: #008080 } /* Name.Variable.Instance */
.gist-syntax .il { color: #009999 } /* Literal.Number.Integer.Long */

53
html/css/md.css Normal file
View File

@ -0,0 +1,53 @@
body {
font-family: 'Roboto Slab', "Helvetica Neue", Helvetica, Arial;
}
ul {
margin: 0;
padding: 0;
}
li {
display: inline;
margin: 0;
padding: 0 4px 0 0;
}
.dates {
padding: 2px;
border: solid 1px #80007e;
background-color: #ffffff;
}
#btc, #fx {
font-size: 75%;
}
.up, .ontime {
color: darkgreen;
}
.down, .delayed {
color: darkred;
}
.nochange {
color: #000000;
}
.password {
border: 1px solid #cccccc;
background-color: #efefef;
font-family: monospace;
white-space: pre;
}
.mui--text-danger {
color: #F44336;
}
.fnBlock {
font-size:20px;
}
.fnRefresh {
}

13673
html/css/read.css Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,4 @@
<% list.forEach(function (item) { %>
<button id="<%=item.name%>" class="mui-btn mui-btn-raised"><%=item.name%></button>
<div class="entry" id="<%=item.name%>"><%=item.name%></div>
<% }) %>

View File

@ -1,7 +1,7 @@
<h1><%= d.title %></h1>
<% d.items.forEach(function (item) { %>
<div class="mui-row">
<h2><a href='<%=item.url%>'><%=item.title %></a></h2>
<h2><a href='<%=item.url%>' target="_top"><%=item.title %></a></h2>
<div class=' content' style='overflow:hidden;'>
<%=item.description%>
</div>

126
html/index.html Normal file
View File

@ -0,0 +1,126 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="//fonts.googleapis.com/css?family=Roboto+Slab:400,300,700" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="//cdn.linearicons.com/free/1.0.0/icon-font.min.css">
<link href="//cdn.muicss.com/mui-0.4.6/css/mui.min.css" rel="stylesheet" type="text/css" />
<!-- build:css -->
<link href="css/app.css" rel="stylesheet" type="text/css" />
<link href="css/md.css" rel="stylesheet" type="text/css" />
<link href="css/read.css" rel="stylesheet" type="text/css" />
<link href="css/gist.css" rel="stylesheet" type="text/css" />
<link href="css/cards.css" rel="stylesheet" type="text/css" />
<style>
html {
font-family: 'Roboto Slab', serif !important;
/* 1 */
-ms-text-size-adjust: 100%;
/* 2 */
-webkit-text-size-adjust: 100%;
/* 2 */
}
.info {
border-bottom: 1px solid #bbbbbb;
padding-bottom:
}
.entry {
padding-bottom: 16px;
background-color: white;
}
img {
max-width: 960px;
}
</style>
<!-- endbuild -->
<script src="libs/microevent.js"></script>
<script src="//cdn.muicss.com/mui-0.4.6/js/mui.min.js"></script>
<script src="//code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="js/moment.js"></script>
<!-- build:vendor -->
<script src="libs/ejs.js"></script>
<script src="libs/view.js"></script>
<!-- endbuild -->
<link rel="apple-touch-icon" sizes="57x57" href="fav/apple-touch-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="fav/apple-touch-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="fav/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="fav/apple-touch-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="fav/apple-touch-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="fav/apple-touch-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="fav/apple-touch-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="fav/apple-touch-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="fav/apple-touch-icon-180x180.png">
<link rel="icon" type="image/png" href="fav/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="fav/favicon-194x194.png" sizes="194x194">
<link rel="icon" type="image/png" href="fav/favicon-96x96.png" sizes="96x96">
<link rel="icon" type="image/png" href="fav/android-chrome-192x192.png" sizes="192x192">
<link rel="icon" type="image/png" href="fav/favicon-16x16.png" sizes="16x16">
<link rel="manifest" href="fav/manifest.json">
<link rel="mask-icon" href="fav/safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#ffc40d">
<meta name="msapplication-TileImage" content="fav/mstile-144x144.png">
<meta name="theme-color" content="#ffc40d">
<title>Pipes Silvtree</title>
</head>
<body>
<div id="sidedrawer" class="mui--no-user-select">
<div id="sidedrawer-brand" class="mui--appbar-line-height mui--text-title">Pipes</div>
<div class="mui-divider"></div>
<div id="functions" class="fnBlock">
<span id="fnRefresh" class="lnr lnr-sync"></span>
<span id="fnSearch" class="lnr lnr-magnifier"></span>
</div>
<div id='searchbox' class="mui-textfield" style="display: none;">
<input id='newsearch' type="text" placeholder="Search for..">
</div>
<div class="mui-divider"></div>
<div id="listContainer">
</div>
<div class="mui-divider"></div>
<div class="mui-textfield">
<span id="lastupdate"></span>
<!--<input id='newurl' type="text" placeholder="Add new url">
<div id="addstatus" style="display:none;">Adding...</div>-->
</div>
</div>
<header id="header">
<div class="mui-appbar mui--appbar-line-height">
<div class="mui-container-fluid">
<a class="sidedrawer-toggle mui--visible-xs-inline-block js-show-sidedrawer"><span class="lnr lnr-menu"></span></a>
<a class="sidedrawer-toggle mui--hidden-xs js-hide-sidedrawer "><span class="lnr lnr-menu"></span></a>
<span class="mui--text-title mui--visible-xs-inline-block">Pipes</span>
</div>
</div>
</header>
<div id="content-wrapper">
<div class="mui--appbar-height"></div>
<!--<div class="mui-container-fluid" id="bodyContents" class="mui-panel">-->
<!-- content here -->
<div class="mui-container" id="bodyContents" class="mui-panel">
</div>
</div>
<footer id="footer">
<div class="mui-container-fluid">
<br>
Made with ♥ by Martin</a>
</div>
</footer>
</body>
<!-- build:js -->
<script type="text/javascript" src="js/fx.js"></script>
<script type="text/javascript" src="js/fx_methods.js"></script>
<script type="text/javascript" src="js/zprogress.js"></script>
<script type="text/javascript" src="js/jquery.unveil.js"></script>
<script src="js/shell.js"></script>
<script src="js/app.v3.js"></script>
<!-- endbuild -->
</html>

150
html/js/app.v3.js Normal file
View File

@ -0,0 +1,150 @@
/**
* Created by Martin on 15/03/2016.
*/
var APP = function () {
refreshStep = 0,
preUrl = '/',
_storage = {
lastupdated: null,
feeds: {}
},
_list = null,
_feed = null,
feeds = ['paleo', 'lifestyle', 'tech', 'news'],
lastUpdated = null,
preCache = function () {
_list = new EJS({url: 'ejs/list.ejs'});
_feed = new EJS({
url: 'ejs/testcards.ejs'
});
},
init = function () {
$('#fnRefresh').on('click', $.proxy(refresh, this));
console.log('app starting...');
preCache();
doLoad();
getLastUpdateDate();
console.log('Last updated: ' + lastUpdated);
},
getLastUpdateDate = function () {
var formatted, dt;
// this.lastUpdated = localStorage.getItem('lastUpdated') || null;
if (lastUpdated == null)
$('#lastupdate').empty().append('Never');
else {
dt = new Date(lastUpdated);
formatted = moment(dt).startOf('minute').fromNow();
console.log(formatted);
$('#lastupdate').empty().append(formatted);
}
},
refresh = function () {
refreshStep = 0;
console.log('refresh');
console.log(this);
console.log('get ' + feeds[refreshStep]);
$('#lastupdate').empty().append('Refreshing...');
// $.zprogress.start();
doRefresh();
},
doRefresh = function () {
var self = this;
if (refreshStep < feeds.length) {
var feedUrl = preUrl + feeds[refreshStep] + '.json';
$('#lastupdate').empty().append('Refreshing: ' + feeds[refreshStep]);
$.getJSON(feedUrl, function (data) {
console.log(self);
self.doUpdate(data);
});
} else {
console.log('Done');
// $.zprogress.inc(0.2);
doSave();
}
},
doUpdate = function (data) {
console.log(this);
console.log(data);
_storage.feeds[feeds[refreshStep]] = data;
console.log(_storage);
refreshStep++;
// $.zprogress.inc(0.2);
doRefresh();
},
doSave = function () {
console.log('Saving...');
lastUpdated = new Date();
_storage.lastupdated = lastUpdated;
localStorage.setItem('lastUpdated', lastUpdated);
localStorage.setItem('_storage', JSON.stringify(_storage));
getLastUpdateDate();
// $.zprogress.done(true);
},
doLoad = function () {
var _load = localStorage.getItem('_storage');
$('#lastupdate').empty().append('Loading...');
if (_load != null)
_storage = JSON.parse(_load);
else
_storage = {
lastupdated: null,
feeds: {}
};
lastUpdated = _storage.lastupdated || null;
showList();
},
showList = function () {
var output, d = {},
list = [];
for (var key in _storage.feeds) {
console.log(key);
list.push({
name: key
});
}
d.list = list;
var output = _list.render(d);
$('#listContainer').empty().html(output);
for (var key in _storage.feeds) {
$('#' + key).on('click', $.proxy(showFeed, this, key));
}
},
showFeed = function (opt) {
var output, d;
console.log('show feed ' + opt);
// $('#feedcontent').empty();
d = {
d: _storage.feeds[opt]
};
var output = _feed.render(d);
$('#bodyContents').empty().html(output);
$("img").unveil();
};
$('#fnRefresh').on('click', function () {
doLoad();
});
init();
};
MicroEvent.mixin(APP);
var app = new APP();

214
html/js/appv2.js Normal file
View File

@ -0,0 +1,214 @@
'use strict';
/**
* Created by Martin on 24/02/2016.
*/
$.fn.pressEnter = function (fn) {
return this.each(function () {
$(this).bind('enterPress', fn);
$(this).keyup(function (e) {
if (e.keyCode === 13) {
$(this).trigger('enterPress');
}
});
});
};
var Keeper = (function () {
var self = this;
console.log('GO!');
var $list = $('#listContainer');
var displayList = function (obj) {
var html = new EJS({url: '/partials/list.ejs'}).render(obj);
console.log(html);
$list.empty();
$list.append(html);
$('#listContainer').find('.entry').not('.emptyMessage').click(function () {
console.log('Clicked list. ' + this.id);
getRecipe(this.id);
});
}, displayPage = function (obj) {
var $bodyContents = $('#bodyContents');
if (obj.reduced.length > 0) {
var vdata = {
data: {
_id: obj._id,
_rev: obj._rev,
title: obj.title,
reduced: obj.reduced,
url: obj.url
}
};
var redoData = {
_id: obj._id,
_rev: obj._rev,
url: obj.url
};
var html = new EJS({url: 'partials/view.ejs'}).render(vdata);
$bodyContents.empty();
$bodyContents.append(html);
$('#redo').on('click', function () {
self.trigger('redo', redoData);
});
}
}, getRecipe = function (id) {
console.log('get recipe');
var url = '/entry/' + id;
var data = '';
$.ajax({
type: 'GET',
url: url,
data: data,
dataType: 'json',
timeout: 10000,
//contentType: ('application/json'),
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'PUT, GET, POST, DELETE, OPTIONS',
'Access-Control-Allow-Headers': 'Content-Type'
},
success: function (data) {
// console.log(data);
displayPage(data);
},
error: function (xhr, type) {
console.log('ajax error');
console.log(xhr);
console.log(type);
}
});
},
getList = function () {
var url = '/list';
$.ajax({
type: 'GET',
url: url,
data: '',
dataType: 'json',
timeout: 10000,
//contentType: ('application/json'),
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'PUT, GET, POST, DELETE, OPTIONS',
'Access-Control-Allow-Headers': 'Content-Type'
},
success: function (data) {
// console.log(data);
displayList(data);
},
error: function (xhr, type) {
console.log('ajax error');
console.log(xhr);
console.log(type);
}
});
}, addNew = function (newUrl) {
var url = '/add';
var data = {url: JSON.stringify(newUrl)};
$.ajax({
type: 'POST',
url: url,
data: data,
dataType: 'json',
timeout: 10000,
//contentType: ('application/json'),
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'PUT, GET, POST, DELETE, OPTIONS',
'Access-Control-Allow-Headers': 'Content-Type'
},
success: function () {
// console.log(data);
// displayList(data);
},
error: function (xhr, type) {
console.log('ajax error');
console.log(xhr);
console.log(type);
}
});
},
redo = function (d) {
console.log('redooing');
var url = '/redo';
$.ajax({
type: 'POST',
url: url,
data: d,
dataType: 'json',
timeout: 10000,
//contentType: ('application/json'),
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'PUT, GET, POST, DELETE, OPTIONS',
'Access-Control-Allow-Headers': 'Content-Type'
},
success: function () {
// console.log(data);
// displayList(data);
},
error: function (xhr, type) {
console.log('ajax error');
console.log(xhr);
console.log(type);
}
});
},
start = function () {
getList();
};
$('#newurl').pressEnter(function () {
var url = $(this).val();
if (url !== null) {
console.log('Adding: ' + url);
addNew(url);
$('#addstatus').fadeIn(400).delay(1500).fadeOut(400);
$(this).val('');
/* setTimeout(function () {
getList();
}, 5000);*/
}
});
$('#fnRefresh').on('click', function () {
getList();
});
this.bind('redo', function (data) {
redo(data);
});
start();
});
MicroEvent.mixin(Keeper);
var keeper = new Keeper();

46
html/js/shell.js Normal file
View File

@ -0,0 +1,46 @@
"use strict";
jQuery(function($) {
var $bodyEl = $('body'),
$sidedrawerEl = $('#sidedrawer');
function showSidedrawer() {
// show overlay
var options = {
onclose: function() {
$sidedrawerEl
.removeClass('active')
.appendTo(document.body);
}
};
var $overlayEl = $(mui.overlay('on', options));
// show element
$sidedrawerEl.appendTo($overlayEl);
setTimeout(function() {
$sidedrawerEl.addClass('active');
}, 20);
}
function hideSidedrawer() {
$bodyEl.toggleClass('hide-sidedrawer');
}
$('.js-show-sidedrawer').on('click', showSidedrawer);
$('.js-hide-sidedrawer').on('click', hideSidedrawer);
});
var $titleEls = $('strong', $sidedrawerEl);
$titleEls
.next()
.hide();
$titleEls.on('click', function() {
$(this).next().slideToggle(200);
});/**
* Created by Martin on 24/02/2016.
*/

505
html/libs/ejs.js Normal file
View File

@ -0,0 +1,505 @@
(function(){
var rsplit = function(string, regex) {
var result = regex.exec(string),retArr = new Array(), first_idx, last_idx, first_bit;
while (result != null)
{
first_idx = result.index; last_idx = regex.lastIndex;
if ((first_idx) != 0)
{
first_bit = string.substring(0,first_idx);
retArr.push(string.substring(0,first_idx));
string = string.slice(first_idx);
}
retArr.push(result[0]);
string = string.slice(result[0].length);
result = regex.exec(string);
}
if (! string == '')
{
retArr.push(string);
}
return retArr;
},
chop = function(string){
return string.substr(0, string.length - 1);
},
extend = function(d, s){
for(var n in s){
if(s.hasOwnProperty(n)) d[n] = s[n]
}
}
EJS = function( options ){
options = typeof options == "string" ? {view: options} : options
this.set_options(options);
if(options.precompiled){
this.template = {};
this.template.process = options.precompiled;
EJS.update(this.name, this);
return;
}
if(options.element)
{
if(typeof options.element == 'string'){
var name = options.element
options.element = document.getElementById( options.element )
if(options.element == null) throw name+'does not exist!'
}
if(options.element.value){
this.text = options.element.value
}else{
this.text = options.element.innerHTML
}
this.name = options.element.id
this.type = '['
}else if(options.url){
options.url = EJS.endExt(options.url, this.extMatch);
this.name = this.name ? this.name : options.url;
var url = options.url
//options.view = options.absolute_url || options.view || options.;
var template = EJS.get(this.name /*url*/, this.cache);
if (template) return template;
if (template == EJS.INVALID_PATH) return null;
try{
this.text = EJS.request( url+(this.cache ? '' : '?'+Math.random() ));
}catch(e){}
if(this.text == null){
throw( {type: 'EJS', message: 'There is no template at '+url} );
}
//this.name = url;
}
var template = new EJS.Compiler(this.text, this.type);
template.compile(options, this.name);
EJS.update(this.name, this);
this.template = template;
};
/* @Prototype*/
EJS.prototype = {
/**
* Renders an object with extra view helpers attached to the view.
* @param {Object} object data to be rendered
* @param {Object} extra_helpers an object with additonal view helpers
* @return {String} returns the result of the string
*/
render : function(object, extra_helpers){
object = object || {};
this._extra_helpers = extra_helpers;
var v = new EJS.Helpers(object, extra_helpers || {});
return this.template.process.call(object, object,v);
},
update : function(element, options){
if(typeof element == 'string'){
element = document.getElementById(element)
}
if(options == null){
_template = this;
return function(object){
EJS.prototype.update.call(_template, element, object)
}
}
if(typeof options == 'string'){
params = {}
params.url = options
_template = this;
params.onComplete = function(request){
var object = eval( request.responseText )
EJS.prototype.update.call(_template, element, object)
}
EJS.ajax_request(params)
}else
{
element.innerHTML = this.render(options)
}
},
out : function(){
return this.template.out;
},
/**
* Sets options on this view to be rendered with.
* @param {Object} options
*/
set_options : function(options){
this.type = options.type || EJS.type;
this.cache = options.cache != null ? options.cache : EJS.cache;
this.text = options.text || null;
this.name = options.name || null;
this.ext = options.ext || EJS.ext;
this.extMatch = new RegExp(this.ext.replace(/\./, '\.'));
}
};
EJS.endExt = function(path, match){
if(!path) return null;
match.lastIndex = 0
return path+ (match.test(path) ? '' : this.ext )
}
/* @Static*/
EJS.Scanner = function(source, left, right) {
extend(this,
{left_delimiter: left +'%',
right_delimiter: '%'+right,
double_left: left+'%%',
double_right: '%%'+right,
left_equal: left+'%=',
left_comment: left+'%#'})
this.SplitRegexp = left=='[' ? /(\[%%)|(%%\])|(\[%=)|(\[%#)|(\[%)|(%\]\n)|(%\])|(\n)/ : new RegExp('('+this.double_left+')|(%%'+this.double_right+')|('+this.left_equal+')|('+this.left_comment+')|('+this.left_delimiter+')|('+this.right_delimiter+'\n)|('+this.right_delimiter+')|(\n)') ;
this.source = source;
this.stag = null;
this.lines = 0;
};
EJS.Scanner.to_text = function(input){
if(input == null || input === undefined)
return '';
if(input instanceof Date)
return input.toDateString();
if(input.toString)
return input.toString();
return '';
};
EJS.Scanner.prototype = {
scan: function(block) {
scanline = this.scanline;
regex = this.SplitRegexp;
if (! this.source == '')
{
var source_split = rsplit(this.source, /\n/);
for(var i=0; i<source_split.length; i++) {
var item = source_split[i];
this.scanline(item, regex, block);
}
}
},
scanline: function(line, regex, block) {
this.lines++;
var line_split = rsplit(line, regex);
for(var i=0; i<line_split.length; i++) {
var token = line_split[i];
if (token != null) {
try{
block(token, this);
}catch(e){
throw {type: 'EJS.Scanner', line: this.lines};
}
}
}
}
};
EJS.Buffer = function(pre_cmd, post_cmd) {
this.line = new Array();
this.script = "";
this.pre_cmd = pre_cmd;
this.post_cmd = post_cmd;
for (var i=0; i<this.pre_cmd.length; i++)
{
this.push(pre_cmd[i]);
}
};
EJS.Buffer.prototype = {
push: function(cmd) {
this.line.push(cmd);
},
cr: function() {
this.script = this.script + this.line.join('; ');
this.line = new Array();
this.script = this.script + "\n";
},
close: function() {
if (this.line.length > 0)
{
for (var i=0; i<this.post_cmd.length; i++){
this.push(pre_cmd[i]);
}
this.script = this.script + this.line.join('; ');
line = null;
}
}
};
EJS.Compiler = function(source, left) {
this.pre_cmd = ['var ___ViewO = [];'];
this.post_cmd = new Array();
this.source = ' ';
if (source != null)
{
if (typeof source == 'string')
{
source = source.replace(/\r\n/g, "\n");
source = source.replace(/\r/g, "\n");
this.source = source;
}else if (source.innerHTML){
this.source = source.innerHTML;
}
if (typeof this.source != 'string'){
this.source = "";
}
}
left = left || '<';
var right = '>';
switch(left) {
case '[':
right = ']';
break;
case '<':
break;
default:
throw left+' is not a supported deliminator';
break;
}
this.scanner = new EJS.Scanner(this.source, left, right);
this.out = '';
};
EJS.Compiler.prototype = {
compile: function(options, name) {
options = options || {};
this.out = '';
var put_cmd = "___ViewO.push(";
var insert_cmd = put_cmd;
var buff = new EJS.Buffer(this.pre_cmd, this.post_cmd);
var content = '';
var clean = function(content)
{
content = content.replace(/\\/g, '\\\\');
content = content.replace(/\n/g, '\\n');
content = content.replace(/"/g, '\\"');
return content;
};
this.scanner.scan(function(token, scanner) {
if (scanner.stag == null)
{
switch(token) {
case '\n':
content = content + "\n";
buff.push(put_cmd + '"' + clean(content) + '");');
buff.cr();
content = '';
break;
case scanner.left_delimiter:
case scanner.left_equal:
case scanner.left_comment:
scanner.stag = token;
if (content.length > 0)
{
buff.push(put_cmd + '"' + clean(content) + '")');
}
content = '';
break;
case scanner.double_left:
content = content + scanner.left_delimiter;
break;
default:
content = content + token;
break;
}
}
else {
switch(token) {
case scanner.right_delimiter:
switch(scanner.stag) {
case scanner.left_delimiter:
if (content[content.length - 1] == '\n')
{
content = chop(content);
buff.push(content);
buff.cr();
}
else {
buff.push(content);
}
break;
case scanner.left_equal:
buff.push(insert_cmd + "(EJS.Scanner.to_text(" + content + ")))");
break;
}
scanner.stag = null;
content = '';
break;
case scanner.double_right:
content = content + scanner.right_delimiter;
break;
default:
content = content + token;
break;
}
}
});
if (content.length > 0)
{
// Chould be content.dump in Ruby
buff.push(put_cmd + '"' + clean(content) + '")');
}
buff.close();
this.out = buff.script + ";";
var to_be_evaled = '/*'+name+'*/this.process = function(_CONTEXT,_VIEW) { try { with(_VIEW) { with (_CONTEXT) {'+this.out+" return ___ViewO.join('');}}}catch(e){e.lineNumber=null;throw e;}};";
try{
eval(to_be_evaled);
}catch(e){
if(typeof JSLINT != 'undefined'){
JSLINT(this.out);
for(var i = 0; i < JSLINT.errors.length; i++){
var error = JSLINT.errors[i];
if(error.reason != "Unnecessary semicolon."){
error.line++;
var e = new Error();
e.lineNumber = error.line;
e.message = error.reason;
if(options.view)
e.fileName = options.view;
throw e;
}
}
}else{
throw e;
}
}
}
};
//type, cache, folder
/**
* Sets default options for all views
* @param {Object} options Set view with the following options
* <table class="options">
<tbody><tr><th>Option</th><th>Default</th><th>Description</th></tr>
<tr>
<td>type</td>
<td>'<'</td>
<td>type of magic tags. Options are '&lt;' or '['
</td>
</tr>
<tr>
<td>cache</td>
<td>true in production mode, false in other modes</td>
<td>true to cache template.
</td>
</tr>
</tbody></table>
*
*/
EJS.config = function(options){
EJS.cache = options.cache != null ? options.cache : EJS.cache;
EJS.type = options.type != null ? options.type : EJS.type;
EJS.ext = options.ext != null ? options.ext : EJS.ext;
var templates_directory = EJS.templates_directory || {}; //nice and private container
EJS.templates_directory = templates_directory;
EJS.get = function(path, cache){
if(cache == false) return null;
if(templates_directory[path]) return templates_directory[path];
return null;
};
EJS.update = function(path, template) {
if(path == null) return;
templates_directory[path] = template ;
};
EJS.INVALID_PATH = -1;
};
EJS.config( {cache: true, type: '<', ext: '.ejs' } );
/**
* @constructor
* By adding functions to EJS.Helpers.prototype, those functions will be available in the
* views.
* @init Creates a view helper. This function is called internally. You should never call it.
* @param {Object} data The data passed to the view. Helpers have access to it through this._data
*/
EJS.Helpers = function(data, extras){
this._data = data;
this._extras = extras;
extend(this, extras );
};
/* @prototype*/
EJS.Helpers.prototype = {
/**
* Renders a new view. If data is passed in, uses that to render the view.
* @param {Object} options standard options passed to a new view.
* @param {optional:Object} data
* @return {String}
*/
view: function(options, data, helpers){
if(!helpers) helpers = this._extras
if(!data) data = this._data;
return new EJS(options).render(data, helpers);
},
/**
* For a given value, tries to create a human representation.
* @param {Object} input the value being converted.
* @param {Object} null_text what text should be present if input == null or undefined, defaults to ''
* @return {String}
*/
to_text: function(input, null_text) {
if(input == null || input === undefined) return null_text || '';
if(input instanceof Date) return input.toDateString();
if(input.toString) return input.toString().replace(/\n/g, '<br />').replace(/''/g, "'");
return '';
}
};
EJS.newRequest = function(){
var factories = [function() { return new ActiveXObject("Msxml2.XMLHTTP"); },function() { return new XMLHttpRequest(); },function() { return new ActiveXObject("Microsoft.XMLHTTP"); }];
for(var i = 0; i < factories.length; i++) {
try {
var request = factories[i]();
if (request != null) return request;
}
catch(e) { continue;}
}
}
EJS.request = function(path){
var request = new EJS.newRequest()
request.open("GET", path, false);
try{request.send(null);}
catch(e){return null;}
if ( request.status == 404 || request.status == 2 ||(request.status == 0 && request.responseText == '') ) return null;
return request.responseText
}
EJS.ajax_request = function(params){
params.method = ( params.method ? params.method : 'GET')
var request = new EJS.newRequest();
request.onreadystatechange = function(){
if(request.readyState == 4){
if(request.status == 200){
params.onComplete(request)
}else
{
params.onComplete(request)
}
}
}
request.open(params.method, params.url)
request.send(null)
}
})();

File diff suppressed because one or more lines are too long

55
html/libs/microevent.js Normal file
View File

@ -0,0 +1,55 @@
/**
* MicroEvent - to make any js object an event emitter (server or browser)
*
* - pure javascript - server compatible, browser compatible
* - dont rely on the browser doms
* - super simple - you get it immediatly, no mistery, no magic involved
*
* - create a MicroEventDebug with goodies to debug
* - make it safer to use
*/
var MicroEvent = function(){};
MicroEvent.prototype = {
bind : function(event, fct){
this._events = this._events || {};
this._events[event] = this._events[event] || [];
this._events[event].push(fct);
},
unbind : function(event, fct){
this._events = this._events || {};
if( event in this._events === false ) return;
this._events[event].splice(this._events[event].indexOf(fct), 1);
},
trigger : function(event /* , args... */){
this._events = this._events || {};
if( event in this._events === false ) return;
for(var i = 0; i < this._events[event].length; i++){
this._events[event][i].apply(this, Array.prototype.slice.call(arguments, 1));
}
}
};
/**
* mixin will delegate all MicroEvent.js function in the destination object
*
* - require('MicroEvent').mixin(Foobar) will make Foobar able to use MicroEvent
*
* @param {Object} the object which will support MicroEvent
*/
MicroEvent.mixin = function(destObject){
var props = ['bind', 'unbind', 'trigger'];
for(var i = 0; i < props.length; i ++){
if( typeof destObject === 'function' ){
destObject.prototype[props[i]] = MicroEvent.prototype[props[i]];
}else{
destObject[props[i]] = MicroEvent.prototype[props[i]];
}
}
return destObject;
}
// export in common js
if( typeof module !== "undefined" && ('exports' in module)){
module.exports = MicroEvent;
}

200
html/libs/view.js Normal file
View File

@ -0,0 +1,200 @@
EJS.Helpers.prototype.date_tag = function(name, value , html_options) {
if(! (value instanceof Date))
value = new Date()
var month_names = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var years = [], months = [], days =[];
var year = value.getFullYear();
var month = value.getMonth();
var day = value.getDate();
for(var y = year - 15; y < year+15 ; y++)
{
years.push({value: y, text: y})
}
for(var m = 0; m < 12; m++)
{
months.push({value: (m), text: month_names[m]})
}
for(var d = 0; d < 31; d++)
{
days.push({value: (d+1), text: (d+1)})
}
var year_select = this.select_tag(name+'[year]', year, years, {id: name+'[year]'} )
var month_select = this.select_tag(name+'[month]', month, months, {id: name+'[month]'})
var day_select = this.select_tag(name+'[day]', day, days, {id: name+'[day]'})
return year_select+month_select+day_select;
}
EJS.Helpers.prototype.form_tag = function(action, html_options) {
html_options = html_options || {};
html_options.action = action
if(html_options.multipart == true) {
html_options.method = 'post';
html_options.enctype = 'multipart/form-data';
}
return this.start_tag_for('form', html_options)
}
EJS.Helpers.prototype.form_tag_end = function() { return this.tag_end('form'); }
EJS.Helpers.prototype.hidden_field_tag = function(name, value, html_options) {
return this.input_field_tag(name, value, 'hidden', html_options);
}
EJS.Helpers.prototype.input_field_tag = function(name, value , inputType, html_options) {
html_options = html_options || {};
html_options.id = html_options.id || name;
html_options.value = value || '';
html_options.type = inputType || 'text';
html_options.name = name;
return this.single_tag_for('input', html_options)
}
EJS.Helpers.prototype.is_current_page = function(url) {
return (window.location.href == url || window.location.pathname == url ? true : false);
}
EJS.Helpers.prototype.link_to = function(name, url, html_options) {
if(!name) var name = 'null';
if(!html_options) var html_options = {}
if(html_options.confirm){
html_options.onclick =
" var ret_confirm = confirm(\""+html_options.confirm+"\"); if(!ret_confirm){ return false;} "
html_options.confirm = null;
}
html_options.href=url
return this.start_tag_for('a', html_options)+name+ this.tag_end('a');
}
EJS.Helpers.prototype.submit_link_to = function(name, url, html_options){
if(!name) var name = 'null';
if(!html_options) var html_options = {}
html_options.onclick = html_options.onclick || '' ;
if(html_options.confirm){
html_options.onclick =
" var ret_confirm = confirm(\""+html_options.confirm+"\"); if(!ret_confirm){ return false;} "
html_options.confirm = null;
}
html_options.value = name;
html_options.type = 'submit'
html_options.onclick=html_options.onclick+
(url ? this.url_for(url) : '')+'return false;';
//html_options.href='#'+(options ? Routes.url_for(options) : '')
return this.start_tag_for('input', html_options)
}
EJS.Helpers.prototype.link_to_if = function(condition, name, url, html_options, post, block) {
return this.link_to_unless((condition == false), name, url, html_options, post, block);
}
EJS.Helpers.prototype.link_to_unless = function(condition, name, url, html_options, block) {
html_options = html_options || {};
if(condition) {
if(block && typeof block == 'function') {
return block(name, url, html_options, block);
} else {
return name;
}
} else
return this.link_to(name, url, html_options);
}
EJS.Helpers.prototype.link_to_unless_current = function(name, url, html_options, block) {
html_options = html_options || {};
return this.link_to_unless(this.is_current_page(url), name, url, html_options, block)
}
EJS.Helpers.prototype.password_field_tag = function(name, value, html_options) { return this.input_field_tag(name, value, 'password', html_options); }
EJS.Helpers.prototype.select_tag = function(name, value, choices, html_options) {
html_options = html_options || {};
html_options.id = html_options.id || name;
html_options.value = value;
html_options.name = name;
var txt = ''
txt += this.start_tag_for('select', html_options)
for(var i = 0; i < choices.length; i++)
{
var choice = choices[i];
var optionOptions = {value: choice.value}
if(choice.value == value)
optionOptions.selected ='selected'
txt += this.start_tag_for('option', optionOptions )+choice.text+this.tag_end('option')
}
txt += this.tag_end('select');
return txt;
}
EJS.Helpers.prototype.single_tag_for = function(tag, html_options) { return this.tag(tag, html_options, '/>');}
EJS.Helpers.prototype.start_tag_for = function(tag, html_options) { return this.tag(tag, html_options); }
EJS.Helpers.prototype.submit_tag = function(name, html_options) {
html_options = html_options || {};
//html_options.name = html_options.id || 'commit';
html_options.type = html_options.type || 'submit';
html_options.value = name || 'Submit';
return this.single_tag_for('input', html_options);
}
EJS.Helpers.prototype.tag = function(tag, html_options, end) {
if(!end) var end = '>'
var txt = ' '
for(var attr in html_options) {
if(html_options[attr] != null)
var value = html_options[attr].toString();
else
var value=''
if(attr == "Class") // special case because "class" is a reserved word in IE
attr = "class";
if( value.indexOf("'") != -1 )
txt += attr+'=\"'+value+'\" '
else
txt += attr+"='"+value+"' "
}
return '<'+tag+txt+end;
}
EJS.Helpers.prototype.tag_end = function(tag) { return '</'+tag+'>'; }
EJS.Helpers.prototype.text_area_tag = function(name, value, html_options) {
html_options = html_options || {};
html_options.id = html_options.id || name;
html_options.name = html_options.name || name;
value = value || ''
if(html_options.size) {
html_options.cols = html_options.size.split('x')[0]
html_options.rows = html_options.size.split('x')[1];
delete html_options.size
}
html_options.cols = html_options.cols || 50;
html_options.rows = html_options.rows || 4;
return this.start_tag_for('textarea', html_options)+value+this.tag_end('textarea')
}
EJS.Helpers.prototype.text_tag = EJS.Helpers.prototype.text_area_tag
EJS.Helpers.prototype.text_field_tag = function(name, value, html_options) { return this.input_field_tag(name, value, 'text', html_options); }
EJS.Helpers.prototype.url_for = function(url) {
return 'window.location="'+url+'";'
}
EJS.Helpers.prototype.img_tag = function(image_location, alt, options){
options = options || {};
options.src = image_location
options.alt = alt
return this.single_tag_for('img', options)
}

View File

@ -0,0 +1,3 @@
/**
* Created by Martin on 15/03/2016.
*/

14
node_modules/ejs/package.json generated vendored
View File

@ -1,11 +1,11 @@
{
"_args": [
[
"ejs@^2.3.3",
"ejs@*",
"C:\\mddev\\rinser"
]
],
"_from": "ejs@>=2.3.3 <3.0.0",
"_from": "ejs@*",
"_id": "ejs@2.4.1",
"_inCache": true,
"_installable": true,
@ -19,19 +19,19 @@
"_phantomChildren": {},
"_requested": {
"name": "ejs",
"raw": "ejs@^2.3.3",
"rawSpec": "^2.3.3",
"raw": "ejs@*",
"rawSpec": "*",
"scope": null,
"spec": ">=2.3.3 <3.0.0",
"spec": "*",
"type": "range"
},
"_requiredBy": [
"#DEV:/"
"/"
],
"_resolved": "https://registry.npmjs.org/ejs/-/ejs-2.4.1.tgz",
"_shasum": "82e15b1b2a1f948b18097476ba2bd7c66f4d1566",
"_shrinkwrap": null,
"_spec": "ejs@^2.3.3",
"_spec": "ejs@*",
"_where": "C:\\mddev\\rinser",
"author": {
"email": "mde@fleegix.org",

18
node_modules/express/package.json generated vendored
View File

@ -1,11 +1,11 @@
{
"_args": [
[
"express@4.13.4",
"express@^4.13.4",
"C:\\mddev\\rinser"
]
],
"_from": "express@4.13.4",
"_from": "express@>=4.13.4 <5.0.0",
"_id": "express@4.13.4",
"_inCache": true,
"_installable": true,
@ -15,14 +15,16 @@
"name": "dougwilson"
},
"_npmVersion": "1.4.28",
"_phantomChildren": {},
"_phantomChildren": {
"mime-types": "2.1.10"
},
"_requested": {
"name": "express",
"raw": "express@4.13.4",
"rawSpec": "4.13.4",
"raw": "express@^4.13.4",
"rawSpec": "^4.13.4",
"scope": null,
"spec": "4.13.4",
"type": "version"
"spec": ">=4.13.4 <5.0.0",
"type": "range"
},
"_requiredBy": [
"/"
@ -30,7 +32,7 @@
"_resolved": "https://registry.npmjs.org/express/-/express-4.13.4.tgz",
"_shasum": "3c0b76f3c77590c8345739061ec0bd3ba067ec24",
"_shrinkwrap": null,
"_spec": "express@4.13.4",
"_spec": "express@^4.13.4",
"_where": "C:\\mddev\\rinser",
"author": {
"email": "tj@vision-media.ca",

14
node_modules/lodash/README.md generated vendored
View File

@ -1,4 +1,4 @@
# lodash v4.3.0
# lodash v4.6.1
The [lodash](https://lodash.com/) library exported as [Node.js](https://nodejs.org/) modules.
@ -12,23 +12,23 @@ $ npm i --save lodash
In Node.js:
```js
// load the full build
// Load the full build.
var _ = require('lodash');
// load the core build
// Load the core build.
var _ = require('lodash/core');
// load the fp build for immutable auto-curried iteratee-first data-last methods
// Load the fp build for immutable auto-curried iteratee-first data-last methods.
var _ = require('lodash/fp');
// or a method category
// Load a method category.
var array = require('lodash/array');
var object = require('lodash/fp/object');
// or method for smaller builds with browserify/rollup/webpack
// Load a single method for smaller builds with browserify/rollup/webpack.
var chunk = require('lodash/chunk');
var extend = require('lodash/fp/extend');
```
See the [package source](https://github.com/lodash/lodash/tree/4.3.0-npm) for more details.
See the [package source](https://github.com/lodash/lodash/tree/4.6.1-npm) for more details.
**Note:**<br>
Dont assign values to the [special variable](http://nodejs.org/api/repl.html#repl_repl_features) `_` when in the REPL.<br>

2
node_modules/lodash/array.js generated vendored
View File

@ -14,6 +14,7 @@ module.exports = {
'findLastIndex': require('./findLastIndex'),
'flatten': require('./flatten'),
'flattenDeep': require('./flattenDeep'),
'flattenDepth': require('./flattenDepth'),
'fromPairs': require('./fromPairs'),
'head': require('./head'),
'indexOf': require('./indexOf'),
@ -27,6 +28,7 @@ module.exports = {
'pull': require('./pull'),
'pullAll': require('./pullAll'),
'pullAllBy': require('./pullAllBy'),
'pullAllWith': require('./pullAllWith'),
'pullAt': require('./pullAt'),
'remove': require('./remove'),
'reverse': require('./reverse'),

1
node_modules/lodash/lang.js generated vendored
View File

@ -1,4 +1,5 @@
module.exports = {
'castArray': require('./castArray'),
'clone': require('./clone'),
'cloneDeep': require('./cloneDeep'),
'cloneDeepWith': require('./cloneDeepWith'),

2
node_modules/lodash/object.js generated vendored
View File

@ -39,6 +39,8 @@ module.exports = {
'toPairsIn': require('./toPairsIn'),
'transform': require('./transform'),
'unset': require('./unset'),
'update': require('./update'),
'updateWith': require('./updateWith'),
'values': require('./values'),
'valuesIn': require('./valuesIn')
};

38
node_modules/lodash/package.json generated vendored
View File

@ -1,41 +1,41 @@
{
"_args": [
[
"lodash@4.3.0",
"lodash@^4.6.1",
"C:\\mddev\\rinser"
]
],
"_from": "lodash@4.3.0",
"_id": "lodash@4.3.0",
"_from": "lodash@>=4.6.1 <5.0.0",
"_id": "lodash@4.6.1",
"_inCache": true,
"_installable": true,
"_location": "/lodash",
"_nodeVersion": "5.5.0",
"_npmOperationalInternal": {
"host": "packages-9-west.internal.npmjs.com",
"tmp": "tmp/lodash-4.3.0.tgz_1454921838929_0.49659619107842445"
"host": "packages-12-west.internal.npmjs.com",
"tmp": "tmp/lodash-4.6.1.tgz_1456942179866_0.5565699376165867"
},
"_npmUser": {
"email": "john.david.dalton@gmail.com",
"name": "jdalton"
},
"_npmVersion": "2.14.18",
"_npmVersion": "2.14.17",
"_phantomChildren": {},
"_requested": {
"name": "lodash",
"raw": "lodash@4.3.0",
"rawSpec": "4.3.0",
"raw": "lodash@^4.6.1",
"rawSpec": "^4.6.1",
"scope": null,
"spec": "4.3.0",
"type": "version"
"spec": ">=4.6.1 <5.0.0",
"type": "range"
},
"_requiredBy": [
"#DEV:/"
],
"_resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz",
"_shasum": "efd9c4a6ec53f3b05412429915c3e4824e4d25a4",
"_resolved": "https://registry.npmjs.org/lodash/-/lodash-4.6.1.tgz",
"_shasum": "df00c1164ad236b183cfc3887a5e8d38cc63cbbc",
"_shrinkwrap": null,
"_spec": "lodash@4.3.0",
"_spec": "lodash@^4.6.1",
"_where": "C:\\mddev\\rinser",
"author": {
"email": "john.david.dalton@gmail.com",
@ -67,8 +67,8 @@
"devDependencies": {},
"directories": {},
"dist": {
"shasum": "efd9c4a6ec53f3b05412429915c3e4824e4d25a4",
"tarball": "http://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz"
"shasum": "df00c1164ad236b183cfc3887a5e8d38cc63cbbc",
"tarball": "http://registry.npmjs.org/lodash/-/lodash-4.6.1.tgz"
},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
@ -84,13 +84,17 @@
"name": "jdalton",
"email": "john.david.dalton@gmail.com"
},
{
"name": "jridgewell",
"email": "justin+npm@ridgewell.name"
},
{
"name": "mathias",
"email": "mathias@qiwi.be"
},
{
"name": "phated",
"email": "blaine@iceddev.com"
"email": "blaine.bublitz@gmail.com"
}
],
"name": "lodash",
@ -103,5 +107,5 @@
"scripts": {
"test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
},
"version": "4.3.0"
"version": "4.6.1"
}

View File

@ -3,7 +3,7 @@
"version": "0.1.1",
"devDependencies": {
"ejs": "^2.3.3",
"lodash": "^4.3.0",
"lodash": "^4.6.1",
"rss-braider": "^1.0.0"
},
"dependencies": {