imdone
Version:
A task board and wiki in one!
557 lines (542 loc) • 25 kB
HTML
<html>
<head>
<title>iMDone</title>
<link rel="shortcut icon" href="/favicon.ico" />
<!-- Bootstrap -->
<!-- [Use bootswatch](#PLANNING:60)-->
<!-- <link href="lib/bootswatch/css/bootstrap.min.css" rel="stylesheet" media="screen"/>-->
<link href="css/bootstrap.css" rel="stylesheet" media="screen"/>
<link href='css/darkstrap-v0.9.0.css' rel='stylesheet' media="screen"/>
<link href="lib/font-awesome/css/font-awesome.min.css" rel="stylesheet" media="screen"/>
<link href="css/icomoon.css" rel="stylesheet" media="screen"/>
<link href="css/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" media="screen"/>
<link href="css/jquery.pnotify.default.css" rel="stylesheet" media="screen"/>
<link href="lib/intro.js/css/introjs.css" type="text/css" rel="stylesheet" media="screen">
<link href="css/style.css" type="text/css" rel="stylesheet" media="screen"/>
<link href="lib/prism/css/prism-okaidia.css" type="text/css" rel="stylesheet" media="screen"/>
<link href="css/print.css" type="text/css" rel="stylesheet" media="print"/>
</head>
<body>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container-fluid">
<!-- [implement dropdown for switching between projects](#ARCHIVE:370)-->
<div class="nav-collapse collapse">
<span class="brand"><img src="img/logo-inverse-small.png"/></span>
<ul class="nav">
<li>
<button class="btn btn-inverse clean-btn" id="open-project-btn" title="Open a project">
<i class="icomoon-plus"></i>
</button>
</li>
<li>
<button class="btn btn-inverse clean-btn project-nav" id="open-file-btn" title="Open/Create file">
<i class="icomoon-folder-open"></i>
</button>
</li>
<li id="search-dialog" class="project-nav">
<div class="dropdown pull-left">
<button class="btn btn-inverse clean-btn dropdown-toggle" data-toggle="dropdown" id="search-dialog-btn"
title="Search for files"><i class="icomoon-search"></i></button>
<ul class="dropdown-menu column-nav-menu" role="menu">
<li>
<form class="navbar-form" id="search-form">
<input class="span3" type="text" id="search-field" placeholder="Search files in this project">
</form>
</li>
</ul>
</div>
</li>
<li>
<button class="btn btn-inverse clean-btn hide wiggle project-nav" id="open-readme-btn" title="Open Readme">
<i class="icomoon-book"></i>
</button>
</li>
<li>
<button class="btn btn-inverse clean-btn project-nav" id="close-project-btn" title="Close project">
<i class="icomoon-remove"></i>
</button>
</li>
<li class="dropdown project-nav" id="projects-dropdown">
</li>
<li>
<button class="btn btn-inverse hide" id="search-results-btn" title="Show search results">
Search Results <i class="icomoon-search"></i>
</button>
</li>
<!--[Move close file button here and hide on paintKanban](#ARCHIVE:330)-->
</ul>
<ul id="help-nav" class="nav pull-right help-nav">
<li class="dropdown">
<button class="btn btn-primary dropdown-toggle" data-toggle="dropdown" title="Help and Feedback"><i class="icomoon-question"></i></button>
<ul class="dropdown-menu column-nav-menu" role="menu">
<li class="column-nav-item">
<a href="#" id="key-help-link"><i class="icomoon-keyboard"></i> Keyboard Help</a>
</li>
<li class="column-nav-item">
<a href="http://guides.github.com/overviews/mastering-markdown/" target="_blank"><i class="icomoon-markdown-mark"></i> Mastering Markdown</a>
</li>
<li class="column-nav-item">
<a href="https://twitter.com/intent/user?screen_name=imdone_io" target="_blank"><i class="icomoon-twitter"></i> Follow @imdone_io</a>
</li>
<li class="column-nav-item">
<a href="http://blog.imdone.io" target="_blank"><i class="icomoon-tumblr"></i> Blog</a>
</li>
<li class="column-nav-item" id="support-menu-item">
<a href="mailto:imdone@innobuilt.com?subject=imdone support">
<i class="icomoon-envelope-alt"></i> <span>Email the author</span>
</a>
</li>
<li class="column-nav-item" id="site-menu-item">
<a href="http://imdone.io" target="_blank"><i class="icomoon-home"></i> iMDone site</a>
</li>
<li class="column-nav-item" id="github-menu-item">
<a href="https://github.com/piascikj/imdone" target="_blank"><i class="icomoon-github-alt"></i> Fork me on Github</a>
</li>
<li class="column-nav-item" id="issues-menu-item">
<a href="https://github.com/piascikj/imdone/issues" target="_blank"><i class="icomoon-bug"></i> Issues</a>
</li>
</ul>
</li>
</ul>
<!-- [Add path filters to board - 0.1.6](#ARCHIVE:350) -->
<ul class="board-bar nav pull-right hide">
<li>
<div class="pull-left dropdown" id="lists-dropdown">
<button class="btn btn-inverse clean-btn dropdown-toggle" data-toggle="dropdown" id="lists-btn"
title="Manage Lists"><i class="icomoon-tasks"></i></button>
<ul class="dropdown-menu column-nav-menu" id="lists-menu">
</ul>
</div>
</li>
<li>
<button class="btn btn-inverse clean-btn wiggle hide" id="archive-btn" title="Archive selected tasks"><i class="icomoon-archive"></i></button>
</li>
<li>
<button class="btn btn-inverse clean-btn wiggle hide" id="filter-btn" title="Filter by selected tasks, Esc to clear filter"><i class="icomoon-filter"></i></button>
</li>
<li>
<div class="pull-left">
<form class="navbar-form">
<input class="span3" type="text" id="filter-field" placeholder="Filter by file name">
<button id="clear" class="btn btn-inverse clean-btn" title="Clear task filter"><i class="icomoon-eraser"></i></button>
</form>
</div>
</li>
</ul>
<ul class="edit-bar nav pull-right" style="display:none;">
<li>
<div class="btn-group" id="preview-toggle">
<button class="btn btn-inverse" id="edit-btn" title="Edit File"><i class="icomoon-edit"></i></button>
<button class="btn btn-inverse" id="preview-btn" title="Preview File"><i class="icomoon-desktop"></i></button>
</div>
<div class="btn-group">
<button class="btn btn-inverse clean-btn" id="save-file-btn" title="Save file (Shift+Ctrl+s)"><i class="icomoon-save"></i></button>
<button class="btn btn-inverse clean-btn" id="remove-file-btn" title="Delete file (Shift+Ctrl+x)"><i class="icomoon-trash"></i></button>
<button class="btn btn-inverse clean-btn" id="print-btn" title="Print"><i class="icomoon-print"></i></button>
</div>
</li>
</ul>
<ul class="nav content-nav hide pull-right" id="content-nav" style="display:none">
<li>
<button class="btn btn-inverse" id="close-file-btn" title="Close file (Esc)">
<span id="filename"></span> <i class="icomoon-remove"></i>
</button>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="app-container">
<div class="clearfix"></div>
<div id="file-container" tabindex="0" class="file-container editor-container">
<div class="editor" id="editor"></div>
<div class="row" id="preview-container">
<div class="span4">
<div class="affix" id="sidebar">
<ul id="toc" class="nav nav-list span4"></ul>
</div>
</div>
<div class="preview span12" id="preview"></div>
</div>
<!--[Show file info above edit-bar using <http://pinesframework.org/pnotify/>](#ARCHIVE:320) -->
</div>
<div class="search-results" id="search-results" style="display:none;"></div>
<div class="board" id="board">
</div>
<!-- [Use sticky footer <http://twitter.github.com/bootstrap/examples/sticky-footer.html>](#ARCHIVE:340) -->
<!--
<div class="navbar">
<p>© iMDone 2013</p>
</div>
-->
</div>
<!-- /container -->
<div id="list-name-modal" class="modal hide fade" tabindex='-1'>
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
<i class="icomoon-remove"></i>
</button>
<h3 class="mdl-header">Edit List Name</h3>
</div>
<div class="modal-body">
<input type="text" id="list-name-field" placeholder="List Name" autofocus>
</div>
<div class="modal-footer">
<button class="btn modal-close">Cancel</button>
<button id="list-name-save" class="btn btn-primary">Save changes</button>
</div>
</div>
<div id="new-list-modal" class="modal hide fade" tabindex='-1'>
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
<i class="icomoon-remove"></i>
</button>
<h3 class="mdl-header">New List</h3>
</div>
<div class="modal-body">
<input type="text" id="new-list-field" placeholder="List Name" autofocus>
</div>
<div class="modal-footer">
<button class="btn modal-close">Cancel</button>
<button id="new-list-save" class="btn btn-primary">Save</button>
</div>
</div>
<div id="file-modal" class="modal hide fade file-modal" tabindex='-1'>
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
<i class="icomoon-remove"></i>
</button>
<h3 class="mdl-header">Open/Create File</h3>
</div>
<div class="modal-body">
<div id="ls">
</div>
</div>
<div class="modal-footer">
<!--[Add auto complete to file-field like ubuntu](#TODO:80) -->
<div class="pull-left">
<input class="span4" type="text" id="file-field" placeholder='file name... ex. (readme.md)'
title="enter a file path"/>
</div>
<a href="#" class="btn modal-close">Cancel</a>
<a href="#" id="file-open" class="btn btn-primary">Open</a>
</div>
</div>
<div id="project-modal" class="modal hide file-modal" tabindex='-1'>
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
<i class="icomoon-remove"></i>
</button>
<h3 class="mdl-header">Open Project</h3>
</div>
<div class="modal-body">
<div id="dirs">
</div>
</div>
<div class="modal-footer">
<!--[Add auto complete to file-field like ubuntu](#TODO:100) -->
<div class="pull-left">
<input class="span4" type="text" id="dir-field" placeholder='directory'
title="enter a directory or create a new one"/>
</div>
<a href="#" class="btn modal-close">Cancel</a>
<a href="#" id="project-open" class="btn btn-primary">Open</a>
</div>
</div>
<div id="remove-file-modal" class="modal hide">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
<i class="icomoon-remove"></i>
</button>
<h3 class="mdl-header">Delete File</h3>
</div>
<div class="modal-body">
<p>You are about to delete <strong><span id="remove-file-name"></span></strong> and all tasks contained in it.</p>
<p>Are you sure you want to delete this file?</p>
</div>
<div class="modal-footer">
<a href="#" id="remove-file-cancel-btn" class="btn modal-close btn-primary">Cancel</a>
<a href="#" id="remove-file-ok-btn" class="btn">Yes</a>
</div>
</div>
<div id="close-file-modal" class="modal hide">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
<i class="icomoon-remove"></i>
</button>
<h3 class="mdl-header">Save File</h3>
</div>
<div class="modal-body">
<p>This file has unsaved changes. Would you like to save these changes?</p>
</div>
<div class="modal-footer">
<a href="#" id="close-file-cancel-btn" class="btn modal-close">No</a>
<a href="#" id="close-file-ok-btn" class="btn btn-primary">Yes</a>
</div>
</div>
<div id="reload-file-modal" class="modal hide">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
<i class="icomoon-remove"></i>
</button>
<h3 class="mdl-header">Reload</h3>
</div>
<div class="modal-body">
<p>The file has changed on disk. Would you like to reload it?</p>
</div>
<div class="modal-footer">
<a href="#" id="reload-file-cancel-btn" class="btn modal-close">No</a>
<a href="#" id="reload-file-ok-btn" class="btn btn-primary">Yes</a>
</div>
</div>
<div class="modal imdone-progress hide">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h3 class="mdl-header">Loading...</h3>
</div>
<div class="modal-body">
<div class="progress progress-success">
<div class="bar" style="width: 0%;"></div>
</div>
</div>
</div>
</div>
</div>
<div id="help-modal" class="modal hide fade full-screen" tabindex='-1'>
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
<i class="icomoon-remove"></i>
</button>
<h3 class="mdl-header">Keyboard Help</h3>
</div>
<div class="modal-body">
</div>
</div>
</div>
</div>
<div id="poll-modal" class="modal hide fade full-screen" tabindex='-1'>
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
<i class="icomoon-remove"></i>
</button>
<h3 class="mdl-header">iMDone - Poll</h3>
<p>
We value your feedback. Help us make iMDone even better by responding to this short poll.
</p>
</div>
<form name="poll" id="poll">
<div class="modal-body">
<h4>Why do you use iMDone?</h4>
<div class="form-group">
<div class="radio">
<label>
<input type="radio" name="why" id="why-debt" value="technical debt">
To identify and eliminate technical debt
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="why" id="why-tasks" value="manage tasks">
To manage tasks in my code
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="why" id="why-docs" value="manage docs">
To manage project documentation
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="why" id="why-other" value="other">
Other
</label>
</div>
<div id="why-desc-wrapper" class="hide form-control">
<textarea aria-label="describe why you use iMDone" id="why-description" class="form-control span6"
rows="3" placeholder="Describe why you use iMDone"></textarea>
</div>
</div>
<h4>How do you use iMDone?</h4>
<div class="form-group">
<div class="radio">
<label>
<input type="radio" name="how" id="how1" value="local install">
Installed locally
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="how" id="how2" value="server install">
Installed on a server for remote access
</label>
</div>
</div>
<h4>Help us keep in touch</h4>
<div class="form-group">
<label for="email">Email address</label>
<input type="email" class="form-control" id="email" placeholder="email (optional)">
</div>
<p class="note">
<strong>iMDone</strong> is now available as a Chrome App! <a href="https://chrome.google.com/webstore/detail/imdone/kchfkmdhgpibgidhdllkbgfnpmefdldl">Get it here !</a>
</p>
</div>
<div class="modal-footer">
<input type="submit" id="submit-poll-btn" role="button" class="btn btn-inverse" />
</div>
</form>
</div>
</div>
</div>
<!-- Mustache templates -->
<script id="list-template" type="text/x-handlebars-template">
{{#each lists}}
{{^hidden}}
<div class="span4 well list" id="{{name}}">
<div class="list-name-container well" title="Edit list name" data-list="{{name}}">
<div class="list-name pull-left" data-list="{{name}}">{{concat name 16}}</div>
<div class="task-select-all pull-right" data-list="{{name}}"><i class="icomoon-check-empty" title="Select/Deselect all tasks"></i></div>
<div class="clearfix"></div>
</div>
{{#if tasks}}
{{#each tasks}}
<div class="wrap well task" id="{{source.path}}-{{id}}" data-id="{{id}}" data-list="{{list}}" data-order="{{order}}" data-path="{{source.path}}">
<span class="row-fluid task-text">{{{markDown text}}}</span>
<span class="row-fluid task-info">
<a href="{{fileHref source.path line}}" title="Open {{sourc.path}}"
class="source-link" data-url="{{url}}" data-target="#src-panel" data-list="{{list}}">{{source.path}}</a>
</span>
</div>
{{/each}}
{{else}}
<button class="btn btn-inverse remove-list" type="button" data-list="{{name}}"><i class="icomoon-trash"></i> Remove list</button>
{{/if}}
</div>
{{/hidden}}
{{/each}}
</script>
<script id="files-template" type="text/x-handlebars-template">
{{#if history}}
<h5>Recent</h5>
<ul class="plain-list">
{{#each history}}
<li><a href="{{fileHref path line preview}}" class="js-file" data-path="{{path}}"><i class="icomoon-file-alt"></i>{{path}}</a></li>
{{/each}}
</ul>
<hr>
{{/if}}
<ul class="plain-list">
{{#if name}}
<li><a href="#" class="js-dir" data-path="{{parent.path}}"><i class="icomoon-arrow-up"></i></a></li>
{{/if}}
{{#if dirs}}
{{#each dirs}}
<li><a href="#" class="js-dir" data-path="{{path}}"><i class="icomoon-folder-close"></i>{{name}}</a></li>
{{/each}}
{{/if}}
{{#if files}}
{{#each files}}
<li><a href="{{fileHref path true}}" class="js-file" data-path="{{path}}"><i class="icomoon-file-alt"></i>{{name}}</a></li>
{{/each}}
{{/if}}
</ul>
</script>
<script id="dirs-template" type="text/x-handlebars-template">
{{#if history}}
<h5>Recent</h5>
<ul class="plain-list">
{{#each history}}
<li><a href="#" class="project-hist-link" data-path="{{this}}"><i class="icomoon-folder-close"></i>{{this}}</a></li>
{{/each}}
</ul>
<hr>
{{/if}}
<ul class="plain-list">
{{#if name}}
<li><a href="#" class="fs-dir" data-path="{{up}}" title="{{up}}"><i class="icomoon-arrow-up"></i></a></li>
{{/if}}
{{#if dirs}}
{{#each dirs}}
<li><a href="#" class="fs-dir" data-path="{{path}}" data-hidden="{{hidden}}"><i class="icomoon-folder-close"></i>{{name}}</a></li>
{{/each}}
{{/if}}
</ul>
</script>
<!-- [User should be able to add a list to a project](#ARCHIVE:110) -->
<!-- [User should be able to select from lists recognized by characters typed when creating a task](#PLANNING:70) -->
<script id="lists-template" type="text/x-handlebars-template">
<li class="column-nav-menu-item">
<a href="#" class="column-nav-menu-link new-list">
<span class="obj-left"><i class="icomoon-magic"></i></span>
<span class="pull-left">Create New List</span>
</a>
</li>
{{#each lists}}
<li class="column-nav-menu-item list-item" data-list="{{name}}">
<a href="#" class="list-show column-nav-menu-link" data-list="{{name}}">
<span class="js-drag-handle drag-handle obj-left" data-list="{{name}}">
<i class="icomoon-reorder"></i>
</span>
<span class="pull-left">{{concat name 10}}</span>
{{#if hidden}}
<span class="list-show obj-right" data-list="{{name}}" title="Show {{name}}"><i data-position="left" class="icomoon-eye-close"></i> </span>
{{else}}
<span class="list-hide obj-right" data-list="{{name}}" title="Hide {{name}}"><i data-position="left" class="icomoon-eye-open"></i> </span>
{{/if}}
</a>
</li>
{{/each}}
</script>
<script id="projects-template" type="text/x-handlebars-template">
{{#if projects}}
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="cwd" id="cwd">{{cwd}}</span> <b class="caret"></b></a>
<ul class="dropdown-menu column-nav-menu" role="menu">
{{#each projects}}
<li class="column-nav-menu-item">
<a href="#project/{{this}}" data-project="{{this}}" class="project-item">{{this}}</a>
</li>
{{/each}}
</ul>
{{else}}
<a href="#"><span class="cwd" id="cwd">{{cwd}}</span></a>
{{/if}}
</script>
<script id="search-results-template" type="text/x-handlebars-template">
<ul class="pager">
{{#if previous}}
<li class="previous"><a href="{{previous}}">← previous</a></li>
{{else}}
<li class="previous disabled"><a href="#">← previous</a></li>
{{/if}}
{{#if next}}
<li class="next"><a href="{{next}}">next →</a></li>
{{else}}
<li class="next disabled"><a href="#">next →</a></li>
{{/if}}
</ul>
<h3>Searched {{results.filesSearched}} files for "{{results.opts.query}}" in {{project}}</h3>
{{#if results.result}}
<h3>Showing results {{results.opts.offset}}-{{last}}</h3>
{{#each results.result}}
<h4><a href="{{fileHref file.path}}">{{file.path}}</a></h4>
{{#each lines}}
<a href="{{fileHref ../file.path line}}">
<pre><code class="line-number">{{line}}:</code>{{highlightCode text ../../results.opts.query}}</pre>
</a>
{{/each}}
{{/each}}
{{else}}
No results
{{/if}}
</script>
<script data-main="js/main" src="lib/requirejs/require.js"></script>
</body>
</html>