diff options
| author | Quentin (OpenERP) <qdp-launchpad@openerp.com> | 2013-03-18 13:27:17 +0100 |
|---|---|---|
| committer | Quentin (OpenERP) <qdp-launchpad@openerp.com> | 2013-03-18 13:27:17 +0100 |
| commit | 2b64c79c3d19e06261e0dbda7f3f89f7f4637305 (patch) | |
| tree | 97b748e4c3e29fd59a0a6e1c9d616a930b343f51 | |
| parent | 00bb2273d949c71e5540776345cc4faede5c05f4 (diff) | |
| parent | 6643ad24a90c9111360bd505cf273c59290b0d9a (diff) | |
[MERGE] forward port of fixes made in v7 addons branch up to revision 8872
bzr revid: qdp-launchpad@openerp.com-20130318122717-qptmntn26bx4wn8r
| -rw-r--r-- | addons/account/data/account_data.xml | 2 | ||||
| -rw-r--r-- | addons/account/demo/account_demo.xml | 4 | ||||
| -rw-r--r-- | addons/account_analytic_analysis/account_analytic_analysis_view.xml | 2 | ||||
| -rw-r--r-- | addons/account_payment/account_invoice.py | 19 | ||||
| -rw-r--r-- | addons/auth_openid/static/src/css/openid.css | 47 | ||||
| -rw-r--r-- | addons/auth_openid/static/src/js/auth_openid.js | 21 | ||||
| -rw-r--r-- | addons/auth_openid/static/src/xml/auth_openid.xml | 43 | ||||
| -rw-r--r-- | addons/auth_signup/res_users.py | 17 | ||||
| -rw-r--r-- | addons/auth_signup/res_users_view.xml | 17 | ||||
| -rw-r--r-- | addons/auth_signup/static/src/js/auth_signup.js | 2 | ||||
| -rw-r--r-- | addons/auth_signup/static/src/xml/auth_signup.xml | 3 | ||||
| -rw-r--r-- | addons/crm/crm_lead_view.xml | 6 | ||||
| -rw-r--r-- | addons/crm_partner_assign/res_partner_view.xml | 25 | ||||
| -rw-r--r-- | addons/hr_timesheet_sheet/hr_timesheet_sheet.py | 1 | ||||
| -rw-r--r-- | addons/portal_anonymous/portal_anonymous_data.xml | 1 | ||||
| -rw-r--r-- | addons/sale/sale.py | 2 | ||||
| -rw-r--r-- | addons/web_linkedin/static/src/js/linkedin.js | 2 |
17 files changed, 104 insertions, 110 deletions
diff --git a/addons/account/data/account_data.xml b/addons/account/data/account_data.xml index 949d03324f3..9d2e65a3a4c 100644 --- a/addons/account/data/account_data.xml +++ b/addons/account/data/account_data.xml @@ -30,7 +30,6 @@ </record> <record id="account_payment_term_line_15days" model="account.payment.term.line"> - <field name="name">15 Days</field> <field name="value">balance</field> <field eval="15" name="days"/> <field eval="0" name="days2"/> @@ -48,7 +47,6 @@ </record> <record id="account_payment_term_line_net" model="account.payment.term.line"> - <field name="name">30 Net Days</field> <field name="value">balance</field> <field eval="30" name="days"/> <field eval="0" name="days2"/> diff --git a/addons/account/demo/account_demo.xml b/addons/account/demo/account_demo.xml index 6918ad44702..8a450c0b6aa 100644 --- a/addons/account/demo/account_demo.xml +++ b/addons/account/demo/account_demo.xml @@ -135,7 +135,6 @@ <field name="note">30 Days End of Month</field> </record> <record id="account_payment_term_line" model="account.payment.term.line"> - <field name="name">30 Days End of Month</field> <field name="value">balance</field> <field eval="30" name="days"/> <field eval="-1" name="days2"/> @@ -147,16 +146,13 @@ <field name="note">30% Advance End 30 Days</field> </record> <record id="account_payment_term_line_advance1" model="account.payment.term.line"> - <field name="name">30% Advance</field> <field name="value">procent</field> - <field eval="3" name="sequence"/> <field eval="0.300000" name="value_amount"/> <field eval="0" name="days"/> <field eval="0" name="days2"/> <field eval="account_payment_term_advance" name="payment_id"/> </record> <record id="account_payment_term_line_advance2" model="account.payment.term.line"> - <field name="name">Remaining Balance</field> <field name="value">balance</field> <field eval="30" name="days"/> <field eval="-1" name="days2"/> diff --git a/addons/account_analytic_analysis/account_analytic_analysis_view.xml b/addons/account_analytic_analysis/account_analytic_analysis_view.xml index 3c477b5556f..6f670b2c6b9 100644 --- a/addons/account_analytic_analysis/account_analytic_analysis_view.xml +++ b/addons/account_analytic_analysis/account_analytic_analysis_view.xml @@ -276,7 +276,7 @@ <field name="view_type">form</field> <field name="view_mode">tree,form</field> <field name="domain">[('invoice_id','=',False)]</field> - <field name="context">{'search_default_to_invoice': 1, 'search_default_sales': 1}</field> + <field name="context">{'search_default_to_invoice': 1}</field> <field name="search_view_id" ref="account.view_account_analytic_line_filter"/> <field name="help" type="html"> <p> diff --git a/addons/account_payment/account_invoice.py b/addons/account_payment/account_invoice.py index 7c8560fc9e8..916aa07afa0 100644 --- a/addons/account_payment/account_invoice.py +++ b/addons/account_payment/account_invoice.py @@ -43,26 +43,11 @@ class Invoice(osv.osv): raise osv.except_osv(_('Error!'), _("You cannot cancel an invoice which has already been imported in a payment order. Remove it from the following payment order : %s."%(payment_order_name))) return super(Invoice, self).action_cancel(cr, uid, ids, context=context) - def _amount_to_pay(self, cursor, user, ids, name, args, context=None): - '''Return the amount still to pay regarding all the payment orders''' - if not ids: - return {} - res = {} - for invoice in self.browse(cursor, user, ids, context=context): - res[invoice.id] = 0.0 - if invoice.move_id: - for line in invoice.move_id.line_id: - if not line.date_maturity or \ - datetime.strptime(line.date_maturity, '%Y-%m-%d') \ - < datetime.today(): - res[invoice.id] += line.amount_to_pay - return res _columns = { - 'amount_to_pay': fields.function(_amount_to_pay, + 'amount_to_pay': fields.related('residual', type='float', string='Amount to be paid', - help='The amount which should be paid at the current date\n' \ - 'minus the amount which is already in payment order'), + help='The amount which should be paid at the current date. '), } Invoice() diff --git a/addons/auth_openid/static/src/css/openid.css b/addons/auth_openid/static/src/css/openid.css index ab01ffd2f60..57c745f0aca 100644 --- a/addons/auth_openid/static/src/css/openid.css +++ b/addons/auth_openid/static/src/css/openid.css @@ -1,25 +1,15 @@ -.login .pane { - width: 260px; - height: 175px; -} - -.login .pane input[name='openid_url'] { +.oe_login .oe_login_pane input[name='openid_url'] { background: #fff url(../img/login-bg.gif) no-repeat 1px; padding-left: 20px; } -.auth_choice { - position: static; - display: none; +.openerp .oe_login .openid_providers { + text-align: center; } - -.openid_providers { - padding: 0; - list-style: none; - float: right; +.openerp .oe_login .openid_providers ul { + display: inline-block; } - -.openid_providers li { +.openerp .oe_login .openid_providers ul li { display: block; float: left; margin: 0 1px 3px 2px; @@ -29,7 +19,6 @@ display: block; width: 24px; height: 24px; - border: 1px solid #ddd; background: #fff url(../img/openid_16.png) no-repeat 50%; text-indent: -9999px; overflow: hidden; @@ -37,20 +26,16 @@ } .openid_providers a.selected { - border-color: #9A0404; + background-color: #DC5F59; } -.openid_providers a[title="Password"] { background-image: url(../img/textfield_key.png); } -.openid_providers a[title="AOL"] { background-image: url(../img/aol.png); } -.openid_providers a[title="ClaimID"] { background-image: url(../img/claimid.png); } -.openid_providers a[title="Google"] { background-image: url(../img/googlefav.png); } -.openid_providers a[title="Google Apps"] { background-image: url(../img/marketplace.gif); } -.openid_providers a[title="MyOpenID"] { background-image: url(../img/myopenid.png); } -.openid_providers a[title="VeriSign"] { background-image: url(../img/verisign.png); } -.openid_providers a[title="Yahoo!"] { background-image: url(../img/yahoo.png); } -.openid_providers a[title="Launchpad"] { background-image: url(../img/launchpad.png); } - +.openid_providers a[data-provider="Password"] { background-image: url(../img/textfield_key.png); } +.openid_providers a[data-provider="AOL"] { background-image: url(../img/aol.png); } +.openid_providers a[data-provider="ClaimID"] { background-image: url(../img/claimid.png); } +.openid_providers a[data-provider="Google"] { background-image: url(../img/googlefav.png); } +.openid_providers a[data-provider="Google Apps"] { background-image: url(../img/marketplace.gif); } +.openid_providers a[data-provider="MyOpenID"] { background-image: url(../img/myopenid.png); } +.openid_providers a[data-provider="VeriSign"] { background-image: url(../img/verisign.png); } +.openid_providers a[data-provider="Yahoo!"] { background-image: url(../img/yahoo.png); } +.openid_providers a[data-provider="Launchpad"] { background-image: url(../img/launchpad.png); } -li.auth_choice.selected { - display: table-row; -} diff --git a/addons/auth_openid/static/src/js/auth_openid.js b/addons/auth_openid/static/src/js/auth_openid.js index f8615481a40..ac2804cb130 100644 --- a/addons/auth_openid/static/src/js/auth_openid.js +++ b/addons/auth_openid/static/src/js/auth_openid.js @@ -14,6 +14,16 @@ instance.web.Login = instance.web.Login.extend({ self.$openid_selected_input = $(); self.$openid_selected_provider = null; + + // Hook auth_signup events. noop if module is not installed. + self.on('change:login_mode', self, function() { + var mode = self.get('login_mode') || 'default'; + if (mode !== 'default') { + return; + } + self.do_openid_select(self.$openid_selected_button, self.$openid_selected_provider, true); + }); + var openIdProvider = null; if (self.has_local_storage && self.remember_credentials) { @@ -21,12 +31,10 @@ instance.web.Login = instance.web.Login.extend({ } if (openIdProvider) { - $openid_selected_provider = openIdProvider; + self.$openid_selected_provider = openIdProvider; self.do_openid_select('a[href="#' + openIdProvider + '"]', openIdProvider, true); - if (self.has_local_storage && self.remember_credentials) { - self.$openid_selected_input.find('input').val(localStorage.getItem('openid-login')); - } + self.$openid_selected_input.find('input').val(localStorage.getItem('openid-login') || ''); } else { self.do_openid_select('a[data-url=""]', 'login,password', true); @@ -49,11 +57,12 @@ instance.web.Login = instance.web.Login.extend({ do_openid_select: function (button, provider, noautosubmit) { var self = this; + self.$('li[data-provider]').hide(); self.$openid_selected_button.add(self.$openid_selected_input).removeClass('selected'); self.$openid_selected_button = self.$el.find(button).addClass('selected'); var input = _(provider.split(',')).map(function(p) { return 'li[data-provider="'+p+'"]'; }).join(','); - self.$openid_selected_input = self.$el.find(input).addClass('selected'); + self.$openid_selected_input = self.$el.find(input).show(); self.$openid_selected_input.find('input:first').focus(); self.$openid_selected_provider = (self.$openid_selected_button.attr('href') || '').substr(1); @@ -62,7 +71,7 @@ instance.web.Login = instance.web.Login.extend({ localStorage.setItem('openid-provider', self.$openid_selected_provider); } - if (!noautosubmit && self.$openid_selected_input.length == 0) { + if (!noautosubmit && self.$openid_selected_input.length === 0) { self.$el.find('form').submit(); } diff --git a/addons/auth_openid/static/src/xml/auth_openid.xml b/addons/auth_openid/static/src/xml/auth_openid.xml index 6a40439a012..75fd2a8fe45 100644 --- a/addons/auth_openid/static/src/xml/auth_openid.xml +++ b/addons/auth_openid/static/src/xml/auth_openid.xml @@ -4,44 +4,53 @@ <t t-extend="Login"> <t t-jquery=".oe_login .oe_login_logo" t-operation="after"> - <ul class="openid_providers oe_semantic_html_override"> - <li><a href="#login,password" title="Password" data-url="" id="btn_password">Password</a></li> - <li><a href="#google" title="Google" data-url="https://www.google.com/accounts/o8/id">Google</a></li> - <li><a href="#googleapps" title="Google Apps" data-url="https://www.google.com/accounts/o8/site-xrds?hd={id}">Google</a></li> - <li><a href="#launchpad" title="Launchpad" data-url="https://launchpad.net/~{id}">Launchpad</a></li> - <li><a href="#openid_url" title="OpenID" data-url="{id}">OpenID</a></li> - </ul> + <div class="openid_providers" data-modes="default openid"><ul> + <li><a href="#login,password" data-provider='Password' title="Password" data-url="" id="btn_password">Password</a></li> + <li><a href="#google" data-provider='Google' title="Google" data-url="https://www.google.com/accounts/o8/id">Google</a></li> + <li><a href="#googleapps" data-provider='Google Apps' title="Google Apps" data-url="https://www.google.com/accounts/o8/site-xrds?hd={id}">Google</a></li> + <li><a href="#launchpad" data-provider='Launchpad' title="Launchpad" data-url="https://launchpad.net/~{id}">Launchpad</a></li> + <li><a href="#openid_url" data-provider='OpenID' title="OpenID" data-url="{id}">OpenID</a></li> + </ul></div> </t> </t> <t t-extend="Login"> - <t t-jquery=".oe_login .oe_login_pane form ul li:nth-child(4)" t-operation="after"> - <li> + <t t-jquery=".oe_login .oe_login_pane form ul li:last-child()" t-operation="before"> + <li data-modes="openid" data-provider='googleapps'> Google Apps Domain </li> - <li> + <li data-modes="openid" data-provider='googleapps'> <input type="text" name="googleapps" /> </li> - <li> + <li data-modes="openid" data-provider='launchpad'> Username </li> - <li> + <li data-modes="openid" data-provider='launchpad'> <input type="text" name="launchpad" /> </li> - <li> + <li data-modes="openid" data-provider='openid_url'> OpenID URL </li> - <li> + <li data-modes="openid" data-provider='openid_url'> <input type="text" name="openid_url" /> </li> </t> </t> <t t-extend="Login"> - <t t-jquery=".oe_login .oe_login_pane form ul li:has(input)"> + <t t-jquery=".oe_login .oe_login_pane form ul li:has(input[name=password])"> + this.each(function() { + var $i = $(this); + $i.add($i.prev()).attr('data-provider', 'password'); + }); + </t> + <t t-jquery=".oe_login .oe_login_pane form ul li:has(input[name=login])"> this.each(function() { var $i = $(this), - dp = $i.find('input').attr('name'); - $i.add($i.prev()).attr('class', 'auth_choice').attr('data-provider', dp); + dp = $i.find('input').attr('name'), + $p = $i.prev(); + // $p may not be the correct label when auth_signup is installed. + while(($p.attr('data-modes') || 'default') !== 'default') { $p = $p.prev(); } + $i.add($p).attr('data-provider', dp); }); </t> </t> diff --git a/addons/auth_signup/res_users.py b/addons/auth_signup/res_users.py index 4e86de5b474..b5383e41775 100644 --- a/addons/auth_signup/res_users.py +++ b/addons/auth_signup/res_users.py @@ -161,14 +161,12 @@ class res_users(osv.Model): def _get_state(self, cr, uid, ids, name, arg, context=None): res = {} for user in self.browse(cr, uid, ids, context): - res[user.id] = ('reset' if user.signup_valid else - 'active' if user.login_date else - 'new') + res[user.id] = ('active' if user.login_date else 'new') return res _columns = { 'state': fields.function(_get_state, string='Status', type='selection', - selection=[('new', 'New'), ('active', 'Active'), ('reset', 'Resetting Password')]), + selection=[('new', 'Never Connected'), ('active', 'Activated')]), } def signup(self, cr, uid, values, token=None, context=None): @@ -270,16 +268,7 @@ class res_users(osv.Model): if mail_state and mail_state['state'] == 'exception': raise self.pool.get('res.config.settings').get_config_warning(cr, _("Cannot send email: no outgoing email server configured.\nYou can configure it under %(menu:base_setup.menu_general_configuration)s."), context) else: - return { - 'type': 'ir.actions.client', - 'name': '_(Server Notification)', - 'tag': 'action_notify', - 'params': { - 'title': 'Mail Sent to: %s' % user.name, - 'text': 'You can reset the password by yourself using this <a href=%s>link</a>' % user.partner_id.signup_url, - 'sticky': True, - } - } + return True def create(self, cr, uid, values, context=None): # overridden to automatically invite user to sign up diff --git a/addons/auth_signup/res_users_view.xml b/addons/auth_signup/res_users_view.xml index 201abba140b..f0c51de1619 100644 --- a/addons/auth_signup/res_users_view.xml +++ b/addons/auth_signup/res_users_view.xml @@ -17,11 +17,26 @@ <header> <field name="state" widget="statusbar"/> </header> + <div class="oe_form_box_info oe_text_center" attrs="{'invisible': [('signup_valid', '!=', True)]}"> + <p attrs="{'invisible': [('state', '!=', 'active')]}"> + <b>A password reset has been requested for this user. An email containing the following link has been sent:</b> + </p> + <p attrs="{'invisible': [('state', '!=', 'new')]}"> + <b>An invitation email containing the following subscription link has been sent:</b> + </p> + <p><field class="oe_inline" name="signup_url" widget="url"/></p> + <field name="signup_valid" invisible="1"/> + </div> </xpath> <!-- add Reset Password button --> <xpath expr="//div[@class='oe_right oe_button_box']//button" position="replace"> <button string="Send Reset Password Instructions" - type="object" name="action_reset_password" /> + type="object" name="action_reset_password" + attrs="{'invisible': [('state', '!=', 'active')]}"/> + <button string="Send an Invitation Email" + type="object" name="action_reset_password" context="{'create_user': 1}" + attrs="{'invisible': [('state', '!=', 'new')]}"/> + </div> </xpath> </field> </record> diff --git a/addons/auth_signup/static/src/js/auth_signup.js b/addons/auth_signup/static/src/js/auth_signup.js index fe071fde55d..bbaf907c625 100644 --- a/addons/auth_signup/static/src/js/auth_signup.js +++ b/addons/auth_signup/static/src/js/auth_signup.js @@ -56,7 +56,7 @@ openerp.auth_signup = function(instance) { self.rpc("/auth_signup/get_config", {dbname: dbname}).done(function(result) { self.signup_enabled = result.signup; self.reset_password_enabled = result.reset_password; - if (self.$("form input[name=login]").val()){ + if (!self.signup_enabled || self.$("form input[name=login]").val()){ self.set('login_mode', 'default'); } else { self.set('login_mode', 'signup'); diff --git a/addons/auth_signup/static/src/xml/auth_signup.xml b/addons/auth_signup/static/src/xml/auth_signup.xml index 9ef4f394e27..1c41dbed181 100644 --- a/addons/auth_signup/static/src/xml/auth_signup.xml +++ b/addons/auth_signup/static/src/xml/auth_signup.xml @@ -12,6 +12,9 @@ <li data-modes="default">Username</li> <li data-modes="signup reset">Username (Email)</li> </t> + <t t-jquery="form ul:first li:has(input[name=login], input[name=password]), form ul:first li:contains('Password')"> + this.attr('data-modes', 'default signup reset'); + </t> <t t-jquery="form ul:first li:has(input[name=password])" t-operation="after"> <li data-modes="signup reset">Confirm Password</li> <li data-modes="signup reset"><input name="confirm_password" type="password"/></li> diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index 494e9926279..2abd994d644 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -104,9 +104,9 @@ </header> <sheet> <div class="oe_right oe_button_box" name="buttons"> - <button type="action" - name="%(act_crm_opportunity_crm_phonecall_new)d" - string="Phone Calls"/> + <button string="Schedule/Log Call" + name="%(opportunity2phonecall_act)d" + type="action"/> </div> <div class="oe_title"> <label for="name" class="oe_edit_only"/> diff --git a/addons/crm_partner_assign/res_partner_view.xml b/addons/crm_partner_assign/res_partner_view.xml index aeafc367792..433a290ae81 100644 --- a/addons/crm_partner_assign/res_partner_view.xml +++ b/addons/crm_partner_assign/res_partner_view.xml @@ -77,6 +77,7 @@ <field name="inherit_id" ref="base.view_partner_tree"/> <field name="arch" type="xml"> <field name="user_id" position="after"> + <field name="date_review_next"/> <field name="grade_id"/> <field name="activation"/> </field> @@ -104,17 +105,19 @@ <field name="arch" type="xml"> <xpath expr="//notebook[last()]" position="inside"> <page string="Geo Localization"> - <group colspan="2" col="2"> - <separator string="Partner Activation" colspan="2"/> - <field name="grade_id" widget="selection"/> - <field name="activation" widget="selection"/> - <field name="partner_weight"/> - </group> - <group colspan="2" col="2"> - <separator string="Partner Review" colspan="2"/> - <field name="date_review"/> - <field name="date_review_next"/> - <field name="date_partnership"/> + <group> + <group> + <separator string="Partner Activation" colspan="2"/> + <field name="grade_id" widget="selection"/> + <field name="activation" widget="selection"/> + <field name="partner_weight"/> + </group> + <group> + <separator string="Partner Review" colspan="2"/> + <field name="date_review"/> + <field name="date_review_next"/> + <field name="date_partnership"/> + </group> </group> <group colspan="2" col="2"> <separator string="Geo Localization" colspan="2"/> diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py index d4e71cedbf5..4be032ba99b 100644 --- a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py +++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py @@ -213,6 +213,7 @@ class hr_timesheet_sheet(osv.osv): def onchange_employee_id(self, cr, uid, ids, employee_id, context=None): department_id = False + user_id = False if employee_id: empl_id = self.pool.get('hr.employee').browse(cr, uid, employee_id, context=context) department_id = empl_id.department_id.id diff --git a/addons/portal_anonymous/portal_anonymous_data.xml b/addons/portal_anonymous/portal_anonymous_data.xml index ae97f4a577a..eb1fd3889b4 100644 --- a/addons/portal_anonymous/portal_anonymous_data.xml +++ b/addons/portal_anonymous/portal_anonymous_data.xml @@ -9,6 +9,7 @@ <!-- Avoid auto-including this demo user in any default group --> <field name="groups_id" eval="[(5,)]"/> <field name="image">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</field> + <field name="share" eval="True"/> </record> <record id="portal.group_anonymous" model="res.groups"> diff --git a/addons/sale/sale.py b/addons/sale/sale.py index 09ee8d5e3fd..bf9e9484b9f 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -729,7 +729,7 @@ class sale_order_line(osv.osv): 'salesman_id':fields.related('order_id', 'user_id', type='many2one', relation='res.users', store=True, string='Salesperson'), 'company_id': fields.related('order_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True), } - _order = 'order_id desc, sequence' + _order = 'order_id desc, sequence, id' _defaults = { 'product_uom' : _get_uom_id, 'discount': 0.0, diff --git a/addons/web_linkedin/static/src/js/linkedin.js b/addons/web_linkedin/static/src/js/linkedin.js index 661aecdc400..5d8d7a29b1d 100644 --- a/addons/web_linkedin/static/src/js/linkedin.js +++ b/addons/web_linkedin/static/src/js/linkedin.js @@ -88,7 +88,7 @@ openerp.web_linkedin = function(instance) { $("body").append(self.$linkedin); var tag = document.createElement('script'); tag.type = 'text/javascript'; - tag.src = "http://platform.linkedin.com/in.js"; + tag.src = "https://platform.linkedin.com/in.js"; tag.innerHTML = 'api_key : ' + self.api_key + '\nauthorize : true\nscope: r_network r_basicprofile'; // r_contactinfo r_fullprofile r_emailaddress'; document.getElementsByTagName('head')[0].appendChild(tag); |
