[#7872] ticket:765 Show markdown preview/help buttons for merge requests
diff --git a/Allura/allura/controllers/repository.py b/Allura/allura/controllers/repository.py
index ce38b2b..b630e77 100644
--- a/Allura/allura/controllers/repository.py
+++ b/Allura/allura/controllers/repository.py
@@ -77,6 +77,11 @@
def _check_security(self):
require_access(c.app, 'read')
+ @expose('jinja:allura:templates/markdown_syntax_dialog.html')
+ def markdown_syntax_dialog(self):
+ """Static page explaining markdown."""
+ return dict()
+
@with_trailing_slash
@expose()
def index(self, offset=0, branch=None, **kw):
diff --git a/Allura/allura/lib/widgets/repo.py b/Allura/allura/lib/widgets/repo.py
index 04ce74f..b3cb8dd 100644
--- a/Allura/allura/lib/widgets/repo.py
+++ b/Allura/allura/lib/widgets/repo.py
@@ -76,8 +76,9 @@
name='target_branch',
label='Target Branch',
options=self.target_branches),
- ffw.AutoResizeTextarea(name='description',
- css_class='description')]
+ ffw.MarkdownEdit(
+ name='description',
+ css_class='auto_resize description')]
return result
def resources(self):
diff --git a/Allura/allura/lib/widgets/resources/css/merge_request.css b/Allura/allura/lib/widgets/resources/css/merge_request.css
index 87b58a2..839e3ac 100644
--- a/Allura/allura/lib/widgets/resources/css/merge_request.css
+++ b/Allura/allura/lib/widgets/resources/css/merge_request.css
@@ -17,9 +17,9 @@
under the License.
*/
.summary {
- width: 30em;
+ width: 97%;
}
.description {
- width: 30em;
+ width: 97%;
height: 10em;
}
diff --git a/Allura/allura/templates/widgets/markdown_edit.html b/Allura/allura/templates/widgets/markdown_edit.html
index 7c15df0..b134558 100644
--- a/Allura/allura/templates/widgets/markdown_edit.html
+++ b/Allura/allura/templates/widgets/markdown_edit.html
@@ -22,7 +22,7 @@
<a href="#" class="markdown_edit btn" style="display:none" title="Edit"><b data-icon="{{g.icons['pencil'].char}}" class="ico {{g.icons['pencil'].css}}"></b> Edit</a>
<a href="{{c.app.url}}markdown_syntax_dialog" class="markdown_help btn" title="Formatting Help"><b data-icon="{{g.icons['help'].char}}" class="ico {{g.icons['help'].css}}"></b> Formatting Help</a>
<div style="clear:both"></div>
- <textarea id="{{id or rendered_name}}" name="{{rendered_name}}" class="auto_resize" {{widget.j2_attrs(attrs)}}>{{value or ''}}</textarea>
+ <textarea id="{{id or rendered_name}}" name="{{rendered_name}}" class="{{widget.css_class}}" {{widget.j2_attrs(attrs)}}>{{value or ''}}</textarea>
<div class="markdown_preview" style="display:none"></div>
<a href="#" class="markdown_preview btn" title="Preview"><b data-icon="{{g.icons['search'].char}}" class="ico {{g.icons['search'].css}}"></b> Preview</a>
<a href="#" class="markdown_edit btn" style="display:none" title="Edit"><b data-icon="{{g.icons['pencil'].char}}" class="ico {{g.icons['pencil'].css}}"></b> Edit</a>
diff --git a/ForgeGit/forgegit/tests/functional/test_controllers.py b/ForgeGit/forgegit/tests/functional/test_controllers.py
index dacec3e..7458ba8 100644
--- a/ForgeGit/forgegit/tests/functional/test_controllers.py
+++ b/ForgeGit/forgegit/tests/functional/test_controllers.py
@@ -427,6 +427,9 @@
assert_equal(app_config.options['external_checkout_url'], 'http://foo.bar/baz')
assert_equal(app_config.options['merge_disabled'], True)
+ def test_markdown_syntax_dialog(self):
+ r = self.app.get('/p/test/src-git/markdown_syntax_dialog')
+ assert_in('<h1>Markdown Syntax Guide</h1>', r)
class TestRestController(_TestCase):
@@ -635,8 +638,17 @@
assert '<a href="edit" title="Edit"><b data-icon="p" class="ico ico-pencil" title="Edit"></b></a>' in r
r = self.app.get('/p/test/src-git/merge-requests/1/edit')
assert 'value="summary"' in r
- assert 'name="description">description</textarea>' in r
assert '<option selected value="zz">zz</option>' in r
+ md_edit = r.html.find('div', {'class': 'markdown_edit'})
+ assert md_edit is not None, 'MarkdownEdit widget not found'
+ description = md_edit.find('textarea')
+ assert_equal(description['name'], 'description')
+ assert_equal(description['class'], 'auto_resize description')
+ help_btn = md_edit.find('a', {'class': 'markdown_help btn'})
+ preview_btn = md_edit.find('a', {'class': 'markdown_preview btn'})
+ assert_equal(help_btn['href'], '/p/test/src-git/markdown_syntax_dialog')
+ assert_equal(help_btn['title'], 'Formatting Help')
+ assert_equal(preview_btn['title'], 'Preview')
r = self.app.post('/p/test/src-git/merge-requests/1/do_request_merge_edit',
params={