Serpent Consulting Services has proposed merging 
lp:~serpentcs/web-addons/web_search_alphabetic into lp:web-addons.

Requested reviews:
  Web-Addons Core Editors (webaddons-core-editors)

For more details, see:
https://code.launchpad.net/~serpentcs/web-addons/web_search_alphabetic/+merge/202325
-- 
https://code.launchpad.net/~serpentcs/web-addons/web_search_alphabetic/+merge/202325
Your team Web-Addons Core Editors is requested to review the proposed merge of 
lp:~serpentcs/web-addons/web_search_alphabetic into lp:web-addons.
=== added directory 'web_search_alphabetic'
=== added file 'web_search_alphabetic/__init__.py'
--- web_search_alphabetic/__init__.py	1970-01-01 00:00:00 +0000
+++ web_search_alphabetic/__init__.py	2014-01-20 15:51:59 +0000
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution
+#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
+#    Copyright (C) 2011-2014 Serpent Consulting Services (<http://www.serpentcs.com>)
+#
+#    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 by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+############################################################################
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== added file 'web_search_alphabetic/__openerp__.py'
--- web_search_alphabetic/__openerp__.py	1970-01-01 00:00:00 +0000
+++ web_search_alphabetic/__openerp__.py	2014-01-20 15:51:59 +0000
@@ -0,0 +1,49 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution
+#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
+#    Copyright (C) 2011-2014 Serpent Consulting Services (<http://www.serpentcs.com>)
+#
+#    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 by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+############################################################################
+
+{
+    'name': 'Web Alphabetical Search',
+    'author' : 'Serpent Consulting Services Pvt. Ltd.',
+    'category' : 'Web',
+    'website': 'http://www.serpentcs.com',
+    'description': """
+OpenERP Web Search Extended.
+============================
+
+This module used for search record base on alphabetical character be default it will search on name field.
+User also is able to change search field name instead of name field.
+    """,
+    'version': '1.0',
+    'depends': ['web'],
+    'js': [
+        'static/src/js/web_search.js'
+    ],
+    'css': [
+        'static/src/css/web_search.css'
+    ],
+    'qweb' : [
+        'static/src/xml/web_search.xml',
+    ],
+    'auto_install': False
+}
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== added directory 'web_search_alphabetic/static'
=== added directory 'web_search_alphabetic/static/src'
=== added directory 'web_search_alphabetic/static/src/css'
=== added file 'web_search_alphabetic/static/src/css/web_search.css'
--- web_search_alphabetic/static/src/css/web_search.css	1970-01-01 00:00:00 +0000
+++ web_search_alphabetic/static/src/css/web_search.css	2014-01-20 15:51:59 +0000
@@ -0,0 +1,44 @@
+.openerp .search_filter {
+    background: #F0F0F0;
+    width: 100%;
+    border: 1px solid #999;
+    background: -moz-linear-gradient(top, #F0F0F0 0%, #C0C0C0 100%);
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F0F0F0), color-stop(100%,#C0C0C0));
+}
+
+.openerp .oe_filter_label {
+    background: #F0F0F0;
+    width: 3.35%;
+    border: 1px solid #999;
+    background: -moz-linear-gradient(top, #F0F0F0 0%, #C0C0C0 100%);
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F0F0F0), color-stop(100%,#C0C0C0));
+    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#F0F0F0', endColorstr='#C0C0C0',GradientType=0 );
+}
+.openerp .oe_filter_label:hover {
+    background: #F0F0F0;
+    background: -moz-linear-gradient(top, #F0F0F0 0%, #A1A7CE 100%);
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F0F0F0), color-stop(100%,#A1A7CE));
+    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#F0F0F0', endColorstr='#A1A7CE',GradientType=0 );
+}
+.openerp .oe_filter_label:active {
+    background: #aaa;
+    background: -moz-linear-gradient(top, #999999 0%, #EEEEEE 100%);
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#999999), color-stop(100%,#EEEEEE));
+    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#999999', endColorstr='#EEEEEE',GradientType=0 );
+}
+.openerp .oe_filter_label.enabled {
+    background: #aaa;
+    filter: none;
+    -moz-box-shadow: none;
+    -webkit-box-shadow: none;
+    -o-box-shadow: none;
+    box-shadow: none;
+}
+.openerp .oe_filter_label {
+    font-weight: bold;
+    text-transform: uppercase;
+    text-shadow: #EEE 0 1px 0;
+    color: #4C4C4C;
+    white-space: nowrap;
+    margin: 0;
+}
\ No newline at end of file

=== added directory 'web_search_alphabetic/static/src/img'
=== added file 'web_search_alphabetic/static/src/img/icon.png'
Binary files web_search_alphabetic/static/src/img/icon.png	1970-01-01 00:00:00 +0000 and web_search_alphabetic/static/src/img/icon.png	2014-01-20 15:51:59 +0000 differ
=== added directory 'web_search_alphabetic/static/src/js'
=== added file 'web_search_alphabetic/static/src/js/web_search.js'
--- web_search_alphabetic/static/src/js/web_search.js	1970-01-01 00:00:00 +0000
+++ web_search_alphabetic/static/src/js/web_search.js	2014-01-20 15:51:59 +0000
@@ -0,0 +1,80 @@
+openerp.web_search_alphabetic = function (instance) {
+	var QWeb = instance.web.qweb;
+    instance.web.SearchView.include({
+        start: function() {
+            var result = this._super();
+            var self = this;
+            self.search_on = "name";
+            self.fields_selection = [];
+            this.dataset.call('fields_get', [false, {}]).done(function (fields) {
+                $.each(fields, function (value) {
+                    if(fields[value].type == "char"){
+                        fields[value].id = value;
+                        self.fields_selection.push(fields[value]);
+                    }
+                })
+                if(self.fields_selection.length){
+                    $('.field_selection_column').append((QWeb.render('field-selection', {widget: self})));
+                    $("#field_name_selection").change(function(){
+                        self.search_on =  $(this).val() || false;
+                    })
+                }
+            });
+            $('.oe_filter_label').click(function (e) {
+                $(this).toggleClass('enabled');
+                self.do_search();
+            });
+            return result;
+        },
+        search_filter: function(){
+            var filter_domain = [];
+            var self = this;
+            _.each($('.oe_filter_label'), function(value) {
+                if ($(value).hasClass('enabled') && $(value).attr('id') && self.search_on) {
+                    filter_domain.push("[('" + self.search_on + "', '=ilike', '" + $(value).attr('id').split('_')[1] + "%')]")
+                }
+            });
+            if (filter_domain.length) {
+                var filter_or_domain = [];
+                for (i = 0; i < filter_domain.length-1; i++) {
+                    filter_or_domain.push("['|']");
+                }
+                return filter_or_domain.concat(filter_domain || []);
+            }
+            return false;
+        },
+        build_search_data: function () {
+            var result = this._super();
+            filter_domain = this.search_filter();
+            if (filter_domain)
+                result['domains'] = filter_domain.concat(result.domains || []);
+            return result;
+        }, 
+    });
+
+    instance.web.ViewManager.include({
+        switch_mode: function(view_type, no_store, view_options) {
+            var view = this.views[view_type];
+            var result = this._super(view_type, no_store, view_options);
+            if (this.searchview && this.active_view != "form") {
+                if ((view.controller.searchable === false || this.searchview.options.hidden)  || this.active_view == "form"){
+                    $('.search_filter').live().hide();
+                }else
+                    $('.search_filter').show();
+            }
+            else{
+                $('.search_filter').live().hide();
+            }
+            return result;
+        },
+    });
+    instance.web.FormView.include({
+        load_defaults: function () {
+            if($('.search_filter'))
+                $('.search_filter').hide();
+            return this._super();
+        },
+    });
+};
+
+// vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax:

=== added directory 'web_search_alphabetic/static/src/xml'
=== added file 'web_search_alphabetic/static/src/xml/web_search.xml'
--- web_search_alphabetic/static/src/xml/web_search.xml	1970-01-01 00:00:00 +0000
+++ web_search_alphabetic/static/src/xml/web_search.xml	2014-01-20 15:51:59 +0000
@@ -0,0 +1,49 @@
+<template>
+<t t-name="field-selection">
+    <t t-if="widget.fields_selection">
+        <select id="field_name_selection"> 
+            <t t-foreach="widget.fields_selection" t-as="record">
+                <option t-att-value="record.id"><t t-esc="record.string"/></option>
+            </t>
+        </select>
+    </t>
+</t>
+
+<t t-extend="ViewManagerAction">
+    <t t-jquery=".oe_view_manager .oe_view_manager_header" t-operation="append">
+        <table class="search_filter">
+            <tr>
+                <th class="field_selection_column"/>
+                <th>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_a" title="A">A</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_b" title="B">B</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_c" title="C">C</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_d" title="D">D</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_e" title="E">E</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_f" title="F">F</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_g" title="G">G</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_h" title="H">H</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_i" title="I">I</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_j" title="J">J</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_k" title="K">K</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_l" title="L">L</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_m" title="M">M</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_n" title="N">N</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_o" title="O">O</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_p" title="P">P</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_q" title="Q">Q</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_r" title="R">R</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_s" title="S">S</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_t" title="T">T</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_u" title="U">U</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_v" title="V">V</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_w" title="W">W</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_x" title="X">X</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_y" title="Y">Y</button>
+                    <button type="button" autofocus="autofocus" class="oe_filter_label" id="filter_z" title="Z">z</button>
+                </th>
+            </tr>
+        </table>
+    </t>
+</t>
+</template>

-- 
Mailing list: https://launchpad.net/~openerp-community-reviewer
Post to     : openerp-community-reviewer@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openerp-community-reviewer
More help   : https://help.launchpad.net/ListHelp

Reply via email to