[MERGE] with lp:~openerp-dev/openobject-addons/trunk-dev-addons1
bzr revid: jam@tinyerp.com-20101213070328-uhf1tzsxzc3nldhz
@@ -146,11 +146,12 @@ class crm_case(object):
|
||||
if not context:
|
||||
context = {}
|
||||
stage_pool = self.pool.get('crm.case.stage')
|
||||
model = self._name
|
||||
stage_type = context and context.get('stage_type','')
|
||||
current_seq = False
|
||||
for case in self.browse(cr, uid, ids, context):
|
||||
next_stage = False
|
||||
data = {}
|
||||
domain = [('object_id.model', '=', model),('section_ids', '=', case.section_id.id)]
|
||||
domain = [('type', '=', stage_type),('section_ids', '=', case.section_id.id)]
|
||||
if case.section_id and case.section_id.stage_ids:
|
||||
domain.append(('id', 'in', map(lambda x: x.id, case.section_id.stage_ids)))
|
||||
stages = stage_pool.search(cr, uid, domain, order='sequence')
|
||||
@@ -161,9 +162,12 @@ class crm_case(object):
|
||||
return False
|
||||
else:
|
||||
next_stage = stages[index + 1]
|
||||
current_seq = case.stage_id.sequence
|
||||
if next_stage:
|
||||
data = {'stage_id': next_stage}
|
||||
stage = stage_pool.browse(cr, uid, next_stage, context=context)
|
||||
next_seq = stage.sequence
|
||||
if current_seq and (next_seq - current_seq) >= 1:
|
||||
data = {'stage_id': next_stage}
|
||||
if stage.on_change:
|
||||
data.update({'probability': stage.probability})
|
||||
self.write(cr, uid, [case.id], data, context=context)
|
||||
@@ -180,11 +184,11 @@ class crm_case(object):
|
||||
if not context:
|
||||
context = {}
|
||||
stage_pool = self.pool.get('crm.case.stage')
|
||||
model = self._name
|
||||
stage_type = context and context.get('stage_type','')
|
||||
for case in self.browse(cr, uid, ids, context):
|
||||
prev_stage = False
|
||||
data = {}
|
||||
domain = [('object_id.model', '=', model),('section_ids', '=', case.section_id.id)]
|
||||
domain = [('type', '=', stage_type),('section_ids', '=', case.section_id.id)]
|
||||
if case.section_id and case.section_id.stage_ids:
|
||||
domain.append(('id', 'in', map(lambda x: x.id, case.section_id.stage_ids)))
|
||||
stages = stage_pool.search(cr, uid, domain, order='sequence')
|
||||
@@ -195,9 +199,12 @@ class crm_case(object):
|
||||
return False
|
||||
else:
|
||||
prev_stage = stages[index - 1]
|
||||
current_seq = case.stage_id.sequence
|
||||
if prev_stage:
|
||||
data = {'stage_id': prev_stage}
|
||||
stage = stage_pool.browse(cr, uid, prev_stage, context=context)
|
||||
prev_seq = stage.sequence
|
||||
if current_seq and (prev_seq - current_seq) <= 1:
|
||||
data = {'stage_id': prev_stage}
|
||||
if stage.on_change:
|
||||
data.update({'probability': stage.probability})
|
||||
self.write(cr, uid, [case.id], data, context=context)
|
||||
@@ -482,27 +489,27 @@ class crm_case_stage(osv.osv):
|
||||
_columns = {
|
||||
'name': fields.char('Stage Name', size=64, required=True, translate=True),
|
||||
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of case stages."),
|
||||
'object_id': fields.many2one('ir.model', 'Object Name'),
|
||||
'probability': fields.float('Probability (%)', required=True, help="This percentage depicts the default/average probability of the Case for this stage to be a success"),
|
||||
'on_change': fields.boolean('Change Probability Automatically', \
|
||||
help="Change Probability on next and previous stages."),
|
||||
'requirements': fields.text('Requirements')
|
||||
'requirements': fields.text('Requirements'),
|
||||
'type': fields.selection([('lead','Lead'),('opportunity','Opportunity'),('claim','Claim'), ('fundraising','Fundraising')], 'Type'),
|
||||
}
|
||||
def _find_object_id(self, cr, uid, context=None):
|
||||
"""Finds id for case object
|
||||
|
||||
def _find_stage_type(self, cr, uid, context=None):
|
||||
"""Finds type of stage according to object.
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
object_id = context and context.get('object_id', False) or False
|
||||
ids = self.pool.get('ir.model').search(cr, uid, [('model', '=', object_id)])
|
||||
return ids and ids[0]
|
||||
type = context and context.get('type', '') or ''
|
||||
return type
|
||||
|
||||
_defaults = {
|
||||
'sequence': lambda *args: 1,
|
||||
'probability': lambda *args: 0.0,
|
||||
'object_id' : _find_object_id
|
||||
'type': _find_stage_type,
|
||||
}
|
||||
|
||||
crm_case_stage()
|
||||
|
||||
@@ -135,7 +135,7 @@ class crm_lead(crm_case, osv.osv):
|
||||
],'Type', help="Type is used to separate Leads and Opportunities"),
|
||||
'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'),
|
||||
'date_closed': fields.datetime('Closed', readonly=True),
|
||||
'stage_id': fields.many2one('crm.case.stage', 'Stage'),
|
||||
'stage_id': fields.many2one('crm.case.stage', 'Stage', domain="[('type','=','lead')]"),
|
||||
'user_id': fields.many2one('res.users', 'Salesman',help='By Default Salesman is Administrator when create New User'),
|
||||
'referred': fields.char('Referred By', size=64),
|
||||
'date_open': fields.datetime('Opened', readonly=True),
|
||||
@@ -150,6 +150,19 @@ class crm_lead(crm_case, osv.osv):
|
||||
\nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
|
||||
'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('model','=',_name)]),
|
||||
}
|
||||
|
||||
def _get_stage_id(self, cr, uid, context=None):
|
||||
"""Finds type of stage according to object.
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
if context is None:
|
||||
context = {}
|
||||
type = context and context.get('stage_type', '')
|
||||
stage_ids = self.pool.get('crm.case.stage').search(cr, uid, [('type','=',type),('sequence','>=',1)])
|
||||
return stage_ids and stage_ids[0] or False
|
||||
|
||||
_defaults = {
|
||||
'active': lambda *a: 1,
|
||||
@@ -160,6 +173,7 @@ class crm_lead(crm_case, osv.osv):
|
||||
'section_id': crm_case._get_section,
|
||||
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.lead', context=c),
|
||||
'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0],
|
||||
'stage_id': _get_stage_id,
|
||||
}
|
||||
|
||||
def onchange_partner_address_id(self, cr, uid, ids, add, email=False):
|
||||
@@ -297,7 +311,7 @@ class crm_lead(crm_case, osv.osv):
|
||||
return super(crm_lead,self).write(cr, uid, ids, vals, context)
|
||||
|
||||
def stage_next(self, cr, uid, ids, context=None):
|
||||
stage = super(crm_lead, self).stage_next(cr, uid, ids, context)
|
||||
stage = super(crm_lead, self).stage_next(cr, uid, ids, context=context)
|
||||
if stage:
|
||||
stage_obj = self.pool.get('crm.case.stage').browse(cr, uid, stage, context=context)
|
||||
if stage_obj.on_change:
|
||||
|
||||
@@ -8,28 +8,28 @@
|
||||
<field name="name">New</field>
|
||||
<field eval="'10'" name="probability"/>
|
||||
<field eval="'1'" name="sequence"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
<field name="type">lead</field>
|
||||
</record>
|
||||
|
||||
<record model="crm.case.stage" id="stage_lead2">
|
||||
<field name="name">Qualification</field>
|
||||
<field eval="'20'" name="probability"/>
|
||||
<field eval="'2'" name="sequence"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
<field name="type">lead</field>
|
||||
</record>
|
||||
|
||||
<record model="crm.case.stage" id="stage_lead3">
|
||||
<field name="name">Proposition</field>
|
||||
<field eval="'40'" name="probability"/>
|
||||
<field eval="'3'" name="sequence"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
<field name="type">lead</field>
|
||||
</record>
|
||||
|
||||
<record model="crm.case.stage" id="stage_lead4">
|
||||
<field name="name">Negotiation</field>
|
||||
<field eval="'60'" name="probability"/>
|
||||
<field eval="'4'" name="sequence"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
<field name="type">lead</field>
|
||||
</record>
|
||||
|
||||
<record model="crm.case.stage" id="stage_lead5">
|
||||
@@ -37,14 +37,14 @@
|
||||
<field eval="'100'" name="probability"/>
|
||||
<field eval="'5'" name="sequence"/>
|
||||
<field eval="1" name="on_change"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
<field name="type">lead</field>
|
||||
</record>
|
||||
|
||||
<record model="crm.case.stage" id="stage_lead6">
|
||||
<field name="name">Lost</field>
|
||||
<field eval="'0'" name="probability"/>
|
||||
<field eval="'6'" name="sequence"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
<field name="type">lead</field>
|
||||
</record>
|
||||
|
||||
<record model="crm.case.section" id="section_sales_department">
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<field name="domain">['|', ('type','=','lead'), ('type','=',False)]</field>
|
||||
<field name="view_id" ref="crm_case_tree_view_leads"/>
|
||||
<field name="search_view_id" ref="crm.view_crm_case_leads_filter"/>
|
||||
<field name="context">{'search_default_current':1, 'default_type': 'lead', 'search_default_section_id': section_id}</field>
|
||||
<field name="context">{'search_default_current':1, 'default_type': 'lead', 'search_default_section_id': section_id, 'stage_type': 'lead'}</field>
|
||||
<field name="help">'Leads' allows you to manage and keep track of all first potential interests of a partner in one of your products or services. A lead is a first, unqualified, contact with a prospect or customer. After being qualified, a lead can be converted into a business opportunity with the creation of the related partner for further detailed tracking of any linked activities. You can use leads when you import a database of prospects or to integrate your website's contact form with OpenERP.</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
<field name="res_model">crm.case.stage</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="crm.crm_case_stage_tree"/>
|
||||
<field name="domain">[('object_id.model', '=', 'crm.lead')]</field>
|
||||
<field name="context">{'object_id':'crm.lead'}</field>
|
||||
<field name="domain">[('type', '=', 'lead')]</field>
|
||||
<field name="context">{'type':'lead'}</field>
|
||||
<field name="help">Create specific stages that will help your sales better organise their sales pipeline by maintaining them to their leads and sales opportunities. It will allow them to easily track how is positioned a specific lead or opportunity in the sales cycle.</field>
|
||||
</record>
|
||||
|
||||
@@ -57,11 +57,11 @@
|
||||
<newline />
|
||||
<field name="section_id" widget="selection" />
|
||||
<field name="user_id" />
|
||||
<field name="stage_id" domain="[('object_id.model', '=', 'crm.lead'), ('section_ids', '=', section_id)]"/>
|
||||
<field name="stage_id" domain="[('type','=','lead'),('section_ids', '=', section_id)]"/>
|
||||
<group col="2" colspan="1">
|
||||
<button name="stage_previous" string=""
|
||||
states="open,pending,draft" type="object"
|
||||
icon="gtk-go-back" />
|
||||
icon="gtk-go-back" context="{'stage_type': 'lead'}"/>
|
||||
<button name="stage_next" string=""
|
||||
states="open,pending,draft" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
@@ -329,7 +329,7 @@
|
||||
<newline/>
|
||||
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<field name="stage_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/>
|
||||
<field name="stage_id" widget="selection" domain="[('type', '=', 'lead')]"/>
|
||||
<field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="country_id" context="{'invisible_country': False}">
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
<field name="rrule_type" string="Recurrency"
|
||||
colspan="1" attrs="{'readonly':[('recurrent_uid','!=',False)]}"/>
|
||||
<button string="Edit All"
|
||||
help="Edit all Ourrences of recurrent Meeting"
|
||||
help="Edit all Occurrences of recurrent Meeting"
|
||||
attrs="{'invisible':[('rrule_type','in', ('none', False))]}"
|
||||
name="open_meeting" icon="gtk-edit"
|
||||
type="object" />
|
||||
|
||||
@@ -50,7 +50,9 @@ class crm_opportunity(osv.osv):
|
||||
'date_deadline': fields.date('Expected Closing'),
|
||||
'date_action': fields.date('Next Action Date'),
|
||||
'title_action': fields.char('Next Action', size=64),
|
||||
'stage_id': fields.many2one('crm.case.stage', 'Stage', domain="[('type','=','opportunity')]"),
|
||||
}
|
||||
|
||||
def case_close(self, cr, uid, ids, *args):
|
||||
"""Overrides close for crm_case for setting probability and close date
|
||||
@param self: The object pointer
|
||||
@@ -100,7 +102,7 @@ class crm_opportunity(osv.osv):
|
||||
message = _("The opportunity '%s' has been marked as lost.") % name
|
||||
self.log(cr, uid, id, message)
|
||||
return res
|
||||
|
||||
|
||||
def case_cancel(self, cr, uid, ids, *args):
|
||||
"""Overrides cancel for crm_case for setting probability
|
||||
@param self: The object pointer
|
||||
|
||||
@@ -1,56 +1,109 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<record model="crm.case.categ" id="categ_oppor1">
|
||||
<field name="name">Interest in Computer</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.categ" id="categ_oppor2">
|
||||
<field name="name">Interest in Accessories</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.categ" id="categ_oppor3">
|
||||
<field name="name">Need Services</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.categ" id="categ_oppor4">
|
||||
<field name="name">Need Information</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.categ" id="categ_oppor5">
|
||||
<field name="name">Need a Website Design</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.categ" id="categ_oppor6">
|
||||
<field name="name">Potential Reseller</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.categ" id="categ_oppor7">
|
||||
<field name="name">Need Consulting</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.categ" id="categ_oppor8">
|
||||
<field name="name">Other</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
</record>
|
||||
|
||||
<!-- CASE STATUS(stage_id) -->
|
||||
|
||||
<record model="crm.case.stage" id="stage_opportunity6">
|
||||
<field name="name">Lost</field>
|
||||
<field eval="'0'" name="probability"/>
|
||||
<field eval="'0'" name="sequence"/>
|
||||
<field name="type">opportunity</field>
|
||||
</record>
|
||||
|
||||
<record model="crm.case.stage" id="stage_opportunity1">
|
||||
<field name="name">New</field>
|
||||
<field eval="'10'" name="probability"/>
|
||||
<field eval="'1'" name="sequence"/>
|
||||
<field name="type">opportunity</field>
|
||||
</record>
|
||||
|
||||
<record model="crm.case.stage" id="stage_opportunity2">
|
||||
<field name="name">Qualification</field>
|
||||
<field eval="'20'" name="probability"/>
|
||||
<field eval="'2'" name="sequence"/>
|
||||
<field name="type">opportunity</field>
|
||||
</record>
|
||||
|
||||
<record model="crm.case.stage" id="stage_opportunity3">
|
||||
<field name="name">Proposition</field>
|
||||
<field eval="'40'" name="probability"/>
|
||||
<field eval="'3'" name="sequence"/>
|
||||
<field name="type">opportunity</field>
|
||||
</record>
|
||||
|
||||
<record model="crm.case.stage" id="stage_opportunity4">
|
||||
<field name="name">Negotiation</field>
|
||||
<field eval="'60'" name="probability"/>
|
||||
<field eval="'4'" name="sequence"/>
|
||||
<field name="type">opportunity</field>
|
||||
</record>
|
||||
|
||||
<record model="crm.case.stage" id="stage_opportunity5">
|
||||
<field name="name">Won</field>
|
||||
<field eval="'100'" name="probability"/>
|
||||
<field eval="'5'" name="sequence"/>
|
||||
<field eval="1" name="on_change"/>
|
||||
<field name="type">opportunity</field>
|
||||
</record>
|
||||
|
||||
<record model="crm.case.section" id="section_sales_department">
|
||||
<field name="name">Sales Department</field>
|
||||
<field name="code">Sales</field>
|
||||
<field name="stage_ids" eval="[(4, ref('stage_opportunity1')), (4, ref('stage_opportunity2')), (4, ref('stage_opportunity3')), (4, ref('stage_opportunity4')), (4, ref('stage_opportunity5')), (4, ref('stage_opportunity6'))]"/>
|
||||
</record>
|
||||
|
||||
<!-- CASE CATEGORY(categ_id) -->
|
||||
<record model="crm.case.categ" id="categ_oppor1">
|
||||
<field name="name">Interest in Computer</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.categ" id="categ_oppor2">
|
||||
<field name="name">Interest in Accessories</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.categ" id="categ_oppor3">
|
||||
<field name="name">Need Services</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.categ" id="categ_oppor4">
|
||||
<field name="name">Need Information</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.categ" id="categ_oppor5">
|
||||
<field name="name">Need a Website Design</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.categ" id="categ_oppor6">
|
||||
<field name="name">Potential Reseller</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.categ" id="categ_oppor7">
|
||||
<field name="name">Need Consulting</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.categ" id="categ_oppor8">
|
||||
<field name="name">Other</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
</record>
|
||||
|
||||
<!-- Case Resource(type_id) -->
|
||||
<record model="crm.case.resource.type" id="type_oppor1">
|
||||
<field name="name">Campaign 2</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
</record>
|
||||
<record model="crm.case.resource.type" id="type_oppor2">
|
||||
<field name="name">Campaign 1</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
</record>
|
||||
<record model="crm.case.resource.type" id="type_oppor1">
|
||||
<field name="name">Campaign 2</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
</record>
|
||||
<record model="crm.case.resource.type" id="type_oppor2">
|
||||
<field name="name">Campaign 1</field>
|
||||
<field name="section_id" ref="section_sales_department"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<field eval="85000.0" name="planned_revenue"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor1"/>
|
||||
<field name="stage_id" ref="crm.stage_lead3"/>
|
||||
<field name="stage_id" ref="crm.stage_opportunity3"/>
|
||||
<field eval=""CONS TRUST (AZ) 529701 - 1000 units"" name="name"/>
|
||||
</record>
|
||||
<record id="crm_case_rdroundfundingunits0" model="crm.lead">
|
||||
@@ -36,7 +36,7 @@
|
||||
<field eval="50" name="probability"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor5"/>
|
||||
<field name="stage_id" ref="crm.stage_lead1"/>
|
||||
<field name="stage_id" ref="crm.stage_opportunity1"/>
|
||||
<field eval=""3rd Round Funding - 1000 units "" name="name"/>
|
||||
</record>
|
||||
<record id="crm_case_mediapoleunits0" model="crm.lead">
|
||||
@@ -53,7 +53,7 @@
|
||||
<field eval="70" name="probability"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor7"/>
|
||||
<field name="stage_id" ref="crm.stage_lead5"/>
|
||||
<field name="stage_id" ref="crm.stage_opportunity5"/>
|
||||
<field eval=""Mediapole - 5000 units"" name="name"/>
|
||||
<field eval=""info@mycompany.net"" name="email_from"/>
|
||||
</record>
|
||||
@@ -70,7 +70,7 @@
|
||||
<field eval="45000.0" name="planned_revenue"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor5"/>
|
||||
<field name="stage_id" ref="crm.stage_lead4"/>
|
||||
<field name="stage_id" ref="crm.stage_opportunity4"/>
|
||||
<field eval=""ABC FUEL CO 829264 - 1000 units "" name="name"/>
|
||||
<field eval=""info@opensides.be"" name="email_from"/>
|
||||
</record>
|
||||
@@ -86,7 +86,7 @@
|
||||
<field eval="42000.0" name="planned_revenue"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor2"/>
|
||||
<field name="stage_id" ref="crm.stage_lead6"/>
|
||||
<field name="stage_id" ref="crm.stage_opportunity6"/>
|
||||
<field eval=""Dirt Mining Ltd 271742 - 1000 units"" name="name"/>
|
||||
</record>
|
||||
</data>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<field name="res_model">crm.lead</field>
|
||||
<field name="view_mode">tree,form,graph,calendar</field>
|
||||
<field name="domain">[('type','=','opportunity')]</field>
|
||||
<field name="context">{'search_default_user_id':uid,'search_default_current':1, 'search_default_section_id':section_id,'default_type': 'opportunity'}</field>
|
||||
<field name="context">{'search_default_user_id':uid,'search_default_current':1, 'search_default_section_id':section_id, 'stage_type': 'opportunity'}</field>
|
||||
<field name="view_id" ref="crm_case_tree_view_oppor"/>
|
||||
<field name="search_view_id" ref="crm.view_crm_case_opportunities_filter"/>
|
||||
<field name="help">Opportunities allows you to manage and keep track of your sales pipeline by creating specific customer or prospect related sales documents in order to follow up potential sales. Information such as the expected revenue, opportunity stage, expected closing date, communication history and so on can be maintained in them. Opportunities can be connected with the email gateway: new emails create opportunities, each of them automatically gets the history of the conversation with the customer.
|
||||
|
||||
@@ -1,6 +1,21 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="crm_opportunity_stage_act" model="ir.actions.act_window">
|
||||
<field name="name">Stages</field>
|
||||
<field name="res_model">crm.case.stage</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="crm.crm_case_stage_tree"/>
|
||||
<field name="domain">[('type', '=', 'opportunity')]</field>
|
||||
<field name="context">{'type':'opportunity'}</field>
|
||||
<field name="help">Create specific stages that will help your sales better organise their sales pipeline by maintaining them to their sales opportunities. It will allow them to easily track how is positioned a specific opportunity in the sales cycle.</field>
|
||||
</record>
|
||||
|
||||
<menuitem action="crm_opportunity_stage_act" id="menu_crm_opportunity_stage_act" name="Stages"
|
||||
groups="base.group_extended" sequence="0"
|
||||
parent="base.menu_crm_config_opportunity" />
|
||||
|
||||
<!-- Opportunities Form View -->
|
||||
<record model="ir.ui.view" id="crm_case_form_view_oppor">
|
||||
<field name="name">Opportunities</field>
|
||||
@@ -15,12 +30,12 @@
|
||||
<group colspan="1" col="4">
|
||||
<field name="stage_id" nolabel="1"
|
||||
on_change="onchange_stage_id(stage_id)"
|
||||
domain="[('object_id.model', '=', 'crm.lead'), ('section_ids', '=', section_id)]"/>
|
||||
domain="[('type','=','opportunity'),('section_ids', '=', section_id)]"/>
|
||||
<button name="stage_previous"
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-go-back" string="" />
|
||||
<button name="stage_next" states="draft,open,pending"
|
||||
type="object" icon="gtk-go-forward" string="" />
|
||||
type="object" icon="gtk-go-forward" string="" context="{'stage_type': 'opportunity'}"/>
|
||||
</group>
|
||||
<field name="user_id"/>
|
||||
|
||||
@@ -303,7 +318,7 @@
|
||||
</field>
|
||||
<newline/>
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<field name="stage_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/>
|
||||
<field name="stage_id" widget="selection" domain="[('type', '=', 'opportunity')]"/>
|
||||
<field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="country_id" context="{'invisible_country': False}">
|
||||
|
||||
@@ -7,6 +7,9 @@
|
||||
|
||||
<menuitem id="base.menu_crm_config_lead" name="Leads & Opportunities"
|
||||
parent="base.menu_base_config" sequence="1" groups="base.group_sale_manager"/>
|
||||
|
||||
<menuitem id="base.menu_crm_config_opportunity" name="Opportunities"
|
||||
parent="base.menu_base_config" sequence="1" groups="base.group_sale_manager"/>
|
||||
|
||||
<menuitem id="base.menu_sale_config_sales" name="Sales"
|
||||
parent="base.menu_base_config" sequence="0" groups="base.group_sale_manager"/>
|
||||
@@ -119,7 +122,7 @@
|
||||
<form string="Stage">
|
||||
<separator string="Stage Definition" colspan="4"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="object_id" invisible="1" />
|
||||
<field name="type" invisible="1" />
|
||||
<field name="sequence"/>
|
||||
<field name="probability"/>
|
||||
<field name="on_change"/>
|
||||
|
||||
@@ -63,7 +63,7 @@ class crm_lead_report(osv.osv):
|
||||
'probable_revenue': fields.float('Probable Revenue', digits=(16,2),readonly=True),
|
||||
'categ_id': fields.many2one('crm.case.categ', 'Category',\
|
||||
domain="['|',('section_id','=',False),('section_id','=',section_id)]" , readonly=True),
|
||||
'stage_id': fields.many2one ('crm.case.stage', 'Stage', readonly=True, domain="('object_id.model', '=', 'crm.lead')]"),
|
||||
'stage_id': fields.many2one ('crm.case.stage', 'Stage', readonly=True, domain="('type', '=', 'lead')]"),
|
||||
'partner_id': fields.many2one('res.partner', 'Partner' , readonly=True),
|
||||
'opening_date': fields.date('Opening Date', readonly=True),
|
||||
'creation_date': fields.date('Creation Date', readonly=True),
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<field name="partner_id"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="stage_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]" />
|
||||
<field name="stage_id" widget="selection" domain="[('type', '=', 'lead')]" />
|
||||
<field name="categ_id" widget="selection"/>
|
||||
<field name="type_id" widget="selection"/>
|
||||
<field name="channel_id" widget="selection"/>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
partner_address_id: base.res_partner_address_1
|
||||
partner_id: base.res_partner_9
|
||||
probability: 1.0
|
||||
stage_id: crm.stage_lead1
|
||||
stage_id: crm.stage_opportunity1
|
||||
categ_id: crm.categ_oppor2
|
||||
section_id: crm.section_sales_department
|
||||
|
||||
|
||||
@@ -70,6 +70,7 @@ class crm_lead2opportunity(osv.osv_memory):
|
||||
cr, uid, opportunity_view_tree, context=context).res_id
|
||||
|
||||
lead = leads.browse(cr, uid, record_id, context=context)
|
||||
stage_ids = self.pool.get('crm.case.stage').search(cr, uid, [('type','=','opportunity'),('sequence','>=',1)])
|
||||
|
||||
for this in self.browse(cr, uid, ids, context=context):
|
||||
vals ={
|
||||
@@ -78,7 +79,8 @@ class crm_lead2opportunity(osv.osv_memory):
|
||||
'name': this.name,
|
||||
'partner_id': this.partner_id.id,
|
||||
'user_id': (this.partner_id.user_id and this.partner_id.user_id.id) or (lead.user_id and lead.user_id.id),
|
||||
'type': 'opportunity'
|
||||
'type': 'opportunity',
|
||||
'stage_id': stage_ids and stage_ids[0] or False
|
||||
}
|
||||
lead.write(vals, context=context)
|
||||
leads.history(cr, uid, [lead], _('Opportunity'), details='Converted to Opportunity', context=context)
|
||||
|
||||
@@ -63,7 +63,7 @@ class crm_claim(crm.crm_case, osv.osv):
|
||||
'email_cc': fields.text('Watchers Emails', size=252, help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"),
|
||||
'email_from': fields.char('Email', size=128, help="These people will receive email."),
|
||||
'partner_phone': fields.char('Phone', size=32),
|
||||
'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="('object_id.model', '=', 'crm.claim')]"),
|
||||
'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('type','=','claim')]"),
|
||||
'cause': fields.text('Root Cause'),
|
||||
'state': fields.selection(crm.AVAILABLE_STATES, 'State', size=16, readonly=True,
|
||||
help='The state is set to \'Draft\', when a case is created.\
|
||||
@@ -72,6 +72,19 @@ class crm_claim(crm.crm_case, osv.osv):
|
||||
\nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
|
||||
'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('model','=',_name)]),
|
||||
}
|
||||
|
||||
def _get_stage_id(self, cr, uid, context=None):
|
||||
"""Finds type of stage according to object.
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
if context is None:
|
||||
context = {}
|
||||
type = context and context.get('stage_type', '')
|
||||
stage_ids = self.pool.get('crm.case.stage').search(cr, uid, [('type','=',type),('sequence','>=',1)])
|
||||
return stage_ids and stage_ids[0] or False
|
||||
|
||||
_defaults = {
|
||||
'user_id': crm.crm_case._get_default_user,
|
||||
@@ -82,7 +95,8 @@ class crm_claim(crm.crm_case, osv.osv):
|
||||
'section_id':crm.crm_case. _get_section,
|
||||
'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.case', context=c),
|
||||
'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0],
|
||||
'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0],
|
||||
'stage_id': _get_stage_id,
|
||||
}
|
||||
|
||||
def onchange_partner_id(self, cr, uid, ids, part, email=False):
|
||||
@@ -119,7 +133,6 @@ class crm_claim(crm.crm_case, osv.osv):
|
||||
address = self.pool.get('res.partner.address').browse(cr, uid, add)
|
||||
return {'value': {'email_from': address.email, 'partner_phone': address.phone, 'partner_mobile': address.mobile}}
|
||||
|
||||
|
||||
crm_claim()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -45,22 +45,22 @@
|
||||
<record model="crm.case.stage" id="stage_claim1">
|
||||
<field name="name">Accepted as Claim</field>
|
||||
<field name="sequence">1</field>
|
||||
<field name="object_id" search="[('model','=','crm.claim')]" model="ir.model"/>
|
||||
<field name="type">claim</field>
|
||||
</record>
|
||||
<record model="crm.case.stage" id="stage_claim5">
|
||||
<field name="name">Actions Defined</field>
|
||||
<field name="sequence">2</field>
|
||||
<field name="object_id" search="[('model','=','crm.claim')]" model="ir.model"/>
|
||||
<field name="type">claim</field>
|
||||
</record>
|
||||
<record model="crm.case.stage" id="stage_claim2">
|
||||
<field name="name">Actions Done</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="object_id" search="[('model','=','crm.claim')]" model="ir.model"/>
|
||||
<field name="type">claim</field>
|
||||
</record>
|
||||
<record model="crm.case.stage" id="stage_claim3">
|
||||
<field name="name">Won't fix</field>
|
||||
<field name="sequence">11</field>
|
||||
<field name="object_id" search="[('model','=','crm.claim')]" model="ir.model"/>
|
||||
<field name="type">claim</field>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,calendar,form,graph</field>
|
||||
<field name="view_id" ref="crm_case_claims_tree_view"/>
|
||||
<field name="context">{'search_default_section_id': section_id, "search_default_current":1,"search_default_user_id":uid}</field>
|
||||
<field name="context">{'search_default_section_id': section_id, "search_default_current":1,"search_default_user_id":uid, "stage_type":'claim'}</field>
|
||||
<field name="search_view_id" ref="crm_claim.view_crm_case_claims_filter"/>
|
||||
<field name="help">Record and track your customers' claims. Claims can be linked to a sales order or a lot. You can send emails with attachments and get the history of everything that happened on a specific claim (emails sent, interventions type and so on..). Claims can be automatically linked to an email address using the mail gateway module.</field>
|
||||
</record>
|
||||
|
||||
@@ -29,8 +29,8 @@
|
||||
<field name="res_model">crm.case.stage</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="crm.crm_case_stage_tree"/>
|
||||
<field name="domain">[('object_id.model', '=', 'crm.claim')]</field>
|
||||
<field name="context">{'object_id':'crm.claim'}</field>
|
||||
<field name="domain">[('type', '=', 'claim')]</field>
|
||||
<field name="context">{'type':'claim'}</field>
|
||||
<field name="help">You can create claim stages to categorize the status of every claim entered in the system. The stages define all the steps required for the resolution of a claim.</field>
|
||||
</record>
|
||||
|
||||
@@ -78,8 +78,7 @@
|
||||
<field name="user_id"/>
|
||||
<field name="priority"/>
|
||||
<group colspan="2" col="4">
|
||||
<field name="stage_id"
|
||||
domain="[('object_id.model', '=', 'crm.claim'), ('section_ids', '=', section_id)]" />
|
||||
<field name="stage_id" domain="[('type','=','claim')]"/>
|
||||
<button name="stage_previous" string="" type="object" icon="gtk-go-back" />
|
||||
<button icon="gtk-go-forward" string="" name="stage_next" type="object"/>
|
||||
</group>
|
||||
|
||||
@@ -62,7 +62,7 @@ class crm_claim_report(osv.osv):
|
||||
'create_date': fields.datetime('Create Date', readonly=True),
|
||||
'day': fields.char('Day', size=128, readonly=True),
|
||||
'delay_close': fields.float('Delay to close', digits=(16,2),readonly=True, group_operator="avg",help="Number of Days to close the case"),
|
||||
'stage_id': fields.many2one ('crm.case.stage', 'Stage', readonly=True),
|
||||
'stage_id': fields.many2one ('crm.case.stage', 'Stage', readonly=True, domain="[('type','=','claim')]"),
|
||||
'categ_id': fields.many2one('crm.case.categ', 'Category',\
|
||||
domain="[('section_id','=',section_id),\
|
||||
('object_id.model', '=', 'crm.claim')]", readonly=True),
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
<separator orientation="vertical"/>
|
||||
<field name="partner_id"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="stage_id" widget="selection" domain="[('object_id.model', '=', 'crm.claim')]"/>
|
||||
<field name="stage_id" widget="selection" domain="[('type', '=', 'claim')]"/>
|
||||
<field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.claim')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="priority" />
|
||||
|
||||
@@ -61,7 +61,7 @@ class crm_fundraising(crm.crm_case, osv.osv):
|
||||
'partner_name2': fields.char('Employee Email', size=64),
|
||||
'partner_phone': fields.char('Phone', size=32),
|
||||
'partner_mobile': fields.char('Mobile', size=32),
|
||||
'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="('object_id.model', '=', 'crm.fundraising')]"),
|
||||
'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('type', '=', 'fundraising')]"),
|
||||
'type_id': fields.many2one('crm.case.resource.type', 'Campaign', \
|
||||
domain="[('section_id','=',section_id)]"),
|
||||
'duration': fields.float('Duration'),
|
||||
|
||||
@@ -29,8 +29,8 @@
|
||||
<field name="res_model">crm.case.stage</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="crm.crm_case_stage_tree"/>
|
||||
<field name="domain">[('object_id.model', '=', 'crm.fundraising')]</field>
|
||||
<field name="context">{'object_id':'crm.fundraising'}</field>
|
||||
<field name="domain">[('type', '=', 'fundraising')]</field>
|
||||
<field name="context">{'type':'fundraising'}</field>
|
||||
<field name="help">Create and manage fund raising activity categories you want to be maintained in the system.</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ class crm_lead_report_assign(osv.osv):
|
||||
'probable_revenue': fields.float('Probable Revenue', digits=(16,2),readonly=True),
|
||||
'categ_id': fields.many2one('crm.case.categ', 'Category',\
|
||||
domain="[('section_id','=',section_id)]" , readonly=True),
|
||||
'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="('object_id.model', '=', 'crm.lead')]"),
|
||||
'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="('type', '=', 'lead')]"),
|
||||
'partner_id': fields.many2one('res.partner', 'Customer' , readonly=True),
|
||||
'opening_date': fields.date('Opening Date', readonly=True),
|
||||
'creation_date': fields.date('Creation Date', readonly=True),
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<field name="partner_id"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="stage_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]" />
|
||||
<field name="stage_id" widget="selection" domain="[('type', '=', 'opportunity')]" />
|
||||
<field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
||||
|
||||
@@ -170,7 +170,7 @@ class email_server(osv.osv):
|
||||
result, data = imap_server.fetch(num, '(RFC822)')
|
||||
res_id = email_tool.process_email(cr, user, server.object_id.model, data[0][1], attach=server.attach, context=context)
|
||||
if res_id and server.action_id:
|
||||
action_pool.run(cr, uid, [server.action_id.id], {'active_id': res_id, 'active_ids':[res_id]})
|
||||
action_pool.run(cr, user, [server.action_id.id], {'active_id': res_id, 'active_ids':[res_id]})
|
||||
|
||||
imap_server.store(num, '+FLAGS', '\\Seen')
|
||||
count += 1
|
||||
@@ -187,7 +187,7 @@ class email_server(osv.osv):
|
||||
msg = '\n'.join(msges)
|
||||
res_id = email_tool.process_email(cr, user, server.object_id.model, msg, attach=server.attach, context=context)
|
||||
if res_id and server.action_id:
|
||||
action_pool.run(cr, uid, [server.action_id.id], {'active_id': res_id, 'active_ids':[res_id]})
|
||||
action_pool.run(cr, user, [server.action_id.id], {'active_id': res_id, 'active_ids':[res_id]})
|
||||
|
||||
pop_server.dele(num)
|
||||
|
||||
|
||||
@@ -3,101 +3,104 @@
|
||||
<!DOCTYPE window SYSTEM "chrome://openerp_plugin/locale/create.dtd">
|
||||
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
title="&title.label;" onload="myPrefObserver.createContact();" height="460" width="860">
|
||||
title="&title.label;" onload="myPrefObserver.createContact();" height="415" width="720">
|
||||
<script type="text/javascript" src="chrome://openerp_plugin/content/tiny_xmlrpc.js"></script>
|
||||
<script type="text/javascript" src="chrome://openerp_plugin/content/config.js"></script>
|
||||
<script type="text/javascript" src="chrome://openerp_plugin/content/loaddata.js"></script>
|
||||
<script type="text/javascript" src="chrome://openerp_plugin/content/static.js"></script>
|
||||
<script type="text/javascript" src="chrome://openerp_plugin/content/overlay.js"></script>
|
||||
<tabpanel id="contact">
|
||||
<groupbox id="contact" style="border:1px solid black">
|
||||
<separator class="groove-thin" orient="horizontal" width="94"/>
|
||||
<hbox>
|
||||
<label align="right" id="partner" value="&selectpartner.value;" width="97" />
|
||||
<textbox id="txtselectpartner" readonly="true" value="" width="270"/>
|
||||
<button label="&bsearch.label;" oncommand="Select.onMenuItemCommand(event);" image="&imagesearch.value;"/>
|
||||
<button label="Create Partner" image="&imagecreate.value;" oncommand="CreatePartner.onMenuItemCommand(event);"/>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label align="right" id="name" value="&name.value;" width="80" />
|
||||
<textbox id="txtname" align="right" width="270"/>
|
||||
</hbox>
|
||||
<separator class="groove-thin" orient="horizontal" width="94"/>
|
||||
</groupbox>
|
||||
</tabpanel>
|
||||
<separator class="groove-thin" orient="horizontal" width="94"/>
|
||||
<tabpanel id="address">
|
||||
<groupbox id="address" style="border:1px solid black">
|
||||
<hbox>
|
||||
<caption label="&postaladdress.value;" />
|
||||
</hbox>
|
||||
<separator class="groove-thin" orient="horizontal" width="94"/>
|
||||
<hbox>
|
||||
<label align="right" id="street" value="&street.value;" width="97" />
|
||||
<textbox id="txtstreet" width="270" align="right"/>
|
||||
<spacer width="33"/>
|
||||
</hbox>
|
||||
<groupbox id="contact" >
|
||||
<separator class="groove-thin" orient="horizontal" width="94"/>
|
||||
<hbox>
|
||||
<label align="right" id="partner" value="&selectpartner.value;" width="97" />
|
||||
<textbox id="txtselectpartner" readonly="true" value="" width="270"/>
|
||||
<button label="&bsearch.label;" oncommand="Select.onMenuItemCommand(event);" image="&imagesearch.value;"/>
|
||||
<button label="Create Partner" image="&imagecreate.value;" oncommand="CreatePartner.onMenuItemCommand(event);"/>
|
||||
</hbox>
|
||||
|
||||
<hbox>
|
||||
<label align="right" id="street2" value="&street2.value;" width="97" />
|
||||
<textbox id="txtstreet2" width="270" align="right"/>
|
||||
<spacer width="35"/>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label align="right" id="zip" value="&zip.value;" width="97" />
|
||||
<textbox id="txtzip" align="right" />
|
||||
<spacer width="114"/>
|
||||
</hbox>
|
||||
<separator class="groove-thin" orient="horizontal" width="80"/>
|
||||
</groupbox>
|
||||
</tabpanel>
|
||||
<tabpanel id="address">
|
||||
|
||||
<groupbox id="address" style="border:1px solid black">
|
||||
<hbox>
|
||||
<caption label="&postaladdress.value;" />
|
||||
</hbox>
|
||||
<separator class="groove-thin" orient="horizontal" width="94"/>
|
||||
<hbox>
|
||||
<label align="right" id="name" value="&name.value;" width="97" />
|
||||
<textbox id="txtname" align="right" />
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label align="right" id="street" value="&street.value;" width="97" />
|
||||
<textbox id="txtstreet" align="right"/>
|
||||
<spacer width="33"/>
|
||||
</hbox>
|
||||
|
||||
<hbox>
|
||||
<label align="right" id="city" value="&city.value;" width="97"/>
|
||||
<textbox id="txtcity" align="right" />
|
||||
<spacer width="112"/>
|
||||
</hbox>
|
||||
|
||||
<hbox>
|
||||
<label align="right" id="countryname" value="&country.value;" width="97" />
|
||||
<menulist id="country" width="190" oncommand= "getAllState();" >
|
||||
<menupopup>
|
||||
<menuitem label="" value=""/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label align="right" id="street2" value="&street2.value;" width="97" />
|
||||
<textbox id="txtstreet2" align="right"/>
|
||||
<spacer width="33"/>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label align="right" id="zip" value="&zip.value;" width="97" />
|
||||
<textbox id="txtzip" align="right" />
|
||||
<spacer width="33"/>
|
||||
</hbox>
|
||||
|
||||
<hbox>
|
||||
<label align="right" id="statename" value="&state.value;" width="97" />
|
||||
<menulist id="state" width="190">
|
||||
<menupopup>
|
||||
<menuitem label="" value=""/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
</hbox>
|
||||
<separator class="groove-thin" orient="horizontal" width="94"/>
|
||||
</groupbox>
|
||||
<groupbox id="communication" style="border:1px solid black">
|
||||
<vbox>
|
||||
<caption label="&communication.value;" />
|
||||
</vbox>
|
||||
<separator class="groove-thin" orient="horizontal" width="94"/>
|
||||
<hbox>
|
||||
<label align="right" id="office" value="&office.value;" width="97" />
|
||||
<textbox id="txtoffice" align="right" />
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label align="right" id="mobile" value="&mobile.value;" width="97" />
|
||||
<textbox id="txtmobile" align="right"/>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label align="right" id="fax" value="&fax.value;" width="97" />
|
||||
<textbox id="txtfax" align="right" />
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label align="right" id="emailid" value="&email.value;" width="97" />
|
||||
<textbox id="txtemail" width="280" align="right"/>
|
||||
</hbox>
|
||||
</groupbox>
|
||||
</tabpanel>
|
||||
<description></description>
|
||||
<hbox>
|
||||
<label align="right" id="city" value="&city.value;" width="97"/>
|
||||
<textbox id="txtcity" align="right" />
|
||||
<spacer width="33"/>
|
||||
</hbox>
|
||||
|
||||
<hbox>
|
||||
<label align="right" id="countryname" value="&country.value;" width="97" />
|
||||
<menulist id="country" width="190" oncommand= "getAllState();" >
|
||||
<menupopup>
|
||||
<menuitem label="" value=""/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
</hbox>
|
||||
|
||||
<hbox>
|
||||
<label align="right" id="statename" value="&state.value;" width="97" />
|
||||
<menulist id="state" width="190">
|
||||
<menupopup>
|
||||
<menuitem label="" value=""/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
</hbox>
|
||||
<separator class="groove-thin" orient="horizontal" width="60"/>
|
||||
</groupbox>
|
||||
|
||||
<groupbox id="communication" style="border:1px solid black">
|
||||
<vbox>
|
||||
<caption label="&communication.value;" />
|
||||
</vbox>
|
||||
<separator class="groove-thin" orient="horizontal" width="94"/>
|
||||
<hbox>
|
||||
<label align="right" id="office" value="&office.value;" width="97" />
|
||||
<textbox id="txtoffice" align="right" />
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label align="right" id="mobile" value="&mobile.value;" width="97" />
|
||||
<textbox id="txtmobile" align="right"/>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label align="right" id="fax" value="&fax.value;" width="97" />
|
||||
<textbox id="txtfax" align="right" />
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label align="right" id="emailid" value="&email.value;" width="97" />
|
||||
<textbox id="txtemail" align="right"/>
|
||||
<spacer width="30"/>
|
||||
</hbox>
|
||||
</groupbox>
|
||||
</tabpanel>
|
||||
<description></description>
|
||||
<hbox align="right">
|
||||
<button label="&cancel.label;" image="&imagecancel.value;" oncommand="close();" />
|
||||
<button label="&ok.label;" image="&imageok.value;" oncommand="createContact();"/>
|
||||
|
||||
@@ -6,185 +6,185 @@ var name = new Array();
|
||||
var test = new Array();
|
||||
|
||||
var MBstrBundleService = Components.classes["@mozilla.org/intl/stringbundle;1"].
|
||||
getService(Components.interfaces.nsIStringBundleService);
|
||||
getService(Components.interfaces.nsIStringBundleService);
|
||||
var mboximportbundle = MBstrBundleService.createBundle("chrome://mboximport/locale/mboximport.properties");
|
||||
//function to get the required details of the selected email
|
||||
|
||||
function check()
|
||||
{
|
||||
setTimeout("createConnection()",5000)
|
||||
if (getconnect_server() == "false")
|
||||
{
|
||||
alert("Please Login To The Database First !")
|
||||
return false;
|
||||
}
|
||||
setTimeout("module_install()", 10000)
|
||||
if (getmodule_install() == "no")
|
||||
{
|
||||
alert("Please install the thunderbird module on your '" + getDbName() +"' database and try again !");
|
||||
return false
|
||||
}
|
||||
if (getconnect_server() == "false")
|
||||
{
|
||||
alert("Please Login To The Database First !")
|
||||
return false;
|
||||
}
|
||||
setTimeout("module_install()", 10000)
|
||||
if (getmodule_install() == "no")
|
||||
{
|
||||
alert("Please install the thunderbird module on your '" + getDbName() +"' database and try again !");
|
||||
return false
|
||||
}
|
||||
if(GetNumSelectedMessages() < 1 || GetNumSelectedMessages() > 1){
|
||||
alert("You must select only one mail to archive");
|
||||
return false
|
||||
}
|
||||
return true
|
||||
alert("You must select only one mail to archive");
|
||||
return false
|
||||
}
|
||||
return true
|
||||
|
||||
}
|
||||
|
||||
function searchmail()
|
||||
{
|
||||
if (check() == false){
|
||||
{
|
||||
if (check() == false){
|
||||
return true
|
||||
}
|
||||
var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
|
||||
var version_obj = prefService.getBranch("extensions.");
|
||||
version_obj.QueryInterface(Components.interfaces.nsIPrefBranch2);
|
||||
version = version_obj.getCharPref("lastAppVersion");
|
||||
version = parseInt(version[0])
|
||||
|
||||
file = getPredefinedFolder(2);
|
||||
|
||||
if (version > 2)
|
||||
{
|
||||
var emlsArray = gFolderDisplay.selectedMessages;
|
||||
}
|
||||
else
|
||||
{
|
||||
var emlsArray = GetSelectedMessages();
|
||||
}
|
||||
var version_obj = prefService.getBranch("extensions.");
|
||||
version_obj.QueryInterface(Components.interfaces.nsIPrefBranch2);
|
||||
version = version_obj.getCharPref("lastAppVersion");
|
||||
version = parseInt(version[0])
|
||||
|
||||
file = getPredefinedFolder(2);
|
||||
|
||||
if (version > 2)
|
||||
{
|
||||
var emlsArray = gFolderDisplay.selectedMessages;
|
||||
}
|
||||
else
|
||||
{
|
||||
var emlsArray = GetSelectedMessages();
|
||||
}
|
||||
|
||||
IETtotal = emlsArray.length;
|
||||
IETexported = 0;
|
||||
var msguri = emlsArray[0];
|
||||
IETtotal = emlsArray.length;
|
||||
IETexported = 0;
|
||||
var msguri = emlsArray[0];
|
||||
|
||||
|
||||
//gives the selected email uri
|
||||
var messageUri= gDBView.URIForFirstSelectedMessage;
|
||||
|
||||
//gives the selected email uri
|
||||
var messageUri= gDBView.URIForFirstSelectedMessage;
|
||||
|
||||
var messenger = Components.classes['@mozilla.org/messenger;1'].createInstance(Components.interfaces.nsIMessenger);
|
||||
var messenger = Components.classes['@mozilla.org/messenger;1'].createInstance(Components.interfaces.nsIMessenger);
|
||||
|
||||
//gives the selected email object
|
||||
var message = messenger.messageServiceFromURI(messageUri).messageURIToMsgHdr(messageUri);
|
||||
//gives the selected email object
|
||||
var message = messenger.messageServiceFromURI(messageUri).messageURIToMsgHdr(messageUri);
|
||||
|
||||
|
||||
if (version > 2)
|
||||
{
|
||||
m_uri = message.folder.getUriForMsg(message);
|
||||
saveMsgAsEML(m_uri,file,false,emlsArray,null);
|
||||
}
|
||||
else
|
||||
{
|
||||
saveMsgAsEML(msguri,file,false,emlsArray,null);
|
||||
}
|
||||
if (version > 2)
|
||||
{
|
||||
m_uri = message.folder.getUriForMsg(message);
|
||||
saveMsgAsEML(m_uri,file,false,emlsArray,null);
|
||||
}
|
||||
else
|
||||
{
|
||||
saveMsgAsEML(msguri,file,false,emlsArray,null);
|
||||
}
|
||||
|
||||
//gives the received email date
|
||||
var stdate = new Date(message.date / 1000);
|
||||
//gives the received email date
|
||||
var stdate = new Date(message.date / 1000);
|
||||
|
||||
//functionality to split the author name and email
|
||||
if(message.author.charAt(0) == '"'){
|
||||
sendername = message.author.split('"')[1].split('"')[0];
|
||||
}
|
||||
else if(message.author.indexOf('<')!=-1){
|
||||
sendername = message.author.split('<')[0];
|
||||
}
|
||||
else{
|
||||
sendername = message.author;
|
||||
}
|
||||
if(message.author.indexOf('<')!=-1){
|
||||
senderemail = message.author.split('<')[1].split('>')[0];
|
||||
}
|
||||
else{
|
||||
senderemail = message.author
|
||||
}
|
||||
//functionality to split the author name and email
|
||||
if(message.author.charAt(0) == '"'){
|
||||
sendername = message.author.split('"')[1].split('"')[0];
|
||||
}
|
||||
else if(message.author.indexOf('<')!=-1){
|
||||
sendername = message.author.split('<')[0];
|
||||
}
|
||||
else{
|
||||
sendername = message.author;
|
||||
}
|
||||
if(message.author.indexOf('<')!=-1){
|
||||
senderemail = message.author.split('<')[1].split('>')[0];
|
||||
}
|
||||
else{
|
||||
senderemail = message.author
|
||||
}
|
||||
|
||||
//gives the receiver email address
|
||||
receiveremail = message.mime2DecodedRecipients;
|
||||
//gives the receiver email address
|
||||
receiveremail = message.mime2DecodedRecipients;
|
||||
|
||||
//parsing the received date in the particular format
|
||||
receivedDate = stdate.getFullYear()+'/'+(stdate.getMonth()+1)+'/'+stdate.getDate();
|
||||
//parsing the received date in the particular format
|
||||
receivedDate = stdate.getFullYear()+'/'+(stdate.getMonth()+1)+'/'+stdate.getDate();
|
||||
|
||||
//gives the selected email subject
|
||||
subject = message.subject;
|
||||
//gives the selected email subject
|
||||
subject = message.subject;
|
||||
|
||||
//gives the selected email cclist
|
||||
cclist = message.ccList;
|
||||
//gives the selected email cclist
|
||||
cclist = message.ccList;
|
||||
|
||||
//gives the selected email message body in text format
|
||||
if (version > 2)
|
||||
{
|
||||
var listener = Components.classes["@mozilla.org/network/sync-stream-listener;1"].createInstance(Components.interfaces.nsISyncStreamListener);
|
||||
var uri = message.folder.getUriForMsg(message);
|
||||
messenger.messageServiceFromURI(uri)
|
||||
.streamMessage(uri, listener, null, null, false, "");
|
||||
var folder = message.folder;
|
||||
messagebody = folder.getMsgTextFromStream(listener.inputStream,message.Charset,65536,32768,false,true,{})
|
||||
}
|
||||
else
|
||||
{
|
||||
messagebody = getMessageBrowser().docShell.contentViewer.DOMDocument.body.textContent;
|
||||
}
|
||||
//gives the selected email message body in html format
|
||||
msghtmlbody = ""// getMessageBrowser().docShell.contentViewer.DOMDocument.body.innerHTML;
|
||||
//gives the selected email message body in text format
|
||||
if (version > 2)
|
||||
{
|
||||
var listener = Components.classes["@mozilla.org/network/sync-stream-listener;1"].createInstance(Components.interfaces.nsISyncStreamListener);
|
||||
var uri = message.folder.getUriForMsg(message);
|
||||
messenger.messageServiceFromURI(uri)
|
||||
.streamMessage(uri, listener, null, null, false, "");
|
||||
var folder = message.folder;
|
||||
messagebody = folder.getMsgTextFromStream(listener.inputStream,message.Charset,65536,32768,false,true,{})
|
||||
}
|
||||
else
|
||||
{
|
||||
messagebody = getMessageBrowser().docShell.contentViewer.DOMDocument.body.textContent;
|
||||
}
|
||||
//gives the selected email message body in html format
|
||||
msghtmlbody = ""// getMessageBrowser().docShell.contentViewer.DOMDocument.body.innerHTML;
|
||||
|
||||
//set the initial information for the selected email
|
||||
setSenderEmail(senderemail);
|
||||
setSenderName(sendername);
|
||||
setReceiverEmail(receiveremail);
|
||||
setSubject(subject);
|
||||
setReceivedDate(receivedDate);
|
||||
setCCList(cclist);
|
||||
setMessageBody(messagebody);
|
||||
getPref().setCharPref('displayName','');
|
||||
getPref().setCharPref('attachmentdata','');
|
||||
name = [];
|
||||
test = [];
|
||||
getPref().setCharPref('attachmentlength',currentAttachments.length);
|
||||
//retrieving the information for the selected email's attachment
|
||||
if(currentAttachments.length > 0){
|
||||
for(i=0;i<currentAttachments.length;i++){
|
||||
contentType[i] = currentAttachments[i].contentType;
|
||||
uri = currentAttachments[i].uri;
|
||||
url[i] = currentAttachments[i].url;
|
||||
name[i] = currentAttachments[i].displayName;
|
||||
var obj = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
|
||||
if(navigator.userAgent.indexOf('Linux')!= -1){
|
||||
obj.initWithPath("/tmp/");
|
||||
}
|
||||
else if(navigator.userAgent.indexOf('Win')!= -1){
|
||||
obj.initWithPath("c:\\");
|
||||
}
|
||||
else if(navigator.userAgent.indexOf('Mac OS X')!= -1){
|
||||
obj.initWithPath("/tmp/");
|
||||
}
|
||||
else{
|
||||
alert("Not Compatible for this Operating System");
|
||||
false();
|
||||
}
|
||||
//saving the attachment files in system's temp folder
|
||||
test[i] = messenger.saveAttachmentToFolder(contentType[i],url[i],name[i],uri,obj);
|
||||
}
|
||||
//function to read the attachment file contents
|
||||
att =getAttachValue()
|
||||
window.open("chrome://openerp_plugin/content/plugin.xul", "", "chrome, resizable=yes");
|
||||
createInstance(name,test)
|
||||
//set the initial information for the selected email
|
||||
setSenderEmail(senderemail);
|
||||
setSenderName(sendername);
|
||||
setReceiverEmail(receiveremail);
|
||||
setSubject(subject);
|
||||
setReceivedDate(receivedDate);
|
||||
setCCList(cclist);
|
||||
setMessageBody(messagebody);
|
||||
getPref().setCharPref('displayName','');
|
||||
getPref().setCharPref('attachmentdata','');
|
||||
name = [];
|
||||
test = [];
|
||||
getPref().setCharPref('attachmentlength',currentAttachments.length);
|
||||
//retrieving the information for the selected email's attachment
|
||||
if(currentAttachments.length > 0){
|
||||
for(i=0;i<currentAttachments.length;i++){
|
||||
contentType[i] = currentAttachments[i].contentType;
|
||||
uri = currentAttachments[i].uri;
|
||||
url[i] = currentAttachments[i].url;
|
||||
name[i] = currentAttachments[i].displayName;
|
||||
var obj = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
|
||||
if(navigator.userAgent.indexOf('Linux')!= -1){
|
||||
obj.initWithPath("/tmp/");
|
||||
}
|
||||
else if(navigator.userAgent.indexOf('Win')!= -1){
|
||||
obj.initWithPath("c:\\");
|
||||
}
|
||||
else if(navigator.userAgent.indexOf('Mac OS X')!= -1){
|
||||
obj.initWithPath("/tmp/");
|
||||
}
|
||||
else{
|
||||
alert("Not Compatible for this Operating System");
|
||||
false();
|
||||
}
|
||||
//saving the attachment files in system's temp folder
|
||||
test[i] = messenger.saveAttachmentToFolder(contentType[i],url[i],name[i],uri,obj);
|
||||
}
|
||||
//function to read the attachment file contents
|
||||
att =getAttachValue()
|
||||
window.open("chrome://openerp_plugin/content/plugin.xul", "", "chrome, resizable=yes");
|
||||
createInstance(name,test)
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
window.open("chrome://openerp_plugin/content/plugin.xul", "", "chrome, resizable=yes");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
window.open("chrome://openerp_plugin/content/plugin.xul", "", "chrome, resizable=yes");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
var openPartnerHandler = {
|
||||
onResult: function(client, context, result) {
|
||||
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
|
||||
onResult: function(client, context, result) {
|
||||
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
|
||||
// var sendername = getSenderEmail();
|
||||
var arrIdList = result.QueryInterface(Components.interfaces.nsISupportsArray);
|
||||
var count = arrIdList.Count();
|
||||
for (i = 0; i < count; i++) {
|
||||
var strlResult = arrIdList.QueryElementAt(i, Components.interfaces.nsISupportsArray);
|
||||
var arrIdList = result.QueryInterface(Components.interfaces.nsISupportsArray);
|
||||
var count = arrIdList.Count();
|
||||
for (var i = 0; i < count; i++) {
|
||||
var strlResult = arrIdList.QueryElementAt(i, Components.interfaces.nsISupportsArray);
|
||||
var strlSearchResult = strlResult.QueryElementAt(0, Components.interfaces.nsISupportsCString);
|
||||
var strlSearchResultValue = strlResult.QueryElementAt(1, Components.interfaces.nsISupportsCString);
|
||||
if(strlSearchResult=="email" && strlSearchResultValue=='')
|
||||
@@ -192,246 +192,286 @@ var openPartnerHandler = {
|
||||
alert("Partner is not Available.");
|
||||
return;
|
||||
}
|
||||
if(strlSearchResult=="partner_id"){
|
||||
partner_id = strlSearchResultValue;
|
||||
weburl = getWebServerURL();
|
||||
|
||||
if (parseInt(partner_id) > 0){
|
||||
var t = weburl + "/openerp/form/view?model=res.partner&id="+partner_id;
|
||||
window.open(t, "", "chrome","resizable=yes,scrollbars=yes,status=yes");
|
||||
|
||||
if(strlSearchResult=="partner_id"){
|
||||
partner_id = strlSearchResultValue;
|
||||
weburl = getWebServerURL();
|
||||
|
||||
if (parseInt(partner_id) > 0){
|
||||
//Encode the url and form an url to have menu in webclient
|
||||
var encoded = encodeURIComponent("/openerp/form/view?model=res.partner&id="+partner_id)
|
||||
var t = weburl + "?next=" + encoded
|
||||
var messenger = Components.classes["@mozilla.org/messenger;1"].createInstance();
|
||||
messenger = messenger.QueryInterface(Components.interfaces.nsIMessenger);
|
||||
messenger.launchExternalURL(t);
|
||||
}
|
||||
else{
|
||||
alert("Partner is not Available.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
onFault: function (client, ctxt, fault) {
|
||||
}
|
||||
},
|
||||
onFault: function (client, ctxt, fault) {
|
||||
|
||||
},
|
||||
},
|
||||
|
||||
onError: function (client, ctxt, status, errorMsg) {
|
||||
onError: function (client, ctxt, status, errorMsg) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function searchPartner(email)
|
||||
{
|
||||
var branchobj = getPref();
|
||||
setServerService('xmlrpc/object');
|
||||
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
|
||||
arrFinalList = [];
|
||||
var xmlRpcClient = getXmlRpc();
|
||||
var strDbName = xmlRpcClient.createType(xmlRpcClient.STRING,{});
|
||||
strDbName.data = branchobj.getCharPref("serverdbname");
|
||||
var struid = xmlRpcClient.createType(xmlRpcClient.INT,{});
|
||||
struid.data = branchobj.getIntPref('userid');
|
||||
var strpass = xmlRpcClient.createType(xmlRpcClient.STRING,{});
|
||||
strpass.data = branchobj.getCharPref("password");
|
||||
var branchobj = getPref();
|
||||
setServerService('xmlrpc/object');
|
||||
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
|
||||
arrFinalList = [];
|
||||
var xmlRpcClient = getXmlRpc();
|
||||
var strDbName = xmlRpcClient.createType(xmlRpcClient.STRING,{});
|
||||
strDbName.data = branchobj.getCharPref("serverdbname");
|
||||
var struid = xmlRpcClient.createType(xmlRpcClient.INT,{});
|
||||
struid.data = branchobj.getIntPref('userid');
|
||||
var strpass = xmlRpcClient.createType(xmlRpcClient.STRING,{});
|
||||
strpass.data = branchobj.getCharPref("password");
|
||||
var strobj = xmlRpcClient.createType(xmlRpcClient.STRING,{});
|
||||
strobj.data = 'thunderbird.partner';
|
||||
var strmethod = xmlRpcClient.createType(xmlRpcClient.STRING,{});
|
||||
strmethod.data = 'search_contact';
|
||||
var strname = xmlRpcClient.createType(xmlRpcClient.STRING,{});
|
||||
strname.data = email;
|
||||
xmlRpcClient.asyncCall(openPartnerHandler,null,'execute',[ strDbName,struid,strpass,strobj,strmethod,strname ],6);
|
||||
strobj.data = 'thunderbird.partner';
|
||||
var strmethod = xmlRpcClient.createType(xmlRpcClient.STRING,{});
|
||||
strmethod.data = 'search_contact';
|
||||
var strname = xmlRpcClient.createType(xmlRpcClient.STRING,{});
|
||||
strname.data = email;
|
||||
xmlRpcClient.asyncCall(openPartnerHandler,null,'execute',[ strDbName,struid,strpass,strobj,strmethod,strname ],6);
|
||||
}
|
||||
|
||||
|
||||
function open_partner()
|
||||
{
|
||||
if (check() == false){
|
||||
return true
|
||||
}
|
||||
var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
|
||||
var version_obj = prefService.getBranch("extensions.");
|
||||
version_obj.QueryInterface(Components.interfaces.nsIPrefBranch2);
|
||||
version = version_obj.getCharPref("lastAppVersion");
|
||||
version = parseInt(version[0])
|
||||
|
||||
file = getPredefinedFolder(2);
|
||||
|
||||
if (version > 2)
|
||||
{
|
||||
var emlsArray = gFolderDisplay.selectedMessages;
|
||||
}
|
||||
else
|
||||
{
|
||||
var emlsArray = GetSelectedMessages();
|
||||
}
|
||||
var version_obj = prefService.getBranch("extensions.");
|
||||
version_obj.QueryInterface(Components.interfaces.nsIPrefBranch2);
|
||||
version = version_obj.getCharPref("lastAppVersion");
|
||||
version = parseInt(version[0])
|
||||
|
||||
file = getPredefinedFolder(2);
|
||||
|
||||
if (version > 2)
|
||||
{
|
||||
var emlsArray = gFolderDisplay.selectedMessages;
|
||||
}
|
||||
else
|
||||
{
|
||||
var emlsArray = GetSelectedMessages();
|
||||
}
|
||||
|
||||
IETtotal = emlsArray.length;
|
||||
IETexported = 0;
|
||||
var msguri = emlsArray[0];
|
||||
IETtotal = emlsArray.length;
|
||||
IETexported = 0;
|
||||
var msguri = emlsArray[0];
|
||||
|
||||
|
||||
//gives the selected email uri
|
||||
var messageUri= gDBView.URIForFirstSelectedMessage;
|
||||
|
||||
//gives the selected email uri
|
||||
var messageUri= gDBView.URIForFirstSelectedMessage;
|
||||
|
||||
|
||||
var messenger = Components.classes['@mozilla.org/messenger;1'].createInstance(Components.interfaces.nsIMessenger);
|
||||
var messenger = Components.classes['@mozilla.org/messenger;1'].createInstance(Components.interfaces.nsIMessenger);
|
||||
|
||||
//gives the selected email object
|
||||
var message = messenger.messageServiceFromURI(messageUri).messageURIToMsgHdr(messageUri);
|
||||
//gives the selected email object
|
||||
var message = messenger.messageServiceFromURI(messageUri).messageURIToMsgHdr(messageUri);
|
||||
|
||||
//functionality to split the author name and email
|
||||
if(message.author.charAt(0) == '"'){
|
||||
sendername = message.author.split('"')[1].split('"')[0];
|
||||
}
|
||||
else if(message.author.indexOf('<')!=-1){
|
||||
sendername = message.author.split('<')[0];
|
||||
}
|
||||
else{
|
||||
sendername = message.author;
|
||||
}
|
||||
if(message.author.indexOf('<')!=-1){
|
||||
senderemail = message.author.split('<')[1].split('>')[0];
|
||||
}
|
||||
else{
|
||||
senderemail = message.author
|
||||
}
|
||||
//functionality to split the author name and email
|
||||
if(message.author.charAt(0) == '"'){
|
||||
sendername = message.author.split('"')[1].split('"')[0];
|
||||
}
|
||||
else if(message.author.indexOf('<')!=-1){
|
||||
sendername = message.author.split('<')[0];
|
||||
}
|
||||
else{
|
||||
sendername = message.author;
|
||||
}
|
||||
if(message.author.indexOf('<')!=-1){
|
||||
senderemail = message.author.split('<')[1].split('>')[0];
|
||||
}
|
||||
else{
|
||||
senderemail = message.author
|
||||
}
|
||||
searchPartner(senderemail);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
var listDocumentHandler = {
|
||||
onResult: function(client, context, result) {
|
||||
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
|
||||
var res = result.QueryInterface(Components.interfaces.nsISupportsArray);
|
||||
res_id = res.QueryElementAt(1, Components.interfaces.nsISupportsPRInt32);
|
||||
model = res.QueryElementAt(0, Components.interfaces.nsISupportsCString);
|
||||
weburl = getWebServerURL();
|
||||
if(res_id==0)
|
||||
{
|
||||
alert("Document is not available.");
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
var t = weburl + "/openerp/form/view?model=" + model +"&id=" + res_id;
|
||||
window.open(t, "", "chrome","resizable=yes,scrollbars=yes,status=yes,");
|
||||
}
|
||||
|
||||
},
|
||||
onFault: function (client, ctxt, fault) {
|
||||
onResult: function(client, context, result) {
|
||||
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
|
||||
var res = result.QueryInterface(Components.interfaces.nsISupportsArray);
|
||||
res_id = res.QueryElementAt(1, Components.interfaces.nsISupportsPRInt32);
|
||||
model = res.QueryElementAt(0, Components.interfaces.nsISupportsCString);
|
||||
weburl = getWebServerURL();
|
||||
if(res_id==0)
|
||||
{
|
||||
alert("Document is not available.");
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
var encoded = encodeURIComponent("/openerp/form/view?model=" + model +"&id=" + res_id)
|
||||
var t = weburl + "?next=" + encoded
|
||||
var messenger = Components.classes["@mozilla.org/messenger;1"].createInstance();
|
||||
messenger = messenger.QueryInterface(Components.interfaces.nsIMessenger);
|
||||
messenger.launchExternalURL(t);
|
||||
}
|
||||
|
||||
},
|
||||
},
|
||||
onFault: function (client, ctxt, fault) {
|
||||
|
||||
onError: function (client, ctxt, status, errorMsg) {
|
||||
},
|
||||
|
||||
}
|
||||
onError: function (client, ctxt, status, errorMsg) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//function to archive the mail content through xmlrpc request
|
||||
function parse_eml(){
|
||||
var fpath =""
|
||||
if(navigator.userAgent.indexOf('Linux')!= -1){
|
||||
fpath ="/tmp/"
|
||||
}
|
||||
else if(navigator.userAgent.indexOf('Win')!= -1){
|
||||
fpath ="C:\\"
|
||||
}
|
||||
else if(navigator.userAgent.indexOf('Mac OS X')!= -1){
|
||||
fpath ="/tmp/"
|
||||
}
|
||||
name = fpath + getPref().getCharPref('fname') +".eml"
|
||||
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
|
||||
file.initWithPath( name );
|
||||
if ( file.exists() == false ) {
|
||||
return null;
|
||||
} else {
|
||||
var is = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance( Components.interfaces.nsIFileInputStream );
|
||||
is.init( file,0x01, 00004, null);
|
||||
var sis = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance( Components.interfaces.nsIScriptableInputStream );
|
||||
sis.init( is );
|
||||
var output = sis.read( sis.available() );
|
||||
return output
|
||||
}
|
||||
|
||||
}
|
||||
function open_document()
|
||||
{
|
||||
{
|
||||
if (check() == false){
|
||||
return true
|
||||
}
|
||||
}
|
||||
var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
|
||||
var version_obj = prefService.getBranch("extensions.");
|
||||
version_obj.QueryInterface(Components.interfaces.nsIPrefBranch2);
|
||||
version = version_obj.getCharPref("lastAppVersion");
|
||||
version = parseInt(version[0])
|
||||
|
||||
file = getPredefinedFolder(2);
|
||||
|
||||
if (version > 2)
|
||||
{
|
||||
var emlsArray = gFolderDisplay.selectedMessages;
|
||||
}
|
||||
else
|
||||
{
|
||||
var emlsArray = GetSelectedMessages();
|
||||
}
|
||||
|
||||
IETtotal = emlsArray.length;
|
||||
IETexported = 0;
|
||||
var msguri = emlsArray[0];
|
||||
|
||||
var version_obj = prefService.getBranch("extensions.");
|
||||
version_obj.QueryInterface(Components.interfaces.nsIPrefBranch2);
|
||||
version = version_obj.getCharPref("lastAppVersion");
|
||||
version = parseInt(version[0])
|
||||
file = getPredefinedFolder(2);
|
||||
if (version > 2)
|
||||
{
|
||||
var emlsArray = gFolderDisplay.selectedMessages;
|
||||
}
|
||||
else
|
||||
{
|
||||
var emlsArray = GetSelectedMessages();
|
||||
}
|
||||
IETtotal = emlsArray.length;
|
||||
IETexported = 0;
|
||||
var msguri = emlsArray[0];
|
||||
//gives the selected email uri
|
||||
var messageUri= gDBView.URIForFirstSelectedMessage;
|
||||
var messageUri= gDBView.URIForFirstSelectedMessage;
|
||||
var messenger = Components.classes['@mozilla.org/messenger;1'].createInstance(Components.interfaces.nsIMessenger);
|
||||
//gives the selected email object
|
||||
var message = messenger.messageServiceFromURI(messageUri).messageURIToMsgHdr(messageUri);
|
||||
if (version > 2)
|
||||
{
|
||||
m_uri = message.folder.getUriForMsg(message);
|
||||
saveMsgAsEML(m_uri,file,false,emlsArray,null);
|
||||
}
|
||||
else
|
||||
{
|
||||
saveMsgAsEML(msguri,file,false,emlsArray,null);
|
||||
}
|
||||
//gives the received email date
|
||||
var stdate = new Date(message.date / 1000);
|
||||
var branchobj = getPref();
|
||||
setServerService('xmlrpc/object');
|
||||
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
|
||||
var xmlRpcClient = getXmlRpc();
|
||||
var strDbName = xmlRpcClient.createType(xmlRpcClient.STRING,{});
|
||||
strDbName.data = branchobj.getCharPref("serverdbname");
|
||||
var struids = xmlRpcClient.createType(xmlRpcClient.INT,{});
|
||||
struids.data = branchobj.getIntPref('userid');
|
||||
var strpass = xmlRpcClient.createType(xmlRpcClient.STRING,{});
|
||||
strpass.data = branchobj.getCharPref("password");
|
||||
var strmethod = xmlRpcClient.createType(xmlRpcClient.STRING,{});
|
||||
strmethod.data = 'search_message';
|
||||
var strobj = xmlRpcClient.createType(xmlRpcClient.STRING,{});
|
||||
strobj.data = 'thunderbird.partner';
|
||||
var eml_string = parse_eml()
|
||||
var a = ['message'];
|
||||
var b = [eml_string];
|
||||
var arrofarr = dictcontact(a,b);
|
||||
xmlRpcClient.asyncCall(listDocumentHandler,null,'execute',[strDbName,struids,strpass,strobj,strmethod,arrofarr],6);
|
||||
}
|
||||
|
||||
var messenger = Components.classes['@mozilla.org/messenger;1'].createInstance(Components.interfaces.nsIMessenger);
|
||||
|
||||
//gives the selected email object
|
||||
var message = messenger.messageServiceFromURI(messageUri).messageURIToMsgHdr(messageUri);
|
||||
|
||||
|
||||
var branchobj = getPref();
|
||||
setServerService('xmlrpc/object');
|
||||
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
|
||||
var xmlRpcClient = getXmlRpc();
|
||||
var strDbName = xmlRpcClient.createType(xmlRpcClient.STRING,{});
|
||||
strDbName.data = branchobj.getCharPref("serverdbname");
|
||||
var struids = xmlRpcClient.createType(xmlRpcClient.INT,{});
|
||||
struids.data = branchobj.getIntPref('userid');
|
||||
var strpass = xmlRpcClient.createType(xmlRpcClient.STRING,{});
|
||||
strpass.data = branchobj.getCharPref("password");
|
||||
var strmethod = xmlRpcClient.createType(xmlRpcClient.STRING,{});
|
||||
strmethod.data = 'search_message';
|
||||
var strobj = xmlRpcClient.createType(xmlRpcClient.STRING,{});
|
||||
strobj.data = 'thunderbird.partner';
|
||||
var a = ['message_id'];
|
||||
var b = ['<'+message.messageId+'>'];
|
||||
var arrofarr = dictcontact(a,b);
|
||||
xmlRpcClient.asyncCall(listDocumentHandler,null,'execute',[strDbName,struids,strpass,strobj,strmethod,arrofarr],6);
|
||||
}
|
||||
|
||||
function open_contact()
|
||||
{
|
||||
if (check() == false){
|
||||
{
|
||||
if (check() == false){
|
||||
return true
|
||||
}
|
||||
|
||||
var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
|
||||
var version_obj = prefService.getBranch("extensions.");
|
||||
version_obj.QueryInterface(Components.interfaces.nsIPrefBranch2);
|
||||
version = version_obj.getCharPref("lastAppVersion");
|
||||
version = parseInt(version[0])
|
||||
|
||||
file = getPredefinedFolder(2);
|
||||
|
||||
if (version > 2)
|
||||
{
|
||||
var emlsArray = gFolderDisplay.selectedMessages;
|
||||
}
|
||||
else
|
||||
{
|
||||
var emlsArray = GetSelectedMessages();
|
||||
}
|
||||
var version_obj = prefService.getBranch("extensions.");
|
||||
version_obj.QueryInterface(Components.interfaces.nsIPrefBranch2);
|
||||
version = version_obj.getCharPref("lastAppVersion");
|
||||
version = parseInt(version[0])
|
||||
|
||||
file = getPredefinedFolder(2);
|
||||
|
||||
if (version > 2)
|
||||
{
|
||||
var emlsArray = gFolderDisplay.selectedMessages;
|
||||
}
|
||||
else
|
||||
{
|
||||
var emlsArray = GetSelectedMessages();
|
||||
}
|
||||
|
||||
IETtotal = emlsArray.length;
|
||||
IETexported = 0;
|
||||
var msguri = emlsArray[0];
|
||||
IETtotal = emlsArray.length;
|
||||
IETexported = 0;
|
||||
var msguri = emlsArray[0];
|
||||
|
||||
|
||||
//gives the selected email uri
|
||||
var messageUri= gDBView.URIForFirstSelectedMessage;
|
||||
|
||||
//gives the selected email uri
|
||||
var messageUri= gDBView.URIForFirstSelectedMessage;
|
||||
|
||||
var messenger = Components.classes['@mozilla.org/messenger;1'].createInstance(Components.interfaces.nsIMessenger);
|
||||
var messenger = Components.classes['@mozilla.org/messenger;1'].createInstance(Components.interfaces.nsIMessenger);
|
||||
|
||||
//gives the selected email object
|
||||
var message = messenger.messageServiceFromURI(messageUri).messageURIToMsgHdr(messageUri);
|
||||
//gives the selected email object
|
||||
var message = messenger.messageServiceFromURI(messageUri).messageURIToMsgHdr(messageUri);
|
||||
|
||||
//functionality to split the author name and email
|
||||
if(message.author.charAt(0) == '"'){
|
||||
sendername = message.author.split('"')[1].split('"')[0];
|
||||
}
|
||||
else if(message.author.indexOf('<')!=-1){
|
||||
sendername = message.author.split('<')[0];
|
||||
}
|
||||
else{
|
||||
sendername = message.author;
|
||||
}
|
||||
if(message.author.indexOf('<')!=-1){
|
||||
senderemail = message.author.split('<')[1].split('>')[0];
|
||||
}
|
||||
else{
|
||||
senderemail = message.author
|
||||
}
|
||||
//functionality to split the author name and email
|
||||
if(message.author.charAt(0) == '"'){
|
||||
sendername = message.author.split('"')[1].split('"')[0];
|
||||
}
|
||||
else if(message.author.indexOf('<')!=-1){
|
||||
sendername = message.author.split('<')[0];
|
||||
}
|
||||
else{
|
||||
sendername = message.author;
|
||||
}
|
||||
if(message.author.indexOf('<')!=-1){
|
||||
senderemail = message.author.split('<')[1].split('>')[0];
|
||||
}
|
||||
else{
|
||||
senderemail = message.author
|
||||
}
|
||||
|
||||
//set the initial information for the selected email
|
||||
//set the initial information for the selected email
|
||||
setSenderEmail(senderemail);
|
||||
setSenderName(sendername);
|
||||
setPartnerName("");
|
||||
@@ -461,61 +501,61 @@ window.addEventListener("load", function(e) { Config.onLoad(e); }, false);
|
||||
|
||||
//function to open the plugin window for searching the records for a particular object
|
||||
var Plugin = {
|
||||
onLoad: function() {
|
||||
this.initialized = true;
|
||||
},
|
||||
onLoad: function() {
|
||||
this.initialized = true;
|
||||
},
|
||||
|
||||
onMenuItemCommand: function() {
|
||||
window.open("chrome://openerp_plugin/content/plugin.xul", "", "chrome, resizable=yes");
|
||||
}
|
||||
onMenuItemCommand: function() {
|
||||
window.open("chrome://openerp_plugin/content/plugin.xul", "", "chrome, resizable=yes");
|
||||
}
|
||||
};
|
||||
window.addEventListener("load", function(e) { Plugin.onLoad(e); }, false);
|
||||
|
||||
//function to open the window for creating a new partner contact
|
||||
var Create = {
|
||||
onLoad: function(){
|
||||
this.initialized=true;
|
||||
},
|
||||
onLoad: function(){
|
||||
this.initialized=true;
|
||||
},
|
||||
|
||||
onMenuItemCommand: function(){
|
||||
window.open("chrome://openerp_plugin/content/create.xul", "", "chrome");
|
||||
}
|
||||
onMenuItemCommand: function(){
|
||||
window.open("chrome://openerp_plugin/content/create.xul", "", "chrome");
|
||||
}
|
||||
};
|
||||
window.addEventListener("load", function(e) { Create.onLoad(e); }, false);
|
||||
|
||||
var Address = {
|
||||
onLoad: function(){
|
||||
this.initialized=true;
|
||||
},
|
||||
onLoad: function(){
|
||||
this.initialized=true;
|
||||
},
|
||||
|
||||
onMenuItemCommand: function(){
|
||||
open_contact();
|
||||
onMenuItemCommand: function(){
|
||||
open_contact();
|
||||
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
//function to open the window for selecting the partner for a new contact creation
|
||||
var Select = {
|
||||
onLoad: function(){
|
||||
this.initialized=true;
|
||||
},
|
||||
onLoad: function(){
|
||||
this.initialized=true;
|
||||
},
|
||||
|
||||
onMenuItemCommand: function(){
|
||||
// document.getElementById("txtselectpartner").value="";
|
||||
window.open("chrome://openerp_plugin/content/selectpartner.xul", "", "chrome");
|
||||
onMenuItemCommand: function(){
|
||||
// document.getElementById("txtselectpartner").value="";
|
||||
window.open("chrome://openerp_plugin/content/selectpartner.xul", "", "chrome");
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
var CreatePartner = {
|
||||
onLoad: function(){
|
||||
this.initialized=true;
|
||||
},
|
||||
onLoad: function(){
|
||||
this.initialized=true;
|
||||
},
|
||||
|
||||
onMenuItemCommand: function(){
|
||||
window.open("chrome://openerp_plugin/content/createpartner.xul", "", "chrome");
|
||||
}
|
||||
onMenuItemCommand: function(){
|
||||
window.open("chrome://openerp_plugin/content/createpartner.xul", "", "chrome");
|
||||
}
|
||||
};
|
||||
window.addEventListener("load", function(e) { CreatePartner.onLoad(e); }, false);
|
||||
|
||||
|
||||
@@ -8,54 +8,89 @@
|
||||
<script type="text/javascript" src="chrome://openerp_plugin/content/overlay.js"></script>
|
||||
<script type="text/javascript" src="chrome://openerp_plugin/content/exportTools.js"></script>
|
||||
|
||||
<menupopup id="taskPopup">
|
||||
<menuitem id="tiny-plugin2" label="&tinyplugin;"
|
||||
oncommand="Config.onMenuItemCommand(event);"
|
||||
image="&menuicon.value;"
|
||||
class="menuitem-iconic"
|
||||
tooltiptext="&pluginconfig.value;"/>
|
||||
</menupopup>
|
||||
<menubar id="mail-menubar" >
|
||||
<menu insertafter="messageMenu" id="menu_openerp" label="&openerpMenu.label;" accesskey="&openerpMenu.accesskey;">
|
||||
<menupopup id="taskPopup">
|
||||
<menuitem id="tiny-plugin3" label="&tinyplugin;"
|
||||
oncommand="Config.onMenuItemCommand(event);"
|
||||
image="&menuicon.settings;"
|
||||
class="menuitem-iconic"
|
||||
tooltiptext="&pluginconfig.value;"
|
||||
/>
|
||||
<menuseparator/>
|
||||
<menuitem id="tiny-plugin4" label="&tinypluginconfig;"
|
||||
oncommand="searchmail();"
|
||||
image="&menuicon.value;"
|
||||
class="menuitem-iconic"
|
||||
tooltiptext="&pluginconfigvalue.value;"
|
||||
/>
|
||||
<menuseparator/>
|
||||
<menuitem id="tiny-openpartner" label="&openpartner.value;"
|
||||
oncommand="open_partner();"
|
||||
image="&menuicon.value;"
|
||||
class="menuitem-iconic"
|
||||
tooltiptext="&openpartnertooltip.value;"
|
||||
/>
|
||||
|
||||
<menupopup id="taskPopup">
|
||||
<menuitem id="tiny-plugin1" label="&tinypluginconfig;"
|
||||
oncommand="searchmail();"
|
||||
image="&menuicon.value;"
|
||||
class="menuitem-iconic"
|
||||
tooltiptext="&pluginconfigvalue.value;"/>
|
||||
</menupopup>
|
||||
<menuitem id="tiny-opendocument" label="&opendocument.value;"
|
||||
oncommand="open_document();"
|
||||
image="&menuicon.value;"
|
||||
class="menuitem-iconic"
|
||||
tooltiptext="&opendocumenttooltip.value;"
|
||||
/>
|
||||
|
||||
</menupopup>
|
||||
</menu>
|
||||
</menubar>
|
||||
|
||||
<!--<menupopup id="taskPopup">-->
|
||||
<!-- <menuitem id="tiny-plugin2" label="&tinyplugin;"-->
|
||||
<!-- oncommand="Config.onMenuItemCommand(event);"-->
|
||||
<!-- image="&menuicon.value;"-->
|
||||
<!-- class="menuitem-iconic"-->
|
||||
<!-- tooltiptext="&pluginconfig.value;"/>-->
|
||||
<!--</menupopup>-->
|
||||
|
||||
<!--<menupopup id="taskPopup">-->
|
||||
<!-- <menuitem id="tiny-plugin1" label="&tinypluginconfig;"-->
|
||||
<!-- oncommand="searchmail();"-->
|
||||
<!-- image="&menuicon.value;"-->
|
||||
<!-- class="menuitem-iconic"-->
|
||||
<!-- tooltiptext="&pluginconfigvalue.value;"/>-->
|
||||
<!--</menupopup>-->
|
||||
|
||||
<popup id="threadPaneContext">
|
||||
<menuitem id="threadPaneContext-saveAsMultiple"
|
||||
insertbefore="threadPaneContext-print"
|
||||
class="menuitem-iconic"
|
||||
image="&menuicon.value;"
|
||||
label="Archive To OpenERP"
|
||||
accesskey="T"
|
||||
oncommand="searchmail();"/>
|
||||
<menuitem id="threadPaneContext-saveAsMultiple"
|
||||
insertbefore="threadPaneContext-print"
|
||||
class="menuitem-iconic"
|
||||
image="&menuicon.value;"
|
||||
label="Archive To OpenERP"
|
||||
accesskey="T"
|
||||
oncommand="searchmail();"/>
|
||||
</popup>
|
||||
|
||||
<toolbarpalette id="MailToolbarPalette">
|
||||
<toolbarbutton id="GA-button"
|
||||
class="toolbarbutton-1"
|
||||
image="&menuicon.value;"
|
||||
label= "Push To OpenERP"
|
||||
oncommand="searchmail();" />
|
||||
<toolbarbutton id="GA-button"
|
||||
class="toolbarbutton-1"
|
||||
image="&menuicon.value;"
|
||||
label= "Push"
|
||||
oncommand="searchmail();" />
|
||||
</toolbarpalette>
|
||||
|
||||
<toolbarpalette id="MailToolbarPalette">
|
||||
<toolbarbutton id="GA-button2"
|
||||
class="toolbarbutton-1"
|
||||
image="&partnericon.value;"
|
||||
label= "Open Partner"
|
||||
<toolbarbutton id="GA-button2"
|
||||
class="toolbarbutton-1"
|
||||
image="&partnericon.value;"
|
||||
label= "Partner"
|
||||
oncommand="open_partner();"
|
||||
/>
|
||||
/>
|
||||
</toolbarpalette>
|
||||
<toolbarpalette id="MailToolbarPalette">
|
||||
<toolbarbutton id="GA-button3"
|
||||
class="toolbarbutton-1"
|
||||
image="&imagearchive.value;"
|
||||
label= "Open Document"
|
||||
oncommand="open_document();" />
|
||||
<toolbarbutton id="GA-button3"
|
||||
class="toolbarbutton-1"
|
||||
image="&imagearchive.value;"
|
||||
label= "Document"
|
||||
oncommand="open_document();" />
|
||||
</toolbarpalette>
|
||||
|
||||
|
||||
</overlay>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<!DOCTYPE window SYSTEM "chrome://openerp_plugin/locale/plugin.dtd">
|
||||
<window id="pluginwindows" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
title="&title.label;" onload="myPrefObserver.loaddata()" height="650" width="1000">
|
||||
title="&title.label;" onload="myPrefObserver.loaddata()" height="560" width="960">
|
||||
|
||||
<script type="text/javascript" src="chrome://openerp_plugin/content/tiny_xmlrpc.js"></script>
|
||||
<script type="text/javascript" src="chrome://openerp_plugin/content/config.js"></script>
|
||||
@@ -12,11 +12,9 @@
|
||||
<script type="text/javascript" src="chrome://openerp_plugin/content/overlay.js"></script>
|
||||
<script type="text/javascript" src="chrome://openerp_plugin/content/exportTools.js"></script>
|
||||
<description></description>
|
||||
<hbox id="root" height="10" width="800" style="padding:12px;border:1px solid black">
|
||||
|
||||
<caption label="&title.label;" />
|
||||
<hbox id="root" height="10" width="800" >
|
||||
</hbox>
|
||||
<hbox id="root1" height="380" width="800" style="padding:12px;border:1px solid black">
|
||||
<hbox id="root1" height="380" width="800" >
|
||||
<vbox>
|
||||
<caption label="&gptinyobj.label;" />
|
||||
<groupbox id="existsobjectgroup" width="400" style="border:1px solid black">
|
||||
@@ -42,6 +40,7 @@
|
||||
<listbox height="250" width="100%" id="listSearchBox" style="border:1px solid red" seltype="multiple">
|
||||
<listhead>
|
||||
<listheader label="&listSearchBox.header;"/>
|
||||
<!-- <listheader label="&listSearchBox.header2;"/>-->
|
||||
</listhead>
|
||||
<listcols>
|
||||
<listcol flex="1"/>
|
||||
@@ -58,42 +57,42 @@
|
||||
|
||||
<vbox>
|
||||
<caption label="&newobject.label;" />
|
||||
<groupbox id="newobjectgroup" width="400" align="left" style="border:1px solid black;">
|
||||
|
||||
<separator class="groove-thin" orient="horizontal" width="400"/>
|
||||
<hbox align="left">
|
||||
<vbox>
|
||||
<label id="lblex3" align="right" width="135" control="section" value="&object.label;"/>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<menulist id="section" width="150">
|
||||
<menupopup>
|
||||
<menuitem label="" value=""/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<button width="50" label="&archive.label;" accesskey="c" image="&imagearchive.value;" oncommand="attachmentWidnowOpen('create');"/>
|
||||
</vbox>
|
||||
</hbox>
|
||||
<groupbox id="newobjectgroup" width="400" align="left" style="border:1px solid black;">
|
||||
<separator class="groove-thin" orient="horizontal" width="400" height="30"/>
|
||||
<hbox align="left">
|
||||
<vbox>
|
||||
<label id="lblex3" align="right" width="135" control="section" value="&object.label;"/>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<menulist id="section" width="150">
|
||||
<menupopup>
|
||||
<menuitem label="" value=""/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<button width="50" label="&archive.label;" accesskey="c" image="&imagearchive.value;" oncommand="attachmentWidnowOpen('create');"/>
|
||||
</vbox>
|
||||
</hbox>
|
||||
<separator class="groove-thin" orient="horizontal" width="180" height="100"/>
|
||||
</groupbox>
|
||||
<caption label="&newcontact.label;" />
|
||||
<groupbox id="newcontactgroup" width="400" align="left" style="border:1px solid black;">
|
||||
<separator class="groove-thin" orient="horizontal" width="400" height="30"/>
|
||||
<hbox align="left">
|
||||
<vbox>
|
||||
<label align="right" width="135" id="lblsection" control="section" value="&partner.label;"/>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<button label="&create.label;" image="&imagecreate.value;" oncommand="Create.onMenuItemCommand(event);"/>
|
||||
</vbox>
|
||||
</hbox>
|
||||
<separator class="groove-thin" orient="horizontal" width="180" height="215"/>
|
||||
</groupbox>
|
||||
|
||||
<separator class="groove-thin" orient="horizontal" width="180"/>
|
||||
|
||||
<hbox align="left">
|
||||
<vbox>
|
||||
<label align="right" width="135" id="lblsection" control="section" value="&partner.label;"/>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<button label="&create.label;" image="&imagecreate.value;" oncommand="Create.onMenuItemCommand(event);"/>
|
||||
</vbox>
|
||||
</hbox>
|
||||
<separator class="groove-thin" orient="horizontal" width="480"/>
|
||||
</groupbox>
|
||||
</vbox>
|
||||
|
||||
|
||||
</hbox>
|
||||
<hbox height="60" align="right" width="800">
|
||||
<button label="&close.label;" accesskey="l" image="&imagecancel.value;" oncommand="win_close();"/>
|
||||
</hbox>
|
||||
</vbox>
|
||||
</hbox>
|
||||
<hbox height="60" align="right" width="800">
|
||||
<button label="&close.label;" accesskey="l" image="&imagecancel.value;" oncommand="win_close();"/>
|
||||
</hbox>
|
||||
</window>
|
||||
|
||||
@@ -1,11 +1,18 @@
|
||||
<!ENTITY tinyplugin "OpenERP Configuration">
|
||||
<!ENTITY tinypluginconfig "Push To OpenERP">
|
||||
<!ENTITY tinyplugin "Configuration">
|
||||
<!ENTITY tinypluginconfig "Push">
|
||||
<!ENTITY tinyarchive "Push to OpenERP">
|
||||
<!ENTITY imageicon.value "chrome://openerp_plugin/skin/NEWT1.png">
|
||||
<!ENTITY menuicon.value "chrome://openerp_plugin/skin/openerp-icon.png">
|
||||
<!ENTITY partnericon.value "chrome://openerp_plugin/skin/partner_icon.png">
|
||||
<!ENTITY imagearchive.value "chrome://openerp_plugin/skin/document-new.png">
|
||||
<!ENTITY imageicon.value "chrome://openerp_plugin/skin/openerp.png">
|
||||
<!ENTITY menuicon.settings "chrome://openerp_plugin/skin/settings.png">
|
||||
<!ENTITY menuicon.value "chrome://openerp_plugin/skin/openerp.png">
|
||||
<!ENTITY partnericon.value "chrome://openerp_plugin/skin/openerp.png">
|
||||
<!ENTITY imagearchive.value "chrome://openerp_plugin/skin/openerp.png">
|
||||
<!ENTITY tooltip.value "Add To Archive">
|
||||
<!ENTITY pluginconfig.value "OpenERP Configuration Settings">
|
||||
<!ENTITY pluginconfigvalue.value "Archieve To OpenERP Settings">
|
||||
<!ENTITY openerpMenu.label "OpenERP">
|
||||
<!ENTITY openerpMenu.accesskey "OE">
|
||||
<!ENTITY openpartner.value "Partner">
|
||||
<!ENTITY openpartnertooltip.value "Click to Open Partner Realted to Sender Eamil address.">
|
||||
<!ENTITY opendocument.value "Document">
|
||||
<!ENTITY opendocumenttooltip.value "Click to See the Mail if it is archived to OpenERP.">
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!ENTITY title.label "Push To OpenERP">
|
||||
<!ENTITY gptinyobj.label "Link to an Existing Document">
|
||||
<!ENTITY newobject.label "New Documents">
|
||||
<!ENTITY newobject.label "Create a New Documents">
|
||||
<!ENTITY document.label "Documents">
|
||||
<!ENTITY bsearch.label "Search">
|
||||
<!ENTITY close.label "Close">
|
||||
@@ -27,3 +27,5 @@
|
||||
<!ENTITY imagearchive.value "chrome://openerp_plugin/skin/Archive.png">
|
||||
<!ENTITY imagecreate.value "chrome://openerp_plugin/skin/Create.png">
|
||||
<!ENTITY gptinyobjexe.label "Documents">
|
||||
<!ENTITY newcontact.label "Create a New Contact">
|
||||
<!ENTITY listSearchBox.header2 "Document Type">
|
||||
|
||||
|
Before Width: | Height: | Size: 789 B |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.1 KiB |