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