[10.0][MIG] web_widget_text_markdown

Adjustment to make it work version 10.0
pull/1979/head
phuc.nt 2018-02-27 09:31:21 +07:00 committed by hkapatel
parent 455e2b43e3
commit f2449a10fd
8 changed files with 1038 additions and 779 deletions

View File

@ -8,11 +8,6 @@ This module adds a new widget for text field in form view on Odoo:
[1]: http://www.codingdrama.com/bootstrap-markdown/ "bootstrap-markdown" [1]: http://www.codingdrama.com/bootstrap-markdown/ "bootstrap-markdown"
Installation
============
It was tested on openerp trunk, 8.0 branch.
Usage Usage
===== =====
@ -48,6 +43,16 @@ Contributors
------------ ------------
* Nicolas Jeudy <nicolas@sudokeys.com> * Nicolas Jeudy <nicolas@sudokeys.com>
* Nguyen Tan Phuc <phuc.nt@komit-consulting.com>
Do not contact contributors directly about support or help with technical issues.
Funders
-------
The development of this module has been financially supported by:
* Komit https://komit-consulting.com
Maintainer Maintainer
---------- ----------

View File

@ -2,6 +2,7 @@
############################################################################## ##############################################################################
# #
# Copyright (C) 2014 Sudokeys (<http://www.sudokeys.com>) # Copyright (C) 2014 Sudokeys (<http://www.sudokeys.com>)
# Copyright (C) 2017 Komit (<http://www.komit-consulting.com>)
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published # it under the terms of the GNU Affero General Public License as published
@ -20,18 +21,26 @@
{ {
'name': 'web_widget_text_markdown', 'name': 'web_widget_text_markdown',
'version': '8.0.1.0.0', 'version': '10.0.1.0.0',
'author': "Sudokeys,Odoo Community Association (OCA)", "author": "Komit, "
'maintainer': 'Sudokeys', "Sudokeys, "
'category': '', "Odoo Community Association (OCA)",
'category': 'Web',
'license': 'AGPL-3', 'license': 'AGPL-3',
'depends': ['base', 'web'], 'website': 'https://github.com/OCA/web',
'website': 'http://www.sudokey.com', 'depends': [
'data': ['views/main.xml', ], 'base', 'web'
"qweb": ["static/src/xml/bootstrap_markdown.xml", ],
], 'demo': [
'demo': [], "demo/bootstrap_markdown.xml",
'installable': False, ],
'data': [
'views/main.xml',
],
"qweb": [
"static/src/xml/bootstrap_markdown.xml",
],
'installable': True,
'auto_install': False, 'auto_install': False,
'application': False 'application': False
} }

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record id="view_groups_form_inherited" model="ir.ui.view">
<field name="model">res.groups</field>
<field name="inherit_id" ref="base.view_groups_form" />
<field name="arch" type="xml">
<field name="comment" position="attributes">
<attribute name="widget">bootstrap_markdown</attribute>
</field>
</field>
</record>
</odoo>

View File

@ -1,4 +1,4 @@
.openerp .oe_form .oe_form_field_markdown .oe_form_text_content { .oe_form_field_markdown {
text-overflow: ellipsis; text-overflow: ellipsis;
/* display: inline-block; /* display: inline-block;
white-space: pre-wrap; white-space: pre-wrap;
@ -6,7 +6,7 @@
width: 100%; width: 100%;
} }
.openerp .markdown-body thead th:first-child { .markdown-body thead th:first-child {
border-left: 1px solid #ddd !important; border-left: 1px solid #ddd !important;
} }

View File

@ -1,11 +1,20 @@
openerp.web_widget_text_markdown = function (oe) { /* Copyright 2014 Sudokeys <http://www.sudokeys.com>
* Copyright 2017 Komit - <http:///komit-consulting.com>
* License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). */
odoo.define("web_widget_text_markdown.bootstrap_markdown",
function (require) {
"use strict";
var _lt = oe.web._lt; var core = require('web.core');
var form_common = require('web.form_common');
var formats = require ("web.formats");
oe.web.form.widgets.add('bootstrap_markdown', 'openerp.web_widget_text_markdown.FieldTextMarkDown'); var _lt = core._lt;
var ListView = require('web.ListView');
var list_widget_registry = core.list_widget_registry;
oe.web_widget_text_markdown.FieldTextMarkDown = oe.web.form.AbstractField.extend( var FieldTextMarkDown = form_common.AbstractField.extend(
oe.web.form.ReinitializeFieldMixin, form_common.ReinitializeFieldMixin,
{ {
template: 'FieldMarkDown', template: 'FieldMarkDown',
@ -23,7 +32,7 @@ openerp.web_widget_text_markdown = function (oe) {
}, },
parse_value: function(val, def) { parse_value: function(val, def) {
return oe.web.parse_value(val, this, def); return formats.parse_value(val, this, def);
}, },
initialize_content: function () { initialize_content: function () {
@ -32,7 +41,11 @@ openerp.web_widget_text_markdown = function (oe) {
// - BUT NOT when switching to next object. // - BUT NOT when switching to next object.
this.$txt = this.$el.find('textarea[name="' + this.name + '"]'); this.$txt = this.$el.find('textarea[name="' + this.name + '"]');
if (!this.get('effective_readonly')) { if (!this.get('effective_readonly')) {
this.$txt.markdown({autofocus: false, savable: false}); this.$txt.markdown({
autofocus: false,
savable: false,
iconlibrary: "fa"
});
} }
this.old_value = null; // will trigger a redraw this.old_value = null; // will trigger a redraw
}, },
@ -83,15 +96,18 @@ openerp.web_widget_text_markdown = function (oe) {
}, },
format_value: function (val, def) { format_value: function (val, def) {
return oe.web.format_value(val, this, def); return formats.format_value(val, this, def);
} }
} }
); );
/** core.form_widget_registry.add('bootstrap_markdown',
FieldTextMarkDown);
/**
* bootstrap_markdown support on list view * bootstrap_markdown support on list view
**/ **/
oe.web_widget_text_markdown.FieldTextMarkDownList = oe.web.list.Char.extend({ ListView.Column.include({
init: function(){ init: function(){
this._super.apply(this, arguments); this._super.apply(this, arguments);
@ -107,7 +123,7 @@ openerp.web_widget_text_markdown = function (oe) {
_format: function(row_data, options){ _format: function(row_data, options){
options = options || {}; options = options || {};
var markdown_text = marked( var markdown_text = marked(
oe.web.format_value( formats.format_value(
row_data[this.id].value, this, options.value_if_empty row_data[this.id].value, this, options.value_if_empty
) )
); );
@ -115,7 +131,6 @@ openerp.web_widget_text_markdown = function (oe) {
} }
}); });
oe.web.list.columns.add( list_widget_registry.add('field.bootstrap_markdown', ListView.Column);
"field.bootstrap_markdown", "oe.web_widget_text_markdown.FieldTextMarkDownList"
); });
};

View File

@ -1,6 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- vim:fdl=1: <!-- * Copyright 2014 Sudokeys <http://www.sudokeys.com>
--> * Copyright 2017 Komit - <http:///komit-consulting.com>
* License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).-->
<templates id="template" xml:space="preserve"> <templates id="template" xml:space="preserve">
<t t-name="FieldMarkDown"> <t t-name="FieldMarkDown">
@ -15,7 +17,7 @@
t-att-autofocus="widget.node.attrs.autofocus" t-att-autofocus="widget.node.attrs.autofocus"
t-att-placeholder="! widget.get('effective_readonly') ? widget.node.attrs.placeholder : ''" t-att-placeholder="! widget.get('effective_readonly') ? widget.node.attrs.placeholder : ''"
t-att-maxlength="widget.field.size" t-att-maxlength="widget.field.size"
></textarea><img class="oe_field_translate oe_input_icon" /><img class="oe_field_translate oe_input_icon"
t-if="widget.field.translate and !widget.get('effective_readonly')" t-if="widget.field.translate and !widget.get('effective_readonly')"
t-att-src='_s + "/web/static/src/img/icons/terp-translate.png"' t-att-src='_s + "/web/static/src/img/icons/terp-translate.png"'
width="16" width="16"
@ -24,7 +26,7 @@
/> />
</t> </t>
<t t-if="widget.get('effective_readonly')"> <t t-if="widget.get('effective_readonly')">
<span class="oe_form_text_content"></span> <span class="oe_form_text_content"/>
</t> </t>
</div> </div>
</t> </t>

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- vim:fdn=3: <!-- * Copyright 2014 Sudokeys <http://www.sudokeys.com>
--> * Copyright 2017 Komit - <http:///komit-consulting.com>
* License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).-->
<openerp> <openerp>
<data> <data>
<template id="assets_backend" name="web_widget_text_markdown assets" inherit_id="web.assets_backend"> <template id="assets_backend" name="web_widget_text_markdown assets" inherit_id="web.assets_backend">
@ -8,10 +9,10 @@
<link rel="stylesheet" href="/web_widget_text_markdown/static/src/css/bootstrap-markdown.min.css"/> <link rel="stylesheet" href="/web_widget_text_markdown/static/src/css/bootstrap-markdown.min.css"/>
<link rel="stylesheet" href="/web_widget_text_markdown/static/lib/highlight/styles/railscasts.css"/> <link rel="stylesheet" href="/web_widget_text_markdown/static/lib/highlight/styles/railscasts.css"/>
<link rel="stylesheet" href="/web_widget_text_markdown/static/src/css/main.css"/> <link rel="stylesheet" href="/web_widget_text_markdown/static/src/css/main.css"/>
<script type="text/javascript" src="/web_widget_text_markdown/static/lib/highlight/highlight.min.js"></script> <script type="text/javascript" src="/web_widget_text_markdown/static/lib/highlight/highlight.min.js"/>
<script type="text/javascript" src="/web_widget_text_markdown/static/lib/marked/marked.js"></script> <script type="text/javascript" src="/web_widget_text_markdown/static/lib/marked/marked.js"/>
<script type="text/javascript" src="/web_widget_text_markdown/static/lib/bootstrap-markdown/bootstrap-markdown.js"></script> <script type="text/javascript" src="/web_widget_text_markdown/static/lib/bootstrap-markdown/bootstrap-markdown.js"/>
<script type="text/javascript" src="/web_widget_text_markdown/static/src/js/web_widget_text_markdown.js"></script> <script type="text/javascript" src="/web_widget_text_markdown/static/src/js/web_widget_text_markdown.js"/>
</xpath> </xpath>
</template> </template>
</data> </data>